aboutsummaryrefslogtreecommitdiff
path: root/libc/shared/math
diff options
context:
space:
mode:
Diffstat (limited to 'libc/shared/math')
-rw-r--r--libc/shared/math/dfmaf128.h29
-rw-r--r--libc/shared/math/dfmal.h24
-rw-r--r--libc/shared/math/exp2m1f.h23
-rw-r--r--libc/shared/math/exp2m1f16.h29
-rw-r--r--libc/shared/math/expm1.h23
-rw-r--r--libc/shared/math/expm1f.h23
-rw-r--r--libc/shared/math/expm1f16.h29
-rw-r--r--libc/shared/math/f16fma.h31
-rw-r--r--libc/shared/math/f16fmaf.h31
-rw-r--r--libc/shared/math/f16fmaf128.h32
-rw-r--r--libc/shared/math/f16fmal.h31
-rw-r--r--libc/shared/math/f16sqrt.h29
-rw-r--r--libc/shared/math/f16sqrtf.h29
-rw-r--r--libc/shared/math/f16sqrtl.h27
-rw-r--r--libc/shared/math/ffmal.h25
-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/ilogbf16.h28
-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/llogbl.h23
-rw-r--r--libc/shared/math/log.h22
-rw-r--r--libc/shared/math/log10.h22
-rw-r--r--libc/shared/math/log10f.h23
-rw-r--r--libc/shared/math/log10f16.h29
-rw-r--r--libc/shared/math/log1p.h22
-rw-r--r--libc/shared/math/log1pf.h23
-rw-r--r--libc/shared/math/log2.h22
-rw-r--r--libc/shared/math/log2f.h23
-rw-r--r--libc/shared/math/log2f16.h29
-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/pow.h23
-rw-r--r--libc/shared/math/powf.h23
-rw-r--r--libc/shared/math/sin.h23
-rw-r--r--libc/shared/math/sincosf.h23
-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/sqrtf.h23
-rw-r--r--libc/shared/math/sqrtf128.h29
-rw-r--r--libc/shared/math/sqrtf16.h29
-rw-r--r--libc/shared/math/tan.h23
-rw-r--r--libc/shared/math/tanf.h23
58 files changed, 1481 insertions, 0 deletions
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/exp2m1f.h b/libc/shared/math/exp2m1f.h
new file mode 100644
index 0000000..ca97547
--- /dev/null
+++ b/libc/shared/math/exp2m1f.h
@@ -0,0 +1,23 @@
+//===-- Shared exp2m1f 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_EXP2M1F_H
+#define LLVM_LIBC_SHARED_MATH_EXP2M1F_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/exp2m1f.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::exp2m1f;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_EXP2M1F_H
diff --git a/libc/shared/math/exp2m1f16.h b/libc/shared/math/exp2m1f16.h
new file mode 100644
index 0000000..96a4047
--- /dev/null
+++ b/libc/shared/math/exp2m1f16.h
@@ -0,0 +1,29 @@
+//===-- Shared exp2m1f16 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_EXP2M1F16_H
+#define LLVM_LIBC_SHARED_MATH_EXP2M1F16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/exp2m1f16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::exp2m1f16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_EXP2M1F16_H
diff --git a/libc/shared/math/expm1.h b/libc/shared/math/expm1.h
new file mode 100644
index 0000000..4c8dbdc
--- /dev/null
+++ b/libc/shared/math/expm1.h
@@ -0,0 +1,23 @@
+//===-- Shared expm1 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_EXPM1_H
+#define LLVM_LIBC_SHARED_MATH_EXPM1_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/expm1.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::expm1;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_EXPM1_H
diff --git a/libc/shared/math/expm1f.h b/libc/shared/math/expm1f.h
new file mode 100644
index 0000000..e0cf6a8
--- /dev/null
+++ b/libc/shared/math/expm1f.h
@@ -0,0 +1,23 @@
+//===-- Shared expm1f 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_EXPM1F_H
+#define LLVM_LIBC_SHARED_MATH_EXPM1F_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/expm1f.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::expm1f;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_EXPM1F_H
diff --git a/libc/shared/math/expm1f16.h b/libc/shared/math/expm1f16.h
new file mode 100644
index 0000000..5698400
--- /dev/null
+++ b/libc/shared/math/expm1f16.h
@@ -0,0 +1,29 @@
+//===-- Shared expm1f16 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_EXPM1F16_H
+#define LLVM_LIBC_SHARED_MATH_EXPM1F16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/expm1f16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::expm1f16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_EXPM1F16_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/f16fmaf.h b/libc/shared/math/f16fmaf.h
new file mode 100644
index 0000000..bafbb4b
--- /dev/null
+++ b/libc/shared/math/f16fmaf.h
@@ -0,0 +1,31 @@
+//===-- Shared f16fmaf 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_F16FMAF_H
+#define LLVM_LIBC_SHARED_MATH_F16FMAF_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/f16fmaf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+
+using math::f16fmaf;
+
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_F16FMAF_H
diff --git a/libc/shared/math/f16fmaf128.h b/libc/shared/math/f16fmaf128.h
new file mode 100644
index 0000000..5684467
--- /dev/null
+++ b/libc/shared/math/f16fmaf128.h
@@ -0,0 +1,32 @@
+//===-- Shared f16fmaf128 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_F16FMAF128_H
+#define LLVM_LIBC_SHARED_MATH_F16FMAF128_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+#include "include/llvm-libc-types/float128.h"
+#include "shared/libc_common.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT128
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/f16fmaf128.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::f16fmaf128;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+#endif // LIBC_TYPES_HAS_FLOAT128
+
+#endif // LLVM_LIBC_SHARED_MATH_F16FMAF128_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/f16sqrt.h b/libc/shared/math/f16sqrt.h
new file mode 100644
index 0000000..d8a3a46
--- /dev/null
+++ b/libc/shared/math/f16sqrt.h
@@ -0,0 +1,29 @@
+//===-- 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_F16SQRT_H
+#define LLVM_LIBC_SHARED_MATH_F16SQRT_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "shared/libc_common.h"
+#include "src/__support/math/f16sqrt.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::f16sqrt;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_F16SQRT_H
diff --git a/libc/shared/math/f16sqrtf.h b/libc/shared/math/f16sqrtf.h
new file mode 100644
index 0000000..65f580c
--- /dev/null
+++ b/libc/shared/math/f16sqrtf.h
@@ -0,0 +1,29 @@
+//===-- Shared f16sqrtf 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_F16SQRTF_H
+#define LLVM_LIBC_SHARED_MATH_F16SQRTF_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "shared/libc_common.h"
+#include "src/__support/math/f16sqrtf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::f16sqrtf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_F16SQRTF_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/ffmal.h b/libc/shared/math/ffmal.h
new file mode 100644
index 0000000..51e20cb
--- /dev/null
+++ b/libc/shared/math/ffmal.h
@@ -0,0 +1,25 @@
+//===-- Shared ffmal 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_FFMAL_H
+#define LLVM_LIBC_SHARED_MATH_FFMAL_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/ffmal.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+
+using math::ffmal;
+
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_FFMAL_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/ilogbf16.h b/libc/shared/math/ilogbf16.h
new file mode 100644
index 0000000..6be207b
--- /dev/null
+++ b/libc/shared/math/ilogbf16.h
@@ -0,0 +1,28 @@
+//===-- Shared ilogbf16 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_ILOGBF16_H
+#define LLVM_LIBC_SHARED_MATH_ILOGBF16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "src/__support/math/ilogbf16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::ilogbf16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_ILOGBF16_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/llogbl.h b/libc/shared/math/llogbl.h
new file mode 100644
index 0000000..3135787
--- /dev/null
+++ b/libc/shared/math/llogbl.h
@@ -0,0 +1,23 @@
+//===-- Shared llogbl 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_LLOGBL_H
+#define LLVM_LIBC_SHARED_MATH_LLOGBL_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/llogbl.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::llogbl;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LLOGBL_H
diff --git a/libc/shared/math/log.h b/libc/shared/math/log.h
new file mode 100644
index 0000000..9bcfa37
--- /dev/null
+++ b/libc/shared/math/log.h
@@ -0,0 +1,22 @@
+//===-- Shared log 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_LOG_H
+#define LLVM_LIBC_SHARED_MATH_LOG_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log.h"
+namespace LIBC_NAMESPACE_DECL {
+
+namespace shared {
+using math::log;
+} // namespace shared
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG_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/log10f.h b/libc/shared/math/log10f.h
new file mode 100644
index 0000000..66da72b
--- /dev/null
+++ b/libc/shared/math/log10f.h
@@ -0,0 +1,23 @@
+//===-- Shared log10f 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_LOG10F_H
+#define LLVM_LIBC_SHARED_MATH_LOG10F_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log10f.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::log10f;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG10F_H
diff --git a/libc/shared/math/log10f16.h b/libc/shared/math/log10f16.h
new file mode 100644
index 0000000..8e30388
--- /dev/null
+++ b/libc/shared/math/log10f16.h
@@ -0,0 +1,29 @@
+//===-- Shared log10f16 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_LOG10F16_H
+#define LLVM_LIBC_SHARED_MATH_LOG10F16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log10f16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::log10f16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG10F16_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/log1pf.h b/libc/shared/math/log1pf.h
new file mode 100644
index 0000000..be6cecd
--- /dev/null
+++ b/libc/shared/math/log1pf.h
@@ -0,0 +1,23 @@
+//===-- Shared log1pf 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_LOG1PF_H
+#define LLVM_LIBC_SHARED_MATH_LOG1PF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log1pf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::log1pf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG1PF_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/log2f.h b/libc/shared/math/log2f.h
new file mode 100644
index 0000000..db04676
--- /dev/null
+++ b/libc/shared/math/log2f.h
@@ -0,0 +1,23 @@
+//===-- Shared log2f 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_LOG2F_H
+#define LLVM_LIBC_SHARED_MATH_LOG2F_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log2f.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::log2f;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG2F_H
diff --git a/libc/shared/math/log2f16.h b/libc/shared/math/log2f16.h
new file mode 100644
index 0000000..01b3084
--- /dev/null
+++ b/libc/shared/math/log2f16.h
@@ -0,0 +1,29 @@
+//===-- Shared log2f16 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_LOG2F16_H
+#define LLVM_LIBC_SHARED_MATH_LOG2F16_H
+
+#include "include/llvm-libc-macros/float16-macros.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT16
+
+#include "shared/libc_common.h"
+#include "src/__support/math/log2f16.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::log2f16;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT16
+
+#endif // LLVM_LIBC_SHARED_MATH_LOG2F16_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/pow.h b/libc/shared/math/pow.h
new file mode 100644
index 0000000..9743683
--- /dev/null
+++ b/libc/shared/math/pow.h
@@ -0,0 +1,23 @@
+//===-- Shared pow 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_POW_H
+#define LLVM_LIBC_SHARED_MATH_POW_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/pow.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::pow;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_POW_H
diff --git a/libc/shared/math/powf.h b/libc/shared/math/powf.h
new file mode 100644
index 0000000..71c52f7
--- /dev/null
+++ b/libc/shared/math/powf.h
@@ -0,0 +1,23 @@
+//===-- Shared powf 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_POWF_H
+#define LLVM_LIBC_SHARED_MATH_POWF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/powf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::powf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_POWF_H
diff --git a/libc/shared/math/sin.h b/libc/shared/math/sin.h
new file mode 100644
index 0000000..011cec6
--- /dev/null
+++ b/libc/shared/math/sin.h
@@ -0,0 +1,23 @@
+//===-- Shared sin 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_SIN_H
+#define LLVM_LIBC_SHARED_MATH_SIN_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sin.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sin;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_SIN_H
diff --git a/libc/shared/math/sincosf.h b/libc/shared/math/sincosf.h
new file mode 100644
index 0000000..6996e10
--- /dev/null
+++ b/libc/shared/math/sincosf.h
@@ -0,0 +1,23 @@
+//===-- Shared sincosf 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_SINCOSF_H
+#define LLVM_LIBC_SHARED_MATH_SINCOSF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sincosf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sincosf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_SINCOSF_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/sqrtf.h b/libc/shared/math/sqrtf.h
new file mode 100644
index 0000000..c99fba5
--- /dev/null
+++ b/libc/shared/math/sqrtf.h
@@ -0,0 +1,23 @@
+//===-- Shared header for sqrtf ---------------------------------*- 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_SQRTF_H
+#define LLVM_LIBC_SHARED_MATH_SQRTF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sqrtf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sqrtf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_SQRTF_H
diff --git a/libc/shared/math/sqrtf128.h b/libc/shared/math/sqrtf128.h
new file mode 100644
index 0000000..609b892
--- /dev/null
+++ b/libc/shared/math/sqrtf128.h
@@ -0,0 +1,29 @@
+//===-- Shared sqrtf128 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_SQRTF128_H
+#define LLVM_LIBC_SHARED_MATH_SQRTF128_H
+
+#include "include/llvm-libc-types/float128.h"
+
+#ifdef LIBC_TYPES_HAS_FLOAT128
+
+#include "shared/libc_common.h"
+#include "src/__support/math/sqrtf128.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::sqrtf128;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LIBC_TYPES_HAS_FLOAT128
+
+#endif // LLVM_LIBC_SHARED_MATH_SQRTF128_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