Hi everyone,<br><br>I have attached (and pasted below) a small program that demonstrates a problem that I&#39;ve encountered with CoinStructuredModel:<br><br>The demonstration works as follows:<br>* Read a block structured LP from an MPS file<br>
* Loop over the blocks; print their dimensions and number of entries<br>* Retrieve a reference to a **nonzero** block via CoinStructuredModel::coinBlock<br>* Request a pointer to the blocks entries via CoinModel::elements<br>
* Surprisingly, the call results in a null pointer.<br><br>If anyone has a moment in which to compile and run this small example, I would be very grateful for any suggestions. Although I am sure that I&#39;ve done something silly, I have no good leads at this point! Perhaps I am missing a crucial call to a consolidation method?<br>
<br>Many thanks in advance,<br><br>Siamak<br><br>&lt;reproduce_error.cpp&gt;<br>#include &quot;CoinStructuredModel.hpp&quot;<br>#include &lt;iostream&gt;<br><br>/*<br>This program reproduces what appears to be an error in CoinStructuredModel.<br>
Any comments would be greatly appreciated.<br>*/<br><br>int main(int, char * [])<br>{<br>    using namespace std;<br><br>    //<br>    // Loads a problem with 4x4 blocks; 7 are nonzero<br>    //<br>    CoinStructuredModel structuredModel(&quot;4x4blocks.mps&quot;, true);<br>
<br>    cout &lt;&lt; &quot;blocks: &quot; &lt;&lt; structuredModel.numberRowBlocks() &lt;&lt; &quot; x &quot; &lt;&lt; structuredModel.numberColumnBlocks() &lt;&lt; endl;<br>    cout &lt;&lt; &quot;entries: &quot; &lt;&lt; structuredModel.numberRows() &lt;&lt; &quot; x &quot; &lt;&lt; structuredModel.numberColumns() &lt;&lt; endl;<br>
<br>    //<br>    // Displays block attributes: <br>    // Note that block (0, 0), in particular, is nonzero<br>    //<br>    for (int i = 0; i != structuredModel.numberRowBlocks(); ++i)<br>    {<br>        for (int j = 0; j != structuredModel.numberColumnBlocks(); ++j)<br>
        {<br>            int index = structuredModel.blockIndex(i, j);<br>            if(index &gt;= 0)<br>            {<br>                CoinModel const&amp; block = *structuredModel.coinBlock(index);<br>                cout &lt;&lt; &quot;index of block (&quot; &lt;&lt; i &lt;&lt; &quot;, &quot; &lt;&lt; j &lt;&lt; &quot;)... &quot; &lt;&lt; index &lt;&lt; &quot;: &quot;;<br>
                cout &lt;&lt; block.numberRows() &lt;&lt; &quot; x &quot; &lt;&lt; block.numberColumns();<br>                cout &lt;&lt; &quot; (&quot; &lt;&lt; block.numberElements() &lt;&lt; &quot; entries)&quot; &lt;&lt; endl;<br>
            }<br>        }<br>    }<br><br>    //<br>    // Here, we &quot;know&quot; that block (0, 0) is nonzero...<br>    //<br>    const int id = structuredModel.blockIndex(0, 0);<br>    CoinModel block = *structuredModel.coinBlock(id);<br>
<br>    //<br>    // ... yet we are unable to retrieve its entries via elements()<br>    //<br>    cout &lt;&lt; &quot;Entries for block &quot; &lt;&lt; id &lt;&lt; &quot;... &quot; &lt;&lt; endl;<br>    CoinModelTriple const* triple = block.elements();<br>
    assert(triple != 0); // This assertion fails!<br><br>    return 0;<br>}<br>&lt;/reproduce_error.cpp&gt;<br><br>&lt;4x4blocks.mps&gt;<br>NAME          3commodi<br>ROWS<br> E  R0001<br> E  R0002<br> E  R0003<br> E  R0004<br>
 E  R0005<br> E  R0006<br> E  R0007<br> E  R0008<br> E  R0009<br> E  R0010<br> E  R0011<br> E  R0012<br> E  R0013<br> E  R0014<br> E  R0015<br> E  R0016<br> E  R0017<br> E  R0018<br> E  R0019<br> E  R0020<br> E  R0021<br>
 E  R0022<br> E  R0023<br> E  R0024<br> L  R0025<br> L  R0026<br> L  R0027<br> L  R0028<br> L  R0029<br> L  R0030<br> L  R0031<br> L  R0032<br> L  R0033<br> L  R0034<br> L  R0035<br> N  R0036<br>COLUMNS<br>    C0001     R0001     1<br>
    C0001     R0006     -1<br>    C0001     R0025     1<br>    C0001     R0034     3<br>    C0001     R0035     18<br>    C0001     R0036     3<br>    C0002     R0001     1<br>    C0002     R0004     -1<br>    C0002     R0026     1<br>
    C0002     R0034     10<br>    C0002     R0035     2<br>    C0002     R0036     10<br>    C0003     R0002     1<br>    C0003     R0004     -1<br>    C0003     R0027     1<br>    C0003     R0034     2<br>    C0003     R0035     7<br>
    C0003     R0036     2<br>    C0004     R0003     1<br>    C0004     R0004     -1<br>    C0004     R0028     1<br>    C0004     R0034     6<br>    C0004     R0035     8<br>    C0004     R0036     6<br>    C0005     R0003     1<br>
    C0005     R0008     -1<br>    C0005     R0029     1<br>    C0005     R0034     10<br>    C0005     R0035     7<br>    C0005     R0036     10<br>    C0006     R0004     1<br>    C0006     R0005     -1<br>    C0006     R0030     1<br>
    C0006     R0034     5<br>    C0006     R0035     6<br>    C0006     R0036     5<br>    C0007     R0005     1<br>    C0007     R0006     -1<br>    C0007     R0031     1<br>    C0007     R0034     7<br>    C0007     R0035     6<br>
    C0007     R0036     7<br>    C0008     R0005     1<br>    C0008     R0007     -1<br>    C0008     R0032     1<br>    C0008     R0034     5<br>    C0008     R0035     4<br>    C0008     R0036     5<br>    C0009     R0005     1<br>
    C0009     R0008     -1<br>    C0009     R0033     1<br>    C0009     R0034     8<br>    C0009     R0035     1<br>    C0009     R0036     8<br>    C0010     R0009     1<br>    C0010     R0014     -1<br>    C0010     R0025     1<br>
    C0010     R0034     2<br>    C0010     R0035     2<br>    C0010     R0036     2<br>    C0011     R0009     1<br>    C0011     R0012     -1<br>    C0011     R0026     1<br>    C0011     R0034     7<br>    C0011     R0035     6<br>
    C0011     R0036     7<br>    C0012     R0010     1<br>    C0012     R0012     -1<br>    C0012     R0027     1<br>    C0012     R0034     3<br>    C0012     R0035     8<br>    C0012     R0036     3<br>    C0013     R0011     1<br>
    C0013     R0012     -1<br>    C0013     R0028     1<br>    C0013     R0034     1<br>    C0013     R0035     3<br>    C0013     R0036     1<br>    C0014     R0011     1<br>    C0014     R0016     -1<br>    C0014     R0029     1<br>
    C0014     R0034     5<br>    C0014     R0035     2<br>    C0014     R0036     5<br>    C0015     R0012     1<br>    C0015     R0013     -1<br>    C0015     R0030     1<br>    C0015     R0034     3<br>    C0015     R0035     1<br>
    C0015     R0036     3<br>    C0016     R0013     1<br>    C0016     R0014     -1<br>    C0016     R0031     1<br>    C0016     R0034     4<br>    C0016     R0035     2<br>    C0016     R0036     4<br>    C0017     R0013     1<br>
    C0017     R0015     -1<br>    C0017     R0032     1<br>    C0017     R0034     3<br>    C0017     R0035     2<br>    C0017     R0036     3<br>    C0018     R0013     1<br>    C0018     R0016     -1<br>    C0018     R0033     1<br>
    C0018     R0034     6<br>    C0018     R0035     2<br>    C0018     R0036     6<br>    C0019     R0017     1<br>    C0019     R0022     -1<br>    C0019     R0025     1<br>    C0019     R0034     3<br>    C0019     R0035     5<br>
    C0019     R0036     3<br>    C0020     R0017     1<br>    C0020     R0020     -1<br>    C0020     R0026     1<br>    C0020     R0034     3<br>    C0020     R0035     3<br>    C0020     R0036     3<br>    C0021     R0018     1<br>
    C0021     R0020     -1<br>    C0021     R0027     1<br>    C0021     R0034     4<br>    C0021     R0035     7<br>    C0021     R0036     4<br>    C0022     R0019     1<br>    C0022     R0020     -1<br>    C0022     R0028     1<br>
    C0022     R0034     2<br>    C0022     R0035     4<br>    C0022     R0036     2<br>    C0023     R0019     1<br>    C0023     R0024     -1<br>    C0023     R0029     1<br>    C0023     R0034     3<br>    C0023     R0035     22<br>
    C0023     R0036     3<br>    C0024     R0020     1<br>    C0024     R0021     -1<br>    C0024     R0030     1<br>    C0024     R0034     8<br>    C0024     R0035     5<br>    C0024     R0036     8<br>    C0025     R0021     1<br>
    C0025     R0022     -1<br>    C0025     R0031     1<br>    C0025     R0034     6<br>    C0025     R0035     3<br>    C0025     R0036     6<br>    C0026     R0021     1<br>    C0026     R0023     -1<br>    C0026     R0032     1<br>
    C0026     R0034     2<br>    C0026     R0035     6<br>    C0026     R0036     2<br>    C0027     R0021     1<br>    C0027     R0024     -1<br>    C0027     R0033     1<br>    C0027     R0034     8<br>    C0027     R0035     2<br>
    C0027     R0036     8<br>RHS<br>    B         R0001     18<br>    B         R0006     -18<br>    B         R0010     20<br>    B         R0015     -20<br>    B         R0019     25<br>    B         R0024     -25<br>    B         R0025     30<br>
    B         R0026     20<br>    B         R0027     50<br>    B         R0028     20<br>    B         R0029     20<br>    B         R0030     50<br>    B         R0031     20<br>    B         R0032     20<br>    B         R0033     20<br>
    B         R0034     100000000<br>    B         R0035     100000000<br>ENDATA<br>&lt;/4x4blocks.mps&gt;<br><br>