Implementation complex numbers for Lua. Overload basic operators and mathematic functions. Compatibility with Lua 5.3+.
complex.i -> complexImaginary unit.
complex.e -> complex
complex.pi -> complex
complex.tau -> complexMathematic constants as complex numbers.
complex.FMT.imaginary_char -> stringCharacter for printing imaginary unit.
complex.FMT.format_spec_char -> 'f'|'g'|'G'|'e'|'E'|'a'|'A'
complex.FMT.format_sign_char -> nil|' '|'+'Format specefication character for type and sign behaviour in complex.tostring.
complex.FMT.epsilon -> numberEnough close to zero value.
complex.new(real?: number, imag?: number) -> complex
complex.polar(r?: number, phi?: number) -> complexCreation from cartesian or polar coordinates.
complex.type(value: any) -> "integer"|"float"|"complex"|nilEquivalent of function math.type.
complex.tocomplex(value: any) -> complex?Convert any value to complex number. If value not table nor number, then return fail.
complex.real -> number
complex.imag -> numberField with real and imaginary parts of complex number.
complex.__unm(z: complex) -> complexNegation a complex number.
complex.__add(lhs: complex|number, rhs: complex|number) -> complex
complex.__sub(lhs: complex|number, rhs: complex|number) -> complex
complex.__mul(lhs: complex|number, rhs: complex|number) -> complex
complex.__div(lhs: complex|number, rhs: complex|number) -> complex
complex.__pow(lhs: complex|number, rhs: complex|number) -> complexBasic operations (+, -, *, /, ^) with complex numbers.
complex.tostring(z: complex, prec?: integer) -> stringConvert to string with precision after float point.
complex.__tostring(z: complex) -> stringImplicit call method complex.tostring with nil arguments.
complex.round(z: complex, prec?: integer) -> complexApply round function to both fields.
complex.conj(z: complex) -> complexReturns conjugation of complex number.
complex.norm(z: complex) -> numberReturns norm of complex number.
complex.abs(z: complex) -> numberReturns absolute value of complex number.
complex.arg(z: complex) -> numberReturns argument of complex number in range (-pi, pi].
complex.crd(z: complex) -> number, numberReturns real and imaginary parts
complex.plr(z: complex) -> number, numberRetunrs absolute value and argument together.
complex.sqr(z: complex) -> complexReturns square (z^2) of complex number.
complex.cube(z: complex) -> complexReturns cube (z^3) of complex number.
complex.exp(z: complex|number) -> complexReturns exponent (e^z) of complex number.
complex.log(z: complex|number, base?: complex|number) -> complexReturns logarithm of complex number with base.
complex.sqrt(z: complex|number) -> complexReturns one value of square root of complex number.
complex.roots(z: complex|number, n: integer) -> complex[]?Returns list of values of nth-root of complex number.
If n is not integer or less than 2, then return fail.
complex.quadratic(a: complex|number, b: complex|number, c: complex|number) -> complex, complexSolving quadratic equation (az^2 + bz + c = 0).
complex.cubic(a: complex|number, b: complex|number, c: complex|number, d: complex|number) -> complex, complex, complexSolving cubic equation (az^3 + bz^2 + cz + d = 0).
complex.sin(z: complex|number) -> complex
complex.cos(z: complex|number) -> complex
complex.tan(z: complex|number) -> complex
complex.cot(z: complex|number) -> complex
complex.sec(z: complex|number) -> complex
complex.csc(z: complex|number) -> complexTrigonometric functions for complex numbers.
complex.asin(z: complex|number) -> complex
complex.acos(z: complex|number) -> complex
complex.atan(z: complex|number) -> complex
complex.acot(z: complex|number) -> complex
complex.asec(z: complex|number) -> complex
complex.acsc(z: complex|number) -> complexInverse trigonometric functions for complex numbers.
complex.sinh(z: complex|number) -> complex
complex.cosh(z: complex|number) -> complex
complex.tanh(z: complex|number) -> complex
complex.coth(z: complex|number) -> complex
complex.sech(z: complex|number) -> complex
complex.csch(z: complex|number) -> complexHyperbolic functions for complex numbers.
complex.asinh(z: complex|number) -> complex
complex.acosh(z: complex|number) -> complex
complex.atanh(z: complex|number) -> complex
complex.acoth(z: complex|number) -> complex
complex.asech(z: complex|number) -> complex
complex.acsch(z: complex|number) -> complexInverse hyperbolic functions for complex numbers.
complex.gamma(z: complex|number) -> complexReturns value of gamma function of z.