1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// Implementation selector for sinf.
11///
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_SINF_H
15#define LLVM_LIBC_SRC___SUPPORT_MATH_SINF_H
16
17#include "src/__support/macros/config.h"
18#include "src/__support/macros/optimization.h"
19#include "src/__support/macros/properties/cpu_features.h"
20
21#if defined(LIBC_MATH_HAS_SKIP_ACCURATE_PASS) && \
22 (defined(LIBC_MATH_HAS_SMALL_TABLES) || \
23 defined(LIBC_MATH_HAS_INTERMEDIATE_COMP_IN_FLOAT)) && \
24 defined(LIBC_TARGET_CPU_HAS_FMA_FLOAT)
25#include "sinf_float_eval.h"
26#define LIBC_MATH_SINF_IMPL float_eval
27#else
28#include "sinf_double_eval.h"
29#define LIBC_MATH_SINF_IMPL double_eval
30#endif
31
32namespace LIBC_NAMESPACE_DECL {
33namespace math {
34
35using LIBC_MATH_SINF_IMPL::sinf;
36
37} // namespace math
38} // namespace LIBC_NAMESPACE_DECL
39
40#undef LIBC_MATH_SINF_IMPL
41
42#endif // LLVM_LIBC_SRC___SUPPORT_MATH_SINF_H
43