= Optimisation logbook = A list of optimisation decisions and their effect on performances. == 2011/09/02 == * [885] [886] [888] Started importing Ryan Sammartino's PS3 trigonometry library in the core (). * [890] Do the Taylor series on `x / π` instead of `x`: results in a measurable speed increase in `sin()` * 2% with ppu-lv2-g++ 4.1.1 on a PS3 * almost 1% with SNC 360.1 on a PS3 * 30% with g++ 4.5.2 on mingw32 running on a Core2Quad * [891] Do the Taylor series in two steps, for better pipelining at the cost of one extra multiplication: a notable speed increase in `sin()` * 11% with ppu-lv2-g++ 4.1.1 on a PS3 * 2% with SNC 360.1 on a PS3 * 7% with g++ 4.5.2 on mingw32 running on a Core2Quad Note: there is currently no way to build all the engine using SNC. However, individual files can be built using a command along the following one: {{{ #!sh touch trig.cpp ps3ppusnc.exe -c trig.cpp -O3 -Xreorder=1 -Xfastmath=1 -o liblol_a-trig.o -I. make }}} == 2011/10/11 == * [1016] Encode reals using `uint32_t` instead of `uint16_t`. * additions are 2.1 times faster * multiplications are 2.4 times faster * divisions are 2.4 times faster (actually fixed in [1017])