Macaulay2 Engine
Loading...
Searching...
No Matches
eigen.hpp
Go to the documentation of this file.
1#ifndef __eigen_hpp_
2#define __eigen_hpp_
3
35
36#include "dmat.hpp"
37#include "aring-RR.hpp"
38#include "aring-CC.hpp"
39#include "aring-RRR.hpp"
40#include "aring-CCC.hpp"
45
46namespace EigenM2 {
47 bool SVD(const LMatrixRR *A,
48 LMatrixRR *Sigma,
49 LMatrixRR *U,
50 LMatrixRR *VT);
51 bool SVD(const LMatrixCC *A,
52 LMatrixRR *Sigma,
53 LMatrixCC *U,
54 LMatrixCC *VT);
56 LMatrixRR *Sigma,
57 LMatrixRR *U,
58 LMatrixRR *VT);
60 LMatrixRR *Sigma,
61 LMatrixCC *U,
62 LMatrixCC *VT);
63 bool eigenvalues(const LMatrixRR *A, LMatrixCC *eigenvals);
64 bool eigenvalues(const LMatrixCC *A, LMatrixCC *eigenvals);
65 bool eigenvalues_hermitian(const LMatrixRR *A, LMatrixRR *eigenvals);
66 bool eigenvalues_hermitian(const LMatrixCC *A, LMatrixRR *eigenvals);
67 bool eigenvectors(const LMatrixRR *A, LMatrixCC *eigenvals, LMatrixCC *eigenvecs);
68 bool eigenvectors(const LMatrixCC *A, LMatrixCC *eigenvals, LMatrixCC *eigenvecs);
69 bool eigenvectors_hermitian(const LMatrixRR *A, LMatrixRR *eigenvals, LMatrixRR *eigenvecs);
70 bool eigenvectors_hermitian(const LMatrixCC *A, LMatrixRR *eigenvals, LMatrixCC *eigenvecs);
71 bool least_squares(const LMatrixRR *A, const LMatrixRR *B, LMatrixRR *X);
72 bool least_squares(const LMatrixCC *A, const LMatrixCC *B, LMatrixCC *X);
73
74 bool SVD(const LMatrixRRR *A,
75 LMatrixRRR *Sigma,
76 LMatrixRRR *U,
77 LMatrixRRR *VT);
78 bool SVD(const LMatrixCCC *A,
79 LMatrixRRR *Sigma,
80 LMatrixCCC *U,
81 LMatrixCCC *VT);
82 bool SVD_divide_conquer(const LMatrixRRR *A,
83 LMatrixRRR *Sigma,
84 LMatrixRRR *U,
85 LMatrixRRR *VT);
86 bool SVD_divide_conquer(const LMatrixCCC *A,
87 LMatrixRRR *Sigma,
88 LMatrixCCC *U,
89 LMatrixCCC *VT);
90 bool eigenvalues(const LMatrixRRR *A, LMatrixCCC *eigenvals);
91 bool eigenvalues(const LMatrixCCC *A, LMatrixCCC *eigenvals);
92 bool eigenvalues_hermitian(const LMatrixRRR *A, LMatrixRRR *eigenvals);
93 bool eigenvalues_hermitian(const LMatrixCCC *A, LMatrixRRR *eigenvals);
94 bool eigenvectors(const LMatrixRRR *A, LMatrixCCC *eigenvals, LMatrixCCC *eigenvecs);
95 bool eigenvectors(const LMatrixCCC *A, LMatrixCCC *eigenvals, LMatrixCCC *eigenvecs);
96 bool eigenvectors_hermitian(const LMatrixRRR *A, LMatrixRRR *eigenvals, LMatrixRRR *eigenvecs);
97 bool eigenvectors_hermitian(const LMatrixCCC *A, LMatrixRRR *eigenvals, LMatrixCCC *eigenvecs);
98 bool least_squares(const LMatrixRRR *A, const LMatrixRRR *B, LMatrixRRR *X);
99 bool least_squares(const LMatrixCCC *A, const LMatrixCCC *B, LMatrixCCC *X);
100}
101
102#endif
103
104/*
105// Local Variables:
106// compile-command: "make -C $M2BUILDDIR/Macaulay2/e "
107// indent-tabs-mode: nil
108// End:
109*/
110
M2::ARingCC — machine-precision complex numbers (pair of doubles).
M2::ARingCCC — arbitrary-precision complex numbers (pair of MPFR floats).
M2::ARingRR — machine-precision real numbers (IEEE 754 double).
M2::ARingRRR — arbitrary-precision real numbers backed by MPFR.
Definition dmat.hpp:62
DMat<ACoeffRing> — dense-matrix template plus the umbrella that wires in every per-ring specialisatio...
DMat< M2::ARingRRR > LMatrixRRR
Definition eigen.hpp:43
DMat< M2::ARingRR > LMatrixRR
Definition eigen.hpp:41
DMat< M2::ARingCC > LMatrixCC
Definition eigen.hpp:42
DMat< M2::ARingCCC > LMatrixCCC
Definition eigen.hpp:44
bool SVD(const LMatrixRRR *A, LMatrixRRR *Sigma, LMatrixRRR *U, LMatrixRRR *VT)
Definition eigen.cpp:349
bool least_squares(const LMatrixRRR *A, const LMatrixRRR *B, LMatrixRRR *X)
Definition eigen.cpp:558
bool eigenvectors(const LMatrixRRR *A, LMatrixCCC *eigenvals, LMatrixCCC *eigenvecs)
Definition eigen.cpp:498
bool eigenvectors_hermitian(const LMatrixRRR *A, LMatrixRRR *eigenvals, LMatrixRRR *eigenvecs)
Definition eigen.cpp:528
bool SVD_divide_conquer(const LMatrixRRR *A, LMatrixRRR *Sigma, LMatrixRRR *U, LMatrixRRR *VT)
Definition eigen.cpp:398
bool eigenvalues(const LMatrixRRR *A, LMatrixCCC *eigenvals)
Definition eigen.cpp:442
bool eigenvalues_hermitian(const LMatrixRRR *A, LMatrixRRR *eigenvals)
Definition eigen.cpp:470