batchlas::Vector< T > Struct Template Reference

Overview

template<typename T>
struct batchlas::Vector< T >

Owning batch of batch_size() vectors of length size() in USM shared memory.

Element i of item b lives at data()[b * stride() + i * inc()]. The default stride is size() * inc() (items back to back). A Vector is a VectorView of its own storage, so it is accepted wherever a VectorView is.

Trap
The constructor takes (size, batch_size, Stride, Inc) while VectorView's positional constructor takes (data, size, batch_size, inc, stride); the tag types and the deleted bare-int overloads keep the two from being transliterated.
See also
Matrix model: vectors, inc and stride

Definition at line 1963 of file matrix.hh.

#include <batchlas/blas/matrix.hh>

Inheritance diagram for batchlas::Vector< T >:

Types

◆ Base

template<typename T>
using batchlas::Vector< T >::Base = VectorView<T>

Definition at line 1964 of file matrix.hh.

Constructors

◆ Vector() [1/8]

template<typename T>
batchlas::Vector< T >::Vector ( )
default

An empty vector with batch size 1.

◆ Vector() [2/8]

template<typename T>
batchlas::Vector< T >::Vector ( int size,
int batch_size = 1,
Stride stride = Stride{0},
Inc inc = Inc{1} )
inline

Allocates an uninitialised batch.

Parameters
sizeelements per item
batch_sizenumber of items
strideelement distance between items; Stride{0} means size * inc
incelement distance between entries

Definition at line 1974 of file matrix.hh.

◆ Vector() [3/8]

template<typename T>
batchlas::Vector< T >::Vector ( int size,
T value,
int batch_size = 1,
Stride stride = Stride{0},
Inc inc = Inc{1} )
inline

Allocates a batch with every stored element (gaps included) set to value.

Definition at line 1977 of file matrix.hh.

◆ Vector() [4/8]

template<typename T>
batchlas::Vector< T >::Vector ( int size,
int batch_size,
int stride,
int inc )
delete

Deleted: spell the layout Stride{s}, Inc{i}.

◆ Vector() [5/8]

template<typename T>
batchlas::Vector< T >::Vector ( int size,
T value,
int batch_size,
int stride,
int inc )
delete

Deleted: spell the layout Stride{s}, Inc{i}.

◆ Vector() [6/8]

template<typename T>
batchlas::Vector< T >::Vector ( int size,
int batch_size,
int stride )
delete

Deleted: Vector<float>(n, batch, stride) would otherwise pick the (size, value, batch_size) overload and turn batch into the fill value.

◆ Vector() [7/8]

template<typename T>
batchlas::Vector< T >::Vector ( const Vector< T > & other)
inline

Definition at line 2034 of file matrix.hh.

◆ Vector() [8/8]

template<typename T>
batchlas::Vector< T >::Vector ( Vector< T > && other)
inlinenoexcept

Definition at line 2035 of file matrix.hh.

Functions

◆ zeros() [1/3]

template<typename T>
Vector< T > batchlas::Vector< T >::zeros ( int size,
int batch_size = 1,
Stride stride = Stride{0},
Inc inc = Inc{1} )
inlinestatic

A batch of zero vectors.

Definition at line 1990 of file matrix.hh.

◆ ones() [1/3]

template<typename T>
Vector< T > batchlas::Vector< T >::ones ( int size,
int batch_size = 1,
Stride stride = Stride{0},
Inc inc = Inc{1} )
inlinestatic

A batch of all-ones vectors.

Definition at line 1994 of file matrix.hh.

◆ random() [1/3]

template<typename T>
Vector< T > batchlas::Vector< T >::random ( int size,
int batch_size = 1,
Stride stride = Stride{0},
Inc inc = Inc{1} )
inlinestatic

Entries uniform in [0, 1) (real part only), from a host RNG with a fixed seed of 42.

Definition at line 1998 of file matrix.hh.

◆ standard_basis() [1/2]

template<typename T>
Vector< T > batchlas::Vector< T >::standard_basis ( int size,
int index,
int batch_size = 1,
Stride stride = Stride{0} )
inlinestatic

Unit vectors e_index (zero except a one at index), in every item.

Definition at line 2010 of file matrix.hh.

◆ zeros() [2/3]

template<typename T>
Vector< T > batchlas::Vector< T >::zeros ( int size,
int batch_size,
int stride,
int inc )
staticdelete

◆ ones() [2/3]

template<typename T>
Vector< T > batchlas::Vector< T >::ones ( int size,
int batch_size,
int stride,
int inc )
staticdelete

◆ random() [2/3]

template<typename T>
Vector< T > batchlas::Vector< T >::random ( int size,
int batch_size,
int stride,
int inc )
staticdelete

◆ zeros() [3/3]

template<typename T>
Vector< T > batchlas::Vector< T >::zeros ( int size,
int batch_size,
int stride )
staticdelete

◆ ones() [3/3]

template<typename T>
Vector< T > batchlas::Vector< T >::ones ( int size,
int batch_size,
int stride )
staticdelete

◆ random() [3/3]

template<typename T>
Vector< T > batchlas::Vector< T >::random ( int size,
int batch_size,
int stride )
staticdelete

◆ standard_basis() [2/2]

template<typename T>
Vector< T > batchlas::Vector< T >::standard_basis ( int size,
int index,
int batch_size,
int stride )
staticdelete

◆ operator=() [1/2]

template<typename T>
Vector & batchlas::Vector< T >::operator= ( const Vector< T > & other)
inline

Definition at line 2036 of file matrix.hh.

◆ operator=() [2/2]

template<typename T>
Vector & batchlas::Vector< T >::operator= ( Vector< T > && other)
inlinenoexcept

Definition at line 2037 of file matrix.hh.

◆ view()

template<typename T>
VectorView< T > batchlas::Vector< T >::view ( ) const
inline

This vector as a plain VectorView (a sliced copy).

Definition at line 2047 of file matrix.hh.

◆ operator[]()

template<typename T>
T & batchlas::Vector< T >::operator[] ( int i)
inline

Raw storage index i, ignoring inc and stride (kept for compatibility).

Definition at line 2050 of file matrix.hh.