Skip to content
Snippets Groups Projects

Draft: Do dot product with Kokkos subview

Open Yen-Chen Chen requested to merge subview_inner_product into feature-add-cpp-codes
@@ -408,28 +408,28 @@ void recon_lsq_cell_q_svd(const T *p_cc, const int *lsq_idx_c,
auto lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 4, std::make_pair(0, 9), jb);
p_coeff_view(5, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_pseudoinv_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b_subview), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b_subview), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 3, std::make_pair(0, 9), jb);
p_coeff_view(4, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_pseudoinv_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b_subview), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b_subview), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 2, std::make_pair(0, 9), jb);
p_coeff_view(3, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_pseudoinv_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b_subview), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b_subview), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 1, std::make_pair(0, 9), jb);
p_coeff_view(2, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_pseudoinv_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b_subview), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b_subview), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 0, std::make_pair(0, 9), jb);
p_coeff_view(1, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_pseudoinv_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b_subview), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b_subview), 0.0);
p_coeff_view(0, jc, jk, jb) =
p_cc_view(jc, jk, jb) -
p_coeff_view(1, jc, jk, jb) * lsq_moments_view(jc, jb, 0) -
@@ -733,48 +733,48 @@ void recon_lsq_cell_c_svd(const T *p_cc, const int *lsq_idx_c,
auto lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 8, std::make_pair(0, 9), jb);
p_coeff_view(9, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 7, std::make_pair(0, 9), jb);
p_coeff_view(8, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 6, std::make_pair(0, 9), jb);
p_coeff_view(7, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 5, std::make_pair(0, 9), jb);
p_coeff_view(6, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 4, std::make_pair(0, 9), jb);
p_coeff_view(5, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 3, std::make_pair(0, 9), jb);
p_coeff_view(4, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 2, std::make_pair(0, 9), jb);
p_coeff_view(3, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 1, std::make_pair(0, 9), jb);
p_coeff_view(2, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
lsq_pseudoinv_subview =
subview(lsq_pseudoinv_view, jc, 0, std::make_pair(0, 9), jb);
p_coeff_view(1, jc, jk, jb) = std::inner_product(
KE::cbegin(lsq_qtmat_c_subview), KE::cend(lsq_qtmat_c_subview),
KE::cbegin(z_b), 0.0);
KE::cbegin(lsq_pseudoinv_subview),
KE::cend(lsq_pseudoinv_subview), KE::cbegin(z_b), 0.0);
p_coeff_view(0, jc, jk, jb) =
p_cc_view(jc, jk, jb) -
p_coeff_view(1, jc, jk, jb) * lsq_moments_view(jc, jb, 0) -
Loading