module game.math; nothrow: @safe: extern(C){ float atan2(float,float); float cos(float); float sin(float); float sqrt(float); float random(); float pow(float, float); } extern(C) float fmodf(float a, float b) { float c = a / b; c -= cast(int)c; return c * b; } auto abs(T)(T t) { import std.traits : isFloatingPoint; static if (isFloatingPoint!T) { if (t < cast(T)0f) return -t; } else { if (t < cast(T)0) return -t; } return t; }