package geom

import "math"

// Abs returns the absolute value.
func Abs(f float64) float64 {
	return math.Abs(f)
}

// Abs32 returns the absolute value.
func Abs32(f float32) float32 {
	return float32(Abs(float64(f)))
}

// IsNaN checks if the floating point number is not a number.
func IsNaN(f float64) bool {
	return f != f
}

// IsNaN32 checks if the floating point number is not a number.
func IsNaN32(f float32) bool {
	return f != f
}

// Max the maximum of the two values.
func Max(a, b float64) float64 {
	return math.Max(a, b)
}

// Max32 the maximum of the two values.
func Max32(a, b float32) float32 {
	return float32(math.Max(float64(a), float64(b)))
}

// Min the minimum of the two values.
func Min(a, b float64) float64 {
	return math.Min(a, b)
}

// Min32 the minimum of the two values.
func Min32(a, b float32) float32 {
	return float32(math.Min(float64(a), float64(b)))
}

// NaN returns not a floating point number.
func NaN() float64 {
	return math.NaN()
}

// NaN32 returns not a floating point number.
func NaN32() float32 {
	return float32(NaN())
}

// Round rounds to the nearest integer.
func Round(f float64) float64 {
	return math.Round(f)
}

// Round32 rounds to the nearest integer.
func Round32(f float32) float32 {
	return float32(math.Round(float64(f)))
}

// Sq returns the squared value of f.
func Sq(f float64) float64 {
	return f * f
}

// Sq32 returns the squared value of f.
func Sq32(f float32) float32 {
	return f * f
}

// Sqrt the square root of the value.
func Sqrt(f float64) float64 {
	return math.Sqrt(f)
}

// Sqrt32 the square root of the value.
func Sqrt32(f float32) float32 {
	return float32(Sqrt(float64(f)))
}