Commit Graph

127 Commits

Author SHA1 Message Date
Petteri.Aimonen
4ffed9b5ff Const allows more optimizations than pure 2012-08-05 16:16:12 +00:00
Petteri.Aimonen
40ef134f4d Add fix16_sq() inline function as a shorthand to square values 2012-08-05 16:11:40 +00:00
Flatmush
85204f4a28 Updated coding style document.
Cleaned up some code.
2012-07-25 14:49:11 +00:00
Flatmush
bc77d6a360 Added basic code style document to project. 2012-07-25 11:18:25 +00:00
Flatmush
fb944f6adc Added abs, floor, ceil, min, max, clamp.
More code cleanup.
2012-07-25 10:38:03 +00:00
Flatmush
71eed13ecf Added log base 2 functions kindly provided by Tev Olsen. 2012-07-25 10:24:47 +00:00
Flatmush
d9944df6d2 Added some deg/rad conversion functions.
Fixed up some code style inconsistencies.
Added a modulo function to allow optimization on 8-bit machines.
2012-07-25 09:54:58 +00:00
Flatmush
c2a48b8910 Added a patch to make operator results constant in the C++ interface as suggested in Issue 15. 2012-07-02 16:07:50 +00:00
Petteri.Aimonen
e490cce6b0 Added FFT code as an extra in the "contrib" folder 2012-05-29 15:17:32 +00:00
Petteri.Aimonen
9169c3663c Fix the check around 'leaf' attribute, which is supported only by GCC > 4.6. 2012-05-06 09:09:16 +00:00
Petteri.Aimonen
329afef0d2 Updated exp() and log() on wiki page. 2012-02-27 16:54:14 +00:00
Petteri.Aimonen
91c5422472 Fix useless warning on AVR 2012-02-27 16:44:21 +00:00
Petteri.Aimonen
90973e833d Benchmark suite using simulators 2012-02-27 16:40:45 +00:00
Petteri.Aimonen
e929442f71 Improved fix16_exp() (half runtime, more accuracy), added fix16_log(), made unittests for both. 2012-02-27 16:40:07 +00:00
Petteri.Aimonen
eb1cb67561 Added some function attributes when using GCC; these may help the optimizer a bit. 2012-01-27 15:06:46 +00:00
Petteri.Aimonen
03f046b59d FunctionReference added conversion functions 2012-01-27 15:03:18 +00:00
Flatmush
f6ae47adc3 Documented the un-documented compilation features. 2012-01-27 12:01:52 +00:00
Petteri.Aimonen
0dfdd9964e Edited wiki page Benchmarks through web user interface. 2012-01-26 17:28:42 +00:00
Petteri.Aimonen
a0426a95fd Edited wiki page Benchmarks through web user interface. 2012-01-26 17:07:31 +00:00
Petteri.Aimonen
24214eabe4 Created wiki page through web user interface. 2012-01-26 16:54:14 +00:00
Petteri.Aimonen
31a2ca8e66 Edited wiki page FunctionReference through web user interface. 2012-01-26 16:29:13 +00:00
Petteri.Aimonen
352f1b49eb Created wiki page through web user interface. 2012-01-26 16:28:40 +00:00
Petteri.Aimonen
befda5c4dc Edited wiki page FunctionReference through web user interface. 2012-01-26 16:22:01 +00:00
Petteri.Aimonen
2a98e98255 Created wiki page through web user interface. 2012-01-26 16:09:32 +00:00
Petteri.Aimonen
9ae3e0bf47 Created wiki page through web user interface. 2012-01-26 16:09:06 +00:00
Petteri.Aimonen
f7effa525a Created wiki page through web user interface. 2012-01-26 15:55:57 +00:00
Petteri.Aimonen
1076285d26 Merging a bunch of separately developed functions:
fix16_mul, fix16_div, fix16_sqrt.
They are faster & more accurate than the previous versions.
Closes issue #13.

Includes unittests for the functions in question, runnable    
by typing 'make' in the unittests folder.
2012-01-26 15:43:30 +00:00
vincent.del.medico
681fd5aea1 Back to previous Makefile I unintentionally modified 2011-06-11 10:11:11 +00:00
vincent.del.medico
495b0a23ad Added a fix16_sqr32 function, which computes sqrt with reduced 64-bit operations (and without any 64-bit operations by setting FIXMATH_NO_64BIT) 2011-06-11 10:03:17 +00:00
vincent.del.medico
c59675818b Fixed issue 12 in fix16_div when FIXMATH_NO_64BIT defined 2011-06-10 13:49:11 +00:00
vincent.del.medico
5248e45183 Faster atan2 algorithm (about twice faster), same precision 2011-06-09 12:32:50 +00:00
vincent.del.medico
716d5fa179 Added a new algo for sin() function, and a small error analysis to show the precision differences 2011-06-08 22:46:14 +00:00
Flatmush
b2e8a96e21 Fixed some compiler errors in int64.h.
Fixed and tested ARM assembler version of fix16_mul.
2011-03-16 10:56:29 +00:00
joe.schaack
39d1029807 Changed the #if defined to __thumb2__
did not test a compile
2011-03-15 15:48:46 +00:00
Flatmush
8f01005d11 Fixed assembler error in fix16_mul, had used 'or' instead of the correct 'orr' mnemonic. 2011-03-14 21:02:43 +00:00
Flatmush
ccf378f1e0 Fixed a dumb mistake in compilation macros which meant that fix16_mul didn't correctly compile for a certain mix of ARM and Thumb macros. 2011-03-14 20:57:36 +00:00
Flatmush
e83267f757 Changed ARM fix16_mul to be disabled for thumb. 2011-03-13 18:39:26 +00:00
flatmush
98bbaf3b17 Added ARM specific fix16_mul which should be faster, this is untested however so if somebody with an ARM target could compile and check it then I'd be greatful. 2011-03-04 12:42:58 +00:00
flatmush
5fd33d1f98 Updated lerp6 and lerp16 (LinEar inteRPolation) to use the new int64 header so that it can be used with FIXMATH_NO_64BIT.
Included "int64.h" in "fixmath.h" so that 64-bit integer support is now part of the libraries functionality.
2011-03-03 11:51:10 +00:00
flatmush
cc1e97463e Added int64.h which performs 64-bit calculations using 32-bit operations, this means that the FIXMATH_NO_64BIT macro can now be used to enable these operations on compilers without 64-bit support, note that some of these operations are slower than the built-in gcc ones (though some are faster too).
sqrt can now be compiled without 64-bit compiler support.
All remaining functions which aren't supported in 32-bit are now disabled when the FIXMATH_NO_64BIT macro is enable which should stop any compiler errors on compilers where 64-bit isn't supported.
2011-03-03 11:21:20 +00:00
joe.schaack
88b4ee4c0e I assume you mean to subtract the two for the ssub function... 2011-03-02 19:56:20 +00:00
flatmush
e8ab51042b Added fix16_add, fix16_sub, fix16_ssub as static inline functions.
Updated C++ interface to include saturated operators.
2011-03-02 16:33:28 +00:00
flatmush
62eb1059a5 Updated C++ interface slightly, to make it more coherent. 2011-03-02 14:21:26 +00:00
flatmush
46cb5cd8df Added C++ class interface.
Optimized rounding on 32-bit divide function.
2011-03-02 12:58:08 +00:00
Flatmush
359ed66670 Edited wiki page Trig_Math through web user interface. 2011-03-01 16:00:53 +00:00
flatmush
324ae1684e Updated code::blocks project file to compile optimized release by default. 2011-03-01 15:34:50 +00:00
flatmush
9c8a4f9aa9 Updated 32-bit division so it's now actually accurate to within 0.00065% even for non-reciprocals, the algorithm is slightly slower and slightly less accurate than the 64-bit version on my machine though.
Added 32-bit tan port using joe's atan2_complex algorithm, this is accurate to 0.0055% when used with the new 32-bit divide.
2011-03-01 15:26:37 +00:00
joe.schaack
577a41ec50 Edited wiki page Trig_Math through web user interface. 2011-03-01 04:09:51 +00:00
joeschaack
ed9401264c Added some more images for the wiki 2011-03-01 04:07:24 +00:00
joe.schaack
d5a2503cc9 Added a bunch of info regarding the trig stuff 2011-03-01 03:33:02 +00:00