aboutsummaryrefslogtreecommitdiff
path: root/libc/shared
diff options
context:
space:
mode:
Diffstat (limited to 'libc/shared')
-rw-r--r--libc/shared/math.h34
-rw-r--r--libc/shared/math/dfmaf128.h29
-rw-r--r--libc/shared/math/dfmal.h24
-rw-r--r--libc/shared/math/f16fma.h31
-rw-r--r--libc/shared/math/f16fmal.h31
-rw-r--r--libc/shared/math/f16sqrtl.h27
-rw-r--r--libc/shared/math/fsqrt.h24
-rw-r--r--libc/shared/math/fsqrtf128.h28
-rw-r--r--libc/shared/math/fsqrtl.h24
-rw-r--r--libc/shared/math/hypotf.h22
-rw-r--r--libc/shared/math/ilogb.h23
-rw-r--r--libc/shared/math/ilogbf.h22
-rw-r--r--libc/shared/math/ilogbf128.h29
-rw-r--r--libc/shared/math/ilogbl.h23
-rw-r--r--libc/shared/math/llogb.h23
-rw-r--r--libc/shared/math/llogbf.h23
-rw-r--r--libc/shared/math/llogbf128.h29
-rw-r--r--libc/shared/math/llogbf16.h29
-rw-r--r--libc/shared/math/log10.h22
-rw-r--r--libc/shared/math/log1p.h22
-rw-r--r--libc/shared/math/log2.h22
-rw-r--r--libc/shared/math/logbf.h22
-rw-r--r--libc/shared/math/logbf128.h30
-rw-r--r--libc/shared/math/logbf16.h29
-rw-r--r--libc/shared/math/logf.h23
-rw-r--r--libc/shared/math/logf16.h28
-rw-r--r--libc/shared/math/sinf.h23
-rw-r--r--libc/shared/math/sinf16.h29
-rw-r--r--libc/shared/math/sinhf.h23
-rw-r--r--libc/shared/math/sinhf16.h29
-rw-r--r--libc/shared/math/sinpif.h23
-rw-r--r--libc/shared/math/sqrt.h23
-rw-r--r--libc/shared/math/sqrtf16.h29
-rw-r--r--libc/shared/math/tan.h23
-rw-r--r--libc/shared/math/tanf.h23
35 files changed, 898 insertions, 0 deletions
diff --git a/libc/shared/math.h b/libc/shared/math.h
index 287f3ae..6b1f94f 100644
--- a/libc/shared/math.h
+++ b/libc/shared/math.h
@@ -39,6 +39,8 @@
#include "math/coshf16.h"
#include "math/cospif.h"
#include "math/cospif16.h"
+#include "math/dfmaf128.h"
+#include "math/dfmal.h"
#include "math/dsqrtl.h"
#include "math/erff.h"
#include "math/exp.h"
@@ -57,16 +59,48 @@
#include "math/expm1.h"
#include "math/expm1f.h"
#include "math/expm1f16.h"
+#include "math/f16fma.h"
+#include "math/f16fmal.h"
+#include "math/f16sqrtl.h"
#include "math/frexpf.h"
#include "math/frexpf128.h"
#include "math/frexpf16.h"
+#include "math/fsqrt.h"
+#include "math/fsqrtf128.h"
+#include "math/fsqrtl.h"
+#include "math/hypotf.h"
+#include "math/ilogb.h"
+#include "math/ilogbf.h"
+#include "math/ilogbf128.h"
#include "math/ilogbf16.h"
+#include "math/ilogbl.h"
#include "math/ldexpf.h"
#include "math/ldexpf128.h"
#include "math/ldexpf16.h"
+#include "math/llogb.h"
+#include "math/llogbf.h"
+#include "math/llogbf128.h"
+#include "math/llogbf16.h"
#include "math/log.h"
+#include "math/log10.h"
+#include "math/log1p.h"
+#include "math/log2.h"
+#include "math/logbf.h"
+#include "math/logbf128.h"
+#include "math/logbf16.h"
+#include "math/logf.h"
+#include "math/logf16.h"
#include "math/rsqrtf.h"
#include "math/rsqrtf16.h"
#include "math/sin.h"
+#include "math/sinf.h"
+#include "math/sinf16.h"
+#include "math/sinhf.h"
+#include "math/sinhf16.h"
+#include "math/sinpif.h"
+#include "math/sqrt.h"
+#include "math/sqrtf16.h"
+#include "math/tan.h"
+#include "math/tanf.h"
#endif // LLVM_LIBC_SHARED_MATH_H
diff --git a/libc/shared/math/dfmaf128.h b/libc/shared/math/dfmaf128.h
new file mode 100644
index 0000000..540de73
--- /dev/null
+++ b/libc/shared/math/dfmaf128.h
@@ -0,0 +1,29 @@
+//===-- Shared dfmaf128 function --------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_DFMAF128_H
+#define LLVM_LIBC_SHARED_MATH_DFMAF128_H
+
+#include "include/llvm-libc-types/float128.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT128
+
+#include "shared/libc_common.h"
+#include "src/__support/math/dfmaf128.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::dfmaf128;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT128
+
+#endif // LLVM_LIBC_SHARED_MATH_DFMAF128_H
diff --git a/libc/shared/math/dfmal.h b/libc/shared/math/dfmal.h
new file mode 100644
index 0000000..05d83ca
--- /dev/null
+++ b/libc/shared/math/dfmal.h
@@ -0,0 +1,24 @@
+//===-- Shared dfmal function -----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_DFMAL_H
+#define LLVM_LIBC_SHARED_MATH_DFMAL_H
+
+#include "shared/libc_common.h"
+
+#include "src/__support/math/dfmal.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::dfmal;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_DFMAL_H
diff --git a/libc/shared/math/f16fma.h b/libc/shared/math/f16fma.h
new file mode 100644
index 0000000..e473bf9
--- /dev/null
+++ b/libc/shared/math/f16fma.h
@@ -0,0 +1,31 @@
+//===-- Shared f16fma function ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_F16FMA_H
+#define LLVM_LIBC_SHARED_MATH_F16FMA_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/f16fma.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+
+using math::f16fma;
+
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_F16FMA_H
diff --git a/libc/shared/math/f16fmal.h b/libc/shared/math/f16fmal.h
new file mode 100644
index 0000000..a50988d
--- /dev/null
+++ b/libc/shared/math/f16fmal.h
@@ -0,0 +1,31 @@
+//===-- Shared f16fmal function ---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_F16FMAL_H
+#define LLVM_LIBC_SHARED_MATH_F16FMAL_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/f16fmal.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+
+using math::f16fmal;
+
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_F16FMAL_H
diff --git a/libc/shared/math/f16sqrtl.h b/libc/shared/math/f16sqrtl.h
new file mode 100644
index 0000000..cb187fa
--- /dev/null
+++ b/libc/shared/math/f16sqrtl.h
@@ -0,0 +1,27 @@
+//===-- Shared f16sqrt function ---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_F16SQRTL_H
+#define LLVM_LIBC_SHARED_MATH_F16SQRTL_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/f16sqrtl.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::f16sqrtl;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+#endif // LLVM_LIBC_SHARED_MATH_F16SQRTL_H
diff --git a/libc/shared/math/fsqrt.h b/libc/shared/math/fsqrt.h
new file mode 100644
index 0000000..c8d6f26
--- /dev/null
+++ b/libc/shared/math/fsqrt.h
@@ -0,0 +1,24 @@
+//===-- Shared header for fsqrt ---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_FSQRT_H
+#define LLVM_LIBC_SHARED_MATH_FSQRT_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/fsqrt.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+
+using math::fsqrt;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_FSQRT_H
diff --git a/libc/shared/math/fsqrtf128.h b/libc/shared/math/fsqrtf128.h
new file mode 100644
index 0000000..22f3972
--- /dev/null
+++ b/libc/shared/math/fsqrtf128.h
@@ -0,0 +1,28 @@
+//===-- Shared fsqrtf128 function -------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_FSQRTF128_H
+#define LLVM_LIBC_SHARED_MATH_FSQRTF128_H
+
+#include "include/llvm-libc-types/float128.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT128
+
+#include "src/__support/math/fsqrtf128.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::fsqrtf128;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT128
+ //
+#endif // LLVM_LIBC_SHARED_MATH_FSQRTF128_H
diff --git a/libc/shared/math/fsqrtl.h b/libc/shared/math/fsqrtl.h
new file mode 100644
index 0000000..22044d7
--- /dev/null
+++ b/libc/shared/math/fsqrtl.h
@@ -0,0 +1,24 @@
+//===-- Shared header for fsqrtl --------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_FSQRTL_H
+#define LLVM_LIBC_SHARED_MATH_FSQRTL_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/fsqrtl.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+
+using math::fsqrtl;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_FSQRTL_H
diff --git a/libc/shared/math/hypotf.h b/libc/shared/math/hypotf.h
new file mode 100644
index 0000000..6feca6c
--- /dev/null
+++ b/libc/shared/math/hypotf.h
@@ -0,0 +1,22 @@
+//===-- Shared hypotf function ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_HYPOTF_H
+#define LLVM_LIBC_SHARED_MATH_HYPOTF_H
+
+#include "src/__support/math/hypotf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::hypotf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_HYPOTF_H
diff --git a/libc/shared/math/ilogb.h b/libc/shared/math/ilogb.h
new file mode 100644
index 0000000..54944c2
--- /dev/null
+++ b/libc/shared/math/ilogb.h
@@ -0,0 +1,23 @@
+//===-- Shared ilogb function -----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_ILOGB_H
+#define LLVM_LIBC_SHARED_MATH_ILOGB_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/ilogb.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::ilogb;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_ILOGB_H
diff --git a/libc/shared/math/ilogbf.h b/libc/shared/math/ilogbf.h
new file mode 100644
index 0000000..c50972a
--- /dev/null
+++ b/libc/shared/math/ilogbf.h
@@ -0,0 +1,22 @@
+//===-- Shared ilogbf function --------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===--------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_ILOGBF_H
+#define LLVM_LIBC_SHARED_MATH_ILOGBF_H
+
+#include "src/__support/math/ilogbf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::ilogbf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_ILOGBF_H
diff --git a/libc/shared/math/ilogbf128.h b/libc/shared/math/ilogbf128.h
new file mode 100644
index 0000000..411449b
--- /dev/null
+++ b/libc/shared/math/ilogbf128.h
@@ -0,0 +1,29 @@
+//===-- Shared ilogbf128 function -------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_ILOGBF128_H
+#define LLVM_LIBC_SHARED_MATH_ILOGBF128_H
+
+#include "include/llvm-libc-types/float128.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT128
+
+#include "shared/libc_common.h"
+#include "src/__support/math/ilogbf128.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::ilogbf128;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT128
+
+#endif // LLVM_LIBC_SHARED_MATH_ILOGBF128_H
diff --git a/libc/shared/math/ilogbl.h b/libc/shared/math/ilogbl.h
new file mode 100644
index 0000000..c264f56
--- /dev/null
+++ b/libc/shared/math/ilogbl.h
@@ -0,0 +1,23 @@
+//===-- Shared ilogbl function ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_ILOGBL_H
+#define LLVM_LIBC_SHARED_MATH_ILOGBL_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/ilogbl.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::ilogbl;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_ILOGBL_H
diff --git a/libc/shared/math/llogb.h b/libc/shared/math/llogb.h
new file mode 100644
index 0000000..90987e2
--- /dev/null
+++ b/libc/shared/math/llogb.h
@@ -0,0 +1,23 @@
+//===-- Shared llogb function -----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LLOGB_H
+#define LLVM_LIBC_SHARED_MATH_LLOGB_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/llogb.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::llogb;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LLOGB_H
diff --git a/libc/shared/math/llogbf.h b/libc/shared/math/llogbf.h
new file mode 100644
index 0000000..1b66065
--- /dev/null
+++ b/libc/shared/math/llogbf.h
@@ -0,0 +1,23 @@
+//===-- Shared llogbf function ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LLOGBF_H
+#define LLVM_LIBC_SHARED_MATH_LLOGBF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/llogbf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::llogbf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LLOGBF_H
diff --git a/libc/shared/math/llogbf128.h b/libc/shared/math/llogbf128.h
new file mode 100644
index 0000000..46529c8
--- /dev/null
+++ b/libc/shared/math/llogbf128.h
@@ -0,0 +1,29 @@
+//===-- Shared llogbf128 function -------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LLOGBF128_H
+#define LLVM_LIBC_SHARED_MATH_LLOGBF128_H
+
+#include "include/llvm-libc-types/float128.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT128
+
+#include "shared/libc_common.h"
+#include "src/__support/math/llogbf128.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::llogbf128;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT128
+
+#endif // LLVM_LIBC_SHARED_MATH_LLOGBF128_H
diff --git a/libc/shared/math/llogbf16.h b/libc/shared/math/llogbf16.h
new file mode 100644
index 0000000..5d5e2b4
--- /dev/null
+++ b/libc/shared/math/llogbf16.h
@@ -0,0 +1,29 @@
+//===-- Shared llogbf16 function --------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LLOGBF16_H
+#define LLVM_LIBC_SHARED_MATH_LLOGBF16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "shared/libc_common.h"
+#include "src/__support/math/llogbf16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::llogbf16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_LLOGBF16_H
diff --git a/libc/shared/math/log10.h b/libc/shared/math/log10.h
new file mode 100644
index 0000000..6b3c71f
--- /dev/null
+++ b/libc/shared/math/log10.h
@@ -0,0 +1,22 @@
+//===-- Shared log10 function -----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOG10_H
+#define LLVM_LIBC_SHARED_MATH_LOG10_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log10.h"
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+using math::log10;
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG10_H
diff --git a/libc/shared/math/log1p.h b/libc/shared/math/log1p.h
new file mode 100644
index 0000000..7d24718
--- /dev/null
+++ b/libc/shared/math/log1p.h
@@ -0,0 +1,22 @@
+//===-- Shared log1p function -----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOG1P_H
+#define LLVM_LIBC_SHARED_MATH_LOG1P_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log1p.h"
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+using math::log1p;
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG1P_H
diff --git a/libc/shared/math/log2.h b/libc/shared/math/log2.h
new file mode 100644
index 0000000..8609f4a
--- /dev/null
+++ b/libc/shared/math/log2.h
@@ -0,0 +1,22 @@
+//===-- Shared log2 function ------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOG2_H
+#define LLVM_LIBC_SHARED_MATH_LOG2_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log2.h"
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+using math::log2;
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG2_H
diff --git a/libc/shared/math/logbf.h b/libc/shared/math/logbf.h
new file mode 100644
index 0000000..32665a0
--- /dev/null
+++ b/libc/shared/math/logbf.h
@@ -0,0 +1,22 @@
+//===-- Shared logbf function -----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOGBF_H
+#define LLVM_LIBC_SHARED_MATH_LOGBF_H
+
+#include "src/__support/math/logbf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::logbf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOGBF_H
diff --git a/libc/shared/math/logbf128.h b/libc/shared/math/logbf128.h
new file mode 100644
index 0000000..c737254
--- /dev/null
+++ b/libc/shared/math/logbf128.h
@@ -0,0 +1,30 @@
+//===-- Shared logbf128 function---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOGBF128_H
+#define LLVM_LIBC_SHARED_MATH_LOGBF128_H
+
+#include "include/llvm-libc-types/float128.h"
+
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT128
+
+#include "src/__support/math/logbf128.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::logbf128;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT128
+
+#endif // LLVM_LIBC_SHARED_MATH_LOGBF128_H
diff --git a/libc/shared/math/logbf16.h b/libc/shared/math/logbf16.h
new file mode 100644
index 0000000..bf1331e
--- /dev/null
+++ b/libc/shared/math/logbf16.h
@@ -0,0 +1,29 @@
+//===-- Shared logbf16 function ---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOGBF16_H
+#define LLVM_LIBC_SHARED_MATH_LOGBF16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/logbf16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::logbf16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_LOGBF16_H
diff --git a/libc/shared/math/logf.h b/libc/shared/math/logf.h
new file mode 100644
index 0000000..6f10d63
--- /dev/null
+++ b/libc/shared/math/logf.h
@@ -0,0 +1,23 @@
+//===-- Shared logf function ------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOGF_H
+#define LLVM_LIBC_SHARED_MATH_LOGF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/logf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::logf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOGF_H
diff --git a/libc/shared/math/logf16.h b/libc/shared/math/logf16.h
new file mode 100644
index 0000000..64cfda4
--- /dev/null
+++ b/libc/shared/math/logf16.h
@@ -0,0 +1,28 @@
+//===-- Shared logf16 function ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_LOGF16_H
+#define LLVM_LIBC_SHARED_MATH_LOGF16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+#include "src/__support/math/logf16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::logf16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_LOGF16_H
diff --git a/libc/shared/math/sinf.h b/libc/shared/math/sinf.h
new file mode 100644
index 0000000..5157b1e
--- /dev/null
+++ b/libc/shared/math/sinf.h
@@ -0,0 +1,23 @@
+//===-- Shared sinf function ------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_SINF_H
+#define LLVM_LIBC_SHARED_MATH_SINF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sinf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sinf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_SINF_H
diff --git a/libc/shared/math/sinf16.h b/libc/shared/math/sinf16.h
new file mode 100644
index 0000000..0b4478e
--- /dev/null
+++ b/libc/shared/math/sinf16.h
@@ -0,0 +1,29 @@
+//===-- Shared sinf16 function ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_SINF16_H
+#define LLVM_LIBC_SHARED_MATH_SINF16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sinf16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sinf16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_SINF16_H
diff --git a/libc/shared/math/sinhf.h b/libc/shared/math/sinhf.h
new file mode 100644
index 0000000..fac98fc
--- /dev/null
+++ b/libc/shared/math/sinhf.h
@@ -0,0 +1,23 @@
+//===-- Shared sinhf function -----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_SINHF_H
+#define LLVM_LIBC_SHARED_MATH_SINHF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sinhf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sinhf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_SINHF_H
diff --git a/libc/shared/math/sinhf16.h b/libc/shared/math/sinhf16.h
new file mode 100644
index 0000000..b4fe878
--- /dev/null
+++ b/libc/shared/math/sinhf16.h
@@ -0,0 +1,29 @@
+//===-- Shared sinhf16 function ---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_SINHF16_H
+#define LLVM_LIBC_SHARED_MATH_SINHF16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/sinhf16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sinhf16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_SINHF16_H
diff --git a/libc/shared/math/sinpif.h b/libc/shared/math/sinpif.h
new file mode 100644
index 0000000..c7dee41
--- /dev/null
+++ b/libc/shared/math/sinpif.h
@@ -0,0 +1,23 @@
+//===-- Shared sinpif function ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_SINPIF_H
+#define LLVM_LIBC_SHARED_MATH_SINPIF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sinpif.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sinpif;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_SINPIF_H
diff --git a/libc/shared/math/sqrt.h b/libc/shared/math/sqrt.h
new file mode 100644
index 0000000..476cc54
--- /dev/null
+++ b/libc/shared/math/sqrt.h
@@ -0,0 +1,23 @@
+//===-- Shared header for sqrt ----------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_SQRT_H
+#define LLVM_LIBC_SHARED_MATH_SQRT_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sqrt.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sqrt;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_SQRT_H
diff --git a/libc/shared/math/sqrtf16.h b/libc/shared/math/sqrtf16.h
new file mode 100644
index 0000000..9c20435
--- /dev/null
+++ b/libc/shared/math/sqrtf16.h
@@ -0,0 +1,29 @@
+//===-- Shared sqrtf16 function ---------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_SQRTF16_H
+#define LLVM_LIBC_SHARED_MATH_SQRTF16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sqrtf16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sqrtf16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_SQRTF16_H
diff --git a/libc/shared/math/tan.h b/libc/shared/math/tan.h
new file mode 100644
index 0000000..3686266
--- /dev/null
+++ b/libc/shared/math/tan.h
@@ -0,0 +1,23 @@
+//===-- Shared tan function -------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_TAN_H
+#define LLVM_LIBC_SHARED_MATH_TAN_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/tan.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::tan;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_TAN_H
diff --git a/libc/shared/math/tanf.h b/libc/shared/math/tanf.h
new file mode 100644
index 0000000..ce0f11d
--- /dev/null
+++ b/libc/shared/math/tanf.h
@@ -0,0 +1,23 @@
+//===-- Shared tanf function ------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SHARED_MATH_TANF_H
+#define LLVM_LIBC_SHARED_MATH_TANF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/tanf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::tanf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_TANF_H