Created
March 4, 2016 02:55
-
-
Save xigang/32cffb8c8060a339d179 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Abs returns absolute value of number | |
func Abs(value float64) float64 { | |
return value * Sign(value) | |
} | |
// Sign returns signum of number: 1 in case of value > 0, -1 in case of value < 0, 0 otherwise | |
func Sign(value float64) float64 { | |
if value > 0 { | |
return 1 | |
} else if value < 0 { | |
return -1 | |
} else { | |
return 0 | |
} | |
} | |
// IsNegative returns true if value < 0 | |
func IsNegative(value float64) bool { | |
return value < 0 | |
} | |
// IsPositive returns true if value > 0 | |
func IsPositive(value float64) bool { | |
return value > 0 | |
} | |
// IsNonNegative returns true if value >= 0 | |
func IsNonNegative(value float64) bool { | |
return value >= 0 | |
} | |
// IsNonPositive returns true if value <= 0 | |
func IsNonPositive(value float64) bool { | |
return value <= 0 | |
} | |
// InRange returns true if value lies between left and right border | |
func InRange(value, left, right float64) bool { | |
if left > right { | |
left, right = right, left | |
} | |
return value >= left && value <= right | |
} | |
// IsWhole returns true if value is whole number | |
func IsWhole(value float64) bool { | |
return Abs(math.Remainder(value, 1)) == 0 | |
} | |
// IsNatural returns true if value is natural number (positive and whole) | |
func IsNatural(value float64) bool { | |
return IsWhole(value) && IsPositive(value) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment