unsigned result = 0;
idx i(symbol("i"), 3), j(symbol("j"), 3), k(symbol("k"), 3), l(symbol("l"), 3);
- symbol A("A"), B("B");
+ symbol A("A"), B("B"), C("C");
ex e;
result += check_equal(indexed(A, sy_symm(), i, j), indexed(A, sy_symm(), j, i));
result += check_equal(symmetrize(e), 0);
result += check_equal(antisymmetrize(e), e);
+ e = (indexed(A, sy_anti(), i, j, k, l) * (indexed(B, j) * indexed(C, k) + indexed(B, k) * indexed(C, j)) + indexed(B, i, l)).expand();
+ result += check_equal_simplify(e, indexed(B, i, l));
+
return result;
}
static unsigned dummy_check(void)
{
- // check dummy index renaming
+ // check dummy index renaming/repositioning
unsigned result = 0;
e = indexed(p, mu, mu.toggle_variance()) - indexed(p, nu, nu.toggle_variance());
result += check_equal_simplify(e, 0);
+ e = indexed(p, mu.toggle_variance(), nu, mu) * indexed(q, i)
+ - indexed(p, mu, nu, mu.toggle_variance()) * indexed(q, i);
+ result += check_equal_simplify(e, 0);
+
+ e = indexed(p, mu, mu.toggle_variance()) - indexed(p, nu.toggle_variance(), nu);
+ result += check_equal_simplify(e, 0);
+ e = indexed(p, mu.toggle_variance(), mu) - indexed(p, nu, nu.toggle_variance());
+ result += check_equal_simplify(e, 0);
+
return result;
}