Sam Hocevar
|
b354e17ef3
|
core: implement log10, sinh and cosh for real numbers.
|
13 years ago |
Sam Hocevar
|
1280301f27
|
core: implement pow() for real numbers; for now special cases such as
negative zero or negative nth roots are not handled.
|
13 years ago |
Sam Hocevar
|
a66fc123c1
|
core: fix a bug in real::log() and real::log2() with values smaller than 1.
|
13 years ago |
Sam Hocevar
|
4041166c56
|
core: improve sin() and exp() performance by replacing divisions with
multiplications where appropriate.
|
13 years ago |
Sam Hocevar
|
2235e9c180
|
core: implement real methods cbrt(), log2(), exp2(), and copysign().
|
13 years ago |
Sam Hocevar
|
efafb640b7
|
core: implement tan() for real numbers.
|
13 years ago |
Sam Hocevar
|
5d9167bda0
|
core: fix an accuracy error in real::re() and real::sqrt() introduced in
the 16-to-32-bit refactoring.
|
13 years ago |
Sam Hocevar
|
9ff54f59e3
|
core: encode real numbers using uint32_t rather than uint16_t.
|
13 years ago |
Sam Hocevar
|
79a15eafd8
|
test: random useless crap.
|
13 years ago |
Sam Hocevar
|
1d0797efa5
|
test: various improvements to the Remez exchange solver.
|
13 years ago |
Sam Hocevar
|
66a2ee6a40
|
core: remove most dependencies on real number size in the various math
functions.
|
13 years ago |
Sam Hocevar
|
bfb5de1681
|
test: more Remez exchange experimentations.
|
13 years ago |
Sam Hocevar
|
3391a4c904
|
test: more Remez exchange experimentations.
|
13 years ago |
Sam Hocevar
|
2ff9183c8c
|
test: allow to perform Remez solving on an arbitrary range.
|
13 years ago |
Sam Hocevar
|
57510be2b0
|
test: some refactoring in the Remez solver to prepare multiple function
solving.
|
13 years ago |
Sam Hocevar
|
7aac9df337
|
test: add missing <cstdio> include in pi test program.
|
13 years ago |
Sam Hocevar
|
6b80bc9d09
|
test: use namespace "std" to avoid PS3 build errors.
|
13 years ago |
Sam Hocevar
|
3282cf30bb
|
core: replace the cos(real) implementation with a simple call to
sin(pi/2-x). No loss in precision in theory.
|
13 years ago |
Sam Hocevar
|
123f903065
|
test: add support for relative error in the Remez exchange test program.
|
13 years ago |
Sam Hocevar
|
b7fa88e210
|
real: constrain sin() and cos() on real numbers so that they work properly
with large values. Until now they were evaluating the Taylor series even
for huge values.
|
13 years ago |
Sam Hocevar
|
c5c4913bda
|
core: implement round() and fmod() for real numbers.
|
13 years ago |
Sam Hocevar
|
064856b443
|
core: implement floor() and ceil() for real numbers.
|
13 years ago |
Sam Hocevar
|
221f469c3f
|
core: implement asin() and acos() for real numbers and add unit tests for
these functions.
|
13 years ago |
Sam Hocevar
|
d9cb8f2961
|
core: fix an accuracy error in sqrt() for arguments < 1.0.
|
13 years ago |
Sam Hocevar
|
f5019d3930
|
core: implement atan() for real numbers.
|
13 years ago |
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.
|
13 years ago |
Sam Hocevar
|
1ffa994f4b
|
core: add boolean operators on real numbers, add unit tests for that,
and simplify the Remez code accordingly.
|
13 years ago |
Sam Hocevar
|
6d85192ee6
|
test: minor updates to the Pi program (now almost deprecated) and the
Remez exchange program.
|
13 years ago |
Sam Hocevar
|
8f400b6364
|
core: create global real number variables such as R_E, R_PI, R_LN2 etc.
|
13 years ago |
Sam Hocevar
|
4822f02d8d
|
core: implement shift operators for reals; they're useful for fast
multiplications by integers, especially powers of two.
|
13 years ago |
Sam Hocevar
|
ab03cdb118
|
core: improve exp() on reals: faster (constant time) and a lot more
accurate.
|
13 years ago |
Sam Hocevar
|
f62946fc7b
|
core: implement log() for real numbers, and start documenting our next
improved implementation of exp(), which relies on log().
|
13 years ago |
Sam Hocevar
|
93162ee19b
|
test: the Remez algorithm is now almost functional.
|
13 years ago |
Sam Hocevar
|
593aa3af70
|
core: implement sin(), cos() and abs() for reals and fix a crash in the
addition and subtraction operators occurring when exponents were too
different.
|
13 years ago |
Sam Hocevar
|
afd2cfd69d
|
test: more work on the Remez exchange algorithm.
|
13 years ago |
Sam Hocevar
|
c0edb49ed6
|
core: add exp() for real numbers and fix the == operator.
|
13 years ago |
Sam Hocevar
|
908b2b3b95
|
real: fix a bug in the real number multiplication when one of the arguments
is zero.
|
13 years ago |
Sam Hocevar
|
02bcc443f6
|
core: add sqrt() for real numbers.
|
13 years ago |
Sam Hocevar
|
b7a1270b9a
|
test: start working on a Remez exchange algorithm implementation so that
we can create our own high-precision polynomial approximations.
|
13 years ago |
Sam Hocevar
|
ff45d2ac98
|
test: add a 10-line example program that computes Pi to the 150th digit.
|
13 years ago |
Sam Hocevar
|
58ee1d5b81
|
core: add operators +=, *= etc. to the real class, and refactor the
print() method so that it displays decimal values.
|
13 years ago |
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.
|
13 years ago |
Sam Hocevar
|
fbdec834dd
|
image: add a GDI+ loader.
|
13 years ago |
Sam Hocevar
|
56511457d2
|
test: give more explicit names to unit test cases.
|
13 years ago |
Sam Hocevar
|
48bde6fa94
|
test: add simple unit tests for image loading.
|
13 years ago |
Sam Hocevar
|
fde544911b
|
core: new benchmark snippet for operations on reals.
|
13 years ago |
Sam Hocevar
|
cdc155c42b
|
core: allow to cast reals to doubles in addition to floats.
|
13 years ago |
Sam Hocevar
|
325ea94821
|
core: implement division of reals and change their default precision
to 32 bigits.
|
13 years ago |
Sam Hocevar
|
93479c2876
|
core: implement real subtraction.
|
13 years ago |
Sam Hocevar
|
a173e49ddc
|
core: implement comparison operators for reals.
|
13 years ago |