Sam Hocevar
|
e62b840f7e
|
build: allow to build without the PS3-specific files.
|
13 years ago |
Sam Hocevar
|
6767dae741
|
core: disallow casting eg. a vec3 into a vec2. Use the xy() getter instead.
|
13 years ago |
Sam Hocevar
|
973574f634
|
sprite: remove spurious property that caused sprites to be always displayed
at (0,0).
|
13 years ago |
Sam Hocevar
|
c508dc2a4a
|
core: dynamically allocate mantissa for real numbers. One day we'll be able
to modify their precision at runtime.
|
13 years ago |
Sam Hocevar
|
94160c461c
|
test: minor fixes to the test suite: disable optimisation tests in debug
mode, and do not call "new" when we’re not sure "delete" can be called.
|
13 years ago |
Sam Hocevar
|
7af192f529
|
test: minor Remez algorithm tests.
|
13 years ago |
Sam Hocevar
|
4e4e800572
|
core: implement the gamma function for reals using Spouge's formula.
|
13 years ago |
Sam Hocevar
|
fcbfba7a44
|
build: use xvfb-run to run the windows-i386 test suite on a non-mingw
build host.
|
13 years ago |
Sam Hocevar
|
b6b8044442
|
core: implement frexp(), ldexp() and modf() for reals.
|
13 years ago |
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 |