Jak łatwo obliczyć pierwiastek kwadratowy z długiego znaku bez znaku w C?
Patrzyłem na inne pytanie (tutaj) gdzie ktoś szukał sposobu na pobranie pierwiastka kwadratowego z 64-bitowej liczby całkowitej w zespole x86.
To okazuje się bardzo proste. Rozwiązaniem jest konwersja na liczbę zmiennoprzecinkową, obliczenie sqrt, a następnie konwersję z powrotem.
Muszę zrobić coś bardzo podobnego w C, ale kiedy zajrzę w odpowiedniki, trochę utknęłam. Mogę znaleźć tylko funkcję sqrt, która przyjmuje podwójne. Dublety nie mają precyzji do przechowywania dużych 64-bitowych liczb całkowitych bez wprowadzania istotnego błędu zaokrąglania.
Czy istnieje wspólna biblioteka matematyczna, której mogę użyćlong double
funkcja sqrt?