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