Skip to content

Commit 66da074

Browse files
committed
Try to fix min/max functions
1 parent 6f25601 commit 66da074

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

quaddtype/numpy_quaddtype/src/ops.hpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -515,32 +515,26 @@ static inline Sleef_quad
515515
quad_minimum(const Sleef_quad *in1, const Sleef_quad *in2)
516516
{
517517
return Sleef_iunordq1(*in1, *in2) ? (Sleef_iunordq1(*in1, *in1) ? *in1 : *in2)
518-
: Sleef_icmpleq1(*in1, *in2) ? *in1
519-
: *in2;
518+
: Sleef_fminq1(*in1, *in2);
520519
}
521520

522521
static inline Sleef_quad
523522
quad_maximum(const Sleef_quad *in1, const Sleef_quad *in2)
524523
{
525524
return Sleef_iunordq1(*in1, *in2) ? (Sleef_iunordq1(*in1, *in1) ? *in1 : *in2)
526-
: Sleef_icmpgeq1(*in1, *in2) ? *in1
527-
: *in2;
525+
: Sleef_fmaxq1(*in1, *in2);
528526
}
529527

530528
static inline Sleef_quad
531529
quad_fmin(const Sleef_quad *in1, const Sleef_quad *in2)
532530
{
533-
return Sleef_iunordq1(*in1, *in2) ? (Sleef_iunordq1(*in2, *in2) ? *in1 : *in2)
534-
: Sleef_icmpleq1(*in1, *in2) ? *in1
535-
: *in2;
531+
return Sleef_fminq1(*in1, *in2);
536532
}
537533

538534
static inline Sleef_quad
539535
quad_fmax(const Sleef_quad *in1, const Sleef_quad *in2)
540536
{
541-
return Sleef_iunordq1(*in1, *in2) ? (Sleef_iunordq1(*in2, *in2) ? *in1 : *in2)
542-
: Sleef_icmpgeq1(*in1, *in2) ? *in1
543-
: *in2;
537+
return Sleef_fmaxq1(*in1, *in2);
544538
}
545539

546540
static inline Sleef_quad

quaddtype/tests/test_quaddtype.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ def test_hyperbolic_functions(op, val):
525525

526526
# For finite non-zero results
527527
# Use relative tolerance for exponential functions due to their rapid growth
528-
rtol = 1e-14 if abs(float_result) < 1e100 else 1e-10
528+
rtol = 1e-13 if abs(float_result) < 1e100 else 1e-10
529529
np.testing.assert_allclose(float(quad_result), float_result, rtol=rtol, atol=1e-15,
530530
err_msg=f"Value mismatch for {op}({val})")
531531

0 commit comments

Comments
 (0)