|
ace | ArgonHalf (argon::Vector< vector_type > vec) |
ace | ArgonHalf (const ArgonHalf &)=default |
ace | ArgonHalf (ArgonHalf &&)=default |
ace ArgonHalf & | operator= (const ArgonHalf &)=default |
ace ArgonHalf & | operator= (ArgonHalf &&)=default |
template<typename NewScalarType> |
ace ArgonHalf< NewScalarType > | As () const |
| reinterpret an ArgonHalf to a different type
|
ace ArgonHalf< ScalarType > | TableLookup (ArgonHalf< ScalarType > idx) |
ace ArgonHalf< ScalarType > | TableExtension (ArgonHalf< ScalarType > b, ArgonHalf< ScalarType > idx) |
template<size_t NumTables> |
ace ArgonHalf< ScalarType > | TableExtension (std::array< ArgonHalf< ScalarType >, NumTables > b, ArgonHalf< ScalarType > idx) |
template<size_t NumTables> |
ace ArgonHalf< ScalarType > | TableExtension (vector_type *b, ArgonHalf< ScalarType > idx) |
template<typename U> |
ace ArgonHalf< U > | ConvertTo () |
template<typename U, int fracbits>
requires (std::is_same_v<U, uint32_t> || std::is_same_v<U, int32_t> || std::is_same_v<U, float>) |
ace ArgonHalf< U > | ConvertTo () |
ace Argon< ScalarType > | CombineWith (ArgonHalf< ScalarType > high) const |
ace ArgonHalf< ScalarType > | Reverse () const |
template<typename NewScalarType> |
ace ArgonHalf< NewScalarType > | As () const |
| reinterpret an ArgonHalf to a different type
|
ace argon_next_larger | AddLong (ArgonHalf< ScalarType > b) const |
| Add, widening.
|
ace argon_next_larger | MultiplyLong (ArgonHalf< ScalarType > b) const |
ace argon_next_larger | MultiplyLong (ScalarType b) const |
ace argon_next_larger | MultiplyLong (lane_type b) const |
ace argon_next_larger | MultiplyAddLong (ArgonHalf< ScalarType > b) const |
ace argon_next_larger | MultiplyAddLong (ScalarType b) const |
ace argon_next_larger | MultiplyAddLong (lane_type b) const |
ace argon_next_larger | MultiplyDoubleSaturateLong (ArgonHalf< ScalarType > b) const |
ace argon_next_larger | MultiplyDoubleSaturateLong (ScalarType b) const |
ace argon_next_larger | MultiplyDoubleSaturateLong (lane_type b) const |
ace argon_next_larger | MultiplyDoubleAddSaturateLong (ArgonHalf< ScalarType > b) const |
ace argon_next_larger | MultiplyDoubleAddSaturateLong (ScalarType b) const |
ace argon_next_larger | MultiplyDoubleAddSaturateLong (lane_type b) const |
ace argon_next_larger | SubtractLong (ArgonHalf< ScalarType > b) const |
ace argon_next_larger | SubtractAbsoluteLong (ArgonHalf< ScalarType > b) const |
ace argon_next_larger | PairwiseAddLong () const |
ace argon_next_larger | PairwiseAddLong (ArgonHalf< typename argon::helpers::NextSmaller< ScalarType > > b) const |
ace argon_next_larger | Widen () const |
template<size_t n> |
ace argon_next_larger | ShiftLeftLong () |
ace ArgonHalf< ScalarType > | TableLookup (ArgonHalf< ScalarType > idx) |
ace ArgonHalf< ScalarType > | TableExtension (ArgonHalf< ScalarType > b, ArgonHalf< ScalarType > idx) |
template<size_t NumTables> |
ace ArgonHalf< ScalarType > | TableExtension (std::array< ArgonHalf< ScalarType >, NumTables > b, ArgonHalf< ScalarType > idx) |
template<size_t NumTables> |
ace ArgonHalf< ScalarType > | TableExtension (vector_type *b, ArgonHalf< ScalarType > idx) |
template<typename U> |
ace ArgonHalf< U > | ConvertTo () |
template<typename U, int fracbits>
requires (std::is_same_v<U, uint32_t> || std::is_same_v<U, int32_t> || std::is_same_v<U, float>) |
ace ArgonHalf< U > | ConvertTo () |
ace Argon< ScalarType > | CombineWith (ArgonHalf< ScalarType > high) const |
ace ArgonHalf< ScalarType > | Reverse () const |
constexpr | Vector ()=default |
| The default constructor for the Vector class.
|
constexpr | Vector (Vector &&other)=default |
| Move constructor for the Vector class.
|
constexpr | Vector (const Vector &other)=default |
| Copy constructor for the Vector class.
|
constexpr Vector & | operator= (Vector &&other)=default |
| Move assignment operator for the Vector class.
|
constexpr Vector & | operator= (const Vector &other)=default |
| Copy assignment operator for the Vector class.
|
ace | Vector (neon::Vec64_t< ScalarType > vector) |
| Constructs a Vector from a SIMD vector type.
|
ace | Vector (scalar_type scalar) |
| Constructs a Vector from a scalar value.
|
ace | Vector (argon::Lane< neon::Vec64_t< ScalarType > > lane) |
| Constructs a Vector from a Lane object.
|
ace | Vector (argon::ConstLane< LaneIndex, neon::Vec64_t< ScalarType > > lane) |
| Constructs a Vector from a ConstLane object.
|
ace | Vector (ArgTypes... args) |
ace argon_type | operator- () const |
| Negate the SIMD vector and return the result.
|
ace argon_type | operator+ (argon_type b) const |
| Add a vector and return the result.
|
ace argon_type | operator- (argon_type b) const |
| Subtract a vector and return the result.
|
ace argon_type | operator* (argon_type b) const |
| Multiply a vector and return the result.
|
ace argon_type | operator/ (argon_type b) const |
| Divide a vector and return the result.
|
ace argon_bool_type | operator== (argon_type b) const |
| Compare two vectors for equality.
|
ace argon_bool_type | operator!= (argon_type b) const |
| Compare two vectors for inequality.
|
ace argon_bool_type | operator< (argon_type b) const |
| Compare two vectors, checking if this vector is less than the other.
|
ace argon_bool_type | operator> (argon_type b) const |
| Compare two vectors, checking if this vector is greater than the other.
|
ace argon_bool_type | operator<= (argon_type b) const |
| Compare two vectors, checking if this vector is less than or equal to the other.
|
ace argon_bool_type | operator>= (argon_type b) const |
| Compare two vectors, checking if this vector is greater than or equal to the other.
|
ace argon_type | operator++ () const |
| Increment the vector by 1 and return the result.
|
ace argon_type | operator-- () const |
| Decrement the vector by 1 and return the result.
|
ace argon_type | operator& (argon_type b) const |
| Bitwise AND two vectors and return the result.
|
ace argon_type | operator| (argon_type b) const |
| Bitwise OR two vectors and return the result.
|
ace argon_type | operator^ (argon_type b) const |
| Bitwise XOR two vectors and return the result.
|
ace argon_type | operator~ () const |
| Bitwise NOT the vector and return the result.
|
ace Lane< const neon::Vec64_t< ScalarType > > | operator[] (const size_t i) const |
| Access a lane of the vector by index.
|
ace lane_type | operator[] (const size_t i) |
| Access a lane of the vector by index.
|
ace argon_type | operator>> (const int i) const |
| Shift the elements of the vector to the right by a specified number of bits.
|
ace argon_type | operator<< (const int i) const |
| Shift the elements of the vector to the left by a specified number of bits.
|
constexpr neon::Vec64_t< ScalarType > | vec () const |
| Get the underlying SIMD vector.
|
constexpr | operator neon::Vec64_t< ScalarType > () const |
| Convert the vector to the underlying SIMD vector type.
|
ace std::array< scalar_type, lanes > | to_array () |
| Convert the vector to an array of scalar values.
|
ace const lane_type | GetLane (const size_t i) const |
| Get a single lane of the vector by index.
|
ace lane_type | GetLane (const size_t i) |
ace const lane_type | GetLane (const int i) const |
| Get a single lane of the vector by index.
|
ace lane_type | GetLane (const int i) |
ace const const_lane_type< LaneIndex > | GetLane () const |
| Get a single lane of the vector by index.
|
ace const_lane_type< LaneIndex > | GetLane () |
ace const_lane_type< lanes - 1 > | LastLane () |
| Get the last lane of the vector.
|
ace argon_type | ShiftRight (const int i) const |
| Shift the elements of the vector to the right by a specified number of bits.
|
ace argon_type | ShiftLeft (const int i) const |
| Shift the elements of the vector to the left by a specified number of bits.
|
ace argon_type | Negate () const |
| Bitwise negate the vector and return the result.
|
ace argon_type | Add (argon_type b) const |
| Add two vectors.
|
ace argon_type | AddHalve (argon_type b) const |
| Adds two vectors, halving the result.
|
ace argon_type | AddHalveRound (argon_type b) const |
| Adds two vectors, halving and rounding the result.
|
ace argon_type | AddSaturate (argon_type b) const |
| Adds two vectors, saturating the result.
|
ace argon_type | Subtract (argon_type b) const |
| Subtract two vectors.
|
ace argon_type | SubtractHalve (argon_type b) const |
| Subtract two vectors, halving the result.
|
ace argon_type | SubtractSaturate (argon_type b) const |
| Subtract two vectors, saturating the result.
|
ace argon_type | SubtractAbs (argon_type b) const |
| Subtract two vectors, taking the absolute value of the result.
|
ace argon_type | SubtractAbsAdd (argon_type b, argon_type c) const |
| Subtract two vectors, taking the absolute value of the result and adding a third vector.
|
ace argon_type | Multiply (argon_type b) const |
| Multiply two vectors.
|
ace argon_type | Multiply (scalar_type b) const |
| Multiply a vector by a scalar value.
|
ace argon_type | Multiply (lane_type b) const |
| Multiply a vector by a lane value.
|
ace argon_type | Multiply (const_lane_type< LaneIndex > b) const |
| Multiply a vector by a lane value.
|
ace argon_type | MultiplyAdd (argon_type b, argon_type c) const |
| Multiply two vectors and add a third vector.
|
ace argon_type | MultiplyAdd (argon_type b, scalar_type c) const |
| Multiply a vector by a scalar value and add a third vector.
|
ace argon_type | MultiplyAdd (scalar_type b, argon_type c) const |
| Multiply a vector by a scalar value and add a third vector.
|
ace argon_type | MultiplyAdd (argon_type b, lane_type c) const |
| Multiply a vector by a lane value and add a third vector.
|
ace argon_type | MultiplyAdd (lane_type b, argon_type c) const |
| Multiply a vector by a lane value and add a third vector.
|
ace argon_type | MultiplyAdd (argon_type b, const_lane_type< LaneIndex > c) const |
| Multiply a vector by a lane value and add a third vector.
|
ace argon_type | MultiplyAdd (const_lane_type< LaneIndex > b, argon_type c) const |
| Multiply a vector by a lane value and add a third vector.
|
ace argon_type | MultiplySubtract (argon_type b, argon_type c) const |
| Multiply two vectors and subtract from a third vector.
|
ace argon_type | MultiplySubtract (argon_type b, scalar_type c) const |
| Multiply a vector by a scalar value and subtract from a third vector.
|
ace argon_type | MultiplySubtract (scalar_type b, argon_type c) const |
| Multiply a vector by a scalar value and subtract from a third vector.
|
ace argon_type | MultiplySubtract (argon_type b, lane_type c) const |
| Multiply a vector by a lane value and subtract from a third vector.
|
ace argon_type | MultiplyFixedQMax (argon_type v) const |
| Multiply two QMax fixed-point vectors, returning a fixed-point product.
|
ace argon_type | MultiplyFixedQMax (scalar_type s) const |
| Multiply a QMax fixed-point vector by a scalar value, returning a fixed-point product.
|
ace argon_type | MultiplyFixedQMax (lane_type l) const |
| Multiply a QMax fixed-point vector by a lane value, returning a fixed-point product.
|
ace argon_type | MultiplyRoundFixedQMax (argon_type v) const |
| Multiply two fixed-point vectors, returning a fixed-point product.
|
ace argon_type | MultiplyRoundFixedQMax (scalar_type s) const |
| Multiply a fixed-point vector by a scalar value, returning a fixed-point product.
|
ace argon_type | MultiplyRoundFixedQMax (lane_type l) const |
| Multiply a fixed-point vector by a lane value, returning a fixed-point product.
|
ace argon_type | Absolute () const |
| Get the absolute value of the vector.
|
ace argon_type | ReciprocalEstimate () const |
| 1 / value, using an estimate for speed
|
ace argon_type | MultiplyAddFixedQMax (argon_type b, arg_type c) const |
| Multiply-add three fixed-point vectors, returning a fixed-point sum.
|
ace argon_type | MultiplyRoundAddFixedQMax (argon_type b, arg_type c) const |
| Multiply-round-add three fixed-point vectors, returning a fixed-point sum.
|
ace argon_type | Divide (argon_type b) const |
| Divide two vectors.
|
ace argon_type | Modulo (argon_type b) const |
| Get the modulo of two vectors.
|
ace argon_type | Modulo (scalar_type b) const |
| Get the modulo of a vector and a scalar value.
|
ace argon_type | Max (argon_type b) const |
| Compare the lanes of two vectors, copying the larger of each lane to the result.
|
ace argon_type | Min (argon_type b) const |
| Compare the lanes of two vectors, copying the smaller of each lane to the result.
|
ace argon_bool_type | Equal (argon_type b) const |
| Compare the lanes of two vectors, setting the result lane's bits to ON if are equal.
|
ace argon_bool_type | GreaterThanOrEqual (argon_type b) const |
| Compare the lanes of two vectors, setting the result lane's bits to ON if a is greater than or equal to b.
|
ace argon_bool_type | LessThanOrEqual (argon_type b) const |
| Compare the lanes of two vectors, setting the result lane's bits to ON if a is less than or equal to b.
|
ace argon_bool_type | GreaterThan (argon_type b) const |
| Compare the lanes of two vectors, setting the result lane's bits to ON if a is greater than b.
|
ace argon_bool_type | LessThan (argon_type b) const |
| Compare the lanes of two vectors, setting the result lane's bits to ON if a is less than b.
|
ace argon_type | ShiftLeft (helpers::ArgonFor_t< simd::make_signed_t< Bool_t< neon::Vec64_t< ScalarType > > > > b) const |
| Shift the elemnets of the vector to the left by a specified number of bits.
|
ace argon_type | ShiftLeft (std::make_signed_t< simd::Scalar_t< Bool_t< neon::Vec64_t< ScalarType > > > > n) const |
| Shift the elements of the vector to the left by a specified number of bits.
|
ace argon_type | ShiftLeft () const |
| Shift the elements of the vector to the left by a specified number of bits.
|
ace argon_type | ShiftLeftSaturate (helpers::ArgonFor_t< simd::make_signed_t< Bool_t< neon::Vec64_t< ScalarType > > > > b) const |
| Shift the elements of the vector to the left by a specified number of bits, saturating the result.
|
ace argon_type | ShiftLeftRound (argon_type b) const |
| Shift the elements of the vector to the left by a specified number of bits, rounding the result.
|
ace argon_type | ShiftLeftRoundSaturate (argon_type b) const |
| Shift the elements of the vector to the left by a specified number of bits, rounding and saturating the result.
|
ace argon_type | ShiftLeftSaturate () const |
| Shift the elements of the vector to the left by a specified number of bits, saturating the result.
|
ace argon_type | ShiftLeftInsert (argon_type b) const |
| Shift the elements of the vector to the left by a specified number of bits, and then OR the result with another vector masked to the number of shift bits.
|
ace argon_type | ShiftRight () const |
| Shift the elements of the vector to the right by a specified number of bits.
|
ace argon_type | ShiftRightRound () const |
| Shift the elements of the vector to the right by a specified number of bits, rounding the result.
|
ace argon_type | ShiftRightAccumulate (argon_type b) const |
| Shift the elements of the b vector to the right by a specified number of bits, and then add the result to this vector.
|
ace argon_type | ShiftRightAccumulateRound (argon_type b) const |
| Shift the elements of the b vector to the right by a specified number of bits, and then add the result to this vector.
|
ace argon_type | ShiftRightInsert (argon_type b) const |
| Shift the elements of the vector to the right by a specified number of bits, ORing the result with the vector masked to the number of shift bits.
|
ace argon_type | LoadToLane (const scalar_type *ptr) |
| Load a lane from a pointer.
|
ace void | StoreTo (scalar_type *ptr) const |
| Store the vector to a pointer.
|
ace void | StoreLaneTo (scalar_type *ptr) |
| Store a lane of the vector to a pointer.
|
ace argon_type | PairwiseAdd (argon_type b) const |
| Pairwise ops.
|
ace argon_type | PairwiseMax (argon_type b) const |
| Select the maximum of each pair of lanes in the two vectors.
|
ace argon_type | PairwiseMin (argon_type b) const |
| Select the maximum of each pair of lanes in the two vectors.
|
ace argon_type | BitwiseNot () const |
| Bitwise ops.
|
ace argon_type | BitwiseAnd (argon_type b) const |
| Bitwise AND of the vector with another vector.
|
ace argon_type | BitwiseOr (argon_type b) const |
| Bitwise OR of the vector with another vector.
|
ace argon_type | BitwiseXor (argon_type b) const |
| Bitwise XOR of the vector with another vector.
|
ace argon_type | BitwiseOrNot (argon_type b) const |
| Bitwise OR of the vector with the NOT of another vector.
|
ace argon_type | BitwiseAndNot (argon_type b) const |
| Bitwise AND of the vector with the NOT of another vector.
|
ace argon_type | BitwiseClear (argon_type b) const |
| Bitwise AND of the vector with the NOT of another vector.
|
ace argon_type | BitwiseSelect (ArgType true_value, ArgType false_value) const |
| Bitwise select between two vectors, using the current vector as a mask.
|
ace argon_type | Select (ArgType true_value, ArgType false_value) const |
| Bitwise select between two vectors, using the current vector as a mask.
|
ace predicate_type | CompareTestNonzero (argon_type b) const |
| Ands the current vector with the given vector, then checks if nonzero.
|
ace predicate_type | TestNonzero () const |
| Ands the current vector with the given vector, then checks if nonzero.
|
ace helpers::ArgonFor_t< simd::make_signed_t< Bool_t< neon::Vec64_t< ScalarType > > > > | CountLeadingSignBits () const |
| Count the number of consecutive bits following the sign bit that are set to the same value as the sign bit.
|
ace argon_type | CountLeadingZeroBits () const |
| Count the number of consecutive top bits that are set to zero.
|
ace argon_type | CountActiveBits () const |
| Count the number of bits that are set to one in the vector.
|
ace argon_type | Popcount () const |
| Count the number of bits that are set to one in the vector.
|
ace argon_type | Extract (argon_type b) const |
| Extract n elements from the lower end of the operand, and the remaining elements from the top end of this vector, combining them into the result vector.
|
ace argon_type | Reverse64bit () const |
ace argon_type | Reverse32bit () const |
ace argon_type | Reverse16bit () const |
ace std::array< argon_type, 2 > | ZipWith (argon_type b) const |
| Zip two vectors together, returning two vectors of pairs.
|
std::array< argon_type, 2 > | UnzipWith (argon_type b) |
| Unzip two vectors, returning two vectors of pairs.
|
std::array< argon_type, 2 > | TransposeWith (argon_type b) const |
| Perform a 2x2 matrix transpose on two vectors, returning two vectors of pairs.
|
ace argon_type | map (FuncType body) const |
ace argon_type | map_with_index (FuncType body) const |
ace argon_type | map2 (argon_type other, FuncType body) const |
ace argon_type | each_lane (FuncType body) |
ace argon_type | each_lane_with_index (FuncType body) |
ace void | if_lane (FuncType true_branch) |
ace void | if_else_lane (FuncType true_branch, FuncType false_branch) |
ace void | if_lane_with_index (FuncType true_branch) |
ace void | if_else_lane_with_index (FuncType1 true_branch, FuncType2 false_branch) |
ace bool | any () |
ace bool | all () |
std::tuple_element_t< Index, argon_type > | get () |
constexpr | operator neon::Vec64_t< ScalarType > () const |
| Convert the vector to the underlying SIMD vector type.
|