Mathematical Functions Datapack by yosho27
Feel free to use this with your datapacks; if you use it credit would be appreciated
To use the functions, set the "@s math_in" and other input values, call the function, and then get the "@s math_out" value




function math:sin
"math_in" is an angle in degrees; "math_out" will be the sine of the angle scaled up by 100


function math:cos
"math_in" is an angle in degrees; "math_out" will be the cosine of the angle scaled up by 100


function math:tan
"math_in" is an angle in degrees; "math_out" will be the tangent of the angle scaled up by 100


function math:abs
"math_in" is a number; "math_out" will be the absolute value of the number


function math:pow
"math_in" is a base; "math_exp" is an exponent; "math_out" will be the base to the power of the exponent


function math:sqrt
"math_in" is a number; "math_out" will be the absolute value of the number scaled up by 100


function math:rand			(Contributed by Mcskware using using the random0 LCG)
"math_maxrand" is a maximum value; "math_out" will be a psuedo-random number from 0 to the maximum value, inclusive




because scoreboard variables have to be integers, all input and output values are integers 
sin, cos, tan, and sqrt output values are scaled up by 100 to allow 2 extra decimal places of precision
sin, cos, and tan are approximations, and have an average error of about 0.04 (so an average error of about 4 for the scaled up value)
input values are preserved by all functions

Thanks to Mcskware for contributing the PRNG!