-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
972 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
//====================================================================================================================== | ||
/* | ||
Kyosu - Complex Without Complexes | ||
Copyright: KYOSU Contributors & Maintainers | ||
SPDX-License-Identifier: BSL-1.0 | ||
*/ | ||
//====================================================================================================================== | ||
#pragma once | ||
|
||
#include <kyosu/details/invoke.hpp> | ||
#include <eve/module/bessel.hpp> | ||
|
||
namespace kyosu::tags | ||
{ | ||
struct callable_airy: eve::elementwise | ||
{ | ||
using callable_tag_type = callable_airy; | ||
|
||
KYOSU_DEFERS_CALLABLE(airy_); | ||
|
||
template<eve::floating_ordered_value T> | ||
static KYOSU_FORCEINLINE auto deferred_call(auto, T const& v) noexcept | ||
{ | ||
return eve::airy(v); | ||
} | ||
|
||
template<typename T> | ||
KYOSU_FORCEINLINE auto operator()(T const & target0) const noexcept | ||
-> decltype(eve::tag_invoke(*this, target0)) | ||
{ | ||
return eve::tag_invoke(*this, target0); | ||
} | ||
|
||
template<typename... T> | ||
eve::unsupported_call<callable_airy(T&&...)> operator()(T&&... x) const | ||
requires(!requires { eve::tag_invoke(*this, KYOSU_FWD(x)...); }) = delete; | ||
}; | ||
} | ||
|
||
namespace kyosu | ||
{ | ||
//====================================================================================================================== | ||
//! @addtogroup functions | ||
//! @{ | ||
//! @var airy | ||
//! @brief Computes simultaneously the airy functions \f$Ai\f$ and \f$Bi\f$. | ||
//! | ||
//! @code | ||
//! #include <kyosu/functions.hpp> | ||
//! @endcode | ||
//! | ||
//! @groupheader{Callable Signatures} | ||
//! | ||
//! @code | ||
//! namespace kyosu | ||
//! { | ||
//! template<eve::floating_ordered_value T> constexpr auto airy(T z) noexcept; | ||
//! | ||
//! template<kyosu::concepts::cayley_dickson T> constexpr auto airy(T z) noexcept; | ||
//! } | ||
//! @endcode | ||
//! | ||
//! **Parameters** | ||
//! | ||
//! * `z`: Value to process. | ||
//! | ||
//! **Return value** | ||
//! | ||
//! * returns a kumi pair containing \f$\{Ai(z)\}f$ and \f$\{Bi(z)\}f$. | ||
//! | ||
//! @groupheader{Example} | ||
//! | ||
//! @godbolt{doc/airy.cpp} | ||
//! @} | ||
//====================================================================================================================== | ||
inline constexpr tags::callable_airy airy = {}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
//====================================================================================================================== | ||
/* | ||
Kyosu - Complex Without Complexes | ||
Copyright: KYOSU Contributors & Maintainers | ||
SPDX-License-Identifier: BSL-1.0 | ||
*/ | ||
//====================================================================================================================== | ||
#pragma once | ||
|
||
#include <kyosu/details/invoke.hpp> | ||
#include <eve/module/bessel.hpp> | ||
|
||
namespace kyosu::tags | ||
{ | ||
struct callable_airy_ai: eve::elementwise | ||
{ | ||
using callable_tag_type = callable_airy_ai; | ||
|
||
KYOSU_DEFERS_CALLABLE(airy_ai_); | ||
|
||
template<eve::floating_ordered_value T> | ||
static KYOSU_FORCEINLINE auto deferred_call(auto, T const& v) noexcept | ||
{ | ||
return eve::airy_ai(v); | ||
} | ||
|
||
template<typename T> | ||
KYOSU_FORCEINLINE auto operator()(T const & target0) const noexcept | ||
-> decltype(eve::tag_invoke(*this, target0)) | ||
{ | ||
return eve::tag_invoke(*this, target0); | ||
} | ||
|
||
template<typename... T> | ||
eve::unsupported_call<callable_airy_ai(T&&...)> operator()(T&&... x) const | ||
requires(!requires { eve::tag_invoke(*this, KYOSU_FWD(x)...); }) = delete; | ||
}; | ||
} | ||
|
||
namespace kyosu | ||
{ | ||
//====================================================================================================================== | ||
//! @addtogroup functions | ||
//! @{ | ||
//! @var airy_ai | ||
//! @brief Computes the airy function \f$Ai\f$, | ||
//! | ||
//! @code | ||
//! #include <kyosu/functions.hpp> | ||
//! @endcode | ||
//! | ||
//! @groupheader{Callable Signatures} | ||
//! | ||
//! @code | ||
//! namespace kyosu | ||
//! { | ||
//! template<eve::floating_ordered_value T> constexpr auto airy_ai(T z) noexcept; | ||
//! | ||
//! template<kyosu::concepts::cayley_dickson T> constexpr auto airy_ai(T z) noexcept; | ||
//! } | ||
//! @endcode | ||
//! | ||
//! **Parameters** | ||
//! | ||
//! * `z`: Value to process. | ||
//! | ||
//! **Return value** | ||
//! | ||
//! * returns \f$\{Ai(z)\}f$. | ||
//! | ||
//! @groupheader{Example} | ||
//! | ||
//! @godbolt{doc/airy_ai.cpp} | ||
//! @} | ||
//====================================================================================================================== | ||
inline constexpr tags::callable_airy_ai airy_ai = {}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
//====================================================================================================================== | ||
/* | ||
Kyosu - Complex Without Complexes | ||
Copyright: KYOSU Contributors & Maintainers | ||
SPDX-License-Identifier: BSL-1.0 | ||
*/ | ||
//====================================================================================================================== | ||
#pragma once | ||
|
||
#include <kyosu/details/invoke.hpp> | ||
#include <eve/module/bessel.hpp> | ||
|
||
namespace kyosu::tags | ||
{ | ||
struct callable_airy_bi: eve::elementwise | ||
{ | ||
using callable_tag_type = callable_airy_bi; | ||
|
||
KYOSU_DEFERS_CALLABLE(airy_bi_); | ||
|
||
template<eve::floating_ordered_value T> | ||
static KYOSU_FORCEINLINE auto deferred_call(auto, T const& v) noexcept | ||
{ | ||
return eve::airy_bi(v); | ||
} | ||
|
||
template<typename T> | ||
KYOSU_FORCEINLINE auto operator()(T const & target0) const noexcept | ||
-> decltype(eve::tag_invoke(*this, target0)) | ||
{ | ||
return eve::tag_invoke(*this, target0); | ||
} | ||
|
||
template<typename... T> | ||
eve::unsupported_call<callable_airy_bi(T&&...)> operator()(T&&... x) const | ||
requires(!requires { eve::tag_invoke(*this, KYOSU_FWD(x)...); }) = delete; | ||
}; | ||
} | ||
|
||
namespace kyosu | ||
{ | ||
//====================================================================================================================== | ||
//! @addtogroup functions | ||
//! @{ | ||
//! @var airy_bi | ||
//! @brief Computes the airy function \f$Bi\f$, | ||
//! | ||
//! @code | ||
//! #include <kyosu/functions.hpp> | ||
//! @endcode | ||
//! | ||
//! @groupheader{Callable Signatures} | ||
//! | ||
//! @code | ||
//! namespace kyosu | ||
//! { | ||
//! template<eve::floating_ordered_value T> constexpr auto airy_bi(T z) noexcept; | ||
//! | ||
//! template<kyosu::concepts::cayley_dickson T> constexpr auto airy_bi(T z) noexcept; | ||
//! } | ||
//! @endcode | ||
//! | ||
//! **Parameters** | ||
//! | ||
//! * `z`: Value to process. | ||
//! | ||
//! **Return value** | ||
//! | ||
//! * returns \f$\{Bi(z)\}f$. | ||
//! | ||
//! @groupheader{Example} | ||
//! | ||
//! @godbolt{doc/airy_bi.cpp} | ||
//! @} | ||
//====================================================================================================================== | ||
inline constexpr tags::callable_airy_bi airy_bi = {}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.