mirror of
https://github.com/MontFerret/ferret.git
synced 2024-12-16 11:37:36 +02:00
5f94b77a39
* #7 Added ABS * #7 Added ACOS * #7 Added ASIN * #7 Added ATAN * #7 Added ATAN2 * #7 Added AVERAGE * #7 Added CEIL * #7 Added COS * #7 Added DEGREES * #7 Added EXP * #7 Added EXP2 * #7 Added FLOOR * #7 Added LOG * #7 Added LOG2 * #7 Added LOG10 * #7 Added MAX * #7 Added MEDIAN * #7 Added MIN * #7 Added PERCENTILE * #7 Added PI * #7 Added POW * #7 Added RADIANS * #7 Added RAND * #7 Added RANGE * #7 Added ROUND * #7 Added SIN * #7 Added SQRT * #7 Added TAN * #7 Added SUM * #7 Added STDDEV_POPULATION * #7 Added STDDEV_SAMPLE, VARIANCE_POPULATION, VARIANCE_SAMPLE
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package math
|
|
|
|
import (
|
|
"github.com/MontFerret/ferret/pkg/runtime/core"
|
|
"github.com/MontFerret/ferret/pkg/runtime/values"
|
|
"math"
|
|
)
|
|
|
|
const (
|
|
RadToDeg = 180 / math.Pi
|
|
DegToRad = math.Pi / 180
|
|
RadToGrad = 200 / math.Pi
|
|
GradToDeg = math.Pi / 200
|
|
)
|
|
|
|
func NewLib() map[string]core.Function {
|
|
return map[string]core.Function{
|
|
"ABS": Abs,
|
|
"ACOS": Acos,
|
|
"ASIN": Asin,
|
|
"ATAN": Atan,
|
|
"ATAN2": Atan2,
|
|
"AVERAGE": Average,
|
|
"CEIL": Ceil,
|
|
"COS": Cos,
|
|
"DEGREES": Degrees,
|
|
"EXP": Exp,
|
|
"EXP2": Exp2,
|
|
"FLOOR": Floor,
|
|
"LOG": Log,
|
|
"LOG2": Log2,
|
|
"LOG10": Log10,
|
|
"MAX": Max,
|
|
"MEDIAN": Median,
|
|
"MIN": Min,
|
|
"PERCENTILE": Percentile,
|
|
"PI": Pi,
|
|
"POW": Pow,
|
|
"RADIANS": Radians,
|
|
"RAND": Rand,
|
|
"RANGE": Range,
|
|
"ROUND": Round,
|
|
"SIN": Sin,
|
|
"SQRT": Sqrt,
|
|
"STDDEV_POPULATION": StandardDeviationPopulation,
|
|
"STDDEV_SAMPLE": StandardDeviationSample,
|
|
"SUM": Sum,
|
|
"TAN": Tan,
|
|
"VARIANCE_POPULATION": PopulationVariance,
|
|
"VARIANCE_SAMPLE": SampleVariance,
|
|
}
|
|
}
|
|
|
|
func toFloat(arg core.Value) float64 {
|
|
if arg.Type() == core.IntType {
|
|
return float64(arg.(values.Int))
|
|
}
|
|
|
|
return float64(arg.(values.Float))
|
|
}
|