| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package math32
- // Floor returns the greatest integer value less than or equal to x.
- //
- // Special cases are:
- // Floor(±0) = ±0
- // Floor(±Inf) = ±Inf
- // Floor(NaN) = NaN
- func Floor(x float32) float32 {
- return floor(x)
- }
- func floor(x float32) float32 {
- if x == 0 || IsNaN(x) || IsInf(x, 0) {
- return x
- }
- if x < 0 {
- d, fract := Modf(-x)
- if fract != 0.0 {
- d = d + 1
- }
- return -d
- }
- d, _ := Modf(x)
- return d
- }
- // Ceil returns the least integer value greater than or equal to x.
- //
- // Special cases are:
- // Ceil(±0) = ±0
- // Ceil(±Inf) = ±Inf
- // Ceil(NaN) = NaN
- func Ceil(x float32) float32 {
- return ceil(x)
- }
- func ceil(x float32) float32 {
- return -Floor(-x)
- }
- // Trunc returns the integer value of x.
- //
- // Special cases are:
- // Trunc(±0) = ±0
- // Trunc(±Inf) = ±Inf
- // Trunc(NaN) = NaN
- func Trunc(x float32) float32 {
- return trunc(x)
- }
- func trunc(x float32) float32 {
- if x == 0 || IsNaN(x) || IsInf(x, 0) {
- return x
- }
- d, _ := Modf(x)
- return d
- }
|