anchor.diff:  (defun omg-cairo (file-name)
     "Test writing a PNG file with Cairo."
     (let* ((width 800)
  -		(height 600)
  -		(cnt 250)
  -		(tmin 0.0)
  -		(tmax (* 2.0 pi))
  -		(dt (/ (- tmax tmin) cnt))
  -		(xp nil)
  -		(yp nil))
  -	(cl-cairo2:with-png-file ((home-dir file-name) :argb32 width height)
  -							 (cl-cairo2:set-source-rgba 1.0 1.0 1.0 1.0)
  -							 (cl-cairo2:paint)
  -							 (cl-cairo2:translate 400.0 300.0)
  -							 (cl-cairo2:scale 120.0 120.0)
  -							 (cl-cairo2:set-line-width 0.01)
  -							 (cl-cairo2:set-source-rgba 0 0 0 1.0)
  -							 (dotimes (i cnt)
  -							   (let* ((tv (* i dt))
  -									  (x (* (cos (* 7.0 tv)) (cos tv) 2.0))
  -									  (y (* (cos (* 7.0 tv)) (sin tv) 2.0)))
  -								 (if (not (and xp yp))
  -									 (cl-cairo2:move-to x y)
  -								   (cl-cairo2:line-to x y))
  -								 (setf xp x)
  -								 (setf yp y)))
  -							   (cl-cairo2:stroke))))
  +         (height 600)
  +         (cnt 250)
  +         (tmin 0.0)
  +         (tmax (* 2.0 pi))
  +         (dt (/ (- tmax tmin) cnt))
  +         (xp nil)
  +         (yp nil))
  +    (cl-cairo2:with-png-file ((home-dir file-name) :argb32 width height)
  +                             (cl-cairo2:set-source-rgba 1.0 1.0 1.0 1.0)
  +                             (cl-cairo2:paint)
  +                             (cl-cairo2:translate 400.0 300.0)
  +                             (cl-cairo2:scale 120.0 120.0)
  +                             (cl-cairo2:set-line-width 0.01)
  +                             (cl-cairo2:set-source-rgba 0 0 0 1.0)
  +                             (dotimes (i cnt)
  +                               (let* ((tv (* i dt))
  +                                      (x (* (cos (* 7.0 tv)) (cos tv) 2.0))
  +                                      (y (* (cos (* 7.0 tv)) (sin tv) 2.0)))
  +                                 (if (not (and xp yp))
  +                                     (cl-cairo2:move-to x y)
  +                                   (cl-cairo2:line-to x y))
  +                                 (setf xp x)
  +                                 (setf yp y)))
  +                             (cl-cairo2:stroke))))
   
   (defun deg-to-rad (deg)
     "Convert degrees to radians."
  
positive.code: (defun increment-pixel (img x y)
    "Increment each color component of the pixel in img at location x,y by 1"
    (if (< (aref img y x 0) 255)
  	  (progn 
  		(incf (aref img y x 0))
  		(incf (aref img y x 1))
  		(incf (aref img y x 2)))))
  
  (defun assign-pixel (img x y iter iterations)
    "Color the pixel of img at location x,y depending on the number of iterations and the max iterations"
  
negative.code:         (img (png:make-image height width 3 8)))
      
      (dotimes (i iterations)
        (let ((xx (- (sin (* a y)) (* z (cos (* b x)))))
              (yy (- (sin (* c x)) (cos (* d y))))
              (zz (* e (sin x))))
          (setf x xx
                y yy
                z zz)
          (if (and (< xx xxmax) (> xx xxmin)
                   (< yy yymax) (> yy yymin))
              (let ((xxx (* (- xx xxmin) xinc))
                    (yyy (* (- yy yymin) yinc)))
                (if (and (< xxx width) (< yyy height))
                    (increment-pixel img (truncate xxx) (truncate yyy)))))))
  
      (with-open-file (output file-name :element-type '(unsigned-byte 8) :direction :output :if-exists :supersede)
                      (png:encode img output))))
  