¿Cómo se puede calcular fácilmente la raíz cuadrada de un largo sin firmar en C?

Estaba mirando otra pregunta (aquí) donde alguien estaba buscando una forma de obtener la raíz cuadrada de un entero de 64 bits en un ensamblaje x86.

Esto resulta ser muy simple. La solución es convertir a un número de punto flotante, calcular el sqrt y luego convertir de nuevo.

Necesito hacer algo muy similar en C, sin embargo, cuando veo equivalentes, me estoy quedando un poco atascado. Solo puedo encontrar una función sqrt que acepte dobles. Los dobles no tienen la precisión para almacenar grandes enteros de 64 bits sin introducir un error de redondeo significativo.

¿Hay una biblioteca de matemáticas común que pueda usar que tenga unalong double función sqrt?