11 lines
325 B
D

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 ? float.nan : llvm_sqrt(x);
double sqrt(double x) => x < 0 ? double.nan : llvm_sqrt(x);