www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/01/03/19:30:14

From: murray AT southeast DOT net (Murray Stokely)
Newsgroups: comp.os.msdos.djgpp
Subject: Fixed Point (Optimization)
Date: Fri, 03 Jan 1997 20:31:53 GMT
Organization: ACiD Productions
Lines: 40
Message-ID: <32cd6b2c.4726585@nntp.southeast.net>
Reply-To: murray AT southeast DOT net
NNTP-Posting-Host: ts4-025.southeast.net
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

     Is Fixed-Point math still a neccesity for today's computers with
all their built it FPU's, etc?  How much faster can it be?  Anyway,
this is the same code procedure from our long thread on optimization;
I've recently come back to it, because I still see room for
improvement.  What can be done to it.  Fixed point?  Lookup tables?

void calculate_tfm(int diameter, char magnification)
{
        int a,b,x,y,z,s,x2,y2;
        int radius,r2;
        z=0;
        radius=diameter/2;
        s=round(sqrt(abs((radius-magnification) *
(radius+magnification))));
        s=s*s;
        r2=radius*radius;
        for(y=-radius;y<radius;y++)
        {
                y2=y*y;
                for(x=-radius;x<radius;x++)
                {
                        x2=x*x;
                        if ((x2 + y2) >= s)
                        {
                                a=x;
                                b=y;
                        } else {
                                z=round(sqrt(r2-x2-y2));
                                a=round(x*magnification/z);
                                b=round(y*magnification/z);
                        }

tfm[(y+radius)*diameter+(x+radius)]=(b+radius)*diameter+(a+radius);
                } // end of for x
        } // end of for y
}


Murray Stokely ( murray AT southeast DOT net )
http://www.cdrom.com/pub/artpacks

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019