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