#include <nmrLSqLin.h>
Collaboration diagram for nmrLSqLinSolutionDynamic:

Definition at line 115 of file nmrLSqLin.h.
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | ) | [inline] |
The default constuctor. For dynamic size, there are assigned default values, which MUST be changed by calling appropriate methods. (See nmrLSqLinSolutionDynamic::Allocate and nmrLSqLinSolutionDynamic::SetRef)
Definition at line 384 of file nmrLSqLin.h.
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | n | |||
| ) | [inline] |
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n | |||
| ) | [inline] |
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n | |||
| ) | [inline] |
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A | ) | [inline] |
Constructor where user provides the input matrix to specify size, Memory allocation is done for output matrices and vectors as well as Workspace used by LAPACK. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections.
| A | input matrix |
Definition at line 418 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline] |
Constructor where user provides the input matrix to specify size, Memory allocation is done for output vectors. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using more than one numerical method in the *same* thread, allowing her to share the workspace for LAPACK.
| A | input matrix inWork workspace for LS |
Definition at line 432 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline] |
Constructor where user provides the size and storage order of the input matrix, along with workspace. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on the validity of the input and its consitency with the size of input matrix.
| ma,n | The size of input matrix | |
| storageOrder | The storage order of input matrix | |
| inX | The output vector for LSqLin | |
| inWork | The workspace for LAPACK. |
Definition at line 448 of file nmrLSqLin.h.
References SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX | |||
| ) | [inline] |
Constructor where user provides the size and storage order of the input matrix, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LS algorithm. Checks are made on thec validity of the input and its consitency with the size of input matrix. Memory allocation for workspace is done by the method. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using the LS matrix elsewhere in the *same* thread.
| ma,n | The size of input matrix | |
| inX | The output vector for LSqLin |
Definition at line 467 of file nmrLSqLin.h.
References SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline] |
Constructor where user provides the input matrix to specify size, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LS algorithm. Checks are made on the validity of the input and its consitency with the size of input matrix.
| inA | The input matrix | |
| inX | The output vector for LSqLin | |
| inWork | The workspace for LAPACK. |
Definition at line 482 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), and SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G | |||
| ) | [inline] |
Constructor where user provides the input matrices to specify size, Memory allocation is done for output matrices and vectors as well as Workspace used by LAPACK. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections.
| A,G | input matrices |
Definition at line 501 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_INTEGER > & | inIWork | |||
| ) | [inline] |
Constructor where user provides the input matrices to specify size, Memory allocation is done for output vectors. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using more than one numerical method in the *same* thread, allowing her to share the workspace for LAPACK.
| A,G | input matrices inWork, inIWork workspace for LSI |
Definition at line 517 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_INTEGER > & | inIWork | |||
| ) | [inline] |
Constructor where user provides the size and storage order of the input matrices along with workspace. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on the validity of the input and its consitency with the size of input matrices.
| ma,mg,n | The size of input matrices | |
| inX | The output vector for LSqLin inWork, inIWork workspace for LSI |
Definition at line 534 of file nmrLSqLin.h.
References SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX | |||
| ) | [inline] |
Constructor where user provides the size and storage order of the input matrices, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LS algorithm. Checks are made on thec validity of the input and its consitency with the size of input matrices. Memory allocation for workspace is done by the method. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using the LSI matrix elsewhere in the *same* thread.
| ma,mg,n | The size of input matrices | |
| inX | The output vector for LSqLin |
Definition at line 554 of file nmrLSqLin.h.
References SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_INTEGER > & | inIWork | |||
| ) | [inline] |
Constructor where user provides the input matrices to specify size, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LS algorithm. Checks are made on the validity of the input and its consitency with the size of input matrix.
| inA,inE | The input matrices | |
| inX | The output vector for LSqLin inWork, inIWork workspace for LSI |
Definition at line 571 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), and SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | E, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G | |||
| ) | [inline] |
Constructor where user provides the input matrices to specify size, Memory allocation is done for output matrices and vectors as well as Workspace used by LAPACK. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections.
| A,E,G | input matrices |
Definition at line 592 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), E, G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | E, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_INTEGER > & | inIWork | |||
| ) | [inline] |
Constructor where user provides the input matrices to specify size, Memory allocation is done for output vectors. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using more than one numerical method in the *same* thread, allowing her to share the workspace for LAPACK.
| A,E,G | input matrices inWork, inIWork workspace for LSI |
Definition at line 610 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), E, G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_INTEGER > & | inIWork | |||
| ) | [inline] |
Constructor where user provides the size and storage order of the input matrices along with workspace. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on the validity of the input and its consitency with the size of input matrices.
| ma,me,mg,n | The size of input matrices | |
| inX | The output vector for LSqLin inWork, inIWork workspace for LSI |
Definition at line 628 of file nmrLSqLin.h.
References SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX | |||
| ) | [inline] |
Constructor where user provides the size and storage order of the input matrices, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LS algorithm. Checks are made on thec validity of the input and its consitency with the size of input matrices. Memory allocation for workspace is done by the method. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using the LSI matrix elsewhere in the *same* thread.
| ma,me,mg,n | The size of input matrices | |
| inX | The output vector for LSqLin |
Definition at line 648 of file nmrLSqLin.h.
References SetRef().
| nmrLSqLinSolutionDynamic::nmrLSqLinSolutionDynamic | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | inE, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_INTEGER > & | inIWork | |||
| ) | [inline] |
Constructor where user provides the input matrices to specify size, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LS algorithm. Checks are made on the validity of the input and its consitency with the size of input matrix.
| inA,inE,inG | The input matrices | |
| inX | The output vector for LSqLin inWork, inIWork workspace for LSI |
Definition at line 665 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), and SetRef().
| static CISSTNETLIB_INTEGER nmrLSqLinSolutionDynamic::GetWorkspaceSize | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n | |||
| ) | [inline, static] |
Helper methods for user to set min working space required by LAPACK LS routine.
| ma,me,mg,n | The size of matrix whose LS/LSI/LSEI needs to be computed |
Definition at line 172 of file nmrLSqLin.h.
Referenced by Allocate(), AllocateWorkspace(), GetWorkspaceSize(), Malloc(), nmrLSqLin(), and SetRef().
| static CISSTNETLIB_INTEGER nmrLSqLinSolutionDynamic::GetWorkspaceSize | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA | ) | [inline, static] |
Helper method to determine the min working space required by LAPACK LS routine.
| inA | The matrix whose LS needs to be computed |
Definition at line 205 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), GetWorkspaceSize(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| static CISSTNETLIB_INTEGER nmrLSqLinSolutionDynamic::GetWorkspaceSize | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG | |||
| ) | [inline, static] |
Helper method to determine the min working space required by LAPACK LSI routine.
| inA,inG | The input matrices for LSI. |
Definition at line 214 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), GetWorkspaceSize(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| static CISSTNETLIB_INTEGER nmrLSqLinSolutionDynamic::GetWorkspaceSize | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | inE, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG | |||
| ) | [inline, static] |
Helper method to determine the min working space required by LAPACK LSEI routine.
| inA,inE,inG | The input matrices for LSEI. |
Definition at line 230 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), GetWorkspaceSize(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| static void nmrLSqLinSolutionDynamic::AllocateWorkspace | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVector< CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline, static] |
Helper methods for user to set min working space required by LAPACK LS/LSI/LSEI routine.
| ma,me,mg,n | The size of matrix whose LS/LSI/LSEI needs to be computed | |
| inWork | A vector that would be resized to meet the requirements of LAPACK LS/LSI/LSEI routine. |
Definition at line 250 of file nmrLSqLin.h.
References GetWorkspaceSize(), and vctDynamicVector< _elementType >::SetSize().
| static void nmrLSqLinSolutionDynamic::AllocateWorkspace | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicVector< CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline, static] |
Helper methods for user to set min working space required by LAPACK LS routine.
| inA | The matrix whose LS needs to be computed | |
| inWork | A vector that would be resized to meet the requirements of LAPACK LS routine. |
Definition at line 265 of file nmrLSqLin.h.
References GetWorkspaceSize(), and vctDynamicVector< _elementType >::SetSize().
| static void nmrLSqLinSolutionDynamic::AllocateWorkspace | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVector< CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline, static] |
Helper methods for user to set min working space required by LAPACK LSI routine.
| inA,inG | The input matrices for LSI. | |
| inWork | A vector that would be resized to meet the requirements of LAPACK LSI routine. |
Definition at line 276 of file nmrLSqLin.h.
References GetWorkspaceSize(), and vctDynamicVector< _elementType >::SetSize().
| static void nmrLSqLinSolutionDynamic::AllocateWorkspace | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | inE, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVector< CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline, static] |
Helper methods for user to set min working space required by LAPACK LSEI routine.
| inA,inE,inG | The input matrices for LSEI. | |
| inWork | A vector that would be resized to meet the requirements of LAPACK LSEI routine. |
Definition at line 296 of file nmrLSqLin.h.
References GetWorkspaceSize(), and vctDynamicVector< _elementType >::SetSize().
| void nmrLSqLinSolutionDynamic::Allocate | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A | ) | [inline] |
This method allocates memory of output vector as well as the workspace. This method should be called before the nmrLSqLinSolutionDynamic object is passed on to nmrLSqLin function, as the memory required for output matrices and workspace are allocated here or to reallocate memory previously allocated by constructor. Typically this method is called from a code segment where it is safe to allocate memory and use the solution and work space later.
| A | The matrix for which LS needs to be computed, size MxN |
Definition at line 691 of file nmrLSqLin.h.
References A, vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
Referenced by Allocate(), and nmrLSqLinSolutionDynamic().
| void nmrLSqLinSolutionDynamic::Allocate | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline] |
This method allocates memory of output vector and uses the memory provided by user for workspace. Check is made to ensure that memory provided by user is sufficient for LS routine of LAPACK. This method should be called before the nmrLSqLinSolutionDynamic object is passed on to nmrLSqLin function, as the memory required for output matrices and workspace are allocated here or to reallocate memory previously allocated by constructor. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using more than one numerical method in the *same* thread, allowing her to share the workspace for LAPACK. Typically this method is called from a code segment where it is safe to allocate memory and use the solution and work space later.
| A | The matrix for which LS needs to be computed, size MxN | |
| inWork | The vector used for workspace by LS. |
Definition at line 714 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| void nmrLSqLinSolutionDynamic::SetRef | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline] |
This method must be called before the solution object is passed to nmrLSqLin function. The user provides the input matrix to specify size, along with vector X and workspace. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on the validity of the input and its consitency with the size of input matrix.
| inA | The input matrix | |
| inX | The output vector for LSqLin | |
| inWork | The workspace for LS. |
Definition at line 736 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
Referenced by Allocate(), Malloc(), nmrLSqLinSolutionDynamic(), and SetRef().
| void nmrLSqLinSolutionDynamic::SetRef | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX | |||
| ) | [inline] |
This method must be called before the solution object is passed to nmrLSqLin function. The user provides the input matrix to specify size, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on thec validity of the input and its consitency with the size of input matrix. Memory allocation for workspace is done by the method. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using the LS matrix elsewhere in the *same* thread.
| inA | The input matrix | |
| inX | The output matrix for LSqLin |
Definition at line 757 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), SetRef(), and WorkspaceMemory.
| void nmrLSqLinSolutionDynamic::Allocate | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G | |||
| ) | [inline] |
This method allocates memory of output vector as well as the workspace. This method should be called before the nmrLSqLinSolutionDynamic object is passed on to nmrLSqLin function, as the memory required for output matrices and workspace are allocated here or to reallocate memory previously allocated by constructor. Typically this method is called from a code segment where it is safe to allocate memory and use the solution and work space later.
| A | The matrix for which LSI needs to be computed, size Ma x N | |
| G | The contraints matrix for LSI, size Mg x N |
Definition at line 780 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| void nmrLSqLinSolutionDynamic::Allocate | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inIWork | |||
| ) | [inline] |
This method allocates memory of output vector and uses the memory provided by user for workspace. Check is made to ensure that memory provided by user is sufficient for LS routine of LAPACK. This method should be called before the nmrLSqLinSolutionDynamic object is passed on to nmrLSqLin function, as the memory required for output matrices and workspace are allocated here or to reallocate memory previously allocated by constructor. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using more than one numerical method in the *same* thread, allowing her to share the workspace for LAPACK. Typically this method is called from a code segment where it is safe to allocate memory and use the solution and work space later.
| A | The matrix for which LSI needs to be computed, size Ma x N | |
| G | The contraints matrix for LSI, size Mg x N | |
| inWork,inIWork | The workspace for LS. |
Definition at line 806 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| void nmrLSqLinSolutionDynamic::SetRef | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inIWork | |||
| ) | [inline] |
This method must be called before the solution object is passed to nmrLSqLin function. The user provides the input matrices to specify size, along with vector X and workspace. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on the validity of the input and its consitency with the size of input matrices.
| inA,inG | The input matrices | |
| inX | The output vector for LSqLin | |
| inWork,inIWork | The workspace for LSI. |
Definition at line 832 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), and SetRef().
| void nmrLSqLinSolutionDynamic::SetRef | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX | |||
| ) | [inline] |
This method must be called before the solution object is passed to nmrLSqLin function. The user provides the input matrices to specify size, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on thec validity of the input and its consitency with the size of input matrices. Memory allocation for workspace is done by the method. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using the LS matrix elsewhere in the *same* thread.
| inA,inG | The input matrices | |
| inX | The output matrix for LSqLin |
Definition at line 855 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), and SetRef().
| void nmrLSqLinSolutionDynamic::Allocate | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | E, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G | |||
| ) | [inline] |
This method allocates memory of output vector as well as the workspace. This method should be called before the nmrLSqLinSolutionDynamic object is passed on to nmrLSqLin function, as the memory required for output matrices and workspace are allocated here or to reallocate memory previously allocated by constructor. Typically this method is called from a code segment where it is safe to allocate memory and use the solution and work space later.
| A | The matrix for which LSEI needs to be computed, size MxN | |
| E | The equality constraints matrix for LSEI, size Me x N | |
| G | The contraints matrix for LSEI, size Mg x N |
Definition at line 880 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), E, G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| void nmrLSqLinSolutionDynamic::Allocate | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | A, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | E, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | G, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_DOUBLE > & | inIWork | |||
| ) | [inline] |
This method allocates memory of output vector and uses the memory provided by user for workspace. Check is made to ensure that memory provided by user is sufficient for LS routine of LAPACK. This method should be called before the nmrLSqLinSolutionDynamic object is passed on to nmrLSqLin function, as the memory required for output matrices and workspace are allocated here or to reallocate memory previously allocated by constructor. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using more than one numerical method in the *same* thread, allowing her to share the workspace for LAPACK. Typically this method is called from a code segment where it is safe to allocate memory and use the solution and work space later.
| A | The matrix for which LS needs to be computed, size MxN | |
| E | The equality constraints matrix for LSEI, size Me x N | |
| G | The contraints matrix for LSEI, size Mg x N | |
| inWork,inIWork | The vector used for workspace by LSEI. |
Definition at line 908 of file nmrLSqLin.h.
References A, Allocate(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), E, G, and vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows().
| void nmrLSqLinSolutionDynamic::SetRef | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | inE, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_DOUBLE > & | inIWork | |||
| ) | [inline] |
This method must be called before the solution object is passed to nmrLSqLin function. The user provides the input matrices to specify size, along with vector X and workspace. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on the validity of the input and its consitency with the size of input matrices.
| inA,inE,inG | The input matrices | |
| inX | The output vector for LSqLin | |
| inWork,inIWork | The workspace for LSI. |
Definition at line 935 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), and SetRef().
| void nmrLSqLinSolutionDynamic::SetRef | ( | vctDynamicMatrixBase< _matrixOwnerTypeA, CISSTNETLIB_DOUBLE > & | inA, | |
| vctDynamicMatrixBase< _matrixOwnerTypeE, CISSTNETLIB_DOUBLE > & | inE, | |||
| vctDynamicMatrixBase< _matrixOwnerTypeG, CISSTNETLIB_DOUBLE > & | inG, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX | |||
| ) | [inline] |
This method must be called before the solution object is passed to nmrLSqLin function. The user provides the input matrices to specify size, along with vector X. The solution object now acts as a composite container to hold, pass and manipulate a convenitent storage for LSqLin algorithm. Checks are made on thec validity of the input and its consitency with the size of input matrices. Memory allocation for workspace is done by the method. This case covers the scenario when user wants to make all system calls for memory allocation before entrying time critical code sections and might be using the LS matrix elsewhere in the *same* thread.
| inA,inE,inG | The input matrices | |
| inX | The output matrix for LSqLin |
Definition at line 960 of file nmrLSqLin.h.
References vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::cols(), vctDynamicConstMatrixBase< _matrixOwnerType, _elementType >::rows(), SetRef(), and WorkspaceMemory.
| void nmrLSqLinSolutionDynamic::Allocate | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n | |||
| ) | [inline] |
This method allocates memory of output matrices and vector and optionally for the workspace required by LS/LSI/LSEI. This method is not meant to be a top-level user API, but is used by other overloaded Allocate methods.
| ma | Number of rows of input matrix A | |
| me | Number of rows of input matrix E | |
| mg | Number of rows of input matrix G | |
| n | Number of cols of input matrix A |
Definition at line 981 of file nmrLSqLin.h.
| void nmrLSqLinSolutionDynamic::Allocate | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline] |
This method allocates memory of output matrices and vector and optionally for the workspace required by LS/LSI/LSEI. This method is not meant to be a top-level user API, but is used by other overloaded Allocate methods.
| ma | Number of rows of input matrix A | |
| me | Number of rows of input matrix E | |
| mg | Number of rows of input matrix G | |
| n | Number of cols of input matrix A | |
| inWork | Workspace provided by user |
Definition at line 998 of file nmrLSqLin.h.
References cmnThrow(), GetWorkspaceSize(), Malloc(), SetRef(), and vctDynamicConstVectorBase< _vectorOwnerType, _elementType >::size().
| void nmrLSqLinSolutionDynamic::Allocate | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inIWork | |||
| ) | [inline] |
This method allocates memory of output matrices and vector and optionally for the workspace required by LS/LSI/LSEI. This method is not meant to be a top-level user API, but is used by other overloaded Allocate methods.
| ma | Number of rows of input matrix A | |
| me | Number of rows of input matrix E | |
| mg | Number of rows of input matrix G | |
| n | Number of cols of input matrix A | |
| inWork,inIWork | Workspace provided by user |
Definition at line 1019 of file nmrLSqLin.h.
References cmnThrow(), GetIWorkspaceSize(), GetWorkspaceSize(), IWork, Malloc(), SetRef(), and vctDynamicConstVectorBase< _vectorOwnerType, _elementType >::size().
| void nmrLSqLinSolutionDynamic::SetRef | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork | |||
| ) | [inline] |
This method memory references of output matrices and vector and for the workspace required by LS/LSI/LSEI. This method is not meant to be a top-level user API, but is used by other overloaded SetRef methods.
| ma,me,mg | Number of rows of input matrix A, E and G respectively | |
| n | Number of cols of input matrix A | |
| inX | The output matrix for LSqLin | |
| inWork | The workspace for LS. |
Definition at line 1050 of file nmrLSqLin.h.
References cmnThrow(), GetWorkspaceSize(), Malloc(), SetRef(), and vctDynamicConstVectorBase< _vectorOwnerType, _elementType >::size().
| void nmrLSqLinSolutionDynamic::SetRef | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX, | |||
| vctDynamicVectorBase< _vectorOwnerTypeWork, CISSTNETLIB_DOUBLE > & | inWork, | |||
| vctDynamicVectorBase< _vectorOwnerTypeIWork, CISSTNETLIB_DOUBLE > & | inIWork | |||
| ) | [inline] |
This method memory references of output matrices and vector and for the workspace required by LS/LSI/LSEI. This method is not meant to be a top-level user API, but is used by other overloaded SetRef methods.
| ma,me,mg | Number of rows of input matrix A, E and G respectively | |
| n | Number of cols of input matrix A | |
| inX | The output matrix for LSqLin | |
| inWork/inIWork | The workspace for LSI/LSEI. |
Definition at line 1073 of file nmrLSqLin.h.
References cmnThrow(), GetIWorkspaceSize(), GetWorkspaceSize(), IWork, Malloc(), SetRef(), and vctDynamicConstVectorBase< _vectorOwnerType, _elementType >::size().
| void nmrLSqLinSolutionDynamic::SetRef | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| vctDynamicVectorBase< _vectorOwnerTypeX, CISSTNETLIB_DOUBLE > & | inX | |||
| ) | [inline] |
This method memory references of output matrices and vector and for the workspace required by LS/LSI/LSEI. This method is not meant to be a top-level user API, but is used by other overloaded SetRef methods.
| ma,me,mg | Number of rows of input matrix A, E and G respectively | |
| n | Number of cols of input matrix A | |
| inX | The output matrix for LSqLin |
Definition at line 1103 of file nmrLSqLin.h.
References cmnThrow(), IWork, Malloc(), SetRef(), and vctDynamicConstVectorBase< _vectorOwnerType, _elementType >::size().
| void nmrLSqLinSolutionDynamic::Malloc | ( | CISSTNETLIB_INTEGER | ma, | |
| CISSTNETLIB_INTEGER | me, | |||
| CISSTNETLIB_INTEGER | mg, | |||
| CISSTNETLIB_INTEGER | n, | |||
| bool | allocateWorkspace, | |||
| bool | allocateInput, | |||
| bool | allocateOutput | |||
| ) | [inline, protected] |
This method allocates memory of output matrices and vector and optionally for the workspace required by LS/LSI/LSEI. This method is not meant to be a top-level user API, but is used by other overloaded Allocate methods.
| ma | Number of rows of input matrix A | |
| me | Number of rows of input matrix E | |
| mg | Number of rows of input matrix G | |
| n | Number of cols of input matrix A | |
| allocateWorkspace | If true, allocate memory of workspace as well. | |
| allocateInput | If true, allocate memory of input as well. | |
| allocateOutput | If true, allocate memory of output as well. |
Definition at line 1128 of file nmrLSqLin.h.
References GetIWorkspaceSize(), GetWorkspaceSize(), InputMemory, IWorkspaceMemory, m_Ma, m_Me, m_Mg, m_N, OutputMemory, RNorm, RNormE, RNormL, SetRef(), VCT_COL_MAJOR, and WorkspaceMemory.
Referenced by Allocate(), and SetRef().
| const vctDynamicVectorRef<CISSTNETLIB_DOUBLE>& nmrLSqLinSolutionDynamic::GetX | ( | void | ) | const [inline] |
In order to get access to X, after the have been computed by calling nmrLSqLin function. use the following methods.
Definition at line 1182 of file nmrLSqLin.h.
References X.
vctDynamicVector<CISSTNETLIB_DOUBLE> nmrLSqLinSolutionDynamic::WorkspaceMemory [protected] |
Memory allocated for Workspace matrices if needed
Definition at line 120 of file nmrLSqLin.h.
vctDynamicVector<CISSTNETLIB_DOUBLE> nmrLSqLinSolutionDynamic::OutputMemory [protected] |
Memory allocated for output X if needed.
Definition at line 125 of file nmrLSqLin.h.
Referenced by Malloc().
vctDynamicMatrix<CISSTNETLIB_DOUBLE> nmrLSqLinSolutionDynamic::InputMemory [protected] |
Memory allocated for input if needed The LSEI (constrained least squares) require that the the input matrices be in one continous memory block ordered accoring to fortran order (Column Major format), such that first Mc rows and N columns represent A, Ma rows and N+1 th column represent b next Me rows represent (E, f) and last Mg rows represent (G, h) where the original LSEI problem is arg min || A x - b ||, s.t. E x = f and G x >= h. The input for LSI is similar other than Me == 0.
Definition at line 139 of file nmrLSqLin.h.
Referenced by nmrLSqLinSolutionDynamic::Friend::GetInput(), and Malloc().
vctDynamicMatrixRef<CISSTNETLIB_DOUBLE> nmrLSqLinSolutionDynamic::A [protected] |
References to work or return or input types, these point either to user allocated memory or our memory chunks if needed
Definition at line 144 of file nmrLSqLin.h.
Referenced by Allocate(), nmrLSqLinSolutionDynamic::Friend::GetA(), nmrLSqLinSolutionDynamic(), and SetRef().