TradingView
RicardoSantos
Oct 9, 2021 8:09 AM

MathComplexOperator 

Bitcoin / U.S. dollarBitstamp

Description

Library "MathComplexOperator"
A set of utility functions to handle complex numbers.

conjugate(complex_number) Computes the conjugate of complex_number by reversing the sign of the imaginary part.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float array, pseudo complex number in the form of a array [real, imaginary]

add(complex_number_a, complex_number_b) Adds complex number complex_number_b to complex_number_a, in the form:
[_a.real + _b.real, _a.imaginary + _b.imaginary].
Parameters:
  • complex_number_a: pseudo complex number in the form of a array [real, imaginary].
  • complex_number_b: pseudo complex number in the form of a array [real, imaginary].

Returns: float array, pseudo complex number in the form of a array [real, imaginary]

subtract(complex_number_a, complex_number_b) Subtract complex_number_b from complex_number_a, in the form:
[_a.real - _b.real, _a.imaginary - _b.imaginary].
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: float array, pseudo complex number in the form of a array [real, imaginary]

multiply(complex_number_a, complex_number_b) Multiply complex_number_a with complex_number_b, in the form:
[(_a.real * _b.real) - (_a.imaginary * _b.imaginary), (_a.real * _b.imaginary) + (_a.imaginary * _b.real)]
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: float array, pseudo complex number in the form of a array [real, imaginary]

divide(complex_number_a, complex_number_b) Divide complex_number _a with _b, in the form:
[(_a.real * _b.real) - (_a.imaginary * _b.imaginary), (_a.real * _b.imaginary) + (_a.imaginary * _b.real)]
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: float array, pseudo complex number in the form of a array [real, imaginary]

reciprocal(complex_number) Computes the reciprocal or inverse of complex_number.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float array, pseudo complex number in the form of a array [real, imaginary]

negative(complex_number) Negative of complex_number, in the form: [-_a.real, -_a.imaginary]
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float array, pseudo complex number in the form of a array [real, imaginary]

inverse(complex_number) Inverse of complex_number, in the form: [1/_a.real, 1/_a.imaginary]
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float array, pseudo complex number in the form of a array [real, imaginary]

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

Returns: float array, pseudo complex number in the form of a array [real, imaginary]

ceil(complex_number, digits) Ceils complex_number.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].
  • digits: int, digits to use as ceiling.

Returns: _complex: pseudo complex number in the form of a array [real, imaginary]

radius(complex_number) Radius(magnitude) of complex_number, in the form: [sqrt(pow(complex_number))]
This is defined as its distance from the origin (0,0) of the complex plane.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float value with radius.

magnitude(complex_number) magnitude(absolute value) of complex_number, should be the same as the radius.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float.

magnitude_squared(complex_number) magnitude(absolute value) of complex_number, should be the same as the radius.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float.

sign(complex_number) Unity of complex numbers.
Parameters:
  • complex_number: float array, pseudo complex number in the form of a array [real, imaginary].

Returns: float array, complex number.

Release Notes

v2 update to type and method.

Updated:
conjugate(this)
  Computes the conjugate of complex number by reversing the sign of the imaginary part.
  Parameters:
    this: complex.
  Returns: Complex.

add(this, other)
  Adds complex number other to this, in the form:
[_a.real + _b.real, _a.imaginary + _b.imaginary].
  Parameters:
    this: pseudo complex number in the form of a array [real, imaginary].
    other: pseudo complex number in the form of a array [real, imaginary].
  Returns: complex

subtract(this, other)
  Subtract other from this, in the form:
[_a.real - _b.real, _a.imaginary - _b.imaginary].
  Parameters:
    this: complex.
    other: complex.
  Returns: complex

multiply(this, other)
  Multiply this with other, in the form:
[(_a.real * _b.real) - (_a.imaginary * _b.imaginary), (_a.real * _b.imaginary) + (_a.imaginary * _b.real)]
  Parameters:
    this: complex.
    other: complex.
  Returns: complex

divide(this, other)
  Divide complex_number _a with _b, in the form:
[(_a.real * _b.real) - (_a.imaginary * _b.imaginary), (_a.real * _b.imaginary) + (_a.imaginary * _b.real)]
  Parameters:
    this: complex.
    other: complex.
  Returns: complex

reciprocal(this)
  Computes the reciprocal or inverse of complex_number.
  Parameters:
    this
  Returns: complex

negative(this)
  Negative of complex_number, in the form: [-_a.real, -_a.imaginary]
  Parameters:
    this
  Returns: complex

inverse(this)
  Inverse of complex_number, in the form: [1/_a.real, 1/_a.imaginary]
  Parameters:
    this
  Returns: complex

exponential(this)
  Exponential of complex_number.
  Parameters:
    this
  Returns: complex

ceil(this, digits)
  Ceils complex_number.
  Parameters:
    this
    digits: int, digits to use as ceiling.
  Returns: _complex: pseudo complex number in the form of a array [real, imaginary]

radius(this)
  Radius(magnitude) of complex_number, in the form: [sqrt(pow(complex_number))]
This is defined as its distance from the origin (0,0) of the complex plane.
  Parameters:
    this
  Returns: float value with radius.

magnitude(this)
  magnitude(absolute value) of complex_number, should be the same as the radius.
  Parameters:
    this
  Returns: float.

magnitude_squared(this)
  magnitude(absolute value) of complex_number, should be the same as the radius.
  Parameters:
    this
  Returns: float.

sign(this)
  Unity of complex numbers.
  Parameters:
    this
  Returns: float array, complex number.

Release Notes

v3 minor update.
Comments
peacefulLizard50262
I redid this to use types instead of arrays :D tradingview.com/script/jbUtrr8S-MathComplexType/
RicardoSantos
@peacefulLizard50262, im waiting on a release for type updates, so it will take a bit to update on my end.. :)
peacefulLizard50262
@RicardoSantos, OH neat! They are going to update the type system?! This was just fun for me on my end because Ive been really uninspired lately.
RicardoSantos
@peacefulLizard50262, cant go on detail but is a key component needed for me to update the libraries
peacefulLizard50262
@RicardoSantos, Im hoping to maybe implement a noise suppressor in pine eventually with this. I tested adobe auditions built in noise suppression on some btc data ala python and it worked REALLY well. So if you beet me to it I wouldnt be mad ;) hahaha
peacefulLizard50262
That wasn't a long wait. I figured it was methods you where waiting for. Jolly well done.
RicardoSantos
@peacefulLizard50262, i will probably have to remake it into new libraries anyways, as a big update like this makes a spaghetti soup out of the description page, and there is quite a few functions that became redundant. :)
jack2028
erer
More