def test_identity_lincomb(): space = NumpyVectorSpace(10) identity = IdentityOperator(space) ones = space.ones() idid = (identity + identity) assert almost_equal(ones * 2, idid.apply(ones)) assert almost_equal(ones * 2, idid.apply_adjoint(ones)) assert almost_equal(ones * 0.5, idid.apply_inverse(ones)) assert almost_equal(ones * 0.5, idid.apply_inverse_adjoint(ones))
def test_identity_lincomb(): space = NumpyVectorSpace(10) identity = IdentityOperator(space) ones = space.ones() idid = (identity + identity) assert almost_equal(ones * 2, idid.apply(ones)) assert almost_equal(ones * 2, idid.apply_adjoint(ones)) assert almost_equal(ones * 0.5, idid.apply_inverse(ones)) assert almost_equal(ones * 0.5, idid.apply_inverse_adjoint(ones))
def test_identity_lincomb(): space = NumpyVectorSpace(10) identity = IdentityOperator(space) ones = space.ones() idid = (identity + identity) idid_ = ExpressionParameterFunctional('2', {}) * identity assert almost_equal(ones * 2, idid.apply(ones)) assert almost_equal(ones * 2, idid.apply_adjoint(ones)) assert almost_equal(ones * 0.5, idid.apply_inverse(ones)) assert almost_equal(ones * 0.5, idid.apply_inverse_adjoint(ones)) assert almost_equal(ones * 0.5, idid_.apply_inverse(ones)) assert almost_equal(ones * 0.5, idid_.apply_inverse_adjoint(ones))
def test_block_identity_lincomb(): space = NumpyVectorSpace(10) space2 = BlockVectorSpace([space, space]) identity = BlockDiagonalOperator([IdentityOperator(space), IdentityOperator(space)]) identity2 = IdentityOperator(space2) ones = space.ones() ones2 = space2.make_array([ones, ones]) idid = identity + identity2 assert almost_equal(ones2 * 2, idid.apply(ones2)) assert almost_equal(ones2 * 2, idid.apply_adjoint(ones2)) assert almost_equal(ones2 * 0.5, idid.apply_inverse(ones2)) assert almost_equal(ones2 * 0.5, idid.apply_inverse_adjoint(ones2))