|
libnds
|
hardware coprocessor math instructions. More...
#include <nds/ndstypes.h>Functions | |
| ARM_CODE void | crossf32 (const int32_t *a, const int32_t *b, int32_t *result) |
| 20.12 fixed point cross product. | |
| static int32_t | div32 (int32_t num, int32_t den) |
| Integer divide. | |
| static void | div32_asynch (int32_t num, int32_t den) |
| Asynchronous integer divide start. | |
| static int32_t | div32_result (void) |
| Asynchronous integer divide result. | |
| static int32_t | div64 (int64_t num, int32_t den) |
| Integer 64 bit divide. | |
| static void | div64_asynch (int64_t num, int32_t den) |
| Asynchronous integer 64 bit divide start. | |
| static int32_t | div64_result (void) |
| Asynchronous integer 64 bit divide result. | |
| static int32_t | divf32 (int32_t num, int32_t den) |
| Fixed point divide. | |
| static void | divf32_asynch (int32_t num, int32_t den) |
| Asynchronous fixed point divide start. | |
| static int32_t | divf32_result (void) |
| Asynchronous fixed point divide result. | |
| static int32_t | dotf32 (int32_t *a, int32_t *b) |
| 20.12 fixed point dot product. | |
| ARM_CODE float | hw_sqrtf (float x) |
| 32-bit floating point sqrt | |
| static int32_t | mod32 (int32_t num, int32_t den) |
| Integer modulo. | |
| static void | mod32_asynch (int32_t num, int32_t den) |
| Asynchronous integer modulo start. | |
| static int32_t | mod32_result (void) |
| Asynchronous integer modulo result. | |
| static int32_t | mod64 (int64_t num, int32_t den) |
| Integer 64 bit modulo. | |
| static void | mod64_asynch (int64_t num, int32_t den) |
| Asynchronous integer 64 bit modulo start. | |
| static int32_t | mod64_result (void) |
| Asynchronous integer 64 bit modulo result. | |
| static int32_t | mulf32 (int32_t a, int32_t b) |
| Fixed point multiply. | |
| ARM_CODE void | normalizef32 (int32_t *a) |
| 20.12 fixed point normalize (set magnitude to 1.0 and keep the direction). | |
| static uint32_t | sqrt32 (uint32_t a) |
| 32-bit integer sqrt. | |
| static void | sqrt32_asynch (uint32_t a) |
| Asynchronous 32-bit integer sqrt start. | |
| static uint32_t | sqrt32_result (void) |
| Asynchronous 32-bit integer sqrt result. | |
| static uint32_t | sqrt64 (uint64_t a) |
| 64-bit integer sqrt. | |
| static void | sqrt64_asynch (uint64_t a) |
| Asynchronous 64-bit integer sqrt start. | |
| static uint32_t | sqrt64_result (void) |
| Asynchronous 64-bit integer sqrt result. | |
| static uint32_t | sqrtf32 (uint32_t a) |
| Fixed point sqrt. | |
| static void | sqrtf32_asynch (uint32_t a) |
| Asynchronous fixed point sqrt start. | |
| static uint32_t | sqrtf32_result (void) |
| Asynchronous fixed point sqrt result. | |
hardware coprocessor math instructions.
| ARM_CODE void crossf32 | ( | const int32_t * | a, |
| const int32_t * | b, | ||
| int32_t * | result | ||
| ) |
20.12 fixed point cross product.
Cross product:
result = A x B x = Ay * Bz - By * Az y = Az * Bx - Bz * Ax z = Ax * By - Bx * Ay
| a | Pointer to fixed 3 dimensions vector. |
| b | Pointer to fixed 3 dimensions vector. |
| result | Pointer to fixed 3 dimensions vector that will contain the result. |
|
inlinestatic |
Integer divide.
| num | Numerator. |
| den | Denominator. |
|
inlinestatic |
Asynchronous integer divide start.
| num | Numerator. |
| den | Denominator. |
|
inlinestatic |
Asynchronous integer divide result.
|
inlinestatic |
Integer 64 bit divide.
| num | 64 bit numerator. |
| den | 32 bit denominator. |
|
inlinestatic |
Asynchronous integer 64 bit divide start.
| num | 64 bit numerator. |
| den | 32 bit denominator. |
|
inlinestatic |
Asynchronous integer 64 bit divide result.
|
inlinestatic |
Fixed point divide.
| num | 20.12 numerator. |
| den | 20.12 denominator. |
|
inlinestatic |
Asynchronous fixed point divide start.
| num | 20.12 numerator. |
| den | 20.12 denominator. |
|
inlinestatic |
Asynchronous fixed point divide result.
|
inlinestatic |
20.12 fixed point dot product.
Dot Product:
Result = Ax * Bx + Ay * By + Az * Bz
| a | Pointer to fixed 3 dimensions vector. |
| b | Pointer to fixed 3 dimensions vector. |
| ARM_CODE float hw_sqrtf | ( | float | x | ) |
32-bit floating point sqrt
| x | Valid 32 bit non-negative floating point value. |
|
inlinestatic |
Integer modulo.
| num | Numerator. |
| den | Denominator. |
|
inlinestatic |
Asynchronous integer modulo start.
| num | Numerator. |
| den | Denominator. |
|
inlinestatic |
Asynchronous integer modulo result.
|
inlinestatic |
Integer 64 bit modulo.
| num | 64 bit numerator. |
| den | 32 bit denominator. |
|
inlinestatic |
Asynchronous integer 64 bit modulo start.
| num | 64 bit numerator. |
| den | 32 bit denominator. |
|
inlinestatic |
Asynchronous integer 64 bit modulo result.
|
inlinestatic |
Fixed point multiply.
| a | 20.12 value. |
| b | 20.12 value. |
| ARM_CODE void normalizef32 | ( | int32_t * | a | ) |
20.12 fixed point normalize (set magnitude to 1.0 and keep the direction).
| a | Pointer to the vector to normalize. |
|
inlinestatic |
32-bit integer sqrt.
| a | 32 bit positive integer value. |
|
inlinestatic |
Asynchronous 32-bit integer sqrt start.
| a | 32 bit positive integer value. |
|
inlinestatic |
Asynchronous 32-bit integer sqrt result.
|
inlinestatic |
64-bit integer sqrt.
| a | 64 bit positive integer value. |
|
inlinestatic |
Asynchronous 64-bit integer sqrt start.
| a | 64 bit positive integer value. |
|
inlinestatic |
Asynchronous 64-bit integer sqrt result.
|
inlinestatic |
Fixed point sqrt.
| a | 20.12 positive value. |
|
inlinestatic |
Asynchronous fixed point sqrt start.
| a | 20.12 positive value. |
|
inlinestatic |
Asynchronous fixed point sqrt result.