module std.math.rounding;

pragma(LDC_intrinsic, "llvm.round.f#")
T llvm_round(T)(T val)
if(__traits(isFloating, T));

float  round(float  x) => llvm_round(x);
double round(double x) => llvm_round(x);

pragma(LDC_intrinsic, "llvm.floor.f#")
T llvm_floor(T)(T val) 
if(__traits(isFloating, T));

float  floor(float  x) => llvm_floor(x);
double floor(double x) => llvm_floor(x);

pragma(LDC_intrisic, "llvm.ceil.f#")
T llvm_ceil(T)(T val)
if(__traits(isFloating, T));

float  ceil(float  x) => llvm_ceil(x);
double ceil(double x) => llvm_ceil(x);
