cbehan/pycftboot

About "add a parameter for linking isolated operators"

Closed this issue · 5 comments

Sir,
Can you explain a little bit about the quintuple? We are confusing with the positions of the operators in the crossing equation matrices. We put some data in PyCFTBoot but it shows the same error every time, like(for three correlators bootstrap)
sdp.add_point([0, 0], eps, [[0, 1], sig, [1, 2], [0, 0], 1.0])

Traceback (most recent call last):
File "./EqualityOPE.py", line 71, in
result = sdp.iterate()
File "/home/pycftboot-master/bootstrap.py", line 1242, in iterate
self.write_xml(obj, self.unit, name)
File "/home/pycftboot-master/bootstrap.py", line 1063, in write_xml
if quint[3][0] != r or quint[3][1] != s:
IndexError: list index out of range

Thanks for the question.

I agree with the values you have specified for quint[0] and quint[1]. However, quint[2] refers to the row and column of the block that should be evaluated at delta = sig. Since this is part of the crossing equation that exchanges odd operators (1x1 matrices), quint[2] should be [0, 0]. Similarly, quint[3] is the row and column where this evaluated block should be added. I would agree that this is [0, 0] in your case. However, if you setup crossing using [\lambda_{eps, eps, O}, \lambda_{sig, sig, O}] vectors instead of [\lambda_{sig, sig, O}, \lambda_{eps, eps, O}], then it will be [1, 1]. Finally, quint[5] should ensure that OPE coefficient equality is imposed in the r^\Delta convention rather than (4r)^\Delta.

In conclusion, the command I would call is sdp.add_point([0, 0], eps, [[0, 1], sig, [0, 0], [0, 0], 4.0 ** (sig - eps)]). I hope that makes sense.

Thanks for replying as well.

We have put this, sdp.add_point([0, 0], eps, [[0, 1], sig, [0, 0], [0, 0], 4.0**(sig - eps)]), but it shows the same error again.
Traceback (most recent call last):
File "./EqualityOPE.py", line 71, in
result = sdp.iterate()
File "/home/pycftboot-master/bootstrap.py", line 1242, in iterate
self.write_xml(obj, self.unit, name)
File "/home/pycftboot-master/bootstrap.py", line 1063, in write_xml
if quint[3][0] != r or quint[3][1] != s:
IndexError: list index out of range

Oops, I'm sorry! The line should actually be sdp.add_point([0, 0], eps, [[[0, 1], sig, [0, 0], [0, 0], 4.0 ** (sig - eps)]])... notice the extra brackets around the quintuple. This is because there could, in principle, be many operators to link in this way.

Great. Thank you very much. It is working.

But one thing we want to say that if we use the latest updated "bootstrap.py" then it is not running and shows the error like

Traceback (most recent call last):
File "./EqualityOPE.py", line 71, in
result = sdp.iterate()
File "/home/pycftboot-master/bootstrap.py", line 1242, in iterate
self.write_xml(obj, self.unit, name)
File "/home/pycftboot-master/bootstrap.py", line 1189, in write_xml
if sdpb_vesion == 2:
NameError: global name 'sdpb_vesion' is not defined

Oh, that was a typo I made in the code. Thanks for catching it!