|
| constexpr | Array () |
| | Creates an uninitialised Array.
|
| |
| constexpr | Array (ElementType initialValue) |
| | Creates an Array with all elements initialised to initialValue.
|
| |
template<is::suitableInitializerForElementType< ElementType >... T>
requires (sizeof...(T) > 1) |
| constexpr | Array (T &&... initialValues) |
| | Creates an Array from a list of at least two initial values.
|
| |
| template<std::convertible_to< ElementType > T> |
| constexpr | Array (T &&initialValues) |
| | Creates an Array with extent 1 from an initial value.
|
| |
| template<class OtherElementType , size_t otherSize> |
| constexpr | Array (std::array< OtherElementType, otherSize > &&other) |
| | Creates an Array by moving a std::array into it.
|
| |
template<is::triviallyCopyableWithDataAndSize OtherContainer>
requires (std::same_as<value_type, ValueType<OtherContainer>> && ! std::same_as<Array, OtherContainer>) |
| constexpr | Array (const OtherContainer &other) |
| | This constructor will create an Array instance of the same size as OtherContainer and will copy its values into this Array.
|
| |
| template<is::iteratorCopyable OtherContainer> |
| constexpr | Array (const OtherContainer &other) |
| | This constructor will create an Array instance of the same size as OtherContainer and will copy its values into this Array.
|
| |
| constexpr | Array (const ElementType *data, size_t size) |
| | Copies size elements from the memory location pointed to by data.
|
| |
| template<is::inputIteratorToConstructValuesOfType< ElementType > Iterator, std::sentinel_for< Iterator > Sentinel> |
| constexpr | Array (Iterator first, Sentinel last) |
| | Creates an Array from an iterator and a sentinel by initialising the Array with the content read from the iterator.
|
| |
| template<is::suitableInitializerFunctionForElementType< ElementType > Fn> |
| constexpr | Array (Fn &&initializerFunction) |
| | Creates a vector of the given size and initialises all elements by calling initializerFunction with the element's index.
|
| |
| template<is::expression Expression> |
| constexpr | Array (Expression &&e) |
| | Creates an Array from an expression template.
|
| |
| template<has::sizeAndDataWithElementType< ElementType > Container> |
| constexpr Array & | operator= (Container &&containerToCopyDataFrom) |
| | Copies or moves the data of the source container to this Array.
|
| |
| constexpr Array & | operator= (std::initializer_list< ElementType > elementsToAssign) |
| | Assigns elements from the initializer list to this Array.
|
| |
| template<is::expression E> |
| constexpr void | operator= (const E &expression) |
| | Assigns the result of an expression to this vector.
|
| |
| 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.
|
| |