github.com/sridharv/stencil@v0.0.0-20170626103218-a81b4a7626a1/std/num/num.go (about)

     1  // Package num provides numeric utilities intended to be used with stencil
     2  //
     3  // As an example, to use a version of num specialized for int32 use
     4  //
     5  //     import "github.com/sridharv/stencil/std/num/Number/int32"
     6  package num
     7  
     8  
     9  type Number float64
    10  
    11  // Max returns the largest number in n
    12  func Max(n...Number) Number {
    13  	if len(n) == 0 {
    14  		return 0
    15  	}
    16  	max := n[0]
    17  	for _, e := range n[1:] {
    18  		if max < e {
    19  			max = e
    20  		}
    21  	}
    22  	return max
    23  }
    24  
    25  // Min returns the smallest number in n
    26  func Min(n...Number) Number {
    27  	if len(n) == 0 {
    28  		return 0
    29  	}
    30  	min := n[0]
    31  	for _, e := range n[1:] {
    32  		if min > e {
    33  			min = e
    34  		}
    35  	}
    36  	return min
    37  }
    38  
    39  // Sum returns the sum of all numbers in n
    40  func Sum(n...Number) Number {
    41  	var s Number
    42  	for _, e := range n {
    43  		s += e
    44  	}
    45  	return s
    46  }