PINE LIBRARY
Updated calc

Library "calc"
Library for math functions. will expand over time.
split(_sumTotal, _divideBy, _forceMinimum, _haltOnError)
Split a large number into integer sized chunks
Parameters:
_sumTotal: (int) Total numbert of items
_divideBy: (int) Groups to make
_forceMinimum: (bool) force minimum number 1/group
_haltOnError: (bool) force error if too few groups
Returns: int[] array of items per group
Library for math functions. will expand over time.
split(_sumTotal, _divideBy, _forceMinimum, _haltOnError)
Split a large number into integer sized chunks
Parameters:
_sumTotal: (int) Total numbert of items
_divideBy: (int) Groups to make
_forceMinimum: (bool) force minimum number 1/group
_haltOnError: (bool) force error if too few groups
Returns: int[] array of items per group
Release Notes
v2Added:
gapSize(_value1, _value2)
Absolute distance between any two float values, agnostic to +/-
Parameters:
_value1: First value
_value2: Second value
Returns: Absolute Positive Distance
simplifyFraction(_num, _den)
Parameters:
_num: (int) Input fraction numerator
_den: (int) Input fraction dennominator
Returns: Simplified Fraction
toFraction(_input, _round)
Convert Decimal to tuple fraction Output, Rounded to tick, Round Shorter if heavy use.
Parameters:
_input: Decimal Input
_round: (OPTIONAL) round shorter to speed up.
Returns: Simplified Fraction (if negative, Numerator gets the sign)
Release Notes
v3Release Notes
v4Added:
percentile(signal, _startVal, _endVal)
Measure percent (0.##) of Distance between two points
Parameters:
signal: value to check
_startVal: first value limit
_endVal: second value limit
pow10up(_src, _pow)
Power of 10 scale up
Parameters:
_src: Input value
_pow: Number of * 10 to perform
pow10dn(_src, _pow)
Power of 10 scale down
Parameters:
_src: Input value
_pow: Number of / 10 to perform
pow10chk(_src)
Power of 10 to req to integer
Parameters:
_src: Input value) =>
Release Notes
v5Major speed improvement on fractions (Thank you Stack overflow)
Fix on Output for start/end == same values on percent, and rename
now gets 0 if starrt == end.
Added:
percentOfDistance(signal, _startVal, _endVal)
Measure percent (0.##) of Distance between two points
Parameters:
signal: value to check
_startVal: first value limit
_endVal: second value limit
fractionOfDistance(signal, _startVal, _endVal)
Measure percent (0.##) of Distance between two points
Parameters:
signal: value to check
_startVal: first value limit
_endVal: second value limit
Returns: [Num,Denom] fraction
pow10(_src, _pow)
Power of 10 scale up
Parameters:
_src: Input value
_pow: Number of * 10 to perform
Returns: Value with decimal moved + right, - left
Updated:
toFraction(_input, _epsilon, _iterations)
Convert Decimal to tuple fraction Output, 1/0 resolves to [1,1]
note : it is suboptimal, will be updating with a much faster algorithm
Parameters:
_input: Decimal Input
_epsilon: (OPTIONAL) to precision (10e-N)
_iterations: Maximum iterations (OPTIONAL)
Returns: [num,den] Simplified Fraction (if negative, Numerator gets the sign)
Removed:
percentile(signal, _startVal, _endVal)
Measure percent (0.##) of Distance between two points
pow10up(_src, _pow)
Power of 10 scale up
pow10dn(_src, _pow)
Power of 10 scale down
Release Notes
v6Added:
from_center(_src, _mid)
Parameters:
_src (float)
_mid (float)
Release Notes
v7Added:
count_digits(num)
Measure the integer digit count of a float
Parameters:
num (float): (float) Input value
Returns: Number of digits
auto_inv_pow(source, power)
Inverse power of a floatbased on digit count
Parameters:
source (float): (float) Input value
power (float): (float) (OPTIONAL) Power to raise to (default 1))
Updated:
from_center(_src, _mid)
Measure a source distance from a mid point as +/- 1.0 being he furhest distance the have been
Parameters:
_src (float): (float) Input value
_mid (float): (float) The mid point to Measure fron
Release Notes
v8Added:
sqr(x)
Parameters:
x (float): (float) - The number to square
Returns: (float) - The square of the input value
atan2(dy, dx)
atan2 function
Parameters:
dy (float): (float) - The y-coordinate
dx (float): (float) - The x-coordinate
Returns: (float) - The angle in radians
scale(_src, _oldMin, _oldMax, _newMin, _newMax)
Scale to new values from old
Parameters:
_src (float): src Value
_oldMin (float): old Min Value
_oldMax (float): old Max Value
_newMin (float): new Min Value
_newMax (float): new Max Value
Returns: rescaled value
scale_stddev(_src, _length, scale)
Rescale values to fit within the std deviation range
Parameters:
_src (float): Value to convert
_length (int): Length of the std deviation
scale (float): (float) Scale factor
Returns: rescaled value
abs1(_src)
Modify incoming data to abs + 1
Parameters:
_src (float): Value to convert
Returns: rescaled value
Fraction
Fraction
Fields:
num (series int): (int) The numerator
den (series int): (int) The denominator
Updated:
toFraction(_source, _epsilon, _iterations)
Convert Decimal to tuple fraction Output, 1/0 resolves to [1,1]
note : it is suboptimal, will be updating with a much faster algorithm
Parameters:
_source (float)
_epsilon (int): (OPTIONAL) to precision (10e-N)
_iterations (int): Maximum iterations (OPTIONAL)
Returns: [num,den] Simplified Fraction (if negative, Numerator gets the sign)
auto_inv_pow(source, power)
Inverse power of a float based on digit count
Parameters:
source (float): (float) Input value
power (float): (float) (OPTIONAL) Power to raise to (default 1))
Release Notes
v9Release Notes
v10mild tidy
Release Notes
v11minor optimizing, but huge improvement downstream for hsvColor speeds.
Added:
gcd(_numerator, _denominator)
Greatest Common Denom
Parameters:
_numerator (int): (int) Input fraction numerator
_denominator (int): (int) Input fraction dennominator
Returns: The Greatest commonm Denom
method sign(_src)
An Int sign value
Namespace types: series float, simple float, input float, const float
Parameters:
_src (float): The value in
Returns: The int aign
Updated:
simplifyFraction(_num, _den)
Simplify fraction to lowest form
Parameters:
_num (int): (int) Input fraction numerator
_den (int): (int) Input fraction dennominator
Returns: Simplified Fraction
pow10(_src, _pow)
Power of 10 scale up/down the decimal left or right
Parameters:
_src (float): Input value
_pow (int): Number of * 10 to perform
Returns: Value with decimal moved + right, - left
abs1(_src)
Modify incoming data to an abs val above 1, compressed at 1 (not linear)
Parameters:
_src (float): Value to convert
Returns: rescaled value
Removed:
gap(_value1, _value2)
Absolute distance between any two float values, agnostic to +/-
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 publications 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.
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 publications 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.