Commit Graph

379 Commits

Author SHA1 Message Date
5bc2cf12d4 maths: use true constexpr values for pi 2018-03-12 23:06:15 +11:00
3867b9e74e alloc/forwarding: add statically typed forwarding allocator 2018-03-07 16:24:39 +11:00
c2265b9ed2 alloc: add aligned::foreign allocator
sometimes we need to ensure memory allocation has a particular alignment
in an _offset_ buffer (which we have no control over, eg renderdoc's
OpenGL buffers).

this applies an offset to various operations that make the
aligned::direct allocator correctly align allocations for buffers that
aren't themselves aligned.
2018-03-02 12:21:38 +11:00
7af076e2de alloc: prefer std::byte representations for iterators
this allows the users to more easily walk the byte ranges (or perform
simply pointer arithmetic), without as much danger of using the values
in an expression inadvertantly.
2018-02-28 17:55:56 +11:00
3b3f9cd3d3 coord/ops: use the coord type for literal equality comparisons 2018-02-26 13:37:08 +11:00
fd03c344b2 fd: remove const from members that modify fd state 2018-02-01 13:47:14 +11:00
35e3f69ad2 maths, view: rationalise equal,almost_equal,==
views should not do elementwise comparisons for equality operators.
they are pairs of iterators and are only equal if their iterators are
equal.

instead, use `equal` for elementwise equality. we update the name of
exactly_equal to perform this operation too.
2018-01-31 19:33:42 +11:00
c4e0cd31f9 string: move tokeniser into the header
This allows more varied template parameters to be used.
2018-01-30 12:53:43 +11:00
32a4aa23e5 view: add slicing operation, stolen from python 2018-01-30 12:53:43 +11:00
6f51b82f65 siphash: add initial implementation 2018-01-23 18:57:04 +11:00
bc4a0c3179 xxhash: rewrite for safety and accurate tests
there were a few potential buffer overflows, inaccurate test data, and
the 64 bit path wasn't correct.

fixes buffer overflow from clang-analyze
2018-01-23 18:57:04 +11:00
dda3a4a8e7 ascii: add UDL for vector and array conversions 2018-01-23 18:51:37 +11:00
82a8446e10 build: silence various type conversion warnings 2018-01-18 11:56:42 +11:00
d037e71bba encode/base: correct decode table indexing 2018-01-17 20:10:26 +11:00
c7ce526383 vector: use separate cartesian/spherical tests
some tests aren't uniquely invertible, so it's more reliable to use test
data that doesn't suffer from this issue.
2018-01-17 17:45:21 +11:00
a8b4c93ccd coord: mitigate gcc ICE when using redim 2018-01-17 13:28:44 +11:00
65cea4afd1 point: style 2018-01-16 13:29:58 +11:00
09aa86f55f crypto: remove cryptography primitives
This code can now be found in libcruft-crypto. It was removed to prevent
people relying on it, and to improve test iteration times in unoptimised
builds.
2018-01-14 17:13:21 +11:00
681768093e hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +11:00
ad02c94511 view: return unsigned types for size 2018-01-10 18:50:02 +11:00
9bb2bdbaba Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
2713da45f4 format: rework parser for currying support 2018-01-09 16:28:46 +11:00
2af828e82d time: add iso8601 parsing 2018-01-01 15:50:48 +11:00
9fbfba580a maths: allow digits10 for 64 bit integers 2018-01-01 15:46:29 +11:00
4bd693a799 maths: allow any integral exponent for pow() 2018-01-01 15:45:56 +11:00
27a93c0780 traits: add is_contiguous query for containers 2017-12-28 17:50:37 +11:00
dc51fa2ed0 view: char constructor shouldn't include null characters 2017-12-26 17:34:08 +11:00
e437913746 encode/base: add initial base64 experiments 2017-12-22 12:37:04 +11:00
202c22eee8 view: simplify logical comparator implementation
we remove some duplicate and specific logical comparator specialisations
and instead rely on a base view/view comparator implementation by way of
make_view.
2017-12-20 12:31:52 +11:00
b4175e4593 uri: add more data fields
we now provide more fine grained field extraction from URIs, focusing
primarily on the utility of URLs.
2017-12-15 18:57:10 +11:00
a8088d03cd matrix: use vector for the row storage 2017-11-24 17:19:32 +11:00
59240ce83a matrix: move implementation from ipp to hpp 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
3ad0339474 WIP vector: spherical/cartesian conversion 2017-11-02 18:11:16 +11:00
28ec0bd48e maths: add forgotten header to test suite 2017-11-02 18:02:53 +11:00
d8bb00c9c3 endian: add float byteswap specialisation 2017-10-12 17:38:40 +11:00
aff4786409 traits: add bodies to test objects for ODR-used symbols 2017-10-11 17:15:47 +11:00
32f3240186 json2: initial 'jsonish' support 2017-10-05 11:44:37 +11:00
340981dac2 json2: initial import 2017-10-03 17:49:08 +11:00
35db5f0a7a utf8: add forgotten headers 2017-10-02 15:41:20 +11:00
7ecaaacd93 utf8: add a trivial utf8 decoder 2017-10-02 15:25:59 +11:00
220e499681 view: make equality consistent 2017-09-15 15:22:51 +10:00
cfa272a80a string: allow tokenisation of c arrays 2017-09-15 15:22:29 +10:00
9c5b471b24 iterator: modify to allow iteration over c arrays 2017-09-15 15:21:25 +10: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
8e7f23c4dd traits: add trivial type_traits tests 2017-09-08 14:20:01 +10:00
0e97044adf allow/raw: rename base as begin 2017-08-31 13:48:33 +10:00
9d5e599246 alloc: seperate out the raw allocators from the adapters 2017-08-29 16:53:11 +10:00