diff options
author | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2011-04-28 16:57:35 +0100 |
---|---|---|
committer | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2011-04-28 16:57:35 +0100 |
commit | 06fb7cf4706794a39750354cf0af6742633e980f (patch) | |
tree | 0b16bddf4e156a1259901c80f72cddebaf19beb9 /test/evaluators.cpp | |
parent | 3b60d2dbc4688fa3216a0df56ecca699a9ff9ea2 (diff) |
Implement compound assignments using evaluator of SelfCwiseBinaryOp.
Diffstat (limited to 'test/evaluators.cpp')
-rw-r--r-- | test/evaluators.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/test/evaluators.cpp b/test/evaluators.cpp index 6e81ad5ef..5c8e500bc 100644 --- a/test/evaluators.cpp +++ b/test/evaluators.cpp @@ -236,5 +236,29 @@ void test_evaluators() VERIFY_IS_APPROX(mat1, mat1ref); VERIFY_IS_APPROX(mat2, mat2ref); } - + + { + // test compound assignment + const Matrix4d mat_const = Matrix4d::Random(); + Matrix4d mat, mat_ref; + mat = mat_ref = Matrix4d::Identity(); + add_assign_using_evaluator(mat, mat_const); + mat_ref += mat_const; + VERIFY_IS_APPROX(mat, mat_ref); + + subtract_assign_using_evaluator(mat.row(1), 2*mat.row(2)); + mat_ref.row(1) -= 2*mat_ref.row(2); + VERIFY_IS_APPROX(mat, mat_ref); + + const ArrayXXf arr_const = ArrayXXf::Random(5,3); + ArrayXXf arr, arr_ref; + arr = arr_ref = ArrayXXf::Constant(5, 3, 0.5); + multiply_assign_using_evaluator(arr, arr_const); + arr_ref *= arr_const; + VERIFY_IS_APPROX(arr, arr_ref); + + divide_assign_using_evaluator(arr.row(1), arr.row(2) + 1); + arr_ref.row(1) /= (arr_ref.row(2) + 1); + VERIFY_IS_APPROX(arr, arr_ref); + } } |