19 lines
362 B
C
Executable File
19 lines
362 B
C
Executable File
#include "hwo/fixpoint.h"
|
|
|
|
/* fp_asin() returns: -90..+90 */
|
|
fixpoint_t fp_asin(fixpoint_t sin)
|
|
{
|
|
if ((sin == 0) || (sin > fp_make(1)))
|
|
return 0;
|
|
if (sin == fp_make(1))
|
|
return fp_make(90);
|
|
if (sin == fp_make(-1))
|
|
return fp_make(-90);
|
|
if (sin > 0)
|
|
return fp_sin_lookup_reverse(sin);
|
|
if (sin < 0)
|
|
return -fp_sin_lookup_reverse(-sin);
|
|
return 0;
|
|
};
|
|
|