# Tensor Exponential

+1 vote

How do you manage exponential tenor?

Of course, one could do it, but what is the best way?

Consider this example:

T_{ijmn}

I want to combine indices i by m and j by n, then put it into a matrix form and take exponential,

Matrix M=T_{im;Jn} ; M=exp(M);

then put M back into original T

M_{p;q}-------------->T1

It should have the same indices as original T.

T1------------------------->T_{ijmn}

### Is it any function to put Itensor into a matrix and vice versa?

The same is the case for eigval decomposition (for general matrices) and....

Hi, so we have the expHermitian function:
http://itensor.org/docs.cgi?page=classes/decomp

For non-Hermitian matrices we don't have a function set up to automatically exponentiate tensors for you.

About putting an ITensor into the form of a matrix, we have combiners, which are special tensors (still of type ITensor or IQTensor, so actually a special type of tensor storage) that combine multiple indices into a single index:
http://itensor.org/docs.cgi?page=classes/combiner

If those don't cover your use case, please tell me more specifically about your case and I can see if ITensor has the tools you will need.

Miles

commented by (270 points)
Hi,

I want to make transfer matrix of an iPEPS tensor and obtain its eigenvalues. It's not necessary Hermitian.

I have another question:
How could I calculate A+A^{T}?
A_{ij}+A_{ji}?
Do I have to use delta function?
commented by (52.6k points)
Hi, so you're in luck on this one: when adding two ITensors (or IQTensors) the library automatically permutes the indices for you. So if you have two tensors A and B, as long as they have the same indices (in whatever order) you can just do:
auto C = A + B;
commented by (270 points)
You are right. I understand what you mean. But, I want to make C hermitian, not simply adding them.