use core::scalar use core::functions use math::constants use math::trigonometry use math::transcendental fn cot(x: Scalar) -> Scalar = 1 / tan(x) fn acot(x: Scalar) -> Scalar = atan(1 / x) fn coth(x: Scalar) -> Scalar = (e^x + e^-x) / (e^x - e^-x) fn acoth(x: Scalar) -> Scalar = 1/2 × ln((x + 1) / (x - 1)) fn secant(x: Scalar) -> Scalar = 1 / cos(x) fn arcsecant(x: Scalar) -> Scalar = acos(1 / x) fn cosecant(x: Scalar) -> Scalar = 1 / sin(x) fn csc(x: Scalar) -> Scalar = cosecant(x) fn acsc(x: Scalar) -> Scalar = asin(1 / x) fn sech(x: Scalar) -> Scalar = 1 / cosh(x) fn asech(x: Scalar) -> Scalar = ln(sqrt(1 / x - 1) sqrt(1 / x + 1) + 1 / x) fn csch(x: Scalar) -> Scalar = 1 / sinh(x) fn acsch(x: Scalar) -> Scalar = ln(sqrt(1 + 1 / x^2) + 1 / x)