module core.math; pragma(LDC_intrinsic, "llvm.sqrt.f32") float llvm_sqrt(float x) pure nothrow @nogc @safe; pragma(LDC_intrinsic, "llvm.sqrt.f64") double llvm_sqrt(double x) pure nothrow @nogc @safe; float sqrt(float x ) => x < 0.0f ? float.nan : llvm_sqrt(x); double sqrt(double x) => x < 0.0f ? double.nan : llvm_sqrt(x);