W takim razie po co jest koprocesor matematyczny (FPU = Floating Point Unit)? On potrafi liczyć na liczbach zmiennoprzecinkowych - jest do tego przeznaczony. Zatem jeżeli procesor ma do dyspozycji FPU, nie będzie to katowanie procesora.
O liczbach zmiennoprzecinkowych można poczytać w dokumentacji do bibliotek matematycznych Amigi np.
tutaj. Jest tam to opisane wyjątkowo zgrabnie.
W skrócie: liczba zmiennoprzecinkowa składa się z dwóch części: mantysy (M) i wykładnika (E). Mantysa to stałoprzecinkowa wartość z przedziału [0.5,1), czyli wartość większa bądź równa 1/2 i mniejsza niż 1. Wykładnik to wykładnik potęgi pewnej podstawy (zwykle liczby 2 lub 10). Liczba przyjmuje wartość mantysy pomnożonej przez liczbę 2 podniesioną do potęgi. Jeden bit jest przeznaczony na znak liczby.
+/-M*2^E
Przykładowo by zapisać liczbę 1, należy wziąć mantysę 1/2 i wykładnik 1. Wówczas liczba (1/2)*2^1 = 1. Żeby zapisać liczbę 10, trzeba wziąć mantysę 5/8 i wykładnik 4. Wówczas (5/8)*2^4=(5/8)*16=10.
Zaletą tych liczb jest to, że w dość naturalny sposób dają się dodawać, mnożyć itp. używając odpowiednich wzorów matematycznych.
Czasami po operacji wymagana jest tzw. normalizacja mantysy, czyli takie przekształcenie by mantysa mieściła się w przedziale [0.5,1).
Tak jak pisał Teh_KaiN, wadą jest to, że precyzja zależy od wielkości liczby i trzeba umiejętnie nimi operować, by zachować dostateczną precyzję (przydają się tu tzw. metody numeryczne).
Oczywiście takie sztuczki, o których piszesz - czyli umieszczanie wartości tych funkcji w tablicy jest bardzo dobrym zabiegiem optymalizacyjnym, szczególnie gdy procesor nie ma FPU. Jednak Ferin ma, z tego co wiem, mocny procesor klasy PowerPC w swoim komputerze.