2025-11-01 03:37:40 +00:00
|
|
|
/* $Id$ */
|
|
|
|
|
|
|
|
|
|
#ifndef __MW_LOWLEVEL_INTERNAL_MATH_H__
|
|
|
|
|
#define __MW_LOWLEVEL_INTERNAL_MATH_H__
|
|
|
|
|
|
|
|
|
|
#include <Mw/LowLevelMath.h>
|
|
|
|
|
|
|
|
|
|
struct _MwLLMathVTable {
|
|
|
|
|
void (*Add)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*Multiply)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*Sub)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*Reciprocal)(MwLLVec* a, MwLLVec* out);
|
|
|
|
|
void (*SquareRoot)(MwLLVec* a, MwLLVec* out);
|
|
|
|
|
void (*And)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*Or)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*ShiftRight)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*ShiftLeft)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*Equal)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*GreaterThen)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
void (*LesserThen)(MwLLVec* a, MwLLVec* b, MwLLVec* out);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef struct _MwLLMathVTable MwLLMathVTable;
|
|
|
|
|
|
2025-11-01 03:59:45 +00:00
|
|
|
MwLLMathVTable** default_multi_table(void);
|
2025-11-01 03:37:40 +00:00
|
|
|
void mmx_apply(MwLLMathVTable**);
|
|
|
|
|
|
|
|
|
|
#endif
|