mathutil

package
v2.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2023 License: MIT Imports: 5 Imported by: 27

Documentation

Overview

Package mathutil implements some functions for math calculation.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func AngleToRadian added in v2.1.18

func AngleToRadian(angle float64) float64

AngleToRadian converts angle value to radian value. Play: https://go.dev/play/p/CIvlICqrHql

Example
result1 := AngleToRadian(45)
result2 := AngleToRadian(90)
result3 := AngleToRadian(180)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

0.7853981633974483
1.5707963267948966
3.141592653589793

func Average added in v2.0.1

func Average[T constraints.Integer | constraints.Float](numbers ...T) T

Average return average value of numbers. Play: https://go.dev/play/p/Vv7LBwER-pz

Example
result1 := Average(1, 2)
result2 := RoundToFloat(Average(1.2, 1.4), 1)

fmt.Println(result1)
fmt.Println(result2)
Output:

1
1.3

func Exponent

func Exponent(x, n int64) int64

Exponent calculate x^n. Play: https://go.dev/play/p/uF3HGNPk8wr

Example
result1 := Exponent(10, 0)
result2 := Exponent(10, 1)
result3 := Exponent(10, 2)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

1
10
100

func Factorial

func Factorial(x uint) uint

Factorial calculate x!. Play: https://go.dev/play/p/tt6LdOK67Nx

Example
result1 := Factorial(1)
result2 := Factorial(2)
result3 := Factorial(3)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

1
2
6

func Fibonacci

func Fibonacci(first, second, n int) int

Fibonacci calculate fibonacci number before n. Play: https://go.dev/play/p/IscseUNMuUc

Example
result1 := Fibonacci(1, 1, 1)
result2 := Fibonacci(1, 1, 2)
result3 := Fibonacci(1, 1, 5)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

1
1
5

func GCD added in v2.2.0

func GCD[T constraints.Integer](integers ...T) T

GCD return greatest common divisor (GCD) of integers. Play: todo

Example
result1 := GCD(1, 1)
result2 := GCD(1, -1)
result3 := GCD(-1, 1)
result4 := GCD(-1, -1)
result5 := GCD(3, 6, 9)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
fmt.Println(result5)
Output:

1
1
-1
-1
3

func IsPrime added in v2.1.18

func IsPrime(n int) bool

IsPrimes checks if number is prime number. Play: https://go.dev/play/p/Rdd8UTHZJ7u

Example
result1 := IsPrime(-1)
result2 := IsPrime(0)
result3 := IsPrime(1)
result4 := IsPrime(2)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
Output:

false
false
false
true

func LCM added in v2.2.0

func LCM[T constraints.Integer](integers ...T) T

LCM return Least Common Multiple (LCM) of integers. Play: todo

Example
result1 := LCM(1, 1)
result2 := LCM(1, 2)
result3 := LCM(3, 6, 9)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

1
2
18

func Max added in v2.0.1

func Max[T constraints.Integer | constraints.Float](numbers ...T) T

Max return max value of numbers. Play: https://go.dev/play/p/cN8DHI0rTkH

Example
result1 := Max(1, 2, 3)
result2 := Max(1.2, 1.4, 1.1, 1.4)

fmt.Println(result1)
fmt.Println(result2)
Output:

3
1.4

func MaxBy added in v2.0.7

func MaxBy[T any](slice []T, comparator func(T, T) bool) T

MaxBy return the maximum value of a slice using the given comparator function. Play: https://go.dev/play/p/pbe2MT-7DV2

Example
result1 := MaxBy([]string{"a", "ab", "abc"}, func(v1, v2 string) bool {
	return len(v1) > len(v2)
})

result2 := MaxBy([]string{"abd", "abc", "ab"}, func(v1, v2 string) bool {
	return len(v1) > len(v2)
})

result3 := MaxBy([]string{}, func(v1, v2 string) bool {
	return len(v1) > len(v2)
})

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

abc
abd

func Min added in v2.0.1

func Min[T constraints.Integer | constraints.Float](numbers ...T) T

Min return min value of numbers. Play: https://go.dev/play/p/21BER_mlGUj

Example
result1 := Min(1, 2, 3)
result2 := Min(1.2, 1.4, 1.1, 1.4)

fmt.Println(result1)
fmt.Println(result2)
Output:

1
1.1

func MinBy added in v2.0.7

func MinBy[T any](slice []T, comparator func(T, T) bool) T

MinBy return the minimum value of a slice using the given comparator function. Play: https://go.dev/play/p/XuJDKrDdglW

Example
result1 := MinBy([]string{"a", "ab", "abc"}, func(v1, v2 string) bool {
	return len(v1) < len(v2)
})

result2 := MinBy([]string{"ab", "ac", "abc"}, func(v1, v2 string) bool {
	return len(v1) < len(v2)
})

result3 := MinBy([]string{}, func(v1, v2 string) bool {
	return len(v1) < len(v2)
})

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

a
ab

func Percent

func Percent(val, total float64, n int) float64

Percent calculate the percentage of value to total. Play: https://go.dev/play/p/QQM9B13coSP

Example
result1 := Percent(1, 2, 2)
result2 := Percent(0.1, 0.3, 2)
result3 := Percent(-30305, 408420, 2)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

50
33.33
-7.42

func PointDistance added in v2.1.18

func PointDistance(x1, y1, x2, y2 float64) float64

PointDistance get two points distance. Play: https://go.dev/play/p/RrG4JIaziM8

Example
result1 := PointDistance(1, 1, 4, 5)

fmt.Println(result1)
Output:

5

func RadianToAngle added in v2.1.18

func RadianToAngle(radian float64) float64

RadianToAngle converts radian value to angle value. Play: https://go.dev/play/p/dQtmOTUOMgi

Example
result1 := RadianToAngle(math.Pi)
result2 := RadianToAngle(math.Pi / 2)
result3 := RadianToAngle(math.Pi / 4)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

180
90
45

func Range added in v2.1.17

func Range[T constraints.Integer | constraints.Float](start T, count int) []T

Range creates a slice of numbers from start with specified count, element step is 1. Play: https://go.dev/play/p/9ke2opxa8ZP

Example
result1 := Range(1, 4)
result2 := Range(1, -4)
result3 := Range(-4, 4)
result4 := Range(1.0, 4)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
Output:

[1 2 3 4]
[1 2 3 4]
[-4 -3 -2 -1]
[1 2 3 4]

func RangeWithStep added in v2.1.17

func RangeWithStep[T constraints.Integer | constraints.Float](start, end, step T) []T

RangeWithStep creates a slice of numbers from start to end with specified step. Play: https://go.dev/play/p/akLWz0EqOSM

Example
result1 := RangeWithStep(1, 4, 1)
result2 := RangeWithStep(1, -1, 0)
result3 := RangeWithStep(-4, 1, 2)
result4 := RangeWithStep(1.0, 4.0, 1.1)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
Output:

[1 2 3]
[]
[-4 -2 0]
[1 2.1 3.2]

func RoundToFloat

func RoundToFloat(x float64, n int) float64

RoundToFloat round up to n decimal places. Play: https://go.dev/play/p/ghyb528JRJL

Example
result1 := RoundToFloat(0.124, 2)
result2 := RoundToFloat(0.125, 2)
result3 := RoundToFloat(0.125, 3)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

0.12
0.13
0.125

func RoundToString

func RoundToString(x float64, n int) string

RoundToString round up to n decimal places. Play: https://go.dev/play/p/kZwpBRAcllO

Example
result1 := RoundToString(0.124, 2)
result2 := RoundToString(0.125, 2)
result3 := RoundToString(0.125, 3)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

0.12
0.13
0.125

func TruncRound

func TruncRound(x float64, n int) float64

TruncRound round off n decimal places. Play: https://go.dev/play/p/aumarSHIGzP

Example
result1 := TruncRound(0.124, 2)
result2 := TruncRound(0.125, 2)
result3 := TruncRound(0.125, 3)

fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
Output:

0.12
0.12
0.125

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL