"""
Auto-generated Python stub file from vipermath.py
Module: vipermath
"""


import t, c

U_M_PI:   t.CDefine = 3.14159265358979323846
U_M_E:    t.CDefine = 2.71828182845904523536
U_M_PI_2: t.CDefine = 1.57079632679489661923
U_M_PI_4: t.CDefine = 0.78539816339744830962
U_M_1_PI: t.CDefine = 0.31830988618379067154
U_M_2_PI: t.CDefine = 0.63661977236758134308
U_M_LN2:  t.CDefine = 0.69314718055994530942
U_M_LN10: t.CDefine = 2.30258509299404568402
U_M_2_SQRT_PI: t.CDefine = 1.77245385090551602730

def radians(degrees: t.CDouble) -> t.CDouble: pass

def degrees(radians: t.CDouble) -> t.CDouble: pass

def sin(x: t.CDouble) -> t.CDouble: pass

def cos(x: t.CDouble) -> t.CDouble: pass

def tan(x: t.CDouble) -> t.CDouble: pass

def asin(x: t.CDouble) -> t.CDouble: pass

def acos(x: t.CDouble) -> t.CDouble: pass

def _atan_core(x: t.CDouble) -> t.CDouble: pass

def atan(x: t.CDouble) -> t.CDouble: pass

def atan2(y: t.CDouble, x: t.CDouble) -> t.CDouble: pass

def sinh(x: t.CDouble) -> t.CDouble: pass

def cosh(x: t.CDouble) -> t.CDouble: pass

def tanh(x: t.CDouble) -> t.CDouble: pass

def exp(x: t.CDouble) -> t.CDouble: pass

def log(x: t.CDouble) -> t.CDouble: pass

def sqrt(x: t.CDouble) -> t.CDouble: pass

def abs(x: t.CInt) -> t.CInt: pass

def fabs(x: t.CDouble) -> t.CDouble: pass

def labs(x: t.CLong) -> t.CLong: pass

def factorial(n: t.CInt) -> t.CDouble: pass

def combination(n: t.CInt, k: t.CInt) -> t.CDouble: pass

def permutation(n: t.CInt, k: t.CInt) -> t.CDouble: pass

def pow(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass

def powf(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass

def cbrt(x: t.CDouble) -> t.CDouble: pass

def hypot(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass

def floor(x: t.CDouble) -> t.CDouble: pass

def ceil(x: t.CDouble) -> t.CDouble: pass

def round(x: t.CDouble) -> t.CDouble: pass

def trunc(x: t.CDouble) -> t.CDouble: pass

def fmod(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass

def fmodf(x: float, y: float) -> float: pass

def modf(x: t.CDouble, iptr: t.CDouble | t.CPtr) -> t.CDouble: pass

def log10(x: t.CDouble) -> t.CDouble: pass

def log2(x: t.CDouble) -> t.CDouble: pass

def exp2(x: t.CDouble) -> t.CDouble: pass

def expm1(x: t.CDouble) -> t.CDouble: pass

def log1p(x: t.CDouble) -> t.CDouble: pass

def asinh(x: t.CDouble) -> t.CDouble: pass

def acosh(x: t.CDouble) -> t.CDouble: pass

def atanh(x: t.CDouble) -> t.CDouble: pass

def gamma(x: t.CDouble) -> t.CDouble: pass

def erf(x: t.CDouble) -> t.CDouble: pass

def erfc(x: t.CDouble) -> t.CDouble: pass

def sqrtf(x: t.CFloat) -> t.CFloat: pass

def sinf(x: t.CFloat) -> t.CFloat: pass

def cosf(x: t.CFloat) -> t.CFloat: pass

def tanf(x: t.CFloat) -> t.CFloat: pass

def fabsf(x: t.CFloat) -> t.CFloat: pass

def floorf(x: t.CFloat) -> t.CFloat: pass

def ceilf(x: t.CFloat) -> t.CFloat: pass


class _U(t.CUnion):
    d: t.CDouble
    u: t.CUInt64T

def isnan(x: t.CDouble) -> t.CStatic | t.CInt: pass

def isinf(x: t.CDouble) -> t.CStatic | t.CInt: pass
