"Testing simplify"

clear

T = simplify((A^2 C^2 + A^2 D^2 + B^2 C^2 + B^2 D^2)/(A^2+B^2)/(C^2+D^2))
check(T = 1)

T = simplify(-3*x*A/(A-B) + 3*x*B/(A-B))
check(infixform(T)="-3 x")

T = simplify(-y/(x^2*(y^2/x^2+1)))
check(infixform(T) = "-y / (x^2 + y^2)")

T = simplify(1/(x*(y^2/x^2+1)))
check(infixform(T) = "x / (x^2 + y^2)")

T = simplify(-i * exp(i * x) / (2 * (1/2 * exp(i * x) + 1/2 * exp(-i * x))))
check(infixform(T) = "-i exp(2 i x) / (exp(2 i x) + 1)")

T = simplify(i * exp(-i * x) / (2 * (1/2 * exp(i * x) + 1/2 * exp(-i * x))))
check(infixform(T) = "i / (exp(2 i x) + 1)")

T = simplify(tan(x) - sin(x)/cos(x))
check(infixform(T) = "0")

T = simplify(sin(x)^2 + cos(x)^2)
check(infixform(T) = "1")

T = simplify(sinh(x)^2 - cosh(x)^2)
check(infixform(T) = "-1")

T = simplify(((sin(x)^2 + cos(x)^2,0),(0,sin(x))))
check(T = ((1,0),(0,sin(x))))

T = simplify(2 * M / (-2 * M * r^2 + r^3) + r^(-2) - 1 / (-2 * M * r + r^2))
check(T = 0)

T = rationalize(2 * M / (-2 * M * r^2 + r^3) + r^(-2) - 1 / (-2 * M * r + r^2) + 1)
check(T = (4 * M^2 * r^3 - 4 * M * r^4 + r^5) / ((-2 * M * r + r^2) * (-2 * M * r^2 + r^3)))
T = simplify(T)
check(T = 1)

check(simplify(sqrt(1 + x^2 / (1 - x^2))) == 1 / sqrt(1 - x^2))

-- simplify tensors

A = ((A11,A12),(A21,A22))
T = simplify(dot(A,inv(A)))
check(T=unit(2))

A = ((A11,A12,A13),(A21,A22,A23),(A31,A32,A33))
T = simplify(dot(A,inv(A)))
check(T=unit(3))

A = ((A11,A12,A13,A14),(A21,A22,A23,A24),(A31,A32,A33,A34),(A41,A42,A43,A44))
T = simplify(dot(A,inv(A)))
check(T=unit(4))

-- simplify mixed forms of complex numbers

A = exp(i pi / 4)
B = (1 + i) / sqrt(2)
check(A == B)
