1111
1212#include " src/__support/CPP/array.h"
1313#include " src/__support/CPP/type_traits.h"
14+ #include " src/__support/CPP/type_traits/is_complex.h"
1415#include " src/__support/FPUtil/FEnvImpl.h"
1516#include " src/__support/FPUtil/FPBits.h"
1617#include " src/__support/FPUtil/fpbits_str.h"
@@ -128,6 +129,14 @@ template <typename T, TestCond Condition> class CFPMatcher : public Matcher<T> {
128129 return matchComplex<double >();
129130 else if (cpp::is_complex_type_same<T, _Complex long double >())
130131 return matchComplex<long double >();
132+ #ifdef LIBC_TYPES_HAS_CFLOAT16
133+ else if (cpp::is_complex_type_same<T, cfloat16>)
134+ return matchComplex<float16>();
135+ #endif
136+ #ifdef LIBC_TYPES_HAS_CFLOAT128
137+ else if (cpp::is_complex_type_same<T, cfloat128>)
138+ return matchComplex<float128>();
139+ #endif
131140 }
132141
133142 void explainError () override {
@@ -137,6 +146,14 @@ template <typename T, TestCond Condition> class CFPMatcher : public Matcher<T> {
137146 return explainErrorComplex<double >();
138147 else if (cpp::is_complex_type_same<T, _Complex long double >())
139148 return explainErrorComplex<long double >();
149+ #ifdef LIBC_TYPES_HAS_CFLOAT16
150+ else if (cpp::is_complex_type_same<T, cfloat16>)
151+ return explainErrorComplex<float16>();
152+ #endif
153+ #ifdef LIBC_TYPES_HAS_CFLOAT128
154+ else if (cpp::is_complex_type_same<T, cfloat128>)
155+ return explainErrorComplex<float128>();
156+ #endif
140157 }
141158};
142159
0 commit comments