Commit Graph

89 Commits

Author SHA1 Message Date
3d5aff0f30 maths: use mult rather than negation in constexpr
util::digits was triggering signed overflow warnings under gcc. By using
negative multiplication rather than explicit negation we get the same
behaviour, sans warning.
2016-08-29 14:48:07 +10:00
277dfaafae maths: add integer summation path for fsum
this allows us to simplify users of fsum which may not care what
value_type they're passing for summation
2016-08-15 20:56:10 +10:00
8cc4c1e82a format: reimplement format rendering
requires literal string arrays, and implements more of the specifier
specification. does not implement 'n' or '$' specifiers. falls back to
snprintf for real arguments.
2016-07-28 13:39:27 +10:00
e71bd9f621 maths: move is_integer into headers to avoid param explosion 2016-05-12 17:34:47 +10:00
60286202fd maths: make stirling inline rather than constexpr
stirling uses cmath functions which aren't constexpr, such as std::pow.
this sometimes works under linux/gcc but fails under clang/freebsd
2016-05-12 17:32:41 +10:00
2434424488 maths: explicitly inline small methods
Avoids multiply defined symbols when using more aggressive inlining
2016-04-27 15:57:05 +10:00
3a6faca98f maths: use structured assertions in imit 2016-04-19 14:49:17 +10:00
8022d459e5 maths: add samesign convenience function 2016-02-03 13:56:40 +11:00
2224131955 debug: simplify CHECK macros for constexpr safety 2016-02-03 12:04:47 +11:00
c04c56ed32 maths: make is_pow2 constexpr 2016-02-02 11:32:29 +11:00
8e2c5f1942 maths: explanatory header for sign() 2015-11-16 17:57:53 +11:00
486cefc4c6 maths: move functions inline, remove ipp 2015-11-16 13:57:51 +11:00
eb2722bfa4 maths: style 2015-11-16 13:21:38 +11:00
791f8b2bcd maths: remove rootsquare, use std::hypot instead 2015-11-16 13:18:29 +11:00
b1bc54ac8c maths: move remaining operations into util namespace 2015-11-16 11:44:07 +11:00
5a26793b0a maths: reduce template verbosity 2015-11-13 18:00:15 +11:00
b6a4166c68 maths: style 2015-11-13 17:25:21 +11:00
f2bd6501e2 maths: remove const/pure attributes
const/pure attributes are causing inconsitencies for various functions.
it's safer to just not use them until there's a more thorough
investigation of their impact.
2015-11-13 17:18:10 +11:00
89fe57b65b maths: move more operations into util:: 2015-11-13 17:18:10 +11:00
7b083df977 maths: tighten up type requirements for almost_equal
almost_equal only operates on two reals, or two integers (and even then
only on the same signedness).
2015-11-13 17:18:10 +11:00
c76e0716c4 maths: annotate with gnu::const where appropriate 2015-11-13 13:50:58 +11:00
02a42f282e maths: use SFINAE for round_to instead of assert 2015-11-13 13:48:46 +11:00
cd58dc8cc3 maths: rename align as round_to
reduces confusion between pointer align, and number rounding
2015-11-13 13:48:46 +11:00
ac86ef3bd5 maths: fix hi-lo normalisation shift size 2015-10-29 18:22:46 +11:00
0369b16f73 maths: correct limit's assertion operator 2015-10-29 18:22:28 +11:00
4aeacc3a27 maths: make limit constexpr friendly 2015-10-29 10:51:43 +11:00
03efa074ab maths: make limit constexpr 2015-10-20 16:54:15 +11:00
c2770a266b maths: split normalise functions 2015-10-20 16:54:15 +11:00
36b4043faf maths: add identity function 2015-10-19 17:06:52 +11:00
a342654ae1 maths: add namespaced wrappers 2015-10-06 15:21:48 +11:00
381da163e2 maths: style 2015-09-16 02:24:49 +10:00
95e5fc5834 maths: add namespaced wrapper for abs 2015-09-15 21:06:23 +10:00
3099e6be6c maths: add kahan summation 2015-08-25 17:25:55 +10:00
0533e3caaf maths: add gcd implementation 2015-07-13 16:30:54 +10:00
cd841acc7b maths: style 2015-06-30 22:24:43 +10:00
eda46a9e7c maths: ensure float types for to_{radians,degrees} 2015-06-04 14:38:12 +10:00
c052d7df4b maths: use templated PI and E constants 2015-04-29 17:45:39 +10:00
2658b41ea1 relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
7c33efda62 maths: reduce cast warnings in renormalise 2015-04-09 20:43:14 +10:00
9f6c17d6cf maths: add renormalise function 2015-04-09 17:44:50 +10:00
93ed983a6f maths: use __builtin_signbit to handle +- zeros 2015-03-24 02:42:42 +11:00
585a0b464c maths: make sign query inline
code which needs this function tends to require a fairly simple
implementation inline for the optimiser to reach more successfully. we
tended to generate function calls to this which slowed this inner loops.
2015-03-20 01:36:15 +11:00
e69d970e22 coord/ops: add max/min vector and element 2015-03-06 17:52:25 +11:00
75d69bf9df maths: fix the ordering of limit 2015-02-05 20:37:07 +11:00
8487f700f6 maths: add smoothstep 2015-02-05 20:37:07 +11:00
b12d0b95fc maths: special case limit conditions of sinc 2015-02-05 20:37:07 +11:00
3e9f5efbe0 maths: add sinc functions 2015-02-04 15:44:31 +11:00
2fcc16646c maths: templatise to_{radians,degrees} 2015-02-04 15:44:03 +11:00
ebd1087087 maths: add factorial and combination 2015-02-02 15:25:22 +11:00
af7f01efd3 maths: label maths primitives pure 2015-01-28 14:57:20 +11:00