Question: How to index a procedure F[i,j,k](x,y,z)?

Using a Maple procedure is a very common task. For instance, here, F is a differential operator applied to any expression f

restart;
F := proc (f) options operator, arrow; x*(diff(f, y))-y*(diff(f, x)) end proc;
                            / d   \     / d   \
                F := f -> x |--- f| - y |--- f|
                            \ dy  /     \ dx  /
F(sin(x*y));
                    2             2         
                   x  cos(x y) - y  cos(x y)

It is also possible to index a procedure. There is an appropriate syntax. At the end, one should not forget to assign the procedure to a table. Here, F simply returns its indices.

restart;
`index/F` := proc (idx) return idx end proc;
F := table(F);
                       F := TABLE(F, [])
F[i, j, k, 1, 2, 3];
                       [i, j, k, 1, 2, 3]

My question is how to define a procedure that uses both indexed and non-indexed arguments? That is, a procedure that returns a result according inputs of the type:

F[i, j, k,...](x, y, z,...)

I need such a syntax to define a differential operator (like the first example) that is further defined as a tensor within the Physics package (Physics:-Define). This differential operator thus needs to be indexed.

 

Please Wait...