Given that f64 can hold integers that are outside the range [-2^127, 2^127-1]:

```
fn saturated(f: f64) -> i128 {
f as i128
}
```

Is it guaranteed that saturated() will always,

- return -2^127, if
`f`

is <= -2^127. - return 2^127-1, if
`f`

is >= 2^127-1. - return -2^127, if
`f`

is f64::NEG_INFINITY. - return 2^127-1, if
`f`

is f64::INFINITY. - return 0, if
`f`

is f64::NAN.