0016c83dab
coord: add the select function
2017-07-31 15:41:57 +10:00
2fad1715cf
coord: define make_klass for all coordinate types
2017-07-28 16:08:59 +10:00
e5090ff916
view: add 'data' accessor call
...
added for completeness sake. users can now call
std::begin/std::end/std::data
2017-07-28 14:26:49 +10:00
1248f15e4f
region: relax assertion to allow zero width/height
...
some degenerate cases create regions of zero area, but non-zero
dimensions. eg, vertical linear bezier curves.
2017-07-28 14:26:42 +10:00
1f337ef964
point: add min/max convenience methods
...
these create the smallest/largest expressible coordinates
2017-07-28 14:22:21 +10:00
bdd2e06044
extent: add make_extent call
...
we use this until template constructor guides are available in our
supported compilers
2017-07-28 14:14:08 +10:00
f39f7d7362
parse: add throwing native type parsers
2017-07-26 15:26:56 +10:00
d29276a427
region: add "has" point query
2017-07-25 17:10:16 +10:00
b18feb8bc4
maths: use bit patterns for tests float values
...
this makes some of the tests more robust in the face of (potentially
stanard breaking) optimisations.
2017-07-25 17:08:52 +10:00
fcc78eb103
io_posix: style
...
improve the code style for 80 column limitations
2017-07-19 17:20:51 +10:00
db5795c25a
region: remove array constructor
...
the meaning of the array values weren't particularly clear. are they
point-point, point-extent, something else? also the implementation was
horribly incorrect for whatever it claimed to be doing. so we remove the
function entirely to avoid the aforementioned ambiguity.
2017-07-19 17:19:37 +10:00
a27869d1c8
region: commenting and style for test cases
2017-07-19 17:19:20 +10:00
3460d5edbe
crypto/salsa: add initial skeleton for salsa20
2017-07-11 16:49:49 +10:00
b9ca3f6969
tuple: add `index' type query for tuple types
...
util::tuple::index finds the first occurence of a type in a tuple and
gives the index of this type.
2017-07-11 11:07:48 +10:00
af3dcbb418
tuple: make nullary 'ignore' inline
...
works around multiple symbol definition errors at link time.
2017-07-11 11:06:59 +10:00
825102a328
extent: add convenience make_range iterator creator
2017-07-04 16:18:57 +10:00
564d6ab753
cmake: bump for threading support
2017-07-04 14:20:51 +10:00
21f462d4a0
job/queue: don't use references for parameters
...
references aren't trivial types. we should support them soon, but this
gets us up and running faster.
2017-07-04 14:18:45 +10:00
320fe6c378
job/queue: add trivial job queuing system
2017-07-03 17:05:01 +10:00
62491b4cec
coord: generalise point hashing for all coord types
...
move the point hashing function into general coord operations. convert
from using std::hash to something we've made so that we know it's going
to spread the bits a little (unlike the default identity of GCC 7).
2017-06-29 16:33:53 +10:00
36120319bc
hash: change default mix function to murmur2 mix
2017-06-29 16:32:58 +10:00
86f6611f61
comparator: workaround clang structured bindings ICE
2017-06-29 15:28:58 +10:00
3f8c490733
comparator: indexed comparator should be const
2017-06-29 15:28:37 +10:00
01ed956ee4
comparator: use relative paths for dependent header
...
the header wasn't found when included from external projects. this uses
the correct relative path
2017-06-29 15:27:29 +10:00
96c80ecea5
comparator: add test for self equality failure
2017-06-29 15:27:16 +10:00
0eaec8ad65
comparator: move pointer comparator code inline
2017-06-19 15:36:57 +10:00
b37d4e9e0a
readme: note the supported compiler versions
2017-06-19 15:29:41 +10:00
6065aa9933
comparator: add comparator for indexed compound types
...
compares each index of the two parameters in sequence, returning true if
the first parameter has the first value that compares less than the
second.
2017-06-19 15:28:10 +10:00
046a369f55
coord: don't use kahan summation for sum(coord)
...
Our kahan summation algorithm has issues with infinities so we just
avoid using it in coordinates where speed and simplicity are more
important.
2017-06-16 17:38:55 +10:00
061088467f
coord: add structured bindings support
2017-06-15 16:32:40 +10:00
3faa64a02b
sarray: add make_sarray function for arrays
2017-06-15 13:19:50 +10:00
82a319f3d0
sarray: add iterator based constructor
2017-06-15 13:19:39 +10:00
ca63485d12
sarray: add a simple static storage/dynamic size array
2017-06-14 17:45:43 +10:00
b15914cf9a
iterator: add make_indices, zip, and izip
2017-06-13 17:01:06 +10:00
16171c03ef
tuple: better document the 'ignore' function
2017-06-13 17:01:06 +10:00
c02a1a1a3c
variadic: add accessor for the first template pack parameter
2017-06-13 17:01:06 +10:00
e019270a1f
variadic: use make_index_sequence from the stdlib
2017-06-13 14:47:58 +10:00
2bc7e3e449
point: work around GCC ICE in test case
...
GCC experiences an ICE when comparing the components of a redim'd to
lower dimension point. The test case is too complex to reasonably reduce
and submit for fixing/workaround so we add a bit more explicit work here
for this test case only.
2017-06-13 14:19:27 +10:00
089caff53e
maths: take references for generic types in almost_equal
2017-06-13 14:18:53 +10:00
f50c77425d
maths: make almost_equal constexper for integers
2017-06-13 14:18:32 +10:00
ae40b163e5
coord: prefer cbegin/cend where possible
2017-06-13 14:18:00 +10:00
a59f6ffc69
build: remove explicit constexpr instantiations
...
GCC7 no longer requires these instantiations, and in fact produces a
warning/error in these cases. So we remove them.
2017-06-08 15:49:25 +10:00
2a69ccb571
cmake: bump for warning reduction
2017-06-05 17:07:37 +10:00
606a46a128
typeidx: add lightweight runtime type id call
2017-05-29 17:21:11 +10:00
998c0171e8
pascal: instantiations for signed lengths
2017-05-29 17:20:43 +10:00
08b57c9716
point: add docstrings for distance metrics
2017-05-24 15:15:40 +10:00
da00e77e7e
maths: add signed overloads for renormalise
2017-05-24 15:15:25 +10:00
25e19b5810
build: use explicit constructors
2017-05-23 12:50:51 +10:00
30fa4a378d
colour: add html-style colour parsing
2017-05-22 16:20:21 +10:00
813600e774
ascii: add hex conversion and unit tests
2017-05-22 16:11:31 +10:00