Struct tc_collection::tensor::dense::DenseTensor
source · pub struct DenseTensor<Txn, FE, A> { /* private fields */ }
Implementations§
source§impl<Txn, FE, A> DenseTensor<Txn, FE, A>
impl<Txn, FE, A> DenseTensor<Txn, FE, A>
pub fn into_inner(self) -> A
source§impl<Txn, FE, T: CType> DenseTensor<Txn, FE, DenseAccess<Txn, FE, T>>
impl<Txn, FE, T: CType> DenseTensor<Txn, FE, DenseAccess<Txn, FE, T>>
pub fn from_access<A: Into<DenseAccess<Txn, FE, T>>>(accessor: A) -> Self
Trait Implementations§
source§impl<Txn, FE, A: Clone> Clone for DenseTensor<Txn, FE, A>
impl<Txn, FE, A: Clone> Clone for DenseTensor<Txn, FE, A>
source§impl<Txn, FE, A: Debug> Debug for DenseTensor<Txn, FE, A>
impl<Txn, FE, A: Debug> Debug for DenseTensor<Txn, FE, A>
source§impl<Txn, FE, A> From<A> for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> From<A> for DenseTensor<Txn, FE, A>
source§impl<Txn, FE> From<DenseTensor<Txn, FE, DenseAccess<Txn, FE, f32>>> for DenseView<Txn, FE>
impl<Txn, FE> From<DenseTensor<Txn, FE, DenseAccess<Txn, FE, f32>>> for DenseView<Txn, FE>
source§fn from(tensor: DenseTensor<Txn, FE, DenseAccess<Txn, FE, f32>>) -> Self
fn from(tensor: DenseTensor<Txn, FE, DenseAccess<Txn, FE, f32>>) -> Self
Converts to this type from the input type.
source§impl<Txn, FE> From<DenseTensor<Txn, FE, DenseAccess<Txn, FE, f64>>> for DenseView<Txn, FE>
impl<Txn, FE> From<DenseTensor<Txn, FE, DenseAccess<Txn, FE, f64>>> for DenseView<Txn, FE>
source§fn from(tensor: DenseTensor<Txn, FE, DenseAccess<Txn, FE, f64>>) -> Self
fn from(tensor: DenseTensor<Txn, FE, DenseAccess<Txn, FE, f64>>) -> Self
Converts to this type from the input type.
source§impl<Txn, FE, L, R, T> TensorBoolean<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<T>> + AsType<Node>,
L: DenseInstance<DType = T> + Into<DenseAccess<Txn, FE, T>> + Debug,
R: DenseInstance<DType = T> + Into<DenseAccess<Txn, FE, T>> + Debug,
T: CType + DType + Debug,
DenseAccessCast<Txn, FE>: From<DenseAccess<Txn, FE, T>>,
DenseTensor<Txn, FE, R>: Debug,
Buffer<T>: FromStream<Context = ()>,
Number: From<T> + CastInto<T>,
Self: Debug,
impl<Txn, FE, L, R, T> TensorBoolean<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<T>> + AsType<Node>,
L: DenseInstance<DType = T> + Into<DenseAccess<Txn, FE, T>> + Debug,
R: DenseInstance<DType = T> + Into<DenseAccess<Txn, FE, T>> + Debug,
T: CType + DType + Debug,
DenseAccessCast<Txn, FE>: From<DenseAccess<Txn, FE, T>>,
DenseTensor<Txn, FE, R>: Debug,
Buffer<T>: FromStream<Context = ()>,
Number: From<T> + CastInto<T>,
Self: Debug,
§type Combine = DenseTensor<Txn, FE, DenseCompare<Txn, FE, u8>>
type Combine = DenseTensor<Txn, FE, DenseCompare<Txn, FE, u8>>
The result type of a boolean operation.
§type LeftCombine = DenseTensor<Txn, FE, DenseCompare<Txn, FE, u8>>
type LeftCombine = DenseTensor<Txn, FE, DenseCompare<Txn, FE, u8>>
The result type of a boolean operation which may ignore right-hand values.
source§fn and(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn and(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Logical and
source§fn or(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn or(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Logical or
source§fn xor(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn xor(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Logical xor
source§impl<Txn, FE, A> TensorBooleanConst for DenseTensor<Txn, FE, A>where
Txn: ThreadSafe,
FE: ThreadSafe,
A: DenseInstance + Into<DenseAccess<Txn, FE, A::DType>>,
DenseAccessCast<Txn, FE>: From<DenseAccess<Txn, FE, A::DType>>,
impl<Txn, FE, A> TensorBooleanConst for DenseTensor<Txn, FE, A>where
Txn: ThreadSafe,
FE: ThreadSafe,
A: DenseInstance + Into<DenseAccess<Txn, FE, A::DType>>,
DenseAccessCast<Txn, FE>: From<DenseAccess<Txn, FE, A::DType>>,
§type Combine = DenseTensor<Txn, FE, DenseCompareConst<Txn, FE, u8>>
type Combine = DenseTensor<Txn, FE, DenseCompareConst<Txn, FE, u8>>
The return type of a boolean operation.
source§impl<Txn, FE, L, R, T> TensorCompare<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: ThreadSafe,
FE: ThreadSafe,
L: DenseInstance<DType = T> + Into<DenseAccessCast<Txn, FE>>,
R: DenseInstance<DType = T> + Into<DenseAccessCast<Txn, FE>>,
T: CType + DType,
impl<Txn, FE, L, R, T> TensorCompare<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: ThreadSafe,
FE: ThreadSafe,
L: DenseInstance<DType = T> + Into<DenseAccessCast<Txn, FE>>,
R: DenseInstance<DType = T> + Into<DenseAccessCast<Txn, FE>>,
T: CType + DType,
§type Compare = DenseTensor<Txn, FE, DenseCompare<Txn, FE, u8>>
type Compare = DenseTensor<Txn, FE, DenseCompare<Txn, FE, u8>>
The result of a comparison operation
source§fn gt(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
fn gt(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
Element-wise greater-than
source§fn ge(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
fn ge(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
Element-wise greater-or-equal
source§impl<Txn, FE, A> TensorCompareConst for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorCompareConst for DenseTensor<Txn, FE, A>
§type Compare = DenseTensor<Txn, FE, DenseCompareConst<Txn, FE, u8>>
type Compare = DenseTensor<Txn, FE, DenseCompareConst<Txn, FE, u8>>
The result of a comparison operation
source§impl<Txn, FE, Cond, Then, OrElse, T> TensorCond<DenseTensor<Txn, FE, Then>, DenseTensor<Txn, FE, OrElse>> for DenseTensor<Txn, FE, Cond>where
Txn: ThreadSafe,
FE: ThreadSafe,
Cond: DenseInstance<DType = u8> + Debug,
Then: DenseInstance<DType = T> + Debug,
OrElse: DenseInstance<DType = T> + Debug,
T: CType,
impl<Txn, FE, Cond, Then, OrElse, T> TensorCond<DenseTensor<Txn, FE, Then>, DenseTensor<Txn, FE, OrElse>> for DenseTensor<Txn, FE, Cond>where
Txn: ThreadSafe,
FE: ThreadSafe,
Cond: DenseInstance<DType = u8> + Debug,
Then: DenseInstance<DType = T> + Debug,
OrElse: DenseInstance<DType = T> + Debug,
T: CType,
§type Cond = DenseTensor<Txn, FE, DenseCond<Cond, Then, OrElse>>
type Cond = DenseTensor<Txn, FE, DenseCond<Cond, Then, OrElse>>
The type of
Tensor
returned by cond
source§fn cond(
self,
then: DenseTensor<Txn, FE, Then>,
or_else: DenseTensor<Txn, FE, OrElse>
) -> TCResult<Self::Cond>
fn cond( self, then: DenseTensor<Txn, FE, Then>, or_else: DenseTensor<Txn, FE, OrElse> ) -> TCResult<Self::Cond>
Use this tensor as a condition to select elements from
then
or or_else
.source§impl<Txn, FE, A> TensorConvert for DenseTensor<Txn, FE, A>where
Txn: ThreadSafe,
FE: ThreadSafe,
A: DenseInstance + Into<DenseAccess<Txn, FE, A::DType>> + Clone,
impl<Txn, FE, A> TensorConvert for DenseTensor<Txn, FE, A>where
Txn: ThreadSafe,
FE: ThreadSafe,
A: DenseInstance + Into<DenseAccess<Txn, FE, A::DType>> + Clone,
§type Dense = DenseTensor<Txn, FE, A>
type Dense = DenseTensor<Txn, FE, A>
A dense representation of this
Tensor
§type Sparse = SparseTensor<Txn, FE, SparseDense<Txn, FE, <A as DenseInstance>::DType>>
type Sparse = SparseTensor<Txn, FE, SparseDense<Txn, FE, <A as DenseInstance>::DType>>
A sparse representation of this
Tensor
source§fn into_dense(self) -> Self::Dense
fn into_dense(self) -> Self::Dense
Return a dense representation of this
Tensor
.source§fn into_sparse(self) -> Self::Sparse
fn into_sparse(self) -> Self::Sparse
Return a sparse representation of this
Tensor
.source§impl<Txn, FE, A> TensorDiagonal for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorDiagonal for DenseTensor<Txn, FE, A>
§type Diagonal = DenseTensor<Txn, FE, DenseDiagonal<A>>
type Diagonal = DenseTensor<Txn, FE, DenseDiagonal<A>>
The type of
Tensor
returned by diagonal
fn diagonal(self) -> TCResult<Self::Diagonal>
source§impl<Txn, FE, A> TensorInstance for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorInstance for DenseTensor<Txn, FE, A>
source§impl<Txn, FE, L, R, T> TensorMatMul<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: ThreadSafe,
FE: ThreadSafe,
L: DenseInstance<DType = T>,
R: DenseInstance<DType = T>,
T: CType + DType,
impl<Txn, FE, L, R, T> TensorMatMul<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: ThreadSafe,
FE: ThreadSafe,
L: DenseInstance<DType = T>,
R: DenseInstance<DType = T>,
T: CType + DType,
§type MatMul = DenseTensor<Txn, FE, DenseMatMul<L, R>>
type MatMul = DenseTensor<Txn, FE, DenseMatMul<L, R>>
The type of
Tensor
returned by matmul
fn matmul(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::MatMul>
source§impl<Txn, FE, L, R, T> TensorMath<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: ThreadSafe,
FE: ThreadSafe,
L: DenseInstance<DType = T>,
R: DenseInstance<DType = T>,
T: CType + DType,
impl<Txn, FE, L, R, T> TensorMath<DenseTensor<Txn, FE, R>> for DenseTensor<Txn, FE, L>where
Txn: ThreadSafe,
FE: ThreadSafe,
L: DenseInstance<DType = T>,
R: DenseInstance<DType = T>,
T: CType + DType,
§type Combine = DenseTensor<Txn, FE, DenseCombine<L, R, T>>
type Combine = DenseTensor<Txn, FE, DenseCombine<L, R, T>>
The result type of a math operation
§type LeftCombine = DenseTensor<Txn, FE, DenseCombine<L, R, T>>
type LeftCombine = DenseTensor<Txn, FE, DenseCombine<L, R, T>>
The result type of a math operation which may ignore right-hand-side values
source§fn add(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::Combine>
fn add(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::Combine>
Add two tensors together.
source§fn div(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn div(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Divide
self
by other
.source§fn log(self, base: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn log(self, base: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Element-wise logarithm of
self
with respect to the given base
.source§fn mul(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn mul(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Multiply two tensors together.
source§fn pow(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn pow(self, other: DenseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Raise
self
to the power of other
.source§impl<Txn, FE, A> TensorMathConst for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorMathConst for DenseTensor<Txn, FE, A>
§type Combine = DenseTensor<Txn, FE, DenseConst<A, <A as DenseInstance>::DType>>
type Combine = DenseTensor<Txn, FE, DenseConst<A, <A as DenseInstance>::DType>>
The return type of a math operation
source§impl<Txn, FE, A> TensorRead for DenseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<A::DType>> + AsType<Node>,
A: DenseInstance + TensorPermitRead,
Number: From<A::DType>,
impl<Txn, FE, A> TensorRead for DenseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<A::DType>> + AsType<Node>,
A: DenseInstance + TensorPermitRead,
Number: From<A::DType>,
source§impl<Txn, FE, A> TensorReduce for DenseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<A::DType>> + AsType<Node>,
A: DenseInstance + TensorPermitRead + Into<DenseAccess<Txn, FE, A::DType>> + Clone,
A::DType: Debug,
Buffer<A::DType>: FromStream<Context = ()>,
Number: From<A::DType> + CastInto<A::DType>,
impl<Txn, FE, A> TensorReduce for DenseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<A::DType>> + AsType<Node>,
A: DenseInstance + TensorPermitRead + Into<DenseAccess<Txn, FE, A::DType>> + Clone,
A::DType: Debug,
Buffer<A::DType>: FromStream<Context = ()>,
Number: From<A::DType> + CastInto<A::DType>,
§type Reduce = DenseTensor<Txn, FE, DenseReduce<DenseAccess<Txn, FE, <A as DenseInstance>::DType>, <A as DenseInstance>::DType>>
type Reduce = DenseTensor<Txn, FE, DenseReduce<DenseAccess<Txn, FE, <A as DenseInstance>::DType>, <A as DenseInstance>::DType>>
The result type of a reduce operation
source§fn all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
fn all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
Return
true
if all elements in this Tensor
are nonzero.source§fn any<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
fn any<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
Return
true
if any element in this Tensor
is nonzero.source§fn max(self, axes: Axes, keepdims: bool) -> TCResult<Self::Reduce>
fn max(self, axes: Axes, keepdims: bool) -> TCResult<Self::Reduce>
Return the maximum of this
Tensor
along the given axis
.source§fn max_all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<Number>> + Send + 'async_trait>>where
Self: 'async_trait,
fn max_all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<Number>> + Send + 'async_trait>>where
Self: 'async_trait,
Return the maximum element in this
Tensor
.source§fn min(self, axes: Axes, keepdims: bool) -> TCResult<Self::Reduce>
fn min(self, axes: Axes, keepdims: bool) -> TCResult<Self::Reduce>
Return the minimum of this
Tensor
along the given axis
.source§fn min_all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<Number>> + Send + 'async_trait>>where
Self: 'async_trait,
fn min_all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<Number>> + Send + 'async_trait>>where
Self: 'async_trait,
Return the minimum element in this
Tensor
.source§fn product(self, axes: Axes, keepdims: bool) -> TCResult<Self::Reduce>
fn product(self, axes: Axes, keepdims: bool) -> TCResult<Self::Reduce>
Return the product of this
Tensor
along the given axis
.source§fn product_all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<Number>> + Send + 'async_trait>>where
Self: 'async_trait,
fn product_all<'async_trait>(
self,
txn_id: TxnId
) -> Pin<Box<dyn Future<Output = TCResult<Number>> + Send + 'async_trait>>where
Self: 'async_trait,
Return the product of all elements in this
Tensor
.source§impl<Txn, FE, A> TensorTransform for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorTransform for DenseTensor<Txn, FE, A>
§type Broadcast = DenseTensor<Txn, FE, DenseBroadcast<A>>
type Broadcast = DenseTensor<Txn, FE, DenseBroadcast<A>>
A broadcast
Tensor
§type Expand = DenseTensor<Txn, FE, DenseExpand<A>>
type Expand = DenseTensor<Txn, FE, DenseExpand<A>>
A
Tensor
with an expanded dimension§type Reshape = DenseTensor<Txn, FE, DenseReshape<A>>
type Reshape = DenseTensor<Txn, FE, DenseReshape<A>>
A reshaped
Tensor
§type Slice = DenseTensor<Txn, FE, DenseSlice<A>>
type Slice = DenseTensor<Txn, FE, DenseSlice<A>>
A
Tensor
slice§type Transpose = DenseTensor<Txn, FE, DenseTranspose<A>>
type Transpose = DenseTensor<Txn, FE, DenseTranspose<A>>
A transposed
Tensor
source§fn broadcast(self, shape: Shape) -> TCResult<Self::Broadcast>
fn broadcast(self, shape: Shape) -> TCResult<Self::Broadcast>
Broadcast this
Tensor
to the given shape
.source§fn expand(self, axes: Axes) -> TCResult<Self::Expand>
fn expand(self, axes: Axes) -> TCResult<Self::Expand>
Insert a new dimension of size 1 at each of the given
axes
.source§impl<Txn: ThreadSafe, FE: ThreadSafe, A: DenseInstance> TensorUnary for DenseTensor<Txn, FE, A>
impl<Txn: ThreadSafe, FE: ThreadSafe, A: DenseInstance> TensorUnary for DenseTensor<Txn, FE, A>
§type Unary = DenseTensor<Txn, FE, DenseUnary<A, <A as DenseInstance>::DType>>
type Unary = DenseTensor<Txn, FE, DenseUnary<A, <A as DenseInstance>::DType>>
The return type of a unary operation
source§impl<Txn, FE, A> TensorUnaryBoolean for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorUnaryBoolean for DenseTensor<Txn, FE, A>
§type Unary = DenseTensor<Txn, FE, DenseUnaryCast<Txn, FE, u8>>
type Unary = DenseTensor<Txn, FE, DenseUnaryCast<Txn, FE, u8>>
The return type of a unary operation
Auto Trait Implementations§
impl<Txn, FE, A> RefUnwindSafe for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> Send for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> Sync for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> Unpin for DenseTensor<Txn, FE, A>
impl<Txn, FE, A> UnwindSafe for DenseTensor<Txn, FE, A>
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<F> Match for F
impl<F> Match for F
source§fn matches<T>(&self) -> boolwhere
T: TryCastFrom<Self>,
fn matches<T>(&self) -> boolwhere
T: TryCastFrom<Self>,
Returns
true
if self
can be cast into the target type T
.§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<F, T> TryCastFrom<F> for Twhere
T: CastFrom<F>,
impl<F, T> TryCastFrom<F> for Twhere
T: CastFrom<F>,
source§fn can_cast_from(_: &F) -> bool
fn can_cast_from(_: &F) -> bool
Test if
value
can be cast into Self
.source§fn opt_cast_from(f: F) -> Option<T>
fn opt_cast_from(f: F) -> Option<T>
Returns
Some(Self)
if the source value can be cast into Self
, otherwise None
.source§impl<F, T> TryCastInto<T> for Fwhere
T: TryCastFrom<F>,
impl<F, T> TryCastInto<T> for Fwhere
T: TryCastFrom<F>,
source§fn can_cast_into(&self) -> bool
fn can_cast_into(&self) -> bool
Test if
self
can be cast into T
.source§fn opt_cast_into(self) -> Option<T>
fn opt_cast_into(self) -> Option<T>
Returns
Some(T)
if self
can be cast into T
, otherwise None
.