mathutil

package
v0.0.0-...-4eba188 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2023 License: MIT Imports: 5 Imported by: 0

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

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

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 IsPrime

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 Max

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

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

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

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)

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

0.5
0.33

func PointDistance

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

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

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

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