Struct tc_collection::tensor::sparse::SparseTensor
source · pub struct SparseTensor<Txn, FE, A> { /* private fields */ }
Implementations§
source§impl<Txn, FE, A> SparseTensor<Txn, FE, A>
impl<Txn, FE, A> SparseTensor<Txn, FE, A>
pub fn into_inner(self) -> A
source§impl<Txn, FE, T: CType> SparseTensor<Txn, FE, SparseAccess<Txn, FE, T>>
impl<Txn, FE, T: CType> SparseTensor<Txn, FE, SparseAccess<Txn, FE, T>>
pub fn from_access<A: Into<SparseAccess<Txn, FE, T>>>(accessor: A) -> Self
source§impl<Txn, FE, A> SparseTensor<Txn, FE, A>
impl<Txn, FE, A> SparseTensor<Txn, FE, A>
Trait Implementations§
source§impl<Txn, FE, A: Clone> Clone for SparseTensor<Txn, FE, A>
impl<Txn, FE, A: Clone> Clone for SparseTensor<Txn, FE, A>
source§impl<Txn, FE, A: Debug> Debug for SparseTensor<Txn, FE, A>
impl<Txn, FE, A: Debug> Debug for SparseTensor<Txn, FE, A>
source§impl<Txn, FE, A> From<A> for SparseTensor<Txn, FE, A>
impl<Txn, FE, A> From<A> for SparseTensor<Txn, FE, A>
source§impl<Txn, FE> From<SparseTensor<Txn, FE, SparseAccess<Txn, FE, f32>>> for SparseView<Txn, FE>
impl<Txn, FE> From<SparseTensor<Txn, FE, SparseAccess<Txn, FE, f32>>> for SparseView<Txn, FE>
source§fn from(tensor: SparseTensor<Txn, FE, SparseAccess<Txn, FE, f32>>) -> Self
fn from(tensor: SparseTensor<Txn, FE, SparseAccess<Txn, FE, f32>>) -> Self
Converts to this type from the input type.
source§impl<Txn, FE> From<SparseTensor<Txn, FE, SparseAccess<Txn, FE, f64>>> for SparseView<Txn, FE>
impl<Txn, FE> From<SparseTensor<Txn, FE, SparseAccess<Txn, FE, f64>>> for SparseView<Txn, FE>
source§fn from(tensor: SparseTensor<Txn, FE, SparseAccess<Txn, FE, f64>>) -> Self
fn from(tensor: SparseTensor<Txn, FE, SparseAccess<Txn, FE, f64>>) -> Self
Converts to this type from the input type.
source§impl<Txn, FE, L, R> TensorBoolean<SparseTensor<Txn, FE, R>> for SparseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
L: SparseInstance + Into<SparseAccess<Txn, FE, L::DType>>,
R: SparseInstance<DType = L::DType> + Into<SparseAccess<Txn, FE, R::DType>>,
Number: From<L::DType> + From<R::DType>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, L::DType>>,
impl<Txn, FE, L, R> TensorBoolean<SparseTensor<Txn, FE, R>> for SparseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
L: SparseInstance + Into<SparseAccess<Txn, FE, L::DType>>,
R: SparseInstance<DType = L::DType> + Into<SparseAccess<Txn, FE, R::DType>>,
Number: From<L::DType> + From<R::DType>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, L::DType>>,
§type Combine = SparseTensor<Txn, FE, SparseCompare<Txn, FE, u8>>
type Combine = SparseTensor<Txn, FE, SparseCompare<Txn, FE, u8>>
The result type of a boolean operation.
§type LeftCombine = SparseTensor<Txn, FE, SparseCompareLeft<Txn, FE, u8>>
type LeftCombine = SparseTensor<Txn, FE, SparseCompareLeft<Txn, FE, u8>>
The result type of a boolean operation which may ignore right-hand values.
source§fn and(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn and(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Logical and
source§impl<Txn, FE, A> TensorBooleanConst for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
DenseAccess<Txn, FE, A::DType>: From<DenseSparse<A>>,
DenseAccessCast<Txn, FE>: From<DenseAccess<Txn, FE, A::DType>>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, A::DType>>,
impl<Txn, FE, A> TensorBooleanConst for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
DenseAccess<Txn, FE, A::DType>: From<DenseSparse<A>>,
DenseAccessCast<Txn, FE>: From<DenseAccess<Txn, FE, A::DType>>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, A::DType>>,
§type Combine = SparseTensor<Txn, FE, SparseCompareConst<Txn, FE, u8>>
type Combine = SparseTensor<Txn, FE, SparseCompareConst<Txn, FE, u8>>
The return type of a boolean operation.
source§impl<Txn, FE, L, R> TensorCompare<SparseTensor<Txn, FE, R>> for SparseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
L: SparseInstance + Into<SparseAccess<Txn, FE, L::DType>> + Debug,
R: SparseInstance<DType = L::DType> + Into<SparseAccess<Txn, FE, R::DType>> + Debug,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, L::DType>>,
impl<Txn, FE, L, R> TensorCompare<SparseTensor<Txn, FE, R>> for SparseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
L: SparseInstance + Into<SparseAccess<Txn, FE, L::DType>> + Debug,
R: SparseInstance<DType = L::DType> + Into<SparseAccess<Txn, FE, R::DType>> + Debug,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, L::DType>>,
§type Compare = SparseTensor<Txn, FE, SparseCompare<Txn, FE, u8>>
type Compare = SparseTensor<Txn, FE, SparseCompare<Txn, FE, u8>>
The result of a comparison operation
source§fn gt(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
fn gt(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
Element-wise greater-than
source§fn ge(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
fn ge(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
Element-wise greater-or-equal
source§fn lt(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
fn lt(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Compare>
Element-wise less-than
source§impl<Txn, FE, A> TensorCompareConst for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, A::DType>>,
impl<Txn, FE, A> TensorCompareConst for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, A::DType>>,
§type Compare = SparseTensor<Txn, FE, SparseCompareConst<Txn, FE, u8>>
type Compare = SparseTensor<Txn, FE, SparseCompareConst<Txn, FE, u8>>
The result of a comparison operation
source§impl<Txn, FE, Cond, Then, OrElse, T> TensorCond<SparseTensor<Txn, FE, Then>, SparseTensor<Txn, FE, OrElse>> for SparseTensor<Txn, FE, Cond>where
Txn: ThreadSafe,
FE: ThreadSafe,
Cond: SparseInstance<DType = u8> + Debug,
Then: SparseInstance<DType = T> + Debug,
OrElse: SparseInstance<DType = T> + Debug,
impl<Txn, FE, Cond, Then, OrElse, T> TensorCond<SparseTensor<Txn, FE, Then>, SparseTensor<Txn, FE, OrElse>> for SparseTensor<Txn, FE, Cond>where
Txn: ThreadSafe,
FE: ThreadSafe,
Cond: SparseInstance<DType = u8> + Debug,
Then: SparseInstance<DType = T> + Debug,
OrElse: SparseInstance<DType = T> + Debug,
§type Cond = SparseTensor<Txn, FE, SparseCond<Cond, Then, OrElse>>
type Cond = SparseTensor<Txn, FE, SparseCond<Cond, Then, OrElse>>
The type of
Tensor
returned by cond
source§fn cond(
self,
then: SparseTensor<Txn, FE, Then>,
or_else: SparseTensor<Txn, FE, OrElse>
) -> TCResult<Self::Cond>
fn cond( self, then: SparseTensor<Txn, FE, Then>, or_else: SparseTensor<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 SparseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorConvert for SparseTensor<Txn, FE, A>
§type Dense = DenseTensor<Txn, FE, DenseSparse<A>>
type Dense = DenseTensor<Txn, FE, DenseSparse<A>>
A dense representation of this
Tensor
§type Sparse = SparseTensor<Txn, FE, A>
type Sparse = SparseTensor<Txn, FE, A>
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> TensorInstance for SparseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorInstance for SparseTensor<Txn, FE, A>
source§impl<Txn, FE, L, R, T> TensorMath<SparseTensor<Txn, FE, R>> for SparseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
L: SparseInstance<DType = T>,
R: SparseInstance<DType = T>,
T: CType + DType,
impl<Txn, FE, L, R, T> TensorMath<SparseTensor<Txn, FE, R>> for SparseTensor<Txn, FE, L>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
L: SparseInstance<DType = T>,
R: SparseInstance<DType = T>,
T: CType + DType,
§type Combine = SparseTensor<Txn, FE, SparseCombine<L, R, T>>
type Combine = SparseTensor<Txn, FE, SparseCombine<L, R, T>>
The result type of a math operation
§type LeftCombine = SparseTensor<Txn, FE, SparseCombineLeft<L, R, T>>
type LeftCombine = SparseTensor<Txn, FE, SparseCombineLeft<L, R, T>>
The result type of a math operation which may ignore right-hand-side values
source§fn add(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Combine>
fn add(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::Combine>
Add two tensors together.
source§fn div(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn div(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Divide
self
by other
.source§fn log(self, base: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn log(self, base: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Element-wise logarithm of
self
with respect to the given base
.source§fn mul(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn mul(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Multiply two tensors together.
source§fn pow(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
fn pow(self, other: SparseTensor<Txn, FE, R>) -> TCResult<Self::LeftCombine>
Raise
self
to the power of other
.source§impl<Txn, FE, A> TensorMathConst for SparseTensor<Txn, FE, A>where
Txn: ThreadSafe,
FE: ThreadSafe,
A: SparseInstance,
A::DType: CastFrom<Number>,
<A::DType as CType>::Float: CastFrom<Number>,
Number: From<A::DType>,
impl<Txn, FE, A> TensorMathConst for SparseTensor<Txn, FE, A>where
Txn: ThreadSafe,
FE: ThreadSafe,
A: SparseInstance,
A::DType: CastFrom<Number>,
<A::DType as CType>::Float: CastFrom<Number>,
Number: From<A::DType>,
§type Combine = SparseTensor<Txn, FE, SparseCombineConst<A, <A as SparseInstance>::DType>>
type Combine = SparseTensor<Txn, FE, SparseCombineConst<A, <A as SparseInstance>::DType>>
The return type of a math operation
source§impl<Txn, FE, A> TensorRead for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: ThreadSafe,
A: SparseInstance + TensorPermitRead,
Number: From<A::DType>,
impl<Txn, FE, A> TensorRead for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: ThreadSafe,
A: SparseInstance + TensorPermitRead,
Number: From<A::DType>,
source§impl<Txn, FE, A> TensorReduce for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<A::DType>> + AsType<Node>,
A: SparseInstance + TensorPermitRead + Clone,
A::DType: Debug,
Buffer<A::DType>: FromStream<Context = ()>,
Number: From<A::DType> + CastInto<A::DType>,
SparseAccess<Txn, FE, A::DType>: From<A>,
impl<Txn, FE, A> TensorReduce for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: DenseCacheFile + AsType<Buffer<A::DType>> + AsType<Node>,
A: SparseInstance + TensorPermitRead + Clone,
A::DType: Debug,
Buffer<A::DType>: FromStream<Context = ()>,
Number: From<A::DType> + CastInto<A::DType>,
SparseAccess<Txn, FE, A::DType>: From<A>,
§type Reduce = SparseTensor<Txn, FE, SparseReduce<Txn, FE, <A as SparseInstance>::DType>>
type Reduce = SparseTensor<Txn, FE, SparseReduce<Txn, FE, <A as SparseInstance>::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 SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
A::DType: CastFrom<Number> + Debug,
Number: From<A::DType>,
impl<Txn, FE, A> TensorTransform for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
A::DType: CastFrom<Number> + Debug,
Number: From<A::DType>,
§type Broadcast = SparseTensor<Txn, FE, SparseBroadcast<Txn, FE, <A as SparseInstance>::DType>>
type Broadcast = SparseTensor<Txn, FE, SparseBroadcast<Txn, FE, <A as SparseInstance>::DType>>
A broadcast
Tensor
§type Expand = SparseTensor<Txn, FE, SparseExpand<A>>
type Expand = SparseTensor<Txn, FE, SparseExpand<A>>
A
Tensor
with an expanded dimension§type Reshape = SparseTensor<Txn, FE, SparseReshape<A>>
type Reshape = SparseTensor<Txn, FE, SparseReshape<A>>
A reshaped
Tensor
§type Slice = SparseTensor<Txn, FE, SparseSlice<A>>
type Slice = SparseTensor<Txn, FE, SparseSlice<A>>
A
Tensor
slice§type Transpose = SparseTensor<Txn, FE, SparseTranspose<A>>
type Transpose = SparseTensor<Txn, FE, SparseTranspose<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, FE, A> TensorUnary for SparseTensor<Txn, FE, A>
impl<Txn, FE, A> TensorUnary for SparseTensor<Txn, FE, A>
§type Unary = SparseTensor<Txn, FE, SparseUnary<A, <A as SparseInstance>::DType>>
type Unary = SparseTensor<Txn, FE, SparseUnary<A, <A as SparseInstance>::DType>>
The return type of a unary operation
source§impl<Txn, FE, A> TensorUnaryBoolean for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, A::DType>>,
impl<Txn, FE, A> TensorUnaryBoolean for SparseTensor<Txn, FE, A>where
Txn: Transaction<FE>,
FE: AsType<Node> + ThreadSafe,
A: SparseInstance + Into<SparseAccess<Txn, FE, A::DType>>,
SparseAccessCast<Txn, FE>: From<SparseAccess<Txn, FE, A::DType>>,
§type Unary = SparseTensor<Txn, FE, SparseUnaryCast<Txn, FE, u8>>
type Unary = SparseTensor<Txn, FE, SparseUnaryCast<Txn, FE, u8>>
The return type of a unary operation
Auto Trait Implementations§
impl<Txn, FE, A> RefUnwindSafe for SparseTensor<Txn, FE, A>
impl<Txn, FE, A> Send for SparseTensor<Txn, FE, A>
impl<Txn, FE, A> Sync for SparseTensor<Txn, FE, A>
impl<Txn, FE, A> Unpin for SparseTensor<Txn, FE, A>
impl<Txn, FE, A> UnwindSafe for SparseTensor<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
.