<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Bjarne,<br>
    <br>
    Am 07.04.19 um 21:16 schrieb Bjarne Grimstad:<br>
    <blockquote type="cite"
cite="mid:CAK3+tafxbDn8RiYutgdENQYzM79aWF2_P=P=5B35RAq-fCTvtA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hello,
        <div><br>
        </div>
        <div>Thank you for working on the open-source solver SCIP.</div>
      </div>
    </blockquote>
    We appreciate that.<br>
    <blockquote type="cite"
cite="mid:CAK3+tafxbDn8RiYutgdENQYzM79aWF2_P=P=5B35RAq-fCTvtA@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>I am developing some new cuts for polynomial constraints
          that I would like to test using the SCIP solver. My needs are
          as follows:</div>
        <div>
          <ul>
            <li>For each node in the B&B tree, and for each
              polynomial constraint, I would like to generate and add
              cuts (to the relaxation of the polynomial).</li>
            <li>Obviously, it is important that the cuts are added
              before interval propagation is performed.</li>
            <li>The cuts shall be discarded after the node has been
              processed (i.e., they shall not be inherited by children
              nodes).</li>
          </ul>
        </div>
        <div>I would really appreciate some pointers to relevant
          tutorials/docs or source files that I can modify to achieve
          this.</div>
      </div>
    </blockquote>
    I have *the* link for you<br>
    <br>
    <a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/">https://scip.zib.de/doc/html/</a><br>
    <br>
    It has all the information you are asking for.<br>
    <br>
    ...<br>
    <br>
    Now, seriously. I know that SCIP's API can be overwhelming at first,
    and probably you have read the documentation up to a certain point
    already, but could not find the relevant answers. Please always
    indicate such effort on your side in your question. What you want to
    implement is a separator. Since you are not mentioning any
    programming language preferences, I conjecture you prefer C. Please
    have a look at<br>
    <br>
    <a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/SEPA.php">https://scip.zib.de/doc/html/SEPA.php</a><br>
    <br>
    which explains how to implement a user separator. <br>
    <br>
    There is an example <a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/GMI_MAIN.php">https://scip.zib.de/doc/html/GMI_MAIN.php</a>
    implementing a user separator, which you may use as a starting point
    for your implementation. <br>
    <br>
    Polynomial constraints are handled <br>
    <br>
    <ul>
      <li>by the linear constraint handler if the degree is 1
        (<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/cons__linear_8h.php">https://scip.zib.de/doc/html/cons__linear_8h.php</a>)<br>
      </li>
      <li>by the quadratic constraint handler if the degree is 2
        (<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/cons__quadratic_8h.php">https://scip.zib.de/doc/html/cons__quadratic_8h.php</a>)<br>
      </li>
      <li>as nonlinear constraints if the degree is higher
        (<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/cons__nonlinear_8h.php">https://scip.zib.de/doc/html/cons__nonlinear_8h.php</a>)</li>
    </ul>
    <p>You can use the API of those constraint handlers from within your
      user separator to derive the desired inequalities. <br>
    </p>
    <p>Let us know how far you can get with the provided starting
      points.</p>
    <p><br>
      Best regards<br>
      Gregor</p>
  </body>
</html>