You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

118 lines
4.2 KiB
C

/***************************************************************************
* *
* Purpose : SSE Matrix Multiply *
* *
**************************************************************************/
#ifndef SSEMATML_H
#define SSEMATML_H
/****************************************************************************
Includes
*/
#include "bamatrix.h"
/****************************************************************************
Defines
*/
/****************************************************************************
Global Types
*/
/****************************************************************************
Function prototypes
*/
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
RWEXPORT void RWAPI
_rwIntelSSEMatrixMultiply( RwMatrix *dstMat,
const RwMatrix *matA,
const RwMatrix *matB );
RWEXPORT void RWAPI
_rwIntelSSEAlignedMatrixMultiply( RwMatrix *dstMat,
const RwMatrix *matA,
const RwMatrix *matB );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformPoints( RwV3d *pointsOut,
const RwV3d *pointsIn,
RwInt32 numPoints,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformPointsAlignedMatrix( RwV3d *pointsOut,
const RwV3d *pointsIn,
RwInt32 numPoints,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformVectors( RwV3d *vectorsOut,
const RwV3d *vectorsIn,
RwInt32 numVectors,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformVectorsAlignedMatrix( RwV3d *vectorsOut,
const RwV3d *vectorsIn,
RwInt32 numVectors,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformPoint( RwV3d *pointOut,
const RwV3d *pointIn,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformPointAlignedMatrix( RwV3d *pointOut,
const RwV3d *pointIn,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformVector( RwV3d *vectorOut,
const RwV3d *vectorIn,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEV3dTransformVectorAlignedMatrix( RwV3d *vectorOut,
const RwV3d *vectorIn,
const RwMatrix *matrix );
/* Pentium 4 specific versions */
RWEXPORT RwV3d* RWAPI
_rwIntelSSEP4V3dTransformPoints(RwV3d *pointsOut,
const RwV3d *pointsIn,
RwInt32 numPoints,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEP4V3dTransformVectors(RwV3d *vectorsOut,
const RwV3d *vectorsIn,
RwInt32 numVectors,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEP4V3dTransformPoint(RwV3d *pointOut,
const RwV3d *pointIn,
const RwMatrix *matrix );
RWEXPORT RwV3d* RWAPI
_rwIntelSSEP4V3dTransformVector(RwV3d *vectorOut,
const RwV3d *vectorIn,
const RwMatrix *matrix );
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* SSEMATML_H */