diff options
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) { |
