From 165f65f94a909f6fd11b6e017b1043edc0b3d23a Mon Sep 17 00:00:00 2001 From: Tobias Ribizel Date: Mon, 26 Oct 2020 12:20:05 +0100 Subject: [PATCH] improve code style and fix sonarqube warnings --- cuda/test/matrix/csr_kernels.cpp | 65 +++++++++++++-------------- hip/test/matrix/csr_kernels.hip.cpp | 65 +++++++++++++-------------- omp/matrix/csr_kernels.cpp | 4 +- omp/test/matrix/csr_kernels.cpp | 65 +++++++++++++-------------- reference/matrix/csr_kernels.cpp | 4 +- reference/test/matrix/csr_kernels.cpp | 43 +++++++----------- 6 files changed, 107 insertions(+), 139 deletions(-) diff --git a/cuda/test/matrix/csr_kernels.cpp b/cuda/test/matrix/csr_kernels.cpp index 38af50b1c21..f0a1416b6bd 100644 --- a/cuda/test/matrix/csr_kernels.cpp +++ b/cuda/test/matrix/csr_kernels.cpp @@ -463,12 +463,11 @@ TEST_F(Csr, TransposeIsEquivalentToRef) { set_up_apply_data(std::make_shared(cuda)); - auto trans = mtx->transpose(); - auto d_trans = dmtx->transpose(); + auto trans = gko::as(mtx->transpose()); + auto d_trans = gko::as(dmtx->transpose()); - GKO_ASSERT_MTX_NEAR(static_cast(d_trans.get()), - static_cast(trans.get()), 0.0); - ASSERT_TRUE(static_cast(d_trans.get())->is_sorted_by_column_index()); + GKO_ASSERT_MTX_NEAR(d_trans, trans, 0.0); + ASSERT_TRUE(d_trans->is_sorted_by_column_index()); } @@ -476,13 +475,11 @@ TEST_F(Csr, ConjugateTransposeIsEquivalentToRef) { set_up_apply_complex_data(std::make_shared(cuda)); - auto trans = complex_mtx->conj_transpose(); - auto d_trans = complex_dmtx->conj_transpose(); + auto trans = gko::as(complex_mtx->conj_transpose()); + auto d_trans = gko::as(complex_dmtx->conj_transpose()); - GKO_ASSERT_MTX_NEAR(static_cast(d_trans.get()), - static_cast(trans.get()), 0.0); - ASSERT_TRUE( - static_cast(d_trans.get())->is_sorted_by_column_index()); + GKO_ASSERT_MTX_NEAR(d_trans, trans, 0.0); + ASSERT_TRUE(d_trans->is_sorted_by_column_index()); } @@ -708,56 +705,54 @@ TEST_F(Csr, MoveToHybridIsEquivalentToRef) TEST_F(Csr, IsRowPermutable) { set_up_apply_data(std::make_shared()); - auto r_permute = gko::share(mtx->row_permute(rpermute_idxs.get())); - auto dr_permute = gko::share(dmtx->row_permute(drpermute_idxs.get())); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(r_permute), - gko::as(dr_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(r_permute), gko::as(dr_permute), 0); + auto r_permute = gko::as(mtx->row_permute(rpermute_idxs.get())); + auto dr_permute = gko::as(dmtx->row_permute(drpermute_idxs.get())); + + GKO_ASSERT_MTX_EQ_SPARSITY(r_permute, dr_permute); + GKO_ASSERT_MTX_NEAR(r_permute, dr_permute, 0); } TEST_F(Csr, IsColPermutable) { set_up_apply_data(std::make_shared()); - auto c_permute = gko::share(mtx->column_permute(cpermute_idxs.get())); - auto dc_permute = gko::share(dmtx->column_permute(dcpermute_idxs.get())); - ASSERT_TRUE(gko::as(dc_permute)->is_sorted_by_column_index()); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(c_permute), - gko::as(dc_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(c_permute), gko::as(dc_permute), 0); + auto c_permute = gko::as(mtx->column_permute(cpermute_idxs.get())); + auto dc_permute = gko::as(dmtx->column_permute(dcpermute_idxs.get())); + + ASSERT_TRUE(dc_permute->is_sorted_by_column_index()); + GKO_ASSERT_MTX_EQ_SPARSITY(c_permute, dc_permute); + GKO_ASSERT_MTX_NEAR(c_permute, dc_permute, 0); } TEST_F(Csr, IsInverseRowPermutable) { set_up_apply_data(std::make_shared()); + auto inverse_r_permute = - gko::share(mtx->inverse_row_permute(rpermute_idxs.get())); + gko::as(mtx->inverse_row_permute(rpermute_idxs.get())); auto d_inverse_r_permute = - gko::share(dmtx->inverse_row_permute(drpermute_idxs.get())); + gko::as(dmtx->inverse_row_permute(drpermute_idxs.get())); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(inverse_r_permute), - gko::as(d_inverse_r_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(inverse_r_permute), - gko::as(d_inverse_r_permute), 0); + GKO_ASSERT_MTX_EQ_SPARSITY(inverse_r_permute, d_inverse_r_permute); + GKO_ASSERT_MTX_NEAR(inverse_r_permute, d_inverse_r_permute, 0); } TEST_F(Csr, IsInverseColPermutable) { set_up_apply_data(std::make_shared()); + auto inverse_c_permute = - gko::share(mtx->inverse_column_permute(cpermute_idxs.get())); + gko::as(mtx->inverse_column_permute(cpermute_idxs.get())); auto d_inverse_c_permute = - gko::share(dmtx->inverse_column_permute(dcpermute_idxs.get())); + gko::as(dmtx->inverse_column_permute(dcpermute_idxs.get())); - ASSERT_TRUE(gko::as(d_inverse_c_permute)->is_sorted_by_column_index()); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(inverse_c_permute), - gko::as(d_inverse_c_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(inverse_c_permute), - gko::as(d_inverse_c_permute), 0); + ASSERT_TRUE(d_inverse_c_permute->is_sorted_by_column_index()); + GKO_ASSERT_MTX_EQ_SPARSITY(inverse_c_permute, d_inverse_c_permute); + GKO_ASSERT_MTX_NEAR(inverse_c_permute, d_inverse_c_permute, 0); } diff --git a/hip/test/matrix/csr_kernels.hip.cpp b/hip/test/matrix/csr_kernels.hip.cpp index 510189ad70e..1fb01640dfa 100644 --- a/hip/test/matrix/csr_kernels.hip.cpp +++ b/hip/test/matrix/csr_kernels.hip.cpp @@ -462,12 +462,11 @@ TEST_F(Csr, TransposeIsEquivalentToRef) { set_up_apply_data(std::make_shared(hip)); - auto trans = mtx->transpose(); - auto d_trans = dmtx->transpose(); + auto trans = gko::as(mtx->transpose()); + auto d_trans = gko::as(dmtx->transpose()); - GKO_ASSERT_MTX_NEAR(static_cast(d_trans.get()), - static_cast(trans.get()), 0.0); - ASSERT_TRUE(static_cast(d_trans.get())->is_sorted_by_column_index()); + GKO_ASSERT_MTX_NEAR(d_trans, trans, 0.0); + ASSERT_TRUE(d_trans->is_sorted_by_column_index()); } @@ -475,13 +474,11 @@ TEST_F(Csr, ConjugateTransposeIsEquivalentToRef) { set_up_apply_data(std::make_shared(hip)); - auto ctrans = mtx->conj_transpose(); - auto d_ctrans = dmtx->conj_transpose(); + auto trans = gko::as(mtx->conj_transpose()); + auto d_trans = gko::as(dmtx->conj_transpose()); - GKO_ASSERT_MTX_NEAR(static_cast(d_ctrans.get()), - static_cast(ctrans.get()), 0.0); - ASSERT_TRUE( - static_cast(d_ctrans.get())->is_sorted_by_column_index()); + GKO_ASSERT_MTX_NEAR(d_trans, trans, 0.0); + ASSERT_TRUE(d_trans->is_sorted_by_column_index()); } @@ -707,56 +704,54 @@ TEST_F(Csr, MoveToHybridIsEquivalentToRef) TEST_F(Csr, IsRowPermutable) { set_up_apply_data(std::make_shared()); - auto r_permute = gko::share(mtx->row_permute(rpermute_idxs.get())); - auto dr_permute = gko::share(dmtx->row_permute(drpermute_idxs.get())); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(r_permute), - gko::as(dr_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(r_permute), gko::as(dr_permute), 0); + auto r_permute = gko::as(mtx->row_permute(rpermute_idxs.get())); + auto dr_permute = gko::as(dmtx->row_permute(drpermute_idxs.get())); + + GKO_ASSERT_MTX_EQ_SPARSITY(r_permute, dr_permute); + GKO_ASSERT_MTX_NEAR(r_permute, dr_permute, 0); } TEST_F(Csr, IsColPermutable) { set_up_apply_data(std::make_shared()); - auto c_permute = gko::share(mtx->column_permute(cpermute_idxs.get())); - auto dc_permute = gko::share(dmtx->column_permute(dcpermute_idxs.get())); - ASSERT_TRUE(gko::as(dc_permute)->is_sorted_by_column_index()); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(c_permute), - gko::as(dc_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(c_permute), gko::as(dc_permute), 0); + auto c_permute = gko::as(mtx->column_permute(cpermute_idxs.get())); + auto dc_permute = gko::as(dmtx->column_permute(dcpermute_idxs.get())); + + ASSERT_TRUE(dc_permute->is_sorted_by_column_index()); + GKO_ASSERT_MTX_EQ_SPARSITY(c_permute, dc_permute); + GKO_ASSERT_MTX_NEAR(c_permute, dc_permute, 0); } TEST_F(Csr, IsInverseRowPermutable) { set_up_apply_data(std::make_shared()); + auto inverse_r_permute = - gko::share(mtx->inverse_row_permute(rpermute_idxs.get())); + gko::as(mtx->inverse_row_permute(rpermute_idxs.get())); auto d_inverse_r_permute = - gko::share(dmtx->inverse_row_permute(drpermute_idxs.get())); + gko::as(dmtx->inverse_row_permute(drpermute_idxs.get())); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(inverse_r_permute), - gko::as(d_inverse_r_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(inverse_r_permute), - gko::as(d_inverse_r_permute), 0); + GKO_ASSERT_MTX_EQ_SPARSITY(inverse_r_permute, d_inverse_r_permute); + GKO_ASSERT_MTX_NEAR(inverse_r_permute, d_inverse_r_permute, 0); } TEST_F(Csr, IsInverseColPermutable) { set_up_apply_data(std::make_shared()); + auto inverse_c_permute = - gko::share(mtx->inverse_column_permute(cpermute_idxs.get())); + gko::as(mtx->inverse_column_permute(cpermute_idxs.get())); auto d_inverse_c_permute = - gko::share(dmtx->inverse_column_permute(dcpermute_idxs.get())); + gko::as(dmtx->inverse_column_permute(dcpermute_idxs.get())); - ASSERT_TRUE(gko::as(d_inverse_c_permute)->is_sorted_by_column_index()); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(inverse_c_permute), - gko::as(d_inverse_c_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(inverse_c_permute), - gko::as(d_inverse_c_permute), 0); + ASSERT_TRUE(d_inverse_c_permute->is_sorted_by_column_index()); + GKO_ASSERT_MTX_EQ_SPARSITY(inverse_c_permute, d_inverse_c_permute); + GKO_ASSERT_MTX_NEAR(inverse_c_permute, d_inverse_c_permute, 0); } diff --git a/omp/matrix/csr_kernels.cpp b/omp/matrix/csr_kernels.cpp index 32007104cc1..0f681fa409b 100644 --- a/omp/matrix/csr_kernels.cpp +++ b/omp/matrix/csr_kernels.cpp @@ -604,7 +604,7 @@ void invert_permutation(std::shared_ptr exec, IndexType *inv_permutation) { #pragma omp parallel for - for (size_type i = 0; i < size; ++i) { + for (IndexType i = 0; i < static_cast(size); ++i) { inv_permutation[permutation_indices[i]] = i; } } @@ -624,7 +624,6 @@ void row_permute(std::shared_ptr exec, const IndexType *perm, auto rp_col_idxs = row_permuted->get_col_idxs(); auto rp_vals = row_permuted->get_values(); size_type num_rows = orig->get_size()[0]; - size_type num_nnz = orig->get_num_stored_elements(); #pragma omp parallel for for (size_type row = 0; row < num_rows; ++row) { @@ -664,7 +663,6 @@ void inverse_row_permute(std::shared_ptr exec, auto rp_col_idxs = row_permuted->get_col_idxs(); auto rp_vals = row_permuted->get_values(); size_type num_rows = orig->get_size()[0]; - size_type num_nnz = orig->get_num_stored_elements(); #pragma omp parallel for for (size_type row = 0; row < num_rows; ++row) { diff --git a/omp/test/matrix/csr_kernels.cpp b/omp/test/matrix/csr_kernels.cpp index 0dcfaac7844..064a129b9eb 100644 --- a/omp/test/matrix/csr_kernels.cpp +++ b/omp/test/matrix/csr_kernels.cpp @@ -325,12 +325,11 @@ TEST_F(Csr, TransposeIsEquivalentToRef) { set_up_apply_data(); - auto trans = mtx->transpose(); - auto d_trans = dmtx->transpose(); + auto trans = gko::as(mtx->transpose()); + auto d_trans = gko::as(dmtx->transpose()); - GKO_ASSERT_MTX_NEAR(static_cast(d_trans.get()), - static_cast(trans.get()), 0.0); - ASSERT_TRUE(static_cast(d_trans.get())->is_sorted_by_column_index()); + GKO_ASSERT_MTX_NEAR(d_trans, trans, 0.0); + ASSERT_TRUE(d_trans->is_sorted_by_column_index()); } @@ -338,13 +337,11 @@ TEST_F(Csr, ConjugateTransposeIsEquivalentToRef) { set_up_apply_data(); - auto trans = complex_mtx->conj_transpose(); - auto d_trans = complex_dmtx->conj_transpose(); + auto trans = gko::as(complex_mtx->conj_transpose()); + auto d_trans = gko::as(complex_dmtx->conj_transpose()); - GKO_ASSERT_MTX_NEAR(static_cast(d_trans.get()), - static_cast(trans.get()), 0.0); - ASSERT_TRUE( - static_cast(d_trans.get())->is_sorted_by_column_index()); + GKO_ASSERT_MTX_NEAR(d_trans, trans, 0.0); + ASSERT_TRUE(d_trans->is_sorted_by_column_index()); } @@ -476,56 +473,54 @@ TEST_F(Csr, MoveToHybridIsEquivalentToRef) TEST_F(Csr, IsRowPermutable) { set_up_apply_data(); - auto r_permute = gko::share(mtx->row_permute(rpermute_idxs.get())); - auto dr_permute = gko::share(dmtx->row_permute(drpermute_idxs.get())); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(r_permute), - gko::as(dr_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(r_permute), gko::as(dr_permute), 0); + auto r_permute = gko::as(mtx->row_permute(rpermute_idxs.get())); + auto dr_permute = gko::as(dmtx->row_permute(drpermute_idxs.get())); + + GKO_ASSERT_MTX_EQ_SPARSITY(r_permute, dr_permute); + GKO_ASSERT_MTX_NEAR(r_permute, dr_permute, 0); } TEST_F(Csr, IsColPermutable) { set_up_apply_data(); - auto c_permute = gko::share(mtx->column_permute(cpermute_idxs.get())); - auto dc_permute = gko::share(dmtx->column_permute(dcpermute_idxs.get())); - ASSERT_TRUE(gko::as(dc_permute)->is_sorted_by_column_index()); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(c_permute), - gko::as(dc_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(c_permute), gko::as(dc_permute), 0); + auto c_permute = gko::as(mtx->column_permute(cpermute_idxs.get())); + auto dc_permute = gko::as(dmtx->column_permute(dcpermute_idxs.get())); + + ASSERT_TRUE(dc_permute->is_sorted_by_column_index()); + GKO_ASSERT_MTX_EQ_SPARSITY(c_permute, dc_permute); + GKO_ASSERT_MTX_NEAR(c_permute, dc_permute, 0); } TEST_F(Csr, IsInverseRowPermutable) { set_up_apply_data(); + auto inverse_r_permute = - gko::share(mtx->inverse_row_permute(rpermute_idxs.get())); + gko::as(mtx->inverse_row_permute(rpermute_idxs.get())); auto d_inverse_r_permute = - gko::share(dmtx->inverse_row_permute(drpermute_idxs.get())); + gko::as(dmtx->inverse_row_permute(drpermute_idxs.get())); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(inverse_r_permute), - gko::as(d_inverse_r_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(inverse_r_permute), - gko::as(d_inverse_r_permute), 0); + GKO_ASSERT_MTX_EQ_SPARSITY(inverse_r_permute, d_inverse_r_permute); + GKO_ASSERT_MTX_NEAR(inverse_r_permute, d_inverse_r_permute, 0); } TEST_F(Csr, IsInverseColPermutable) { set_up_apply_data(); + auto inverse_c_permute = - gko::share(mtx->inverse_column_permute(cpermute_idxs.get())); + gko::as(mtx->inverse_column_permute(cpermute_idxs.get())); auto d_inverse_c_permute = - gko::share(dmtx->inverse_column_permute(dcpermute_idxs.get())); + gko::as(dmtx->inverse_column_permute(dcpermute_idxs.get())); - ASSERT_TRUE(gko::as(d_inverse_c_permute)->is_sorted_by_column_index()); - GKO_ASSERT_MTX_EQ_SPARSITY(gko::as(inverse_c_permute), - gko::as(d_inverse_c_permute)); - GKO_ASSERT_MTX_NEAR(gko::as(inverse_c_permute), - gko::as(d_inverse_c_permute), 0); + ASSERT_TRUE(d_inverse_c_permute->is_sorted_by_column_index()); + GKO_ASSERT_MTX_EQ_SPARSITY(inverse_c_permute, d_inverse_c_permute); + GKO_ASSERT_MTX_NEAR(inverse_c_permute, d_inverse_c_permute, 0); } diff --git a/reference/matrix/csr_kernels.cpp b/reference/matrix/csr_kernels.cpp index 1be2ae79cb5..b22d7e3d66e 100644 --- a/reference/matrix/csr_kernels.cpp +++ b/reference/matrix/csr_kernels.cpp @@ -694,7 +694,7 @@ void invert_permutation(std::shared_ptr exec, size_type size, const IndexType *permutation_indices, IndexType *inv_permutation) { - for (size_type i = 0; i < size; ++i) { + for (IndexType i = 0; i < static_cast(size); ++i) { inv_permutation[permutation_indices[i]] = i; } } @@ -715,7 +715,6 @@ void row_permute(std::shared_ptr exec, auto rp_col_idxs = row_permuted->get_col_idxs(); auto rp_vals = row_permuted->get_values(); size_type num_rows = orig->get_size()[0]; - size_type num_nnz = orig->get_num_stored_elements(); for (size_type row = 0; row < num_rows; ++row) { auto src_row = perm[row]; @@ -751,7 +750,6 @@ void inverse_row_permute(std::shared_ptr exec, auto rp_col_idxs = row_permuted->get_col_idxs(); auto rp_vals = row_permuted->get_values(); size_type num_rows = orig->get_size()[0]; - size_type num_nnz = orig->get_num_stored_elements(); for (size_type row = 0; row < num_rows; ++row) { auto src_row = row; diff --git a/reference/test/matrix/csr_kernels.cpp b/reference/test/matrix/csr_kernels.cpp index 3cedeba21d4..dfeb1b7ace3 100644 --- a/reference/test/matrix/csr_kernels.cpp +++ b/reference/test/matrix/csr_kernels.cpp @@ -1042,8 +1042,7 @@ TYPED_TEST(Csr, SquareMtxIsTransposable) {0.0, 1.5, 2.0}}, this->exec); // clang-format on - auto trans = mtx2->transpose(); - auto trans_as_csr = static_cast(trans.get()); + auto trans_as_csr = gko::as(mtx2->transpose()); // clang-format off GKO_ASSERT_MTX_NEAR(trans_as_csr, @@ -1057,8 +1056,7 @@ TYPED_TEST(Csr, SquareMtxIsTransposable) TYPED_TEST(Csr, NonSquareMtxIsTransposable) { using Csr = typename TestFixture::Mtx; - auto trans = this->mtx->transpose(); - auto trans_as_csr = static_cast(trans.get()); + auto trans_as_csr = gko::as(this->mtx->transpose()); // clang-format off GKO_ASSERT_MTX_NEAR(trans_as_csr, @@ -1080,9 +1078,8 @@ TYPED_TEST(Csr, SquareMatrixIsRowPermutable) // clang-format on gko::Array permute_idxs{this->exec, {1, 2, 0}}; - auto row_permute = p_mtx->row_permute(&permute_idxs); + auto row_permute_csr = gko::as(p_mtx->row_permute(&permute_idxs)); - auto row_permute_csr = static_cast(row_permute.get()); // clang-format off GKO_ASSERT_MTX_NEAR(row_permute_csr, l({{0.0, 5.0, 0.0}, @@ -1103,9 +1100,8 @@ TYPED_TEST(Csr, NonSquareMatrixIsRowPermutable) // clang-format on gko::Array permute_idxs{this->exec, {1, 0}}; - auto row_permute = p_mtx->row_permute(&permute_idxs); + auto row_permute_csr = gko::as(p_mtx->row_permute(&permute_idxs)); - auto row_permute_csr = static_cast(row_permute.get()); // clang-format off GKO_ASSERT_MTX_NEAR(row_permute_csr, l({{0.0, 5.0, 0.0}, @@ -1126,9 +1122,8 @@ TYPED_TEST(Csr, SquareMatrixIsColPermutable) // clang-format on gko::Array permute_idxs{this->exec, {1, 2, 0}}; - auto c_permute = p_mtx->column_permute(&permute_idxs); + auto c_permute_csr = gko::as(p_mtx->column_permute(&permute_idxs)); - auto c_permute_csr = static_cast(c_permute.get()); // clang-format off GKO_ASSERT_MTX_NEAR(c_permute_csr, l({{3.0, 2.0, 1.0}, @@ -1149,9 +1144,8 @@ TYPED_TEST(Csr, NonSquareMatrixIsColPermutable) // clang-format on gko::Array permute_idxs{this->exec, {1, 2, 0}}; - auto c_permute = p_mtx->column_permute(&permute_idxs); + auto c_permute_csr = gko::as(p_mtx->column_permute(&permute_idxs)); - auto c_permute_csr = static_cast(c_permute.get()); // clang-format off GKO_ASSERT_MTX_NEAR(c_permute_csr, l({{0.0, 2.0, 1.0}, @@ -1172,11 +1166,9 @@ TYPED_TEST(Csr, SquareMatrixIsInverseRowPermutable) // clang-format on gko::Array inverse_permute_idxs{this->exec, {1, 2, 0}}; - auto inverse_row_permute = - inverse_p_mtx->inverse_row_permute(&inverse_permute_idxs); - auto inverse_row_permute_csr = - static_cast(inverse_row_permute.get()); + gko::as(inverse_p_mtx->inverse_row_permute(&inverse_permute_idxs)); + // clang-format off GKO_ASSERT_MTX_NEAR(inverse_row_permute_csr, l({{0.0, 1.5, 2.0}, @@ -1197,11 +1189,9 @@ TYPED_TEST(Csr, NonSquareMatrixIsInverseRowPermutable) // clang-format on gko::Array inverse_permute_idxs{this->exec, {1, 0}}; - auto inverse_row_permute = - inverse_p_mtx->inverse_row_permute(&inverse_permute_idxs); - auto inverse_row_permute_csr = - static_cast(inverse_row_permute.get()); + gko::as(inverse_p_mtx->inverse_row_permute(&inverse_permute_idxs)); + // clang-format off GKO_ASSERT_MTX_NEAR(inverse_row_permute_csr, l({{0.0, 5.0, 0.0}, @@ -1222,10 +1212,9 @@ TYPED_TEST(Csr, SquareMatrixIsInverseColPermutable) // clang-format on gko::Array inverse_permute_idxs{this->exec, {1, 2, 0}}; - auto inverse_c_permute = - inverse_p_mtx->inverse_column_permute(&inverse_permute_idxs); + auto inverse_c_permute_csr = gko::as( + inverse_p_mtx->inverse_column_permute(&inverse_permute_idxs)); - auto inverse_c_permute_csr = static_cast(inverse_c_permute.get()); // clang-format off GKO_ASSERT_MTX_NEAR(inverse_c_permute_csr, l({{2.0, 1.0, 3.0}, @@ -1246,10 +1235,9 @@ TYPED_TEST(Csr, NonSquareMatrixIsInverseColPermutable) // clang-format on gko::Array inverse_permute_idxs{this->exec, {1, 2, 0}}; - auto inverse_c_permute = - inverse_p_mtx->inverse_column_permute(&inverse_permute_idxs); + auto inverse_c_permute_csr = gko::as( + inverse_p_mtx->inverse_column_permute(&inverse_permute_idxs)); - auto inverse_c_permute_csr = static_cast(inverse_c_permute.get()); // clang-format off GKO_ASSERT_MTX_NEAR(inverse_c_permute_csr, l({{2.0, 1.0, 3.0}, @@ -1418,8 +1406,7 @@ TYPED_TEST(CsrComplex, MtxIsConjugateTransposable) {T{0.0, 0.0}, T{0.0, 1.5}, T{2.0,0.0}}}, exec); // clang-format on - auto trans = mtx2->conj_transpose(); - auto trans_as_csr = static_cast(trans.get()); + auto trans_as_csr = gko::as(mtx2->conj_transpose()); // clang-format off GKO_ASSERT_MTX_NEAR(trans_as_csr,