Serenity Operating System
at master 33 lines 874 B view raw
1/* 2 * Copyright (c) 2023, Jelle Raaijmakers <jelle@gmta.nl> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <LibTest/TestCase.h> 8 9#include <AK/SIMD.h> 10#include <AK/SIMDMath.h> 11 12TEST_CASE(exp) 13{ 14 AK::SIMD::f32x4 v = { .2f, .4f, .6f, .8f }; 15 auto result = AK::SIMD::exp(v); 16 17 EXPECT_APPROXIMATE(result[0], 1.22140276f); 18 EXPECT_APPROXIMATE(result[1], 1.49182470f); 19 EXPECT_APPROXIMATE(result[2], 1.82211880f); 20 EXPECT_APPROXIMATE(result[3], 2.22554093f); 21} 22 23TEST_CASE(exp_approximate) 24{ 25 AK::SIMD::f32x4 v = { .2f, .4f, .6f, .8f }; 26 auto result = AK::SIMD::exp_approximate(v); 27 constexpr float accuracy = .001f; 28 29 EXPECT(fabsf(result[0] - 1.22140276f) <= accuracy); 30 EXPECT(fabsf(result[1] - 1.49182470f) <= accuracy); 31 EXPECT(fabsf(result[2] - 1.82211880f) <= accuracy); 32 EXPECT(fabsf(result[3] - 2.22554093f) <= accuracy); 33}