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  }