| 193 | } |
| 194 | |
| 195 | static inline rational |
| 196 | rational_add(rational x, rational y) { |
| 197 | /* |
| 198 | * Note that the numerator computation can never overflow int128_t, |
| 199 | * since each term is strictly under 2**128/4 (since d > 0). |
| 200 | */ |
| 201 | return make_rational_fast((npy_int64)x.n*d(y)+(npy_int64)d(x)*y.n, |
| 202 | (npy_int64)d(x)*d(y)); |
| 203 | } |
| 204 | |
| 205 | static inline rational |
| 206 | rational_subtract(rational x, rational y) { |
no test coverage detected