Nebylo, protoze cos() se pocita taky Taylorovou radou. Autor ukazal nevhodny postup - natvrdo 3 cleny rozvoje. V praxi je v compute_sin cyklus, ktery probiha tak dlouho, dokud velikost dalsiho clenu rozvoje presahne pozadovanou presnost. Navic je dobre si uvedomit, ze nasledujici clen rozvoje se snadno da spocist z predchoziho. Vubec neni nutne pocitat n-tou mocninu a faktorial n.
Ten demonstracni priklad na vypocet sinu nebyl myslen jako ukazka presne implementace v FPU, pouze to je demonstrace, ze i s pouhymi tremi cleny Taylorovy rady se da dopidit k rozumne presnosti. V FPU je, pokud vim (ted nemluvim o x86), vetsinou pocet clenu take omezen, to zavisi od pouzivaneho formatu (single, double).
Faktorialy se nepocitaji vubec, pro tech par clenu jsou primo ulozeny v FPU (stejne, jako hodnoty uhlu pro CORDIC) a mocniny se samozrejme daji prevest na opakovane nasobeni.
Samozřejmě, že bylo, protože pro x z leveho okoli pi/2 je potřeba na požadovanou přesnost více členů Taylorova rozvoje. Takže je rozumné numericky počítat Taylorovy řady jen pro x z intervalu (0,pi/4)
V pi/2 ano, ja jsem psal pi/4, coz je polovina intervalu, na kterem se sin() pocita. To (pokud to trosku zjednodusim) znamena, ze chyby budou od pi/4 na obe strany rust, ale maximalni chyba (ta je u sin() i cos() na konci intervalu) bude cca polovicni.
Prednosti pouziti pi/4 je dale to, ze se nemusi pocitat tak velke mocniny a faktorialy (ale ty jsou stejne v tabulce), protoze zadny ze clenu neni nulovy, narozdil od sin(a=0) a cos(a=0). Nevyhodou jsou ty Pisvajcovy konstanty diky tomu, ze sin(pi/4), cos(pi/4) atd. nejsou moc "zaokrouhlena" cisla.