OBOE  0.1
AccpmBlasInterface.h File Reference
#include "AccpmVector.h"
#include "AccpmGenMatrix.h"

Go to the source code of this file.

Functions

double AccpmLADotProd (const AccpmVector &dx, const AccpmVector &dy)
void AccpmLAScale (double da, AccpmVector &dx)
void AccpmLAMult (AccpmVector &dy, double da, const AccpmVector &dx)
void AccpmLAAddMult (AccpmVector &dy, double da, const AccpmVector &dx)
double AccpmLANorm1 (const AccpmVector &dx)
 1-Norm
double AccpmLANorm2 (const AccpmVector &dx)
 2-Norm, Euclidean Norm
double AccpmLANormInf (const AccpmVector &x)
 Infinity-Norm.
void AccpmLAMatTransVecMult (const RealMatrix &A, const AccpmVector &dx, AccpmVector &dy, double alpha=1.0, double beta=0.0)
void AccpmLAMatVecMult (const RealMatrix &A, const AccpmVector &dx, AccpmVector &dy, double alpha=1.0, double beta=0.0)
void AccpmLAR1Update (RealMatrix &A, const AccpmVector &dx, const AccpmVector &dy, double alpha=1.0)
void AccpmLAR1Update (SymmetricMatrix &A, const AccpmVector &dx, double alpha=1.0)
void AccpmLAMatMatMult (const RealMatrix &A, const RealMatrix &B, RealMatrix &C, double alpha=1.0, double beta=0.0)
void AccpmLAMatTransMatMult (const RealMatrix &A, const RealMatrix &B, RealMatrix &C, double alpha=1.0, double beta=0.0)
void AccpmLAMatMatTransMult (const RealMatrix &A, const RealMatrix &B, RealMatrix &C, double alpha=1.0, double beta=0.0)
void AccpmLAR1Update (SymmetricMatrix &C, RealMatrix &A, double alpha=1.0, double beta=1.0)

Detailed Description


Function Documentation

double AccpmLADotProd ( const AccpmVector dx,
const AccpmVector dy 
)

Functions for interfacing with C/C++ Blas/Lapack functionality. Currently we only use lapack++ for all blas/lapack level functions. Level 1 BLAS operations Dot Product of vectors dx and dy

Calls Lapack++ Blas_Dot_Prod

Referenced by Accpm::LocSet::computeFullATQA(), Accpm::Manager::computeSmoothComponent(), Accpm::Manager::convexityFix(), Accpm::QpGenerator::printIteration(), Accpm::Manager::processCuts(), and Accpm::AccpmVector::sum().

void AccpmLAMatMatMult ( const RealMatrix A,
const RealMatrix B,
RealMatrix C,
double  alpha = 1.0,
double  beta = 0.0 
)

Level 3 BLAS operations Perform the matrix-matrix operation C := alpha*A*B + beta*C

void AccpmLAMatMatTransMult ( const RealMatrix A,
const RealMatrix B,
RealMatrix C,
double  alpha = 1.0,
double  beta = 0.0 
)

Perform the matrix-matrix operation C := alpha*A*B' + beta*C

void AccpmLAMatTransMatMult ( const RealMatrix A,
const RealMatrix B,
RealMatrix C,
double  alpha = 1.0,
double  beta = 0.0 
)

Perform the matrix-matrix operation C := alpha*A'*B + beta*C

void AccpmLAMatTransVecMult ( const RealMatrix A,
const AccpmVector dx,
AccpmVector dy,
double  alpha = 1.0,
double  beta = 0.0 
)

Level 2 BLAS operations Perform the matrix-vector operation y := alpha*A'*x + beta*y

Referenced by Accpm::LocSet::computeFullATQA(), Accpm::Manager::convexityFix(), and Accpm::Manager::updateRhs().

void AccpmLAMatVecMult ( const RealMatrix A,
const AccpmVector dx,
AccpmVector dy,
double  alpha = 1.0,
double  beta = 0.0 
)

Perform the matrix-vector operation y := alpha*A*x + beta*y

void AccpmLAMult ( AccpmVector dy,
double  da,
const AccpmVector dx 
)

Vector scaling: dy = da * dx

double AccpmLANorm1 ( const AccpmVector dx)

1-Norm

Returns the sum of the absolute values: $|x|_1=\sum_i|x_i|$

double AccpmLANorm2 ( const AccpmVector dx)

2-Norm, Euclidean Norm

Returns the euclidean norm of the vector: $|x|_2=\sqrt{\sum_i|x_i|^2}$

Referenced by Accpm::Manager::addCut(), Accpm::Manager::computeBallConstraint(), and Accpm::Manager::processCuts().

double AccpmLANormInf ( const AccpmVector x)

Infinity-Norm.

Returns the Infinity norm of a vector, which is the absolute value of its maximum element: $|x|_{\infty}=\max_i|x_i|$

void AccpmLAR1Update ( RealMatrix A,
const AccpmVector dx,
const AccpmVector dy,
double  alpha = 1.0 
)

Perform the rank 1 operation A := alpha*dx*dy' + A

void AccpmLAR1Update ( SymmetricMatrix A,
const AccpmVector dx,
double  alpha = 1.0 
)
void AccpmLAR1Update ( SymmetricMatrix C,
RealMatrix A,
double  alpha = 1.0,
double  beta = 1.0 
)

Perform the symmetric rank k operations C := alpha*A*A’ + beta*C Only the lower traingular part of C is used

void AccpmLAScale ( double  da,
AccpmVector dx 
)

Scale vector dx by da

Calls Lapack++ Blas_Scale

Referenced by Accpm::Manager::computeBallConstraint(), and Accpm::AccpmVector::negate().