reman3/Rayman_X/cpa/public/MTH/Specif/SCA/SCA_sl12.h

285 lines
13 KiB
C

/*----------------------------------------------------------------------------------*/
/* Filename : SCA_sl12.h */
/* Author : Frederic Philippe */
/* : Marc Trabucato */
/* Target : PC */
/*----------------------------------------------------------------------------------*/
/* -----------------15/04/98 17:52-------------------
* Conversion : OK (avec version 23.04.98 19:26 (20523))
* --------------------------------------------------*/
#ifndef _SCA_sl12_H_
#define _SCA_sl12_H_
/*----------------------------------------------------------------------------------*/
/*-----------------*/
/* Fixed coma case */
/*-----------------*/
/* 1.19.12 */
/*---------------------------------*/
/* Specific Values for Fixed point */
/*---------------------------------*/
#define SCA_td_sl12 MTH_tdxReal
/*#define SCA_sl12_C_sl12ComaDecal 12*/
/*#define SCA_sl12_C_sl12ComaCoef 4096*/
/*#define SCA_sl12_C_dfMax 524000.0*/
/*#define SCA_sl12_C_dfMin (-SCA_sl12_C_dfMax)*/
/*#define SCA_sl12_C_sl12Max (0x7FFFFFE0)*/
/*#define SCA_sl12_C_sl12Min (0xEFFFFFE0)*/
/*#define SCA_sl12_C_sl12ForceMinus (0x80000000)*/
/*#define SCA_sl12_C_sl12ForcePlus (0x7FFFFFFF)*/
/*#define SCA_sl12_C_sl12Error (0x7FFFFFFF)*/
/*#define SCA_sl12_C_sl12NegMask (0x80000000)*/
/*#define SCA_sl12_C_sl12PosMask (0x7FFFFFFF)*/
/*#define SCA_sl12_C_sl12DecMask (0x00000FFF)*/
/*#define SCA_sl12_C_sl12EntMask (0xFFFFF000)*/
/*--------------------------------------------------------*/
/* ---------------- Constants ---------------------------*/
/*--------------------------------------------------------*/
#define SCA_sl12_C_ZERO MTH_C_ZERO
#define SCA_sl12_C_ONE MTH_C_ONE
/*--------------------------------------------------------*/
/* Conversion functions */
/*--------------------------------------------------------*/
__inline SCA_td_sl12 SCA_sl12_fn_sl12Double2Real( double _dfValue )
{
return MTH_M_xDoubleToReal( _dfValue );
}
/*--------------------------------------------------------*/
__inline double SCA_sl12_fn_Real2Double( SCA_td_sl12 _xValue )
{
return MTH_M_xRealToDouble( _xValue );
}
/*--------------------------------------------*/
/* Conversions : Macros definitions */
/*--------------------------------------------*/
#define SCA_sl12_M_sl12DoubleToReal(_dfValue) MTH_M_xDoubleToReal(_dfValue)
#define SCA_sl12_M_sl12FloatToReal(_fValue) MTH_M_xFloatToReal(_fValue)
#define SCA_sl12_M_sl12IntToReal(_iValue) MTH_M_xLongToReal(_iValue) /*???*/
#define SCA_sl12_M_RealToDouble(_xValue) MTH_M_xRealToDouble(_xValue)
#define SCA_sl12_M_RealToFloat(_xValue) MTH_M_xrealToFloat(_xValue)
#define SCA_sl12_M_RealToInt(_xValue) MTh_M_xRealToLong(_xValue) /*???*/
/*--------------------------------------------------------*/
/* Constantes */
/*--------------------------------------------------------*/
#define SCA_sl12_C_sl12Two MTH_C_2
/* ##CONSTANTE#--------------------------------------------------------------------------
Real Constantes declaration
---------------------------------------------------------------------------------------*/
#define SCA_sl12_C_InfinitPlus MTH_C_InfinitPlus
#define SCA_sl12_InfinitMinus MTH_C_InfinitMinus
#define SCA_sl12_EpsilonPlus MTH_C_EpsilonPlus
#define SCA_sl12_EpsilonMinus MTH_C_EpsilonMinus
#define SCA_sl12_Pi MTH_C_Pi
#define SCA_sl12_2Pi MTH_C_2Pi
#define SCA_sl12_PiBy2 MTH_C_PiBy2
#define SCA_sl12_PiBy4 MTH_C_PiBy4
#define SCA_sl12_PiBy8 MTH_C_PiBy8
#define SCA_sl12_PiBy180 MTH_C_PiBy180
#define SCA_sl12_180ByPi MTH_C_180ByPi
#define SCA_sl12_e MTH_C_e
#define SCA_sl12_MinusONE MTH_C_MinusONE
#define SCA_sl12_2 MTH_C_2
#define SCA_sl12_3 MTH_C_3
#define SCA_sl12_4 MTH_C_4
#define SCA_sl12_5 MTH_C_5
#define SCA_sl12_8 (double) 8.0
#define SCA_sl12_Minus2 MTH_C_Minus2
#define SCA_sl12_Minus3 MTH_C_Minus3
#define SCA_sl12_Minus4 MTH_C_Minus4
#define SCA_sl12_Minus5 MTH_C_Minus5
#define SCA_sl12_Inv2 MTH_C_Inv2
#define SCA_sl12_Inv3 MTH_C_Inv3
#define SCA_sl12_Inv4 MTH_C_Inv4
#define SCA_sl12_Inv5 MTH_C_Inv5
#define SCA_sl12_MinusInv2 MTH_C_MinusInv2
#define SCA_sl12_MinusInv3 MTH_C_MinusInv3
#define SCA_sl12_MinusInv4 MTH_C_MinusInv4
#define SCA_sl12_MinusInv5 MTH_C_MinusInv5
#define SCA_sl12_Sqrt2 MTH_C_Sqrt2
#define SCA_sl12_Sqrt3 MTH_C_Sqrt3
#define SCA_sl12_Sqrt4 MTH_C_Sqrt4
#define SCA_sl12_Sqrt5 MTH_C_Sqrt5
#define SCA_sl12_MinusSqrt2 MTH_C_MinusSqrt2
#define SCA_sl12_MinusSqrt3 MTH_C_MinusSqrt3
#define SCA_sl12_MinusSqrt4 MTH_C_MinusSqrt4
#define SCA_sl12_MinusSqrt5 MTH_C_MinusSqrt5
#define SCA_sl12_InvSqrt2 MTH_C_InvSqrt2
#define SCA_sl12_InvSqrt3 MTH_C_InvSqrt3
#define SCA_sl12_InvSqrt4 MTH_C_InvSqrt4
#define SCA_sl12_InvSqrt5 MTH_C_InvSqrt5
#define SCA_sl12_MinusInvSqrt2 MTH_C_MinusInvSqrt2
#define SCA_sl12_MinusInvSqrt3 MTH_C_MinusInvSqrt3
#define SCA_sl12_MinusInvSqrt4 MTH_C_MinusInvSqrt4
#define SCA_sl12_MinusInvSqrt5 MTH_C_MinusInvSqrt5
#define SCA_sl12_MAX_UNSIGNED_CHAR MTH_C_MAX_UNSIGNED_CHAR
/*--------------------------------------------------------*/
/* Operations */
/*--------------------------------------------------------*/
/* Comparaisons */
#define SCA_sl12_M_bIsNull(_xOp) MTH_M_bIsNull(_xOp)
#define SCA_sl12_M_bEqualZero(_sl12Op) MTH_M_bEqualZero(_sl12Op)
#define SCA_sl12_M_bIsNegative(_xOp) MTH_M_bLessZero((_xOp)
#define SCA_sl12_M_bIsPositive(_xOp) MTH_M_bGreaterZero(_xOp)
#define SCA_sl12_M_bGreater(_xOp1,_xOp2) MTH_M_bGreater(_xOp1,_xOp2)
#define SCA_sl12_M_bLess(_xOp1,_xOp2) MTH_M_bLess_xOp1,_xOp2)
#define SCA_sl12_M_bGreaterEqual(_xOp1,_xOp2) MTH_M_bGreaterEqual(_xOp1,_xOp2)
#define SCA_sl12_M_bLessEqual(_xOp1,_xOp2) MTH_M_bLessEqual(_xOp1,_xOp2)
#define SCA_sl12_M_bEqual(_xOp1,_xOp2) MTH_M_bEqual(_xOp1,_xOp2)
#define SCA_sl12_M_bDifferent(_xOp1,_xOp2) MTH_M_bDifferent(_xOp1,_xOp2)
#define SCA_sl12_M_sl12Min(A,B) MTH_M_xMin(A,B)
#define SCA_sl12_M_sl12Max(A,B) MTH_M_xMax(A,B)
/* Operations */
#define SCA_sl12_M_sl12Neg(_xOp) MTH_M_xNeg(_xOp)
#define SCA_sl12_M_sl12Add(_xOp1,_xOp2) MTH_M_xAdd(_xOp1,_xOp2)
#define SCA_sl12_M_sl12Sub(_xOp1,_xOp2) MTH_M_xsub(_xOp1,_xOp2)
#define SCA_sl12_M_sl12Mul(_xOp1,_xOp2) MTH_M_xMul(_xOp1,_xOp2)
#define SCA_sl12_M_sl12Div(_xOp1,_xOp2) MTH_M_xDiv(_xOp1,_xOp2)
#define SCA_sl12_M_sl12Abs(_xOp) MTH_M_xAbs(_xOp)
#define SCA_sl12_M_sl12NegAbs(_xOp) MTH_M_xNegAbs(_xOp)
#define SCA_sl12_M_sl12Inv(_xOp) MTH_M_xInv(_xOp)
#define SCA_sl12_M_sl12Sqr(_xOp) MTH_M_xSqr(_xOp,_xOp)
#define SCA_sl12_M_sl12Cub(_xOp) MTH_M_xMul(_xOp,MTH_M_xSqr(_xOp))
#define SCA_sl12_M_sl12Sqrt(_xOp) MTH_M_xSqrt(_xOp)
#define SCA_sl12_M_sl12InvSqrt(_xOp) MTH_M_xInvSqrt(_xOp)
#define SCA_sl12_M_sl12Sin(_xOp) MTH_M_xSin(_xOp)
#define SCA_sl12_M_sl12Cos(_xOp) MTH_M_xSin(_xOp)
/*
#define sl12_M_Tan(_xOp) (SCA_sl12_fn_Tan(_xOp))
#define sl12_M_ASin(_xOp) (SCA_sl12_fn_ASin(_xOp))
#define sl12_M_ACos(_xOp) (SCA_sl12_fn_ACos(_xOp))
*/
/*
#define sl12_M_Sin(_xOp) SCA_sl12_M_sl12DoubleToReal(sin(sl12_M_Real2Double(_xOp)))
#define sl12_M_Cos(_xOp) SCA_sl12_M_sl12DoubleToReal(cos(sl12_M_Real2Double(_xOp)))
*/
#define SCA_sl12_M_sl12Tan(_xOp) MTH_M_xTan(_xOp)
#define SCA_sl12_M_sl12ASin(_xOp) MTH_M_xASin(_xOp)
#define SCA_sl12_M_sl12ACos(_xOp) MTH_M_xACos(_xOp)
/* ##-##############################
## Tools for MulMatrixMatrix 3D
################################# */
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12MulSubMul
DESCRIPTION : Return the subtraction of two multiplications
INPUT : a, b, c, d : SCA_td_sl12
OUTPUT : a*b - c*d : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12MulSubMul(a, b, c, d) MTH_M_xMulSubMul(a, b, c, d)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12MulAddMulAddMul
DESCRIPTION : Return the adition of three multiplications
INPUT : a, b, c, d, e, f : SCA_td_sl12
OUTPUT : a*b + c*d + e*f : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12MulAddMulAddMul(a, b, c, d, e, f) MTH_M_xMulAddMulAddMul(a, b, c, d, e, f)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12SqrAddSqrAddSqr
DESCRIPTION : Return the adition of three squares
INPUT : a, b, c : SCA_td_sl12
OUTPUT : a*a + b*b + c*c : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12SqrAddSqrAddSqr(a, b, c) MTH_M_xSqrAddSqrAddSqr(a, b, c)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12Mul3
DESCRIPTION : Return the multiplication of three real numbers
INPUT : a, b, c : SCA_td_sl12
OUTPUT : a*b*c : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12Mul3(a, b, c) MTH_M_xMul3(a, b, c)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12Add3
DESCRIPTION : Return the addition of three real numbers
INPUT : a, b, c : SCA_td_sl12
OUTPUT : a+b+c : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12Add3(a, b, c) MTH_M_xAdd3(a, b, c)
#define SCA_sl12_M_sl12ACos(_xOp) MTH_M_xACos(_xOp)
/* ##-##############################
## Tools for MulMatrixMatrix 3D
################################# */
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12MulSubMul
DESCRIPTION : Return the subtraction of two multiplications
INPUT : a, b, c, d : SCA_td_sl12
OUTPUT : a*b - c*d : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12MulSubMul(a, b, c, d) MTH_M_xMulSubMul(a, b, c, d)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12MulAddMulAddMul
DESCRIPTION : Return the adition of three multiplications
INPUT : a, b, c, d, e, f : SCA_td_sl12
OUTPUT : a*b + c*d + e*f : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12MulAddMulAddMul(a, b, c, d, e, f) MTH_M_xMulAddMulAddMul(a, b, c, d, e, f)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12SqrAddSqrAddSqr
DESCRIPTION : Return the adition of three squares
INPUT : a, b, c : SCA_td_sl12
OUTPUT : a*a + b*b + c*c : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12SqrAddSqrAddSqr(a, b, c) MTH_M_xSqrAddSqrAddSqr(a, b, c)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12Mul3
DESCRIPTION : Return the multiplication of three real numbers
INPUT : a, b, c : SCA_td_sl12
OUTPUT : a*b*c : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12Mul3(a, b, c) MTH_M_xMul3(a, b, c)
/* ##M==================================================================================
NAME : SCA_sl12_M_sl12Add3
DESCRIPTION : Return the addition of three real numbers
INPUT : a, b, c : SCA_td_sl12
OUTPUT : a+b+c : SCA_td_sl12
=======================================================================================*/
#define SCA_sl12_M_sl12Add3(a, b, c) MTH_M_xAdd3(a, b, c)
/*----------------------------------------------------------------------------------*/
#endif /* _SCA_sl12_H_ */