pub struct SparseTensorIndexCOO<'a> {
    pub _tab: Table<'a>,
}
Expand description

EXPERIMENTAL: Data structures for sparse tensors Coordinate (COO) format of sparse tensor index.

COO’s index list are represented as a NxM matrix, where N is the number of non-zero values, and M is the number of dimensions of a sparse tensor.

indicesBuffer stores the location and size of the data of this indices matrix. The value type and the stride of the indices matrix is specified in indicesType and indicesStrides fields.

For example, let X be a 2x3x4x5 tensor, and it has the following 6 non-zero values:

  X[0, 1, 2, 0] := 1
  X[1, 1, 2, 3] := 2
  X[0, 2, 1, 0] := 3
  X[0, 1, 3, 0] := 4
  X[0, 1, 2, 1] := 5
  X[1, 2, 0, 4] := 6

In COO format, the index matrix of X is the following 4x6 matrix:

  [[0, 0, 0, 0, 1, 1],
   [1, 1, 1, 2, 1, 2],
   [2, 2, 3, 1, 2, 0],
   [0, 1, 0, 0, 3, 4]]

When isCanonical is true, the indices is sorted in lexicographical order (row-major order), and it does not have duplicated entries. Otherwise, the indices may not be sorted, or may have duplicated entries.

Fields§

§_tab: Table<'a>

Implementations§

source§

impl<'a> SparseTensorIndexCOO<'a>

source

pub const VT_INDICESTYPE: VOffsetT = 4u16

source

pub const VT_INDICESSTRIDES: VOffsetT = 6u16

source

pub const VT_INDICESBUFFER: VOffsetT = 8u16

source

pub const VT_ISCANONICAL: VOffsetT = 10u16

source

pub unsafe fn init_from_table(table: Table<'a>) -> Self

source

pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut FlatBufferBuilder<'bldr>, args: &'args SparseTensorIndexCOOArgs<'args> ) -> WIPOffset<SparseTensorIndexCOO<'bldr>>

source

pub fn indicesType(&self) -> Int<'a>

The type of values in indicesBuffer

source

pub fn indicesStrides(&self) -> Option<Vector<'a, i64>>

Non-negative byte offsets to advance one value cell along each dimension If omitted, default to row-major order (C-like).

source

pub fn indicesBuffer(&self) -> &'a Buffer

The location and size of the indices matrix’s data

source

pub fn isCanonical(&self) -> bool

This flag is true if and only if the indices matrix is sorted in row-major order, and does not have duplicated entries. This sort order is the same as of Tensorflow’s SparseTensor, but it is inverse order of SciPy’s canonical coo_matrix (SciPy employs column-major order for its coo_matrix).

Trait Implementations§

source§

impl<'a> Clone for SparseTensorIndexCOO<'a>

source§

fn clone(&self) -> SparseTensorIndexCOO<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SparseTensorIndexCOO<'_>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> Follow<'a> for SparseTensorIndexCOO<'a>

§

type Inner = SparseTensorIndexCOO<'a>

source§

unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner

Safety Read more
source§

impl<'a> PartialEq<SparseTensorIndexCOO<'a>> for SparseTensorIndexCOO<'a>

source§

fn eq(&self, other: &SparseTensorIndexCOO<'a>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Verifiable for SparseTensorIndexCOO<'_>

source§

fn run_verifier( v: &mut Verifier<'_, '_>, pos: usize ) -> Result<(), InvalidFlatbuffer>

Runs the verifier for this type, assuming its at position pos in the verifier’s buffer. Should not need to be called directly.
source§

impl<'a> Copy for SparseTensorIndexCOO<'a>

source§

impl<'a> StructuralPartialEq for SparseTensorIndexCOO<'a>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Allocation for Twhere T: RefUnwindSafe + Send + Sync,