21 #include <odinseq/seqclass.h>
37 enum encodingScheme {linearEncoding=0, reverseEncoding, centerOutEncoding, centerInEncoding, maxDistEncoding};
48 enum reorderScheme {noReorder=0,rotateReorder,blockedSegmented,interleavedSegmented};
70 class SeqVector :
public ListItem<SeqVector>,
public Handled<const SeqVector*>,
public virtual SeqClass {
77 SeqVector(
const STD_string& object_label=
"unnamedSeqVector");
85 SeqVector(
const STD_string& object_label,
unsigned int nindices,
int slope=1,
int offset=0 );
251 #ifdef SELF_FRIEND_CLASS
260 bool loopcounter_is_active()
const;
265 int get_loopcounter()
const;
275 Handler<const SeqCounter*> vechandler;
276 Handler<const SeqVector*> simhandler;
281 mutable bool nr_cache_up2date;
298 unsigned int get_reordered_size(
unsigned int vecsize)
const;
300 int get_reordered_index(
int counter)
const {
return get_reordered_index(counter,
get_current_index());}
315 int get_reordered_index(
int counter,
int reord_iteration)
const;
317 STD_string get_reordered_iterator(
const STD_string& iterator)
const;
319 void clear_cache() {reord_iterator_cache=
"";}
322 unsigned int n_reord_segments;
328 mutable STD_string reord_iterator_cache;
virtual nestingRelation get_nesting_relation() const
SeqVector & set_indexvec(const ivector &iv)
SeqVector & set_reorder_scheme(reorderScheme scheme, unsigned int nsegments=1)
virtual svector get_vector_commands(const STD_string &iterator) const
iarray get_index_matrix() const
STD_string get_reord_iterator(const STD_string &iterator) const
virtual STD_string get_loopcommand() const
virtual bool prep_iteration() const
const SeqVector & get_reorder_vector() const
int get_acq_index() const
virtual unsigned int get_numof_iterations() const
SeqVector(const STD_string &object_label="unnamedSeqVector")
virtual bool is_obj_vector() const
SeqVector & set_encoding_scheme(encodingScheme scheme)
virtual int get_current_index() const
SeqVector & operator=(const SeqVector &sv)
SeqVector(const STD_string &object_label, unsigned int nindices, int slope=1, int offset=0)
ivector get_indexvec() const
virtual svector get_reord_vector_commands(const STD_string &iterator) const
virtual bool needs_unrolling_check() const
virtual bool is_acq_vector() const
virtual unsigned int get_vectorsize() const
SeqVector(const SeqVector &sv)
int get_current_reord_index() const
virtual bool is_qualvector() const