TVM  0.9.4
tvm::scheme::internal::AssignmentTarget Class Reference

#include <tvm/scheme/internal/AssignmentTarget.h>

Public Member Functions

 AssignmentTarget (RangePtr range, MatrixRef A, constraint::Type ct)
 
 AssignmentTarget (RangePtr range, MatrixRef A, VectorRef b, constraint::Type ct, constraint::RHS cr)
 
 AssignmentTarget (RangePtr range, MatrixRef A, VectorRef l, VectorRef u, constraint::RHS cr)
 
 AssignmentTarget (RangePtr range, VectorRef l, VectorRef u)
 
 AssignmentTarget (RangePtr range, VectorRef lu, constraint::Type ct)
 
 AssignmentTarget (MatrixRef Q, VectorRef q, constraint::RHS cr)
 
TargetType targetType () const
 
constraint::Type constraintType () const
 
constraint::RHS constraintRhs () const
 
int size () const
 
Rangerange ()
 
const Rangerange () const
 
MatrixRef A (int colStart, int colDim) const
 
MatrixRef Q () const
 
VectorRef l () const
 
VectorRef u () const
 
VectorRef b () const
 
VectorRef q () const
 
AssignmentTargetsetA (MatrixRef A)
 
AssignmentTargetsetQ (MatrixRef Q)
 
AssignmentTargetsetl (VectorRef l)
 
AssignmentTargetsetu (VectorRef u)
 
AssignmentTargetsetb (VectorRef b)
 
AssignmentTargetsetq (VectorRef q)
 
void changeData (MatrixRef AQ, VectorRef bq)
 
void changeData (MatrixRef A, VectorRef l, VectorRef u)
 
void changeData (VectorRef l, VectorRef u)
 
MatrixRef AFirstHalf (int colStart, int colDim) const
 
MatrixRef ASecondHalf (int colStart, int colDim) const
 
VectorRef bFirstHalf () const
 
VectorRef bSecondHalf () const
 

Detailed Description

This class describes the matrix and vector(s) rows in which a given constraint needs to be copied, and the convention to be used for those matrix and vectors.

If the target is quadratic form, the whole matrix and vector are returned.

Constructor & Destructor Documentation

◆ AssignmentTarget() [1/6]

tvm::scheme::internal::AssignmentTarget::AssignmentTarget ( RangePtr  range,
MatrixRef  A,
constraint::Type  ct 
)

Ax = 0, Ax <= 0 or Ax >= 0.

◆ AssignmentTarget() [2/6]

tvm::scheme::internal::AssignmentTarget::AssignmentTarget ( RangePtr  range,
MatrixRef  A,
VectorRef  b,
constraint::Type  ct,
constraint::RHS  cr 
)

Ax = +/-b, Ax <= +/-b or Ax >= +/-b

◆ AssignmentTarget() [3/6]

tvm::scheme::internal::AssignmentTarget::AssignmentTarget ( RangePtr  range,
MatrixRef  A,
VectorRef  l,
VectorRef  u,
constraint::RHS  cr 
)

l <= Ax <= u

◆ AssignmentTarget() [4/6]

tvm::scheme::internal::AssignmentTarget::AssignmentTarget ( RangePtr  range,
VectorRef  l,
VectorRef  u 
)

l <= x <= u

◆ AssignmentTarget() [5/6]

tvm::scheme::internal::AssignmentTarget::AssignmentTarget ( RangePtr  range,
VectorRef  lu,
constraint::Type  ct 
)

x >= b or x <= b

◆ AssignmentTarget() [6/6]

tvm::scheme::internal::AssignmentTarget::AssignmentTarget ( MatrixRef  Q,
VectorRef  q,
constraint::RHS  cr 
)

Quadratic function 1/2 x^T Q x +\epsilon q, where \epsilon = 0, 1 or -1 depending on cr.

Member Function Documentation

◆ A()

MatrixRef tvm::scheme::internal::AssignmentTarget::A ( int  colStart,
int  colDim 
) const

Return the (range.dim x colDim) block of A starting at (range.start,colStart)

◆ AFirstHalf()

MatrixRef tvm::scheme::internal::AssignmentTarget::AFirstHalf ( int  colStart,
int  colDim 
) const

Same as A(...), and b(), but return only the first or second half of the row range. This is necessary when double-sided constraints are assigned to matrix/vector with single-sided convention

◆ ASecondHalf()

MatrixRef tvm::scheme::internal::AssignmentTarget::ASecondHalf ( int  colStart,
int  colDim 
) const

Same as A(...), and b(), but return only the first or second half of the row range. This is necessary when double-sided constraints are assigned to matrix/vector with single-sided convention

◆ b()

VectorRef tvm::scheme::internal::AssignmentTarget::b ( ) const

Return the segment of b defined by range.

◆ bFirstHalf()

VectorRef tvm::scheme::internal::AssignmentTarget::bFirstHalf ( ) const

Same as A(...), and b(), but return only the first or second half of the row range. This is necessary when double-sided constraints are assigned to matrix/vector with single-sided convention

◆ bSecondHalf()

VectorRef tvm::scheme::internal::AssignmentTarget::bSecondHalf ( ) const

Same as A(...), and b(), but return only the first or second half of the row range. This is necessary when double-sided constraints are assigned to matrix/vector with single-sided convention

◆ changeData() [1/3]

void tvm::scheme::internal::AssignmentTarget::changeData ( MatrixRef  A,
VectorRef  l,
VectorRef  u 
)

l <= Ax <= u

◆ changeData() [2/3]

void tvm::scheme::internal::AssignmentTarget::changeData ( MatrixRef  AQ,
VectorRef  bq 
)

Ax = +/-b, Ax <= +/-b, Ax >= +/-b or 1/2 x^T Q x +\epsilon q

◆ changeData() [3/3]

void tvm::scheme::internal::AssignmentTarget::changeData ( VectorRef  l,
VectorRef  u 
)

l <= x <= u

◆ constraintRhs()

constraint::RHS tvm::scheme::internal::AssignmentTarget::constraintRhs ( ) const

◆ constraintType()

constraint::Type tvm::scheme::internal::AssignmentTarget::constraintType ( ) const

◆ l()

VectorRef tvm::scheme::internal::AssignmentTarget::l ( ) const

Return the segment of l defined by range.

◆ Q()

MatrixRef tvm::scheme::internal::AssignmentTarget::Q ( ) const

Return the whole quadratic matrix

◆ q()

VectorRef tvm::scheme::internal::AssignmentTarget::q ( ) const

Return the whole vector q.

◆ range() [1/2]

Range& tvm::scheme::internal::AssignmentTarget::range ( )

◆ range() [2/2]

const Range& tvm::scheme::internal::AssignmentTarget::range ( ) const

◆ setA()

AssignmentTarget& tvm::scheme::internal::AssignmentTarget::setA ( MatrixRef  A)

◆ setb()

AssignmentTarget& tvm::scheme::internal::AssignmentTarget::setb ( VectorRef  b)

◆ setl()

AssignmentTarget& tvm::scheme::internal::AssignmentTarget::setl ( VectorRef  l)

◆ setQ()

AssignmentTarget& tvm::scheme::internal::AssignmentTarget::setQ ( MatrixRef  Q)

◆ setq()

AssignmentTarget& tvm::scheme::internal::AssignmentTarget::setq ( VectorRef  q)

◆ setu()

AssignmentTarget& tvm::scheme::internal::AssignmentTarget::setu ( VectorRef  u)

◆ size()

int tvm::scheme::internal::AssignmentTarget::size ( ) const

Row size of the target.

◆ targetType()

TargetType tvm::scheme::internal::AssignmentTarget::targetType ( ) const

◆ u()

VectorRef tvm::scheme::internal::AssignmentTarget::u ( ) const

Return the segment of u defined by range.


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