← Back to team overview

ufl team mailing list archive

Re: The role of * in UFL

 

Martin Sandve Alnæs wrote:

I don't agree with the x.T stuff. There is no differentiation between
columns and rows in tensor algebra, so the transpose has no meaning
for a rank 1 tensor. This has to generalize to where x is a rank 1
expression and not only an explicitly constructed vector. If you have
a rank 4 tensor and pick a sub-tensor of rank 1 from it, is it a
column or row? Columns and rows doesn't generalize, and special cases
are evil.

Transpose is well-defined also for arbitrary rank tensors. It swaps
the first two indices:

  transpose(t_ijkl..) -> t_jikl..

One can also defined generalised transpose:

  transpose(t_ijkl.., [p_i, p_j, p_k, p_l, ..]) -> t_(p_i)(p_j)(p_k)(p_l)..


Pearu


Follow ups

References