File tree Expand file tree Collapse file tree 1 file changed +4
-14
lines changed Expand file tree Collapse file tree 1 file changed +4
-14
lines changed Original file line number Diff line number Diff line change @@ -255,19 +255,9 @@ class MPFRNumber {
255255 mpfr_cospi (result.value , value, mpfr_rounding);
256256 return result;
257257#else
258- MPFRNumber value_frac (*this );
259- mpfr_frac (value_frac.value , value, MPFR_RNDN);
260-
261- if (mpfr_cmp_si (value_frac.value , 0.0 ) == 0 ) {
262- mpz_t integer_part;
263- mpz_init (integer_part);
264- mpfr_get_z (integer_part, value, MPFR_RNDN);
265-
266- if (mpz_tstbit (integer_part, 0 )) {
267- mpfr_set_si (result.value , -1.0 , MPFR_RNDN); // odd
268- } else {
269- mpfr_set_si (result.value , 1.0 , MPFR_RNDN); // even
270- }
258+ if (mpfr_integer_p (value)) {
259+ auto d = mpfr_get_si (value, mpfr_rounding);
260+ mpfr_set_si (result.value , (d & 1 ) ? -1 : 1 , mpfr_rounding);
271261 return result;
272262 }
273263
@@ -277,7 +267,7 @@ class MPFRNumber {
277267 mpfr_cos (result.value , value_pi.value , mpfr_rounding);
278268
279269 return result;
280- #endif
270+ // #endif
281271 }
282272
283273 MPFRNumber erf () const {
You can’t perform that action at this time.
0 commit comments