Skip to content

Commit 0e6972d

Browse files
committed
Update nda::linalg function calls
1 parent ad0bfec commit 0e6972d

12 files changed

Lines changed: 25 additions & 25 deletions

c++/triqs_xca/block_sparse.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <nda/declarations.hpp>
1010
#include <nda/basic_functions.hpp>
1111
#include <nda/layout_transforms.hpp>
12-
#include <nda/linalg/eigenelements.hpp>
12+
#include <nda/linalg/eigh.hpp>
1313
#include <nda/print.hpp>
1414
#include <ostream>
1515
#include <string>
@@ -656,7 +656,7 @@ BlockDiagOpFun nonint_gf_BDOF(std::vector<nda::array<double, 2>> H_blocks, nda::
656656
H_evals[i] = nda::array<double, 1>{H_blocks[i](0, 0)};
657657
H_evecs[i] = nda::array<double, 2>{{1}};
658658
} else {
659-
auto H_block_eig = nda::linalg::eigenelements(H_blocks[i]);
659+
auto H_block_eig = nda::linalg::eigh(H_blocks[i]);
660660
H_evals[i] = std::get<0>(H_block_eig);
661661
H_evecs[i] = std::get<1>(H_block_eig);
662662
}

c++/triqs_xca/block_sparse_manual.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <nda/declarations.hpp>
1010
#include <nda/basic_functions.hpp>
1111
#include <nda/layout_transforms.hpp>
12-
#include <nda/linalg/eigenelements.hpp>
12+
#include <nda/linalg/eigh.hpp>
1313
#include <nda/print.hpp>
1414
#include <vector>
1515

c++/triqs_xca/dlr_dyson_ppsc.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <cppdlr/dlr_imtime.hpp>
2929
#include <cppdlr/dlr_kernels.hpp>
3030

31-
#include <nda/linalg/eigenelements.hpp>
31+
#include <nda/linalg/eigh.hpp>
3232
#include <type_traits>
3333

3434
namespace cppdlr {
@@ -124,7 +124,7 @@ namespace cppdlr {
124124
auto g = Tg(sig.shape()); // Declare Green's function
125125
g = rhs; // Get right hand side of Dyson equation
126126
auto g_rs = nda::matrix_view<nda::get_value_t<Tg>>(nda::reshape(g, norb, r * norb)); // Reshape g to be compatible w/ LAPACK
127-
nda::lapack::getrs(sysmat, g_rs, ipiv); // Back solve
127+
nda::lapack::getrs(sysmat, transpose(g_rs), ipiv); // Back solve
128128

129129
if constexpr (std::floating_point<Ht>) { // If h is scalar, g is scalar-valued
130130
return g;
@@ -173,7 +173,7 @@ namespace cppdlr {
173173
auto g = Tg(sig.shape()); // Declare Green's function
174174
g = rhs; // Get right hand side of Dyson equation
175175
auto g_rs = nda::matrix_view<nda::get_value_t<Tg>>(nda::reshape(g, norb, r * norb)); // Reshape g to be compatible w/ LAPACK
176-
nda::lapack::getrs(sysmat, g_rs, ipiv); // Back solve
176+
nda::lapack::getrs(sysmat, transpose(g_rs), ipiv); // Back solve
177177

178178
if constexpr (std::floating_point<Ht>) { // If h is scalar, g is scalar-valued
179179
return g;
@@ -231,7 +231,7 @@ namespace cppdlr {
231231
int norb = h.shape(0);
232232

233233
// Diagonalize Hamiltonian
234-
auto [eval, evec] = nda::linalg::eigenelements(h);
234+
auto [eval, evec] = nda::linalg::eigh(h);
235235

236236
auto E0 = nda::min_element(eval);
237237
eval -= E0;

examples/block_sparse_backbone_third_order.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ nda::array<dcomplex, 3> Hmat_to_Gtmat(nda::array<dcomplex, 2> Hmat, double beta,
1212
// Helper function for computing the non-interacting Green's function from the Hamiltonian, both in dense storage
1313

1414
int N = Hmat.extent(0);
15-
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigenelements(Hmat);
15+
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigh(Hmat);
1616
auto E0 = nda::min_element(H_loc_eval);
1717
H_loc_eval -= E0;
1818
auto tr_exp_minusbetaH = nda::sum(exp(-beta * H_loc_eval));
@@ -315,4 +315,4 @@ int main() {
315315
std::cout << "max error in block 4: " << nda::max_element(nda::abs(TCA_Zhen(_, range(15, 16), range(15, 16)) - third_order_result.get_block(4))) << std::endl;
316316
std::cout << std::endl;
317317
}
318-
}
318+
}

examples/dense_backbone_third_order.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ nda::array<dcomplex, 3> Hmat_to_Gtmat(nda::array<dcomplex, 2> Hmat, double beta,
1212
// Helper function for computing the non-interacting Green's function from the Hamiltonian, both in dense storage
1313

1414
int N = Hmat.extent(0);
15-
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigenelements(Hmat);
15+
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigh(Hmat);
1616
auto E0 = nda::min_element(H_loc_eval);
1717
H_loc_eval -= E0;
1818
auto tr_exp_minusbetaH = nda::sum(exp(-beta * H_loc_eval));

python/triqs_xca/pycppdlr.wrap.hxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
#define C2PY_HXX_DECLARATION_pycppdlr_GUARDS
55
template <> constexpr bool c2py::is_wrapped<cppdlr::imtime_ops> = true;
66
template <> inline constexpr auto c2py::tp_name<cppdlr::imtime_ops> = "triqs_xca.pycppdlr.ImTimeOps";
7-
#endif
7+
#endif

test/c++/block_sparse_utils.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ nda::array<dcomplex, 3> Hmat_to_Gtmat(nda::array<dcomplex, 2> Hmat, double beta,
1010
// Helper function for computing the non-interacting Green's function from the Hamiltonian, both in dense storage
1111

1212
int N = Hmat.extent(0);
13-
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigenelements(Hmat);
13+
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigh(Hmat);
1414
auto E0 = nda::min_element(H_loc_eval);
1515
H_loc_eval -= E0;
1616
auto tr_exp_minusbetaH = nda::sum(exp(-beta * H_loc_eval));
@@ -280,4 +280,4 @@ std::tuple<BlockDiagOpFun, BlockOpSymQuartet, nda::vector<int>> two_band_helper(
280280
BlockOpSymQuartet Fq(F_sym_vec, F_dag_sym_vec, hyb_coeffs, hyb_refl_coeffs, sym_set_labels);
281281

282282
return std::make_tuple(Gt, Fq, sym_set_labels);
283-
}
283+
}

test/c++/test_block_sparse_NCA_manual.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ TEST(BlockSparseNCAManual, single_exponential) {
153153
NCA_ana(i) = -exp(-(D + g) * tau) - exp((D - g) * tau);
154154
}
155155

156-
EXPECT_LT(nda::norm((NCA_result.get_block(0)(_, 0, 0) - NCA_ana), std::numeric_limits<double>::infinity())
157-
/ nda::norm(NCA_ana, std::numeric_limits<double>::infinity()),
156+
EXPECT_LT(nda::linalg::norm((NCA_result.get_block(0)(_, 0, 0) - NCA_ana), std::numeric_limits<double>::infinity())
157+
/ nda::linalg::norm(NCA_ana, std::numeric_limits<double>::infinity()),
158158
1.0e-12);
159159
}
160160

@@ -276,4 +276,4 @@ TEST(BlockSparseNCAManual, two_band_semicircle_bath_dense_aaa) {
276276
auto NCA_Zhen = -Sigma_Diagram_calc(Delta_F, Delta_F_reflect, D1, hyb, hyb_refl, Gt_dense, itops, beta, Fs_dense, F_dags_dense, fb, true);
277277

278278
ASSERT_LE(nda::max_element(nda::abs(NCA_result - NCA_Zhen)), eps);
279-
}
279+
}

test/c++/test_block_sparse_OCA_manual.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ TEST(BlockSparseOCAManual, single_exponential) {
7070
OCA_ana(i) += -exp(-g * (-3 + tau) + D * tau) * (1 - exp(D * tau) + D * tau)
7171
/ (D * D * (1 + exp(D)) * (1 + exp(D)) * (1 + exp(g)) * (1 + exp(g)) * (1 + exp(g)));
7272
}
73-
EXPECT_LT(nda::norm((OCA_result.get_block(0)(_, 0, 0) - OCA_ana), std::numeric_limits<double>::infinity()), 1.0e-7);
73+
EXPECT_LT(nda::linalg::norm((OCA_result.get_block(0)(_, 0, 0) - OCA_ana), std::numeric_limits<double>::infinity()), 1.0e-7);
7474
}
7575

7676
TEST(BlockSparseOCAManual, two_band_discrete_bath_bs) {
@@ -294,4 +294,4 @@ TEST(BlockSparseOCAManual, H5_two_band_discrete_bath_tpz) {
294294
auto OCA_result_block_4 = OCA_result.get_block(4)(_, _, _);
295295
auto OCA_result_block_eq_4 = eval_eq(itops, OCA_result_block_4, n_quad);
296296
ASSERT_LE(nda::max_element(nda::abs(OCA_result_block_eq_4 - OCA_tpz_result(_, range(15, 16), range(15, 16)))), 2e-4);
297-
}
297+
}

test/c++/test_block_sparse_misc.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ TEST(BlockSparseMisc, compute_nonint_gf) {
3333
H_dense(15, 15) = 6;
3434

3535
// compute noninteracting Green's function from dense Hamiltonian
36-
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigenelements(H_dense);
36+
auto [H_loc_eval, H_loc_evec] = nda::linalg::eigh(H_dense);
3737
auto E0 = nda::min_element(H_loc_eval);
3838
H_loc_eval -= E0;
3939
auto tr_exp_minusbetaH = nda::sum(exp(-beta * H_loc_eval));
@@ -58,4 +58,4 @@ TEST(BlockSparseMisc, compute_nonint_gf) {
5858
ASSERT_LE(nda::max_element(nda::abs(Gt_mat(_, range(10, 11), range(10, 11)) - Gt.get_block(2))), 1e-13);
5959
ASSERT_LE(nda::max_element(nda::abs(Gt_mat(_, range(11, 15), range(11, 15)) - Gt.get_block(3))), 1e-13);
6060
ASSERT_LE(nda::max_element(nda::abs(Gt_mat(_, range(15, 16), range(15, 16)) - Gt.get_block(4))), 1e-13);
61-
}
61+
}

0 commit comments

Comments
 (0)