github.com/coveo/gotemplate@v2.7.7+incompatible/template/math_stats.go (about)

     1  package template
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  func average(arg1 interface{}, args ...interface{}) (r interface{}, err error) {
     8  	if arg1 == nil {
     9  		return nil, fmt.Errorf("First argument could not be nil")
    10  	}
    11  	defer func() { err = trapError(err, recover()) }()
    12  	args = convertArgs(arg1, args...).AsArray()
    13  	if len(args) == 0 {
    14  		return 0, nil
    15  	}
    16  	var sum interface{}
    17  	sum, err = add(args[0], args[1:]...)
    18  	return simplify(toFloat(sum) / float64(len(args))), nil
    19  }
    20  
    21  func min(values ...interface{}) interface{} { return compareNumerics(values, true) }
    22  func max(values ...interface{}) interface{} { return compareNumerics(values, false) }