libcss
Loading...
Searching...
No Matches
Macros | Typedefs
fpmath.h File Reference
#include <stdint.h>
#include <limits.h>

Go to the source code of this file.

Macros

#define CSS_RADIX_POINT   10
 
#define FADD(a, b)   (css_add_fixed((a), (b)))
 
#define FSUB(a, b)   (css_subtract_fixed((a), (b)))
 
#define FMUL(a, b)   (css_multiply_fixed((a), (b)))
 
#define FDIV(a, b)   (css_divide_fixed((a), (b)))
 
#define FLTTOFIX(a)   ((css_fixed) ((a) * (float) (1 << CSS_RADIX_POINT)))
 
#define FIXTOFLT(a)   ((float) (a) / (float) (1 << CSS_RADIX_POINT))
 
#define INTTOFIX(a)   (css_int_to_fixed(a))
 
#define FIXTOINT(a)   ((a) >> CSS_RADIX_POINT)
 
#define TRUNCATEFIX(a)   (a & ~((1 << CSS_RADIX_POINT)- 1 ))
 
#define FIXFRAC(a)   (a & ((1 << CSS_RADIX_POINT)- 1 ))
 
#define F_PI_2   0x00000648 /* 1.5708 (PI/2) */
 
#define F_PI   0x00000c91 /* 3.1415 (PI) */
 
#define F_3PI_2   0x000012d9 /* 4.7124 (3PI/2) */
 
#define F_2PI   0x00001922 /* 6.2831 (2 PI) */
 
#define F_90   0x00016800 /* 90 */
 
#define F_180   0x0002d000 /* 180 */
 
#define F_270   0x00043800 /* 270 */
 
#define F_360   0x0005a000 /* 360 */
 
#define F_0_5   0x00000200 /* 0.5 */
 
#define F_1   0x00000400 /* 1 */
 
#define F_10   0x00002800 /* 10 */
 
#define F_72   0x00012000 /* 72 */
 
#define F_96   0x00018000 /* 96 */
 
#define F_100   0x00019000 /* 100 */
 
#define F_200   0x00032000 /* 200 */
 
#define F_255   0x0003FC00 /* 255 */
 
#define F_300   0x0004b000 /* 300 */
 
#define F_400   0x00064000 /* 400 */
 
#define FPCT_OF_INT_TOINT(p, i)   (FIXTOINT(FDIV((p * i), F_100)))
 

Typedefs

typedef int32_t css_fixed
 

Macro Definition Documentation

◆ CSS_RADIX_POINT

#define CSS_RADIX_POINT   10

◆ F_0_5

#define F_0_5   0x00000200 /* 0.5 */

◆ F_1

#define F_1   0x00000400 /* 1 */

◆ F_10

#define F_10   0x00002800 /* 10 */

◆ F_100

#define F_100   0x00019000 /* 100 */

◆ F_180

#define F_180   0x0002d000 /* 180 */

◆ F_200

#define F_200   0x00032000 /* 200 */

◆ F_255

#define F_255   0x0003FC00 /* 255 */

◆ F_270

#define F_270   0x00043800 /* 270 */

◆ F_2PI

#define F_2PI   0x00001922 /* 6.2831 (2 PI) */

◆ F_300

#define F_300   0x0004b000 /* 300 */

◆ F_360

#define F_360   0x0005a000 /* 360 */

◆ F_3PI_2

#define F_3PI_2   0x000012d9 /* 4.7124 (3PI/2) */

◆ F_400

#define F_400   0x00064000 /* 400 */

◆ F_72

#define F_72   0x00012000 /* 72 */

◆ F_90

#define F_90   0x00016800 /* 90 */

◆ F_96

#define F_96   0x00018000 /* 96 */

◆ F_PI

#define F_PI   0x00000c91 /* 3.1415 (PI) */

◆ F_PI_2

#define F_PI_2   0x00000648 /* 1.5708 (PI/2) */

◆ FADD

#define FADD (   a,
 
)    (css_add_fixed((a), (b)))

◆ FDIV

#define FDIV (   a,
 
)    (css_divide_fixed((a), (b)))

◆ FIXFRAC

#define FIXFRAC (   a)    (a & ((1 << CSS_RADIX_POINT)- 1 ))

◆ FIXTOFLT

#define FIXTOFLT (   a)    ((float) (a) / (float) (1 << CSS_RADIX_POINT))

◆ FIXTOINT

#define FIXTOINT (   a)    ((a) >> CSS_RADIX_POINT)

◆ FLTTOFIX

#define FLTTOFIX (   a)    ((css_fixed) ((a) * (float) (1 << CSS_RADIX_POINT)))

◆ FMUL

#define FMUL (   a,
 
)    (css_multiply_fixed((a), (b)))

◆ FPCT_OF_INT_TOINT

#define FPCT_OF_INT_TOINT (   p,
 
)    (FIXTOINT(FDIV((p * i), F_100)))

◆ FSUB

#define FSUB (   a,
 
)    (css_subtract_fixed((a), (b)))

◆ INTTOFIX

#define INTTOFIX (   a)    (css_int_to_fixed(a))

◆ TRUNCATEFIX

#define TRUNCATEFIX (   a)    (a & ~((1 << CSS_RADIX_POINT)- 1 ))

Typedef Documentation

◆ css_fixed

typedef int32_t css_fixed