RicardoSantos

MathComplexCore

RicardoSantos Wizard 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: 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 .
  • 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 .


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

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

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

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

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 .


get_real(complex_number) Get the real part of complex_number.
Parameters:
  • complex_number: pseudo complex number in the form of a array .
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 .
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 .
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 .
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 .
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 .
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 .
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 .
  • complex_number_b: float array, pseudo complex number in the form of a array .
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 .
  • 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
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

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.