github.com/coveo/gotemplate@v2.7.7+incompatible/template/math_trig.go (about) 1 package template 2 3 import ( 4 "math" 5 ) 6 7 func rad(a interface{}) (r interface{}, err error) { 8 defer func() { err = trapError(err, recover()) }() 9 return processFloat(a, func(a float64) float64 { 10 return a * math.Pi / 180 11 }) 12 } 13 14 func deg(a interface{}) (r interface{}, err error) { 15 defer func() { err = trapError(err, recover()) }() 16 return processFloat(a, func(a float64) float64 { 17 return a * 180 / math.Pi 18 }) 19 } 20 21 func acos(a interface{}) (r interface{}, err error) { 22 defer func() { err = trapError(err, recover()) }() 23 return processFloat(a, math.Acos) 24 } 25 26 func acosh(a interface{}) (r interface{}, err error) { 27 defer func() { err = trapError(err, recover()) }() 28 return processFloat(a, math.Acosh) 29 } 30 31 func asin(a interface{}) (r interface{}, err error) { 32 defer func() { err = trapError(err, recover()) }() 33 return processFloat(a, math.Asin) 34 } 35 36 func asinh(a interface{}) (r interface{}, err error) { 37 defer func() { err = trapError(err, recover()) }() 38 return processFloat(a, math.Asinh) 39 } 40 41 func atan(a interface{}) (r interface{}, err error) { 42 defer func() { err = trapError(err, recover()) }() 43 return processFloat(a, math.Atan) 44 } 45 46 func atan2(a, b interface{}) (r interface{}, err error) { 47 defer func() { err = trapError(err, recover()) }() 48 return processFloat2(a, b, math.Atan2) 49 } 50 51 func atanh(a interface{}) (r interface{}, err error) { 52 defer func() { err = trapError(err, recover()) }() 53 return processFloat(a, math.Atanh) 54 } 55 56 func cos(a interface{}) (r interface{}, err error) { 57 defer func() { err = trapError(err, recover()) }() 58 return processFloat(a, math.Cos) 59 } 60 61 func cosh(a interface{}) (r interface{}, err error) { 62 defer func() { err = trapError(err, recover()) }() 63 return processFloat(a, math.Cosh) 64 } 65 66 func hypot(a, b interface{}) (r interface{}, err error) { 67 defer func() { err = trapError(err, recover()) }() 68 return processFloat2(a, b, math.Hypot) 69 } 70 71 func ilogb(a interface{}) (r interface{}, err error) { 72 defer func() { err = trapError(err, recover()) }() 73 return math.Ilogb(toFloat(a)), nil 74 } 75 76 func logFunc(a interface{}) (r interface{}, err error) { 77 defer func() { err = trapError(err, recover()) }() 78 return processFloat(a, math.Log) 79 } 80 81 func log10(a interface{}) (r interface{}, err error) { 82 defer func() { err = trapError(err, recover()) }() 83 return processFloat(a, math.Log10) 84 } 85 86 func log1p(a interface{}) (r interface{}, err error) { 87 defer func() { err = trapError(err, recover()) }() 88 return processFloat(a, math.Log1p) 89 } 90 91 func log2(a interface{}) (r interface{}, err error) { 92 defer func() { err = trapError(err, recover()) }() 93 return processFloat(a, math.Log2) 94 } 95 96 func logb(a interface{}) (r interface{}, err error) { 97 defer func() { err = trapError(err, recover()) }() 98 return processFloat(a, math.Logb) 99 } 100 101 func sin(a interface{}) (r interface{}, err error) { 102 defer func() { err = trapError(err, recover()) }() 103 return processFloat(a, math.Sin) 104 } 105 106 func sincos(a interface{}) (r interface{}, err error) { 107 defer func() { err = trapError(err, recover()) }() 108 s, c := math.Sincos(toFloat(a)) 109 return []interface{}{simplify(s), simplify(c)}, nil 110 } 111 112 func sinh(a interface{}) (r interface{}, err error) { 113 defer func() { err = trapError(err, recover()) }() 114 return processFloat(a, math.Sinh) 115 } 116 117 func tan(a interface{}) (r interface{}, err error) { 118 defer func() { err = trapError(err, recover()) }() 119 return processFloat(a, math.Tan) 120 } 121 122 func tanh(a interface{}) (r interface{}, err error) { 123 defer func() { err = trapError(err, recover()) }() 124 return processFloat(a, math.Tanh) 125 }