Commit Graph

137 Commits

Author SHA1 Message Date
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
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
31652ed3a3 coord/base: add clarifying comment to index assertion 2017-08-27 11:37:52 +10:00
8f216a0a27 coord/base: don't use std::fill in constexpr constructor 2017-08-27 11:37:18 +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
8b2c1d3fd2 coord/init: make 1-dimension constructor explicit 2017-08-24 17:52:06 +10:00
dba4e673ca coord/ops: add scalar/vector relational operators 2017-08-24 16:25:27 +10:00
efb719b822 coord/base: add indices method 2017-08-24 14:39:54 +10:00
ad345f19d5 coord/base: add restrictions to redim with/out params
redim to lower dimensionality should not allow a parameter, and redim to
higher dimensions should require a fill parameter.
2017-08-24 14:39:54 +10:00