#include <hp48/lcd.h>
#define YMIN -1.10
#define YMAX 1.10
#define XMIN -2.85
#define XMAX 1.65
#define BREAKOUT 4
#define MAXITER 64
int
msetlev (float cx, float cy)
{
int i;
float x, y;
float x2, y2;
x = cx;
y = cy;
for (i = 1; i < MAXITER; i++)
{
x2 = x * x;
y2 = y * y;
if ((x2 + y2) >= BREAKOUT)
break;
y = 2 * x * y + cy;
x = x2 - y2 + cx;
}
return i;
}
int
main (int argc, char **argv)
{
eint x, y;
int l;
float cx, cy;
float deltax, deltay;
deltay = (YMAX - YMIN) / (float)LCD_HEIGHT;
deltax = (XMAX - XMIN) / (float)LCD_WIDTH;
initscr ();
clrscr ();
cy = YMIN;
for (y = 0; y < LCD_HEIGHT; y++)
{
cx = XMIN;
for (x = 0; x < LCD_WIDTH; x++)
{
setpixel (x, y);
l = msetlev (cx, cy);
if ((l < MAXITER) && (l & 0x01))
clrpixel (x, y);
cx += deltax;
}
cy += deltay;
}
exitscr ();
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1