# MPO representation of QFT

**URL:** <https://itensor.discourse.group/t/mpo-representation-of-qft/1334>\
**Category:** DMRG and Numerical Methods\
**Created:** [December 4, 2023, 7:32am UTC](https://itensor.discourse.group/t/mpo-representation-of-qft/1334 "2023-12-04T07:32:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![JoexGibbs](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/joexgibbs/32/155_2.png) [@JoexGibbs](https://itensor.discourse.group/u/JoexGibbs)\
**Post date:** [December 4, 2023, 7:32am UTC](https://itensor.discourse.group/t/mpo-representation-of-qft/1334/1 "2023-12-04T07:32:10Z")

</div>

Hi Miles,

I have read your recent work on representing the QFT as a low bond-dimension MPO with great interest, and I have a quick question I was hoping you may help me with in relation to the numerical implementation using ITensors.

One thing I notice is you stress the use of the canonical form of the MPO to ensure optimal compression during the MPO-MPO zipups. In canonical form, the norm of the tensor will be contained at the orthogonality center, which will be exponentially large here as you are representing a unitary circuit.  
My question is, are there potential issues with storing these exponentially growing numerical values in your ITensors? Presumably for a large enough system size the tensor values will be so large they cannot be represented using floats? I would be grateful if you could share whether this is an issue you are aware of, or have I misunderstood your approach.

Kind regards,  
Joe

---

<div class="post-metadata">

**Author:** ![miles](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/miles/32/6_2.png) [@miles](https://itensor.discourse.group/u/miles)\
**Post date:** [December 4, 2023, 8:33pm UTC](https://itensor.discourse.group/t/mpo-representation-of-qft/1334/2 "2023-12-04T20:33:52Z")

</div>

I think it’s a misunderstanding of the approach. In the approach used, we were not storing the whole circuit all at once as an MPO initially, but using the zip-up method to combine two adjacent layers of the circuit. Then we use it again to combine the next layer, and so on, until all of the layers are finally combined into a single MPO. Figure 3 of the paper shows part of this process.

One could also use any other algorithm for multiplication of MPOs. It does not have to be the zip-up algorithm.
