Commit Graph

3003 Commits

Author SHA1 Message Date
c49738e7a3 coord/ops: add elementwise limit operation 2017-08-16 17:26:16 +10:00
d6b77f879f region: add convenience zero() constructor 2017-08-16 17:25:56 +10:00
651324d6f9 tuple: clarify warn_unused_arg usage for ignore(...) 2017-08-16 17:25:29 +10:00
959bc85987 range: add signed integer instantiations 2017-08-15 16:44:54 +10:00
ec0cb7d2c1 region: remove scale operation
it's not immediately apparent how scale operates on both of point and
extent components. rather than complicate matters we remove them in
preference of letting the user construct it directly.
2017-08-11 15:20:48 +10:00
9abfef2769 region: remove mutating point constrain function 2017-08-11 15:19:14 +10:00
31d2e6bfd8 region: remove duplicate point/region coverage tests 2017-08-11 15:15:44 +10:00
f36a14973a region: add `encloses' test for subregions 2017-08-11 14:39:46 +10:00
72f631ab4b region: remove `expanded' function
we're trying to move away from mutating operators.

also, we do the bad thing of just renaming the non-mutating operator
given it appears no one is using the mutating operator in our code bases
anyway...
2017-08-09 17:28:53 +10:00
b6edf25cd8 region: remove the resize method
we're moving away from mutating operators so this is somewhat
out-of-place. it's not a huge functional change though as there are
enough locations where the internal representation of point/extent are
assumed that we just do it through the members.
2017-08-09 17:27:28 +10:00
fc41f0991d region: add overload of inset for vectors 2017-08-09 17:17:55 +10:00
ff5e6945e3 signal: remove unused code 2017-08-08 13:55:20 +10:00
6ecab5b6d0 signal: warn if discarding auto-disconnect cookies 2017-08-08 13:55:06 +10:00
96d621a461 signal: don't forward arguments we may reuse 2017-08-08 13:54:45 +10:00
2b3ef6dbc6 debug: correct CHECK_NEZ error message 2017-08-02 16:17:24 +10:00
5634e59dc5 view: don't return references to iterators
we emulate string_view behaviour. modifying our iterators behind our
backs isn't a great way to ensure invariants are kept.
2017-08-01 14:47:44 +10:00
eabf93bc2a view: remove ipp file in preference of inline code 2017-08-01 14:16:55 +10:00
523c7c7e38 iterator: add the OutputIterator "discard_iterator" 2017-08-01 13:31:47 +10:00
6c77393a2c coord: make min and max variadic 2017-07-31 16:16:54 +10:00
01f6e5a1e8 region: add make_union function 2017-07-31 15:44:01 +10:00
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