OK, after the last PR has been merged, I did some tests on the indices and 
there are still problems with .match( ) and .replace( ), while .subs( ), 
.replace(..., simultaneous=False), and .xreplace( ) seem to work. The 
current problem is that wilds are not allowed in the expression tree, 
because the object containing the tensor indices tries to access internal 
properties of the indices, which Wild does not possess, thus raising an 
error.

I did a grep of the unify module, and it looks like .match and .replace are 
not used, so this should not be an urgent issue. 

I don't know whether it's worth to address this issue, but I envisioned an 
attempt to leave the current procedural programming style to approach a 
more functional style. There should also be a refactory in order to allow 
operators such as the partial derivative to act on tensor expressions, 
possible ideas:

   - create a DummyTensorIndex type, similar to TensorIndex, dummy indices 
   would be stored into the arg-tree as instances of DummyTensorIndex instead 
   of TensorIndex.
   - it makes no sense anymore to consider the index order until the 
   operators are unevaluated, e.g. 
   PartialDerivative(A(i)*B(j, k)*A(-k) + C(-k, j, i)*A(k), A(h))
   
   has a (i, j, -h) index signature, but it makes no sense to consider the 
   index order. Yet one could wish to multiply the unevaluated operator by a 
   tensor and perform a contraction, e.g.
   D(-h)*PartialDerivative(A(i)*B(j, k)*A(-k) + C(-k, j, i)*A(k), A(h))
   This should be a TensMul object, but it cannot possess positional info. 
   Solving this issue would also pave the way to unexpanded tensor expressions.
   - Should DummyTensorIndex and TensorIndex have a wild=True/False 
   parameter to solve the issue of matching contracted indices?

In any case, introducing operators requires some refactory of the current 
index algorithms. Fortunately there is now a separate TIDS class used to 
stored all such algorithms.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/eb0fdec5-18e6-47c3-b631-e3a791ab2f6e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to