d8e4354f22
maths: only enable util::limit for scalar types
...
this reduces conflicts with the coord limit operation.
2017-08-24 12:26:36 +10:00
1d988608c1
geom/ray: add an (explicitly) default constructor
2017-08-22 17:23:36 +10:00
2576061b26
ray: extract make member function as free function
...
for consistency with other make_foo functions. to be replaced with
deduction guides in the future.
2017-08-22 15:46:49 +10:00
8b089d412c
matrix: add fallback implementation for inverse_affine
2017-08-22 15:06:16 +10:00
10f777c380
matrix: remove mutating operations
2017-08-22 15:05:58 +10:00
a016e98b12
region: add make_range for regions
...
introduces an object that provides iterators suitable for row-major
scanning of points covering a region object. mostly a wrapper for the
equivalent extent_range.
2017-08-21 18:48:52 +10:00
439809ca65
adapter: add make_reverse for reverse adapter
2017-08-21 16:51:03 +10:00
dcdfa339d7
adapter: actually perform the reverse in reverse adapter
2017-08-21 16:50:46 +10:00
46d28ba7be
debug: add variable escape and memory clobber functions
2017-08-18 11:15:00 +10:00
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