# Replace an Index of an ITensor with Another Index

Say we have an ITensor with indices a,b,c (objects of type Index):

```
auto T = ITensor(a,b,c);
```

and we want to replace the Index b with another Index x.

To do this we can use a `delta`

tensor, which models an identity
matrix or a Kronecker delta symbol. To create a delta tensor, use
the function `delta`

:

```
T = T * delta(b,x);
```

Now T will have the index x instead of b, but otherwise the same data. The Index x should be chosen to have the same dimension as b.

Internally, creating a two-index delta tensor does not allocate any storage in memory and contracting it with another tensor uses an efficient algorithm that just substitutes one index for another.

Back to Formulas

Back to Main