A collection of useful C++ routines.
Go to file
Danny Robson 45795a1ae0 quaternion: compare test results using sum-of-differences
comparison of floating point values is inexact and there isn't an easy
way for providing an ULP delta via the TAP interface. morever, the
general expected error is too large to reliably express in ULPs.
2016-08-15 20:56:10 +10:00
alloc alloc/dynamic: add missing override specifiers 2016-06-28 15:57:23 +10:00
build-aux test/json: run tests through a line wine/crlf wrapper 2016-04-27 17:13:36 +10:00
coord coord/ops: add element sum overload 2016-08-15 20:56:10 +10:00
crypto crypto/ice: fix key length assertion 2016-06-30 18:21:21 +10:00
doc doc: add noise documentation stubs 2016-02-02 10:36:42 +11:00
geom coord/ops: use free functions for normalisations 2016-08-11 14:58:46 +10:00
hash ripemd: panic rather than throw in constexpr 2016-08-01 17:23:30 +10:00
json build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
m4 m4/nc: bump for ipa-pta optimsation fixes 2016-08-01 17:24:29 +10:00
memory build: add forgotten includes 2016-07-28 13:39:27 +10:00
posix build: add forgotten cxx headers 2016-05-12 17:31:33 +10:00
rand rand/xorshift: add min/max/discard operations 2016-07-01 16:26:25 +10:00
roots roots/bisection: add bisection root finder 2016-02-03 13:57:18 +11:00
test quaternion: compare test results using sum-of-differences 2016-08-15 20:56:10 +10:00
tools build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
types types/traits: add remove_restrict 2016-03-16 19:27:39 +11:00
win32 win32/handle: merge various handle wrapper classes 2016-04-27 17:01:45 +10:00
.gitignore test/json: run tests through a line wine/crlf wrapper 2016-04-27 17:13:36 +10:00
.gitmodules m4: move nerdcruft m4 into submodule 2016-06-20 13:30:32 +10:00
adapter.cpp unify licences 2016-02-26 13:36:01 +11:00
adapter.hpp build: tighten up some unneeded headers 2016-02-25 13:17:14 +11:00
annotation.hpp annotation: add likely/unlikely functions 2016-08-02 18:49:42 +10:00
ascii.hpp ascii: add to_integer from ascii to numeric 2016-08-02 18:50:35 +10:00
backtrace_execinfo.cpp backtrace: remove excess newline in execinfo backend 2016-08-15 20:56:10 +10:00
backtrace_null.cpp don't pull in namespace std 2016-03-11 13:28:56 +11:00
backtrace_stackwalk.cpp backtrace_stackwalk: add StackWalk64 backtrace 2016-04-27 16:00:26 +10:00
backtrace_win32.cpp backtrace_win32: avoid using win32 wrappers 2016-04-27 15:53:53 +10:00
backtrace.hpp backtrace/win32: enable win32 backtrace support 2016-04-19 16:08:56 +10:00
bezier.cpp stream: remove unneeded numeric class 2016-06-29 17:52:26 +10:00
bezier.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
bitwise.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
bitwise.hpp bitwise: add pure annotation to rotate functions 2016-06-20 17:59:21 +10:00
cast.hpp cast: tighten trunc_cast type restrictions 2016-06-29 17:53:44 +10:00
cmdopt.cpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
cmdopt.hpp add ref-qualifiers to avoid dangling refs/ptrs 2016-03-17 18:05:28 +11:00
cmdopt.ipp cmdopt: move bool parsing into inline headers 2016-04-27 15:52:52 +10:00
colour.cpp colour: add type_name specialisation 2016-08-13 21:03:39 +10:00
colour.hpp colour: describe the rationale for overloaded cast operator 2016-08-15 20:56:10 +10:00
colour.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
configure.ac configure: comment deferred call to NC_DEBUGGING 2016-08-13 17:22:23 +10:00
coord.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
COPYING unify licences 2016-02-26 13:36:01 +11:00
debug_posix.cpp debug_posix: downgrade force_console error to WARN 2016-05-18 10:27:36 +10:00
debug_win32.cpp debug: cache win32 error code before logging 2016-04-15 15:56:51 +10:00
debug.cpp debug: make DEBUG_WAIT support more robust 2016-03-21 14:19:08 +11:00
debug.hpp debug: use less complex specialistion for validator 2016-08-10 17:36:25 +10:00
debug.ipp debug: reduce constexpr tomfoolery where not required 2016-08-01 17:23:53 +10:00
Doxyfile.in doc: improve naive doxygen support 2016-02-26 17:04:54 +11:00
endian.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
endian.hpp build: make single argument constructors explicit 2015-06-04 22:18:43 +10:00
except.cpp except: add missing methods to win32_error 2016-04-27 16:07:42 +10:00
except.hpp except: add missing methods to win32_error 2016-04-27 16:07:42 +10:00
exe.cpp exe: add freebsd image_path implementation 2016-05-13 15:22:42 +10:00
exe.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
extent.cpp debug: use less complex specialistion for validator 2016-08-10 17:36:25 +10:00
extent.hpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
extent.ipp extent: add a point inclusion query 2015-09-16 02:26:00 +10:00
fixed.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
fixed.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
float.cpp don't pull in namespace std 2016-03-11 13:28:56 +11:00
float.hpp maths: explicitly inline small methods 2016-04-27 15:57:05 +10:00
format.cpp format: reimplement format rendering 2016-07-28 13:39:27 +10:00
format.hpp format: reimplement format rendering 2016-07-28 13:39:27 +10:00
format.ipp format: fix transcription of zero values to strings 2016-08-10 17:38:39 +10:00
fourcc.cpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
fourcc.hpp iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
gcc.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
guid.cpp guid: style 2016-08-15 20:56:10 +10:00
guid.hpp guid: style 2016-08-15 20:56:10 +10:00
hash.hpp hash: fix parameter names in mix wrappers 2015-09-15 21:06:00 +10:00
introspection.cpp introspection: rename type_string to type_name 2016-07-28 13:45:09 +10:00
introspection.hpp introspection: remove type_name's empty default definition 2016-08-13 21:02:57 +10:00
io_posix.cpp io_posix: add fd constructors to mapped_file 2016-08-02 18:51:04 +10:00
io_posix.hpp io_posix: add fd constructors to mapped_file 2016-08-02 18:51:04 +10:00
io_posix.ipp io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
io_win32.cpp io: add lval ref-qualifiers to mapped_file members 2016-06-28 14:23:42 +10:00
io_win32.hpp io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
io_win32.ipp io: move view conversion operator to named function 2016-06-28 15:58:41 +10:00
io.cpp io: bump copyright year 2016-04-27 17:06:25 +10:00
io.hpp io: remove uneeded stream_error destructor 2016-05-12 17:53:37 +10:00
io.ipp unify licences 2016-02-26 13:36:01 +11:00
iterator.hpp iterator: add infix_iterator 2016-03-11 12:44:00 +11:00
libcruft-util-inline.pc.in pkg-config.pc.in: use Libs.private 2016-04-19 17:27:13 +10:00
libcruft-util-system.pc.in build: use two-postfix pkg-config scheme 2016-06-21 17:27:17 +10:00
library_posix.cpp library: initial wrapper 2015-08-10 15:51:44 +10:00
library_posix.hpp library: make path constructors explicit 2015-09-21 15:41:02 +10:00
library_win32.cpp library_win32: add string constructor 2015-08-25 17:13:35 +10:00
library_win32.hpp library: initial wrapper 2015-08-10 15:51:44 +10:00
library.hpp library: initial wrapper 2015-08-10 15:51:44 +10:00
LICENCE relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
log.cpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
log.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
log.ipp format: reimplement format rendering 2016-07-28 13:39:27 +10:00
Makefile.am net: remove networking code 2016-08-12 15:15:37 +10:00
maths.cpp format: reimplement format rendering 2016-07-28 13:39:27 +10:00
maths.hpp maths: add integer summation path for fsum 2016-08-15 20:56:10 +10:00
matrix.cpp matrix: add expanded scalar operations 2016-08-15 20:56:10 +10:00
matrix.hpp matrix: add expanded scalar operations 2016-08-15 20:56:10 +10:00
matrix.ipp matrix: remove static_assert size testing 2016-08-15 20:56:10 +10:00
matrix2.cpp matrix: extract size dependant operations 2015-11-04 23:23:46 +11:00
matrix3.cpp matrix: extract size dependant operations 2015-11-04 23:23:46 +11:00
matrix4.cpp matrix: extract size dependant operations 2015-11-04 23:23:46 +11:00
nocopy.hpp dont overinclude iostream headers 2016-03-17 18:14:40 +11:00
pascal.cpp pascal: make size/data private 2016-03-17 18:14:40 +11:00
pascal.hpp dont overinclude iostream headers 2016-03-17 18:14:40 +11:00
platform.hpp platform: add freebsd platform defines 2016-05-13 15:23:22 +10:00
point.cpp iterator: use infix_iterator for coord ostream 2016-03-11 12:48:19 +11:00
point.hpp iterator: use infix_iterator for coord ostream 2016-03-11 12:48:19 +11:00
point.ipp point: remove constexpr from functions relying on cmath 2015-10-06 15:20:06 +11:00
pointer.hpp pointer: add uintptr align function 2016-03-11 09:40:12 +11:00
polynomial.cpp polynomial: rename solve as roots 2015-07-21 02:59:14 +10:00
polynomial.hpp polynomial: rename solve as roots 2015-07-21 02:59:14 +10:00
polynomial.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
pool.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
pool.hpp use more explicit constructors 2016-03-17 18:14:40 +11:00
pool.ipp dont overinclude iostream headers 2016-03-17 18:14:40 +11:00
preprocessor.hpp preprocessor: expand MAP macros to 24 arguments 2016-06-24 13:15:01 +10:00
quaternion.cpp quaternion: style 2016-08-11 15:01:07 +10:00
quaternion.hpp coord/ops: use free functions for normalisations 2016-08-11 14:58:46 +10:00
raii.hpp raii: scoped_function takes a nullary void functor 2015-11-13 13:48:46 +11:00
random.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
random.hpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
random.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
range.cpp range: add subtraction operator definition 2015-09-29 17:31:20 +10:00
range.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
range.ipp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
rational.cpp rational: add type deducing divide/multiply 2015-09-21 16:36:38 +10:00
rational.hpp rational: express assignment in terms of constructors 2016-05-12 17:55:20 +10:00
rational.ipp rational: add type deducing divide/multiply 2015-09-21 16:36:38 +10:00
README README: add crypto warning 2016-06-20 18:06:51 +10:00
region.cpp debug: use less complex specialistion for validator 2016-08-10 17:36:25 +10:00
region.hpp build: explicitly allow anonymous structs 2016-05-12 18:06:12 +10:00
region.ipp region: add cast function 2015-09-21 15:33:58 +10:00
si.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
si.hpp whitespace 2015-04-13 18:06:08 +10:00
signal.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
signal.hpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
signal.ipp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
stats.cpp relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
stats.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
stream.cpp stream: work towards streambuf and stream impl 2016-05-12 17:47:22 +10:00
stream.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
string.cpp string: define tokeniser::cbegin/cend 2016-03-21 14:20:04 +11:00
string.hpp string: allow cstring tokenisers 2016-03-18 11:08:12 +11:00
stringid.cpp whitespace 2015-04-13 18:06:08 +10:00
stringid.hpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
strongdef.cpp strongdef: actually use tagging for disambiguation... 2015-11-19 15:06:52 +11:00
strongdef.hpp add ref-qualifiers to avoid dangling refs/ptrs 2016-03-17 18:05:28 +11:00
tap.cpp tap: move base expect method to ipp file 2015-09-21 15:25:56 +10:00
tap.hpp format: reimplement format rendering 2016-07-28 13:39:27 +10:00
tap.ipp WIP tap param rename 2016-07-28 14:18:47 +10:00
term.cpp term: add trivial ANSI colour escapes 2016-03-21 14:20:39 +11:00
term.hpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
time_posix.cpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time_win32.cpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time.cpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time.hpp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
time.ipp time: use std::chrono for nanoseconds query 2016-04-05 11:02:54 +10:00
tuple.cpp tuple: add tuple iteration helpers 2015-04-20 17:48:11 +10:00
tuple.hpp tuple: add function caller with argument unpacking 2015-08-10 15:44:15 +10:00
types.hpp types: add param_count function 2016-03-11 19:16:17 +11:00
uri.cpp.rl build: fix switch/enum coverage warnings 2016-05-12 17:45:29 +10:00
uri.hpp build: avoid type truncation warnings 2016-05-12 17:39:33 +10:00
variadic.cpp variadic: add index helper type 2015-04-20 17:13:14 +10:00
variadic.hpp variadic: add index helper type 2015-04-20 17:13:14 +10:00
variadic.ipp variadic: add index helper type 2015-04-20 17:13:14 +10:00
vector.cpp vector: rename UNIT to ONES 2016-08-15 20:56:10 +10:00
vector.hpp vector: rename UNIT to ONES 2016-08-15 20:56:10 +10:00
vector.ipp vector: add homogenous converter 2015-07-21 01:41:48 +10:00
version.cpp.rl version: add more constructors, comparators 2016-06-20 13:08:24 +10:00
version.hpp build: use ostream/istream over iostream 2016-08-04 17:42:41 +10:00
view.cpp view: instantiate uint8_t ostream operator 2016-08-04 14:15:02 +10:00
view.hpp view: make container constructor explicit and constexpr 2016-06-28 14:09:48 +10:00
view.ipp view: make container constructor explicit and constexpr 2016-06-28 14:09:48 +10:00
zlib.cpp unify licences 2016-02-26 13:36:01 +11:00
zlib.hpp build: make single argument constructors explicit 2015-06-04 22:18:43 +10:00

A simple cross-platform C++ utility library.

For the love of God, do not use the crypto routines. I am not a cryptographer or a security specialist. You have been warned.