added Mod and ModPositive
This commit is contained in:
parent
de82000934
commit
a18f1c51cb
16
math.go
16
math.go
@ -1,6 +1,8 @@
|
|||||||
package gmath
|
package gmath
|
||||||
|
|
||||||
import "math"
|
import (
|
||||||
|
"math"
|
||||||
|
)
|
||||||
|
|
||||||
func Pow[N Number](x, y N) N {
|
func Pow[N Number](x, y N) N {
|
||||||
return N(math.Pow(float64(x), float64(y)))
|
return N(math.Pow(float64(x), float64(y)))
|
||||||
@ -9,3 +11,15 @@ func Pow[N Number](x, y N) N {
|
|||||||
func Abs[N Number](v N) N {
|
func Abs[N Number](v N) N {
|
||||||
return N(math.Abs(float64(v)))
|
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
|
||||||
|
}
|
||||||
|
10
math_test.go
Normal file
10
math_test.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package gmath
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMod(t *testing.T) {
|
||||||
|
fmt.Println(ModPositive(-1, 10))
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user