math.h

hardware coprocessor instructions [詳細]

#include "nds/ndstypes.h"

ソースコードを見る。

マクロ定義

#define REG_DIVCNT   (*(vu16*)(0x04000280))
#define REG_DIV_NUMER   (*(vs64*) (0x04000290))
#define REG_DIV_NUMER_L   (*(vs32*) (0x04000290))
#define REG_DIV_NUMER_H   (*(vs32*) (0x04000294))
#define REG_DIV_DENOM   (*(vs64*) (0x04000298))
#define REG_DIV_DENOM_L   (*(vs32*) (0x04000298))
#define REG_DIV_DENOM_H   (*(vs32*) (0x0400029C))
#define REG_DIV_RESULT   (*(vs64*) (0x040002A0))
#define REG_DIV_RESULT_L   (*(vs32*) (0x040002A0))
#define REG_DIV_RESULT_H   (*(vs32*) (0x040002A4))
#define REG_DIVREM_RESULT   (*(vs64*) (0x040002A8))
#define REG_DIVREM_RESULT_L   (*(vs32*) (0x040002A8))
#define REG_DIVREM_RESULT_H   (*(vs32*) (0x040002AC))
#define REG_SQRTCNT   (*(vu16*)(0x040002B0))
#define REG_SQRT_PARAM   (*(vs64*) (0x040002B8))
#define REG_SQRT_PARAM_L   (*(vs32*) (0x040002B8))
#define REG_SQRT_PARAM_H   (*(vs32*) (0x040002BC))
#define REG_SQRT_RESULT   (*(vu32*) (0x040002B4))
#define DIV_64_64   2
#define DIV_64_32   1
#define DIV_32_32   0
#define DIV_BUSY   (1<<15)
#define SQRT_64   1
#define SQRT_32   0
#define SQRT_BUSY   (1<<15)

関数

int32 divf32 (int32 num, int32 den)
int32 mulf32 (int32 a, int32 b)
 Fixed point multiply.
int32 sqrtf32 (int32 a)
 Fixed point sqrt.
int32 div32 (int32 num, int32 den)
 integer divide
int32 mod32 (int32 num, int32 den)
 integer modulous
int32 div64 (int64 num, int32 den)
 integer 64 bit divide
int32 mod64 (int64 num, int32 den)
 integer 64 bit modulous
u32 sqrt32 (int a)
 integer sqrt
u32 sqrt64 (long long a)
 integer sqrt
void crossf32 (int32 *a, int32 *b, int32 *result)
 1.19.12 fixed point cross product function result = AxB
int32 dotf32 (int32 *a, int32 *b)
 1.19.12 fixed point dot product function result = A dot B
void normalizef32 (int32 *a)
 1.19.12 fixed point normalize function A = A / |A|

説明

hardware coprocessor instructions


関数

STATIC_INLvoid crossf32 ( int32 *  a,
int32 *  b,
int32 *  result 
)

1.19.12 fixed point cross product function result = AxB

引数:
a pointer to fixed 3x3 matrix
b pointer to fixed 3x3 matrix
result pointer to fixed 3x3 matrix Cross product x = Ay * Bz - By * Az y = Az * Bx - Bz * Ax z = Ax * By - Bx * Ay
STATIC_INLint32 div32 ( int32  num,
int32  den 
)

integer divide

引数:
num numerator
den denominator
戻り値:
returns 32 bit integer result
STATIC_INLint32 div64 ( int64  num,
int32  den 
)

integer 64 bit divide

引数:
num 64 bit numerator
den 32 bit denominator
戻り値:
returns 32 bit integer result
STATIC_INLint32 dotf32 ( int32 *  a,
int32 *  b 
)

1.19.12 fixed point dot product function result = A dot B

引数:
a pointer to fixed 3x3 matrix
b pointer to fixed 3x3 matrix
戻り値:
32 bit integer result Dot Product result = Ax * Bx + Ay * By + Az * Bz
STATIC_INLint32 mod32 ( int32  num,
int32  den 
)

integer modulous

引数:
num numerator
den denominator
戻り値:
returns 32 bit integer remainder
STATIC_INLint32 mod64 ( int64  num,
int32  den 
)

integer 64 bit modulous

引数:
num 64 bit numerator
den 32 bit denominator
戻り値:
returns 32 bit integer remainder
STATIC_INLstatic int32 mulf32 ( int32  a,
int32  b 
)

Fixed point multiply.

引数:
a Takes 20.12
b Takes 20.12
戻り値:
returns 20.12 result
STATIC_INLvoid normalizef32 ( int32 *  a  ) 

1.19.12 fixed point normalize function A = A / |A|

引数:
a pointer to fixed 3x3 matrix Normalize Ax = Ax / mag Ay = Ay / mag Az = Az / mag
STATIC_INLint32 sqrt32 ( int  a  ) 

integer sqrt

引数:
a 32 bit integer argument
戻り値:
returns 32 bit integer result
STATIC_INLint32 sqrt64 ( long long  a  ) 

integer sqrt

引数:
a 64 bit integer argument
戻り値:
returns 32 bit integer result
STATIC_INLint32 sqrtf32 ( int32  a  ) 

Fixed point sqrt.

引数:
a Takes 20.12
戻り値:
returns 20.12 result
 全て クラス ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義
libndsに対してMon Apr 26 23:39:50 2010に生成されました。  doxygen 1.6.3