diff options
| author | Mehdi Amini <joker.eph@gmail.com> | 2025-08-14 15:36:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-14 15:36:46 +0200 |
| commit | df57d6a01e85ca78da2febab21b268d9fd6955a0 (patch) | |
| tree | 19b0aab453e6bc7e2b15d3220024dfdacd4fa57e /libc/utils/MPFRWrapper/MPFRUtils.cpp | |
| parent | df86ea61b7ed484ca797f96d7ad40fd9ada7ba30 (diff) | |
| parent | 7bda76367f19cfc19086f68d9dd5ac019a9ceccd (diff) | |
Merge branch 'main' into users/joker-eph-python-bindings-maintainersusers/joker-eph-python-bindings-maintainers
Diffstat (limited to 'libc/utils/MPFRWrapper/MPFRUtils.cpp')
| -rw-r--r-- | libc/utils/MPFRWrapper/MPFRUtils.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp index 57e818ca3d9c..3ab129a1a6fc 100644 --- a/libc/utils/MPFRWrapper/MPFRUtils.cpp +++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp @@ -486,6 +486,21 @@ explain_ternary_operation_one_output_error(Operation, float16, double, RoundingMode); #endif +template void explain_ternary_operation_one_output_error( + Operation, const TernaryInput<float> &, bfloat16, double, RoundingMode); +template void explain_ternary_operation_one_output_error( + Operation, const TernaryInput<double> &, bfloat16, double, RoundingMode); +template void +explain_ternary_operation_one_output_error(Operation, + const TernaryInput<long double> &, + bfloat16, double, RoundingMode); +#if defined(LIBC_TYPES_HAS_FLOAT128) && \ + defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE) +template void explain_ternary_operation_one_output_error( + Operation, const TernaryInput<float128> &, bfloat16, double, RoundingMode); +#endif // defined(LIBC_TYPES_HAS_FLOAT128) && + // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE) + template <typename InputType, typename OutputType> bool compare_unary_operation_single_output(Operation op, InputType input, OutputType libc_result, @@ -734,6 +749,27 @@ compare_ternary_operation_one_output(Operation, double, RoundingMode); #endif +template bool compare_ternary_operation_one_output(Operation, + const TernaryInput<float> &, + bfloat16, double, + RoundingMode); +template bool compare_ternary_operation_one_output(Operation, + const TernaryInput<double> &, + bfloat16, double, + RoundingMode); +template bool +compare_ternary_operation_one_output(Operation, + const TernaryInput<long double> &, + bfloat16, double, RoundingMode); + +#if defined(LIBC_TYPES_HAS_FLOAT128) && \ + defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE) +template bool +compare_ternary_operation_one_output(Operation, const TernaryInput<float128> &, + bfloat16, double, RoundingMode); +#endif // defined(LIBC_TYPES_HAS_FLOAT128) && + // defined(LIBC_TYPES_FLOAT128_IS_NOT_LONG_DOUBLE) + } // namespace internal template <typename T> bool round_to_long(T x, long &result) { |
