6bc13544dd
types/description: add support for coordinate types
2019-05-17 10:55:49 +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
347b13ee60
coord/comparator: allow delayed and defaulted deduction of arguments
2019-05-12 07:51:42 +10:00
6ae38d7f9e
coord/base: take const-ref for supplementary index query
...
This disambiguates type resolution of literals and other temporaries.
2019-03-22 15:09:19 +11:00
0d9374d3dd
coord/base: add indices
query using supplemental values
2019-03-22 11:54:29 +11:00
340d873d3a
iterator: move each iterator to their own unit
2019-03-18 16:18:27 +11:00
0d27694a51
coord/comparator: add a trivial ordering comparator
2019-03-08 09:37:48 +11:00
3c07f96d34
coord/store: prefer raw arrays to std::array
...
We don't really gain anything by using std::array and it greatly
simplifies fucking about with GDB pretty printers.
2019-03-06 17:09:26 +11: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
b61d55ee3c
build: satiate clang-tidy somewhat
2019-01-03 15:48:34 +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
e15f687e20
coord;sse: fix type in intrinsic
2018-09-13 14:52:34 +10: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
22b25221b2
coord/base: add std::array conversion operator
2018-06-12 10:54:08 +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
2a6ad38e9c
coord/traits: add vector-extent result_type
2018-05-03 17:31:41 +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
0f9fb9b515
coord: add general store template and 5-element init
2018-04-17 14:25:04 +10:00
c4eec456a0
coord/base: remove explicit from scalar constructor
...
we need to create vectors of zeros pretty often and it's pretty verbose
having to continually use the full type name each time.
2018-04-16 16:00:32 +10:00
f830b149b0
coord/ops: add scalar bool overload for any
2018-04-11 18:22:49 +10:00
2d801a1725
coord/base: actually set fill values in constructor
2018-04-11 18:22:25 +10:00
93185775e6
coord/simd: template on arity and type
2018-03-23 17:52:08 +11:00
2d7e3e5d7d
build: prefer iosfwd over iostream
2018-03-22 16:11:13 +11:00
341907ac79
coord/simd: add more sse operations
2018-03-20 13:35:10 +11:00
b307ab935d
coord/simd: add initial simd tests
2018-03-16 11:10:44 +11: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
a8b4c93ccd
coord: mitigate gcc ICE when using redim
2018-01-17 13:28:44 +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
a0b0863d61
coord: use new template form in ostream operators
2017-11-24 17:19:32 +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