Hi! I would like to implement the parity operator between site 1 and site j

and then measure its expectation value.

My question has two points:

- what is the syntax for writing an operator which is a product of single-site operators rather than a sum of them?

- how do I take its expectation value? Is the function overlap(psi,P,psi) a good option?

My first attempt was the following:

```
void Jordan_String(const IQMPS& psi, string op="N")
{
const SiteSet& sites = psi.sites();
const int L = sites.N();
string name = "<JS_i>";
for(int i=1; i<=L; i++)
{
auto ampo = AutoMPO(sites);
for(int j=1; j<=i; j++)
{
ampo += op,j;
}
auto G = toMPO<IQTensor>(ampo,{"Exact=",true}); // MPO(ampo);
auto expG = toExpH<IQTensor>(ampo,M_PI*Cplx_i);
cout << name <<' '<<i<<' '<< psiHphi(psi,expG,psi) << endl;
}
}
```

I tried to exponentiate the partial sum of number operators up to site i and then evaluate the expectation value with overlap.

As a result, I got nonsensical results such as:

```
<JS_i> 15
Real psiHphi: WARNING, dropping non-zero (=6.82255E+01) imaginary part of expectation value.
21.8497509084841
```

Do you have any idea how to fix it? Thanks in advance!