+#ifdef HAVE_LONGLONG
+// Extracts integer root of a 64-bit number and returns a 32-bit number.
+// isqrt(x)
+// > uintQ x : radicand, >=0, <2^64
+// < uintL result : square root, >=0, <2^32
+ extern uintL isqrt (uintQ x);
+#endif
+
+// Sorry for this. We need an isqrt function taking uintC arguments but we
+// cannot use overloading since this would lead to ambiguities with any of the
+// two signatures above.
+ inline uintL isqrtC (uintC x)
+ {
+#if (intCsize==32)
+ return isqrt((uintL)x);
+#else
+ return isqrt((uintQ)x);
+#endif
+ }
+
+