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?

questionAnswers(5)

yourAnswerToTheQuestion