Fixed point inverse sine lookup table. allegro game programming library.
#include <allegro.h>
fixed fixasin(fixed x);
This function finds the inverse sine of a value using a lookup table. The input value must be a fixed point value. The inverse sine is defined only in the domain from `-1' to `1'. Outside of this input range, the function will set `errno' to EDOM and return zero. Example:
float angle; fixed val; /* Sets `val' to a right binary angle (`64'). */ val = fixasin(itofix(1)); /* Sets `angle' to 0.2405. */ angle = fixtof(fixmul(fixasin(ftofix(0.238)), fixtorad_r)); /* This will trigger the assert. */ val = fixasin(ftofix(-1.09)); ASSERT(!errno);
Returns the inverse sine of a fixed point value, measured as fixed point binary format angle, or zero if the input was out of the range. All return values of this function will be in the range `-64' to `64'.