MCPcopy Create free account
hub / github.com/DLTcollab/sse2neon / validateFloatError

Function validateFloatError

tests/common.cpp:347–385  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

345}
346
347result_t validateFloatError(__m128 a,
348 float f0,
349 float f1,
350 float f2,
351 float f3,
352 float err)
353{
354 const float *t = reinterpret_cast<const float *>(&a);
355 float df0 = fabsf((t[0] - f0) / f0);
356 float df1 = fabsf((t[1] - f1) / f1);
357 float df2 = fabsf((t[2] - f2) / f2);
358 float df3 = fabsf((t[3] - f3) / f3);
359
360 if ((std::isnan(t[0]) && std::isnan(f0)) || (t[0] == 0 && f0 == 0) ||
361 (std::isinf(t[0]) && std::isinf(f0))) {
362 df0 = 0;
363 }
364
365 if ((std::isnan(t[1]) && std::isnan(f1)) || (t[1] == 0 && f1 == 0) ||
366 (std::isinf(t[1]) && std::isinf(f1))) {
367 df1 = 0;
368 }
369
370 if ((std::isnan(t[2]) && std::isnan(f2)) || (t[2] == 0 && f2 == 0) ||
371 (std::isinf(t[2]) && std::isinf(f2))) {
372 df2 = 0;
373 }
374
375 if ((std::isnan(t[3]) && std::isnan(f3)) || (t[3] == 0 && f3 == 0) ||
376 (std::isinf(t[3]) && std::isinf(f3))) {
377 df3 = 0;
378 }
379
380 ASSERT_RETURN(df0 < err);
381 ASSERT_RETURN(df1 < err);
382 ASSERT_RETURN(df2 < err);
383 ASSERT_RETURN(df3 < err);
384 return TEST_SUCCESS;
385}
386
387result_t validateDouble(__m128d a, double d0, double d1)
388{

Callers 10

test_mm_div_psFunction · 0.85
test_mm_div_ssFunction · 0.85
test_mm_rcp_psFunction · 0.85
test_mm_rcp_ssFunction · 0.85
test_mm_rsqrt_psFunction · 0.85
test_mm_rsqrt_ssFunction · 0.85
test_mm_sqrt_psFunction · 0.85
test_mm_sqrt_ssFunction · 0.85
test_mm_sqrt_pdFunction · 0.85
test_mm_sqrt_sdFunction · 0.85

Calls

no outgoing calls

Tested by 10

test_mm_div_psFunction · 0.68
test_mm_div_ssFunction · 0.68
test_mm_rcp_psFunction · 0.68
test_mm_rcp_ssFunction · 0.68
test_mm_rsqrt_psFunction · 0.68
test_mm_rsqrt_ssFunction · 0.68
test_mm_sqrt_psFunction · 0.68
test_mm_sqrt_ssFunction · 0.68
test_mm_sqrt_pdFunction · 0.68
test_mm_sqrt_sdFunction · 0.68