#ifndef JMATRIGONOMETRIC_H #define JMATRIGONOMETRIC_H #include "dolphin/types.h" namespace std { template struct pair { A1 a1; B1 b1; pair() { a1 = A1(); b1 = B1(); } }; } // namespace std struct TSinCosTable { std::pair table[0x2000]; f32 sinShort(s16 v) const { return table[static_cast(v) >> 3].a1; } f32 cosShort(s16 v) const { return table[static_cast(v) >> 3].b1; } }; struct TAtanTable { f32 table[1025]; u8 pad[0x1C]; }; struct TAsinAcosTable { f32 table[1025]; u8 pad[0x1C]; }; namespace JMath { extern TSinCosTable sincosTable_; extern TAtanTable atanTable_; extern TAsinAcosTable asinAcosTable_; }; // namespace JMath inline f32 JMASSin(s16 s) { return JMath::sincosTable_.sinShort(s); } inline f32 JMASCos(s16 s) { return JMath::sincosTable_.cosShort(s); } #endif /* JMATRIGONOMETRIC_H */