-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LUDecomposition error in a mixed bootstrap program #28
Comments
I can't be sure what's happening without more information. This is a linear
algebra error -- it's not happening in the code of SDPB, but rather in the
linear algebra library MPACK that SDPB uses. For some reason the LU
decomposition of a matrix is failing. This is unusual because the LU
decomposition of a matrix is usually well-behaved. I can imagine it
happening if the input matrix is somehow malformed (negative row length,
for example), but I'm just guessing.
…On Tue, Dec 12, 2017 at 1:29 PM shachrazad ***@***.***> wrote:
I am currently trying and failing to implement a mixed bootstrap program.
A truncated system for one correlation function with 1x1 polynomials
matrices works, but the full system with 2x2 polynomial matrices does not.
I keep getting the error message
"sdpb: src/Matrix.cpp:196: void LUDecomposition(Matrix&, std::vector&):
Assertion `info == 0' failed.
Aborted (core dumped)"
What causes this error? Is it a mistake in the implementation of the
normalization condition or of the polynomial matrices?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#28>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAORIfxx5OqxxT-268_hURVKUHgAnB_zks5s_vBTgaJpZM4Q_qP1>
.
|
Well, the program itself is kind of complicated to show here but I can reproduce the error message in a simple setting. If I take the example in "Bootstrap2dExample.m" and then add a extra {0} to all the polynomials as well as to the norm and the objective, then the same mistake appears. I would have thought that nothing bad would happen by such an addition. |
Ok, that's helpful. You can't add zeros to everything because that
introduces a flat direction in your semidefinite program which will cause
the solver to try to invert a degenerate matrix. So perhaps there is a flat
direction in your polynomial matrix program. One subtle way this can happen
is if all your polynomials share a factor. For example if you multiply all
polynomials by x, this will introduce a flat direction and you might get
the same error. You have to make sure to remove all common factors before
running sdpb.
…On Wed, Dec 13, 2017 at 2:45 AM shachrazad ***@***.***> wrote:
Well, the program itself is kind of complicated to show here but I can
reproduce the error message in a simple setting. If I take the example in
"Bootstrap2dExample.m" and then add a extra {0} to all the polynomials as
well as to the norm and the objective, then the same mistake appears. I
would have thought that nothing bad would happen by such an addition.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#28 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAORIbOewr6vq6VIJVnO_zla8gx90V98ks5s_6rCgaJpZM4Q_qP1>
.
|
Ok, so no flat directions for the function. I am however not fully sure what that means exactly. In the simplest case of "Bootstrap2dExample.m", the pols are 1x1 matrices, pols={V1(x),....,V_S(x)}, where I dropped the prefactors. Each of the V_i is a vector of the same length as norm. Is the existence of a flat direction equivalent to the existence of a vector alpha, s.t. alpha.V_i=alpha.norm=0 and also alpha is independent of x? That can be hard to find.... As a side note, multiplying the polynomials by x (not the prefactor, so basically doing |
Yes, such an alpha would mean the existence of a flat direction. Another
test you could do is to duplicate one of the entries in all the vectors and
see if you get the same error. i.e., instead of adding a zero to all the
vectors, you could replace
(v_1, v_2, ..., v_n) -> (v_1, v_1, v_2, ..., v_n)
Ok, that's useful to know. Then common factors may not be the issue.
…On Wed, Dec 13, 2017 at 10:17 AM, shachrazad ***@***.***> wrote:
Ok, so no flat directions for the function. I am however not fully sure
what that means exactly. In the simplest case of "Bootstrap2dExample.m",
the pols are 1x1 matrices, pols={V1(x),....,V_S(x)}, where I dropped the
prefactors. Each of the V_i is a vector of the same length as norm. Is the
existence of a flat direction equivalent to the existence of a vector
alpha, s.t. alpha.V_i=alpha.norm=0 and also alpha is independent of x? That
can be hard to find....
As a side note, multiplying the polynomials by x (not the prefactor, so
basically doing
pols=pols/. PositiveMatrixWithPrefactor[a_,b_]:>
PositiveMatrixWithPrefactor[a, x b])
leads to a different error, namely "Segmentation fault (core dumped)"
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#28 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAORIUfOvk9gLNoKjtw1EqljwexU16oOks5tABTVgaJpZM4Q_qP1>
.
|
I did find the zero directions. Thanks again for the help! |
Great! If you have time, it would be great if you could add a few sentences to the manual describing the error and how to fix it. |
"it would be great if you could add a few sentences to the manual describing the error and how to fix it." |
There's a Tex file in the documentation folder called SDPB-Manual.tex.
There isn't really a section for troubleshooting, but it might make sense
to add some sentences at the end of section 5.2 (Termination). Please make
sure to run LaTeX and include the new PDF in the repository too.
If you're not familiar with Git, you can also email me a few sentences and
I'll add them when I have a chance.
…On Thu, Dec 14, 2017 at 8:58 AM shachrazad ***@***.***> wrote:
"it would be great if you could add a few sentences to the manual
describing the error and how to fix it."
Sorry for my ignorance, but where can I add this? I'll gladly do it.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#28 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAORIRVhgV6ruPcpUPXhQJ0ExJnRjki-ks5tAVOcgaJpZM4Q_qP1>
.
|
I am currently trying and failing to implement a mixed bootstrap program. A truncated system for one correlation function with 1x1 polynomials matrices works, but the full system with 2x2 polynomial matrices does not.
I keep getting the error message
"sdpb: src/Matrix.cpp:196: void LUDecomposition(Matrix&, std::vector&): Assertion `info == 0' failed.
Aborted (core dumped)"
What causes this error? Is it a mistake in the implementation of the normalization condition or of the polynomial matrices?
The text was updated successfully, but these errors were encountered: