|
mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
A struct to hold the working memory for eigenSYEVR and maintain it between calls if desired.
Definition at line 254 of file eigenLapack.hpp.
#include <math/eigenLapack.hpp>
Public Member Functions | |
| syevrMem () | |
| Construct an empty reusable SYEVR workspace. | |
| syevrMem (const syevrMem &other)=delete | |
| Copying an owning SYEVR workspace is prohibited. | |
| syevrMem & | operator= (const syevrMem &other)=delete |
| Copy assignment of an owning SYEVR workspace is prohibited. | |
| ~syevrMem () | |
| Release every allocation owned by this workspace. | |
| void | free () |
| Release all workspace allocations and reset the cached LAPACK configuration. | |
Public Attributes | |
| char | UPLO { 'L' } |
| Triangle selection associated with the cached workspace query. | |
| MXLAPACK_INT | n { 0 } |
| Matrix order associated with the cached workspace query. | |
| char | RANGE { 'A' } |
| Eigenvalue-range selection associated with the cached workspace query. | |
| MXLAPACK_INT | numeig { 0 } |
| Number of eigenvalues reported by the most recent workspace query. | |
| MXLAPACK_INT | IL { 0 } |
| One-based lower eigenvalue index associated with the cached workspace query. | |
| MXLAPACK_INT | IU { 0 } |
| One-based upper eigenvalue index associated with the cached workspace query. | |
| MXLAPACK_INT | sizeISuppZ { 0 } |
| Capacity of the eigenvector-support workspace. | |
| MXLAPACK_INT | sizeMinWork { 0 } |
| Capacity of the minimum floating-point query workspace. | |
| MXLAPACK_INT | sizeWork { 0 } |
| Capacity of the optimized floating-point workspace. | |
| MXLAPACK_INT | sizeMinIWork { 0 } |
| Capacity of the minimum integer query workspace. | |
| MXLAPACK_INT | sizeIWork { 0 } |
| Capacity of the optimized integer workspace. | |
| MXLAPACK_INT * | iSuppZ { nullptr } |
| LAPACK eigenvector-support workspace owned by this object. | |
| floatT * | minWork { nullptr } |
| Minimum floating-point workspace used for LAPACK size queries. | |
| floatT * | work { nullptr } |
| Optimized floating-point LAPACK workspace owned by this object. | |
| MXLAPACK_INT * | minIWork { nullptr } |
| Minimum integer workspace used for LAPACK size queries. | |
| MXLAPACK_INT * | iWork { nullptr } |
| Optimized integer LAPACK workspace owned by this object. | |
| Eigen::Array< floatT, Eigen::Dynamic, Eigen::Dynamic > | cvd |
| Calculation-type covariance storage used by higher-level eigensolver helpers. | |
| Eigen::Array< floatT, Eigen::Dynamic, Eigen::Dynamic > | evecsd |
| Calculation-type eigenvector storage used by higher-level eigensolver helpers. | |
| Eigen::Array< floatT, Eigen::Dynamic, Eigen::Dynamic > | evalsd |
| Calculation-type eigenvalue storage used by higher-level eigensolver helpers. | |
|
inline |
Construct an empty reusable SYEVR workspace.
Definition at line 314 of file eigenLapack.hpp.
Referenced by syevrMem(), and operator=().
|
delete |
Copying an owning SYEVR workspace is prohibited.
| [in] | other | workspace that cannot be copied |
References syevrMem().
|
inline |
Release every allocation owned by this workspace.
Definition at line 325 of file eigenLapack.hpp.
References free().
|
inline |
Release all workspace allocations and reset the cached LAPACK configuration.
Definition at line 331 of file eigenLapack.hpp.
References IL, iSuppZ, IU, iWork, minIWork, minWork, n, numeig, RANGE, sizeISuppZ, sizeIWork, sizeMinIWork, sizeMinWork, sizeWork, UPLO, and work.
Referenced by ~syevrMem(), and unitTest::math_eigenLapack_test::TEST_CASE().
|
delete |
Copy assignment of an owning SYEVR workspace is prohibited.
| [in] | other | workspace that cannot be copied |
References syevrMem().
| Eigen::Array<floatT, Eigen::Dynamic, Eigen::Dynamic> mx::math::syevrMem< floatT >::cvd |
Calculation-type covariance storage used by higher-level eigensolver helpers.
Definition at line 305 of file eigenLapack.hpp.
| Eigen::Array<floatT, Eigen::Dynamic, Eigen::Dynamic> mx::math::syevrMem< floatT >::evalsd |
Calculation-type eigenvalue storage used by higher-level eigensolver helpers.
Definition at line 311 of file eigenLapack.hpp.
| Eigen::Array<floatT, Eigen::Dynamic, Eigen::Dynamic> mx::math::syevrMem< floatT >::evecsd |
Calculation-type eigenvector storage used by higher-level eigensolver helpers.
Definition at line 308 of file eigenLapack.hpp.
| MXLAPACK_INT mx::math::syevrMem< floatT >::IL { 0 } |
One-based lower eigenvalue index associated with the cached workspace query.
Definition at line 269 of file eigenLapack.hpp.
Referenced by free().
| MXLAPACK_INT* mx::math::syevrMem< floatT >::iSuppZ { nullptr } |
LAPACK eigenvector-support workspace owned by this object.
Definition at line 290 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT mx::math::syevrMem< floatT >::IU { 0 } |
One-based upper eigenvalue index associated with the cached workspace query.
Definition at line 272 of file eigenLapack.hpp.
Referenced by free().
| MXLAPACK_INT* mx::math::syevrMem< floatT >::iWork { nullptr } |
Optimized integer LAPACK workspace owned by this object.
Definition at line 302 of file eigenLapack.hpp.
Referenced by free(), unitTest::math_eigenLapack_test::TEST_CASE(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT* mx::math::syevrMem< floatT >::minIWork { nullptr } |
Minimum integer workspace used for LAPACK size queries.
Definition at line 299 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| floatT* mx::math::syevrMem< floatT >::minWork { nullptr } |
Minimum floating-point workspace used for LAPACK size queries.
Definition at line 293 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT mx::math::syevrMem< floatT >::n { 0 } |
Matrix order associated with the cached workspace query.
Definition at line 260 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT mx::math::syevrMem< floatT >::numeig { 0 } |
Number of eigenvalues reported by the most recent workspace query.
Definition at line 266 of file eigenLapack.hpp.
Referenced by free().
| char mx::math::syevrMem< floatT >::RANGE { 'A' } |
Eigenvalue-range selection associated with the cached workspace query.
Definition at line 263 of file eigenLapack.hpp.
Referenced by free().
| MXLAPACK_INT mx::math::syevrMem< floatT >::sizeISuppZ { 0 } |
Capacity of the eigenvector-support workspace.
Definition at line 275 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT mx::math::syevrMem< floatT >::sizeIWork { 0 } |
Capacity of the optimized integer workspace.
Definition at line 287 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT mx::math::syevrMem< floatT >::sizeMinIWork { 0 } |
Capacity of the minimum integer query workspace.
Definition at line 284 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT mx::math::syevrMem< floatT >::sizeMinWork { 0 } |
Capacity of the minimum floating-point query workspace.
Definition at line 278 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| MXLAPACK_INT mx::math::syevrMem< floatT >::sizeWork { 0 } |
Capacity of the optimized floating-point workspace.
Definition at line 281 of file eigenLapack.hpp.
Referenced by free(), and unitTest::math_eigenLapack_test::TEST_CASE().
| char mx::math::syevrMem< floatT >::UPLO { 'L' } |
Triangle selection associated with the cached workspace query.
Definition at line 257 of file eigenLapack.hpp.
Referenced by free().
| floatT* mx::math::syevrMem< floatT >::work { nullptr } |
Optimized floating-point LAPACK workspace owned by this object.
Definition at line 296 of file eigenLapack.hpp.
Referenced by free(), unitTest::math_eigenLapack_test::TEST_CASE(), and unitTest::math_eigenLapack_test::TEST_CASE().