Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Wrong output on linux, ok on Win32

by shmem (Chancellor)
on Nov 30, 2006 at 16:29 UTC ( [id://586987]=note: print w/replies, xml ) Need Help??


in reply to Wrong output on linux, ok on Win32

Animate it ;-)

#!/usr/bin/perl use Term::Cap; $t= Tgetent Term::Cap; $t=$t->Tgoto('cm', 0, 0); for$i(1..shift){ print $t; map{ $a=1-$_/10; map{ $d=$a; $e=$b=$_/20-2; map{ ($d,$e)=(2*$d*$e+$a,$e**2-$d**2+$b); $c=$d**2+$e**2>4?_:0 }1..$i; print$c }0..59; print$/ }0..20; }

Try perl mandel.pl 13. If I pass 99, there'll be a block of zeroes at the end.

<update>

It's not an overflow issue. As the area delimiting the mandelbrot converges to a line with increased iterations over the inner loop, there's not enough resolution to draw it. You can skip the outer area exiting the inner loop as soon as $d**2+$e**2>4

map{ $a=1-$_/10; map{ $d=$a; $e=$b=$_/20-2; for(1..99){ ($d,$e)=(2*$d*$e+$a,$e**2-$d**2+$b); $c=$d**2+$e**2>4?_:0; last if $c eq _ } print$c }0..59; print$/ }0..20;

I wonder how that works on your windows box, though.

</update>

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

Replies are listed 'Best First'.
Re^2: Wrong output on linux, ok on Win32
by liverpole (Monsignor) on Nov 30, 2006 at 19:07 UTC
    Very slick, ++shmem.

    It's times like this I wish that replies to nodes could be front-paged on their own!


    s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/
Re^2: Wrong output on linux, ok on Win32
by Melly (Chaplain) on Nov 30, 2006 at 16:49 UTC

    LOL, nice, and demonstrates the problem neatly...

    Tom Melly, pm@tomandlu.co.uk
Re^2: Wrong output on linux, ok on Win32
by Melly (Chaplain) on Dec 01, 2006 at 10:56 UTC

    Indeed, but then I lose at golf ;)

    Here's my solution that avoids a last and only gains me a couple of strokes...

    map{ $a=1-$_/10; map{ $d=$a; $e=$b=$_/20-2; map{ ($d,$e)=(2*$d*$e+$a,$e**2-$d**2+$b); $c=$d**2+$e**2>4?$d=8:_ }1..50; print$c }0..59; print$/ }0..20
    Tom Melly, pm@tomandlu.co.uk

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://586987]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2024-04-23 20:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found