e22f4a9001
types/sized: update bits types to follow a more current style
2020-10-22 11:27:25 +10:00
fdaa5e1392
assert: split CHECK_LIMIT into INCLUSIVE and INDEX
...
LIMIT hid an off-by-one bug when tests used end iterators. We rename the
assertion to uncover all uses of the flawed implementation, and split it
into an identical assertion, and one intended to protect against
iterator ends.
2020-09-24 08:03:41 +10:00
457effabf5
coords/ops: add ceil for coords
2020-06-22 12:58:21 +10:00
49c0b35fe7
coord/ops: add isfinite
call for vectors
2020-01-14 14:07:52 +11:00
0624a3ad00
coord: add to_radians for vector
2019-12-18 10:52:10 +11:00
8fc182ca8e
preprocessor: use the correct include path for preprocessor.hpp
2019-06-20 11:44:04 +10:00
f4438831a6
build: update the meson build configuration
2019-06-19 17:28:01 +10:00
8beada1646
debug: split debug headers into components
2019-05-17 12:26:08 +10:00
b8af3d0d9e
coord/ops: add a modulos function
2019-05-12 14:34:32 +10:00
dccc4fbbf7
coord/ops: std::hash should return a size_t
2019-05-12 07:52:19 +10:00
4c29123d4d
coord: use std::array for data storage
...
This allows us to more easily forward array dimensions with some level
of expectation that the data will be packed.
2019-01-31 13:46:53 +11:00
bfe0a92eec
preprocessor: build the header out of tree
...
This avoids unnecessary rebuilds when we have parallel configurations
being built.
2018-10-30 21:41:15 +11:00
f6056153e3
rename root namespace from util to cruft
...
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87
relicense under MPL-2.0
2018-08-04 15:14:06 +10:00
6dea530f6e
coord/ops: remove misplaced include
2018-06-20 13:25:49 +10:00
cdac2dcbc2
maths: add 'frac' function
...
Extracts the fractional component from a floating point number. Prefer
to use temporaries that you have on hand over these functions.
2018-05-21 15:06:07 +10:00
3e5c89f643
coord/ops: add lshift
2018-05-04 17:06:18 +10:00
b01173d82b
maths: rename limit to clamp
2018-05-03 21:43:48 +10:00
497d3ca970
build: update for gcc-8.1 warnings
2018-05-03 18:32:08 +10:00
fe88708c50
coord: relax restrictions on is_normalised
2018-04-18 21:43:40 +10:00
9affc28807
coord: make the pow function actually work...
2018-04-17 17:02:08 +10:00
e0f0e3b19b
coord: add product function
2018-04-17 17:01:53 +10:00
f830b149b0
coord/ops: add scalar bool overload for any
2018-04-11 18:22:49 +10:00
12d401b98b
tuple/variadic: split into type/value/pack operations
2018-03-15 23:48:21 +11:00
bafe71b3ab
coord/ops: add `all' overload for scalar bool
2018-03-15 15:25:18 +11:00
583e4aa26d
coord/ops: fix incorrect invoke function name
2018-03-13 15:41:48 +11:00
17816021b9
coord/ops: add std::{cos,sin} overloads for coords
2018-03-13 14:39:38 +11:00
3e9e9bff5a
coord/ops: add elementwise apply
2018-03-13 14:39:38 +11:00
16c6a6d627
coord/ops: move `get' query to top for usage later
2018-03-13 14:39:38 +11:00
d1c6df8bf1
coord/ops: add simple cosine wrapper
2018-03-12 23:04:17 +11:00
92de21982a
coord/ops: use manual integer casting for floor
2018-03-12 23:04:04 +11:00
3b3f9cd3d3
coord/ops: use the coord type for literal equality comparisons
2018-02-26 13:37:08 +11:00
959617277f
coord: use consistent technique for assignment operators
2018-01-16 13:31:37 +11:00
9bb2bdbaba
Merge remote-tracking branch 'origin/master'
2018-01-10 17:19:39 +11:00
a8088d03cd
matrix: use vector for the row storage
2017-11-24 17:19:32 +11:00
0351313c36
Merge branch 'master' into coord
2017-11-23 17:24:11 +11:00
d3f434b523
coord: make template parameters more flexible
...
The coordinate system was unable to support types that prohibited
redim or retype operations. Additionally, the `tags' type used for
providing named data parameters was unwiedly.
We remove much of the dependance on template template parameters in the
defined operations and instead define these in terms of a template
specialisation of is_coord.
The tag types were replaced with direct specialisation of the `store'
struct by the primary type, and passing this type through use of the
CRTP.
2017-11-22 17:03:00 +11:00
34788756d2
build: don't use './' as an include prefix
...
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
4050754ab4
preprocessor: use a script to create map/reduce
...
We need over 300 arguments for some projects and I'm not going to code
that shit by hand.
2017-09-12 14:17:30 +10:00
31afd9dcfd
coord/ops: initial stubs for coord::apply
2017-08-28 12:59:06 +10:00
c0df6bf8a2
coord/ops: move make_coord higher for visibility
...
latter code may require make_coord it should be above most of the
operations.
2017-08-28 12:58:18 +10:00
c4e367e648
coord: use std::size_t over size_t
2017-08-28 12:25:23 +10:00
3799135236
coord: add general vector comparison function
2017-08-27 12:32:00 +10:00
677a0aa4a9
coord/ops: use vector ops for point difference
2017-08-27 12:27:26 +10:00
3c9dcba2fb
coord/ops: add rshift coord operation
...
shifts each element to the right `num' places and fills the left space
with a constant or elements from another vector.
2017-08-25 13:05:45 +10:00
dba4e673ca
coord/ops: add scalar/vector relational operators
2017-08-24 16:25:27 +10:00
0b52ef47be
coord/ops: make make_foo functions constexpr
2017-08-24 14:39:54 +10:00
84963aacf8
coord/ops: make 'all' and 'any' constexpr
2017-08-24 14:39:54 +10:00
ac19e165ba
coord/ops: add comment for util::limit
2017-08-24 12:49:59 +10:00
c49738e7a3
coord/ops: add elementwise limit operation
2017-08-16 17:26:16 +10:00