blob: 6742c90dfefb8ccd92cce7013b83125e0c055796 [file] [log] [blame]
David Turnerebe85f52001-05-11 14:25:57 +00001# compute arctangent table for CORDIC computations in fttrigon.c
2import sys, math
3
David Turnere664efa2004-06-04 17:41:59 +00004#units = 64*65536.0 # don't change !!
Alexei Podtelezhnikovcbf3fb32012-12-21 14:20:25 -05005units = 180 * 2**16
David Turnerebe85f52001-05-11 14:25:57 +00006scale = units/math.pi
7shrink = 1.0
8comma = ""
9
David Turnerebe85f52001-05-11 14:25:57 +000010print ""
11print "table of arctan( 1/2^n ) for PI = " + repr(units/65536.0) + " units"
12
Alexei Podtelezhnikovb4ac30b2013-01-02 22:21:37 -050013for n in range(1,32):
David Turnerebe85f52001-05-11 14:25:57 +000014
Alexei Podtelezhnikovcbf3fb32012-12-21 14:20:25 -050015 x = 0.5**n # tangent value
David Turnerebe85f52001-05-11 14:25:57 +000016
Alexei Podtelezhnikovcbf3fb32012-12-21 14:20:25 -050017 angle = math.atan(x) # arctangent
18 angle2 = round(angle*scale) # arctangent in FT_Angle units
David Turnerebe85f52001-05-11 14:25:57 +000019
20 if angle2 <= 0:
21 break
David Turnere664efa2004-06-04 17:41:59 +000022
David Turnerebe85f52001-05-11 14:25:57 +000023 sys.stdout.write( comma + repr( int(angle2) ) )
24 comma = ", "
David Turnere664efa2004-06-04 17:41:59 +000025
Alexei Podtelezhnikovcbf3fb32012-12-21 14:20:25 -050026 shrink /= math.sqrt( 1 + x*x )
David Turnerebe85f52001-05-11 14:25:57 +000027
28print
29print "shrink factor = " + repr( shrink )
Alexei Podtelezhnikovcbf3fb32012-12-21 14:20:25 -050030print "shrink factor 2 = " + repr( int( shrink * (2**32) ) )
31print "expansion factor = " + repr( 1/shrink )
David Turnerebe85f52001-05-11 14:25:57 +000032print ""
Werner Lemberg9b774e22007-01-16 06:11:27 +000033