26 lines
352 B
Go
26 lines
352 B
Go
package gmath
|
|
|
|
import (
|
|
"math"
|
|
)
|
|
|
|
func Pow[N Number](x, y N) N {
|
|
return N(math.Pow(float64(x), float64(y)))
|
|
}
|
|
|
|
func Abs[N Number](v N) N {
|
|
return N(math.Abs(float64(v)))
|
|
}
|
|
|
|
func Mod[N Number](a, b N) N {
|
|
return N(math.Mod(float64(a), float64(b)))
|
|
}
|
|
|
|
func ModPositive[N Number](a, b N) N {
|
|
m := Mod(a, b)
|
|
if m >= 0 {
|
|
return m
|
|
}
|
|
return m + b
|
|
}
|