The base class to all one dimensional containers and views in the VCTR project.
More...
|
constexpr size_t | size () const noexcept |
| Returns the number of elements.
|
|
constexpr bool | empty () const noexcept |
| Checks whether the container is empty.
|
|
constexpr size_t | sizeInBytes () const noexcept |
| Returns the container size in bytes.
|
|
constexpr size_t | backIdx () const noexcept |
| Returns the index referring to the last element in the vector.
|
|
constexpr auto & | operator[] (size_t i) |
| Returns a reference to element i.
|
|
constexpr auto & | operator[] (size_t i) const |
| Returns a reference to element i.
|
|
constexpr auto & | at (size_t i) |
| Returns a reference to element i.
|
|
constexpr auto & | at (size_t i) const |
| Returns a reference to element i.
|
|
constexpr auto && | front () |
| Returns a reference to the first element.
|
|
constexpr auto && | front () const |
| Returns a reference to the first element.
|
|
constexpr auto && | back () |
| Returns a reference to the last element.
|
|
constexpr auto && | back () const |
| Returns a reference to the last element.
|
|
VCTR_FORCEDINLINE constexpr auto * | data () |
| Returns a raw pointer to the underlying storage.
|
|
VCTR_FORCEDINLINE constexpr auto * | data () const |
| Returns a raw pointer to the underlying storage.
|
|
constexpr auto | begin () |
| Returns an iterator to the begin of the storage.
|
|
constexpr auto | begin () const |
| Returns a const iterator to the begin of the storage.
|
|
constexpr auto | end () |
| Returns an iterator to the first element behind the storage.
|
|
constexpr auto | end () const |
| Returns a const iterator to the first element behind the storage.
|
|
constexpr auto | rbegin () |
| Returns a reverse iterator to the last element in the storage.
|
|
constexpr auto | rbegin () const |
| Returns a const reverse iterator to the last element in the storage.
|
|
constexpr auto | rend () |
| Returns a reverse iterator to the element before the first element in the storage.
|
|
constexpr auto | rend () const |
| Returns a const reverse iterator to the element before the first element in the storage.
|
|
template<size_t startIdx> |
constexpr auto | subSpan () |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of size() - startIdx.
|
|
template<size_t startIdx> |
constexpr auto | subSpan () const |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of size() - startIdx.
|
|
constexpr auto | subSpan (size_t startIdx) |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of size() - startIdx.
|
|
constexpr auto | subSpan (size_t startIdx) const |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of size() - startIdx.
|
|
template<size_t startIdx, size_t numElements> |
constexpr auto | subSpan () |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of numElements.
|
|
template<size_t startIdx, size_t numElements> |
constexpr auto | subSpan () const |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of numElements.
|
|
constexpr auto | subSpan (size_t startIdx, size_t numElements) |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of numElements.
|
|
constexpr auto | subSpan (size_t startIdx, size_t numElements) const |
| Returns a Span that views a portion of this instance, starting at startIdx with a length of numElements.
|
|
constexpr void | assign (std::initializer_list< ElementType > elements) |
| Assigns elements from the initializer list to this instance.
|
|
constexpr void | copyFrom (const ElementType *otherData, size_t otherSize) |
| Copies the content from otherData to this instance.
|
|
constexpr void | fill (const value_type &value) |
| Fills the container with the given value.
|
|
constexpr void | fillLinspace (ElementType start, ElementType stop, bool includeEnd=true) |
| Fills the vector with evenly spaced numbers between start and stop.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< void(value_type &)> Fn> |
constexpr void | forEach (Fn &&fn) |
| Calls a function on each element.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< void(const value_type &)> Fn> |
constexpr void | forEach (Fn &&fn) const |
| Calls a function on each element.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< value_type(const value_type &)> Fn> |
constexpr void | forEach (Fn &&fn) |
| Calls a function on each element.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< void(value_type &, size_t)> Fn> |
constexpr void | forEach (Fn &&fn) |
| Calls a function on each element and passes the element index as second function argument.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< void(const value_type &, size_t)> Fn> |
constexpr void | forEach (Fn &&fn) const |
| Calls a function on each element and passes the element index as second function argument.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< value_type(const value_type &, size_t)> Fn> |
constexpr void | forEach (Fn &&fn) |
| Calls a function on each element and passes the element index as second function argument.
|
|
template<class... Args, is::functionWithSignatureOrImplicitlyConvertible< void(value_type &, Args &&...)> Fn> |
constexpr void | forEach (Fn &&fn, Args &&... fnArgs) |
| Calls a function on each element and forwards fnArgs to the function after the value.
|
|
template<class... Args, is::functionWithSignatureOrImplicitlyConvertible< void(const value_type &, Args &&...)> Fn> |
constexpr void | forEach (Fn &&fn, Args &&... fnArgs) const |
| Calls a function on each element and forwards fnArgs to the function after the value.
|
|
template<class... Args, is::functionWithSignatureOrImplicitlyConvertible< value_type(const value_type &, Args &&...)> Fn> |
constexpr void | forEach (Fn &&fn, Args &&... fnArgs) |
| Calls a function on each element and forwards fnArgs to the function after the value.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr auto | find (const T &valueToLookFor) |
| Returns an iterator to the first element that equals valueToLookFor or end() if none was found.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr auto | find (const T &valueToLookFor) const |
| Returns a const iterator to the first element that equals valueToLookFor or end() if none was found.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr auto | findReverse (const T &valueToLookFor) |
| Returns a reverse iterator to the last element in this vector that equals valueToLookFor or rend() if none was found.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr auto | findReverse (const T &valueToLookFor) const |
| Returns a const reverse iterator to the last element in this vector that equals valueToLookFor or rend() if none was found.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr auto | findIf (Fn &&predicate) |
| Returns an iterator to the first element in this vector for which predicate returns true or end() if none was found.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr auto | findIf (Fn &&predicate) const |
| Returns a const iterator to the first element in this vector for which predicate returns true or end() if none was found.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr auto | findIfReverse (Fn &&predicate) |
| Returns a reverse iterator to the last element in this vector for which predicate returns true or rend() if none was found.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr auto | findIfReverse (Fn &&predicate) const |
| Returns a const reverse iterator to the last element in this vector for which predicate returns true or rend() if none was found.
|
|
constexpr size_t | count (const ElementType &valueToLookFor) const |
| Returns the number of elements that are equal to valueToLookFor.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr size_t | countIf (Fn &&predicate) const |
| Returns the number of elements that satisfy predicate.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr bool | all (Fn &&predicate) const |
| Returns true if all elements satisfy the predicate or if the container is empty.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr bool | any (Fn &&predicate) const |
| Returns true if one or more elements satisfy the predicate.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr bool | allElementsEqual (const T &value) const |
| Returns true if all elements are equal to value or if the container is empty.
|
|
constexpr bool | allElementsEqual () const |
| Returns true if all elements are equal to themselves.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr bool | contains (const T &value) const |
| Returns true if at least one element is equal to value.
|
|
template<is::contiguousIteratorWithValueTypeSameAs< ElementType > It> |
constexpr bool | contains (It it) const |
| Returns true if the iterator refers to an element inside this container or span.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr std::optional< size_t > | indexOf (const T &value) const |
| Returns the index of the first element that compares true to value or std::nullopt if none is found.
|
|
template<std::equality_comparable_with< ElementType > T> |
constexpr std::optional< size_t > | indexOfReverse (const T &value) const |
| Returns the index of the last element that compares true to value or std::nullopt if none is found.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr std::optional< size_t > | indexIf (Fn &&predicate) const |
| Returns the index of the first element that satisfies the predicate or std::nullopt if none is found.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const ElementType &)> Fn> |
constexpr std::optional< size_t > | indexIfReverse (Fn &&predicate) const |
| Returns the index of the last element that satisfies the predicate or std::nullopt if none is found.
|
|
constexpr std::optional< value_type > | firstValueGreaterThanOrEqualTo (const value_type &valueToLookFor) const |
| Returns a std::optional holding a copy of the first element value which is greater or equal to valueToLookFor or std::nullopt if no such value is found.
|
|
constexpr std::optional< value_type > | firstValueGreaterThan (const value_type &valueToLookFor) const |
| Returns a std::optional holding a copy of the first element value which is greater than valueToLookFor or std::nullopt if no such value is found.
|
|
constexpr void | reverse () |
| Reverses the order of all elements.
|
|
constexpr void | rotate (size_t newFirstElementIdx) |
| Rotates the elements so that the element with the index newFirstElementIdx becomes the first element and the element with the index newFirstElementIdx - 1 becomes the last element.
|
|
void | shiftLeft (size_t n, bool clearFreeSpaceAfterShiftedRegion) |
| Shifts all elements to the left by n.
|
|
void | shiftRight (size_t n, bool clearFreeSpaceBeforeShiftedRegion) |
| Shifts all elements to the right by n.
|
|
constexpr void | sort () |
| Sorts all elements in an ascending order using operator <=>.
|
|
template<is::functionWithSignatureOrImplicitlyConvertible< bool(const value_type &, const value_type &)> ComparatorFn> |
constexpr void | sort (ComparatorFn &&compare) |
| Sorts all elements in this vector according to the compare function.
|
|
constexpr bool | elementsAreSorted () const |
| Returns true if all elements are sorted.
|
|
NeonRegister< std::remove_const_t< ElementType > > | getNeon (size_t i) const &&is |
| Evaluates a certain expression in place on this vector, e.g.
|
|
constexpr bool | isNotAliased (const void *) const |
|
VCTR_FORCEDINLINE const ElementType * | evalNextVectorOpInExpressionChain (void *) const |
|
constexpr const StorageInfoType & | getStorageInfo () const |
|
template<is::anyVctrOrExpression V> |
constexpr void | operator*= (const V &v) |
| Multiplies this by a vector or expression in place.
|
|
constexpr void | operator*= (value_type c) |
| Multiplies this by a constant in place.
|
|
template<is::anyVctrOrExpression V> |
constexpr void | operator/= (const V &v) |
| Divides this by a vector or expression in place.
|
|
constexpr void | operator/= (value_type c) |
| Divides this by a constant in place.
|
|
template<is::anyVctrOrExpression V> |
constexpr void | operator+= (const V &v) |
| Adds a vector or expression to this in place.
|
|
constexpr void | operator+= (value_type c) |
| Adds a constant to this in place.
|
|
template<is::anyVctrOrExpression V> |
constexpr void | operator-= (const V &v) |
| Subtracts a vector or expression from this in place.
|
|
constexpr void | operator-= (value_type c) |
| Subtracts a constant from this in place.
|
|
constexpr ElementType | min () const |
| Returns the minimal value of all elements.
|
|
constexpr ElementType | minAbs () const |
| Returns the minimal absolute value of all elements.
|
|
constexpr ElementType | max () const |
| Returns the maximum value of all elements.
|
|
constexpr ElementType | maxAbs () const |
| Returns the maximum absolute value of all elements.
|
|
constexpr ElementType | mean () const |
| Returns the mean value across all elements.
|
|
constexpr ElementType | meanSquare () const |
| Returns the mean value across all squared elements.
|
|
constexpr ElementType | rms () const |
| Returns the square root of the mean value across all squared elements.
|
|
constexpr ElementType | sum () const |
| Returns the sum of all elements.
|
|
constexpr bool | allElementsAreFinite () |
| Returns true if all elements are finite.
|
|
constexpr bool | allElementsAreFinite () |
| Returns true if all elements are finite.
|
|
constexpr bool | anyElementIsNaN () |
| Returns true if any element is NaN.
|
|
constexpr bool | anyElementIsNaN () |
| Returns true if any real or imaginary part of an element is NaN.
|
|