diff --git a/doc/Doxyfile b/doc/Doxyfile index e6ba575d74..12a8df43d8 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -535,7 +535,8 @@ RECURSIVE = YES EXCLUDE = ../include/eve/detail/function/tmp \ ../include/eve/module/real/ \ - ../include/eve/detail/ + ../include/eve/detail/ \ + ../include/eve/module/algo/algo/array_utils.hpp # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -877,22 +878,6 @@ TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - FORMULA_MACROFILE = # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see diff --git a/doc/page10_changelog.md b/doc/changelog.md similarity index 100% rename from doc/page10_changelog.md rename to doc/changelog.md diff --git a/doc/layout.xml b/doc/layout.xml index bef40b3f13..0af607e50f 100644 --- a/doc/layout.xml +++ b/doc/layout.xml @@ -3,39 +3,98 @@ - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + - + diff --git a/doc/page10_licence.md b/doc/licence.md similarity index 100% rename from doc/page10_licence.md rename to doc/licence.md diff --git a/doc/page02_tutorial.md b/doc/page02_tutorial.md deleted file mode 100644 index 923d87c703..0000000000 --- a/doc/page02_tutorial.md +++ /dev/null @@ -1,28 +0,0 @@ -Tutorials {#tutorials} -========= - -This section provides step-by-step tutorials for most basic tasks you can do with **EVE**. - -**SIMD 101** - -These tutorials covers the basic of getting **EVE** doing meaningful work. -You can also have a look at the contents of the `examples` folder to find the complete -source code for all code samples from tutorials along with additional examples. - -- \subpage intro-01 -- \subpage intro-02 -- \subpage intro-03 -- \subpage intro-04 - -**SIMD Specific Idioms** - -These tutorials cover topics for improving your usage of SIMD instructions set while using -**EVE** high-level interface to take advantage of well-known, efficient SIMD idioms. - -- \subpage conditional -- \subpage freqscale - -**Advanced Topics** - -- \subpage inter-with-native -- \subpage multiarch diff --git a/doc/page09_internals.md b/doc/page09_internals.md deleted file mode 100644 index f93a3d6ac9..0000000000 --- a/doc/page09_internals.md +++ /dev/null @@ -1,13 +0,0 @@ -Why and How {#eve-dev} -=========== - -**Rationale** - -- \subpage design_rationale -- \subpage algo_rationale -- \subpage glossary_semantic - -**Development Process** - -- \subpage dev_environment -- \subpage dev_cmake diff --git a/doc/page01_info.md b/doc/setup.md similarity index 62% rename from doc/page01_info.md rename to doc/setup.md index 3b393457d1..35485dc595 100644 --- a/doc/page01_info.md +++ b/doc/setup.md @@ -1,4 +1,4 @@ -Installation & Quick Start {#install} +Installation & Quick Start {#setup} ========================== # Pre-requisites @@ -10,32 +10,28 @@ Installation & Quick Start {#install} | g++ | 11 or above | | clang++ | 13 or above | -
- -In term of SIMD extension sets, we actively supports (ie code is optimized and regularly tested) the following: +In term of SIMD extension sets, the supports status are as follows: -- **Intel** - - SSE2, SSSE3, SSE3, SSE4.1, SSE4.2 - - AVX, AVX2, FMA3 - - AVX512 in SKylake-AVX512 mode (F, CD, VL, DQ, BW) -- **ARM** - - NEON A32 (64 & 128 bits) - - NEON A64 (64 & 128 bits) - - ASIMD - - SVE with fixed sizes of 128, 256 and 512 bits registers. +- Active Support (ie code is optimized and regularly tested) -Partial/In-progress support with minimal checks: - - **PowerPC** - - VMX - - VSX + - **Intel** + - SSE2, SSSE3, SSE3, SSE4.1, SSE4.2 + - AVX, AVX2, FMA3 + - AVX512 in SKylake-AVX512 mode (F, CD, VL, DQ, BW) + - **ARM** + - NEON A32 (64 & 128 bits) + - NEON A64 (64 & 128 bits) + - ASIMD + - SVE with fixed sizes of 128, 256 and 512 bits registers. - - We **do not support** ARM SVE with dynamic size. - - We **do not support** GPGPU, this is the job for another tool. -The following instructions are tentatively supported (ie code is incomplete and not tested in depth): +- Partial/In-progress support with minimal checks: + - **PowerPC** + - Altivec for Power7 to 9 + - VSX for Power9 -- **PowerPC** - - Altivec for Power7 to 9 - - VSX for Power9 +- No Support + - We **do not support** ARM SVE with dynamic size. + - We **do not support** GPGPU, this is the job for another tool. # Retrieving the source @@ -90,34 +86,9 @@ Once installed, you can use **EVE** headers directly from your yay -S eve-git ``` -## Conan - -[**Conan Center**](https://conan.io/center/) hosts **EVE** as the -[`jfalcou-eve` package](https://conan.io/center/jfalcou-eve). - -To use **EVE**, just add `jfalcou-eve/v2021.10.0` in the `[requires]` section of -your `conanfile.txt` - -```cmake -[requires] -jfalcou-eve/v2021.10.0 - -[generators] -cmake -``` - -## VCPKG - -**EVE** can be fetched from [VCPKG](https://vcpkgx.com/details.html?package=eve). Note that, as of -now, we still don't support MSVC. - -```bash -vcpkg install eve -``` - # Installation from Source -If you didn't fetched **EVE** from a package manager, you'll need to install it via our CMake +If you didn't fetched **EVE** from a package manager, you'll need to install it via your CMake system. ## Setting up the Library @@ -153,26 +124,13 @@ using the `doxygen` target: cmake --build build --target doxygen @endcode -The resulting HTML files will be available in the `docs` folder. - -You can also build **EVE** documentation in your build folder by using the `doxygen-local` target: -
- -@code -cmake --build build --target doxygen-local -@endcode - The resulting HTML files will be available in the `docs` folder inside your build folder. # Using the library ## Compilation -Once installed, you can compile the following code to check if everything is alright. - -@godbolt{examples/quick-start/sanity-check.cpp} - -To do so, use your C++20 aware favorite compiler, for example g++. +To compiel code using **EVE**, use your C++20 aware favorite compiler, for example g++. @verbatim $ g++ test.cpp -std=c++20 -march=native -O3 -DNDEBUG -I/path/to/install/include/eve- -o output @@ -194,21 +152,17 @@ You can also select a specific instructions set by using the proper option(s) fr $ g++ test.cpp -std=c++20 -msse4.1 -O3 -DNDEBUG -I/path/to/install/include/eve- -o output @endverbatim + ## Execution Once done, execute the binary. If you compiled for SSE4.1 for example, you'll end up with the following results: -@verbatim -$ ./output - x = (1, 2, 3, 4) - 2*x = (2, 4, 6, 8) - x^0.5 = (1, 1.41421, 1.73205, 2) -@endverbatim +@godbolt{examples/quick-start/sanity-check.cpp} That's it, **EVE** is properly installed and ready to use. -## Use in CMake +## Use with CMake Once installed, **EVE** may be consumed through its config-file **CMake** package. Simply find and link against **EVE's** **CMake** target, as you would any other **CMake** library, and then @@ -220,30 +174,31 @@ find_package(eve CONFIG REQUIRED) target_link_libraries(use-eve PRIVATE eve::eve) ``` -> If a custom installation prefix was used, ensure your **EVE** installation is within **CMake's** - search path with the use of the **CMake** variables **eve_ROOT**, **eve_DIR**, or - **CMAKE_PREFIX_PATH**. +If a custom installation prefix was used, ensure your **EVE** installation is within **CMake's** +search path with the use of the **CMake** variables **eve_ROOT**, **eve_DIR**, or +**CMAKE_PREFIX_PATH**. # Advanced options If you want to dig a bit further, you can pass additional options to `cmake` to activate additional features. -|Option |Effect |Target | -|-------------------------|:--------------------------------------------------------|:-------------| -| `EVE_BUILD_TEST` |Enable unit tests for **EVE** (`ON` by default). | `unit` | -| `EVE_BUILD_BENCHMARKS` |Enable benchmark tests for **EVE** (`OFF` by default). | `benchmarks` | -| `EVE_BUILD_RANDOM` |Enable random tests for **EVE** (`OFF` by default). | `random` | -| `EVE_BUILD_INTEGRATION` |Enable integration tests for **EVE** (`OFF` by default). | `integration`| +|Option |Effect |Target | +|---------------------------|:------------------------------------------------------------|:-------------| +| `EVE_BUILD_TEST` |Enable unit tests for **EVE** (`ON` by default). | `unit` | +| `EVE_BUILD_BENCHMARKS` |Enable benchmark tests for **EVE** (`OFF` by default). | `benchmarks` | +| `EVE_BUILD_RANDOM` |Enable random tests for **EVE** (`OFF` by default). | `random` | +| `EVE_BUILD_DOCUMENTATION` |Enable the generation of the documentation (`ON` by default).| `doxygen`| There is currently over 2000 tests, so compiling all unit tests may require a large machine or some time. We recommend compiling in parallel using `-j`. + All available **CMake** targets may be listed via `cmake --build build --target help`, each of which may be built individually. Some options are also available to control some other aspects -| Option | Effect | Comments | -|--------|:-------------|:---------------------| -| `EVE_USE_BMI_ON_AVX2` | Enables using bmi instructions on avx2 | on Intel, it's beneficial, on AMD it's a disaster | -| `EVE_USE_PCH` | Enable using precompiled headers for **EVE** tests. | This is `ON` by default | +| Option | Effect | Comments | +|-----------------------|:----------------------------------------------------|:---------------------------------------| +| `EVE_USE_BMI_ON_AVX2` | Enables using bmi instructions on AVX2 | Beneficial on Intel, disastrous on AMD | +| `EVE_USE_PCH` | Enable using precompiled headers for **EVE** tests. | This is `ON` by default | diff --git a/doc/tutorial/interacting-with-native-code.hpp b/doc/tutorial/interacting-with-native-code.hpp index d6cf0a8035..b1692cc8bc 100644 --- a/doc/tutorial/interacting-with-native-code.hpp +++ b/doc/tutorial/interacting-with-native-code.hpp @@ -18,7 +18,7 @@ To combine this with algorithms, force a specific cardinal. All of algorithms are designed to not require templated callbacks so that you are able to do this. (unfortunately views still require you to provide a template). -@snippet tutorial/interacting_with_native_code.cpp interating_with_native_algo +@snippet tutorial/interacting_with_native.cpp interacting_with_native_algo # What about non-native sizes? @@ -27,10 +27,10 @@ still represented as a full register. For example wide> on x86 is still __m128i. The data is at the first 2 elements, the rest can be garbage. -If the cradinal is larger than the one natively representable, you can +If the cardinal is larger than the one natively representable, you can use slice to get to the half the wide size. -@snippet tutorial/interacting_with_native_code.cpp slicing_aggregate +@snippet tutorial/interacting_with_native.cpp slicing_aggregate If you write something generally useful, maybe consider contributing? **/ diff --git a/examples/tutorial/interacting_with_native.cpp b/examples/tutorial/interacting_with_native.cpp index ba58d07868..aa3149f484 100644 --- a/examples/tutorial/interacting_with_native.cpp +++ b/examples/tutorial/interacting_with_native.cpp @@ -6,7 +6,7 @@ */ //================================================================================================== -//! [interating_with_native_algo] +//! [interacting_with_native_algo] #include #include @@ -39,7 +39,7 @@ void remove_spaces(std::string& s) #endif // __SSSE3__ -//! [interating_with_native_algo] +//! [interacting_with_native_algo] #include "test.hpp" diff --git a/include/eve/arch/cardinals.hpp b/include/eve/arch/cardinals.hpp index a7dec95017..533e6917c4 100644 --- a/include/eve/arch/cardinals.hpp +++ b/include/eve/arch/cardinals.hpp @@ -61,25 +61,9 @@ namespace eve } // namespace detail - //================================================================================================ - //! @brief concept to determine if this is cardinal type of a wide - //! - //! @tparam T - //! - //! only true if T is instance of `eve::fixed`. - //! - //! This concept is needed to define some other concepts, unlikely to be useful on it's own. - //================================================================================================ - template - concept wide_cardinal = detail::is_wide_cardinal::value; - template inline constexpr fixed const lane = {}; - //================================================================================================ - //! @} - //================================================================================================ - //================================================================================================ // Constant index template class //================================================================================================ @@ -92,6 +76,10 @@ namespace eve //================================================================================================ template inline constexpr auto index = index_t{}; + //================================================================================================ + //! @} + //================================================================================================ + //================================================================================================ // Hardware-agnostic cardinal //================================================================================================ @@ -99,4 +87,17 @@ namespace eve { template using cache_line_cardinal = fixed<64 / sizeof(T)>; } + + //================================================================================================ + //! @ingroup simd_concepts + //! @brief concept to determine if this is cardinal type of a wide + //! + //! @tparam T + //! + //! only true if T is instance of `eve::fixed`. + //! + //! This concept is needed to define some other concepts, unlikely to be useful on it's own. + //================================================================================================ + template + concept wide_cardinal = detail::is_wide_cardinal::value; } diff --git a/include/eve/concept/conditional.hpp b/include/eve/concept/conditional.hpp index 7e1157ff53..442dcb146a 100644 --- a/include/eve/concept/conditional.hpp +++ b/include/eve/concept/conditional.hpp @@ -13,11 +13,7 @@ namespace eve { //================================================================================================ - //! @addtogroup core_logical - //! @{ - //================================================================================================ - - //================================================================================================ + //! @ingroup simd_concepts //! @concept conditional_expr //! @brief Specifies that a type is a Conditional Expression //! @@ -36,6 +32,7 @@ namespace eve }; //================================================================================================ + //! @ingroup simd_concepts //! @concept relative_conditional_expr //! @brief Specifies that a type is a Conditional Expression using relative mask //! @@ -53,8 +50,4 @@ namespace eve { a.offset(eve::as>()) }; { a.roffset(eve::as>()) }; }; - - //================================================================================================ - //! @} - //================================================================================================ } diff --git a/include/eve/concept/generator.hpp b/include/eve/concept/generator.hpp index 440b9bf700..e77328738c 100644 --- a/include/eve/concept/generator.hpp +++ b/include/eve/concept/generator.hpp @@ -36,6 +36,7 @@ namespace detail } //================================================================================================== +//! @ingroup simd_concepts //! @concept generator //! The concept `generator` is satisfied if `Constant{}( eve::as() )` is //! well formed. diff --git a/include/eve/concept/scalar.hpp b/include/eve/concept/scalar.hpp index ab05731ee1..0ca9574a49 100644 --- a/include/eve/concept/scalar.hpp +++ b/include/eve/concept/scalar.hpp @@ -31,6 +31,7 @@ namespace eve template struct logical; //================================================================================================== +//! @ingroup simd_concepts //! @concept plain_scalar_value //! @brief Specify that a type represents a plain scalar value //! @@ -45,6 +46,7 @@ template concept plain_scalar_value = detail::is_plain(); //================================================================================================== +//! @ingroup simd_concepts //! @concept logical_scalar_value //! @brief Specify that a type represents a logical scalar value //! @@ -81,6 +83,7 @@ scalar_tuple() noexcept namespace eve { //================================================================================================== +//! @ingroup simd_concepts //! @concept product_scalar_value //! @brief Specify that a type represents a product type made of scalars //! @@ -94,6 +97,7 @@ template concept product_scalar_value = detail::scalar_tuple(); //================================================================================================== +//! @ingroup simd_concepts //! @concept arithmetic_scalar_value //! @brief Specify that a type represents a type suitable for vectorization //! diff --git a/include/eve/concept/simd.hpp b/include/eve/concept/simd.hpp index bf3f3e1da9..4197dfe51b 100644 --- a/include/eve/concept/simd.hpp +++ b/include/eve/concept/simd.hpp @@ -31,6 +31,7 @@ namespace eve template struct logical; //================================================================================================ + //! @ingroup simd_concepts //! @concept logical_simd_value //! @brief Specify that a type represents a logical SIMD value //! diff --git a/include/eve/concept/value.hpp b/include/eve/concept/value.hpp index 429aa3f01d..c3a44dcf69 100644 --- a/include/eve/concept/value.hpp +++ b/include/eve/concept/value.hpp @@ -19,6 +19,7 @@ namespace eve { //================================================================================================ + //! @ingroup simd_concepts //! @concept value //! The concept `value` is satisfied if and only if T satisfies //! either `eve::scalar_value` or `eve::simd_value`. @@ -32,6 +33,7 @@ namespace eve template concept value = simd_value || scalar_value; //================================================================================================ + //! @ingroup simd_concepts //! @concept integral_value //! TODO describe //! @@ -43,6 +45,7 @@ namespace eve template concept integral_value = value && std::integral>; //================================================================================================ + //! @ingroup simd_concepts //! @concept signed_value //! TODO describe //! @@ -54,6 +57,7 @@ namespace eve template concept signed_value = value && std::is_signed_v>; //================================================================================================ + //! @ingroup simd_concepts //! @concept unsigned_value //! TODO describe //! @@ -64,6 +68,7 @@ namespace eve template concept unsigned_value = value && std::unsigned_integral>; //================================================================================================ + //! @ingroup simd_concepts //! @concept signed_integral_value //! TODO describe //! @@ -74,6 +79,7 @@ namespace eve template concept signed_integral_value = value && std::signed_integral>; //================================================================================================ + //! @ingroup simd_concepts //! @concept floating_value //! TODO describe //! @@ -84,6 +90,7 @@ namespace eve template concept floating_value = value && std::floating_point>; //================================================================================================ + //! @ingroup simd_concepts //! @concept logical_value //! TODO describe //! @@ -95,6 +102,7 @@ namespace eve //================================================================================================ + //! @ingroup simd_concepts //! @concept ordered_value //! TODO describe //! @@ -105,7 +113,8 @@ namespace eve template concept ordered_value = value && std::totally_ordered>; //================================================================================================ - //! @concept floating_ordered_value + //! @ingroup simd_concepts + //! @concept floating_ordered_value //! TODO describe //! //! @groupheader{Examples} diff --git a/include/eve/concept/vectorizable.hpp b/include/eve/concept/vectorizable.hpp index f40d77c992..033a0f5534 100644 --- a/include/eve/concept/vectorizable.hpp +++ b/include/eve/concept/vectorizable.hpp @@ -13,6 +13,7 @@ namespace eve { //================================================================================================ + //! @ingroup simd_concepts //! @concept integral_scalar_value //! @brief Specify that a type represents an integral scalar value //! @@ -26,6 +27,7 @@ namespace eve concept integral_scalar_value = arithmetic_scalar_value && std::integral; //================================================================================================ + //! @ingroup simd_concepts //! @concept signed_scalar_value //! @brief Specify that a type represents a signed scalar value //! @@ -40,6 +42,7 @@ namespace eve concept signed_scalar_value = arithmetic_scalar_value && std::is_signed_v; //================================================================================================ + //! @ingroup simd_concepts //! @concept unsigned_scalar_value //! @brief Specify that a type represents a scalar value //! @@ -53,6 +56,7 @@ namespace eve concept unsigned_scalar_value = arithmetic_scalar_value && std::unsigned_integral; //================================================================================================ + //! @ingroup simd_concepts //! @concept signed_integral_scalar_value //! @brief Specify that a type represents a scalar value //! @@ -66,6 +70,7 @@ namespace eve concept signed_integral_scalar_value = arithmetic_scalar_value && std::signed_integral; //================================================================================================ + //! @ingroup simd_concepts //! @concept floating_scalar_value //! @brief Specify that a type represents a scalar value //! diff --git a/include/eve/concept/vectorized.hpp b/include/eve/concept/vectorized.hpp index 320953d437..eb8635755b 100644 --- a/include/eve/concept/vectorized.hpp +++ b/include/eve/concept/vectorized.hpp @@ -18,6 +18,7 @@ namespace eve { //================================================================================================ + //! @ingroup simd_concepts //! @concept simd_value //! @brief Specifies that a type a SIMD type //! @@ -33,6 +34,7 @@ namespace eve concept simd_value = arithmetic_simd_value || logical_simd_value; //================================================================================================ + //! @ingroup simd_concepts //! @concept integral_simd_value //! @brief Specifies that a type a SIMD type with integral elements //! @@ -47,6 +49,7 @@ namespace eve concept integral_simd_value = arithmetic_simd_value && std::integral>; //================================================================================================ + //! @ingroup simd_concepts //! @concept signed_simd_value //! @brief Specifies that a type a SIMD type with signed elements //! @@ -61,6 +64,7 @@ namespace eve concept signed_simd_value = arithmetic_simd_value && std::is_signed_v>; //================================================================================================ + //! @ingroup simd_concepts //! @concept unsigned_simd_value //! @brief Specifies that a type a SIMD type with unsigned elements //! @@ -76,6 +80,7 @@ namespace eve && std::unsigned_integral>; //================================================================================================ + //! @ingroup simd_concepts //! @concept signed_integral_simd_value //! @brief Specifies that a type a SIMD type with signed integral elements //! @@ -91,6 +96,7 @@ namespace eve && std::signed_integral>; //================================================================================================ + //! @ingroup simd_concepts //! @concept floating_simd_value //! @brief Specifies that a type a SIMD type with signed integral elements //! diff --git a/include/eve/conditional.hpp b/include/eve/conditional.hpp index 63411eadf9..16710d4f9c 100644 --- a/include/eve/conditional.hpp +++ b/include/eve/conditional.hpp @@ -19,17 +19,14 @@ #include //================================================================================================== -//! @addtogroup simd_types -//! @{ -//! @defgroup conditional Conditional Expressions -//! @brief Types and operations to defines conditional mask expressions +//! @defgroup conditional Conditional Expressions +//! @brief Types and operations to defines conditional mask expressions //! -//! Masking lanes from an eve::simd_value is a frequent operations. To simplify and optimize such -//! code, **EVE** provides objects and functions to define conditions with a high-level of -//! flexibility including: alternative value, index-based relative conditions and more. +//! Masking lanes from an eve::simd_value is a frequent operations. To simplify and optimize such +//! code, **EVE** provides objects and functions to define conditions with a high-level of +//! flexibility including: alternative value, index-based relative conditions and more. //! -//! **See also:** @ref conditional -//! @} +//! **See also:** @ref conditional //================================================================================================== namespace eve { diff --git a/include/eve/eve.hpp b/include/eve/eve.hpp index 28b97250a1..57e27c9d98 100644 --- a/include/eve/eve.hpp +++ b/include/eve/eve.hpp @@ -7,12 +7,12 @@ //================================================================================================== #pragma once -//================================================================================================== +//====================================================================================================================== //! @defgroup simd EVE //! @brief This module defines all the types and functions provided by EVE -//================================================================================================== +//====================================================================================================================== -//================================================================================================== +//====================================================================================================================== //! @addtogroup simd //! @{ //! @@ -27,18 +27,26 @@ //! This module provides all the numerical functions and function objects usable on **EVE** types. //! //! @} -//================================================================================================== +//====================================================================================================================== -//================================================================================================== -//! @addtogroup simd_types -//! @{ -//! @defgroup arch Architecture related Types and Helpers -//! @brief Architecture related Types and Helpers +//====================================================================================================================== +//! @defgroup simd_concepts SIMD Concepts +//! @brief Provides Concepts for SIMD related components +//====================================================================================================================== + +//====================================================================================================================== +//! @brief EVE Main Namespace //! -//! This module defines the types and helpers functions to properly handle -//! architecture specific components -//! @} -//================================================================================================== +//! This namespace contains all the elements required to use EVE +//====================================================================================================================== +namespace eve {} + +//====================================================================================================================== +//! @defgroup arch Architecture related Types and Helpers +//! @brief Architecture related Types and Helpers +//! +//! This module defines the types and helpers functions to properly handle architecture specific components +//====================================================================================================================== #include #include diff --git a/include/eve/memory.hpp b/include/eve/memory.hpp index a0af9e5f2d..a0eeda5a63 100644 --- a/include/eve/memory.hpp +++ b/include/eve/memory.hpp @@ -8,8 +8,6 @@ #pragma once //================================================================================================ -//! @addtogroup arch -//! @{ //! @defgroup memory Memory Management //! //! **EVE** provides various element to simplify the management of SIMD-compatible memory like @@ -17,8 +15,6 @@ //! to discriminate aligned memory from regular one, and alignment computation functions. //! //! **Convenience header:** @code{.cpp} #include @endcode -//! -//! @} //================================================================================================ #include diff --git a/include/eve/module/algo.hpp b/include/eve/module/algo.hpp index e8d22835c0..b2ea491f26 100644 --- a/include/eve/module/algo.hpp +++ b/include/eve/module/algo.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/algo/algo/concepts.hpp b/include/eve/module/algo/algo/concepts.hpp index 03bb8bc4fa..458fa57503 100644 --- a/include/eve/module/algo/algo/concepts.hpp +++ b/include/eve/module/algo/algo/concepts.hpp @@ -16,7 +16,7 @@ //! @defgroup views Views //! @brief Provides views to work with SIMD algorihms //! -//! @defgroup algo_concepts Concepts +//! @defgroup algo_concepts Algorithms Concepts //! @brief Provides Concepts for algorithms and related components //! //! @defgroup algo_traits AlgoTraits diff --git a/include/eve/module/algo/algo/concepts/ranges_types.hpp b/include/eve/module/algo/algo/concepts/ranges_types.hpp index 79ec153921..c64ccafa3b 100644 --- a/include/eve/module/algo/algo/concepts/ranges_types.hpp +++ b/include/eve/module/algo/algo/concepts/ranges_types.hpp @@ -15,56 +15,59 @@ namespace eve::algo //================================================================================================ //! @addtogroup algo_concepts //! @{ -//! @typedef iterator for a relaxed range +//================================================================================================ + +//================================================================================================ +//! @typedef iterator_t +//! @brief Iterator for a relaxed range //! -//! @tparam R - relaxed range to process +//! @tparam R - relaxed range to process //! //! **Required header:** `#include ` //! -//! @code{.cpp} -//! template -//! using iterator_t = decltype(std::declval().begin()); -//! @endcode -//! @} +//! @code{.cpp} +//! template +//! using iterator_t = decltype(std::declval().begin()); +//! @endcode //================================================================================================ template using iterator_t = decltype(std::declval().begin()); //================================================================================================ -//! @addtogroup algo_concepts -//! @{ -//! @typedef iterator for a relaxed range +//! @typedef sentinel_t +//! @brief Sentinel for a relaxed range //! -//! @tparam R - relaxed range to process +//! @tparam R - relaxed range to process //! //! **Required header:** `#include ` //! -//! @code{.cpp} -//! template -//! using sentinel_t = decltype(std::declval().end()); -//! @endcode -//! @} +//! @code{.cpp} +//! template +//! using sentinel_t = decltype(std::declval().end()); +//! @endcode //================================================================================================ template using sentinel_t = decltype(std::declval().end()); //================================================================================================ -//! @addtogroup algo_concepts -//! @{ -//! @typedef unalgined_iterator_t for a relaxed range +//! @typedef unaligned_iterator_t +//! @brief Unaligned iterator for a relaxed range //! -//! @tparam R - relaxed range to process +//! @tparam R - relaxed range to process //! -//! @brief an iterator that can represent every position in the range +//! @brief an iterator that can represent every position in the range //! //! **Required header:** `#include ` //! -//! @code{.cpp} -//! template -//! using unaligned_iterator_t = unaligned_t>; -//! @endcode -//! @} +//! @code{.cpp} +//! template +//! using unaligned_iterator_t = unaligned_t>; +//! @endcode //================================================================================================ template using unaligned_iterator_t = unaligned_t>; + +//================================================================================================ +//! @} +//================================================================================================ } diff --git a/include/eve/module/algo/algo/container/soa_vector.hpp b/include/eve/module/algo/algo/container/soa_vector.hpp index 26b2c666a0..2a7c1bbad5 100644 --- a/include/eve/module/algo/algo/container/soa_vector.hpp +++ b/include/eve/module/algo/algo/container/soa_vector.hpp @@ -67,7 +67,10 @@ namespace eve::algo //! Const iterator over the the stored Type using const_iterator = decltype(views::convert(std::declval().data(), as{})); + //! Iterator over the the stored Type using aligned data using iterator_aligned = decltype(views::convert(storage_type{}.data_aligned(), as{})); + + //! Const iterator over the the stored Type using aligned data using const_iterator_aligned = decltype(views::convert(std::declval().data_aligned(), as{})); //! Pointer to a eve::algo::views::zip_iterator over fields @@ -76,9 +79,13 @@ namespace eve::algo //! Const pointer to a eve::algo::views::zip_iterator over fields using const_pointer = const_iterator; + //! Aligned pointer to a eve::algo::views::zip_iterator over fields using pointer_aligned = iterator_aligned; + + //! Const aligned pointer to a eve::algo::views::zip_iterator over fields using const_pointer_aligned = const_iterator_aligned; + //! Size type using size_type = std::size_t; //============================================================================================== @@ -198,7 +205,7 @@ namespace eve::algo //! If the new size() is greater than capacity() then all iterators and references (including //! the past-the-end iterator) are invalidated. Otherwise only the past-the-end iterator is //! invalidated. - //! @param value [Value](@eve::vectorizable) to append + //! @param value [Value](@ref eve::scalar_value) to append EVE_FORCEINLINE void push_back(value_type const& value) noexcept { if(size_ != capacity()) eve::write(value, begin()+size_); @@ -237,6 +244,7 @@ namespace eve::algo size_ = n; } + //! @brief Resizes the current eve::soa_vector to a new size void resize(size_type n) { resize(n, value_type{}); } //! @brief Exchanges the contents of the container with those of `other`. @@ -252,6 +260,7 @@ namespace eve::algo //! @brief Swaps the contents of `lhs` and `rhs` by calling `lhs.swap(rhs)`. friend EVE_FORCEINLINE void swap(soa_vector &lhs, soa_vector &rhs) noexcept { lhs.swap(rhs); } + //! @brief Retrieves an instance of the current allocator Allocator get_allocator() { return storage.get_allocator(); } //============================================================================================== @@ -345,12 +354,14 @@ namespace eve::algo //! @name Comparisons and ordering //! @{ //============================================================================================== + //! @brief Checks if the contents of lhs and rhs are equal friend bool operator==(soa_vector const& lhs, soa_vector const& rhs) { if( lhs.size() != rhs.size() ) return false; return eve::algo::equal(lhs, rhs.begin_aligned()); } + //! @brief Checks if the contents of lhs and rhs are not equal friend bool operator!=(soa_vector const& lhs, soa_vector const& rhs) { return !(lhs == rhs); diff --git a/include/eve/module/algo/algo/copy_if.hpp b/include/eve/module/algo/algo/copy_if.hpp index f62b0f2ca5..3af6e3d383 100644 --- a/include/eve/module/algo/algo/copy_if.hpp +++ b/include/eve/module/algo/algo/copy_if.hpp @@ -124,6 +124,7 @@ template struct copy_if_ : TraitsSupport //! template //! auto copy_if(In&& in, Out&& out, P p) -> unaligned_iterator_t //! } +//! @endcode //! //! ** Parameters ** //! diff --git a/include/eve/module/algo/algo/traits.hpp b/include/eve/module/algo/algo/traits.hpp index 9a6394aea7..cbae88ddd0 100644 --- a/include/eve/module/algo/algo/traits.hpp +++ b/include/eve/module/algo/algo/traits.hpp @@ -104,10 +104,10 @@ namespace eve::algo //! @var force_cardinal //! //! @brief A trait that overrides all other cardinal selection and just says - //! to use a certain one. The main usecase for this is ease of interaction with + //! to use a certain one. The main use-case for this is ease of interaction with //! native register code. //! - //! @snipet tutorial/interacting_with_native.cpp interating_with_native_algo + //! @snippet tutorial/interacting_with_native.cpp interacting_with_native_algo //! //! @see consider_types if maybe using some extra type is the reason you want //! to change cardinal. diff --git a/include/eve/module/bessel.hpp b/include/eve/module/bessel.hpp index 44050cb417..e3697cd68d 100644 --- a/include/eve/module/bessel.hpp +++ b/include/eve/module/bessel.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/detail/kernel_bessel_i.hpp b/include/eve/module/bessel/detail/kernel_bessel_i.hpp index 2d225a40ed..e4ded76df6 100644 --- a/include/eve/module/bessel/detail/kernel_bessel_i.hpp +++ b/include/eve/module/bessel/detail/kernel_bessel_i.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once @@ -15,7 +15,7 @@ #include ///////////////////////////////////////////////////////////////////////////////// -// These routines are detail of the computation of modifiesd cylindrical bessel +// These routines are detail of the computation of modified cylindrical bessel // fnctions of the first kind. . // They are not meant to be called directly, as their validities depends on // n and x ranges values which are not tested on entry. diff --git a/include/eve/module/bessel/detail/kernel_bessel_j.hpp b/include/eve/module/bessel/detail/kernel_bessel_j.hpp index b1832c5b2d..cc82c73e9f 100644 --- a/include/eve/module/bessel/detail/kernel_bessel_j.hpp +++ b/include/eve/module/bessel/detail/kernel_bessel_j.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/detail/kernel_bessel_jy.hpp b/include/eve/module/bessel/detail/kernel_bessel_jy.hpp index 7250eda5d1..e8490e21c8 100644 --- a/include/eve/module/bessel/detail/kernel_bessel_jy.hpp +++ b/include/eve/module/bessel/detail/kernel_bessel_jy.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/detail/kernel_bessel_jy_large.hpp b/include/eve/module/bessel/detail/kernel_bessel_jy_large.hpp index 885580d9b0..2b8aa2213b 100644 --- a/include/eve/module/bessel/detail/kernel_bessel_jy_large.hpp +++ b/include/eve/module/bessel/detail/kernel_bessel_jy_large.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/detail/kernel_bessel_k.hpp b/include/eve/module/bessel/detail/kernel_bessel_k.hpp index 26f36ae2ef..fb7dcea0f9 100644 --- a/include/eve/module/bessel/detail/kernel_bessel_k.hpp +++ b/include/eve/module/bessel/detail/kernel_bessel_k.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/detail/kernel_bessel_y.hpp b/include/eve/module/bessel/detail/kernel_bessel_y.hpp index 5b6996bd6e..bcb2b97c92 100644 --- a/include/eve/module/bessel/detail/kernel_bessel_y.hpp +++ b/include/eve/module/bessel/detail/kernel_bessel_y.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/airy.hpp b/include/eve/module/bessel/regular/airy.hpp index 1ca3fa256a..fcb87ece8f 100644 --- a/include/eve/module/bessel/regular/airy.hpp +++ b/include/eve/module/bessel/regular/airy.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/airy_ai.hpp b/include/eve/module/bessel/regular/airy_ai.hpp index 65667594a8..f10e319ac5 100644 --- a/include/eve/module/bessel/regular/airy_ai.hpp +++ b/include/eve/module/bessel/regular/airy_ai.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/airy_bi.hpp b/include/eve/module/bessel/regular/airy_bi.hpp index ba96c90bc5..1b739a321f 100644 --- a/include/eve/module/bessel/regular/airy_bi.hpp +++ b/include/eve/module/bessel/regular/airy_bi.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/bessel.hpp b/include/eve/module/bessel/regular/bessel.hpp index c71a7a2c15..79af28470a 100644 --- a/include/eve/module/bessel/regular/bessel.hpp +++ b/include/eve/module/bessel/regular/bessel.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_i0.hpp b/include/eve/module/bessel/regular/cyl_bessel_i0.hpp index 5f6e7d3721..88ea3ecdf8 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_i0.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_i0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_i1.hpp b/include/eve/module/bessel/regular/cyl_bessel_i1.hpp index eb020929ed..b58aab6ecd 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_i1.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_i1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_in.hpp b/include/eve/module/bessel/regular/cyl_bessel_in.hpp index 3408daa2ce..ac2a10d550 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_in.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_in.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_j0.hpp b/include/eve/module/bessel/regular/cyl_bessel_j0.hpp index 7d75c2a79b..5bcbf84034 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_j0.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_j0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_j1.hpp b/include/eve/module/bessel/regular/cyl_bessel_j1.hpp index ec5c68d9fe..f7981e3563 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_j1.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_j1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_jn.hpp b/include/eve/module/bessel/regular/cyl_bessel_jn.hpp index afcb691719..fa345fd6c3 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_jn.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_jn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_k0.hpp b/include/eve/module/bessel/regular/cyl_bessel_k0.hpp index 9cc0f41aa8..b0d05a3781 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_k0.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_k0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_k1.hpp b/include/eve/module/bessel/regular/cyl_bessel_k1.hpp index 97c28b0210..f096d45da6 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_k1.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_k1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_kn.hpp b/include/eve/module/bessel/regular/cyl_bessel_kn.hpp index 9cab2a41a0..5d6ab05581 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_kn.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_kn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_y0.hpp b/include/eve/module/bessel/regular/cyl_bessel_y0.hpp index 39fa753b42..cdcb1af0bb 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_y0.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_y0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_y1.hpp b/include/eve/module/bessel/regular/cyl_bessel_y1.hpp index 04abf634af..45524712d7 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_y1.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_y1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/cyl_bessel_yn.hpp b/include/eve/module/bessel/regular/cyl_bessel_yn.hpp index 94975c7a7b..c41d5bfce3 100644 --- a/include/eve/module/bessel/regular/cyl_bessel_yn.hpp +++ b/include/eve/module/bessel/regular/cyl_bessel_yn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/airy.hpp b/include/eve/module/bessel/regular/impl/airy.hpp index da360cd29b..e9bb0aaba5 100644 --- a/include/eve/module/bessel/regular/impl/airy.hpp +++ b/include/eve/module/bessel/regular/impl/airy.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/airy_ai.hpp b/include/eve/module/bessel/regular/impl/airy_ai.hpp index ca96295fac..0365d6cb26 100644 --- a/include/eve/module/bessel/regular/impl/airy_ai.hpp +++ b/include/eve/module/bessel/regular/impl/airy_ai.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/airy_bi.hpp b/include/eve/module/bessel/regular/impl/airy_bi.hpp index e966657cb9..5bf3c6f1ce 100644 --- a/include/eve/module/bessel/regular/impl/airy_bi.hpp +++ b/include/eve/module/bessel/regular/impl/airy_bi.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_i0.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_i0.hpp index 36e08375d7..5405a00e83 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_i0.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_i0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_i1.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_i1.hpp index 67d4180f5b..9ea35730cb 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_i1.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_i1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_in.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_in.hpp index 788bc05f6b..a50899ae5d 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_in.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_in.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_j0.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_j0.hpp index a577882c0b..71080e804f 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_j0.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_j0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_j1.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_j1.hpp index b22dfcc64d..4f117b723f 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_j1.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_j1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_jn.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_jn.hpp index dbb08b7689..78b9c1e708 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_jn.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_jn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_k0.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_k0.hpp index 9af2106c0e..3a988f1e07 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_k0.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_k0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_k1.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_k1.hpp index efdbeb1b9a..b1194cc845 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_k1.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_k1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_kn.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_kn.hpp index 607ba518aa..3dca626c39 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_kn.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_kn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_y0.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_y0.hpp index af04ff8409..e452cd56d3 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_y0.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_y0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_y1.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_y1.hpp index 12fc6c5353..2d870fbca6 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_y1.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_y1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/cyl_bessel_yn.hpp b/include/eve/module/bessel/regular/impl/cyl_bessel_yn.hpp index 965287fbf4..24d036adec 100644 --- a/include/eve/module/bessel/regular/impl/cyl_bessel_yn.hpp +++ b/include/eve/module/bessel/regular/impl/cyl_bessel_yn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/sph_bessel_j0.hpp b/include/eve/module/bessel/regular/impl/sph_bessel_j0.hpp index 7621110032..c6db382538 100644 --- a/include/eve/module/bessel/regular/impl/sph_bessel_j0.hpp +++ b/include/eve/module/bessel/regular/impl/sph_bessel_j0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/sph_bessel_jn.hpp b/include/eve/module/bessel/regular/impl/sph_bessel_jn.hpp index 367c3e9fb1..0eed884acd 100644 --- a/include/eve/module/bessel/regular/impl/sph_bessel_jn.hpp +++ b/include/eve/module/bessel/regular/impl/sph_bessel_jn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/sph_bessel_y0.hpp b/include/eve/module/bessel/regular/impl/sph_bessel_y0.hpp index 6a5595ddcd..a98ca662ce 100644 --- a/include/eve/module/bessel/regular/impl/sph_bessel_y0.hpp +++ b/include/eve/module/bessel/regular/impl/sph_bessel_y0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/sph_bessel_y1.hpp b/include/eve/module/bessel/regular/impl/sph_bessel_y1.hpp index 0d2ef9dafa..92175ce445 100644 --- a/include/eve/module/bessel/regular/impl/sph_bessel_y1.hpp +++ b/include/eve/module/bessel/regular/impl/sph_bessel_y1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/impl/sph_bessel_yn.hpp b/include/eve/module/bessel/regular/impl/sph_bessel_yn.hpp index 5cef77a2f5..320f3ba3f6 100644 --- a/include/eve/module/bessel/regular/impl/sph_bessel_yn.hpp +++ b/include/eve/module/bessel/regular/impl/sph_bessel_yn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/sph_bessel_j0.hpp b/include/eve/module/bessel/regular/sph_bessel_j0.hpp index 586377ccdc..caa0bf94f9 100644 --- a/include/eve/module/bessel/regular/sph_bessel_j0.hpp +++ b/include/eve/module/bessel/regular/sph_bessel_j0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/sph_bessel_j1.hpp b/include/eve/module/bessel/regular/sph_bessel_j1.hpp index 94c408bc3e..78f3455aea 100644 --- a/include/eve/module/bessel/regular/sph_bessel_j1.hpp +++ b/include/eve/module/bessel/regular/sph_bessel_j1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/sph_bessel_jn.hpp b/include/eve/module/bessel/regular/sph_bessel_jn.hpp index 06819aa412..5b12bf4130 100644 --- a/include/eve/module/bessel/regular/sph_bessel_jn.hpp +++ b/include/eve/module/bessel/regular/sph_bessel_jn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/sph_bessel_y0.hpp b/include/eve/module/bessel/regular/sph_bessel_y0.hpp index 448b1b4ed6..323943347b 100644 --- a/include/eve/module/bessel/regular/sph_bessel_y0.hpp +++ b/include/eve/module/bessel/regular/sph_bessel_y0.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/sph_bessel_y1.hpp b/include/eve/module/bessel/regular/sph_bessel_y1.hpp index f596fdd6f5..12c6751833 100644 --- a/include/eve/module/bessel/regular/sph_bessel_y1.hpp +++ b/include/eve/module/bessel/regular/sph_bessel_y1.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/bessel/regular/sph_bessel_yn.hpp b/include/eve/module/bessel/regular/sph_bessel_yn.hpp index f007d0cc94..a3c30c30bf 100644 --- a/include/eve/module/bessel/regular/sph_bessel_yn.hpp +++ b/include/eve/module/bessel/regular/sph_bessel_yn.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/combinatorial.hpp b/include/eve/module/combinatorial.hpp index b5676188ba..50a8c6fdcf 100644 --- a/include/eve/module/combinatorial.hpp +++ b/include/eve/module/combinatorial.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/combinatorial/regular/combinatorial.hpp b/include/eve/module/combinatorial/regular/combinatorial.hpp index 396c194db6..45ac992987 100644 --- a/include/eve/module/combinatorial/regular/combinatorial.hpp +++ b/include/eve/module/combinatorial/regular/combinatorial.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core.hpp b/include/eve/module/core.hpp index 34b731c892..4730caf54e 100644 --- a/include/eve/module/core.hpp +++ b/include/eve/module/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/compress/compress.hpp b/include/eve/module/core/compress/compress.hpp index 921fb45683..e9d7b59112 100644 --- a/include/eve/module/core/compress/compress.hpp +++ b/include/eve/module/core/compress/compress.hpp @@ -47,8 +47,8 @@ namespace eve //! 5) Those chunks are combined together in another tuple. //! //! List of people who's work was instrumental for building this: - //! @aqrit user on Stack Overflow - //! Peter Cordes + //! - `@aqrit` user on Stack Overflow + //! - Peter Cordes //! //! Throughout the code of compress there are references to what was taken from where //! as well as explanations. diff --git a/include/eve/module/core/compress/core.hpp b/include/eve/module/core/compress/core.hpp index a38f2ea3a6..1330ed2cdc 100644 --- a/include/eve/module/core/compress/core.hpp +++ b/include/eve/module/core/compress/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/constant/half.hpp b/include/eve/module/core/constant/half.hpp index 531efd9c42..9b4e6e5fc5 100644 --- a/include/eve/module/core/constant/half.hpp +++ b/include/eve/module/core/constant/half.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/decorator/core.hpp b/include/eve/module/core/decorator/core.hpp index 05623eb268..bbcd945dec 100644 --- a/include/eve/module/core/decorator/core.hpp +++ b/include/eve/module/core/decorator/core.hpp @@ -1,9 +1,9 @@ //====================================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //====================================================================================================================== #pragma once diff --git a/include/eve/module/core/detail/core.hpp b/include/eve/module/core/detail/core.hpp index 2d12b70404..8eb6f990e9 100644 --- a/include/eve/module/core/detail/core.hpp +++ b/include/eve/module/core/detail/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/fuzzy/core.hpp b/include/eve/module/core/fuzzy/core.hpp index aab4efe6d7..6f66fd8e55 100644 --- a/include/eve/module/core/fuzzy/core.hpp +++ b/include/eve/module/core/fuzzy/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/named_shuffles/core.hpp b/include/eve/module/core/named_shuffles/core.hpp index 10b0ffe99c..f361d9ecf7 100644 --- a/include/eve/module/core/named_shuffles/core.hpp +++ b/include/eve/module/core/named_shuffles/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/named_shuffles/named_shuffle_utils.hpp b/include/eve/module/core/named_shuffles/named_shuffle_utils.hpp index 60769b816a..185bf3eb96 100644 --- a/include/eve/module/core/named_shuffles/named_shuffle_utils.hpp +++ b/include/eve/module/core/named_shuffles/named_shuffle_utils.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/numeric/core.hpp b/include/eve/module/core/numeric/core.hpp index 39da2f1376..926c175b6b 100644 --- a/include/eve/module/core/numeric/core.hpp +++ b/include/eve/module/core/numeric/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/pedantic/core.hpp b/include/eve/module/core/pedantic/core.hpp index 8389b84aa7..93db16e520 100644 --- a/include/eve/module/core/pedantic/core.hpp +++ b/include/eve/module/core/pedantic/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/pedantic/impl/ldexp.hpp b/include/eve/module/core/pedantic/impl/ldexp.hpp index 8f8ff6e70c..5615127ab2 100644 --- a/include/eve/module/core/pedantic/impl/ldexp.hpp +++ b/include/eve/module/core/pedantic/impl/ldexp.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/promote/core.hpp b/include/eve/module/core/promote/core.hpp index 91328555dc..06fc70b6ea 100644 --- a/include/eve/module/core/promote/core.hpp +++ b/include/eve/module/core/promote/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/regular/core.hpp b/include/eve/module/core/regular/core.hpp index 1c0fb11efa..2b51d602cb 100644 --- a/include/eve/module/core/regular/core.hpp +++ b/include/eve/module/core/regular/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/regular/deinterleave_groups.hpp b/include/eve/module/core/regular/deinterleave_groups.hpp index 54f401b9ab..be022155a1 100644 --- a/include/eve/module/core/regular/deinterleave_groups.hpp +++ b/include/eve/module/core/regular/deinterleave_groups.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/regular/impl/rsqrt.hpp b/include/eve/module/core/regular/impl/rsqrt.hpp index 1beb6885f7..684d007aaa 100644 --- a/include/eve/module/core/regular/impl/rsqrt.hpp +++ b/include/eve/module/core/regular/impl/rsqrt.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/regular/impl/simd/x86/rotr.hpp b/include/eve/module/core/regular/impl/simd/x86/rotr.hpp index 7546463c06..1fce52e371 100644 --- a/include/eve/module/core/regular/impl/simd/x86/rotr.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/rotr.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/regular/impl/simd/x86/scan.hpp b/include/eve/module/core/regular/impl/simd/x86/scan.hpp index b26eda40ac..362cd475c3 100644 --- a/include/eve/module/core/regular/impl/simd/x86/scan.hpp +++ b/include/eve/module/core/regular/impl/simd/x86/scan.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/regular/is_less_equal.hpp b/include/eve/module/core/regular/is_less_equal.hpp index b16d486b31..1b99cf6fd2 100644 --- a/include/eve/module/core/regular/is_less_equal.hpp +++ b/include/eve/module/core/regular/is_less_equal.hpp @@ -58,23 +58,23 @@ namespace eve //! The call `eve;::is_less_equal[mask](x,y)` provides a masked version of `eve::is_less_equal` //! which is equivalent to `if_else (mask, is_less_equal(x), eve::false( eve::as(x,y)))`. //! -//! **Example** +//! **Example** //! -//! @godbolt{doc/core/masked/is_less_equal.cpp} +//! @godbolt{doc/core/masked/is_less_equal.cpp} //! -//! * `almost` +//! * `almost` //! //! The expression `definitely(is_less_equal)(x, y, t)` where `x` and `y` must be -//! floating point values, evals to true if and only if `x` is almost less than `y`. -//! This means that: +//! floating point values, evaluates to true if and only if `x` is almost less than `y`. +//! This means that: //! //! - if `t` is a floating_value then \f$x < y + t \max(|x|, |y|)\f$ //! - if `t` is a positive integral_value then \f$x < \mbox{next}(y, t)\f$; //! - if `t` is omitted then the tolerance `t` default to `3*eps(as(x))`. //! -//! **Example** +//! **Example** //! -//! @godbolt{doc/core/fuzzy/is_less_equal.cpp} +//! @godbolt{doc/core/fuzzy/is_less_equal.cpp} //! @} //================================================================================================ EVE_MAKE_CALLABLE(is_less_equal_, is_less_equal); diff --git a/include/eve/module/core/regular/is_not_equal.hpp b/include/eve/module/core/regular/is_not_equal.hpp index daeaad98dc..d914bedde3 100644 --- a/include/eve/module/core/regular/is_not_equal.hpp +++ b/include/eve/module/core/regular/is_not_equal.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/core/regular/is_not_finite.hpp b/include/eve/module/core/regular/is_not_finite.hpp index f2bd4dc2ff..7ad888250e 100644 --- a/include/eve/module/core/regular/is_not_finite.hpp +++ b/include/eve/module/core/regular/is_not_finite.hpp @@ -55,7 +55,7 @@ namespace eve //! //! * Masked Call //! -//! The call `eve;::is_not_finite[mask](x)` provides a masked version of `eve::is_not_finite` +//! The call `is_not_finite[mask](x)` provides a masked version of eve::is_not_finite //! which is equivalent to `if_else (mask, is_not_finite(x), eve::false( eve::as(x)))`. //! //! **Example** diff --git a/include/eve/module/core/regular/is_not_less_equal.hpp b/include/eve/module/core/regular/is_not_less_equal.hpp index b60a3e903e..b0b3800574 100644 --- a/include/eve/module/core/regular/is_not_less_equal.hpp +++ b/include/eve/module/core/regular/is_not_less_equal.hpp @@ -14,9 +14,9 @@ namespace eve //================================================================================================ //! @addtogroup core_predicates //! @{ -//! @var is_less_equal +//! @var is_not_less_equal //! @brief Returns a logical true if and only if the element value of the first parameter is -//! less or equal to the second one. +//! not less or equal to the second one. //! //! **Defined in Header** //! @@ -30,7 +30,7 @@ namespace eve //! namespace eve //! { //! template< eve::value T, eve::value U > -//! eve::as_logical is_less_equal(T x,U y) noexcept; +//! eve::as_logical is_not_less_equal(T x,U y) noexcept; //! } //! @endcode //! @@ -40,36 +40,37 @@ namespace eve //! //! **Return value** //! -//! The call `eve::is_less_equal(x,y)` is semantically equivalent to `!(x <= y)`: +//! The call `eve::is_not_less_equal(x,y)` is semantically equivalent to `!(x <= y)`: //! //! @groupheader{Example} //! -//! @godbolt{doc/core/regular/is_less_equal.cpp} +//! @godbolt{doc/core/regular/is_not_less_equal.cpp} //! //! @groupheader{Semantic Modifiers} //! //! * Masked Call //! -//! The call `eve;::is_less_equal[mask](x,y)` provides a masked version of `eve::is_less_equal` -//! which is equivalent to `if_else (mask, is_less_equal(x), eve::false( eve::as(x,y)))`. +//! The call `eve;::is_not_less_equal[mask](x,y)` provides a masked version of `eve::is_not_less_equal` +//! which is equivalent to `if_else (mask, is_not_less_equal(x), eve::false( eve::as(x,y)))`. //! //! **Example** //! -//! @godbolt{doc/core/masked/is_less_equal.cpp} +//! @godbolt{doc/core/masked/is_not_less_equal.cpp} //! //! * `definitely` //! //! The expression `definitely(is_not_less_equal)(x, y, t)` where `x` and `y` must be //! floating point values, evaluates to true if and only if and only if `x` is definitely not less -//! or equal to `y`. This means that the pair `x, y` is unordered or: +//! or equal to `y`. //! -//! * if `t` is a floating_value then \f$(x \ge y + t \max(|x|, |y|))\f$ -//! * if `t` is a positive integral_value then \f$(x \ge \mbox{next}(y, t)\f$; -//! * if `t` is omitted then the tolerance `t` default to `3*eps(as(x))`. +//! This means that the pair `x, y` is unordered: +//! - if `t` is a floating_value then \f$(x \ge y + t \max(|x|, |y|))\f$ +//! - if `t` is a positive integral_value then \f$(x \ge \mbox{next}(y, t)\f$; +//! - if `t` is omitted then the tolerance `t` default to `3*eps(as(x))`. //! //! **Example** //! -//! @godbolt{doc/core/fuzzy/is_less_equal.cpp} +//! @godbolt{doc/core/fuzzy/is_not_less_equal.cpp} //! @} //================================================================================================ EVE_MAKE_CALLABLE(is_not_less_equal_, is_not_less_equal); diff --git a/include/eve/module/core/regular/quick_two_sub.hpp b/include/eve/module/core/regular/quick_two_sub.hpp index 46ef531842..d8ea7ec850 100644 --- a/include/eve/module/core/regular/quick_two_sub.hpp +++ b/include/eve/module/core/regular/quick_two_sub.hpp @@ -12,7 +12,7 @@ namespace eve { //================================================================================================ -//! @subtogroup core_accuracy +//! @addtogroup core_accuracy //! @{ //! @var two_sub //! @brief Computes the [elementwise](@ref glossary_elementwise) diff --git a/include/eve/module/core/regular/sort.hpp b/include/eve/module/core/regular/sort.hpp index e31ada6a22..7b5f8da651 100644 --- a/include/eve/module/core/regular/sort.hpp +++ b/include/eve/module/core/regular/sort.hpp @@ -44,7 +44,7 @@ namespace eve //! https://opensource.googleblog.com/2022/06/Vectorized%20and%?20performance%20portable%20Quicksort.html //! * A Question of Sorts //! http://seven-degrees-of-freedom.blogspot.com/2010/07/question-of-sorts.html -//! * Kyle Hegeman (@khegeman) +//! * Kyle Hegeman (`@khegeman`) //! https://github.com/khegeman/floki //! //! @groupheader{Callable Signatures} diff --git a/include/eve/module/core/regular/two_sub.hpp b/include/eve/module/core/regular/two_sub.hpp index e732ad1c62..6a59e50ed8 100644 --- a/include/eve/module/core/regular/two_sub.hpp +++ b/include/eve/module/core/regular/two_sub.hpp @@ -12,7 +12,7 @@ namespace eve { //================================================================================================ -//! @subtogroup core_accuracy +//! @addtogroup core_accuracy //! @{ //! @var two_sub //! @brief Computes the [elementwise](@ref glossary_elementwise) diff --git a/include/eve/module/core/saturated/core.hpp b/include/eve/module/core/saturated/core.hpp index 8fb0e90fb9..c4cb032ac2 100644 --- a/include/eve/module/core/saturated/core.hpp +++ b/include/eve/module/core/saturated/core.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/elliptic.hpp b/include/eve/module/elliptic.hpp index 10acb4462d..aeb10bdf84 100644 --- a/include/eve/module/elliptic.hpp +++ b/include/eve/module/elliptic.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/elliptic/elliptic.hpp b/include/eve/module/elliptic/elliptic.hpp index fd32d27b02..2bcf0d71f2 100644 --- a/include/eve/module/elliptic/elliptic.hpp +++ b/include/eve/module/elliptic/elliptic.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/elliptic/regular/elliptic.hpp b/include/eve/module/elliptic/regular/elliptic.hpp index a5c499981d..e682a08572 100644 --- a/include/eve/module/elliptic/regular/elliptic.hpp +++ b/include/eve/module/elliptic/regular/elliptic.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/math.hpp b/include/eve/module/math.hpp index 18106bf11e..7bb699cff0 100644 --- a/include/eve/module/math.hpp +++ b/include/eve/module/math.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/math/decorator/math.hpp b/include/eve/module/math/decorator/math.hpp index c56f965eba..4dcafa72c0 100644 --- a/include/eve/module/math/decorator/math.hpp +++ b/include/eve/module/math/decorator/math.hpp @@ -1,9 +1,9 @@ //====================================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //====================================================================================================================== #pragma once diff --git a/include/eve/module/math/pedantic/math.hpp b/include/eve/module/math/pedantic/math.hpp index a7d8ad088b..4464193b41 100644 --- a/include/eve/module/math/pedantic/math.hpp +++ b/include/eve/module/math/pedantic/math.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/math/regular/impl/rsqrt.hpp b/include/eve/module/math/regular/impl/rsqrt.hpp index 75fe08834b..cf15a23253 100644 --- a/include/eve/module/math/regular/impl/rsqrt.hpp +++ b/include/eve/module/math/regular/impl/rsqrt.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/math/regular/math.hpp b/include/eve/module/math/regular/math.hpp index a5e891b161..2fc58360c4 100644 --- a/include/eve/module/math/regular/math.hpp +++ b/include/eve/module/math/regular/math.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/polynomial/detail/horner_impl.hpp b/include/eve/module/polynomial/detail/horner_impl.hpp index ef72e95098..036d332e9b 100644 --- a/include/eve/module/polynomial/detail/horner_impl.hpp +++ b/include/eve/module/polynomial/detail/horner_impl.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/polynomial/detail/reverse_horner_impl.hpp b/include/eve/module/polynomial/detail/reverse_horner_impl.hpp index 8af7d5d9ac..d41b0e28c8 100644 --- a/include/eve/module/polynomial/detail/reverse_horner_impl.hpp +++ b/include/eve/module/polynomial/detail/reverse_horner_impl.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/polynomial/detail/tchebeval_impl.hpp b/include/eve/module/polynomial/detail/tchebeval_impl.hpp index 44f5dd9e82..ba032444a3 100644 --- a/include/eve/module/polynomial/detail/tchebeval_impl.hpp +++ b/include/eve/module/polynomial/detail/tchebeval_impl.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/polynomial/numeric/polynomial.hpp b/include/eve/module/polynomial/numeric/polynomial.hpp index 8148224ae5..d8cdd4c940 100644 --- a/include/eve/module/polynomial/numeric/polynomial.hpp +++ b/include/eve/module/polynomial/numeric/polynomial.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/polynomial/pedantic/polynomial.hpp b/include/eve/module/polynomial/pedantic/polynomial.hpp index fb4525c0e6..00f92d5c0c 100644 --- a/include/eve/module/polynomial/pedantic/polynomial.hpp +++ b/include/eve/module/polynomial/pedantic/polynomial.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/polynomial/regular/polynomial.hpp b/include/eve/module/polynomial/regular/polynomial.hpp index 134674e30c..00ea133524 100644 --- a/include/eve/module/polynomial/regular/polynomial.hpp +++ b/include/eve/module/polynomial/regular/polynomial.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/module/special.hpp b/include/eve/module/special.hpp index eaf17f4cea..cf1d84c287 100644 --- a/include/eve/module/special.hpp +++ b/include/eve/module/special.hpp @@ -1,9 +1,9 @@ //================================================================================================== -/** +/* EVE - Expressive Vector Engine Copyright : EVE Project Contributors SPDX-License-Identifier: BSL-1.0 -**/ +*/ //================================================================================================== #pragma once diff --git a/include/eve/traits.hpp b/include/eve/traits.hpp index 6d3c297fe5..ec4e3bf13a 100644 --- a/include/eve/traits.hpp +++ b/include/eve/traits.hpp @@ -8,8 +8,6 @@ #pragma once //================================================================================================== -//! @addtogroup simd_types -//! @{ //! @defgroup traits Type traits //! @brief Type traits for SIMD related types and functions //! @@ -17,7 +15,6 @@ //! types that are accessible through the following traits. //! //! **Convenience header:** @code{.cpp} #include @endcode -//! @} //================================================================================================== #include diff --git a/include/eve/traits/invoke/decorator.hpp b/include/eve/traits/invoke/decorator.hpp index e3511cc905..da36a7706a 100644 --- a/include/eve/traits/invoke/decorator.hpp +++ b/include/eve/traits/invoke/decorator.hpp @@ -37,20 +37,6 @@ namespace eve::detail namespace eve { - //================================================================================================ - //! @addtogroup invoke - //! @{ - //================================================================================================ - - //================================================================================================ - //! @struct decorators - //! @brief Overloading error reporting helper - //! - //! eve::decorators gathers decorators and masks that user could apply on a eve::callable to modify - //! its semantic. - //! - //! @tparam Settings Internal settings type - //================================================================================================ template struct decorators : Settings { @@ -67,21 +53,6 @@ namespace eve template decorators(rbr::settings const&) -> decorators>; - //================================================================================================ - //! @struct support_options - //! @brief Make an eve::callable responsive to decorators and masks - //! - //! eve::callable can inherits from eve::support_options to gain the ability to supports - //! user-provided decorators and masks to modify its semantic. - //! - //! Decorators and masks are gathered via the overloaded `operator[]` that eve::support_options - //! provides. Decorators and masks can then be chained via multiple application of said operator. - //! - //! The handling of those decorators and masks are left to the implementation of the callable - //! itself. - //! - //! @tparam Tag eve::callable using eve::support_options - //================================================================================================ template struct support_options { template struct fn @@ -123,20 +94,17 @@ namespace eve Settings opts; }; - //! @brief Modify the semantic of current eve::callable by a decorator template EVE_FORCEINLINE auto operator[](Options const& o) const { return fn{decorators{o}}; } - //! @brief Modify the semantic of current eve::callable by a mask EVE_FORCEINLINE auto operator[](conditional_expr auto m) const { return (*this)[detail::mask = m]; } - //! @brief Modify the semantic of current eve::callable by a boolean mask template T> EVE_FORCEINLINE constexpr auto operator[](T c) const noexcept { @@ -145,17 +113,8 @@ namespace eve } }; - //================================================================================================ - //! @} - //================================================================================================ } -//================================================================================================== -// Basic hook for tag_invoke that just forward to the proper deferred call if possible when dealing -// callable being decorated. -// This specialization lives in eve::tags to be found by ADL as tag themselves will be defines -// in eve::tags. -//================================================================================================== namespace eve::tags { template diff --git a/include/eve/traits/invoke/protocol.hpp b/include/eve/traits/invoke/protocol.hpp index 9e5ea9a8db..f163c3fa68 100644 --- a/include/eve/traits/invoke/protocol.hpp +++ b/include/eve/traits/invoke/protocol.hpp @@ -13,40 +13,22 @@ namespace eve { -//================================================================================================== -//! @addtogroup invoke -//! @{ -//================================================================================================== - -//================================================================================================== -//! @struct unsupported_call -//! @brief Overloading error reporting helper -//! -//! eve::unsupported_call is used as a return type when an **EVE** @callable is called with some -//! incorrect parameter types or quantity. Its template parameters embed the tag of the @callable -//! along with the parameter types that caused the error. -//! -//! @tparam Signature Function type describing the erroneous call -//================================================================================================== template struct unsupported_call { constexpr operator bool() const noexcept { return false; } }; -//! @brief Tag type for elementwise @callable properties struct elementwise { using elementwise_tag = void; }; -//! @brief Tag type for reduction @callable properties struct reduction { using reduction_tag = void; }; -//! @brief Tag type for constant @callable properties struct constant { using constant_tag = void; @@ -55,59 +37,18 @@ struct constant template concept callable_entity = requires(T) { typename T::callable_tag_type; }; -//================================================================================================== -//! @concept deferred_callable -//! @brief **EVE** deferred callable -//! -//! A type `T` satisfies eve::deferred_callable_tag if and only if it is a eve::callable and -//! provides the required static function `deferred_call`. -//! -//! @tparam T T type for the @callable to check -//================================================================================================== template concept deferred_callable = requires(T) { typename T::deferred_callable_tag; }; -//================================================================================================== -//! @concept elementwise_entity -//! @brief **EVE** callable with elementwise semantic -//! -//! A type `T` satisfies eve::elementwise_callable if and only if it is an eve::callable that -//! inherits from eve::elementwise. -//! -//! @tparam T T type for the @callable to check -//================================================================================================== template concept elementwise_entity = callable_entity && requires(T) { typename T::elementwise_tag; }; -//================================================================================================== -//! @concept reduction_entity -//! @brief **EVE** callable with reduction semantic -//! -//! A type `T` satisfies eve::reduction_callable if and only if it is an eve::callable that -//! inherits from eve::reduction. -//! -//! @tparam T T type for the @callable to check -//================================================================================================== template concept reduction_entity = callable_entity && requires(T) { typename T::reduction_tag; }; -//================================================================================================== -//! @concept constant_entity -//! @brief **EVE** callable with constant semantic -//! -//! A type `T` satisfies eve::constant_callable if and only if it is an eve::callable that -//! inherits from eve::constant. -//! -//! @tparam T T type for the @callable to check -//================================================================================================== template concept constant_entity = callable_entity && requires(T) { typename T::constant_tag; }; -//================================================================================================== -// All callable can have their type streamed to an output stream -// Other project can use tags that inherit from an EVE tag family type or add -// `using eve::operator<<;` to their own tags namespace to benefit from this. -//================================================================================================== template std::ostream& operator<<(std::ostream& os, Tag const&) { @@ -144,10 +85,6 @@ noexcept(noexcept(Tag::deferred_call(arch, EVE_FWD(x)...))) } \ /**/ -//================================================================================================== -//! @} -//================================================================================================== - //================================================================================================== // Helpers macros // NOTE: Those macros are here for convenience but are no way mandatory to use in either EVE, any diff --git a/include/eve/traits/invoke/tag_invoke.hpp b/include/eve/traits/invoke/tag_invoke.hpp index e0a725a537..98f583a28c 100644 --- a/include/eve/traits/invoke/tag_invoke.hpp +++ b/include/eve/traits/invoke/tag_invoke.hpp @@ -36,13 +36,6 @@ struct invoker namespace eve { -//================================================================================================== -//! @addtogroup traits -//! @{ -//! @defgroup invoke Generalized Tag Invoke Protocol -//! @brief This module defines all the **EVE** generalized tag_invoke protocol infrastructure. -//! @} -//================================================================================================== namespace callable_ns { @@ -51,34 +44,13 @@ namespace callable_ns using namespace callable_ns; -//================================================================================================== -//! @addtogroup invoke -//! @{ -//================================================================================================== - -//================================================================================================== -//! @concept tag_invocable -//! @brief Type supporting the tag_invoke protocol -//! -//! A type `Tag` satisfies eve::tag_invocable if and only if it can be used in a call to -//! eve::tag_invoke. -//! -//! @tparam Tag Tag type for the @callable to check -//! @tparam Args Arguments used in the call. -//================================================================================================== template concept tag_invocable = requires(Tag&& tag, Args&&...args) { eve::tag_invoke(EVE_FWD(tag), EVE_FWD(args)...); }; -//! @brief Compute the return type of a eve::tag_invoke call. template using tag_invoke_result = std::invoke_result_t; -//! @brief Compute the type of an instance of an **EVE** @callable. template using tag_of = std::decay_t; -//================================================================================================== -//! @} -//================================================================================================== - } diff --git a/include/eve/traits/overload/supports.hpp b/include/eve/traits/overload/supports.hpp index de8075b550..4975f6c623 100644 --- a/include/eve/traits/overload/supports.hpp +++ b/include/eve/traits/overload/supports.hpp @@ -97,7 +97,10 @@ namespace eve //! @} //==================================================================================================================== template< typename OptionsValues, typename... Options> - struct decorated_with : OptionsValues, Options... + struct decorated_with +#if !defined(EVE_DOXYGEN_INVOKED) + : OptionsValues, Options... +#endif { using Options::process...; diff --git a/include/eve/traits/product_type.hpp b/include/eve/traits/product_type.hpp index 034b18c2f3..ef70c5a42d 100644 --- a/include/eve/traits/product_type.hpp +++ b/include/eve/traits/product_type.hpp @@ -15,16 +15,13 @@ #include //================================================================================================== -//! @addtogroup traits -//! @{ -//! @defgroup struct Structured Types Management -//! @brief Traits and functions to handle user defined types in SIMD registers +//! @defgroup struct Structured Types Management +//! @brief Traits and functions to handle user defined types in SIMD registers //! -//! **EVE** provides various elements to simplify the management of user-defined structures -//! as vectorized types. +//! **EVE** provides various elements to simplify the management of user-defined structures +//! as vectorized types. //! -//! **Convenience header:** @code{.cpp} #include @endcode -//! @} +//! **Convenience header:** @code{.cpp} #include @endcode //================================================================================================== namespace eve