Skip to content

impl

Name Description
AlignedAllocator
Return Name Description
bool operator== noexcept
bool operator!= noexcept
void scatter_reduce_recursive Scatter src values into dest using indices. Src and indices must be the of the same shape.
void fill_recursive Recursively fill an array with with a scalar value.
void assign_recursive Recursively assign one array to another. The shapes MUST match.
void copy_into_recursive Recursively copy an array into an output location.
void unary_reduce_recursive Recursively operate on a single array for unary operations (like logical not).
void binary_reduce_recursive Recursively operate on two arrays.
void inplace_unary_reduce_recursive Recursively operate inplace on an array for unary operations.
void inplace_binary_reduce_recursive Binary operation recursed inplace.
void binary_scalar_recursive Recursively operate on an array, broadcasting a scalar.
void inplace_binary_scalar_recursive Binary operation recursed inplace, broadcasting a scalar.
AccumT reduce_recursive Recursively reduce an array to a scalar.

noexcept

template<typename T1, std::size_t A1, typename T2, std::size_t A2> bool operator==(const AlignedAllocator< T1, A1 > &, const AlignedAllocator< T2, A2 > &) noexcept

noexcept

template<typename T1, std::size_t A1, typename T2, std::size_t A2> bool operator!=(const AlignedAllocator< T1, A1 > &, const AlignedAllocator< T2, A2 > &) noexcept

template<typename DestT, typename IndexT, typename SrcT, class Op, ArrayLike Dest, ArrayLike Index, ArrayLike Src> void scatter_reduce_recursive(Dest & dest, const Index & indices, const Src & src, void * dest_ptr, const void * idx_ptr, const void * src_ptr, ssize_t axis, Op op)

Scatter src values into dest using indices. Src and indices must be the of the same shape.


template<typename T, ArrayLike A> void fill_recursive(const A & arr, void * current_data, ssize_t axis, T value)

Recursively fill an array with with a scalar value.

This function can cast the value as it is assigned.

Parameter Type Description
arr const A & The array.
current_data void * The pointer to the current data in the array.
axis ssize_t The current axis being traversed.
value T The value to fill into the array.

template<typename DestT, typename SrcT, ArrayLike Dest, ArrayLike Src> void assign_recursive(Dest & dest, const Src & src, void * dest_data, const void * src_data, ssize_t axis)

Recursively assign one array to another. The shapes MUST match.

This function can cast the values as they are assigned.

Parameter Type Description
dest Dest & The array to assign to.
src const Src & The array to pull values from.
dest_data void * The pointer to the current data in the destination.
src_data const void * The pointer to the current data in the source.
axis ssize_t The current axis being traversed.

template<typename T, typename OutputType, ArrayLike A> void copy_into_recursive(const A & arr, const void * current_src, ssize_t axis, OutputType *& dest)

Recursively copy an array into an output location.

This function can cast the value as it is assigned.

Parameter Type Description
arr const A & The array.
current_src const void * The pointer to the current data in the source array.
axis ssize_t The current axis being traversed.
dest OutputType *& Reference to pointer for the destination array.

template<typename T, typename Op, typename ResultTOrAccumT, ArrayLike A> void unary_reduce_recursive(const A & arr, const void * data, ssize_t axis, Op op, ResultTOrAccumT *& res)

Recursively operate on a single array for unary operations (like logical not).

This function can cast the value as it is assigned.

Parameter Type Description
arr const A & The input array.
data const void * The pointer to the current data in the array.
axis ssize_t The current axis being traversed.
op Op The reduction operation.
res ResultTOrAccumT *& The output array’s data.

template<typename T, typename Op, typename ResultTOrAccumT, ArrayLike A, ArrayLike B> void binary_reduce_recursive(const A & left_arr, const B & right_arr, const void * lhs_data, const void * rhs_data, ssize_t axis, Op op, ResultTOrAccumT *& res)

Recursively operate on two arrays.

This function assumes the arrays are the same shape, except if there are extra padding dimensions. In that case (i.e., leading dimensions of size 1) a shape mismatch is tolerated.

E.g. this function can do binary add/subtract/multiply and so on.

This function can cast the value as it is assigned.

Parameter Type Description
left_arr const A & The left hand side array.
right_arr const B & The right hand side array.
lhs_data const void * The pointer to the current data in the left hand side array.
axis ssize_t The current axis being traversed.
op Op The reduction operation.
res ResultTOrAccumT *& The output array’s data.

template<typename T, typename Op, ArrayLike A> void inplace_unary_reduce_recursive(const A & arr, const void * data, ssize_t axis, Op op)

Recursively operate inplace on an array for unary operations.

This function can cast the value as it is assigned.

Parameter Type Description
arr const A & The input array.
data const void * The pointer to the current data in the array.
axis ssize_t The current axis being traversed.
op Op The reduction operation.

template<typename T, typename Op, ArrayLike A, ArrayLike B> void inplace_binary_reduce_recursive(const A & left_arr, const B & right_arr, const void * lhs_data, const void * rhs_data, ssize_t axis, Op op)

Binary operation recursed inplace.

This function assumes the arrays are the same shape, except if there are extra padding dimensions. In that case (i.e., leading dimensions of size 1) a shape mismatch is tolerated.

E.g. this function can do binary add/subtract/multiply and so on.

This function can cast the value as it is assigned.

Parameter Type Description
left_arr const A & The left hand side array.
right_arr const B & The right hand side array.
lhs_data const void * The pointer to the current data in the left hand side array.
axis ssize_t The current axis being traversed.
op Op The reduction operation.

template<typename T, typename ScalarT, typename Op, typename ResultT, ArrayLike A> void binary_scalar_recursive(const A & arr, const void * current_data, const ScalarT scalar_val, ssize_t axis, Op op, ResultT *& res)

Recursively operate on an array, broadcasting a scalar.

E.g. this function can do binary add/subtract/multiply and so on.

This function can cast the value as it is assigned.

Parameter Type Description
arr const A & The array.
current_data const void * The pointer to the current data in the source array.
scalar_val const ScalarT The scalar to broadcast.
axis ssize_t The current axis being traversed.
op Op The reduction operation.
res ResultT *& The output array.

template<typename T, typename ScalarT, typename Op, ArrayLike A> void inplace_binary_scalar_recursive(const A & arr, void * current_data, const ScalarT scalar_val, ssize_t axis, Op op)

Binary operation recursed inplace, broadcasting a scalar.

This function assumes the arrays are the same shape, except if there are extra padding dimensions. In that case (i.e., leading dimensions of size 1) a shape mismatch is tolerated.

E.g. this function can do binary add/subtract/multiply and so on.

This function can cast the value as it is assigned.

Parameter Type Description
arr const A & The array.
current_data void * The pointer to the current data in the source array.
scalar_val const ScalarT The scalar to broadcast.
axis ssize_t The current axis being traversed.
op Op The reduction operation.

template<typename T, typename Op, typename AccumT, ArrayLike A> AccumT reduce_recursive(const A & arr, const void * current_data, ssize_t axis, Op op, AccumT acc)

Recursively reduce an array to a scalar.

This function can cast the value as it is assigned.

Parameter Type Description
arr const A & The array.
current_data const void * The pointer to the current data in the source array.
axis ssize_t The current axis being traversed.
op Op The reduction operation.
acc AccumT The identity value for the reduction. (on recursion it accumulates)