E.V.E
v2022.09.01
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 Ceve::abi< Type, Lanes >Find proper ABI for Type/Lanes pair
 Ceve::aligned_allocator< T, Lanes >Standard-compliant allocator handling the allocation and deallocation of segment of aligned memory
 Ceve::aligned_ptr< Type, Lanes >Wrapper for non-owning aligned pointers
 Ceve::as< T >Lightweight type-wrapper
 Ceve::as_pattern< F >Formula-based pattern holder
 Cbackward_iteratorShorthand for eve::algo::views::backward_iterator
 Ceve::algo::views::backward_iterator< I >An adapter over a relaxed_iterator that replaces going forward with going backward. For semantic of reverse you should use eve::algo::views::reverse this is just a helper to do backward algorithms. Should be created by a call to eve::algo::views::backward
 Cbackward_rangeShorthand for eve::algo::views::backward_range
 Ceve::algo::views::backward_range< R >An adapter over a relaxed_range that replaces going forward with going backward. For semantic of reverse you should use eve::algo::views::reverse this is just a helper to do backward algorithms. Should be created by a call to eve::algo::views::backward
 Ceve::common_compatible< Ts >Computes the type compatible with a list of values
 Ceve::common_type< Ts >Computes a type that can represent all values in a list of types
 Cconverting_iteratorShorthand for eve::algo::views::converting_iterator
 Ceve::algo::views::converting_iterator< I, T >An adapter over a relaxed_iterator that converts it's values to T. Should be created via convert
 Cconverting_rangeShorthand for eve::algo::views::converting_range
 Ceve::algo::views::converting_range< R, T >An adapter over a relaxed_range that converts it's values to T. Should be created via convert
 Ceve::element_type< T >Extracts the scalar part of a type
 Ceve::fixed< Cardinal >SIMD register cardinal type
 Ceve::fixed< ABI::template expected_cardinal< pointer_traits< T >::value_type > >
 Ceve::expected_cardinal< pointer_traits< T >::value_type >
 Ceve::fixed< ABI::template expected_cardinal< Type > >
 Ceve::expected_cardinal< Type, ABI >Computes the expected cardinal of a given type
 Ceve::fixed< ABI::template fundamental_cardinal< Type > >
 Ceve::fundamental_cardinal< Type, ABI >Computes the fundamental cardinal of a given type
 Ceve::if_< C >Extensible wrapper for SIMD conditional
 Ceve::ignore_all_Conditional expression selecting no lane from a eve::simd_value
 Ceve::ignore_extremaConditional expression ignoring lanes at both extrema of a eve::simd_value
 Ceve::ignore_firstConditional expression ignoring the k first lanes from a eve::simd_value
 Ceve::ignore_lastConditional expression ignoring the k last lanes from a eve::simd_value
 Ceve::ignore_none_Conditional expression selecting all lanes from a eve::simd_value
 Ceve::algo::views::iota_with_step_iterator< T, N >An iterator for all values from base to offset. Should be created with iota_with_step or iota. Not OK to compare two iterators generated from a different base
 Ciota_with_step_iteratorShorthand for eve::algo::views::iota_with_step_iterator
 Ceve::keep_betweenConditional expression keeping all lanes between two position
 Ceve::keep_firstConditional expression selecting the k first lanes from a eve::simd_value
 Ceve::keep_lastConditional expression keeping the k last lanes from a eve::simd_value
 Ceve::logical< T >Wrapper for SIMD compatible logical types
 Ceve::algo::views::map_iterator< I, LoadOp, StoreOp >An iterator for map, map_convert. Should be created with one of those functions. If one of the operations is not avaliable, it's eve::algo::nothing_t
 Cmap_iteratorShorthand for eve::algo::views::map_iterator
 Cmap_load_opRequirement for the operation applied on read/load in map. should work on both scalar and wide for the underlying iterator for any cardinal
 Ceve::algo::views::map_range< R, LoadOp, StoreOp >A range for map, map_covnert. Should be created via one of those functions. If the store operation is not avaliable, it's eve::algo::nothing_t
 Cmap_rangeShorthand for eve::algo::views::map_range
 Cmap_store_opRequirement for the operation applied on store in map. should work on both scalar and wide for the underlying iterator for any cardinal
 Ceve::algo::nothing_tType to indicate that there is nothing there
 Ceve::or_< C, V >Conditional/Alternative wrapper
 Ceve::pattern_t< I >Shuffling pattern
 Ceve::platformPlatform specific constexpr information
 Ceve::algo::ptr_iterator< Ptr, Cardinal >An eve iterator on top of pointer or aligned pointer
 Ceve::algo::range_ref_wrapper< Rng >Non_owning_range wrapper around owning range. Should be created via range_ref
 Ceve::aligned_allocator< T, Lanes >::rebind< U >Convert an aligned_allocator type to another
 Crelaxed_iteratorAnything that can be reasonably converted to an iterator: std::contigious_iterator, eve::algo::iterator, aligned_ptr. Defined as being totally_ordered, having +/- like an iterator And preprocess_range(eve::algo::traits{}, I, I) should work. eve::unalign(I) should be OK
 Crelaxed_rangeAny class that has begin/end and end is a relaxed_sentinel_for begin. User can customize preprocess_range for a relaxed_range in case there is more information to get from there then would be from just begin/end
 Crelaxed_sentinel_forTwo relaxed iterators form a valid relaxed range pair. preprocess_range has to be defined for the pair. Example: int const* is a relaxed_sentinel_for aligned_ptr<int const>
 Ceve::algo::views::reverse_iterator< I >An adapter over a relaxed_iterator that allows to iterate in the reverse order. Should be created by a call to eve::algo::views::reverse
 Creverse_iteratorShorthand for eve::algo::views::reverse_iterator
 Ceve::algo::views::reverse_range< R >An adapter over a relaxed_range that allows to iterate in the reverse order. Should be created by a call to eve::algo::views::reverse. NOTE: at this point convert(reverse) will not do anything smart
 Creverse_rangeShorthand for eve::algo::views::reverse_range
 Ceve::scalar_cardinalCardinal type for scalar values
 Ceve::cardinal< Type >Computes the cardinal of a given type
 Ceve::soa_ptr< Ptrs >Low level abstruction that is like a tuple of pointers to parallel arrays. We think that in code one should use views::zip_iterator instead, it can do everything soa_ptr can and more. We are still trying to figure out how/where these abstructions should live
 Ceve::stack_buffer< T >A stack buffer for a simd-value
 Ceve::struct_support< Self, Fields >CRTP base-class to declare operators for user-defined product type
 Ceve::struct_support< complex< Type >, Type, Type >
 Ceve::complex< Type >SIMD-compatible representation of complex numbers
 Ceve::supports_like< Wrapper, Self >Opt-in traits for eve::like concept compliance
 Ceve::supports_ordering< Type >Register a user-defined type to supports ordering
 Ceve::top_bits< Logical >The cheapest to get bitset for simd logical
 Ceve::detail::wide_storage< as_logical_register_t< Type, Cardinal, abi_t< Type, Cardinal > > >
 Ceve::logical< wide< Type, Cardinal > >Wrapper for SIMD registers holding logical types with compile-time size
 Ceve::detail::wide_storage< as_register_t< Type, Cardinal, abi_t< Type, Cardinal > > >
 Ceve::wide< Type, Cardinal >Wrapper for SIMD registers
 Ceve::detail::wide_storage< as_register_t< Type, N, abi_t< Type, N > > >
 Ceve::wide< value_type_t< I >, N >
 Ceve::wide< value_type, N >
 Ceve::algo::views::zip_iterator< Is >A relaxed_iterator on top of multiple relaxed_iterator. If all of the components are iterator they have to have the same cardinal and the zip_iterator will model iterator. Should probably never be created directly, use zip
 Czip_iteratorShorthand for eve::algo::views::zip_iterator
 Ceve::algo::views::zip_range< Rngs >A relaxed_range on top of multiple relaxed_range. All individual components have to have the same size. Should probably never be created directly, instead use zip
 Czip_rangeShorthand for eve::algo::views::zip_range