diff --git a/include/fennec/lang/conditional_types.h b/include/fennec/lang/conditional_types.h index dc6d27c..7ae8726 100644 --- a/include/fennec/lang/conditional_types.h +++ b/include/fennec/lang/conditional_types.h @@ -48,17 +48,26 @@ namespace fennec /// \tparam B the value of the condition /// \tparam T type to use when \f$B == true\f$ /// \tparam F type to use when \f$B == false\f$ -template struct conditional; +template +struct conditional; + /// \brief Shorthand for ```typename conditional::type``` -template using conditional_t = typename conditional::type; +template +using conditional_t + = typename conditional::type; -/// \internal specialization of fennec::conditional for \c true case -template struct conditional : type_transform{}; +// specialization of fennec::conditional for \c true case +template +struct conditional + : type_transform{}; -/// \internal specialization of fennec::conditional for \c false case -template struct conditional : type_transform{}; + +// specialization of fennec::conditional for \c false case +template +struct conditional + : type_transform{}; } diff --git a/include/fennec/lang/constants.h b/include/fennec/lang/constants.h index dbe7892..d9ad0b8 100644 --- a/include/fennec/lang/constants.h +++ b/include/fennec/lang/constants.h @@ -55,23 +55,30 @@ template struct integral_constant constexpr operator T() const noexcept { return V; } }; + /// /// /// \brief metaprogramming boolean constant /// /// \details /// \tparam V value of the constant -template struct bool_constant : integral_constant {}; +template +struct bool_constant + : integral_constant {}; + /// /// /// \brief metaprogramming true constant -struct true_type : bool_constant {}; +struct true_type + : bool_constant {}; + /// /// /// \brief metaprogramming false constant -struct false_type : bool_constant {}; +struct false_type + : bool_constant {}; } diff --git a/include/fennec/lang/detail/__type_traits.h b/include/fennec/lang/detail/__type_traits.h index aeb8174..0ec5528 100644 --- a/include/fennec/lang/detail/__type_traits.h +++ b/include/fennec/lang/detail/__type_traits.h @@ -16,14 +16,10 @@ // along with this program. If not, see . // ===================================================================================================================== -/// \file __type_traits.h -/// \internal - #ifndef FENNEC_LANG_DETAIL_TYPE_TRAITS_H #define FENNEC_LANG_DETAIL_TYPE_TRAITS_H #include -#include #include namespace fennec diff --git a/include/fennec/lang/limits.h b/include/fennec/lang/limits.h index 2ebdf3e..458a064 100644 --- a/include/fennec/lang/limits.h +++ b/include/fennec/lang/limits.h @@ -28,6 +28,8 @@ namespace fennec { +/// +/// \brief enum for determining rounding styles enum float_round_style { round_indeterminate = -1 diff --git a/include/fennec/lang/sequences.h b/include/fennec/lang/sequences.h index 5fa0466..9100336 100644 --- a/include/fennec/lang/sequences.h +++ b/include/fennec/lang/sequences.h @@ -199,23 +199,23 @@ struct concat_sequence, index_sequence struct make_integer_sequence : concat_sequence_t, make_integer_sequence_t>{}; -/// \internal Base Case of \f$N=0\f$ +// Base Case of \f$N=0\f$ template struct make_integer_sequence : integer_sequence {}; -/// \internal Base Case of \f$N=1\f$ +// Base Case of \f$N=1\f$ template struct make_integer_sequence : integer_sequence{}; -/// \internal Implementation for Generating an \ref integer_sequence +// Implementation for Generating an \ref integer_sequence template struct make_index_sequence : concat_sequence_t, make_index_sequence_t>{}; -/// \internal Base Case of \f$N=0\f$ +// Base Case of \f$N=0\f$ template<> struct make_index_sequence<0> : index_sequence<> {}; -/// \internal Base Case of \f$N=1\f$ +// Base Case of \f$N=1\f$ template<> struct make_index_sequence<1> : index_sequence<0>{}; diff --git a/include/fennec/lang/type_transforms.h b/include/fennec/lang/type_transforms.h index 5a9a144..bd13359 100644 --- a/include/fennec/lang/type_transforms.h +++ b/include/fennec/lang/type_transforms.h @@ -76,7 +76,7 @@ template using add_pointer_t = typename add_pointer::type; /// \tparam T Resultant Type template struct remove_pointer : type_transform {}; -/// \internal specialization for T* +// specialization for T* template struct remove_pointer : type_transform {}; /// @@ -110,10 +110,10 @@ template using add_reference_t = typename add_reference::type; /// \tparam T Reference Type template struct remove_reference : type_transform {}; -/// \internal specialization for ```T&``` +// specialization for ```T&``` template struct remove_reference : type_transform {}; -/// \internal specialization for ```T&&``` +// specialization for ```T&&``` template struct remove_reference : type_transform {}; /// @@ -138,7 +138,7 @@ template struct add_const : type_transform {}; /// \brief shorthand for ```typename add_const::type``` template using add_const_t = typename add_const::type; -/// \internal specialization for const types +// specialization for const types template struct add_const : type_transform {}; @@ -155,7 +155,7 @@ template struct remove_const : type_transform {}; /// \brief shorthand for ```typename remove_const::type``` template using remove_const_t = typename remove_const::type; -/// \internal specialization for const types +// specialization for const types template struct remove_const : type_transform {}; @@ -173,7 +173,7 @@ template struct add_volatile : type_transform {}; /// \brief shorthand for ```typename add_volatile::type``` template using add_volatile_t = typename add_volatile::type; -/// \internal specialization for volatile types +// specialization for volatile types template struct add_volatile : type_transform {}; @@ -190,7 +190,7 @@ template struct remove_volatile : type_transform {}; /// \brief shorthand for ```typename remove_volatile::type``` template using remove_volatile_t = typename remove_volatile::type; -/// \internal specialization for volatile types +// specialization for volatile types template struct remove_volatile : type_transform {}; @@ -209,13 +209,13 @@ template struct add_cv : type_transform {}; /// \brief shorthand for ```typename add_cv::type``` template using add_cv_t = typename add_cv::type; -/// \internal specialization for const types +// specialization for const types template struct add_cv : type_transform {}; -/// \internal specialization for volatile types +// specialization for volatile types template struct add_cv : type_transform {}; -/// \internal specialization for const volatile types +// specialization for const volatile types template struct add_cv : type_transform {}; @@ -229,13 +229,13 @@ template struct add_cv : type_transform struct remove_cv : type_transform {}; -/// \internal specialization for const types +// specialization for const types template struct remove_cv : type_transform {}; -/// \internal specialization for volatile types +// specialization for volatile types template struct remove_cv : type_transform {}; -/// \internal specialization for const volatile types +// specialization for const volatile types template struct remove_cv : type_transform {}; /// diff --git a/include/fennec/math/detail/__fwd.h b/include/fennec/math/detail/__fwd.h index f0d1a19..b641263 100644 --- a/include/fennec/math/detail/__fwd.h +++ b/include/fennec/math/detail/__fwd.h @@ -16,9 +16,6 @@ // along with this program. If not, see . // ===================================================================================================================== -/// \file __fwd.h -/// \internal - #ifndef FWD_H #define FWD_H diff --git a/include/fennec/math/detail/__types.h b/include/fennec/math/detail/__types.h index ef9877d..86705af 100644 --- a/include/fennec/math/detail/__types.h +++ b/include/fennec/math/detail/__types.h @@ -16,9 +16,6 @@ // along with this program. If not, see . // ===================================================================================================================== -/// \file __types.h -/// \internal - #ifndef FENNEC_MATH_DETAIL_TYPES_H #define FENNEC_MATH_DETAIL_TYPES_H @@ -30,11 +27,12 @@ namespace fennec namespace detail { -/// \internal -template typename VectorT, typename ScalarT, size_t...IndicesV> VectorT __gen_vector(index_sequence); +template typename VectorT, typename ScalarT, size_t...IndicesV> +VectorT __gen_vector(index_sequence); -/// \internal -template typename MatrixT, typename ScalarT, size_t RowsV, size_t...IndicesV> MatrixT __gen_matrix(index_sequence); + +template typename MatrixT, typename ScalarT, size_t RowsV, size_t...IndicesV> +MatrixT __gen_matrix(index_sequence); } diff --git a/include/fennec/math/detail/__vector_traits.h b/include/fennec/math/detail/__vector_traits.h index 0da0f76..ffa5979 100644 --- a/include/fennec/math/detail/__vector_traits.h +++ b/include/fennec/math/detail/__vector_traits.h @@ -16,9 +16,6 @@ // along with this program. If not, see . // ===================================================================================================================== -/// \file __vector_traits.h -/// \internal - #ifndef FENNEC_MATH_DETAIL_VECTOR_TRAITS_H #define FENNEC_MATH_DETAIL_VECTOR_TRAITS_H @@ -33,17 +30,46 @@ namespace fennec namespace detail { -template struct __is_vector_helper : false_type {}; -template struct __is_vector_helper> : true_type {}; -template - struct __is_vector_helper> : true_type {}; +template +struct __is_vector_helper + : false_type {}; -template struct __component_count_helper; -template requires(is_arithmetic_v) struct __component_count_helper : integral_constant {}; -template struct __component_count_helper> : integral_constant {}; -template struct __component_count_helper> : integral_constant {}; -template struct __component_count_helper> : integral_constant {}; -template struct __component_count_helper : integral_constant {}; + +template +struct __is_vector_helper> + : true_type {}; + + +template +struct __is_vector_helper> + : true_type {}; + +template +struct __component_count_helper; + + +template requires(is_arithmetic_v) +struct __component_count_helper + : integral_constant {}; + + +template +struct __component_count_helper> + : integral_constant {}; + + +template +struct __component_count_helper> + : integral_constant {}; + + +template +struct __component_count_helper> + : integral_constant {}; + +template +struct __component_count_helper + : integral_constant {}; } diff --git a/include/fennec/math/exponential.h b/include/fennec/math/exponential.h index 93a6be7..a9d3d13 100644 --- a/include/fennec/math/exponential.h +++ b/include/fennec/math/exponential.h @@ -49,39 +49,39 @@ /// Description /// ///
-/// \ref fennec::pow(fennec::genFType<>, fennec::genFType<>) "genFType pow(genFType, genFType)" +/// \ref fennec::pow(fennec::genType, fennec::genType) "genFType pow(genFType, genFType)" /// -/// \copydoc fennec::pow(fennec::genFType<>, fennec::genFType<>) +/// \copydoc fennec::pow(fennec::genType, fennec::genType) /// ///
-/// \ref fennec::exp(fennec::genFType<>)"genFType exp(genFType)" +/// \ref fennec::exp(fennec::genType)"genFType exp(genFType)" /// -/// \copydoc fennec::exp(fennec::genFType<>) +/// \copydoc fennec::exp(fennec::genType) /// ///
-/// \ref fennec::exp2(fennec::genFType<>) "genFType exp2(genFType)" +/// \ref fennec::exp2(fennec::genType) "genFType exp2(genFType)" /// -/// \copydoc fennec::exp2(fennec::genFType<>) +/// \copydoc fennec::exp2(fennec::genType) /// ///
-/// \ref fennec::log(fennec::genFType<>) "genFType log(genFType)" +/// \ref fennec::log(fennec::genType) "genFType log(genFType)" /// -/// \copydoc fennec::log(fennec::genFType<>) +/// \copydoc fennec::log(fennec::genType) /// ///
-/// \ref fennec::log2(fennec::genFType<>) "genFType log2(genFType)" +/// \ref fennec::log2(fennec::genType) "genFType log2(genFType)" /// -/// \copydoc fennec::log2(fennec::genFType<>) +/// \copydoc fennec::log2(fennec::genType) /// ///
-/// \ref fennec::sqrt(fennec::genFType<>) "genFType sqrt(genFType)" +/// \ref fennec::sqrt(fennec::genType) "genFType sqrt(genFType)" /// -/// \copydoc fennec::sqrt(fennec::genFType<>) +/// \copydoc fennec::sqrt(fennec::genType) /// ///
-/// \ref fennec::inversesqrt(fennec::genFType<>) "genFType inversesqrt(genFType)" +/// \ref fennec::inversesqrt(fennec::genType) "genFType inversesqrt(genFType)" /// -/// \copydoc fennec::inversesqrt(fennec::genFType<>) +/// \copydoc fennec::inversesqrt(fennec::genType) /// /// /// @@ -95,7 +95,6 @@ namespace fennec // pow ----------------------------------------------------------------------------------------------------------------- /// -/// \fn fennec::pow(fennec::genType, fennec::genType) /// \brief Returns \f$x\f$ raised to the \f$y\f$ power, i.e., \f$x^y\f$. /// /// \returns \f$x\f$ raised to the \f$y\f$ power, i.e., \f$x^y\f$.

@@ -115,7 +114,6 @@ constexpr vector pow(const vector & x, const vecto // exp ----------------------------------------------------------------------------------------------------------------- /// -/// \fn fennec::exp(fennec::genType) /// \brief Returns the natural exponentiation of \f$x\f$, i.e., \f$e^x\f$ /// /// \returns the natural exponentiation of \f$x\f$, i.e., \f$e^x\f$.

@@ -131,7 +129,6 @@ template constexpr vector exp(const // exp2 ---------------------------------------------------------------------------------------------------------------- -/// /// /// \brief Returns 2 raised to the \f$x\f$ power, i.e., \f$e^x\f$ /// @@ -148,7 +145,6 @@ template constexpr vector exp2(cons // log ----------------------------------------------------------------------------------------------------------------- /// -/// \fn fennec::log(fennec::genType) /// \brief Returns the natural logarithm of \f$x\f$. /// /// \returns the natural logarithm of \f$x\f$, i.e., returns the value \f$y\f$ which satisfies the equation \f$x=e^y\f$.

@@ -165,7 +161,6 @@ template constexpr genType log(const vector constexpr genType log2(const vector
@@ -200,7 +194,6 @@ template constexpr genType sqrt(const vector
diff --git a/include/fennec/math/math.h b/include/fennec/math/math.h index 75a64ef..7634593 100644 --- a/include/fennec/math/math.h +++ b/include/fennec/math/math.h @@ -79,11 +79,14 @@ /// /// - -#include -#include #include #include +#include + +#include + +#include +#include #endif // FENNEC_MATH_H diff --git a/include/fennec/math/swizzle.h b/include/fennec/math/swizzle.h index c581644..5701581 100644 --- a/include/fennec/math/swizzle.h +++ b/include/fennec/math/swizzle.h @@ -37,7 +37,6 @@ namespace fennec { -/// /// /// \brief Structure for Handling Vector Swizzling /// diff --git a/include/fennec/math/swizzle_storage.h b/include/fennec/math/swizzle_storage.h index 7e41cf8..bb9ddee 100644 --- a/include/fennec/math/swizzle_storage.h +++ b/include/fennec/math/swizzle_storage.h @@ -26,7 +26,6 @@ namespace fennec namespace detail { -/// /// /// \brief Backing storage struct for \ref fennec::swizzle "swizzle" /// \tparam DataT Data Type diff --git a/include/fennec/math/trigonometric.h b/include/fennec/math/trigonometric.h index e0a6264..eb6f706 100644 --- a/include/fennec/math/trigonometric.h +++ b/include/fennec/math/trigonometric.h @@ -49,12 +49,12 @@ ///
/// \ref fennec::degrees(genType) "genFType degrees(genFType)" /// -/// \copydoc fennec::degrees(genType) +/// \copydoc fennec::degrees(fennec::genType) /// ///
/// \ref fennec::radians(genType) "genFType radians(genFType)" /// -/// \copydoc fennec::radians(genType) +/// \copydoc fennec::radians(fennec::genType) /// /// /// @@ -69,33 +69,33 @@ ///
/// \ref fennec::sin(genType) "genFType sin(genFType)" /// -/// \copydoc fennec::sin(genType) +/// \copydoc fennec::sin(fennec::genType) /// ///
/// \ref fennec::cos(genType) "genFType cos(genFType)" /// -/// \copydoc fennec::cos(genType) +/// \copydoc fennec::cos(fennec::genType) /// ///
/// \ref fennec::tan(genType) "genFType tan(genFType)" /// -/// \copydoc fennec::tan(genType) +/// \copydoc fennec::tan(fennec::genType) /// /// ///
/// \ref fennec::asin(genType) "genFType asin(genFType)" /// -/// \copydoc fennec::asin(genType) +/// \copydoc fennec::asin(fennec::genType) /// ///
/// \ref fennec::acos(genType) "genFType acos(genFType)" /// -/// \copydoc fennec::acos(genType) +/// \copydoc fennec::acos(fennec::genType) /// ///
/// \ref fennec::atan(genType) "genFType atan(genFType)" /// -/// \copydoc fennec::atan(genType) +/// \copydoc fennec::atan(fennec::genType) /// /// /// @@ -110,33 +110,33 @@ ///
/// \ref fennec::sinh(genType) "genFType sinh(genFType)" /// -/// \copydoc fennec::sinh(genType) +/// \copydoc fennec::sinh(fennec::genType) /// ///
/// \ref fennec::cosh(genType) "genFType cosh(genFType)" /// -/// \copydoc fennec::cosh(genType) +/// \copydoc fennec::cosh(fennec::genType) /// ///
/// \ref fennec::tanh(genType) "genFType tanh(genFType)" /// -/// \copydoc fennec::tanh(genType) +/// \copydoc fennec::tanh(fennec::genType) /// /// ///
/// \ref fennec::asinh(genFType) "genFType asinh(genFType)" /// -/// \copydoc fennec::asinh(genType) +/// \copydoc fennec::asinh(fennec::genType) /// ///
/// \ref fennec::acosh(genFType) "genFType acosh(genFType)" /// -/// \copydoc fennec::acosh(genType) +/// \copydoc fennec::acosh(fennec::genType) /// ///
/// \ref fennec::atanh(genFType) "genFType atanh(genFType)" /// -/// \copydoc fennec::atanh(genType) +/// \copydoc fennec::atanh(fennec::genType) /// /// ///