34 lines
784 B
Python
34 lines
784 B
Python
# compute arctangent table for CORDIC computations in fttrigon.c
|
|
import sys, math
|
|
|
|
#units = 64*65536.0 # don't change !!
|
|
units = 180 * 2**16
|
|
scale = units/math.pi
|
|
shrink = 1.0
|
|
comma = ""
|
|
|
|
print ""
|
|
print "table of arctan( 1/2^n ) for PI = " + repr(units/65536.0) + " units"
|
|
|
|
for n in range(1,32):
|
|
|
|
x = 0.5**n # tangent value
|
|
|
|
angle = math.atan(x) # arctangent
|
|
angle2 = round(angle*scale) # arctangent in FT_Angle units
|
|
|
|
if angle2 <= 0:
|
|
break
|
|
|
|
sys.stdout.write( comma + repr( int(angle2) ) )
|
|
comma = ", "
|
|
|
|
shrink /= math.sqrt( 1 + x*x )
|
|
|
|
print
|
|
print "shrink factor = " + repr( shrink )
|
|
print "shrink factor 2 = " + repr( int( shrink * (2**32) ) )
|
|
print "expansion factor = " + repr( 1/shrink )
|
|
print ""
|
|
|