Enum ha_ndarray::Array
source · pub enum Array<T: CDatatype> {
Base(ArrayBase<Box<dyn BufferRead<DType = T>>>),
Op(ArrayOp<Arc<dyn Op<Out = T>>>),
Slice(Box<ArraySlice<Self>>),
View(Box<ArrayView<Self>>),
}
Expand description
A generic n-dimensional array
Variants§
Base(ArrayBase<Box<dyn BufferRead<DType = T>>>)
Op(ArrayOp<Arc<dyn Op<Out = T>>>)
Slice(Box<ArraySlice<Self>>)
View(Box<ArrayView<Self>>)
Trait Implementations§
source§impl<T: CDatatype, A: Into<Array<T>>> From<ArraySlice<A>> for Array<T>
impl<T: CDatatype, A: Into<Array<T>>> From<ArraySlice<A>> for Array<T>
source§fn from(slice: ArraySlice<A>) -> Self
fn from(slice: ArraySlice<A>) -> Self
Converts to this type from the input type.
source§impl<T: CDatatype> NDArrayRead for Array<T>
impl<T: CDatatype> NDArrayRead for Array<T>
source§fn read(&self, queue: &Queue) -> Result<BufferConverter<'_, Self::DType>, Error>
fn read(&self, queue: &Queue) -> Result<BufferConverter<'_, Self::DType>, Error>
Read the value of this
NDArray
.source§fn read_value(&self, coord: &[usize]) -> Result<Self::DType, Error>
fn read_value(&self, coord: &[usize]) -> Result<Self::DType, Error>
Read the value at one
coord
in this NDArray
.source§fn to_host(
&self,
queue: &Queue
) -> Result<SliceConverter<'_, Self::DType>, Error>
fn to_host( &self, queue: &Queue ) -> Result<SliceConverter<'_, Self::DType>, Error>
Read the value of this
NDArray
as a SliceConverter
in main memorysource§impl<T: CDatatype> NDArrayTransform for Array<T>
impl<T: CDatatype> NDArrayTransform for Array<T>
source§fn broadcast(self, shape: Shape) -> Result<Self, Error>
fn broadcast(self, shape: Shape) -> Result<Self, Error>
Broadcast this array into the given
shape
.source§fn expand_dims(self, axes: Vec<usize>) -> Result<Self, Error>
fn expand_dims(self, axes: Vec<usize>) -> Result<Self, Error>
Expand the given
axes
of this array.source§fn reshape(self, shape: Shape) -> Result<Self, Error>
fn reshape(self, shape: Shape) -> Result<Self, Error>
Reshape this array into the given
shape
.Auto Trait Implementations§
impl<T> !RefUnwindSafe for Array<T>
impl<T> Send for Array<T>
impl<T> Sync for Array<T>
impl<T> Unpin for Array<T>
impl<T> !UnwindSafe for Array<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<A> MatrixMath for Awhere
A: NDArray + Debug,
impl<A> MatrixMath for Awhere A: NDArray + Debug,
source§impl<T, A, O> NDArrayBoolean<O> for Awhere
T: CDatatype,
A: NDArray<DType = T>,
O: NDArray<DType = T>,
impl<T, A, O> NDArrayBoolean<O> for Awhere T: CDatatype, A: NDArray<DType = T>, O: NDArray<DType = T>,
source§impl<T, A> NDArrayBooleanScalar for Awhere
T: CDatatype,
A: NDArray<DType = T>,
impl<T, A> NDArrayBooleanScalar for Awhere T: CDatatype, A: NDArray<DType = T>,
source§fn and_scalar(
self,
other: Self::DType
) -> Result<ArrayOp<ArrayBooleanScalar<Self, Self::DType>>, Error>
fn and_scalar( self, other: Self::DType ) -> Result<ArrayOp<ArrayBooleanScalar<Self, Self::DType>>, Error>
Construct a boolean and operation with the
other
value.source§fn or_scalar(
self,
other: Self::DType
) -> Result<ArrayOp<ArrayBooleanScalar<Self, Self::DType>>, Error>
fn or_scalar( self, other: Self::DType ) -> Result<ArrayOp<ArrayBooleanScalar<Self, Self::DType>>, Error>
Construct a boolean or operation with the
other
value.source§fn xor_scalar(
self,
other: Self::DType
) -> Result<ArrayOp<ArrayBooleanScalar<Self, Self::DType>>, Error>
fn xor_scalar( self, other: Self::DType ) -> Result<ArrayOp<ArrayBooleanScalar<Self, Self::DType>>, Error>
Construct a boolean xor operation with the
other
value.source§impl<A> NDArrayCast for Awhere
A: NDArray,
impl<A> NDArrayCast for Awhere A: NDArray,
source§impl<A, O> NDArrayCompare<O> for Awhere
A: NDArray,
O: NDArray<DType = <A as NDArray>::DType> + NDArray,
impl<A, O> NDArrayCompare<O> for Awhere A: NDArray, O: NDArray<DType = <A as NDArray>::DType> + NDArray,
source§fn eq(
self,
other: O
) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
fn eq( self, other: O ) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
Construct an equality comparison with the
other
array.source§fn gt(
self,
other: O
) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
fn gt( self, other: O ) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
Construct a greater-than comparison with the
other
array.source§fn ge(
self,
other: O
) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
fn ge( self, other: O ) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
Construct an equal-or-greater-than comparison with the
other
array.source§fn lt(
self,
other: O
) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
fn lt( self, other: O ) -> Result<ArrayOp<ArrayCompare<Self::DType, Self, O>>, Error>
Construct an equal-or-less-than comparison with the
other
array.source§impl<A> NDArrayCompareScalar for Awhere
A: NDArray,
impl<A> NDArrayCompareScalar for Awhere A: NDArray,
source§fn eq_scalar(
self,
other: Self::DType
) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
fn eq_scalar( self, other: Self::DType ) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
Construct an equality comparison with the
other
value.source§fn gt_scalar(
self,
other: Self::DType
) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
fn gt_scalar( self, other: Self::DType ) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
Construct a greater-than comparison with the
other
value.source§fn ge_scalar(
self,
other: Self::DType
) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
fn ge_scalar( self, other: Self::DType ) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
Construct an equal-or-greater-than comparison with the
other
value.source§fn lt_scalar(
self,
other: Self::DType
) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
fn lt_scalar( self, other: Self::DType ) -> Result<ArrayOp<ArrayCompareScalar<Self::DType, Self>>, Error>
Construct a less-than comparison with the
other
value.source§impl<A> NDArrayMath for Awhere
A: NDArray,
impl<A> NDArrayMath for Awhere A: NDArray,
source§fn add<O>(
self,
rhs: O
) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where
O: NDArray<DType = Self::DType> + Sized,
fn add<O>( self, rhs: O ) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where O: NDArray<DType = Self::DType> + Sized,
Construct an addition operation with the given
rhs
.source§fn checked_div<O>(
self,
rhs: O
) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where
O: NDArray<DType = Self::DType> + Sized,
fn checked_div<O>( self, rhs: O ) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where O: NDArray<DType = Self::DType> + Sized,
Construct a division operation with the given
rhs
which will return an error if rhs
contains zeros.source§fn div<O>(
self,
rhs: O
) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where
O: NDArray<DType = Self::DType> + Sized,
fn div<O>( self, rhs: O ) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where O: NDArray<DType = Self::DType> + Sized,
Construct a division operation with the given
rhs
which will enter undefined behavior if rhs
contains zeros.source§fn mul<O>(
self,
rhs: O
) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where
O: NDArray<DType = Self::DType> + Sized,
fn mul<O>( self, rhs: O ) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where O: NDArray<DType = Self::DType> + Sized,
Construct an array multiplication operation with the given
rhs
.source§fn rem<O>(
self,
rhs: O
) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where
O: NDArray<DType = Self::DType> + Sized,
fn rem<O>( self, rhs: O ) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where O: NDArray<DType = Self::DType> + Sized,
Construct an array modulo operation with the given
rhs
.source§fn sub<O>(
self,
rhs: O
) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where
O: NDArray<DType = Self::DType> + Sized,
fn sub<O>( self, rhs: O ) -> Result<ArrayOp<ArrayDual<Self::DType, Self, O>>, Error>where O: NDArray<DType = Self::DType> + Sized,
Construct an array subtraction operation with the given
rhs
.source§impl<A> NDArrayMathScalar for Awhere
A: NDArray,
impl<A> NDArrayMathScalar for Awhere A: NDArray,
source§fn add_scalar(
self,
rhs: Self::DType
) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
fn add_scalar( self, rhs: Self::DType ) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
Construct a scalar addition operation.
source§fn div_scalar(
self,
rhs: Self::DType
) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
fn div_scalar( self, rhs: Self::DType ) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
Construct a scalar division operation.
source§fn mul_scalar(
self,
rhs: Self::DType
) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
fn mul_scalar( self, rhs: Self::DType ) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
Construct a scalar multiplication operation.
source§fn rem_scalar(
self,
rhs: Self::DType
) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
fn rem_scalar( self, rhs: Self::DType ) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
Construct a scalar modulo operation.
source§fn sub_scalar(
self,
rhs: Self::DType
) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
fn sub_scalar( self, rhs: Self::DType ) -> Result<ArrayOp<ArrayScalar<Self::DType, Self>>, Error>
Construct a scalar subtraction operation.
source§impl<A> NDArrayReduceAll for Awhere
A: NDArrayRead,
impl<A> NDArrayReduceAll for Awhere A: NDArrayRead,
source§impl<A> NDArrayReduceBoolean for Awhere
A: NDArrayRead,
impl<A> NDArrayReduceBoolean for Awhere A: NDArrayRead,
source§impl<A> NDArrayTrig for Awhere
A: NDArray,
impl<A> NDArrayTrig for Awhere A: NDArray,
source§fn asin(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
fn asin( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
Construct a new arcsine operation.
source§fn sin(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
fn sin( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
Construct a new sine operation.
source§fn sinh(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
fn sinh( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
Construct a new hyperbolic sine operation.
source§fn acos(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
fn acos( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
Construct a new arccosine operation.
source§fn cos(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
fn cos( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
Construct a new cosine operation.
source§fn cosh(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
fn cosh( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
Construct a new hyperbolic cosine operation.
source§fn atan(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
fn atan( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, <Self::DType as CDatatype>::Float, Self>>, Error>
Construct a new arctangent operation.
source§impl<A> NDArrayUnary for Awhere
A: NDArray,
impl<A> NDArrayUnary for Awhere A: NDArray,
source§fn abs(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, Self::DType, Self>>, Error>
fn abs( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, Self::DType, Self>>, Error>
Construct an absolute value operation.
source§fn exp(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, Self::DType, Self>>, Error>
fn exp( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, Self::DType, Self>>, Error>
Construct an exponentiation operation.
source§fn ln(
self
) -> Result<ArrayOp<ArrayUnary<Self::DType, Self::DType, Self>>, Error>
fn ln( self ) -> Result<ArrayOp<ArrayUnary<Self::DType, Self::DType, Self>>, Error>
Construct a natural logarithm operation.
source§impl<A> NDArrayWhere for Awhere
A: NDArray<DType = u8> + Debug,
impl<A> NDArrayWhere for Awhere A: NDArray<DType = u8> + Debug,
source§fn cond<T, L, R>(
self,
then: L,
or_else: R
) -> Result<ArrayOp<GatherCond<Self, T, L, R>>, Error>where
T: CDatatype,
L: NDArray<DType = T> + Debug,
R: NDArray<DType = T> + Debug,
Self: Sized,
fn cond<T, L, R>( self, then: L, or_else: R ) -> Result<ArrayOp<GatherCond<Self, T, L, R>>, Error>where T: CDatatype, L: NDArray<DType = T> + Debug, R: NDArray<DType = T> + Debug, Self: Sized,
Construct a boolean selection operation.
The resulting array will return values from
then
where self
is true
and from or_else
where self
is false
.