Using a Maple procedure is a very common task. For instance, here, F is a differential operator applied to any expression f
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 /
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.
`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.