#ifndef __CORDIC_H 
#define __CORDIC_H

// CORDIC Angle Mode
#define CORDIC_ANGLE_DEGREE 0x00
#define CORDIC_ANGLE_RADIUS 0x01

float    CORDIC_Sin(float fDegree);
float    CORDIC_Cos(float fDegree);
float    CORDIC_Sinh(float fValue);
float    CORDIC_Cosh(float fValue);
float    CORDIC_ArcTan(float fValueX, float fValueY);
float    CORDIC_ArcTanh(float fValueX, float fValueY);
float    CORDIC_Ghypot(float fValueX, float fValueY);   // (X^2+Y^2)^0.5
float    CORDIC_DSQUE(float fValueX, float fValueY);    // (X^2-Y^2)^0.5

float    CORDIC_Q20ToFloat(uint32_t nQValue);
uint32_t CORDIC_FloatToQ20(float fValue);

#endif
