![]() |
Visual Servoing Platform version 3.6.0
|
#include <vpSubMatrix.h>
Public Types | |
enum | vpDetMethod { LU_DECOMPOSITION } |
Public Member Functions | |
vpSubMatrix () | |
vpSubMatrix (vpMatrix &m, const unsigned int &row, const unsigned int &col, const unsigned int &nrows, const unsigned int &ncols) | |
virtual | ~vpSubMatrix () |
void | init (vpMatrix &m, const unsigned int &row, const unsigned int &col, const unsigned int &nrows, const unsigned int &ncols) |
void | checkParentStatus () const |
vpSubMatrix & | operator= (const vpSubMatrix &B) |
vpSubMatrix & | operator= (const vpMatrix &B) |
vpSubMatrix & | operator= (const double &x) |
void | clear () |
Setting a diagonal matrix | |
| |
void | diag (const double &val=1.0) |
void | diag (const vpColVector &A) |
void | eye () |
Assignment operators | |
vpMatrix & | operator<< (double *) |
vpMatrix & | operator<< (double val) |
vpMatrix & | operator, (double val) |
Stacking | |
| |
void | stack (const vpMatrix &A) |
void | stack (const vpRowVector &r) |
void | stack (const vpColVector &c) |
void | stackColumns (vpColVector &out) |
vpColVector | stackColumns () |
void | stackRows (vpRowVector &out) |
vpRowVector | stackRows () |
Matrix insertion | |
void | insert (const vpMatrix &A, unsigned int r, unsigned int c) |
Inherited functionalities from vpArray2D | |
void | insert (const vpArray2D< double > &A, unsigned int r, unsigned int c) |
vpArray2D< double > | hadamard (const vpArray2D< double > &m) const |
unsigned int | getCols () const |
double | getMaxValue () const |
double | getMinValue () const |
unsigned int | getRows () const |
unsigned int | size () const |
void | resize (unsigned int nrows, unsigned int ncols, bool flagNullify=true, bool recopy_=true) |
void | reshape (unsigned int nrows, unsigned int ncols) |
bool | operator== (const vpArray2D< double > &A) const |
bool | operator!= (const vpArray2D< double > &A) const |
double * | operator[] (unsigned int i) |
double * | operator[] (unsigned int i) const |
Columns, rows, sub-matrices extraction | |
vpMatrix | extract (unsigned int r, unsigned int c, unsigned int nrows, unsigned int ncols) const |
vpColVector | getCol (unsigned int j) const |
vpColVector | getCol (unsigned int j, unsigned int i_begin, unsigned int size) const |
vpRowVector | getRow (unsigned int i) const |
vpRowVector | getRow (unsigned int i, unsigned int j_begin, unsigned int size) const |
vpColVector | getDiag () const |
void | init (const vpMatrix &M, unsigned int r, unsigned int c, unsigned int nrows, unsigned int ncols) |
Matrix operations | |
| |
double | det (vpDetMethod method=LU_DECOMPOSITION) const |
double | detByLU () const |
double | detByLUEigen3 () const |
double | detByLULapack () const |
double | detByLUOpenCV () const |
vpMatrix | expm () const |
vpMatrix & | operator+= (const vpMatrix &B) |
vpMatrix & | operator+= (double x) |
vpMatrix & | operator-= (const vpMatrix &B) |
vpMatrix & | operator-= (double x) |
vpMatrix | operator* (const vpMatrix &B) const |
vpMatrix | operator* (const vpRotationMatrix &R) const |
vpMatrix | operator* (const vpHomogeneousMatrix &R) const |
vpMatrix | operator* (const vpVelocityTwistMatrix &V) const |
vpMatrix | operator* (const vpForceTwistMatrix &V) const |
vpTranslationVector | operator* (const vpTranslationVector &tv) const |
vpColVector | operator* (const vpColVector &v) const |
vpMatrix | operator* (double x) const |
vpMatrix | operator+ (const vpMatrix &B) const |
vpMatrix | operator- (const vpMatrix &B) const |
vpMatrix | operator- () const |
vpMatrix & | operator*= (double x) |
vpMatrix & | operator/= (double x) |
vpMatrix | operator/ (double x) const |
double | sum () const |
double | sumSquare () const |
Hadamard product | |
| |
vpMatrix | hadamard (const vpMatrix &m) const |
Kronecker product | |
| |
void | kron (const vpMatrix &m1, vpMatrix &out) const |
vpMatrix | kron (const vpMatrix &m1) const |
Transpose | |
| |
vpMatrix | t () const |
vpMatrix | transpose () const |
void | transpose (vpMatrix &At) const |
vpMatrix | AAt () const |
void | AAt (vpMatrix &B) const |
vpMatrix | AtA () const |
void | AtA (vpMatrix &B) const |
Matrix inversion | |
| |
vpMatrix | inverseByLU () const |
vpMatrix | inverseByLUEigen3 () const |
vpMatrix | inverseByLULapack () const |
vpMatrix | inverseByLUOpenCV () const |
vpMatrix | inverseByCholesky () const |
vpMatrix | inverseByCholeskyLapack () const |
vpMatrix | inverseByCholeskyOpenCV () const |
vpMatrix | inverseByQR () const |
vpMatrix | inverseByQRLapack () const |
vpMatrix | inverseTriangular (bool upper=true) const |
vpMatrix | pseudoInverse (double svThreshold=1e-6) const |
unsigned int | pseudoInverse (vpMatrix &Ap, double svThreshold=1e-6) const |
unsigned int | pseudoInverse (vpMatrix &Ap, vpColVector &sv, double svThreshold=1e-6) const |
unsigned int | pseudoInverse (vpMatrix &Ap, vpColVector &sv, double svThreshold, vpMatrix &imA, vpMatrix &imAt) const |
unsigned int | pseudoInverse (vpMatrix &Ap, vpColVector &sv, double svThreshold, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
vpMatrix | pseudoInverse (int rank_in) const |
int | pseudoInverse (vpMatrix &Ap, int rank_in) const |
int | pseudoInverse (vpMatrix &Ap, vpColVector &sv, int rank_in) const |
int | pseudoInverse (vpMatrix &Ap, vpColVector &sv, int rank_in, vpMatrix &imA, vpMatrix &imAt) const |
int | pseudoInverse (vpMatrix &Ap, vpColVector &sv, int rank_in, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
vpMatrix | pseudoInverseLapack (double svThreshold=1e-6) const |
unsigned int | pseudoInverseLapack (vpMatrix &Ap, double svThreshold=1e-6) const |
unsigned int | pseudoInverseLapack (vpMatrix &Ap, vpColVector &sv, double svThreshold=1e-6) const |
unsigned int | pseudoInverseLapack (vpMatrix &Ap, vpColVector &sv, double svThreshold, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
vpMatrix | pseudoInverseLapack (int rank_in) const |
int | pseudoInverseLapack (vpMatrix &Ap, int rank_in) const |
int | pseudoInverseLapack (vpMatrix &Ap, vpColVector &sv, int rank_in) const |
int | pseudoInverseLapack (vpMatrix &Ap, vpColVector &sv, int rank_in, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
vpMatrix | pseudoInverseEigen3 (double svThreshold=1e-6) const |
unsigned int | pseudoInverseEigen3 (vpMatrix &Ap, double svThreshold=1e-6) const |
unsigned int | pseudoInverseEigen3 (vpMatrix &Ap, vpColVector &sv, double svThreshold=1e-6) const |
unsigned int | pseudoInverseEigen3 (vpMatrix &Ap, vpColVector &sv, double svThreshold, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
vpMatrix | pseudoInverseEigen3 (int rank_in) const |
int | pseudoInverseEigen3 (vpMatrix &Ap, int rank_in) const |
int | pseudoInverseEigen3 (vpMatrix &Ap, vpColVector &sv, int rank_in) const |
int | pseudoInverseEigen3 (vpMatrix &Ap, vpColVector &sv, int rank_in, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
vpMatrix | pseudoInverseOpenCV (double svThreshold=1e-6) const |
unsigned int | pseudoInverseOpenCV (vpMatrix &Ap, double svThreshold=1e-6) const |
unsigned int | pseudoInverseOpenCV (vpMatrix &Ap, vpColVector &sv, double svThreshold=1e-6) const |
unsigned int | pseudoInverseOpenCV (vpMatrix &Ap, vpColVector &sv, double svThreshold, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
vpMatrix | pseudoInverseOpenCV (int rank_in) const |
int | pseudoInverseOpenCV (vpMatrix &Ap, int rank_in) const |
int | pseudoInverseOpenCV (vpMatrix &Ap, vpColVector &sv, int rank_in) const |
int | pseudoInverseOpenCV (vpMatrix &Ap, vpColVector &sv, int rank_in, vpMatrix &imA, vpMatrix &imAt, vpMatrix &kerAt) const |
SVD decomposition | |
| |
double | cond (double svThreshold=1e-6) const |
unsigned int | kernel (vpMatrix &kerAt, double svThreshold=1e-6) const |
unsigned int | nullSpace (vpMatrix &kerA, double svThreshold=1e-6) const |
unsigned int | nullSpace (vpMatrix &kerA, int dim) const |
void | solveBySVD (const vpColVector &B, vpColVector &x) const |
vpColVector | solveBySVD (const vpColVector &B) const |
void | svd (vpColVector &w, vpMatrix &V) |
void | svdEigen3 (vpColVector &w, vpMatrix &V) |
void | svdLapack (vpColVector &w, vpMatrix &V) |
void | svdOpenCV (vpColVector &w, vpMatrix &V) |
QR decomposition | |
| |
unsigned int | qr (vpMatrix &Q, vpMatrix &R, bool full=false, bool squareR=false, double tol=1e-6) const |
unsigned int | qrPivot (vpMatrix &Q, vpMatrix &R, vpMatrix &P, bool full=false, bool squareR=false, double tol=1e-6) const |
void | solveByQR (const vpColVector &b, vpColVector &x) const |
vpColVector | solveByQR (const vpColVector &b) const |
Eigen values | |
| |
vpColVector | eigenValues () const |
void | eigenValues (vpColVector &evalue, vpMatrix &evector) const |
Norms | |
| |
double | frobeniusNorm () const |
double | inducedL2Norm () const |
double | infinityNorm () const |
Printing | |
| |
std::ostream & | cppPrint (std::ostream &os, const std::string &matrixName="A", bool octet=false) const |
std::ostream & | csvPrint (std::ostream &os) const |
std::ostream & | maplePrint (std::ostream &os) const |
std::ostream & | matlabPrint (std::ostream &os) const |
int | print (std::ostream &s, unsigned int length, const std::string &intro="") const |
void | printSize () const |
Static Public Member Functions | |
Linear algebra optimization | |
| |
static unsigned int | getLapackMatrixMinSize () |
static void | setLapackMatrixMinSize (unsigned int min_size) |
Stacking with Static Public Member Functions | |
| |
static vpMatrix | stack (const vpMatrix &A, const vpMatrix &B) |
static vpMatrix | stack (const vpMatrix &A, const vpRowVector &r) |
static vpMatrix | stack (const vpMatrix &A, const vpColVector &c) |
static void | stack (const vpMatrix &A, const vpMatrix &B, vpMatrix &C) |
static void | stack (const vpMatrix &A, const vpRowVector &r, vpMatrix &C) |
static void | stack (const vpMatrix &A, const vpColVector &c, vpMatrix &C) |
static vpMatrix | juxtaposeMatrices (const vpMatrix &A, const vpMatrix &B) |
static void | juxtaposeMatrices (const vpMatrix &A, const vpMatrix &B, vpMatrix &C) |
Matrix insertion with Static Public Member Functions | |
| |
static vpMatrix | insert (const vpMatrix &A, const vpMatrix &B, unsigned int r, unsigned int c) |
static void | insert (const vpMatrix &A, const vpMatrix &B, vpMatrix &C, unsigned int r, unsigned int c) |
Kronecker product with Static Public Member Functions | |
| |
static void | kron (const vpMatrix &m1, const vpMatrix &m2, vpMatrix &out) |
static vpMatrix | kron (const vpMatrix &m1, const vpMatrix &m2) |
Setting a diagonal matrix with Static Public Member Functions | |
| |
static void | createDiagonalMatrix (const vpColVector &A, vpMatrix &DA) |
Matrix operations with Static Public Member Functions | |
| |
static void | add2Matrices (const vpMatrix &A, const vpMatrix &B, vpMatrix &C) |
static void | add2Matrices (const vpColVector &A, const vpColVector &B, vpColVector &C) |
static void | add2WeightedMatrices (const vpMatrix &A, const double &wA, const vpMatrix &B, const double &wB, vpMatrix &C) |
static void | computeHLM (const vpMatrix &H, const double &alpha, vpMatrix &HLM) |
static void | mult2Matrices (const vpMatrix &A, const vpMatrix &B, vpMatrix &C) |
static void | mult2Matrices (const vpMatrix &A, const vpMatrix &B, vpRotationMatrix &C) |
static void | mult2Matrices (const vpMatrix &A, const vpMatrix &B, vpHomogeneousMatrix &C) |
static void | mult2Matrices (const vpMatrix &A, const vpColVector &B, vpColVector &C) |
static void | multMatrixVector (const vpMatrix &A, const vpColVector &v, vpColVector &w) |
static void | negateMatrix (const vpMatrix &A, vpMatrix &C) |
static void | sub2Matrices (const vpMatrix &A, const vpMatrix &B, vpMatrix &C) |
static void | sub2Matrices (const vpColVector &A, const vpColVector &B, vpColVector &C) |
Covariance computation with Static Public Member Functions | |
| |
static vpMatrix | computeCovarianceMatrix (const vpMatrix &A, const vpColVector &x, const vpColVector &b) |
static vpMatrix | computeCovarianceMatrix (const vpMatrix &A, const vpColVector &x, const vpColVector &b, const vpMatrix &w) |
static vpMatrix | computeCovarianceMatrixVVS (const vpHomogeneousMatrix &cMo, const vpColVector &deltaS, const vpMatrix &Ls, const vpMatrix &W) |
static vpMatrix | computeCovarianceMatrixVVS (const vpHomogeneousMatrix &cMo, const vpColVector &deltaS, const vpMatrix &Ls) |
Public Attributes | |
double * | data |
Protected Attributes | |
unsigned int | pRowNum |
unsigned int | pColNum |
vpMatrix * | parent |
unsigned int | rowNum |
unsigned int | colNum |
double ** | rowPtrs |
unsigned int | dsize |
Related Symbols | |
(Note that these are not member symbols.) | |
vpMatrix | operator* (const double &x, const vpMatrix &B) |
enum | vpGEMMmethod |
bool | operator== (const vpArray2D< double > &A) const |
bool | operator== (const vpArray2D< float > &A) const |
void | vpGEMM (const vpArray2D< double > &A, const vpArray2D< double > &B, const double &alpha, const vpArray2D< double > &C, const double &beta, vpArray2D< double > &D, const unsigned int &ops=0) |
Inherited I/O from vpArray2D with Static Public Member Functions | |
vpArray2D< double > | insert (const vpArray2D< double > &A, const vpArray2D< double > &B, unsigned int r, unsigned int c) |
static bool | load (const std::string &filename, vpArray2D< double > &A, bool binary=false, char *header=NULL) |
static bool | loadYAML (const std::string &filename, vpArray2D< double > &A, char *header=NULL) |
static bool | save (const std::string &filename, const vpArray2D< double > &A, bool binary=false, const char *header="") |
static bool | saveYAML (const std::string &filename, const vpArray2D< double > &A, const char *header="") |
static vpArray2D< double > | conv2 (const vpArray2D< double > &M, const vpArray2D< double > &kernel, const std::string &mode) |
static void | conv2 (const vpArray2D< double > &M, const vpArray2D< double > &kernel, vpArray2D< double > &res, const std::string &mode) |
static void | insert (const vpArray2D< double > &A, const vpArray2D< double > &B, vpArray2D< double > &C, unsigned int r, unsigned int c) |
Deprecated functions | |
vp_deprecated void | init () |
vp_deprecated void | stackMatrices (const vpMatrix &A) |
vp_deprecated void | setIdentity (const double &val=1.0) |
vp_deprecated vpRowVector | row (unsigned int i) |
vp_deprecated vpColVector | column (unsigned int j) |
static vp_deprecated vpMatrix | stackMatrices (const vpMatrix &A, const vpMatrix &B) |
static vp_deprecated void | stackMatrices (const vpMatrix &A, const vpMatrix &B, vpMatrix &C) |
static vp_deprecated vpMatrix | stackMatrices (const vpMatrix &A, const vpRowVector &B) |
static vp_deprecated void | stackMatrices (const vpMatrix &A, const vpRowVector &B, vpMatrix &C) |
static vp_deprecated vpMatrix | stackMatrices (const vpColVector &A, const vpColVector &B) |
static vp_deprecated void | stackMatrices (const vpColVector &A, const vpColVector &B, vpColVector &C) |
Matrix I/O with Static Public Member Functions | |
| |
vp_deprecated double | euclideanNorm () const |
static bool | loadMatrix (const std::string &filename, vpArray2D< double > &M, bool binary=false, char *header=NULL) |
static bool | loadMatrixYAML (const std::string &filename, vpArray2D< double > &M, char *header=NULL) |
static bool | saveMatrix (const std::string &filename, const vpArray2D< double > &M, bool binary=false, const char *header="") |
static bool | saveMatrixYAML (const std::string &filename, const vpArray2D< double > &M, const char *header="") |
Definition of the vpSubMatrix vpSubMatrix class provides a mask on a vpMatrix all properties of vpMatrix are available with a vpSubMatrix.
Definition at line 57 of file vpSubMatrix.h.
|
inherited |
Method used to compute the determinant of a square matrix.
Enumerator | |
---|---|
LU_DECOMPOSITION | LU decomposition method. |
Definition at line 158 of file vpMatrix.h.
vpSubMatrix::vpSubMatrix | ( | ) |
Default constructor.
Definition at line 45 of file vpSubMatrix.cpp.
vpSubMatrix::vpSubMatrix | ( | vpMatrix & | m, |
const unsigned int & | row_offset, | ||
const unsigned int & | col_offset, | ||
const unsigned int & | nrows, | ||
const unsigned int & | ncols ) |
Constructor.
m | : parent matrix |
row_offset | : row offset |
col_offset | : col offset |
nrows | : number of rows of the sub matrix |
ncols | : number of columns of the sub matrix |
Definition at line 55 of file vpSubMatrix.cpp.
References vpMatrix::init().
|
virtual |
|
inherited |
Computes the
Definition at line 501 of file vpMatrix.cpp.
References vpMatrix::AAt().
Referenced by vpMatrix::AAt(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), and vpServo::computeProjectionOperators().
|
inherited |
Compute the AAt operation such as
The result is placed in the parameter B and not returned.
A new matrix won't be allocated for every use of the function. This results in a speed gain if used many times with the same result matrix size.
Definition at line 521 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
staticinherited |
Operation C = A + B.
The result is placed in the third parameter C and not returned. A new vector won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
Definition at line 1383 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpColVector::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
|
staticinherited |
Operation C = A + B.
The result is placed in the third parameter C and not returned. A new matrix won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
Definition at line 1350 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
Referenced by vpMatrix::operator+().
|
staticinherited |
Operation C = A*wA + B*wB
The result is placed in the third parameter C and not returned. A new matrix won't be allocated for every use of the function (Speed gain if used many times with the same result matrix size).
Definition at line 1321 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
|
inherited |
Compute the AtA operation such as
Definition at line 625 of file vpMatrix.cpp.
References vpMatrix::AtA().
Referenced by vpMatrix::AtA(), vpServo::computeProjectionOperators(), vpMbDepthDenseTracker::computeVVS(), vpMbDepthNormalTracker::computeVVS(), vpMbGenericTracker::computeVVS(), vpMbEdgeTracker::computeVVSFirstPhasePoseEstimation(), vpTemplateTrackerWarpHomographySL3::findWarp(), and vpNurbs::globalCurveApprox().
|
inherited |
Compute the AtA operation such as
The result is placed in the parameter B and not returned.
A new matrix won't be allocated for every use of the function. This results in a speed gain if used many times with the same result matrix size.
Definition at line 574 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< double >::rowNum.
void vpSubMatrix::checkParentStatus | ( | ) | const |
Check is parent vpRowVector has changed since initialization.
This method can be used to detect if the parent matrix always exits or its size have not changed and throw an exception is not.
Definition at line 104 of file vpSubMatrix.cpp.
References vpArray2D< double >::data, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpMatrixException::incorrectMatrixSizeError, parent, pColNum, and pRowNum.
|
inlineinherited |
Removes all elements from the matrix (which are destroyed), leaving the container with a size of 0.
Definition at line 218 of file vpMatrix.h.
Referenced by vpPose::init().
|
inherited |
should be replaced with:
j | : Index of the column to extract noting that column index start at 1 to get the first column. |
Definition at line 6875 of file vpMatrix.cpp.
References vpArray2D< double >::getRows().
|
staticinherited |
Compute the covariance matrix of the parameters x from a least squares minimization defined as: Ax = b
A | : Matrix A from Ax = b. |
x | : Vector x from Ax = b corresponding to the parameters to estimate. |
b | : Vector b from Ax = b. |
Definition at line 59 of file vpMatrix_covariance.cpp.
References vpException::divideByZeroError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpMatrix::pseudoInverse(), and vpMatrix::t().
Referenced by vpMatrix::computeCovarianceMatrixVVS(), vpMatrix::computeCovarianceMatrixVVS(), and vpPose::poseVirtualVSrobust().
|
staticinherited |
Compute the covariance matrix of the parameters x from a least squares minimization defined as: WAx = Wb
A | : Matrix A from WAx = Wb. |
x | : Vector x from WAx = Wb corresponding to the parameters to estimate. |
b | : Vector b from WAx = Wb. |
W | : Diagonal weigths matrix from WAx = Wb. |
Definition at line 91 of file vpMatrix_covariance.cpp.
References vpException::divideByZeroError, vpArray2D< Type >::getCols(), vpMatrix::pseudoInverse(), and vpMatrix::t().
|
staticinherited |
Compute the covariance matrix of an image-based virtual visual servoing. This assumes the optimization has been done via v = Ls.pseudoInverse() * DeltaS.
cMo | : Pose matrix that has been computed with the v. |
deltaS | : Error vector used in v = Ls.pseudoInverse() * DeltaS |
Ls | : interaction matrix used in v = Ls.pseudoInverse() * DeltaS |
Definition at line 124 of file vpMatrix_covariance.cpp.
References vpMatrix::computeCovarianceMatrix(), and vpMatrix::computeCovarianceMatrixVVS().
|
staticinherited |
Compute the covariance matrix of an image-based virtual visual servoing. This assumes the optimization has been done via v = (W * Ls).pseudoInverse() W * DeltaS.
cMo | : Pose matrix that has been computed with the v. |
deltaS | : Error vector used in v = (W * Ls).pseudoInverse() * W * DeltaS. |
Ls | : interaction matrix used in v = (W * Ls).pseudoInverse() * W * DeltaS. |
W | : Weight matrix used in v = (W * Ls).pseudoInverse() * W * DeltaS. |
Definition at line 149 of file vpMatrix_covariance.cpp.
References vpMatrix::computeCovarianceMatrix(), and vpMatrix::computeCovarianceMatrixVVS().
Referenced by vpMatrix::computeCovarianceMatrixVVS(), vpMatrix::computeCovarianceMatrixVVS(), vpMbTracker::computeCovarianceMatrixVVS(), and vpPose::poseVirtualVS().
|
staticinherited |
Compute
H | : input Matrix ![]() |
alpha | : Scalar ![]() |
HLM | : Resulting operation. |
Definition at line 6690 of file vpMatrix.cpp.
References vpException::dimensionError, vpArray2D< Type >::getCols(), and vpArray2D< Type >::getRows().
Referenced by vpTemplateTrackerWarpHomographySL3::findWarp(), vpTemplateTrackerSSDESM::initCompInverse(), vpTemplateTrackerSSDInverseCompositional::initCompInverse(), vpTemplateTrackerMIESM::initHessienDesired(), vpTemplateTrackerMIForwardAdditional::initHessienDesired(), vpTemplateTrackerMIForwardCompositional::initHessienDesired(), vpTemplateTrackerMIInverseCompositional::initHessienDesired(), vpTemplateTrackerZNCCForwardAdditional::initHessienDesired(), vpTemplateTrackerZNCCInverseCompositional::initHessienDesired(), vpTemplateTracker::setHDes(), vpTemplateTrackerMIESM::trackNoPyr(), vpTemplateTrackerMIForwardAdditional::trackNoPyr(), vpTemplateTrackerMIForwardCompositional::trackNoPyr(), vpTemplateTrackerMIInverseCompositional::trackNoPyr(), vpTemplateTrackerSSDESM::trackNoPyr(), vpTemplateTrackerSSDForwardAdditional::trackNoPyr(), and vpTemplateTrackerSSDForwardCompositional::trackNoPyr().
|
inherited |
svThreshold | Threshold used to test the singular values. If a singular value is lower than this threshold we consider that the matrix is not full rank. |
Definition at line 6629 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), vpMatrix::insert(), vpArray2D< Type >::resize(), vpColVector::resize(), and vpMatrix::svd().
Referenced by vpTemplateTrackerMIESM::trackNoPyr(), vpTemplateTrackerMIForwardAdditional::trackNoPyr(), vpTemplateTrackerMIForwardCompositional::trackNoPyr(), and vpTemplateTrackerMIInverseCompositional::trackNoPyr().
|
staticinherited |
Perform a 2D convolution similar to Matlab conv2 function:
M | : First matrix. |
kernel | : Second matrix. |
mode | : Convolution mode: "full" (default), "same", "valid". |
Definition at line 954 of file vpArray2D.h.
|
staticinherited |
Perform a 2D convolution similar to Matlab conv2 function:
M | : First array. |
kernel | : Second array. |
res | : Result. |
mode | : Convolution mode: "full" (default), "same", "valid". |
Definition at line 968 of file vpArray2D.h.
|
inherited |
Print to be used as part of a C++ code later.
os | : the stream to be printed in. |
matrixName | : name of the matrix, "A" by default. |
octet | : if false, print using double, if true, print byte per byte each bytes of the double array. |
The following code shows how to use this function:
It produces the following output that could be copy/paste in a C++ code:
Definition at line 5859 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), and vpArray2D< double >::getRows().
|
staticinherited |
Create a diagonal matrix with the element of a vector
A | : Vector which element will be put in the diagonal. |
DA | : Diagonal matrix DA[i][i] = A[i] |
Definition at line 900 of file vpMatrix.cpp.
References vpArray2D< Type >::getRows(), and vpArray2D< Type >::resize().
|
inherited |
Print/save a matrix in csv format.
The following code
produces log.csv file that contains:
Definition at line 5810 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), and vpArray2D< double >::getRows().
|
inherited |
Compute the determinant of a n-by-n matrix.
method | : Method used to compute the determinant. Default LU decomposition method is faster than the method based on Gaussian elimination. |
Definition at line 6482 of file vpMatrix.cpp.
References vpMatrix::det(), vpMatrix::detByLU(), and vpMatrix::LU_DECOMPOSITION.
Referenced by vpHomogeneousMatrix::compute3d3dTransformation(), vpMatrix::det(), vpMatrix::detByLULapack(), vpMatrix::detByLUOpenCV(), vpTemplateTrackerTriangle::init(), vpMatrix::inverseByLU(), and vpRotationMatrix::orthogonalize().
|
inherited |
Compute the determinant of a square matrix using the LU decomposition.
This function calls the first following function that is available:
If none of these previous 3rd parties is installed, we use by default detByLULapack() with a Lapack built-in version.
Definition at line 221 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpMatrix::detByLUEigen3(), vpMatrix::detByLULapack(), vpMatrix::detByLUOpenCV(), vpException::fatalError, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::det().
|
inherited |
Compute the determinant of a square matrix using the LU decomposition with Eigen3 3rd party.
Definition at line 609 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::data, vpException::fatalError, vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), and vpArray2D< double >::rowNum.
Referenced by vpMatrix::detByLU().
|
inherited |
Compute the determinant of a square matrix using the LU decomposition with Lapack 3rd party.
Definition at line 373 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpMatrix::det(), vpException::fatalError, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::detByLU().
|
inherited |
Compute the determinant of a n-by-n matrix using the LU decomposition with OpenCV 3rd party.
Definition at line 519 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::data, vpMatrix::det(), vpException::fatalError, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::detByLU().
|
inherited |
Set the matrix as a diagonal matrix where each element on the diagonal is set to val. Elements that are not on the diagonal are set to 0.
val | : Value to set. |
Matrix A is now equal to:
Definition at line 881 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::getDiag().
|
inherited |
Create a diagonal matrix with the element of a vector.
A | : Vector which element will be put in the diagonal. |
Matrix A is now equal to:
Definition at line 841 of file vpMatrix.cpp.
References vpArray2D< Type >::getRows(), and vpArray2D< double >::resize().
|
inherited |
Compute the eigenvalues of a n-by-n real symmetric matrix using Lapack 3rd party.
vpException::dimensionError | If the matrix is not square. |
vpException::fatalError | If the matrix is not symmetric. |
vpException::functionNotImplementedError | If the Lapack 3rd party is not detected. |
Here an example:
Definition at line 6050 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpException::dimensionError, vpException::fatalError, vpException::functionNotImplementedError, vpColVector::resize(), vpArray2D< double >::rowNum, and vpMatrix::t().
Referenced by vpQuadProg::fromCanonicalCost(), and vpMath::lineFitting().
|
inherited |
Compute the eigenvalues of a n-by-n real symmetric matrix using Lapack 3rd party.
evalue | : Eigenvalues of the matrix, sorted in ascending order. |
evector | : Corresponding eigenvectors of the matrix. |
vpException::dimensionError | If the matrix is not square. |
vpException::fatalError | If the matrix is not symmetric. |
vpException::functionNotImplementedError | If Lapack 3rd party is not detected. |
Here an example:
Definition at line 6171 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpException::dimensionError, vpException::fatalError, vpException::functionNotImplementedError, vpArray2D< Type >::resize(), vpColVector::resize(), vpArray2D< double >::rowNum, and vpMatrix::t().
|
inherited |
Compute and return the Euclidean norm (also called Frobenius norm)
Definition at line 6815 of file vpMatrix.cpp.
References vpMatrix::frobeniusNorm().
|
inherited |
Compute the exponential matrix of a square matrix.
Definition at line 6500 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, vpMatrix::eye(), vpMatrix::inverseByLU(), vpArray2D< Type >::resize(), vpArray2D< double >::rowNum, and vpMatrix::sum().
Referenced by vpTemplateTrackerWarpHomographySL3::computeCoeff().
|
inherited |
Extract a sub matrix from a matrix M.
r | : row index in matrix M. |
c | : column index in matrix M. |
nrows | : Number of rows of the matrix that should be extracted. |
ncols | : Number of columns of the matrix that should be extracted. |
The following code shows how to use this function:
It produces the following output:
Definition at line 404 of file vpMatrix.cpp.
References vpException::dimensionError, vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), and vpArray2D< Type >::resize().
Referenced by vpLinProg::colReduction(), vpLinProg::rowReduction(), and vpMatrix::solveByQR().
|
inherited |
Set an m-by-n matrix to identity with ones on the diagonal and zeros else where.
Definition at line 446 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, and vpArray2D< double >::rowNum.
Referenced by vpLinProg::colReduction(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), vpMbDepthDenseTracker::computeVVS(), vpMbDepthNormalTracker::computeVVS(), vpMbEdgeKltTracker::computeVVS(), vpMbEdgeTracker::computeVVS(), vpMbGenericTracker::computeVVS(), vpMbKltTracker::computeVVS(), vpMbTracker::computeVVSPoseEstimation(), vpMatrix::expm(), vpMatrix::eye(), vpMatrix::eye(), vpTemplateTrackerWarpHomographySL3::getdW0(), vpTemplateTrackerWarpHomographySL3::getdWdp0(), vpTemplateTrackerWarpHomographySL3::getdWdp0(), vpFeatureThetaU::interaction(), vpPose::poseFromRectangle(), vpRobotKinova::setCartVelocity(), vpServo::setServo(), vpLinProg::solveLP(), vpMbTracker::vpMbTracker(), vpServo::vpServo(), and vpServo::vpServo().
|
inherited |
Compute and return the Frobenius norm (also called Euclidean norm)
Definition at line 6710 of file vpMatrix.cpp.
References vpArray2D< double >::data, and vpArray2D< double >::dsize.
Referenced by vpMatrix::euclideanNorm().
|
inherited |
Extract a column vector from a matrix.
j | : Index of the column to extract. If j=0, the first column is extracted. |
The following example shows how to use this function:
It produces the following output:
Definition at line 5200 of file vpMatrix.cpp.
References vpMatrix::getCol(), and vpArray2D< double >::rowNum.
Referenced by vpLinProg::colReduction(), vpHomography::DLT(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), vpMatrix::getCol(), vpMatrix::kernel(), vpPose::poseFromRectangle(), vpServo::secondaryTaskJointLimitAvoidance(), and vpLinProg::simplex().
|
inherited |
Extract a column vector from a matrix.
j | : Index of the column to extract. If col=0, the first column is extracted. |
i_begin | : Index of the row that gives the location of the first element of the column vector to extract. |
column_size | : Size of the column vector to extract. |
The following example shows how to use this function:
It produces the following output:
Definition at line 5150 of file vpMatrix.cpp.
References vpException::dimensionError, vpArray2D< double >::getCols(), and vpArray2D< double >::getRows().
|
inlineinherited |
Return the number of columns of the 2D array.
Definition at line 280 of file vpArray2D.h.
Referenced by vpMatrix::cond(), vpMatrix::cppPrint(), vpRowVector::cppPrint(), vpMatrix::csvPrint(), vpRowVector::csvPrint(), vpMatrix::detByLUEigen3(), vpMatrix::extract(), vpHomogeneousMatrix::getCol(), vpMatrix::getCol(), vpRotationMatrix::getCol(), vpMatrix::inducedL2Norm(), vpMatrix::inverseByLUEigen3(), vpMatrix::inverseByQRLapack(), vpRotationMatrix::isARotationMatrix(), vpMatrix::kernel(), vpMatrix::maplePrint(), vpRowVector::maplePrint(), vpMatrix::matlabPrint(), vpRowVector::matlabPrint(), vpMatrix::nullSpace(), vpMatrix::nullSpace(), vpRowVector::operator*(), vpRowVector::operator+(), vpRowVector::operator+=(), vpRowVector::operator-(), vpRowVector::operator-=(), vpForceTwistMatrix::print(), vpMatrix::print(), vpRowVector::print(), vpVelocityTwistMatrix::print(), vpMatrix::row(), vpMatrix::svdEigen3(), vpMatrix::svdLapack(), and vpMatrix::svdOpenCV().
|
inherited |
Extract a diagonal vector from a matrix.
The following example shows how to use this function:
It produces the following output:
Definition at line 5326 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpMatrix::diag(), and vpArray2D< double >::rowNum.
|
inlinestaticinherited |
Return the minimum size of rows and columns required to enable Blas/Lapack usage on matrices and vectors.
To get more info see Tutorial: Basic linear algebra operations.
Definition at line 245 of file vpMatrix.h.
|
inherited |
Return the array max value.
Definition at line 282 of file vpArray2D.h.
|
inherited |
Return the array min value.
Definition at line 284 of file vpArray2D.h.
|
inherited |
Extract a row vector from a matrix.
i | : Index of the row to extract. If i=0, the first row is extracted. |
The following example shows how to use this function:
It produces the following output:
Definition at line 5237 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, and vpMatrix::getRow().
Referenced by vpLinProg::allClose(), vpLinProg::allLesser(), vpMatrix::getRow(), vpLinProg::solveLP(), and vpQuadProg::solveQPi().
|
inherited |
Extract a row vector from a matrix.
i | : Index of the row to extract. If i=0, the first row is extracted. |
j_begin | : Index of the column that gives the location of the first element of the row vector to extract. |
row_size | : Size of the row vector to extract. |
The following example shows how to use this function:
It produces the following output:
Definition at line 5278 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, and vpArray2D< double >::rowNum.
|
inlineinherited |
Return the number of rows of the 2D array.
Definition at line 290 of file vpArray2D.h.
Referenced by vpMatrix::column(), vpMatrix::cond(), vpColVector::cppPrint(), vpMatrix::cppPrint(), vpColVector::csvPrint(), vpMatrix::csvPrint(), vpMatrix::detByLUEigen3(), vpMatrix::extract(), vpHomogeneousMatrix::getCol(), vpMatrix::getCol(), vpRotationMatrix::getCol(), vpMatrix::inducedL2Norm(), vpMatrix::inverseByCholeskyLapack(), vpMatrix::inverseByLUEigen3(), vpMatrix::inverseByQRLapack(), vpRotationMatrix::isARotationMatrix(), vpMatrix::kernel(), vpColVector::maplePrint(), vpMatrix::maplePrint(), vpColVector::matlabPrint(), vpMatrix::matlabPrint(), vpMatrix::nullSpace(), vpMatrix::nullSpace(), vpColVector::operator+(), vpColVector::operator+(), vpColVector::operator+=(), vpColVector::operator-(), vpColVector::operator-=(), vpColVector::print(), vpForceTwistMatrix::print(), vpMatrix::print(), vpPoseVector::print(), vpVelocityTwistMatrix::print(), vpMatrix::svdEigen3(), vpMatrix::svdLapack(), and vpMatrix::svdOpenCV().
Compute the Hadamard product (element wise matrix multiplication).
m | : Second matrix; |
Definition at line 554 of file vpArray2D.h.
Compute the Hadamard product (element wise matrix multiplication).
m | : Second matrix; |
Definition at line 1764 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, vpArray2D< double >::dsize, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), and vpArray2D< double >::rowNum.
|
inherited |
Compute and return the induced L2 norm
Definition at line 6729 of file vpMatrix.cpp.
References vpArray2D< double >::dsize, vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), vpArray2D< Type >::size(), and vpMatrix::svd().
|
inherited |
Compute and return the infinity norm
Definition at line 6770 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
Referenced by vpLinProg::colReduction(), and vpLinProg::rowReduction().
|
inlineinherited |
Definition at line 1004 of file vpMatrix.h.
Referenced by vpMatrix::vpMatrix(), and vpSubMatrix().
|
inherited |
Initialize the matrix from a part of an input matrix M.
M | : Input matrix used for initialization. |
r | : row index in matrix M. |
c | : column index in matrix M. |
nrows | : Number of rows of the matrix that should be initialized. |
ncols | : Number of columns of the matrix that should be initialized. |
The sub-matrix starting from M[r][c] element and ending on M[r+nrows-1][c+ncols-1] element is used to initialize the matrix.
The following code shows how to use this function:
It produces the following output:
Definition at line 343 of file vpMatrix.cpp.
References vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::resize(), and vpArray2D< double >::rowPtrs.
void vpSubMatrix::init | ( | vpMatrix & | m, |
const unsigned int & | row_offset, | ||
const unsigned int & | col_offset, | ||
const unsigned int & | nrows, | ||
const unsigned int & | ncols ) |
Initialisation of vpMatrix.
Initialisation of a sub matrix.
m | : parent matrix |
row_offset | : row offset |
col_offset | : col offset |
nrows | : number of rows of the sub matrix |
ncols | : number of columns of the sub matrix |
Definition at line 70 of file vpSubMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpArray2D< double >::dsize, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpMatrixException::incorrectMatrixSizeError, parent, pColNum, pRowNum, vpArray2D< double >::rowNum, vpArray2D< double >::rowPtrs, and vpMatrixException::subMatrixError.
|
inherited |
Insert array B in array A at the given position.
A | : Main array. |
B | : Array to insert. |
r | : Index of the row where to add the array. |
c | : Index of the column where to add the array. |
Definition at line 982 of file vpArray2D.h.
|
inlineinherited |
Insert array A at the given position in the current array.
A | : The array to insert. |
r | : The index of the row to begin to insert data. |
c | : The index of the column to begin to insert data. |
Definition at line 417 of file vpArray2D.h.
|
staticinherited |
Insert matrix B in matrix A at the given position.
A | : Main matrix. |
B | : Matrix to insert. |
r | : Index of the row where to add the matrix. |
c | : Index of the column where to add the matrix. |
Definition at line 5497 of file vpMatrix.cpp.
References vpArray2D< Type >::insert(), and vpMatrix::vpMatrix().
|
staticinherited |
Insert matrix B in matrix A at the given position.
A | : Main matrix. |
B | : Matrix to insert. |
C | : Result matrix. |
r | : Index of the row where to insert matrix B. |
c | : Index of the column where to insert matrix B. |
Definition at line 5519 of file vpMatrix.cpp.
References vpArray2D< Type >::insert().
|
inherited |
Insert matrix A at the given position in the current matrix.
A | : The matrix to insert. |
r | : The index of the row to begin to insert data. |
c | : The index of the column to begin to insert data. |
Definition at line 5996 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::rowNum, and vpArray2D< Type >::size().
Referenced by vpMbDepthDenseTracker::computeVVSInteractionMatrixAndResidu(), vpMbDepthNormalTracker::computeVVSInteractionMatrixAndResidu(), vpMbGenericTracker::computeVVSInteractionMatrixAndResidu(), vpMatrix::cond(), vpMatrix::juxtaposeMatrices(), vpMatrix::kernel(), vpMatrix::nullSpace(), vpMatrix::nullSpace(), vpRobotKinova::setCartVelocity(), and vpMatrix::stack().
|
inherited |
Compute the inverse of a n-by-n matrix using the Cholesky decomposition. The matrix must be real symmetric positive defined.
This function calls the first following function that is available:
If none of these 3rd parties is installed we use a Lapack built-in version.
Here an example:
Definition at line 112 of file vpMatrix_cholesky.cpp.
References vpException::fatalError, vpMatrix::inverseByCholeskyLapack(), and vpMatrix::inverseByCholeskyOpenCV().
|
inherited |
Compute the inverse of a n-by-n matrix using the Cholesky decomposition with Lapack 3rd party. The matrix must be real symmetric positive defined.
Here an example:
Definition at line 162 of file vpMatrix_cholesky.cpp.
References vpException::badValue, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpException::fatalError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::getRows(), vpMatrixException::matrixError, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::inverseByCholesky().
|
inherited |
Compute the inverse of a n-by-n matrix using the Cholesky decomposition with OpenCV 3rd party. The matrix must be real symmetric positive defined.
Here an example:
Definition at line 255 of file vpMatrix_cholesky.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::fatalError, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::inverseByCholesky().
|
inherited |
Compute the inverse of a n-by-n matrix using the LU decomposition.
This function calls the first following function that is available:
If none of these previous 3rd parties is installed, we use by default inverseByLULapack() with a Lapack built-in version.
Here an example:
Definition at line 127 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpMatrix::det(), vpException::fatalError, vpMatrix::inverseByLUEigen3(), vpMatrix::inverseByLULapack(), vpMatrix::inverseByLUOpenCV(), vpArray2D< Type >::resize(), and vpArray2D< double >::rowNum.
Referenced by vpMatrix::expm(), vpKalmanFilter::filtering(), vpTemplateTrackerWarpHomographySL3::findWarp(), vpTemplateTrackerTriangle::init(), vpTemplateTrackerSSDInverseCompositional::initCompInverse(), vpTemplateTrackerMIESM::initHessienDesired(), vpTemplateTrackerMIForwardAdditional::initHessienDesired(), vpTemplateTrackerMIForwardCompositional::initHessienDesired(), vpTemplateTrackerMIInverseCompositional::initHessienDesired(), vpTemplateTrackerZNCCForwardAdditional::initHessienDesired(), vpTemplateTrackerZNCCInverseCompositional::initHessienDesired(), vpTemplateTracker::setHDes(), vpTemplateTrackerMIESM::trackNoPyr(), vpTemplateTrackerMIForwardAdditional::trackNoPyr(), vpTemplateTrackerMIForwardCompositional::trackNoPyr(), vpTemplateTrackerMIInverseCompositional::trackNoPyr(), vpTemplateTrackerSSDForwardAdditional::trackNoPyr(), vpTemplateTrackerSSDForwardCompositional::trackNoPyr(), and vpImageTools::warpImage().
|
inherited |
Compute the inverse of a n-by-n matrix using the LU decomposition with Eigen3 3rd party.
Here an example:
Definition at line 567 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::fatalError, vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), and vpArray2D< double >::rowNum.
Referenced by vpMatrix::inverseByLU().
|
inherited |
Compute the inverse of a n-by-n matrix using the LU decomposition with Lapack 3rd party.
Here an example:
Definition at line 276 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpException::fatalError, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::inverseByLU().
|
inherited |
Compute the inverse of a n-by-n matrix using the LU decomposition with OpenCV 3rd party.
Here an example:
Definition at line 478 of file vpMatrix_lu.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::fatalError, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::inverseByLU().
|
inherited |
Compute the inverse of a n-by-n matrix using the QR decomposition. Only available if Lapack 3rd party is installed. If Lapack is not installed we use a Lapack built-in version.
Here an example:
Definition at line 380 of file vpMatrix_qr.cpp.
References vpException::fatalError, and vpMatrix::inverseByQRLapack().
Referenced by vpLinProg::simplex().
|
inherited |
Compute the inverse of a n-by-n matrix using the QR decomposition with Lapack 3rd party.
Here an example:
Definition at line 151 of file vpMatrix_qr.cpp.
References vpException::badValue, vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::getRows(), vpMatrixException::matrixError, vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< double >::rowNum.
Referenced by vpMatrix::inverseByQR().
|
inherited |
Compute the inverse of a full-rank n-by-n triangular matrix. Only available if Lapack 3rd party is installed. If Lapack is not installed we use a Lapack built-in version.
upper | : if it is an upper triangular matrix |
The function does not check if the matrix is actually upper or lower triangular.
Definition at line 1001 of file vpMatrix_qr.cpp.
References vpException::badValue, vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpException::dimensionError, vpException::fatalError, vpMatrixException::rankDeficient, vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< double >::rowNum.
Referenced by vpLinProg::colReduction(), vpLinProg::rowReduction(), and vpMatrix::solveByQR().
Juxtapose to matrices C = [ A B ].
A | : Left matrix. |
B | : Right matrix. |
Definition at line 5539 of file vpMatrix.cpp.
References vpMatrix::juxtaposeMatrices().
Referenced by vpLinProg::colReduction(), and vpMatrix::juxtaposeMatrices().
Juxtapose to matrices C = [ A B ].
A | : Left matrix. |
B | : Right matrix. |
C | : Juxtaposed matrix C = [ A B ] |
Definition at line 5560 of file vpMatrix.cpp.
References vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpMatrix::insert(), and vpArray2D< Type >::resize().
|
inherited |
Function to compute the null space (the kernel) of a m-by-n matrix
The null space of a matrix
kerAt | The matrix that contains the null space (kernel) of ![]() ![]() ![]() kerAt is (0, n), otherwise the dimension is (n-r, n). This matrix is thus the transpose of ![]() |
svThreshold | Threshold used to test the singular values. If a singular value is lower than this threshold we consider that the matrix is not full rank. |
Definition at line 6270 of file vpMatrix.cpp.
References vpMatrix::getCol(), vpArray2D< double >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::getRows(), vpMatrix::insert(), vpArray2D< Type >::resize(), vpColVector::resize(), vpColVector::sumSquare(), and vpMatrix::svd().
Compute Kronecker product matrix.
m | : vpMatrix; |
Definition at line 1853 of file vpMatrix.cpp.
References vpMatrix::kron().
Compute Kronecker product matrix.
Definition at line 1822 of file vpMatrix.cpp.
References vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), and vpArray2D< Type >::resize().
Compute Kronecker product matrix.
Definition at line 1784 of file vpMatrix.cpp.
References vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), and vpArray2D< Type >::resize().
Compute Kronecker product matrix.
m | : vpMatrix. |
out | : If m1.kron(m2) out contains the kronecker product's result : ![]() |
Definition at line 1814 of file vpMatrix.cpp.
References vpMatrix::kron().
Referenced by vpMatrix::kron(), and vpMatrix::kron().
|
inlinestaticinherited |
Load a matrix from a file.
filename | : Absolute file name. |
A | : Array to be loaded |
binary | : If true the matrix is loaded from a binary file, else from a text file. |
header | : Header of the file is loaded in this parameter. |
Definition at line 582 of file vpArray2D.h.
|
inlinestaticinherited |
Load a matrix from a file. This function overloads vpArray2D::load().
filename | : Absolute file name. |
M | : Matrix to be loaded. |
binary | : If true the matrix data are considered as binary, otherwise as human readable (text) data. Using binary data allows to keep data precision. |
header | : Header of the file is loaded in this parameter. |
The following example shows how to use this function:
The output of this example is the following:
Matrix saved in matrix.bin My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0 Matrix loaded from matrix.bin My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0
And the content of matrix.bin
file where data are saved as binary data is the following:
% cat matrix.bin My header??@@@%
Definition at line 763 of file vpMatrix.h.
References vpArray2D< Type >::load().
Referenced by vpDot2::defineDots().
|
inlinestaticinherited |
Load a matrix from a YAML-formatted file. This function overloads vpArray2D::loadYAML().
filename | : Absolute YAML file name. |
M | : Matrix to be loaded from the file. |
header | : Header of the file is loaded in this parameter. |
The following example shows how to use this function:
The output of this example is the following:
Matrix saved in matrix.yaml My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0 Matrix loaded from matrix.yaml My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0
And the content of matrix.yaml
file is the following:
% cat matrix.yaml My header rows: 2 cols: 3 data: - [-1, -2, -3] - [4, 5.5, 6]
Definition at line 838 of file vpMatrix.h.
References vpArray2D< Type >::loadYAML().
|
inlinestaticinherited |
Load an array from a YAML-formatted file.
filename | : absolute file name. |
A | : array to be loaded from the file. |
header | : header of the file is loaded in this parameter. |
Definition at line 696 of file vpArray2D.h.
|
inherited |
Print using Maple syntax, to copy/paste in Maple later.
The following code
produces this output:
that could be copy/paste in Maple.
Definition at line 5769 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), and vpArray2D< double >::getRows().
|
inherited |
Print using Matlab syntax, to copy/paste in Matlab later.
The following code
produces this output:
that could be copy/paste in Matlab:
Definition at line 5724 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), and vpArray2D< double >::getRows().
|
staticinherited |
Operation C = A * B.
The result is placed in the third parameter C and not returned. A new matrix won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
Definition at line 1155 of file vpMatrix.cpp.
References vpMatrix::multMatrixVector().
|
staticinherited |
Operation C = A * B.
The result is placed in the third parameter C and not returned. A new matrix won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
vpException::dimensionError | If matrices are not 4-by-4 dimension. |
Definition at line 1097 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< Type >::data, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
|
staticinherited |
Operation C = A * B.
The result is placed in the third parameter C and not returned. A new matrix won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
Definition at line 1003 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< Type >::data, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
Referenced by vpMatrix::operator*().
|
staticinherited |
Operation C = A * B.
The result is placed in the third parameter C and not returned. A new matrix won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
vpException::dimensionError | If matrices are not 3-by-3 dimension. |
Definition at line 1060 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
|
staticinherited |
Operation w = A * v (v and w are vectors).
A new matrix won't be allocated for every use of the function (Speed gain if used many times with the same result matrix size).
Definition at line 953 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< Type >::data, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpColVector::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
Referenced by vpMatrix::mult2Matrices(), and vpMatrix::operator*().
Operation C = -A.
The result is placed in the second parameter C and not returned. A new matrix won't be allocated for every use of the function (Speed gain if used many times with the same result matrix size).
Definition at line 1538 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
Referenced by vpMatrix::operator-().
|
inherited |
Function to compute the null space (the kernel) of a m-by-n matrix
The null space of a matrix
kerA | The matrix that contains the null space (kernel) of ![]() ![]() kerA is (n, 0), otherwise its dimension is (n, n-r). |
svThreshold | Threshold used to test the singular values. The dimension of kerA corresponds to the number of singular values lower than this threshold |
Definition at line 6341 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), vpMatrix::insert(), vpArray2D< Type >::resize(), vpColVector::resize(), and vpMatrix::svd().
Referenced by vpMeEllipse::leastSquare(), and vpMeEllipse::leastSquareRobust().
|
inherited |
Function to compute the null space (the kernel) of a m-by-n matrix
The null space of a matrix
kerA | The matrix that contains the null space (kernel) of ![]() ![]() kerA is (n, 0), otherwise its dimension is (n, n-r). |
dim | the dimension of the null space when it is known a priori |
Definition at line 6406 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), vpMatrix::insert(), vpArray2D< Type >::resize(), vpColVector::resize(), and vpMatrix::svd().
|
inherited |
Not equal to comparison operator of a 2D array.
Definition at line 442 of file vpArray2D.h.
|
inherited |
Operation w = A * v (matrix A is unchanged, v and w are column vectors).
Definition at line 938 of file vpMatrix.cpp.
References vpMatrix::multMatrixVector().
|
inherited |
Operator that allow to multiply a matrix by a force/torque twist matrix. The matrix should be of dimension m-by-6.
Definition at line 1275 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), and vpArray2D< double >::rowNum.
|
inherited |
Operator that allow to multiply a matrix by a homogeneous matrix. The matrix should be of dimension m-by-4.
Definition at line 1206 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
Operation C = A * B (A is unchanged).
Definition at line 1164 of file vpMatrix.cpp.
References vpMatrix::mult2Matrices().
|
inherited |
Operator that allow to multiply a matrix by a rotation matrix. The matrix should be of dimension m-by-3.
Definition at line 1177 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Operator that allows to multiply a matrix by a translation vector. The matrix should be of dimension (3x3)
Definition at line 913 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Operator that allow to multiply a matrix by a velocity twist matrix. The matrix should be of dimension m-by-6.
Definition at line 1235 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), and vpArray2D< double >::rowNum.
|
inherited |
Operator that allows to multiply all the elements of a matrix by a scalar.
Definition at line 1609 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::resize(), vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Multiply all the element of the matrix by x : Aij = Aij * x.
Operator that allows to multiply all the elements of a matrix by a scalar.
Definition at line 1672 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
Operation C = A + B (A is unchanged).
Definition at line 1408 of file vpMatrix.cpp.
References vpMatrix::add2Matrices().
Operation A = A + B.
Definition at line 1497 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::rowNum, vpArray2D< Type >::rowPtrs, and vpArray2D< double >::rowPtrs.
|
inherited |
Add x to all the element of the matrix : Aij = Aij + x.
Definition at line 1649 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Definition at line 799 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::resize(), and vpArray2D< double >::rowPtrs.
|
inherited |
Operation C = -A (A is unchanged).
Definition at line 1555 of file vpMatrix.cpp.
References vpMatrix::negateMatrix().
Operation C = A - B (A is unchanged).
Definition at line 1488 of file vpMatrix.cpp.
References vpMatrix::sub2Matrices().
Operation A = A - B.
Definition at line 1514 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::rowNum, vpArray2D< Type >::rowPtrs, and vpArray2D< double >::rowPtrs.
|
inherited |
subtract x to all the element of the matrix : Aij = Aij - x
Definition at line 1659 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Cij = Aij / x (A is unchanged)
Definition at line 1626 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::divideByZeroError, vpArray2D< Type >::resize(), vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Divide all the element of the matrix by x : Aij = Aij / x.
Definition at line 1686 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::divideByZeroError, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Assigment from an array of double. This method has to be used carefully since the array allocated behind x pointer should have the same dimension than the matrix.
Definition at line 782 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Definition at line 792 of file vpMatrix.cpp.
References vpArray2D< double >::resize(), and vpArray2D< double >::rowPtrs.
vpSubMatrix & vpSubMatrix::operator= | ( | const double & | x | ) |
Operation such as subA = x.
Operation A = x.
x | : a scalar |
Definition at line 166 of file vpSubMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
vpSubMatrix & vpSubMatrix::operator= | ( | const vpMatrix & | B | ) |
Operation such as subA = B.
Operation A = B.
B | : a matrix |
Definition at line 120 of file vpSubMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpMatrixException::incorrectMatrixSizeError, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
vpSubMatrix & vpSubMatrix::operator= | ( | const vpSubMatrix & | B | ) |
Operation such as subA = subB.
Operation A = B.
B | : a subMatrix |
Definition at line 140 of file vpSubMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpMatrixException::incorrectMatrixSizeError, parent, pColNum, pRowNum, vpArray2D< double >::rowNum, vpArray2D< Type >::rowPtrs, and vpArray2D< double >::rowPtrs.
Equal to comparison operator of a 2D array.
Definition at line 438 of file vpArray2D.h.
|
inlineinherited |
Set element
Definition at line 520 of file vpArray2D.h.
|
inlineinherited |
Get element
Definition at line 522 of file vpArray2D.h.
|
inherited |
Pretty print a matrix. The data are tabulated. The common widths before and after the decimal point are set with respect to the parameter length
.
s | : Stream used for the printing. |
length | : The suggested width of each matrix element. If needed, the used length grows in order to accomodate the whole integral part, and shrinks the decimal part to print only length digits. |
intro | : The introduction which is printed before the matrix. Can be set to zero (or omitted), in which case the introduction is not printed. |
Definition at line 5606 of file vpMatrix.cpp.
References vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), and vpMath::maximum().
Referenced by vpServo::computeControlLaw().
|
inlineinherited |
Definition at line 599 of file vpMatrix.h.
References vpArray2D< Type >::getCols(), and vpArray2D< Type >::getRows().
|
inherited |
Compute and return the Moore-Penros pseudo inverse
svThreshold | : Threshold used to test the singular values. If a singular value is lower than this threshold we consider that the matrix is not full rank. |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 2238 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
Referenced by vpSimulatorAfma6::computeArticularVelocity(), vpSimulatorViper850::computeArticularVelocity(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), vpMatrix::computeCovarianceMatrix(), vpMatrix::computeCovarianceMatrix(), vpMbEdgeTracker::computeVVSFirstPhasePoseEstimation(), vpMbTracker::computeVVSPoseEstimation(), vpQuadProg::fromCanonicalCost(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), vpHomography::inverse(), vpMeLine::leastSquare(), vpHomogeneousMatrix::mean(), vpRotationMatrix::mean(), vpRotationMatrix::mean(), vpPose::poseDementhonNonPlan(), vpPose::poseDementhonPlan(), vpPose::poseFromRectangle(), vpMatrix::pseudoInverse(), vpMatrix::pseudoInverse(), vpHomography::robust(), vpMatrix::solveBySVD(), and vpQuadProg::solveQPi().
|
inherited |
Compute and return the Moore-Penros pseudo inverse
[in] | rank_in | : Known rank of the matrix. |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 2303 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
|
inherited |
Compute the Moore-Penros pseudo inverse
Ap | : The Moore-Penros pseudo inverse ![]() |
svThreshold | : Threshold used to test the singular values. If a singular value is lower than this threshold we consider that the matrix is not full rank. |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 2096 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
|
inherited |
Compute the Moore-Penros pseudo inverse
Ap | : The Moore-Penros pseudo inverse ![]() | |
[in] | rank_in | : Known rank of the matrix. |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 2172 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
|
inherited |
Compute the Moore-Penros pseudo inverse
See pseudoInverse(vpMatrix &, vpColVector &, double, vpMatrix &, vpMatrix &, vpMatrix &) const for a complete description of this function.
Ap | : The Moore-Penros pseudo inverse ![]() |
sv | Vector corresponding to matrix ![]() |
svThreshold | : Threshold used to test the singular values. If a singular value is lower than this threshold we consider that the matrix is not full rank. |
imA | ![]() |
imAt | ![]() |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 4703 of file vpMatrix.cpp.
References vpMatrix::pseudoInverse().
|
inherited |
Compute the Moore-Penros pseudo inverse
Using singular value decomposition, we have:
where the diagonal of
This equation could be reformulated in a minimal way:
where the diagonal of
The null space of a matrix
Ap | The Moore-Penros pseudo inverse ![]() |
sv | Vector corresponding to matrix ![]() |
svThreshold | Threshold used to test the singular values. If a singular value is lower than this threshold we consider that the matrix is not full rank. |
imA | ![]() |
imAt | ![]() |
kerAt | The matrix that contains the null space (kernel) of ![]() ![]() ![]() kerAt is (0, n), otherwise the dimension is (n-r, n). This matrix is thus the transpose of ![]() |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 4928 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
|
inherited |
Compute the Moore-Penros pseudo inverse
Ap | : The Moore-Penros pseudo inverse ![]() |
sv | Vector corresponding to matrix ![]() |
svThreshold | : Threshold used to test the singular values. If a singular value is lower than this threshold we consider that the matrix is not full rank. |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 4530 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
|
inherited |
Compute the Moore-Penros pseudo inverse
Ap | : The Moore-Penros pseudo inverse ![]() | |
sv | Vector corresponding to matrix ![]() | |
[in] | rank_in | : Known rank of the matrix. |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 4613 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
|
inherited |
Compute the Moore-Penros pseudo inverse
See pseudoInverse(vpMatrix &, vpColVector &, double, vpMatrix &, vpMatrix &, vpMatrix &) const for a complete description of this function.
Ap | : The Moore-Penros pseudo inverse ![]() | |
sv | Vector corresponding to matrix ![]() | |
[in] | rank_in | : Known rank of the matrix. |
imA | ![]() | |
imAt | ![]() |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output:
Definition at line 4788 of file vpMatrix.cpp.
References vpMatrix::pseudoInverse().
|
inherited |
Compute the Moore-Penros pseudo inverse
Using singular value decomposition, we have:
where the diagonal of
This equation could be reformulated in a minimal way:
where the diagonal of
The null space of a matrix
Ap | The Moore-Penros pseudo inverse ![]() | |
sv | Vector corresponding to matrix ![]() | |
[in] | rank_in | : Known rank of the matrix. |
imA | ![]() | |
imAt | ![]() | |
kerAt | The matrix that contains the null space (kernel) of ![]() ![]() ![]() kerAt is (0, n), otherwise the dimension is (n-r, n). This matrix is thus the transpose of ![]() |
Here an example to compute the pseudo-inverse of a 2-by-3 matrix that is rank 2.
Once build, the previous example produces the following output :
Definition at line 5088 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::pseudoInverseEigen3(), vpMatrix::pseudoInverseLapack(), and vpMatrix::pseudoInverseOpenCV().
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Compute the QR decomposition of a (m x n) matrix of rank r. Only available if Lapack 3rd party is installed. If Lapack is not installed we use a Lapack built-in version.
Q | : orthogonal matrix (will be modified). |
R | : upper-triangular matrix (will be modified). |
full | : whether or not we want full decomposition. |
squareR | : will return only the square (min(m,n) x min(m,n)) part of R. |
tol | : tolerance to test the rank of R. |
If full is false (default) then Q is (m x min(n,m)) and R is (min(n,m) x n). We then have this = QR.
If full is true and m > n then Q is (m x m) and R is (n x n). In this case this = Q (R, 0)^T
If squareR is true and n > m then R is (m x m). If r = m then R is invertible.
Here an example:
Definition at line 443 of file vpMatrix_qr.cpp.
References vpException::badValue, vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::fatalError, vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< double >::rowNum.
Referenced by vpLinProg::colReduction().
|
inherited |
Compute the QR pivot decomposition of a (m x n) matrix of rank r. Only available if Lapack 3rd party is installed. If Lapack is not installed we use a Lapack built-in version.
Q | : orthogonal matrix (will be modified). |
R | : upper-triangular matrix (will be modified). |
P | : the (n x n) permutation matrix. |
full | : whether or not we want full decomposition. |
squareR | : will return only the (r x r) part of R and the (r x n) part of P. |
tol | : tolerance to test the rank of R. |
If full is false (default) then Q is (m x min(n,m)) and R is (min(n,m) x n). We then have this.P = Q.R.
If full is true and m > n then Q is (m x m) and R is (n x n). In this case this.P = Q (R, 0)^T
If squareR is true then R is (r x r) invertible.
Here an example:
Definition at line 723 of file vpMatrix_qr.cpp.
References vpException::badValue, vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::fatalError, vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< double >::rowNum.
Referenced by vpLinProg::colReduction(), vpLinProg::rowReduction(), and vpMatrix::solveByQR().
|
inlineinherited |
Definition at line 383 of file vpArray2D.h.
|
inlineinherited |
Set the size of the array and initialize all the values to zero.
nrows | : number of rows. |
ncols | : number of column. |
flagNullify | : if true, then the array is re-initialized to 0 after resize. If false, the initial values from the common part of the array (common part between old and new version of the array) are kept. Default value is true. |
recopy_ | : if true, will perform an explicit recopy of the old data. |
Definition at line 305 of file vpArray2D.h.
Referenced by vpMatrix::diag(), vpMatrix::eye(), vpMatrix::init(), vpMatrix::operator,(), vpMatrix::operator<<(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), and vpMatrix::svdOpenCV().
|
inherited |
should be replaced with:
i | : Index of the row to extract noting that row index start at 1 to get the first row. |
Definition at line 6849 of file vpMatrix.cpp.
References vpArray2D< double >::getCols().
|
inlinestaticinherited |
Save a matrix to a file.
filename | : Absolute file name. |
A | : Array to be saved. |
binary | : If true the matrix is saved in a binary file, else a text file. |
header | : Optional line that will be saved at the beginning of the file. |
Warning : If you save the matrix as in a text file the precision is less than if you save it in a binary file.
Definition at line 784 of file vpArray2D.h.
|
inlinestaticinherited |
Save a matrix to a file. This function overloads vpArray2D::save().
filename | : Absolute file name. |
M | : Matrix to be saved. |
binary | : If true the matrix is save as a binary file, otherwise as a text file. |
header | : Optional line that will be saved at the beginning of the file as a header. |
The following example shows how to use this function:
The output of this example is the following:
Matrix saved in matrix.bin My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0 Matrix loaded from matrix.bin My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0
And the content of matrix.bin
file where data are saved as binary data is the following:
% cat matrix.bin My header??@@@%
Definition at line 911 of file vpMatrix.h.
References vpArray2D< Type >::save().
Referenced by vpDot2::defineDots().
|
inlinestaticinherited |
Save a matrix in a YAML-formatted file. This function overloads vpArray2D::saveYAML().
filename | : Absolute file name. |
M | : Matrix to be saved in the file. |
header | : Optional lines that will be saved at the beginning of the file as a header. |
The following example shows how to use this function:
The output of this example is the following:
Matrix saved in matrix.yaml My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0 Matrix loaded from matrix.yaml My header[2,3]= -1.0 -2.0 -3.0 4.0 5.5 6.0
And the content of matrix.yaml
file is the following:
% cat matrix.yaml My header rows: 2 cols: 3 data: - [-1, -2, -3] - [4, 5.5, 6]
Definition at line 987 of file vpMatrix.h.
References vpArray2D< Type >::saveYAML().
|
inlinestaticinherited |
Save an array in a YAML-formatted file.
filename | : absolute file name. |
A | : array to be saved in the file. |
header | : optional lines that will be saved at the beginning of the file. Should be YAML-formatted and will adapt to the indentation if any. |
Here is an example of outputs.
Content of matrix.yml:
Content of matrixIndent.yml:
Definition at line 875 of file vpArray2D.h.
|
inherited |
Set the matrix diagonal elements to val. More generally set M[i][i] = val.
Definition at line 6890 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, and vpArray2D< double >::rowNum.
Referenced by vpServo::secondaryTask(), and vpServo::secondaryTask().
|
inlinestaticinherited |
Modify default size used to determine if Blas/Lapack basic linear algebra operations are enabled.
To get more info see Tutorial: Basic linear algebra operations.
min_size | : Minimum size of rows and columns required for a matrix or a vector to use Blas/Lapack third parties like MKL, OpenBLAS, Netlib or Atlas. When matrix or vector size is lower or equal to this parameter, Blas/Lapack is not used. In that case we prefer use naive code that runs faster for small matrices. |
Definition at line 259 of file vpMatrix.h.
|
inlineinherited |
Return the number of elements of the 2D array.
Definition at line 292 of file vpArray2D.h.
Referenced by vpHomogeneousMatrix::isValid(), vpColVector::operator*(), vpHomogeneousMatrix::operator,(), vpRotationMatrix::operator,(), vpRotationVector::operator,(), vpTranslationVector::operator,(), vpQuaternionVector::operator=(), vpRxyzVector::operator=(), vpRzyxVector::operator=(), vpRzyzVector::operator=(), vpThetaUVector::operator=(), vpThetaUVector::operator=(), vpTranslationVector::operator=(), vpMatrix::stack(), vpColVector::toStdVector(), vpPoseVector::toStdVector(), vpRotationVector::toStdVector(), and vpRowVector::toStdVector().
|
inherited |
Solve a linear system Ax = b using QR Decomposition.
Non destructive wrt. A and B.
b | : Vector b |
Here an example:
Definition at line 1195 of file vpMatrix_qr.cpp.
References vpArray2D< double >::colNum, and vpMatrix::solveByQR().
|
inherited |
Solve a linear system Ax = b using QR Decomposition.
Non destructive wrt. A and b.
b | : Vector b |
x | : Vector x |
Here an example:
Definition at line 1145 of file vpMatrix_qr.cpp.
References vpArray2D< double >::colNum, vpMatrix::extract(), vpMatrix::inverseTriangular(), vpMatrix::qrPivot(), and vpMatrix::t().
Referenced by vpMatrix::solveByQR(), and vpQuadProg::solveSVDorQR().
|
inherited |
Solve a linear system
Non destructive wrt. A and B.
B | : Vector ![]() |
Here an example:
Definition at line 1956 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, and vpMatrix::solveBySVD().
|
inherited |
Solve a linear system
Non destructive wrt. A and B.
b | : Vector ![]() |
x | : Vector ![]() |
Here an example:
Definition at line 1905 of file vpMatrix.cpp.
References vpMatrix::pseudoInverse().
Referenced by vpMeEllipse::leastSquare(), vpMeEllipse::leastSquareRobust(), vpQuadProg::solveByProjection(), vpMatrix::solveBySVD(), vpQuadProg::solveQPe(), and vpQuadProg::solveSVDorQR().
|
inherited |
Stack column vector c at the right of the current matrix, or copy if the matrix has no dimensions: this = [ this c ].
Here an example for a robot velocity log matrix:
Here the log matrix has size 6 rows by 100 columns.
Definition at line 5957 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, vpArray2D< Type >::getRows(), vpArray2D< double >::resize(), vpArray2D< double >::rowNum, vpArray2D< double >::rowPtrs, and vpArray2D< Type >::size().
|
inherited |
Stack A at the end of the current matrix, or copy if the matrix has no dimensions : this = [ this A ]^T.
Definition at line 5884 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpMatrix::insert(), vpArray2D< double >::resize(), and vpArray2D< double >::rowNum.
Referenced by vpFeatureEllipse::interaction(), vpFeaturePoint3D::interaction(), vpFeaturePoint::interaction(), vpFeaturePointPolar::interaction(), vpFeatureSegment::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpFeatureVanishingPoint::interaction(), vpGenericFeature::interaction(), vpLinProg::rowReduction(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stackMatrices(), and vpMatrix::stackMatrices().
|
staticinherited |
Stack column vector c to matrix A and return the resulting matrix [ A c ]
A | : Left matrix. |
c | : Right column vector. |
Definition at line 5455 of file vpMatrix.cpp.
References vpMatrix::stack().
|
staticinherited |
Stack column vector c to the end of matrix A and return the resulting matrix in C.
A | : Left matrix. |
c | : Right column vector. |
C | : Stacked matrix C = [ A c ] |
Definition at line 5474 of file vpMatrix.cpp.
References vpArray2D< Type >::data, and vpMatrix::stack().
Stack matrix B to the end of matrix A and return the resulting matrix [ A B ]^T
A | : Upper matrix. |
B | : Lower matrix. |
Definition at line 5352 of file vpMatrix.cpp.
References vpMatrix::stack().
Stack matrix B to the end of matrix A and return the resulting matrix in C.
A | : Upper matrix. |
B | : Lower matrix. |
C | : Stacked matrix C = [ A B ]^T |
Definition at line 5372 of file vpMatrix.cpp.
References vpArray2D< Type >::data, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), and vpArray2D< Type >::size().
|
staticinherited |
Stack row vector r to matrix A and return the resulting matrix [ A r ]^T
A | : Upper matrix. |
r | : Lower row vector. |
Definition at line 5416 of file vpMatrix.cpp.
References vpMatrix::stack().
|
staticinherited |
Stack row vector r to the end of matrix A and return the resulting matrix in C.
A | : Upper matrix. |
r | : Lower row vector. |
C | : Stacked matrix C = [ A r ]^T |
Definition at line 5435 of file vpMatrix.cpp.
References vpArray2D< Type >::data, and vpMatrix::stack().
|
inherited |
Stack row vector r at the end of the current matrix, or copy if the matrix has no dimensions: this = [ this r ]^T.
Here an example for a robot velocity log :
Definition at line 5916 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< double >::resize(), vpArray2D< double >::rowNum, vpArray2D< Type >::size(), and vpArray2D< double >::size().
|
inherited |
Stacks columns of a matrix in a vector.
Definition at line 1729 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpMatrix::stackColumns().
Referenced by vpMatrix::stackColumns().
|
inherited |
Stacks columns of a matrix in a vector.
out | : a vpColVector. |
Definition at line 1712 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpArray2D< double >::colNum, vpArray2D< Type >::data, vpColVector::resize(), vpArray2D< Type >::rowNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
staticinherited |
Definition at line 6817 of file vpMatrix.cpp.
References vpColVector::stack().
|
staticinherited |
Definition at line 6822 of file vpMatrix.cpp.
References vpColVector::stack().
|
inlineinherited |
Definition at line 1009 of file vpMatrix.h.
|
inlinestaticinherited |
Definition at line 1014 of file vpMatrix.h.
|
inlinestaticinherited |
Definition at line 1019 of file vpMatrix.h.
|
staticinherited |
Definition at line 6827 of file vpMatrix.cpp.
References vpMatrix::stack().
|
staticinherited |
Definition at line 6829 of file vpMatrix.cpp.
References vpMatrix::stack().
|
inherited |
Stacks rows of a matrix in a vector.
Definition at line 1751 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpMatrix::stackRows().
Referenced by vpMatrix::stackRows().
|
inherited |
Stacks rows of a matrix in a vector
out | : a vpRowVector. |
Definition at line 1740 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpRowVector::resize(), and vpArray2D< double >::rowNum.
|
staticinherited |
Operation C = A - B on column vectors.
The result is placed in the third parameter C and not returned. A new vector won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
vpException::dimensionError | If A and B vectors have not the same size. |
Definition at line 1430 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpColVector::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
|
staticinherited |
Operation C = A - B.
The result is placed in the third parameter C and not returned. A new matrix won't be allocated for every use of the function (speed gain if used many times with the same result matrix size).
vpException::dimensionError | If A and B matrices have not the same size. |
Definition at line 1463 of file vpMatrix.cpp.
References vpArray2D< Type >::colNum, vpException::dimensionError, vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< Type >::resize(), vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
Referenced by vpMatrix::operator-().
|
inherited |
Return the sum of all the
Definition at line 1562 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
Referenced by vpMatrix::expm().
|
inherited |
Return the sum square of all the
Definition at line 6791 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Matrix singular value decomposition (SVD).
This function calls the first following function that is available:
If none of these previous 3rd parties is installed, we use by default svdLapack() with a Lapack built-in version.
Given matrix
w | : Vector of singular values: ![]() |
V | : Matrix ![]() |
The matrix object `(*this) is updated with
Here an example of SVD decomposition of a non square Matrix M.
Definition at line 2027 of file vpMatrix.cpp.
References vpException::fatalError, vpMatrix::svdEigen3(), vpMatrix::svdLapack(), and vpMatrix::svdOpenCV().
Referenced by vpHomogeneousMatrix::compute3d3dTransformation(), vpMatrix::cond(), vpHomography::DLT(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), vpMatrix::inducedL2Norm(), vpMatrix::kernel(), vpMatrix::nullSpace(), vpMatrix::nullSpace(), vpRotationMatrix::orthogonalize(), and vpMatrix::svdEigen3().
|
inherited |
Singular value decomposition (SVD) using Eigen3 3rd party.
Given matrix
w | : Vector of singular values: ![]() |
V | : Matrix ![]() |
The matrix object (*this)
is updated with
Here an example of SVD decomposition of a non square Matrix M.
Definition at line 406 of file vpMatrix_svd.cpp.
References vpArray2D< Type >::data, vpArray2D< double >::data, vpArray2D< Type >::getCols(), vpArray2D< double >::getCols(), vpArray2D< Type >::getRows(), vpArray2D< double >::getRows(), vpArray2D< Type >::resize(), vpColVector::resize(), vpArray2D< Type >::size(), and vpMatrix::svd().
Referenced by vpMatrix::svd().
|
inherited |
Singular value decomposition (SVD) using Lapack 3rd party.
Given matrix
w | : Vector of singular values: ![]() |
V | : Matrix ![]() |
The matrix object (*this)
is updated with
Here an example of SVD decomposition of a non square Matrix M.
Definition at line 237 of file vpMatrix_svd.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpException::fatalError, vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), vpArray2D< Type >::resize(), vpColVector::resize(), vpArray2D< double >::rowNum, and vpMatrix::transpose().
Referenced by vpMatrix::svd().
|
inherited |
Singular value decomposition (SVD) using OpenCV 3rd party.
Given matrix
w | : Vector of singular values: ![]() |
V | : Matrix ![]() |
The matrix object (*this)
is updated with
Here an example of SVD decomposition of a non square Matrix M.
Definition at line 150 of file vpMatrix_svd.cpp.
References vpArray2D< Type >::data, vpArray2D< double >::data, vpArray2D< double >::getCols(), vpArray2D< double >::getRows(), vpArray2D< Type >::resize(), vpArray2D< double >::resize(), vpColVector::resize(), and vpMatrix::transpose().
Referenced by vpMatrix::svd().
|
inherited |
Compute and return the transpose of the matrix.
Definition at line 461 of file vpMatrix.cpp.
References vpMatrix::transpose().
Referenced by vpLinProg::colReduction(), vpHomogeneousMatrix::compute3d3dTransformation(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), vpServo::computeControlLaw(), vpMatrix::computeCovarianceMatrix(), vpMatrix::computeCovarianceMatrix(), vpTemplateTracker::computeOptimalBrentGain(), vpMatrix::eigenValues(), vpMatrix::eigenValues(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), vpKalmanFilter::filtering(), vpTemplateTrackerWarpHomographySL3::findWarp(), vpQuadProg::fromCanonicalCost(), vpHomogeneousMatrix::mean(), vpRotationMatrix::mean(), vpRotationMatrix::mean(), vpRotationMatrix::orthogonalize(), vpKalmanFilter::prediction(), vpLinProg::simplex(), and vpMatrix::solveByQR().
|
inherited |
Compute and return the transpose of the matrix.
Definition at line 468 of file vpMatrix.cpp.
References vpMatrix::transpose().
Referenced by vpLinProg::colReduction(), vpQuadProg::fromCanonicalCost(), vpLinProg::rowReduction(), vpLinProg::solveLP(), vpQuadProg::solveQPi(), vpMatrix::svdLapack(), vpMatrix::svdOpenCV(), vpMatrix::t(), and vpMatrix::transpose().
|
inherited |
Compute At the transpose of the matrix.
At | (output) : Resulting transpose matrix. |
Definition at line 480 of file vpMatrix.cpp.
References vpArray2D< double >::colNum, vpArray2D< Type >::data, vpArray2D< double >::data, vpArray2D< Type >::resize(), and vpArray2D< double >::rowNum.
|
related |
Insert array B in array A at the given position.
A | : Main array. |
B | : Array to insert. |
C | : Result array. |
r | : Index of the row where to insert array B. |
c | : Index of the column where to insert array B. |
Definition at line 997 of file vpArray2D.h.
Allow to multiply a scalar by a matrix.
Definition at line 1586 of file vpMatrix.cpp.
References vpArray2D< Type >::getCols(), vpArray2D< Type >::getRows(), and vpArray2D< Type >::resize().
|
related |
Definition at line 1191 of file vpArray2D.h.
|
related |
Definition at line 1209 of file vpArray2D.h.
|
related |
This function performs generalized matrix multiplication: D = alpha*op(A)*op(B) + beta*op(C), where op(X) is X or X^T. Operation on A, B and C matrices is described by enumeration vpGEMMmethod().
For example, to compute D = alpha*A^T*B^T+beta*C we need to call :
If C is not used, vpGEMM must be called using an empty array null. Thus to compute D = alpha*A^T*B, we have to call:
vpException::incorrectMatrixSizeError | if the sizes of the matrices do not allow the operations. |
A | : An array that could be a vpMatrix. |
B | : An array that could be a vpMatrix. |
alpha | : A scalar. |
C | : An array that could be a vpMatrix. |
beta | : A scalar. |
D | : The resulting array that could be a vpMatrix. |
ops | : A scalar describing operation applied on the matrices. Possible values are the one defined in vpGEMMmethod(): VP_GEMM_A_T, VP_GEMM_B_T, VP_GEMM_C_T. |
|
related |
Enumeration of the operations applied on matrices in vpGEMM() function.
Operations are :
|
protectedinherited |
Number of columns in the array.
Definition at line 136 of file vpArray2D.h.
Referenced by vpMatrix::AAt(), vpMatrix::AtA(), vpMatrix::detByLU(), vpMatrix::detByLUEigen3(), vpMatrix::detByLULapack(), vpMatrix::detByLUOpenCV(), vpMatrix::diag(), vpMatrix::eigenValues(), vpMatrix::eigenValues(), vpMatrix::expm(), vpMatrix::eye(), vpMatrix::getDiag(), vpMatrix::getRow(), vpMatrix::getRow(), vpColVector::hadamard(), vpMatrix::hadamard(), vpMatrix::infinityNorm(), vpSubColVector::init(), init(), vpSubRowVector::init(), vpMatrix::insert(), vpRowVector::insert(), vpMatrix::inverseByCholeskyLapack(), vpMatrix::inverseByCholeskyOpenCV(), vpMatrix::inverseByLU(), vpMatrix::inverseByLUEigen3(), vpMatrix::inverseByLULapack(), vpMatrix::inverseByLUOpenCV(), vpMatrix::inverseByQRLapack(), vpMatrix::inverseTriangular(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*(), vpRotationMatrix::operator*(), vpRowVector::operator*(), vpRowVector::operator*(), vpRowVector::operator*(), vpMatrix::operator*=(), vpRotationMatrix::operator*=(), vpRowVector::operator*=(), vpRowVector::operator+(), vpMatrix::operator+=(), vpMatrix::operator+=(), vpRowVector::operator+=(), vpMatrix::operator,(), vpRowVector::operator,(), vpRowVector::operator-(), vpRowVector::operator-(), vpMatrix::operator-=(), vpMatrix::operator-=(), vpRowVector::operator-=(), vpMatrix::operator/(), vpRowVector::operator/(), vpMatrix::operator/=(), vpRowVector::operator/=(), vpColVector::operator<<(), vpMatrix::operator<<(), vpColVector::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), operator=(), operator=(), operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpColVector::operator==(), vpRowVector::operator==(), vpMatrix::qr(), vpMatrix::qrPivot(), vpRowVector::reshape(), vpMatrix::setIdentity(), vpMatrix::solveByQR(), vpMatrix::solveByQR(), vpMatrix::solveBySVD(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpRowVector::stack(), vpMatrix::stackColumns(), vpMatrix::stackColumns(), vpMatrix::stackRows(), vpMatrix::stackRows(), vpMatrix::sum(), vpRowVector::sum(), vpMatrix::sumSquare(), vpRowVector::sumSquare(), vpMatrix::svdLapack(), vpRowVector::t(), vpMatrix::transpose(), vpColVector::vpColVector(), vpMatrix::vpMatrix(), and vpRowVector::vpRowVector().
|
inherited |
Address of the first element of the data array.
Definition at line 144 of file vpArray2D.h.
Referenced by vpMatrix::AAt(), vpMatrix::AtA(), vpHomogeneousMatrix::buildFrom(), vpHomogeneousMatrix::buildFrom(), vpQuaternionVector::buildFrom(), vpQuaternionVector::buildFrom(), vpRxyzVector::buildFrom(), vpRxyzVector::buildFrom(), vpRxyzVector::buildFrom(), vpRzyxVector::buildFrom(), vpRzyxVector::buildFrom(), vpRzyxVector::buildFrom(), vpRzyzVector::buildFrom(), vpRzyzVector::buildFrom(), vpRzyzVector::buildFrom(), vpThetaUVector::buildFrom(), vpThetaUVector::buildFrom(), vpThetaUVector::buildFrom(), vpThetaUVector::buildFrom(), vpThetaUVector::buildFrom(), vpSubColVector::checkParentStatus(), checkParentStatus(), vpSubRowVector::checkParentStatus(), vpHomogeneousMatrix::convert(), vpHomogeneousMatrix::convert(), vpMatrix::detByLUEigen3(), vpMatrix::detByLUOpenCV(), vpMatrix::expm(), vpThetaUVector::extract(), vpMatrix::frobeniusNorm(), vpMatrix::getRow(), vpThetaUVector::getTheta(), vpThetaUVector::getU(), vpColVector::hadamard(), vpMatrix::hadamard(), vpSubColVector::init(), init(), vpSubRowVector::init(), vpColVector::insert(), vpColVector::insert(), vpMatrix::insert(), vpMatrix::inverseByCholeskyOpenCV(), vpMatrix::inverseByLUEigen3(), vpMatrix::inverseByLUOpenCV(), vpHomogeneousMatrix::isValid(), vpColVector::operator*(), vpHomography::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpRowVector::operator*(), vpRowVector::operator*(), vpTranslationVector::operator*(), vpColVector::operator,(), vpHomogeneousMatrix::operator,(), vpRotationMatrix::operator,(), vpRotationVector::operator,(), vpRowVector::operator,(), vpTranslationVector::operator,(), vpColVector::operator-(), vpRowVector::operator-(), vpTranslationVector::operator-(), vpColVector::operator/(), vpHomography::operator/(), vpRowVector::operator/(), vpTranslationVector::operator/(), vpHomography::operator/=(), vpColVector::operator<<(), vpHomogeneousMatrix::operator<<(), vpRotationMatrix::operator<<(), vpRotationVector::operator<<(), vpRowVector::operator<<(), vpTranslationVector::operator<<(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpQuaternionVector::operator=(), vpQuaternionVector::operator=(), vpRotationMatrix::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), vpRxyzVector::operator=(), vpRxyzVector::operator=(), vpRxyzVector::operator=(), vpRzyxVector::operator=(), vpRzyxVector::operator=(), vpRzyxVector::operator=(), vpRzyzVector::operator=(), vpRzyzVector::operator=(), vpRzyzVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpThetaUVector::operator=(), vpThetaUVector::operator=(), vpThetaUVector::operator=(), vpTranslationVector::operator=(), vpTranslationVector::operator=(), vpTranslationVector::operator=(), vpTranslationVector::operator=(), vpColVector::operator==(), vpColVector::operator==(), vpRowVector::operator==(), vpRotationMatrix::orthogonalize(), vpHomogeneousMatrix::orthogonalizeRotation(), vpMatrix::qr(), vpMatrix::qrPivot(), vpColVector::reshape(), vpRowVector::reshape(), vpQuaternionVector::set(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stackRows(), vpColVector::sum(), vpColVector::sumSquare(), vpMatrix::svdEigen3(), vpMatrix::svdLapack(), vpMatrix::svdOpenCV(), vpColVector::t(), vpPoseVector::t(), vpRotationVector::t(), vpRowVector::t(), vpTranslationVector::t(), vpColVector::toStdVector(), vpPoseVector::toStdVector(), vpRotationVector::toStdVector(), vpRowVector::toStdVector(), vpMatrix::transpose(), vpColVector::vpColVector(), vpHomogeneousMatrix::vpHomogeneousMatrix(), vpMatrix::vpMatrix(), vpRowVector::vpRowVector(), vpQuaternionVector::w(), vpQuaternionVector::w(), vpQuaternionVector::x(), vpQuaternionVector::x(), vpQuaternionVector::y(), vpQuaternionVector::y(), vpQuaternionVector::z(), vpQuaternionVector::z(), vpSubColVector::~vpSubColVector(), ~vpSubMatrix(), and vpSubRowVector::~vpSubRowVector().
|
protectedinherited |
Current array size (rowNum * colNum)
Definition at line 140 of file vpArray2D.h.
Referenced by vpMatrix::frobeniusNorm(), vpMatrix::hadamard(), vpMatrix::inducedL2Norm(), vpSubColVector::init(), init(), vpSubRowVector::init(), vpRotationVector::operator*(), vpTranslationVector::operator*(), vpTranslationVector::operator-(), vpTranslationVector::operator/(), vpColVector::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpRotationMatrix::operator=(), vpRowVector::operator=(), vpRxyzVector::operator=(), vpRzyxVector::operator=(), vpRzyzVector::operator=(), vpThetaUVector::operator=(), vpColVector::reshape(), vpRowVector::reshape(), vpRotationVector::t(), vpColVector::vpColVector(), vpMatrix::vpMatrix(), and vpRowVector::vpRowVector().
|
protected |
Definition at line 71 of file vpSubMatrix.h.
Referenced by checkParentStatus(), init(), and operator=().
|
protected |
Definition at line 70 of file vpSubMatrix.h.
Referenced by checkParentStatus(), init(), and operator=().
|
protected |
Definition at line 69 of file vpSubMatrix.h.
Referenced by checkParentStatus(), init(), and operator=().
|
protectedinherited |
Number of rows in the array.
Definition at line 134 of file vpArray2D.h.
Referenced by vpMatrix::AAt(), vpMatrix::AtA(), vpMatrix::detByLU(), vpMatrix::detByLUEigen3(), vpMatrix::detByLULapack(), vpMatrix::detByLUOpenCV(), vpMatrix::diag(), vpMatrix::eigenValues(), vpMatrix::eigenValues(), vpMatrix::expm(), vpMatrix::eye(), vpMatrix::getCol(), vpMatrix::getDiag(), vpMatrix::getRow(), vpColVector::hadamard(), vpMatrix::hadamard(), vpColVector::infinityNorm(), vpMatrix::infinityNorm(), vpSubColVector::init(), init(), vpSubRowVector::init(), vpMatrix::insert(), vpMatrix::inverseByCholeskyLapack(), vpMatrix::inverseByCholeskyOpenCV(), vpMatrix::inverseByLU(), vpMatrix::inverseByLUEigen3(), vpMatrix::inverseByLULapack(), vpMatrix::inverseByLUOpenCV(), vpMatrix::inverseByQRLapack(), vpMatrix::inverseTriangular(), vpColVector::operator*(), vpColVector::operator*(), vpColVector::operator*(), vpHomogeneousMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*(), vpRotationMatrix::operator*(), vpTranslationVector::operator*(), vpColVector::operator*=(), vpMatrix::operator*=(), vpRotationMatrix::operator*=(), vpTranslationVector::operator*=(), vpColVector::operator+(), vpColVector::operator+=(), vpMatrix::operator+=(), vpMatrix::operator+=(), vpColVector::operator,(), vpColVector::operator-(), vpColVector::operator-(), vpColVector::operator-=(), vpMatrix::operator-=(), vpMatrix::operator-=(), vpColVector::operator/(), vpMatrix::operator/(), vpColVector::operator/=(), vpMatrix::operator/=(), vpTranslationVector::operator/=(), vpColVector::operator<<(), vpMatrix::operator<<(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpColVector::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), vpSubColVector::operator=(), operator=(), operator=(), operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpSubRowVector::operator=(), vpTranslationVector::operator=(), vpTranslationVector::operator=(), vpColVector::operator==(), vpColVector::operator==(), vpRowVector::operator==(), vpMatrix::qr(), vpMatrix::qrPivot(), vpColVector::reshape(), vpMatrix::setIdentity(), vpColVector::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stack(), vpMatrix::stackColumns(), vpMatrix::stackColumns(), vpMatrix::stackRows(), vpMatrix::stackRows(), vpColVector::sum(), vpMatrix::sum(), vpColVector::sumSquare(), vpMatrix::sumSquare(), vpRotationVector::sumSquare(), vpTranslationVector::sumSquare(), vpMatrix::svdLapack(), vpColVector::t(), vpPoseVector::t(), vpTranslationVector::t(), vpMatrix::transpose(), vpColVector::vpColVector(), vpMatrix::vpMatrix(), and vpRowVector::vpRowVector().
|
protectedinherited |
Address of the first element of each rows.
Definition at line 138 of file vpArray2D.h.
Referenced by vpMatrix::AAt(), vpMatrix::infinityNorm(), vpColVector::init(), vpMatrix::init(), vpRowVector::init(), vpSubColVector::init(), init(), vpSubRowVector::init(), vpForceTwistMatrix::operator*(), vpForceTwistMatrix::operator*(), vpForceTwistMatrix::operator*(), vpHomogeneousMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*(), vpRotationMatrix::operator*(), vpRotationMatrix::operator*(), vpRotationMatrix::operator*(), vpVelocityTwistMatrix::operator*(), vpVelocityTwistMatrix::operator*(), vpVelocityTwistMatrix::operator*(), vpMatrix::operator*=(), vpRotationMatrix::operator*=(), vpMatrix::operator+=(), vpMatrix::operator+=(), vpMatrix::operator,(), vpMatrix::operator-=(), vpMatrix::operator-=(), vpMatrix::operator/(), vpMatrix::operator/=(), vpColVector::operator<<(), vpMatrix::operator<<(), vpMatrix::operator<<(), vpColVector::operator=(), vpForceTwistMatrix::operator=(), vpHomogeneousMatrix::operator=(), vpMatrix::operator=(), vpMatrix::operator=(), vpRotationMatrix::operator=(), vpRowVector::operator=(), vpRowVector::operator=(), operator=(), operator=(), operator=(), vpVelocityTwistMatrix::operator=(), vpMatrix::stack(), vpMatrix::stackColumns(), vpMatrix::sum(), vpRowVector::sum(), vpMatrix::sumSquare(), vpRotationVector::sumSquare(), vpRowVector::sumSquare(), vpTranslationVector::sumSquare(), vpColVector::vpColVector(), vpMatrix::vpMatrix(), and vpRowVector::vpRowVector().