Commit Graph

8 Commits

Author SHA1 Message Date
David Fioramonti
51c11efbbc COMMON: Cos/Sin Table switch internal structure so at() is faster
A new internal table has been added so that no if checks need to
be performed for the at() lookup.

The old table can still be accessed using getTable or atLegacy().

at() and atLegacy() return the same values, but at() is faster.
2018-08-25 23:51:40 +02:00
David Fioramonti
9cfc70e7fe COMMON: allow cos/sin number of points to be more flexible
Previously, the cos/sin table had to be a power of 2, but there
are many use cases where the number of points is not necessarily
a power of 2 so this change the constructor so it now takes
in the number of points rather than the number of points as the
exponent of a power of 2.

The restriction is that the size must be divisible by 4.
2018-08-18 16:30:57 +02:00
David Fioramonti
650e26b6ab COMMON: Add at() index function to cosine/sine table
The cos/sin table class now has an at() function for indexing
safely into its internal array.

This allows the checking and computing of the correct
indexes to be done internally.

The indexing in allows cos/sine of 0 to 2pi to be
obtained.

The values returned by getTable are the same as before.

Comments that describe the values that the table
contains has been modified to line up with what
the code is doing.
2018-07-25 10:18:32 +02:00
Johannes Schickel
854e22b38b COMMON: Make GPL headers consistent in themselves. 2014-02-18 02:39:33 +01:00
Johannes Schickel
4da5d11e1f COMMON: Try to document the SineTable/CosineTable table entries. 2013-06-08 21:56:48 +02:00
D G Turner
f4ba8a6485 COMMON: Replaced static Sine and Cosine tables with dynamic generated.
This removes the large static tables from the binary (which saves 500K
to 1Mb of binary size) and replaced them with a class which generates
the required tables as needed in RAM. This has been tested with QDM2
and shows no obvious performance degredation and Memprof shows no
significant rise in RAM usage.
2012-04-14 11:18:55 +01:00
Matthew Hoops
6334ec413f COMMON: Move cosine/sine tables out of header files
Access is now restricted to using the getSineTable()/getCosineTable() helper functions.
2011-07-19 00:45:16 -04:00
Matthew Hoops
1d4ec6f1d1 COMMON: Add some simple math utilities
Based on eos' code
2011-07-02 15:15:04 -04:00