34 template<
int Size,
class Precision,
int Str
ide,
class Mem>
struct GenericVBase;
42 template<
int Str
ide,
class Ptr=Default,
class CPtr=Default,
class Ref=Default,
class CRef=Default>
46 template<
int Size,
typename Precision>
48 :
public GenericVBase<Size, Precision, Stride, VectorSlice<Size, Precision, Ptr, CPtr, Ref, CRef> > {
52 :
GenericVBase<Size, Precision, Stride,
VectorSlice<Size, Precision, Ptr, CPtr, Ref, CRef> >(d, length, stride){
66 template<
int Size,
typename Precision>
68 :
public GenericVBase<Size, Precision, Stride, VectorSlice<Size, Precision> > {
91 template<
int Size,
class Precision>
93 :
public GenericVBase<Size, Precision, 1, VectorAlloc<Size, Precision> > {
112 template<
int Size,
typename Precision,
int Str
ide,
typename Mem>
struct GenericVBase:
public Mem,
public StrideHolder<Stride>
142 return data()[i *
stride()];
147 return data()[i *
stride()];
155 template<
int Start,
int Length>
161 template<
int Start,
int Length>
172 return slice<Start, Length>(Start, Length);
177 return slice<Start, Length>(Start, Length);
181 return slice<Dynamic, Dynamic>(start, length);
185 return slice<Dynamic, Dynamic>(start, length);
VLayout(const Operator< Op > &op)
Vector< Length, Precision, SliceBase > slice(int start, int length)
SliceVBase< Stride, PointerType, ConstPointerType, ReferenceType, ConstReferenceType > SliceBase
Matrix< 1, Size, Precision, Slice< 1, Stride > > as_row()
Vector< Length, Precision, SliceBase > slice()
Vector< Dynamic, Precision, SliceBase > slice(int start, int length)
ConstReferenceType operator[](int i) const
const Vector< Size, const Precision, ConstSliceBase > as_slice() const
VectorSlice< Size, Precision >::PointerType PointerType
const Matrix< 1, Size, const Precision, Slice< 1, Stride > > as_row() const
VLayout(PointerType d, int length, int stride)
Everything lives inside this namespace.
VLayout(const Operator< Op > &op)
static const int Dynamic
Template size value used to indicate dynamically sized vectors and matrices.
Vector< Size, Precision, SliceBase > as_slice()
Vector< Size, Precision, SliceBase > as_slice_type
VLayout(PointerType d, int length, int stride)
VectorSlice< Size, Precision, Ptr, CPtr, Ref, CRef >::PointerType PointerType
Matrix< Size, 1, Precision, Slice< Stride, 1 > > as_col()
const DiagonalMatrix< Size, const Precision, ConstSliceBase > as_diagonal() const
GenericVBase(const Operator< Op > &op)
const Vector< Length, const Precision, ConstSliceBase > slice(int start, int length) const
Mem::PointerType PointerType
VLayout(const Operator< Op > &op)
const Vector< Dynamic, const Precision, ConstSliceBase > slice(int start, int length) const
static void check_index(int, int)
const Matrix< Size, 1, const Precision, Slice< Stride, 1 > > as_col() const
ReferenceType operator[](int i)
Mem::ConstReferenceType ConstReferenceType
GenericVBase(PointerType d, int length, int stride)
const Vector< Length, const Precision, ConstSliceBase > slice() const
Mem::ReferenceType ReferenceType
SliceVBase< Stride, ConstPointerType, ConstPointerType, ConstReferenceType, ConstReferenceType > ConstSliceBase
Mem::ConstPointerType ConstPointerType
DiagonalMatrix< Size, Precision, SliceBase > as_diagonal()