Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!tut.cis.ohio-state.edu!tortoise.cis.ohio-state.edu!berenfie From: berenfie@tortoise.cis.ohio-state.edu (gregory neil berenfield) Newsgroups: comp.sys.amiga.tech Subject: Speeding up fractals in assembly Message-ID: <86849@tut.cis.ohio-state.edu> Date: 19 Dec 90 21:41:40 GMT Sender: news@tut.cis.ohio-state.edu Reply-To: Greg Berenfield Distribution: comp.sys.amiga.tech Organization: Ohio State University Computer and Information Science Lines: 28 I am currently trying to teach myself assembly language on the amiga and as a project, I thought I'd write a mandlebrot program in assembly that I originally wrote in C. I can open libraries, screens, windows etc. well and can generate a nice looking mandlebrot but what I'm after is SPEED! Firstly, my system is an A3000 68030/68882 25Mhz. I have a shareware copy of MandFXP by Cybersoft I believe, and that sucker can really splat mandelbrots in under 2 seconds! Mine is not nearly as fast. My technique is straightforward. For actual drawing, I open a custom screen & window and use a pointer to the rastport for drawing in. I use the _WritePixel & _SetAPen library calls to do the actual drawing. For testing a point to see if it is in the mandelbrot set, I use the 68882 fmove,fmul,fdiv calls to calculate in single floating point accuracy, the coordinate on the complex plane and use z->z^2+c calculations accordingly. The mandelbrot is drawn fairly quickly but not nearly as fast as MandFXP and I want to squeeze maximum speed out of this sucker. Does anyone know of a way of storing floating points as ints and doing some sort of bit shifting stuff to do fp arithmatic operations? Any help in optimizing this thing would be of great help. Thanks. Greg ------------------------------------------------------------------------------- anonymous: Who am I? | O.S.U. CIS | Columbus Ohio -------------------------------------------------------------------------------