PINE LIBRARY

MathComplexCore

Updated
Library "MathComplexCore"
Core functions to handle complex numbers.

set_real(complex_number, real) Set the real part of complex_number.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].
  • real: float, value to replace real value of complex_number.

Returns: Void, Modifies complex_number.

set_imaginary(complex_number, imaginary) Set the imaginary part of complex_number.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].
  • imaginary: float, value to replace imaginary value of complex_number.

Returns: Void, Modifies complex_number.

new(real, imaginary) Creates a prototype array to handle complex numbers.
Parameters:
  • real: float, real value of the complex number. default=0.
  • imaginary: float, imaginary number of the complex number. default=0.
    return float array, pseudo complex number in the form of a array [real, imaginary].



zero() complex number "0+0i".
return float array, pseudo complex number in the form of a array [real, imaginary].

one() complex number "1+0i".
return float array, pseudo complex number in the form of a array [real, imaginary].

imaginary_one() complex number "0+1i".
return float array, pseudo complex number in the form of a array [real, imaginary].

nan() complex number "0+1i".
return float array, pseudo complex number in the form of a array [real, imaginary].

from_polar_coordinates(magnitude, phase) Create a complex number from a point's polar coordinates.
Parameters:
  • magnitude: float, default=0.0, The magnitude, which is the distance from the origin (the intersection of the x-axis and the y-axis) to the number.
  • phase: float, default=0.0, The phase, which is the angle from the line to the horizontal axis, measured in radians.
    return float array, pseudo complex number in the form of a array [real, imaginary].



get_real(complex_number) Get the real part of complex_number.
Parameters:
  • complex_number: pseudo complex number in the form of a array [real, imaginary].

Returns: float, Real part of the complex_number.

get_imaginary(complex_number) Get the imaginary part of complex_number.
Parameters:
  • complex_number: pseudo complex number in the form of a array [real, imaginary].

Returns: float, Imaginary part of the complex number.

is_complex(complex_number) Checks that its a valid complex_number.
Parameters:
  • complex_number: pseudo complex number in the form of a array [real, imaginary].

Returns: bool.

is_nan(complex_number) Checks that its empty "na" complex_number.
Parameters:
  • complex_number: pseudo complex number in the form of a array [real, imaginary].

Returns: bool.

is_real(complex_number) Checks that the complex_number is real.
Parameters:
  • complex_number: pseudo complex number in the form of a array [real, imaginary].

Returns: bool.

is_real_non_negative(complex_number) Checks that the complex_number is real and not negative.
Parameters:
  • complex_number: pseudo complex number in the form of a array [real, imaginary].

Returns: bool.

is_zero(complex_number) Checks that the complex_number is zero.
Parameters:
  • complex_number: pseudo complex number in the form of a array [real, imaginary].

Returns: bool.

equals(complex_number_a, complex_number_b) Compares two complex numbers:
Parameters:
  • complex_number_a: float array, pseudo complex number in the form of a array [real, imaginary].
  • complex_number_b: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: boolean value representing the equality.

to_string(complex, format) Converts complex_number to a string format, in the form: "a+bi"
Parameters:
  • complex: pseudo complex number in the form of a array [real, imaginary].
  • format: string, formating to apply.

Returns: a string in "a+bi" format
Release Notes
v2 - Update to types, and cleaned deprecated functions

Added:
from(value)
  Creates a new Complex number from provided value.
  Parameters:
    value: string . Value of real and imaginary parts.
  Returns: Complex.

Updated:
new(real, imaginary)
  Creates a new Complex number.
  Parameters:
    real: float . Real part of the complex number. default=0.
    imaginary: float . Imaginary part of the complex number. default=0.
  Returns: Complex.

from_polar_coordinates(magnitude, phase)
  Create a complex number from polar coordinates.
  Parameters:
    magnitude: float, default=0.0, The magnitude, which is the distance from the origin (the intersection of the x-axis and the y-axis) to the number.
    phase: float, default=0.0, The phase, which is the angle from the line to the horizontal axis, measured in radians.
  Returns: Complex.

zero()
  Complex number "0+0i".
  Returns: Complex.

one()
  Complex number "1+0i".
  Returns: Complex.

imaginary_one()
  Complex number "0+1i".
  Returns: Complex.

nan()
  Complex number with `float(na)` parts.
  Returns: Complex.

is_complex(this)
  Checks that its a valid complex number.
  Parameters:
    this: Complex Source complex number.
  Returns: bool.

is_nan(this)
  Checks that its empty "na" complex number.
  Parameters:
    this: Complex Source complex number.
  Returns: bool.

is_real(this)
  Checks that the complex_number is real.
  Parameters:
    this: Complex Source complex number.
  Returns: bool.

is_real_non_negative(this)
  Checks that the complex_number is real and not negative.
  Parameters:
    this: Complex Source complex number.
  Returns: bool.

is_zero(this)
  Checks that the complex_number is zero.
  Parameters:
    this: Complex Source complex number.
  Returns: bool.

equals(this, other, eps)
  Compares two complex numbers:
  Parameters:
    this: Complex . Source complex number.
    other: Complex . Target complex number
    eps: float . Precision value, default=1e-15.
  Returns: boolean value representing the equality.

to_string(this, format)
  Converts complex number to a string format, in the form: "a+bi"
  Parameters:
    this: Complex . Source complex number..
    format: string, formating to apply.
  Returns: string. In "a+bi" format

Removed: set_real(), set_imaginary(), get_real(), get_imaginary()
Release Notes
v3 missed method on to_string().
Release Notes
v4 minor update
arrayscomplexMATH

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House rules.

Disclaimer