This modifies the names of the dimensions in a simple and reversible way by adding a mark.

mark(X,mark,...)
# S3 method for class 'tensor'
mark(X,mark="'",i=1:level.tensor(X),...,by=NULL)
# S3 method for class 'numeric'
mark(X,mark="'",i=1:length(X),...,by=NULL)
# S3 method for class 'character'
mark(X,mark="'",i=1:length(X),...,by=NULL)

Arguments

X

A tensor or dimension to be marked

mark

a character giving the mark

i

the dimensions to be marked

...

generic arguments

by

Dimensions not to be marked. Wins in case of conflicts.

Value

A object similar to X but with marked dimensions.

Details

The concept is very important in tensor algebra since it allows to keep dimensions connected without but still distinguishable. Eventually later a function for the Riemann summing rule will make use of marks to distinguish covariate and contravariate dimensions.

Author

K. Gerald van den Boogaart

Examples

# The outer product
A <- to.tensor(1:4,c(a=2,b=2))
A 
#>       b
#> a      [,1] [,2]
#>   [1,]    1    3
#>   [2,]    2    4
#> attr(,"class")
#> [1] "tensor" "matrix"