We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
HI Can anyone help me to implement trigonometric function in lpc2148 ?
Thanks
from the link, do you mean arctan, then
//*****************************************************/ // Fast arctan2 //*****************************************************/ float CHC_atan(float q, float i) { float angle, abs_q, r, extra; abs_q = fabs(q); if (i >= 0) { r = CHC_iMoreThan(abs_q, i); extra = 0.7853982f; } else { r = CHC_iLessThan(abs_q, i); extra = 2.3561945f; } angle = CHC_fast_atan_calc(r) + extra; if (q < 0) angle *= -1; return angle; } //----------------------------------------------------- //----------------------------------------------------- // allocated in hardware static inline float CHC_iMoreThan(float abs_q, float i) { return ((i - abs_q) / (i + abs_q)); } //----------------------------------------------------- //----------------------------------------------------- // allocated in hardware static inline float CHC_iLessThan(float abs_q, float i) { return ((i + abs_q) / (abs_q - i)); } //----------------------------------------------------- //----------------------------------------------------- // allocated in hardware static inline float CHC_fast_atan_calc(float r) { return (0.1963f * r * r * r - 0.9817f * r); } //*****************************************************/
actually
//*****************************************************/ // Fast arctan2 software implementation //*****************************************************/ //float SW_atan(float q, float i) //{ // float angle, abs_q, r; // // abs_q = fabs(q) + 1e-10; // kludge to prevent 0/0 condition // if (i >= 0) // { // r = (i - abs_q) / (i + abs_q); // angle = 0.1963f * r * r * r - 0.9817f * r + 0.7853982f; // } // else // { // r = (i + abs_q) / (abs_q - i); // angle = 0.1963f * r * r * r - 0.9817f * r + 2.3561945f; // } // if (q < 0) angle *= -1; // // return angle; //} //*****************************************************/