98dc992473
build: avoid integer length warnings
2017-01-05 19:50:28 +11:00
b770e5f370
fixed: add integer logical operators
2017-01-04 22:38:41 +11:00
2e0fa64494
range: convert static members to constexpr methods
2016-12-21 16:44:48 +11:00
2dcb315ce6
region: prefer constexpr functions over static variables
2016-12-12 17:07:53 +11:00
4bf160934c
vector: prefer constexpr functions over static variables
2016-12-12 17:04:39 +11:00
d2ba672a30
colour: remove static constants
2016-12-12 17:03:36 +11:00
6d079554a6
format: fix escaped percent before value specifier
2016-12-06 13:37:54 +11:00
cb32823248
hash: add xxhash implementation
2016-11-17 18:38:09 +11:00
246357e279
random: remove typed randomisers without generators
2016-11-17 18:38:08 +11:00
a93dd90da9
types: remove elems function, prefer std::size
...
Now that std::size is part of our supported compilers we can remove the
old elems function.
2016-11-17 18:06:39 +11:00
e549f3d554
matrix: move identity and zeroes into constexpr funcs
2016-10-17 22:34:53 +11:00
e96ef7af32
quaternion: move out of coord infrastructure
2016-10-17 22:30:16 +11:00
9cff1e9c85
test/affine: add trivial origin rotation test
2016-10-17 16:51:06 +11:00
1d53c32de0
quaternion: add trivial from_to tests
2016-10-12 23:03:33 +11:00
db076ad6f4
quaternion: update look, from_to, rotate
2016-10-12 23:03:33 +11:00
1af6ed4ca8
matrix: fix look_at multiply ordering
2016-10-12 23:03:33 +11:00
9a798446b5
build: remove unnecessary includes
...
discovered with include-what-you-use
2016-10-12 15:08:22 +11:00
2d31cf9537
matrix: add tranposition test case
2016-10-11 20:57:03 +11:00
3dc31a9d10
alloc/aligned: add allocator with forced alignment
2016-10-10 18:19:09 +11:00
254a63ca90
exe: split into platform units
2016-10-10 16:23:07 +11:00
fad44bd1f7
format: allow %! specifier for all types
...
If we allow the %! specifier for all types it greatly simplifies
handling of format strings in templated code, or code with non-trivial
typedefs.
2016-09-27 15:23:33 +10:00
ede9b75bad
vector: fix hypot implementation
2016-09-21 22:24:02 +10:00
4544a594c3
vector: add hypot function
...
calculates the root of the sum of the squares. much like std::hypot, but
of arbitrary dimension.
2016-09-21 17:13:25 +10:00
d9713fe8b7
json/tree: fix signed min, unsigned max constraints
...
signed/unsigned casting issues prevented correct comparisons with the
min/max constraints. account for the source type's range before doing the
comparison.
2016-09-20 16:02:08 +10:00
e2b4e48315
test: add matrix/quaternion consistency checks
2016-09-14 17:56:27 +10:00
83484a6ea1
matrix: add look_at and euler tests
2016-09-14 17:56:27 +10:00
c917f264c4
quaternion: fix incorrect factorisation in as_matrix
...
One of the terms in m[0][0] and m[1][1] was incorrectly negated from an
incomplete factorisation when I transcribed the formula.
Also reintroduces the axis-rotation tests which inadvertantly had zero
magnitudes.
2016-09-14 16:49:26 +10:00
45795a1ae0
quaternion: compare test results using sum-of-differences
...
comparison of floating point values is inexact and there isn't an easy
way for providing an ULP delta via the TAP interface. morever, the
general expected error is too large to reliably express in ULPs.
2016-08-15 20:56:10 +10:00
28cd180c44
matrix: add expanded scalar operations
2016-08-15 20:56:10 +10:00
f6ceb5cdee
coord/ops: add element sum overload
2016-08-15 20:56:10 +10:00
1f86925237
matrix: add elementwise sum function overload
2016-08-15 20:56:10 +10:00
b809925396
vector: rename UNIT to ONES
...
unit isn't a normalised vector, so it's misleading to call it a 'unit'
vector
2016-08-15 20:56:10 +10:00
606a9c4eb8
coord/ops: use free functions for normalisations
2016-08-11 14:58:46 +10:00
974998cc48
quaternion: update to use coord framework
2016-08-10 17:42:52 +10:00
de48f75e96
format: fix transcription of zero values to strings
...
an iteration condition terminated the write when a value was zero rather
than when all numerals were written. instead, iterate over the remaining
numerals.
fixes printf("%zu", 0u)
2016-08-10 17:38:39 +10:00
c26c687912
format: set ostream precision as if for strings
...
ostream conversions are converted to strings anyway, so we should treat
them as such earlier in the process.
2016-07-28 16:13:23 +10:00
fad8181842
format: allow undersize integers for conversion
2016-07-28 16:13:23 +10:00
a40e09ed97
format: write c_str as %s by default, support c_str as %p
2016-07-28 14:18:47 +10:00
70170f4205
alloc/arena: disallow implicit copy constructor in test obj
...
fixes a build warning under clang
2016-07-28 13:39:27 +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
f9fb0873d3
build: tidy system headers
2016-07-28 13:39:27 +10:00
f793175fdf
json/schema: add 'integer' type support
2016-07-04 15:46:01 +10:00
2e700e6444
rand: add mwc64x generator
2016-06-30 18:20:57 +10:00
3b82757e5c
test/random: use a constant seed
2016-06-30 15:26:45 +10:00
642317f6a4
json: use templated iterator for parsing from views
2016-06-28 14:16:28 +10:00
a87e03de34
hash: move tests to hash directory
2016-06-24 13:08:19 +10:00
350dd96b2d
alloc: add base and offset methods
2016-06-22 19:51:18 +10:00
08536765b6
Merge branch 'crypto'
2016-06-20 18:08:46 +10:00
8d191fb2e1
hash/keccak: add initial sha3 base
2016-06-20 18:05:30 +10:00
a0d02c2fdb
crypto/ice: add implementation of ICE
2016-06-20 18:04:41 +10:00