Introduce the following functions: - [ ] `apply(MPO, MPS)` which returns an unprimed MPS. - [ ] `contract(MPO, MPS)` which returns a primed MPS (the same as the current `applyMPO(MPO, MPS)` function). - [ ] `apply(MPO, MPO)` which returns an MPO with pairs of primed and unprimed indices. - [ ] `contract(MPO, MPO)` which returns an MPO with pairs of doubly primed and unprimed indices (the same as the current `nmultMPO(MPO, MPO)` function).
Introduce the following functions:
apply(MPO, MPS)which returns an unprimed MPS.contract(MPO, MPS)which returns a primed MPS (the same as the currentapplyMPO(MPO, MPS)function).apply(MPO, MPO)which returns an MPO with pairs of primed and unprimed indices.contract(MPO, MPO)which returns an MPO with pairs of doubly primed and unprimed indices (the same as the currentnmultMPO(MPO, MPO)function).