20 lines
375 B
C
Executable File
20 lines
375 B
C
Executable File
#include "hwo/fixpoint.h"
|
|
|
|
/* fp_acos() returns: 0..180 */
|
|
fixpoint_t fp_acos(fixpoint_t cos)
|
|
{
|
|
if ((cos >= fp_make(1)))
|
|
return 0;
|
|
if (cos == fp_make(0))
|
|
return fp_make(90);
|
|
if (cos == fp_make(-1))
|
|
return fp_make(180);
|
|
if (cos > 0)
|
|
return fp_make(90) - fp_sin_lookup_reverse(cos);
|
|
if (cos < 0)
|
|
return fp_make(90) + fp_sin_lookup_reverse(-cos);
|
|
return 0;
|
|
};
|
|
|
|
|