PINE LIBRARY

fraction

Library "fraction"
Fraction Creation and Basic Operations.
Cracked a tough problem in making this Polarity Agnostic Decimal without a cheating "abs * sign of input".

it's quite fast, however still test for errors before production use.
>> Big Neon Sign on 1/0 value. <<

  • Int Array (LOC 0/1)..
  • To/From Decimal(float)
  • Comparison ( < / == / >)
  • Add / Sub / Mult / Div
  • Invert polarity +/-
  • String output with 2 formats ..


make(_numerator, _denominator, _val)
  Parameters:
    _numerator: (int) above the line integer ie: ____ of (___ / bottom )
    _denominator: (int) below the line integer ie: ____ of (top / ______ )
    _val: (int) OPTIONAL (for no real reason including it) integer to multiply
  Returns: array<int> where index 0 is Numerator, 1 is Denominator

add(_fraction, _fraction2)
  Perform add operation (left adds right onto )
  Parameters:
    _fraction: (array<int>) left side Fraction Object
    _fraction2: (array<int>) right side Fraction Object
  Returns: array<int> where index 0 is Numerator, 1 is Denominator

subtract(_fraction, _fraction2)
  Perform subtract operation (left subtracts right from )
  Parameters:
    _fraction: (array<int>) left side Fraction Object
    _fraction2: (array<int>) right side Fraction Object
  Returns: array<int> where index 0 is Numerator, 1 is Denominator

multiply(_fraction, _fraction2)
  Perform multiply operation (left multiplies by right )
  Parameters:
    _fraction: (array<int>) left side Fraction Object
    _fraction2: (array<int>) right side Fraction Object
  Returns: array<int> where index 0 is Numerator, 1 is Denominator

divide(_fraction, _fraction2)
  Perform divide operation (left divides by right )
  Parameters:
    _fraction: (array<int>) left side Fraction Object
    _fraction2: (array<int>) right side Fraction Object
  Returns: array<int> where index 0 is Numerator, 1 is Denominator

negative(_fraction)
  Perform Negative number inversion ie: (-1/2 => 1/2) or (3/5 => -3/5)
  Parameters:
    _fraction: (array<int>) Fraction Object to invert to/from negative
  Returns: array<int> where index 0 is Numerator, 1 is Denominator

isSmaller(_fraction, _fraction2)
  Check if first fraction is smaller
  Parameters:
    _fraction: (array<int>) left side Fraction Object
    _fraction2: (array<int>) right side Fraction Object
  Returns: True if smaller, false if bigger

isLarger(_fraction, _fraction2)
  Check if first fraction is larger
  Parameters:
    _fraction: (array<int>) left side Fraction Object
    _fraction2: (array<int>) right side Fraction Object
  Returns: True if smaller, false if bigger

isEqual(_fraction, _fraction2)
  Check if first fraction is equal
  Parameters:
    _fraction: (array<int>) left side Fraction Object
    _fraction2: (array<int>) right side Fraction Object
  Returns: True if smaller, false if bigger

fromDec(_input, _epsilon, _iterations)
  Convert Decimal to Fraction array
  note : this is my own Negative Number Capable (tiny speed loss)
  adaptation of the fastest algo out there
  Exclusive for Tradingview.

  Parameters:
    _input: (float) Decimal Input
    _epsilon: (int) (OPTIONAL) to precision 0's after dec 0.0000 -> epsilon 0's
    _iterations: (int) (OPTIONAL) Maximum iterations Till give up
  Returns: array<int> where index 0 is Numerator, 1 is Denominator

toDec()
  Convert Fraction to Decimal Output
  Returns: Float of fration

toString(_fraction)
  Create "A/B" or "A and B/C" String Value of Fraction.
  Parameters:
    _fraction: (array<int>) Fraction Object to invert to/from negative
  Returns: String as (-)? A and B/C format
fractionfractionsMATH

Biblioteca Pine

Siguiendo fielmente el espíritu TradingView, el autor ha publicado este código Pine como una biblioteca de código abierto, permitiendo que otros programadores de Pine en nuestra comunidad lo utilicen de nuevo. ¡Olé por el autor! Puede utilizar esta biblioteca de forma privada o en otras publicaciones de código abierto, pero tenga en cuenta que la reutilización de este código en una publicación se rige por las Normas internas.

Exención de responsabilidad