Skip to content

SourceLizi/stm32-cordic

Repository files navigation

CORDIC float point Implementation

See Coordinate rotation digital computer algorithm (CORDIC) test and performance verification for detail

run cordic_gen.exe to generate the table

cordic_benchmark.c to benchmark the errors

------- CORDIC HYPER vectoring (ln)---------
+10.500000 ln:+2.351375 err:-1.541667e-007
+11.000000 ln:+2.397895 err:+6.335275e-008
+11.500000 ln:+2.442347 err:-4.624932e-007
+12.000000 ln:+2.484906 err:-4.531938e-007
+12.500000 ln:+2.525729 err:+5.823691e-008
+13.000000 ln:+2.564949 err:-3.218170e-007
+13.500000 ln:+2.602690 err:+5.759761e-008
+14.000000 ln:+2.639058 err:+3.066457e-007
+14.500000 ln:+2.674149 err:-8.985622e-008
+15.000000 ln:+2.708050 err:-4.269323e-007
+15.500000 ln:+2.740840 err:+4.111029e-007
+16.000000 ln:+2.772588 err:-4.692185e-007
+16.500000 ln:+2.803360 err:+8.128219e-008
+17.000000 ln:+2.833213 err:-1.474103e-008
+17.500000 ln:+2.862201 err:-1.439300e-007
+18.000000 ln:+2.890371 err:-9.121015e-007
+18.500000 ln:+2.917771 err:+1.304951e-007
+19.000000 ln:+2.944439 err:+4.319969e-007
+19.500000 ln:+2.970414 err:-3.038876e-007

------- CORDIC CORRD vectoring (sin,cos)-------
-3.141593 sin:+0.000000 err:+3.894144e-007 cos:-1.000000 err:-3.576279e-007
-2.941593 sin:-0.198669 err:+9.667296e-008 cos:-0.980066 err:+2.862977e-007
-2.741593 sin:-0.389419 err:-2.523636e-007 cos:-0.921061 err:-1.672711e-007
-2.541593 sin:-0.564643 err:-3.868819e-007 cos:-0.825336 err:-3.833426e-008
-2.341593 sin:-0.717357 err:-3.997367e-007 cos:-0.696707 err:-2.558243e-007
-2.141593 sin:-0.841471 err:+3.480075e-007 cos:-0.540302 err:+2.140751e-008
-1.941592 sin:-0.932039 err:-3.413226e-007 cos:-0.362358 err:-4.712497e-008
-1.741592 sin:-0.985450 err:-1.383018e-007 cos:-0.169967 err:-1.551991e-007
-1.541592 sin:-0.999574 err:+6.084155e-009 cos:0.029200 err:+1.416247e-007
-1.341592 sin:-0.973848 err:+4.480574e-008 cos:0.227202 err:-1.202036e-008
-1.141592 sin:-0.909297 err:+3.691255e-008 cos:0.416147 err:-3.162128e-007
-0.941592 sin:-0.808496 err:+4.217002e-007 cos:0.588501 err:+3.094226e-008
-0.741592 sin:-0.675463 err:+3.074112e-007 cos:0.737394 err:-1.064234e-007
-0.541592 sin:-0.515501 err:+4.644249e-008 cos:0.856889 err:-2.838289e-007
-0.341592 sin:-0.334988 err:-5.062982e-008 cos:0.942223 err:+2.592798e-007
-0.141592 sin:-0.141120 err:-1.709623e-007 cos:0.989992 err:-4.589449e-008
+0.058408 sin:+0.058375 err:+5.141468e-007 cos:0.998294 err:-2.830216e-007
+0.258408 sin:+0.255541 err:-1.020334e-007 cos:0.966798 err:+1.987352e-007
+0.458408 sin:+0.442521 err:+1.231479e-007 cos:0.896758 err:+4.492321e-008
+0.658408 sin:+0.611858 err:-1.509486e-007 cos:0.790968 err:+8.083254e-008
+0.858408 sin:+0.756803 err:-1.519870e-007 cos:0.653643 err:+1.176212e-007
+1.058408 sin:+0.871576 err:+3.809421e-007 cos:0.490260 err:-1.816514e-007
+1.258408 sin:+0.951602 err:-8.491592e-008 cos:0.307333 err:-6.382278e-009
+1.458408 sin:+0.993691 err:-3.208399e-007 cos:0.112153 err:+9.369977e-007
+1.658408 sin:+0.996164 err:-1.273953e-007 cos:-0.087500 err:-4.143373e-007
+1.858408 sin:+0.958924 err:-7.528623e-008 cos:-0.283663 err:-2.420350e-007
+2.058408 sin:+0.883454 err:-8.908094e-009 cos:-0.468517 err:-7.591539e-009
+2.258408 sin:+0.772764 err:+2.644829e-007 cos:-0.634693 err:+4.624406e-007
+2.458408 sin:+0.631265 err:-8.230699e-007 cos:-0.775567 err:-6.016921e-007
+2.658408 sin:+0.464602 err:-2.974728e-008 cos:-0.885520 err:-1.949045e-007
+2.858408 sin:+0.279415 err:-3.175665e-009 cos:-0.960170 err:+7.385469e-008
+3.058408 sin:+0.083089 err:+2.643895e-007 cos:-0.996542 err:+1.762226e-007

------- CORDIC CORRD vectoring (atan,sqrt)-------
-1.570796,+1.196020 atan:+1.570796 err:+3.141593e+000 sqrt:1.196020 err:+1.192093e-007
-1.470796,+0.536760 atan:-1.470797 err:-5.960464e-007 sqrt:0.536760 err:+5.364418e-007
-1.370796,+1.059969 atan:-1.370796 err:+0.000000e+000 sqrt:1.059969 err:+2.384186e-007
-1.270796,+0.274728 atan:-1.270796 err:-1.192093e-007 sqrt:0.274728 err:+1.788139e-007
-1.170796,+0.014893 atan:-1.170815 err:-1.883507e-005 sqrt:0.014893 err:+3.082678e-007
-1.070796,+0.429273 atan:-1.070797 err:-5.960464e-007 sqrt:0.429274 err:+3.278255e-007
-0.970796,+1.917173 atan:-0.970796 err:-2.384186e-007 sqrt:1.917174 err:+7.152557e-007
-0.870796,+1.353374 atan:-0.870796 err:-1.192093e-007 sqrt:1.353374 err:+2.384186e-007
-0.770796,+0.067080 atan:-0.770797 err:-1.192093e-006 sqrt:0.067081 err:+8.344650e-007
-0.670796,+1.693716 atan:-0.670796 err:+1.192093e-007 sqrt:1.693717 err:+3.576279e-007
-0.570796,+0.005371 atan:-0.570785 err:+1.120567e-005 sqrt:0.005371 err:+9.452924e-008
-0.470796,+1.010102 atan:-0.470796 err:-3.278255e-007 sqrt:1.010102 err:+3.576279e-007
-0.370796,+0.632649 atan:-0.370796 err:+2.980232e-007 sqrt:0.632649 err:+2.980232e-007
-0.270796,+1.486801 atan:-0.270796 err:-2.980232e-008 sqrt:1.486802 err:+7.152557e-007
-0.170796,+1.863643 atan:-0.170796 err:+1.192093e-007 sqrt:1.863644 err:+3.576279e-007
-0.070796,+0.602313 atan:-0.070796 err:+2.235174e-008 sqrt:0.602314 err:+3.576279e-007
+0.029204,+1.718925 atan:+0.029204 err:-7.264316e-008 sqrt:1.718925 err:+5.960464e-007
+0.129204,+0.549516 atan:+0.129203 err:-8.791685e-007 sqrt:0.549517 err:+6.556511e-007
+0.229204,+1.980346 atan:+0.229204 err:-1.490116e-008 sqrt:1.980346 err:+2.384186e-007
+0.329204,+1.528428 atan:+0.329203 err:-3.576279e-007 sqrt:1.528429 err:+5.960464e-007
+0.429204,+1.537828 atan:+0.429204 err:-2.086163e-007 sqrt:1.537828 err:+2.384186e-007
+0.529204,+0.024171 atan:+0.529198 err:-5.543232e-006 sqrt:0.024171 err:+6.426126e-007
+0.629204,+0.594073 atan:+0.629203 err:-4.172325e-007 sqrt:0.594074 err:+3.576279e-007
+0.729204,+1.077609 atan:+0.729204 err:-5.960464e-008 sqrt:1.077609 err:+2.384186e-007
+0.829204,+1.206763 atan:+0.829204 err:-1.788139e-007 sqrt:1.206764 err:+7.152557e-007
+0.929204,+0.602741 atan:+0.929204 err:-5.960464e-008 sqrt:0.602741 err:+1.192093e-007
+1.029204,+0.497269 atan:+1.029204 err:-1.192093e-007 sqrt:0.497269 err:+5.066395e-007
+1.129204,+1.268471 atan:+1.129204 err:-2.384186e-007 sqrt:1.268472 err:+5.960464e-007
+1.229204,+0.483902 atan:+1.229204 err:+1.192093e-007 sqrt:0.483902 err:+8.940697e-008
+1.329204,+0.569964 atan:+1.329204 err:+2.384186e-007 sqrt:0.569964 err:+5.960464e-008
+1.429204,+1.156468 atan:+1.429204 err:+1.192093e-007 sqrt:1.156469 err:+3.576279e-007
+1.529204,+1.737297 atan:+1.529204 err:-2.384186e-007 sqrt:1.737297 err:+4.768372e-007