35 lines
779 B
C
35 lines
779 B
C
|
/*!
|
||
|
* \file
|
||
|
*
|
||
|
* This file contains function prototypes for very fast lookup-table based
|
||
|
* trigonometric functions.
|
||
|
*
|
||
|
* The functions take an argument that is dependent on the lookup-table size
|
||
|
* (LUT_SIZE). LUT_SIZE corresponds to 2π. Values outside the range
|
||
|
* [0..LUT_SIZE] are supported and interpreted normally, so just replace 2π
|
||
|
* with LUT_SIZE and you're done.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <cstdint>
|
||
|
|
||
|
namespace fasttrigon {
|
||
|
static const uint32_t LUT_SIZE = 1024;
|
||
|
|
||
|
/*!
|
||
|
* \returns 127 * sin(2π * arg / LUT_SIZE)
|
||
|
*/
|
||
|
int32_t fastsin(int32_t arg);
|
||
|
|
||
|
/*!
|
||
|
* \returns 127 * cos(2π * arg / LUT_SIZE)
|
||
|
*/
|
||
|
int32_t fastcos(int32_t arg);
|
||
|
|
||
|
/*!
|
||
|
* \returns 127 * tan(2π * arg / LUT_SIZE)
|
||
|
*/
|
||
|
int32_t fasttan(int32_t arg);
|
||
|
}
|