0  ,]']±>Sï}WÿÍu§ðp8·d%qy)6o;]ÉA¦ösï÷ôôô”°ÂVl†3<W
   ‡©ËÝîÞÌ«h5 Bw‡©º»ÌÌ¼»™ˆxfv‡˜ºÀ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ÎÌÌÌÌˆˆˆ¬ªªª¬ˆˆˆ¬ÌÌÌ¬ÌÀÌ¬ÌÀÌ¬ÌÀÌÌÌìîˆˆÌîªªÀîˆ¨ÀîÌ¬ÀÌÀ¬ÀÀÀ¬ÀÀÀ¬ÀÀÎÌÌÌÌˆˆˆ¬ªªª¬ˆˆˆ¬ÌÌÌ¬ÌÌÌ¬ÌÀÌ¬ÌÀÌÌÌìîˆˆÌîªªÀîˆ¨ÀîÌ¬ÀÌÌ¬ÀÀÀ¬ÀÀÀ¬ÀÀÎÌÌÌÌˆˆˆ¬ªªª¬ˆˆˆ¬ÌÌÌ¬ÌÀÌ¬ ¬ÌÀÌÌÌìîˆˆÌîªªÀîˆ¨ÀîÌ¬ÀÌÀ¬ÀÀ ¬ÀÀÀ¬ÀÀ                                                                                                                                                                                                                                                                                                                                ¬ÌÌÌ¬ªªª¬ª¬ª¬ªÊÌ¬ªªªŒˆˆˆÌ ÀÌÎÌÌÎÌ¬ ÌªªÀì¬ªÀîªªÀîªªÀîˆˆÌî ÀìîÌÌîî¬ÌÌÌ¬ªªª¬ªªª¬ªÌÌ¬ªªªŒˆˆˆÌ ÀÌÎÌÌÎÌ¬ ÌªªÀì¬ªÀîªªÀîªªÀîˆˆÌîÌÌìîÌÌîî¬ÌÌÌ¬ªªª¬ªÊÌ¬ªÊÌ¬ªªªŒˆˆˆÌ ÀÌÎÌÌÎÌ¬ ÌªªÀìªªÀîªªÀîªªÀîˆˆÌî ÀìîÌÌîî	@       
 
 
 
 
 
                     UÀ? """""""""""""""""""233333333333333333333333333333333333333333333333333333#""""""""""""""""""""!""""""""""""""""""333333333333333333333333333333333333333333333333333333333"""""""""""""""""""""""""""""""""""""333333333333333333333333333333333333333CDDDDDDD333333333333""""""""""""""""""!"""""""""""""""""33333333333333333333333333333333333333DDDDDDDDDDDD43333333333"""""""""""""""""!""""""""""""""""3333333333333333333333333333333333333DDDDDDDDDDDDDDDD4333333333""""""""""""""""1333333333333333333333333333333333""""333333333333333333333333333333333333CDDDDDDDTUUUUEDDDDDD333333333"""""""""""""""1DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4"""333333333333333333333333333333333333DDDDDDDDUefVUUUEDDDDDD333333333""""""""""""""1D @DDDDDDDDDDDDDDDDDDDDDDDDDDDDD4""33333333333333333333333333333333333CDDDDDDDDTe›xwVUUUEDDDDDD433333333"""""""""""""1@ @ @D @DD  DD@@D @@D @4"33333333333333333333333333333333333CDDDDDDDDTUe—ŠˆjUUUUDDDDDDD333333333""""""""""""1@@@@ DDD  @@@ 423333333333333333333333333333333333CDDDDDDDDDUUfwÚÚxfUUUUDDDDDDD33333333#"""""""""""1  @D@D@  D DD@D @ D43333333333333333333333333333333333CDDDDDDDDDTUUfv¨¦xfVUUUEDDDDDDD33333333#""""""""""1@@D@DD @@  @DDD @DDD @4333333333333333333333333333333333CDDDDDDDDDDUUUfv˜¢ygffUUUDDDDDDDD33333333#"""""""""1DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433333333333333333333333333333333CDDDDDDDDDDTUUUfv¨¾ŠgfffVUEDDDDDDD433333333"""""""""1DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433333333333333333333333333333333DDDDDDDDDDDUUUUff¨ìNxffffVEDDDDDDDD333333333""""""""1D @DD @DDDDDDDDDDDDDDDDDDDDDDD43333333333333333333333333333333DDDDDDDDDDDTUUUeff—°‰www‡iUDDDDDDDDD33333333#"""""""1@DD@@DD  D @D @@@DDDDDDDDD4333333333333333333333333333333CDDDDDDDDDDDTUUUeff§ÑˆwwˆuVEDDDDDDDD433333333#""""""1@DD @DDD@@@  DDDDDDDDD433333333333333333333333333333CDDDDDDDDDDDDUUUUefv—ºü­‰ˆˆ¹‹fUDDDDDDDDD333333333""""""1  D@D@DDD D@@DDDDDDDDD433333333333333333333333333333DDDDDDDDDDDDTUUUUefv‡©ëÎ™©»{fUEDDDDDDDD433333333#"""""1@DD @DD  D @D @DDDDDDDDD43333333333333333333333333333DDDDDDDDDDDDDUUUUUefw‡™êð«ÊRÒ‰fVUDDDDDDDDD333333333#""""1DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4333333333333333333333333333CDDDDDDDDDDDDDUUUUUffwˆ˜
ŸÍ ß­xfVUDDDDDDDDD4333333333""""1DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433333333333333333333333333CDDDDDDDDDDDDDTUUUUUfvwˆ˜ºÌ¼‰wffUEDDDDDDDDD333333333#"""1@DD@@DDD@DDDDDD@D DDDDDDDD433333333333333333333333333DDDDDDDDDDDDDDUUUUUefwwˆ˜ºìÍš‰wffUUDDDDDDDDD4333333333"""1@DD@@@DD @ D  D  @  DDDDDDD43333333333333333333333333CDDDDDDDDDDDDDTUUUUUefwwˆ˜ºì½š‰wgfUUEDDDDDDDDD333333333#""1D @DD @DD@@ @ D@@D D@DDDDDD4333333333333333333333333CDDDDDDDDDDDDDDUUUUUUfvw‡ˆ©ºMÀ½šˆwgfUUUDDDDDDDDD4333333333""1@D@DD DDD@@ @D D@@D D@DDDDDD4333333333333333333333333DDDDDDDDDDDDDDTUUUUUUfwwˆ˜¹Ý. ½›ˆxwfVUUEDDDDDDDDD3333333333"1@DDD DDD @ D  DD @ D@DDDDDD433333333333333333333333CDDDDDDDDDDDDDDUUUUUUevw‡˜™ÛB,î®‰xwfVUUUEDDDDDDDD4333333333#1DDDDDDDDDDDDDDDDD DDDDDDDDDDDDDD433333333333333333333333DDDDDDDDDDDDDDTUUUUUUfv‡™™ºžÈ Q°‰ˆxgVUUUUDDDDDDDD433333333331DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD43333333333333333333333DDDDDDDDDDDDDDDUUUUUUef‡˜Áªºý   ÐšˆˆgfUUUUEDDDDDDDD33333333331333333333333333333333333333333333333333333333333333333CDDDDDDDDDDDDDDTUUUUUefvˆ©¼Ëý	  Îª™¹xfUUUUUEDDDDDDD4333333333""""""2333333333333333333333333333333333DDDDDDDDDDDDDDDUUUUUUff‡©ËÞý  0Î»ËKzfVUUUUUDDDDDDDD333333333""""""333333333333333333333333333333333CDDDDDDDDDDDDDDTUUUUUfff§ûàO‡	  <!Ì0‰gVUUUUUUDDDDDDD333333333!""""""333333333333333333333333333333333DDDDDDDDDDDDDDDUUUUUeffv—kð‚“     ¶ï¾‰gfUUUUUUEDDDDDD433333333!"""""233333333333333333333333333333333DDDDDDDDDDDDDDDTUUUUefffwˆ¹Ü 

      ÁPŠwfVUUUUUUEDDDDDD33333333""""""33333333333333333333333333333333CDDDDDDDDDDDDDDTUUUUefffvwˆ©Ë         yŒwffUUUUUUUDDDDDD43333333"""""233333333333333333333333333333333DDDDDDDDDDDDDDDUUUUfffffwwˆ©ÊÎ          ÍŠwgfVUUUUUUUDDDDD43333333!"""""33333333333333333333333333333333CDDDDDDDDDDDDDDUUUUfffffvwwˆ¨Ú/	        I¬‰wwffUUUUUUUEDDDDD3333333!""""233333333333333333333333333333333DDDDDDDDDDDDDDTUUUffffffww‡ˆ¨G         ã¬‰xwffVUUUUUUUDDDDD3333333"""""33333333333333333333333333333333CDDDDDDDDDDDDDTUUUffffffvww‡ˆ©­º         ³°‰xwgffVUUUUUUUDDDD4333333"""""3333333333333333333333333333333CDDDDDDDDDDDDDDUUUffffffvwwwˆˆ©
         °‰ˆwwffffUUUUUUEDDDD333333""""23333333333333333333333333333333DDDDDDDDDDDDDDUUUefffffvwwwwˆ˜©ì          ‰ˆxwgfffffUUUUUDDDD333333!""""3333333333333333333333333333333CDDDDDDDDDDDDDUUUefffffwwwww‡ˆ™ªÛ˜         ã¬™ˆˆwwfffffffVUUEDDD433333!"""23333333333333333333333333333333DDDDDDDDDDDDDUUUUfwwwwwwwww‡ˆ™™ªË	         ð«š‰ˆxwgffffffffVUDDD433333""""2333333333333333333333333333333CDDDDDDDDDDDDUUUUfwwwˆ’ˆˆxwˆˆ™™©ºË        Ð»š™ˆˆxwgfffffv‡gUEDDD33333""""3333333333333333333333333333333DDDDDDDDDDDDUUUUev˜‰ˆ˜‹ˆˆˆˆ™™©ªºÜ        Þ¼«™™™›xwgfffvwÈzfUDDD33333"""2333333333333333333333333333333DDDDDDDDDDDDUUUUUf§¬ºº œ‰ˆ™y°Ì»»ÌÜÑ        ÞÌ»ª™ª‰xwwwww‡¨¾gVEDD43333!"""233333333333333333333333333333CDDDDDDDDDDDUUUUUef‡À-0«™™™Ê Ì¼ïîB	     pïÞ½»Û «ˆxwwwwˆ¹ÐhVEDD43333!"""333333333333333333333333333333DDDDDDDDDDTUUUUUUfv‡º Ò¼š™ªÛ  ß0“dÈ     z6$ ßàÌÎ À‰ˆxww‡ˆZ®xfUDDD3333!""233333333333333333333333333333CDDDDDDDDDTUUUUUUefv‡©üÇ`àÍ¾ªº p €             î?
Øšˆˆˆˆˆ™˜xfUEDD3333"""23333333333333333333333333333CDDDDDDDDDTUUUUUUUffv‡¹œ°@Ý»Ë 0              PÐ ›™™™™™©¡ˆgUEDD4333"""33333333333333333333333333333DDDDDDDDDUUUUUUUUeffw‡J‘L   ÃÌþ  Ð                ÐP  æ«š©0[ªºü±™zVUDD4333"""3333333333333333333333333333CDDDDDDDTUUUUUUUUUfffw‡¬p  @ï                      à¼ªº ËËË°ƒVUEDD333!""23333333333333333333333333333DDDDDDDTUUUUUUUUUefffw‡¹Ü^                              à¼»ý áàhò{VUEDD333!""3333333333333333333333333333DDDDDDDUUUUUUUUUUUfffvw‡©Ë   '£                        P Íì3 )–t+­xVUEDD433!""333333333333333333333333333CDDDDDDUUUUUUUUUUUefffvwˆ™ÊP    P                           ïN     £xVUUDD433""233333333333333333333333333CDDDDDTUUUUUUUUUUUUffffvwˆ™Ê
                                     0ÞxxVUUDD433""233333333333333333333333333DDDDDTUUUUUUUUUUUUeffffw‡ˆ™zÊ                                @    
¼ªgVUUEDD33""33333333333333333333333333DDDDDTUUUUUUUUUUUUUfffffwˆ˜™Ê                                     ä«‰gfUUEDD33""3333333333333333333333333CDDDDUUUUUUUUUUUUUUeffffv‡ˆ˜©Ëí                                      ­xgfUUEDD43!"2333333333333333333333333CDDDDUUUUUUUUUUUUUUefffffw‡ˆ©ªËí0                                    ‡œxgfUUEDD43!"233333333333333333333333CDDDDUUUUUUUUUUUUUUUfffffvwˆ©«»Û’                                     ·–xgfUUUDD43!"33333333333333333333333CDDDDUUUUUUUUUUUUUUUefffffw‡™
Ì 
                                     Î‰wgfUUUDDD3!"3333333333333333333333CDDDDUUUUUUUUUUUUUUUefffffvw¨» ðÝŽ                                      á«‰wgfVUUDDD3""333333333333333333333CDDDDUUUUUUUUUUUUUUUUffffffw‡)'p                                     Î«‰wgfVUUDDD3"233333333333333333333DDDDDUeffffVUUUUUUUUUffffffwwˆ¹ € Ó                                     0Ã«‰xwffUUDDD4"23333333333333333333DDDDDUewffffffVUUUUUeffffffwwwˆ¹w                                          àMšxwgfUUDDD4"333333333333333333CDDDDDTU¶rwfffffffffffffffffwww‡ˆ©]	                                          ›ˆxwfUUDDD4!"33333333333333333DDDDDDTUe‡ˆgffffffffffffffwwwwwˆ˜©                                            ¬‰ˆxgVUEDDD!"333333333333333CDDDDDDTUUfwÊygfffffffffvwwwwwww‡ˆ˜©Ë                                           ¬™ˆIhVUEDDD!233333333333333DDDDDDDDUUef‡¨Î‰wwwwwwwwwwwwwwwwwwˆˆ˜ªÛÕ                                         û¼š™ÊzVUEDDD!2333333333333CDDDDDDDDUUUef‡¨Î‰ˆwwwww‡¨‹ˆwwwwwww‡ˆˆ™ºí	                                          Ý±«ëƒVUEDDD!233333333333DDDDDDDDDTUUUff†¸‰ˆxwww‡ˆ¹³ˆˆwwwwwwˆˆˆ©ë                                           @ ÌGŒgUEDDD"3333333333CDDDDDDDDDDUUUUff†¹Àš‰ˆxw‡ˆ˜ëÌ‰ˆxwwwwˆˆˆ˜Êpˆ                                          	pà1ŠgUEDDD"333333333CDDDDDDDDDDUUUUUffÖþÙª™™‰ˆˆ˜©.½š‰ˆˆw‡ˆˆˆˆ™ê                                               -gUEDDD"33333333CDDDDDDDDDDTUUUUeff‡©¼ª™Êš™™ªÎ«™™‰ˆˆˆˆˆ™©Û                                                 ‹fUEDDD23333333CDDDDDDDDDDDUUUUUeff‡¨\ÎÜ¼«™©ºO)ÍªªÊ™™™™™™ªË>                                               €üwfUEDDD2333333CDDDDDDDDDDDTUUUUUeff‡˜Ð7Pà]³«ªËý¼»Mª™™™™™ªËÄ                                              äªxfUEDDD233333CDDDDDDDDDDDTUUUUUUffv‡ˆªÜ àÆ»ËýÒ€Ä¬š™™™ªªÛ`                                            P°‰wfUEDDD!233333DDDDDDDDDDDDUUUUUUUffvwˆ©»ÕpÔÍÝrÐâ. ½«™™©ªº                                              pß›ˆgfUEDDD!33333DDDDDDDDDDDDTUUUUUUUffwwˆ™ºë0 p)þõ    Ð¼«ªªªË                                               ÀšˆgfUEDDD!3333CDDDDDDDDDDDDUUUUUUUUfvwwˆ™ºÜ  `S  pCð¾¾»»»Ë                                              ÐšˆgfUEDDD!3333DDDDDDDDDDDDTUUUUUUUefvwwˆ™¹Üu   D      sÏ»»»ÌN                                              Ð«‰gfUEDDD!333CDDDDDDDDDDDDUUUUUUUUefwww˜™Ú    
       p¥ÔÍ»ÌÜ                                                ¼,gVUEDDD1333DDDDDDDDDDDDTUUUUUUUUfvwww˜™ÊQ°              äÌÌí                                                 ãgVUEDDD133CDDDDDDDDDDDDUUUUUUUUUfwww‡˜©Ëý             pðÝÝî                                                 0¡gVUEDDD233DDDDDDDDDDDDTUUUUUUUUefwww‡©ºËýQ             ïíþ                                                 °gVUEDDD23CDDDDDDDDDDDDUUUUUUUUUfvwww˜Ì»ì.                ðÿ                                                A‡gVUEDDD23CDDDDDDDDDDDTUUUUUUUUefwwwˆ©.ÝQ                ÿ                                                Ñ«xgUUEDDD23DDDDDDDDDDDDTUUUUUUUUfwˆˆˆ˜©mr p                 !                                               ËšxfUUEDDD3CDDDDDDDDDDDDUUUUUUUUfv‰ˆˆ˜™©Û?                    2                                                À›wfUUEDDD3CDDDDDDDDDDDTUUUUUUeff‡­Š™™™ªËÍ                  @C                                                 €wfUUEDDD3DDDDDDDDDDDDUUUUUffffwˆ
¬š™™ºÛ
                  pe                                                 ŒgVUUEDDD3DDDDDDDDDDDTUUefffffvwˆK¾ªªº»üP                   ‡                                               pÂzgVUUEDDDCDDDDDDDDDDDUUffffffvwwˆÊÍ»»ÍÌ	                    ª                                               à›xfVUUEDDDCDDDDDDDDDDTUffffffvww‡˜ª-ÍÌðÝþÁ                    Ð                                               €wfVUUEDDDCDDDDDDDDDTUfffffffwww‡˜©ì í                                                                    €ŠgfVUUEDDDDDDUUUDDDTUfffffffwwwwˆ™¹ë7¥!                                                                   0­xgfVUUEDDDDTUUUUUUUefffffffvwwww˜™ºì 
 W                                                                    œxgfUUUEDDDDUUUUeffvˆwwwfffvwwwwˆ™™Ëíq    
                                                                   Â‰wffUUUEDDDTUUUfffvw¹xwwwwv‡ˆˆˆ˜ªªºï•                                                                       @©ˆwffUUUEDDDUUUefffww©zw‡ˆˆ©‰ˆˆ˜©ë»Ë.(                                                                       ÕšxwffUUUEDDDUUUvffvw‡êÍ™ˆˆ˜l™‰˜™¹|ÍÝ.                                                                        ¬‰xwffUUUEDDDfguw‡ˆˆ˜ºš©ªºì«
«ËÌôöT                                                                        Ï«‰xwffUUUEDDD                                                                                                Íª‰xwffUUUEDDDfguw‡ˆˆ˜ºš©ªºì«
«ËÌôöT                                                                        Ï«‰xwffUUUEDDDUUUvffvw‡êÍ™ˆˆ˜l™‰˜™¹|ÍÝ.                                                                        ¬‰xwffUUUEDDDUUUefffww©zw‡ˆˆ©‰ˆˆ˜©ë»Ë.(                                                                       ÕšxwffUUUEDDDTUUUfffvw¹xwwwwv‡ˆˆˆ˜ªªºï•                                                                       @©ˆwffUUUEDDDDUUUUeffvˆwwwfffvwwwwˆ™™Ëíq    
                                                                   Â‰wffUUUEDDDDTUUUUUUUefffffffvwwww˜™ºì 
 W                                                                    œxgfUUUEDDDDDDUUUDDDTUfffffffwwwwˆ™¹ë7¥!                                                                   0­xgfVUUEDDDCDDDDDDDDDTUfffffffwww‡˜©ì í                                                                    €ŠgfVUUEDDDCDDDDDDDDDDTUffffffvww‡˜ª-ÍÌðÝþÁ                    Ð                                               €wfVUUEDDDCDDDDDDDDDDDUUffffffvwwˆÊÍ»»ÍÌ	                    ª                                               à›xfVUUEDDD3DDDDDDDDDDDTUUefffffvwˆK¾ªªº»üP                   ‡                                               pÂzgVUUEDDD3DDDDDDDDDDDDUUUUUffffwˆ
¬š™™ºÛ
                  pe                                                 ŒgVUUEDDD3CDDDDDDDDDDDTUUUUUUeff‡­Š™™™ªËÍ                  @C                                                 €wfUUEDDD3CDDDDDDDDDDDDUUUUUUUUfv‰ˆˆ˜™©Û?                    2                                                À›wfUUEDDD23DDDDDDDDDDDDTUUUUUUUUfwˆˆˆ˜©mr p                 !                                               ËšxfUUEDDD23CDDDDDDDDDDDTUUUUUUUUefwwwˆ©.ÝQ                ÿ                                                Ñ«xgUUEDDD23CDDDDDDDDDDDDUUUUUUUUUfvwww˜Ì»ì.                ðÿ                                                A‡gVUEDDD233DDDDDDDDDDDDTUUUUUUUUefwww‡©ºËýQ             ïíþ                                                 °gVUEDDD133CDDDDDDDDDDDDUUUUUUUUUfwww‡˜©Ëý             pðÝÝî                                                 0¡gVUEDDD1333DDDDDDDDDDDDTUUUUUUUUfvwww˜™ÊQ°              äÌÌí                                                 ãgVUEDDD!333CDDDDDDDDDDDDUUUUUUUUefwww˜™Ú    
       p¥ÔÍ»ÌÜ                                                ¼,gVUEDDD!3333DDDDDDDDDDDDTUUUUUUUefvwwˆ™¹Üu   D      sÏ»»»ÌN                                              Ð«‰gfUEDDD!3333CDDDDDDDDDDDDUUUUUUUUfvwwˆ™ºÜ  `S  pCð¾¾»»»Ë                                              ÐšˆgfUEDDD!33333DDDDDDDDDDDDTUUUUUUUffwwˆ™ºë0 p)þõ    Ð¼«ªªªË                                               ÀšˆgfUEDDD!233333DDDDDDDDDDDDUUUUUUUffvwˆ©»ÕpÔÍÝrÐâ. ½«™™©ªº                                              pß›ˆgfUEDDD233333CDDDDDDDDDDDTUUUUUUffv‡ˆªÜ àÆ»ËýÒ€Ä¬š™™™ªªÛ`                                            P°‰wfUEDDD2333333CDDDDDDDDDDDTUUUUUeff‡˜Ð7Pà]³«ªËý¼»Mª™™™™™ªËÄ                                              äªxfUEDDD23333333CDDDDDDDDDDDUUUUUeff‡¨\ÎÜ¼«™©ºO)ÍªªÊ™™™™™™ªË>                                               €üwfUEDDD"33333333CDDDDDDDDDDTUUUUeff‡©¼ª™Êš™™ªÎ«™™‰ˆˆˆˆˆ™©Û                                                 ‹fUEDDD"333333333CDDDDDDDDDDUUUUUffÖþÙª™™‰ˆˆ˜©.½š‰ˆˆw‡ˆˆˆˆ™ê                                               -gUEDDD"3333333333CDDDDDDDDDDUUUUff†¹Àš‰ˆxw‡ˆ˜ëÌ‰ˆxwwwwˆˆˆ˜Êpˆ                                          	pà1ŠgUEDDD!233333333333DDDDDDDDDTUUUff†¸‰ˆxwww‡ˆ¹³ˆˆwwwwwwˆˆˆ©ë                                           @ ÌGŒgUEDDD!2333333333333CDDDDDDDDUUUef‡¨Î‰ˆwwwww‡¨‹ˆwwwwwww‡ˆˆ™ºí	                                          Ý±«ëƒVUEDDD1   6
 ;; title:  Mandelbrot set
;; author: Joerg Ramb 2021-12-02
;; desc:   Mandelbrot set
;; script: fennel
(local fennel (require :fennel))
(global pp (fn [x] (trace (fennel.view x))))

(var t 0)

(fn mandelzahl [cr ci max i tr ti tr2 ti2]
  "Calculates the Mandelbrot escape number of a complex point (cr + i*ci)"
  (if (>= i max)         0
      (>= (+ tr2 ti2) 4)  i
      (let [(tr ti) (values (+ (- tr2 ti2) cr)
                            (+ (* tr ti 2) ci))]
        (mandelzahl cr ci max (+ i 1)
                    tr ti (* tr tr) (* ti ti)))))

(var tab []) ;; memoization

(fn aclear []
  (set tab []))

; ?. does not work??
(fn aget [x y]
   (when (not (. tab x))
    (tset tab x []))
  (. tab x y))

(fn aset [x y val]
  (when (not (. tab x))
    (tset tab x []))
  (tset tab x y val))

(local sw 240)
(local sh 136)
(local ratio (/ sw sh))

(fn mandel [w h x0 y0 max]
  "Entry point, generate a 'graphical' representation of the Mandelbrot set"
  (for [py 0 sh]
    ;;(var line {})
    (for [px 0 sw]
      (let [x (+ x0 (* w (/ px sw)))
            y (+ y0 (* h (/ py sh)))
            mz (or (aget px py) (mandelzahl x y max 0 0 0 0 0))]
        (aset px py mz)
        (pix px py (% mz 16))))))

(global r math.random)

(var h 1.6) 
(var w (* h ratio))
(var (x0 y0) (values -2.2 -1.2))
(var max 30)
(local zoomFactor 1.25)
(local moveFactor 0.1) 
(var hide-info-until 0)

(global TIC
 (fn tic []
  ;;(cls 0)
  (when (> (btnp) 0)
    (var (nw nh nx ny) (values w h x0 y0))
    (aclear)
    (when (btnp 0) (set ny (- y0 (* h moveFactor)))) ;; up
    (when (btnp 1) (set ny (+ y0 (* h moveFactor)))) ;; down
    (when (btnp 2) (set nx (- x0 (* w moveFactor)))) ;; left
    (when (btnp 3) (set nx (+ x0 (* w moveFactor)))) ;; right
    (when (btnp 4) ;; A btn (z) -> zoom in
      (set nw (/ w zoomFactor))
      (set nh (/ h zoomFactor))
      (set nx (+ x0 (* nw moveFactor)))
      (set ny (+ y0 (* nh moveFactor))))
    (when (btnp 5) ;; B btn (x) -> zoom out
      (set nw (* w zoomFactor))
      (set nh (* h zoomFactor))
      (set nx (- x0 (* nw moveFactor)))
      (set ny (- y0 (* nh moveFactor))))
    (set (w h x0 y0) (values nw nh nx ny))
    (when (btnp 6) ;; X btn (a) -> increase max
      (set max (+ max 5)))
    (when (btnp 7) ;; Y btn (s) --> decrease max
      (set max (- max 5)))
    (set hide-info-until (+ t 300)))
  (mandel w h x0 y0 max)
  ;;(print (.. hide-info-until " - " (btnp)) 0 0 12)

  (when (>= t hide-info-until)
   (rect 5 5 67 24 4)
   (rectb 5 5 67 24 3)
   (print "Arrows move" 7 7 0)
   (print "A/B zoom" 7 14 0)
   (print "X/Y depth" 7 21 0))
  (set t (+ t 1))))