SeqVector Class Reference
[Internal Classes for sequence design (odinseq library)]

#include <seqvec.h>

Inheritance diagram for SeqVector:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 SeqVector (const STD_string &object_label="unnamedSeqVector")
 SeqVector (const STD_string &object_label, unsigned int nindices, int slope=1, int offset=0)
 SeqVector (const SeqVector &sv)
virtual ~SeqVector ()
SeqVectoroperator= (const SeqVector &sv)
virtual unsigned int get_vectorsize () const
virtual unsigned int get_numof_iterations () const
virtual bool needs_unrolling_check () const
virtual bool prep_iteration () const
virtual int get_current_index () const
int get_acq_index () const
virtual bool is_qualvector () const
virtual bool is_acq_vector () const
virtual bool is_obj_vector () const
virtual svector get_vector_commands (const STD_string &iterator) const
virtual STD_string get_loopcommand () const
SeqVectorset_indexvec (const ivector &iv)
ivector get_indexvec () const
SeqVectorset_reorder_scheme (reorderScheme scheme, unsigned int nsegments=1)
SeqVectorset_encoding_scheme (encodingScheme scheme)
const SeqVectorget_reorder_vector () const
virtual nestingRelation get_nesting_relation () const
iarray get_index_matrix () const
int get_current_reord_index () const
STD_string get_reord_iterator (const STD_string &iterator) const

Protected Member Functions

virtual svector get_reord_vector_commands (const STD_string &iterator) const
bool is_handled () const

Friends

class SeqReorderVector
class SeqCounter
class SeqObjLoop
class SeqSimultanVector


Detailed Description

This is the base class for all vector objects, i.e. objects that can can take different values while looping over them.

Definition at line 70 of file seqvec.h.


Constructor & Destructor Documentation

SeqVector::SeqVector ( const STD_string &  object_label = "unnamedSeqVector"  ) 

Default Constructor

SeqVector::SeqVector ( const STD_string &  object_label,
unsigned int  nindices,
int  slope = 1,
int  offset = 0 
)

Constructs an index vector labeled 'object_label' with the following properties:

  • nindices: the total number of iterations
  • slope: the number of indices per iteration
  • offset: the offset of the indices, i.e. the index of the first iteration

SeqVector::SeqVector ( const SeqVector sv  ) 

Copy Constructor

virtual SeqVector::~SeqVector (  )  [virtual]

Destructor


Member Function Documentation

SeqVector& SeqVector::operator= ( const SeqVector sv  ) 

Assignment operator that makes this vector become a copy of 'sv'

virtual unsigned int SeqVector::get_vectorsize (  )  const [inline, virtual]

Overload this function to return the number of elements in the vector (regardless of reordering)

Reimplemented in SeqFreqChan, SeqObjVector, SeqFlipAngVector, SeqRotMatrixVector, and SeqSimultanVector.

Definition at line 107 of file seqvec.h.

virtual unsigned int SeqVector::get_numof_iterations (  )  const [virtual]

Returns the number of iterations with proper consideration of reordering, e.g. if the vector has N values distributed over M reordering segments, this function will return N/M.

Reimplemented in SeqSimultanVector.

virtual bool SeqVector::needs_unrolling_check (  )  const [inline, virtual]

Overload this function to trigger a check whether the loop must possibly be unrolled in pulse or gradient program

Reimplemented in SeqObjVector, SeqFlipAngVector, SeqRotMatrixVector, and SeqSimultanVector.

Definition at line 122 of file seqvec.h.

virtual bool SeqVector::prep_iteration (  )  const [inline, virtual]

Overload this function to prepare objects at run-time before the execution of a loop repetition return 'false' when preparation fails

Reimplemented in SeqFreqChan, SeqFlipAngVector, SeqRotMatrixVector, and SeqSimultanVector.

Definition at line 129 of file seqvec.h.

virtual int SeqVector::get_current_index (  )  const [virtual]

Overload this function to return the current index, intended to use it in combination with reordering of phase encoding steps or slices

int SeqVector::get_acq_index (  )  const

Returns the current index relevant for acquisition (reco dimensions). This is the value of the index vector (set_indexvec) at the position returned by 'get_current_index'.

virtual bool SeqVector::is_qualvector (  )  const [virtual]

Overload this function to tell whether the vector qualitatively alters the sequence concerning timings and RF power deposition. This is useful for accelerating duration and SAR calculations (Siemens).

Reimplemented in SeqDiffWeight, SeqDiffWeightFlowComp, SeqFreqChan, SeqObjVector, SeqRotMatrixVector, and SeqSimultanVector.

virtual bool SeqVector::is_acq_vector (  )  const [virtual]

Returns whether this vector is used to specify an acquisition dimension through the set_*_vector(...) functions of all classes derived from SeqAcqInterface

Reimplemented in SeqObjVector.

virtual bool SeqVector::is_obj_vector (  )  const [inline, virtual]

Returns whether this vector uses a different set of sequence objects at each repetition

Reimplemented in SeqObjVector.

Definition at line 161 of file seqvec.h.

virtual svector SeqVector::get_vector_commands ( const STD_string &  iterator  )  const [inline, virtual]

If the vector is used as a variable in the code-generated pulse program, overload this function to return a unique label/command for the vector which is either attached to the loop (Bruker), or executed at the beginning of the loop (EPIC).

Reimplemented in SeqFreqChan, SeqFlipAngVector, SeqRotMatrixVector, and SeqSimultanVector.

Definition at line 170 of file seqvec.h.

virtual STD_string SeqVector::get_loopcommand (  )  const [inline, virtual]

Overload this function to return the command to iterate to the next item at the end of the loop

Reimplemented in SeqSimultanVector.

Definition at line 176 of file seqvec.h.

SeqVector& SeqVector::set_indexvec ( const ivector iv  )  [inline]

Sets the vector of indices 'iv' which will be returned by get_acq_index, i.e. the assign reco indices (positions in k-space)

Definition at line 183 of file seqvec.h.

ivector SeqVector::get_indexvec (  )  const [inline]

Returns the vector of indices 'iv' which will be returned by get_acq_index, i.e. the assign reco indices (positions in k-space)

Definition at line 189 of file seqvec.h.

SeqVector& SeqVector::set_reorder_scheme ( reorderScheme  scheme,
unsigned int  nsegments = 1 
)

Sets the reordering scheme and the number of segments

Reimplemented in SeqFreqChan.

SeqVector& SeqVector::set_encoding_scheme ( encodingScheme  scheme  ) 

Sets the encoding scheme

Reimplemented in SeqFreqChan.

const SeqVector& SeqVector::get_reorder_vector (  )  const

Returns the reordering vector (for loop insertion)

Reimplemented in SeqFreqChan.

virtual nestingRelation SeqVector::get_nesting_relation (  )  const [virtual]

Returns the nesting relation between the vector and its reordering vector

Reimplemented in SeqSimultanVector.

iarray SeqVector::get_index_matrix (  )  const

Returns a matrix whereby the elements of rows (second dimension) contain the reordered index for each iteration. The other dimension (first dimension) represents reordering iterations.

int SeqVector::get_current_reord_index (  )  const

Returns the current index of the reordering vector

STD_string SeqVector::get_reord_iterator ( const STD_string &  iterator  )  const

Returns the iterator as modified by the reorder vector as C code

virtual svector SeqVector::get_reord_vector_commands ( const STD_string &  iterator  )  const [inline, protected, virtual]

Tell reorder vector what to do within a loop

Definition at line 238 of file seqvec.h.

bool SeqVector::is_handled (  )  const [inline, protected]

Returns true if vector is actually handled by a loop

Definition at line 243 of file seqvec.h.


The documentation for this class was generated from the following file:

Generated on Wed Sep 30 15:33:27 2009 by  doxygen 1.5.6