godot/thirdparty/embree/common/math/transcendental.h

// Copyright 2009-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#pragma once

// Transcendental functions from "ispc": https://github.com/ispc/ispc/
// Most of the transcendental implementations in ispc code come from
// Solomon Boulos's "syrah": https://github.com/boulos/syrah/

#include "../simd/simd.h"

namespace embree
{

namespace fastapprox
{

template <typename T>
__forceinline T sin(const T &v)
{}

template <typename T>
__forceinline T cos(const T &v)
{}

template <typename T>
__forceinline void sincos(const T &v, T &sinResult, T &cosResult)
{}

template <typename T>
__forceinline T tan(const T &v)
{}

template <typename T>
__forceinline T asin(const T &x0)
{}

template <typename T>
__forceinline T acos(const T &v)
{}

template <typename T>
__forceinline T atan(const T &v)
{}

template <typename T>
__forceinline T atan2(const T &y, const T &x)
{}

template <typename T>
__forceinline T exp(const T &v)
{}

// Range reduction for logarithms takes log(x) -> log(2^n * y) -> n
// * log(2) + log(y) where y is the reduced range (usually in [1/2, 1)).
template <typename T, typename R>
__forceinline void __rangeReduceLog(const T &input,
                                    T &reduced,
                                    R &exponent)
{}

template <typename T> struct ExponentType            {};
ExponentType<vfloat_impl<N>>;
template <>           struct ExponentType<float>     {};

template <typename T>
__forceinline T log(const T &v)
{}

template <typename T>
__forceinline T pow(const T &x, const T &y)
{}

template <typename T>
__forceinline T pow(const T &x, float y)
{}

} // namespace fastapprox

} // namespace embree