Commit Graph

150 Commits

Author SHA1 Message Date
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