msl 1.3.0
Loading...
Searching...
No Matches
msl Namespace Reference

Detailed Description

Top-level namespace of the msl library.

Namespaces

namespace  acceleration
 Set of helpers to deal with accelerated imaging (partial Fourier, iPAT, etc.)
 
namespace  gradient_pulses
 Functions generating gradient pulses based on user and system constraints.
 
namespace  graph
 Graph-related objects and functions.
 
namespace  mask_iterators
 
namespace  rf_pulses
 Pre-defined RF pulses and pulse modifiers.
 

Classes

class  CartesianReadout
 Cartesian read-out along the X gradient, comprising the ADC, NCO manipulation, and read-out gradient. More...
 
class  ConstIterator
 Read-only iterator to a container. More...
 
class  Counter
 Counter from 0 (included) to end (excluded). More...
 
class  Dictionary
 Generic key-value associative container. More...
 
class  GradientPulse
 Trapezoidal gradient pulse on three axes, with matching ramp and plateau durations on all axes and equal ramp up and ramp down durations. More...
 
struct  GradientSpecs
 Specifications of the gradient system. More...
 
class  Iterator
 Read/write iterator to a container. More...
 
class  KSpace
 Description of the discretized k-space geometry. More...
 
class  Mask
 A two dimensional mask. More...
 
class  NCOPair
 Encapsulation of a pair of NCO objects, setting and resetting the frequency and the phase of the NCO before and after a real-time event. More...
 
class  PhaseCycling
 Compute phase cycling with linear and quadratic increments. More...
 
class  RealTimeEvents
 Base class for real-time events. More...
 
class  RFPulse
 Base class for RF pulses. More...
 
class  Sequence
 Graph-based sequence class. More...
 
class  Synchronization
 Run a synchronization event. More...
 
class  Vector
 A vector of arithmetic types. More...
 

Typedefs

using Vector2d = Vector< 2, double >
 2D vector of doubles
 
using Vector2l = Vector< 2, long >
 2D vector of longs
 
using Vector2b = Vector< 2, bool >
 2D vector of booleans
 
using Vector3d = Vector< 3, double >
 3D vector of doubles
 
using Vector3l = Vector< 3, long >
 3D vector of longs
 
using Vector3b = Vector< 3, bool >
 3D vector of booleans
 

Functions

double roundUp (double value, double base)
 Round up the value to the nearest multiple of base.
 
long roundUpGRT (double value)
 Round up the value to the nearest multiple of GRAD_RASTER_TIME.
 
double roundDown (double value, double base)
 Round down the value to the nearest multiple of base.
 
long roundDownGRT (double value)
 Round down the value to the nearest multiple of GRAD_RASTER_TIME.
 
template<typename T >
long endTime (T const &x)
 Get the end time of an non-GRAD_PULSE IDEA object.
 
long endTime (sGRAD_PULSE const &x)
 Get the end time of a GRAD_PULSE object.
 
std::ostream & operator<< (std::ostream &stream, Mask const &mask)
 Visual representation of the mask.
 
Mask operator! (Mask mask)
 Retrun a switched mask (enabled ↔ disabled)
 
Mask operator& (Mask left, Mask const &right)
 Intersection of two masks.
 
Mask operator| (Mask left, Mask const &right)
 Union of two masks.
 
Mask ellipticalMask (Mask::Shape const &shape)
 Create an ellipse-shaped mask, where the width and height of the ellipse equal the shape of the mask.
 
Mask partialMask (Mask::Shape const &shape, Vector2d const &ratio, Vector2b const &useLowerQuadrant)
 Create a mask where an interval of each quadrant is enabled.
 
Mask partialMask (Mask::Shape const &shape, Vector2d const &ratio, bool useLowerQuadrant=true)
 Create a mask where an interval of each quadrant is enabled.
 
Mask cornersMask (Mask::Shape const &shape, Mask::Point size)
 Create a mask where every point is disabled except at the corners.
 
Mask crossMask (Mask::Shape const &shape, Mask::Shape const &width)
 Create a mask with a cross of given width at its center.
 
Mask latticeMask (Mask::Shape const &shape, Mask::Shape const &period)
 Create a mask with a lattice pattern.
 
bool overlap (RealTimeEvents const &e1, RealTimeEvents const &e2)
 Test whether e2 begins before e1 ends.
 
bool overlap (RealTimeEvents const &e1, long t)
 Test whether e1 ends after t.
 
bool overlap (long t, RealTimeEvents const &e2)
 Test whether e2 begins before t.
 
template<std::size_t N, typename T >
Vector< N, T > operator+ (Vector< N, T > left, Vector< N, T > const &right)
 Element-wise addition.
 
template<std::size_t N, typename T >
Vector< N, T > operator- (Vector< N, T > left, Vector< N, T > const &right)
 Element-wise subtraction.
 
template<std::size_t N, typename T >
Vector< N, T > operator* (Vector< N, T > left, T right)
 Multiplication by a scalar.
 
template<std::size_t N, typename T >
Vector< N, T > operator* (T left, Vector< N, T > right)
 Multiplication by a scalar.
 
template<std::size_t N, typename T >
Vector< N, T > operator/ (Vector< N, T > left, T right)
 Division by a scalar.
 
template<std::size_t N, typename T >
Vector< N, T > operator% (Vector< N, T > left, Vector< N, T > const &right)
 Element-wise remainder of division.
 
template<std::size_t N, typename T >
Vector< N, T > operator% (Vector< N, T > left, T right)
 Remainder of division by a scalar.
 
template<std::size_t N, typename T >
std::ostream & operator<< (std::ostream &stream, Vector< N, T > const &v)
 Textual representation.
 

Typedef Documentation

◆ Vector2d

using msl::Vector2d = typedef Vector<2, double>

2D vector of doubles

◆ Vector2l

using msl::Vector2l = typedef Vector<2, long>

2D vector of longs

◆ Vector2b

using msl::Vector2b = typedef Vector<2, bool>

2D vector of booleans

◆ Vector3d

using msl::Vector3d = typedef Vector<3, double>

3D vector of doubles

◆ Vector3l

using msl::Vector3l = typedef Vector<3, long>

3D vector of longs

◆ Vector3b

using msl::Vector3b = typedef Vector<3, bool>

3D vector of booleans

Function Documentation

◆ roundUp()

double msl::roundUp ( double  value,
double  base 
)

Round up the value to the nearest multiple of base.

◆ roundUpGRT()

long msl::roundUpGRT ( double  value)

Round up the value to the nearest multiple of GRAD_RASTER_TIME.

◆ roundDown()

double msl::roundDown ( double  value,
double  base 
)

Round down the value to the nearest multiple of base.

◆ roundDownGRT()

long msl::roundDownGRT ( double  value)

Round down the value to the nearest multiple of GRAD_RASTER_TIME.

◆ endTime() [1/2]

template<typename T >
long msl::endTime ( T const &  x)

Get the end time of an non-GRAD_PULSE IDEA object.

◆ endTime() [2/2]

long msl::endTime ( sGRAD_PULSE const &  x)

Get the end time of a GRAD_PULSE object.

◆ operator<<() [1/2]

std::ostream & msl::operator<< ( std::ostream &  stream,
Mask const &  mask 
)

Visual representation of the mask.

◆ operator!()

Mask msl::operator! ( Mask  mask)

Retrun a switched mask (enabled ↔ disabled)

◆ operator&()

Mask msl::operator& ( Mask  left,
Mask const &  right 
)

Intersection of two masks.

◆ operator|()

Mask msl::operator| ( Mask  left,
Mask const &  right 
)

Union of two masks.

◆ ellipticalMask()

Mask msl::ellipticalMask ( Mask::Shape const &  shape)

Create an ellipse-shaped mask, where the width and height of the ellipse equal the shape of the mask.

Parameters
shapeShape of the mask

◆ partialMask() [1/2]

Mask msl::partialMask ( Mask::Shape const &  shape,
Vector2d const &  ratio,
Vector2b const &  useLowerQuadrant 
)

Create a mask where an interval of each quadrant is enabled.

Parameters
shapeShape of the mask
ratioEnabled ratio on each axis, must be between 0 and 1 (0: evertyhing is disabled, 1: everything is enabled)
useLowerQuadrantTrue to enable lower quadrant, false to enable upper quadrant

◆ partialMask() [2/2]

Mask msl::partialMask ( Mask::Shape const &  shape,
Vector2d const &  ratio,
bool  useLowerQuadrant = true 
)

Create a mask where an interval of each quadrant is enabled.

Parameters
shapeShape of the mask
ratioEnabled ratio on each axis, must be between 0 and 1 (0: evertyhing is disabled, 1: everything is enabled)
useLowerQuadrantTrue to enable lower quadrant, false to enable upper quadrant

◆ cornersMask()

Mask msl::cornersMask ( Mask::Shape const &  shape,
Mask::Point  size 
)

Create a mask where every point is disabled except at the corners.

Parameters
shapeShape of the mask
sizeSize of the enabled region at all corners

◆ crossMask()

Mask msl::crossMask ( Mask::Shape const &  shape,
Mask::Shape const &  width 
)

Create a mask with a cross of given width at its center.

Parameters
shapeShape of the mask
widthWidth of the horizontal and vertical branches of the cross, set to 0 to disable a branch

◆ latticeMask()

Mask msl::latticeMask ( Mask::Shape const &  shape,
Mask::Shape const &  period 
)

Create a mask with a lattice pattern.

Parameters
shapeShape of the mask
periodHorizontal and vertical period of the lattice so that 1 in n point is enabled, set to 1 for a full sampling
Note
The central row and column (defined as n/2) are always enabled

◆ overlap() [1/3]

bool msl::overlap ( RealTimeEvents const &  e1,
RealTimeEvents const &  e2 
)

Test whether e2 begins before e1 ends.

◆ overlap() [2/3]

bool msl::overlap ( RealTimeEvents const &  e1,
long  t 
)

Test whether e1 ends after t.

◆ overlap() [3/3]

bool msl::overlap ( long  t,
RealTimeEvents const &  e2 
)

Test whether e2 begins before t.

◆ operator+()

template<std::size_t N, typename T >
Vector< N, T > msl::operator+ ( Vector< N, T >  left,
Vector< N, T > const &  right 
)

Element-wise addition.

◆ operator-()

template<std::size_t N, typename T >
Vector< N, T > msl::operator- ( Vector< N, T >  left,
Vector< N, T > const &  right 
)

Element-wise subtraction.

◆ operator*() [1/2]

template<std::size_t N, typename T >
Vector< N, T > msl::operator* ( Vector< N, T >  left,
right 
)

Multiplication by a scalar.

◆ operator*() [2/2]

template<std::size_t N, typename T >
Vector< N, T > msl::operator* ( left,
Vector< N, T >  right 
)

Multiplication by a scalar.

◆ operator/()

template<std::size_t N, typename T >
Vector< N, T > msl::operator/ ( Vector< N, T >  left,
right 
)

Division by a scalar.

◆ operator%() [1/2]

template<std::size_t N, typename T >
Vector< N, T > msl::operator% ( Vector< N, T >  left,
Vector< N, T > const &  right 
)

Element-wise remainder of division.

◆ operator%() [2/2]

template<std::size_t N, typename T >
Vector< N, T > msl::operator% ( Vector< N, T >  left,
right 
)

Remainder of division by a scalar.

◆ operator<<() [2/2]

template<std::size_t N, typename T >
std::ostream & msl::operator<< ( std::ostream &  stream,
Vector< N, T > const &  v 
)

Textual representation.