#!/usr/bin/newlisp
;; Mandelbrot set f(z)=z^2+c where z is complex
(print "Content-Type: text/html\r\n\r\n")
(println [text]
<html>
<FONT FACE ="Helvetica, Arial, sans-serif">
<A HREF="http://newlisp.org">Home</A> |
<A HREF="http:syntax.cgi?mandelbrot.txt">Source</A>
</FONT>
<CENTER>
[/text])
(set ' colors '(
"800000" "800080" "8000FF" "808000"
"808080" "8080FF" "80FF00" "80FF80"
"80FFFF" "FF0000" "FF0080" "FF00FF"
"FF8000" "FF8080" "FF80FF" "FFFF00"))
(define (mandelbrot rows cols)
(set 's (div 5 cols)
'r-half (/ rows 2)
'c-half (/ cols 2))
(println "<table bgcolor=#f0f0f0>")
(dotimes (y rows)
(set 'imc (mul s (sub y r-half)))
(print "<tr>")
(dotimes (x cols)
(set 'rec (sub (mul s (sub x c-half)) 0.45)
're rec
'im imc
're2 (mul re re)
'im2 (mul im im)
'col cols)
(while (and ( < (add re2 im2) 4.0) (> col 0))
(set 'im (add (mul re im 2) imc)
're (add (sub re2 im2) rec)
're2 (mul re re)
'im2 (mul im im))
(dec col)) ; changed for 9.9.92
(if (= col 0)
(print "<td bgcolor=#000000> </td>")
(print "<td bgcolor=#" (colors (% (+ col 4) 16)) "> </td>")))
(println "</tr>"))
(println "</table>"))
(mandelbrot 25 80)
(print " </CENTER> <br><center><h4>created by newLISP v."
(sys-info -2)
"</h4></center></html>")
(exit)
syntax highlighting with newLISP and syntax.cgi