Sam Hocevar
4041166c56
core: improve sin() and exp() performance by replacing divisions with
multiplications where appropriate.
il y a 13 ans
Sam Hocevar
2235e9c180
core: implement real methods cbrt(), log2(), exp2(), and copysign().
il y a 13 ans
Sam Hocevar
5d9167bda0
core: fix an accuracy error in real::re() and real::sqrt() introduced in
the 16-to-32-bit refactoring.
il y a 13 ans
Sam Hocevar
79a15eafd8
test: random useless crap.
il y a 13 ans
Sam Hocevar
1d0797efa5
test: various improvements to the Remez exchange solver.
il y a 13 ans
Sam Hocevar
bfb5de1681
test: more Remez exchange experimentations.
il y a 13 ans
Sam Hocevar
3391a4c904
test: more Remez exchange experimentations.
il y a 13 ans
Sam Hocevar
2ff9183c8c
test: allow to perform Remez solving on an arbitrary range.
il y a 13 ans
Sam Hocevar
57510be2b0
test: some refactoring in the Remez solver to prepare multiple function
solving.
il y a 13 ans
Sam Hocevar
7aac9df337
test: add missing <cstdio> include in pi test program.
il y a 13 ans
Sam Hocevar
6b80bc9d09
test: use namespace "std" to avoid PS3 build errors.
il y a 13 ans
Sam Hocevar
123f903065
test: add support for relative error in the Remez exchange test program.
il y a 13 ans
Sam Hocevar
c5c4913bda
core: implement round() and fmod() for real numbers.
il y a 13 ans
Sam Hocevar
064856b443
core: implement floor() and ceil() for real numbers.
il y a 13 ans
Sam Hocevar
221f469c3f
core: implement asin() and acos() for real numbers and add unit tests for
these functions.
il y a 13 ans
Sam Hocevar
bbd75b80eb
core: add real constants for 0, 1, 2 and 10, and reorder static constants
so that their initialisation order ensures they have the proper values. Add
unit tests for these constants.
il y a 13 ans
Sam Hocevar
1ffa994f4b
core: add boolean operators on real numbers, add unit tests for that,
and simplify the Remez code accordingly.
il y a 13 ans
Sam Hocevar
6d85192ee6
test: minor updates to the Pi program (now almost deprecated) and the
Remez exchange program.
il y a 13 ans
Sam Hocevar
4822f02d8d
core: implement shift operators for reals; they're useful for fast
multiplications by integers, especially powers of two.
il y a 13 ans
Sam Hocevar
93162ee19b
test: the Remez algorithm is now almost functional.
il y a 13 ans
Sam Hocevar
afd2cfd69d
test: more work on the Remez exchange algorithm.
il y a 13 ans
Sam Hocevar
b7a1270b9a
test: start working on a Remez exchange algorithm implementation so that
we can create our own high-precision polynomial approximations.
il y a 13 ans
Sam Hocevar
ff45d2ac98
test: add a 10-line example program that computes Pi to the 150th digit.
il y a 13 ans
Sam Hocevar
058d88232d
core: add rounding to real->double conversion, fix a bug in the addition
code shortcut, fix bugs in the addition and subtraction, another one in
the multiplication code, and add new unit tests for most of these.
il y a 13 ans
Sam Hocevar
56511457d2
test: give more explicit names to unit test cases.
il y a 13 ans
Sam Hocevar
48bde6fa94
test: add simple unit tests for image loading.
il y a 13 ans
Sam Hocevar
fde544911b
core: new benchmark snippet for operations on reals.
il y a 13 ans
Sam Hocevar
cdc155c42b
core: allow to cast reals to doubles in addition to floats.
il y a 13 ans
Sam Hocevar
325ea94821
core: implement division of reals and change their default precision
to 32 bigits.
il y a 13 ans
Sam Hocevar
93479c2876
core: implement real subtraction.
il y a 13 ans
Sam Hocevar
a173e49ddc
core: implement comparison operators for reals.
il y a 13 ans
Sam Hocevar
48f00deff9
core: fix real unary minus and handle negative numbers in additions.
il y a 13 ans
Sam Hocevar
884978c71b
core: handle zero, negative zero and infinite in the real constructor,
and add a test suite check for unary minus.
il y a 13 ans
Sam Hocevar
dbb0463f4c
core: start working on the extended floating point addition.
il y a 13 ans
Sam Hocevar
202ac6aaf3
core: switch real mantissa to uint16_t instead of uint32_t to ease the
multiplication.
il y a 13 ans
Sam Hocevar
5aedae49a3
core: add missing real.cpp unit test.
il y a 13 ans
Sam Hocevar
5fc298964b
core: start working on a "real" class for arbitrarily sized floats.
il y a 13 ans
Sam Hocevar
cc2bdf0b01
test: fix the benchmark suite compilation on SNC.
il y a 13 ans
Sam Hocevar
abbf9ba44c
build: fix a shitload of build errors introduced by the Image refactoring
and the OS X port.
il y a 13 ans
Sam Hocevar
2435bd47ed
osx: automake does not support .mm files yet, so rename ios-image.mm back
to ios-image.cpp, but disable it on OS X because UIKit isn't available.
il y a 13 ans
Sam Hocevar
489389abbe
build: better clean rule for the test directory.
il y a 13 ans
Sam Hocevar
160102ba03
build: new lol-build script for easier autobuilds.
il y a 13 ans
Sam Hocevar
5081f7034a
test: reorganise test suite and benchmark code.
il y a 13 ans
Sam Hocevar
170050501f
test: add unit tests to check whether the build environment behaved as
expected.
il y a 13 ans
Sam Hocevar
04c4a959cd
core: add our custom isnan() macro to the core headers.
il y a 13 ans
Sam Hocevar
5a5b811200
lolunit: rename a few methods for consistency.
il y a 13 ans
Sam Hocevar
75d8811c74
lolunit: rename test runner’s run() method to Run() for consistency.
il y a 13 ans
Sam Hocevar
00b8d5c28d
test: improve matrix and vector uni tests.
il y a 13 ans
Sam Hocevar
2290b7b930
lolunit: add a LOLUNIT_SET_CONTEXT / LOLUNIT_UNSET_CONTEXT macro pair.
This is useful when doing several asserts in one loop, for instance: there
isn't always a way to deduce the loop index from the assert failure, so
these macros allow the user to give more context information.
il y a 13 ans
Sam Hocevar
b64d051e6a
lolunit: free all the memory we allocated to avoid a minor memory leak,
and slightly tweak the API syntax.
il y a 13 ans