cisst-saw
Loading...
Searching...
No Matches
nmrSymmetricEigenProblem.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3
4/*
5 (C) Copyright 2013-2020 Johns Hopkins University (JHU), All Rights Reserved.
6
7--- begin cisst license - do not edit ---
8
9This software is provided "as is" under an open source license, with
10no warranty. The complete license can be found in license.txt and
11http://www.cisst.org/cisst/license.txt.
12
13--- end cisst license ---
14*/
15
18
19// Always include last!
21
22#ifndef _nmrSymmetricEigenProblem_h
23#define _nmrSymmetricEigenProblem_h
24
26
27public:
28
30 public:
31
32 char JOBZ; // 'N' eigenvalues; 'V' eigenvalues+vectors
33 char RANGE; // 'A' all; 'V' half open, 'I' ith value
34 char UPLO; // 'U' upper triangle, 'L' lower
35
36 CISSTNETLIB_INTEGER N; // order of matrix
37 CISSTNETLIB_DOUBLE* A; // matrix
38 CISSTNETLIB_INTEGER LDA; // lead dimension of matrix A (column stride)
39
40 CISSTNETLIB_DOUBLE VL; // eigen value lower bound
41 CISSTNETLIB_DOUBLE VU; // eigen value upper bound
42
43 CISSTNETLIB_INTEGER IL; // eigen value lower index
44 CISSTNETLIB_INTEGER IU; // eigen value upper index
45
46 char DLAMCH; // double precision machine parameters
47 CISSTNETLIB_DOUBLE ABSTOL; // absolute tolerance
48
49 CISSTNETLIB_INTEGER M; // number of eigen values found
50 CISSTNETLIB_DOUBLE* W; // vector of eigenvalues
51
52 CISSTNETLIB_DOUBLE* Z; // matrix of eigenvectors
53 CISSTNETLIB_INTEGER LDZ; // leading dimension of Z
54 CISSTNETLIB_INTEGER* ISUPPZ; // eigenvectors support
55
56 CISSTNETLIB_DOUBLE* WORK; // workspace
57 CISSTNETLIB_INTEGER LWORK; // workspace size
58
59 CISSTNETLIB_INTEGER* IWORK; // workspace
60 CISSTNETLIB_INTEGER LIWORK; // workspace size
61
62 CISSTNETLIB_INTEGER INFO; // info value
63
64 // Create empty data
66
67 // Create and fill data
71
73
74 // Check the system of equation for inconsistencies
77 const vctDynamicMatrix<double>& V );
78
79 // Print errors if any
80 void CheckInfo() const;
81
82 void Free();
83
84 };
85
87
88};
89
90
92
113
115
139
140#endif
Definition nmrSymmetricEigenProblem.h:29
char DLAMCH
Definition nmrSymmetricEigenProblem.h:46
CISSTNETLIB_INTEGER LIWORK
Definition nmrSymmetricEigenProblem.h:60
CISSTNETLIB_DOUBLE VL
Definition nmrSymmetricEigenProblem.h:40
CISSTNETLIB_INTEGER LWORK
Definition nmrSymmetricEigenProblem.h:57
CISSTNETLIB_DOUBLE * Z
Definition nmrSymmetricEigenProblem.h:52
Data(vctDynamicMatrix< double > &A, vctDynamicVector< double > &D, vctDynamicMatrix< double > &V)
void CheckSystem(const vctDynamicMatrix< double > &A, const vctDynamicVector< double > &D, const vctDynamicMatrix< double > &V)
CISSTNETLIB_DOUBLE * W
Definition nmrSymmetricEigenProblem.h:50
CISSTNETLIB_INTEGER IL
Definition nmrSymmetricEigenProblem.h:43
CISSTNETLIB_INTEGER LDZ
Definition nmrSymmetricEigenProblem.h:53
CISSTNETLIB_INTEGER * IWORK
Definition nmrSymmetricEigenProblem.h:59
CISSTNETLIB_INTEGER M
Definition nmrSymmetricEigenProblem.h:49
CISSTNETLIB_DOUBLE VU
Definition nmrSymmetricEigenProblem.h:41
CISSTNETLIB_INTEGER * ISUPPZ
Definition nmrSymmetricEigenProblem.h:54
char JOBZ
Definition nmrSymmetricEigenProblem.h:32
CISSTNETLIB_INTEGER N
Definition nmrSymmetricEigenProblem.h:36
CISSTNETLIB_INTEGER IU
Definition nmrSymmetricEigenProblem.h:44
CISSTNETLIB_DOUBLE * A
Definition nmrSymmetricEigenProblem.h:37
CISSTNETLIB_DOUBLE * WORK
Definition nmrSymmetricEigenProblem.h:56
char RANGE
Definition nmrSymmetricEigenProblem.h:33
char UPLO
Definition nmrSymmetricEigenProblem.h:34
CISSTNETLIB_INTEGER INFO
Definition nmrSymmetricEigenProblem.h:62
CISSTNETLIB_INTEGER LDA
Definition nmrSymmetricEigenProblem.h:38
CISSTNETLIB_DOUBLE ABSTOL
Definition nmrSymmetricEigenProblem.h:47
Definition nmrSymmetricEigenProblem.h:25
Errno
Definition nmrSymmetricEigenProblem.h:86
@ EFAILURE
Definition nmrSymmetricEigenProblem.h:86
@ ESUCCESS
Definition nmrSymmetricEigenProblem.h:86
Definition vctForwardDeclarations.h:157
Definition vctForwardDeclarations.h:131
#define CISST_EXPORT
Definition cmnExportMacros.h:50
Rules of exporting.
Declaration of vctDynamicMatrix.