1 function Y = sin_sym(X)
2 %
function Y = sin_sym(X)
4 % sine
function guaranteeing exact floating-point symmetry
5 % i.e. sin(x) = sin(x+2*pi) = - sin(-x)
8 % sin(0.1) + sin(0.1+pi) = 4.1633e-17
9 % sin_sym(0.1) + sin_sym(0.1+pi) = 4.1633e-17
11 % Bernard Haasdonk 5.6.2008
13 % averaging over 4 periods:
15 %generate large lookuptable
19 xvals = 0:step:(pi-1e-10);
20 if length(xvals)~=resolution;
21 error(
'check length of table!!');
24 sin_tab = [sin_tab, 0];
25 sin_tab(1:end) = 0.5*(sin_tab(1:end)+ sin_tab(end:-1:1));