1861dc759SSiva Chandra Reddy //===-- Unittests for sin -------------------------------------------------===// 2861dc759SSiva Chandra Reddy // 3861dc759SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4861dc759SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 5861dc759SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6861dc759SSiva Chandra Reddy // 7861dc759SSiva Chandra Reddy //===----------------------------------------------------------------------===// 8861dc759SSiva Chandra Reddy 9c120edc7SMichael Jones #include "src/__support/FPUtil/FPBits.h" 10861dc759SSiva Chandra Reddy #include "src/math/sin.h" 11861dc759SSiva Chandra Reddy #include "utils/MPFRWrapper/MPFRUtils.h" 126c3f53c7SSiva Chandra Reddy #include "utils/UnitTest/FPMatcher.h" 13861dc759SSiva Chandra Reddy #include "utils/UnitTest/Test.h" 14861dc759SSiva Chandra Reddy 15861dc759SSiva Chandra Reddy #include <math.h> 16861dc759SSiva Chandra Reddy 17861dc759SSiva Chandra Reddy namespace mpfr = __llvm_libc::testing::mpfr; 18861dc759SSiva Chandra Reddy 19861dc759SSiva Chandra Reddy DECLARE_SPECIAL_CONSTANTS(double) 20861dc759SSiva Chandra Reddy TEST(LlvmLibcSinTest,Range)21861dc759SSiva Chandra ReddyTEST(LlvmLibcSinTest, Range) { 22861dc759SSiva Chandra Reddy static constexpr double _2pi = 6.283185307179586; 23*25226f3eSMichael Jones constexpr UIntType COUNT = 10000000; 24*25226f3eSMichael Jones constexpr UIntType STEP = UIntType(-1) / COUNT; 25*25226f3eSMichael Jones for (UIntType i = 0, v = 0; i <= COUNT; ++i, v += STEP) { 26861dc759SSiva Chandra Reddy double x = double(FPBits(v)); 27861dc759SSiva Chandra Reddy // TODO: Expand the range of testing after range reduction is implemented. 28861dc759SSiva Chandra Reddy if (isnan(x) || isinf(x) || x > _2pi || x < -_2pi) 29861dc759SSiva Chandra Reddy continue; 30861dc759SSiva Chandra Reddy 31861dc759SSiva Chandra Reddy ASSERT_MPFR_MATCH(mpfr::Operation::Sin, x, __llvm_libc::sin(x), 1.0); 32861dc759SSiva Chandra Reddy } 33861dc759SSiva Chandra Reddy } 34