diff --git a/base_matrix/base_matrix_concatenate.hpp b/base_matrix/base_matrix_concatenate.hpp index 00e7034..701737e 100644 --- a/base_matrix/base_matrix_concatenate.hpp +++ b/base_matrix/base_matrix_concatenate.hpp @@ -24,7 +24,7 @@ struct VerticalConcatenateLoop { static void compute(const Matrix &A, const Matrix &B, Matrix &Y) { Base::Utility::copy(A.data[Row], Y.data[Row]); - Base::Utility::copy(B.data[Row], Y.data[Row]); + Base::Utility::copy(B.data[Row], Y.data[Row]); VerticalConcatenateLoop::compute(A, B, Y); } }; @@ -35,7 +35,7 @@ struct VerticalConcatenateLoop { static void compute(const Matrix &A, const Matrix &B, Matrix &Y) { Base::Utility::copy(A.data[0], Y.data[0]); - Base::Utility::copy(B.data[0], Y.data[0]); + Base::Utility::copy(B.data[0], Y.data[0]); } }; @@ -56,7 +56,7 @@ inline void update_vertically_concatenated_matrix(Matrix &Y, for (std::size_t row = 0; row < N; row++) { Base::Utility::copy(A.data[row], Y.data[row]); - Base::Utility::copy(B.data[row], Y.data[row]); + Base::Utility::copy(B.data[row], Y.data[row]); } #else // __BASE_MATRIX_USE_FOR_LOOP_OPERATION__ diff --git a/test_vs/check_python_numpy.hpp b/test_vs/check_python_numpy.hpp index 5908888..a6bf8a4 100644 --- a/test_vs/check_python_numpy.hpp +++ b/test_vs/check_python_numpy.hpp @@ -1303,6 +1303,44 @@ void CheckPythonNumpy::check_python_numpy_concatenate(void) { /* 結合 */ + Matrix a({ {1} }); + Matrix b({ {2} }); + Matrix aa({ {1}, {2} }); + Matrix bb({ {3}, {4} }); + + auto a_v_b = concatenate_vertically(a, b); + + Matrix a_v_b_answer({ + {1}, + {2} + }); + + tester.expect_near(a_v_b.matrix.data, a_v_b_answer.matrix.data, NEAR_LIMIT_STRICT, + "check concatenate vertically Dense and Dense small, 1 1."); + + auto aa_v_b = concatenate_vertically(aa, b); + + Matrix aa_v_b_answer({ + {1}, + {2}, + {2} + }); + + tester.expect_near(aa_v_b.matrix.data, aa_v_b_answer.matrix.data, NEAR_LIMIT_STRICT, + "check concatenate vertically Dense and Dense small, 2 1."); + + auto a_v_bb = concatenate_vertically(a, bb); + + Matrix a_v_bb_answer({ + {1}, + {3}, + {4} + }); + + tester.expect_near(a_v_bb.matrix.data, a_v_bb_answer.matrix.data, NEAR_LIMIT_STRICT, + "check concatenate vertically Dense and Dense small, 1 2."); + + auto A_v_A = concatenate_vertically(A, A); ConcatenateVertically_Type A_v_A_t; A_v_A_t = A_v_A;