279af4c796
strongdef: significantly tighten restrictions on usage
...
It turns out that equality in particular was triggering implicit
construction of strongdef types. We make it much harder for these types
to spontaneously emerge.
2018-06-22 17:41:56 +10:00
3722c8aaa3
region: add union operator for region/region
2018-06-14 15:07:25 +10:00
22b25221b2
coord/base: add std::array conversion operator
2018-06-12 10:54:08 +10:00
d70d06468e
tuple/type: add entuple, cat, remove, and unique types
2018-06-06 19:13:17 +10:00
fc58ec8e0f
build: prefer local to system include directives
2018-05-12 14:28:23 +10:00
38e1a19e37
alloc: all allocators should take a type for alloc/dealloc
2018-05-10 13:53:06 +10:00
2620e2ed33
alloc: return views rather than raw pointers
2018-05-10 12:54:45 +10:00
6042d9ab76
geom/ellipse: remove spurious print from test case
2018-05-10 12:54:45 +10:00
ec44c68ce6
view: require fully named types for casting
2018-05-10 12:54:45 +10:00
c33a679e81
geom/ray: make ray intersections more robust
2018-05-04 17:10:51 +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
c0af2df2c8
hash/fasthash: print result of each test case
2018-05-03 17:34:19 +10:00
dcf87a7c17
geom/aabb: add ray-aabb distance tests
2018-05-03 17:33:42 +10:00
aab066593b
geom/segment: add trivial segment representation
2018-04-20 15:08:06 +10:00
56a73275c1
geom/line: add basic line class
2018-04-20 15:08:06 +10:00
443112b33c
geom/plane: add trivial plane tests
2018-04-20 15:08:06 +10:00
f31a344912
kmeans: add naive kmeans impl
2018-04-18 21:48:55 +10:00
dcd789a075
geom/ellipse: add naive covering ellipse impl
2018-04-18 21:48:55 +10:00
eb2b85c4f6
point: add query for furthest pair
2018-04-18 21:48:55 +10:00
8a2055abfc
WIP ellipse area
2018-04-17 17:11:41 +10:00
76c809f031
point/vector: homog no longer takes a size parameter
2018-04-17 14:26:23 +10:00
f21297cad5
geom/ellipse: add ray distance tests
2018-04-16 16:00:32 +10:00
1889a76e26
geom/sphere: add glancing ray test
2018-04-16 16:00:32 +10:00
a8b3737b8b
geom/ray: remove constructors so we have a POD
2018-04-16 16:00:32 +10:00
bef0aa4929
sphere: move ray tests into sphere's unit
2018-04-16 16:00:32 +10:00
56fdc7844e
geom/frustum: test projection should use radians
2018-04-11 19:28:18 +10:00
d7b36b0ee3
affine: add perspective matrix test cases
2018-04-11 18:26:30 +10:00
24a530e23e
maths: remove pow2 function
...
pow2 has been used enough times to mean 2^x and x^2 that it's not worth
the ambiguity. just use pow(b,e) directly.
2018-04-09 12:30:22 +10:00
665c8aa49e
tuple/value: add reversing operation
2018-04-05 16:06:09 +10:00
d69a567431
tuple/index: add some index sequence generators and manipulators
2018-04-05 15:18:30 +10:00
5f2b1a5c36
tuple: split tests into separate units
2018-04-05 13:54:42 +10:00
8f2f623520
tuple/value: add zip implementation
2018-04-05 12:23:12 +10:00
de247c7e7b
cpp: add basic C preprocessor emulator
2018-04-01 14:49:10 +10:00
a4634a771b
g/frustum: simplify aabb intersection test
2018-03-28 20:42:43 +11:00
47613c5ec2
string: remove unneeded rval-ref qualifier
2018-03-27 16:21:20 +11:00
473556f9ed
maths/fast: use relatively_equal for tests
2018-03-27 16:15:21 +11:00
1b023f7c8d
iterator: improve reference semantics
2018-03-27 15:49:47 +11:00
93185775e6
coord/simd: template on arity and type
2018-03-23 17:52:08 +11:00
af77aad894
extent/region: simplify iteration over ranges
2018-03-23 16:38:54 +11:00
36f4ba035c
thread: rename thread primitives from job namespace
2018-03-23 14:10:20 +11:00
2d7e3e5d7d
build: prefer iosfwd over iostream
2018-03-22 16:11:13 +11:00
40da3f8df7
singleton: add trivial implementation
2018-03-22 15:06:48 +11:00
9bfefb3dab
job/queue: use a reaper thread to clear finished tasks
...
clearing the tasks on the worker threads can cause the queue to stall
while the cookie is notified, released, and deleted. we punt the cleanup
off to a reaper thread so that the workers can continue.
2018-03-22 14:59:03 +11:00
804b2263b8
parallel/queue: rename the queue type
2018-03-22 13:22:27 +11:00
370488c498
coord: test coords are trivial types
2018-03-22 13:20:00 +11:00
7fc51aa151
parallel/queue: use representative name for class
2018-03-22 13:05:51 +11:00
fc148fa7a4
parallel/queue: comments and type checks
2018-03-22 13:02:51 +11:00
4773e4be21
parallel: initial single-producer/multiple-consumer queue
2018-03-21 18:53:24 +11:00
82d63f68b1
job/flag: improved parallelism test
2018-03-20 18:02:20 +11:00