[Cbc] Build problem with COIN_BIG_INDEX

John Forrest john.forrest at fastercoin.com
Fri Sep 29 12:10:42 EDT 2017


Fixed.

When changing the code, I decided to let factorizations still use int.  
This could obviously be changed, but I think the code would be a bit 
slower.  At present the only drawback is that on small integer problems, 
Cbc sometimes uses a dense factorization and at present that is switched 
off because I was too lazy to modify it.

In a few months, if no bugs are found, I may allow another compilation 
option so that the user can build factorizations with CoinBigIndex 32 
bit or 64 bit.

I do not have any problems with more than 2 billion elements and I would 
not be able to solve them on any computer I own as in some places I 
think you would need 50 gigabytes of memory.

John Forrest
On 29/09/17 15:43, ycollette.nospam at free.fr wrote:
> Hello again,
>
> I made a test activating the mumps part I meet an error with COIN_BIG_INDEX=2 in Clp:
>
> [ 46%] Building CXX object Clp/CMakeFiles/libClp.dir/src/ClpCholeskyMumps.cpp.o
> /home/artelys/repositories/coin/Cbc/Clp/src/ClpCholeskyMumps.cpp: Dans la fonction membre « virtual int ClpCholeskyMumps::order(ClpInterior*) »:
> /home/artelys/repositories/coin/Cbc/Clp/src/ClpCholeskyMumps.cpp:176:70: error: ne peut convertir « CoinBigIndex* {aka long long int*} » en « int* » dans l'affectation
>             choleskyStart_ = new CoinBigIndex[numberRows_+1+sizeFactor_];
>                                                                        ^
> make[2]: *** [Clp/CMakeFiles/libClp.dir/build.make:1287: Clp/CMakeFiles/libClp.dir/src/ClpCholeskyMumps.cpp.o] Error 1
> make[1]: *** [CMakeFiles/Makefile2:2186: Clp/CMakeFiles/libClp.dir/all] Error 2
>
> Best regards,
>
> YC
>
> ----- Mail original -----
> De: "ycollette nospam" <ycollette.nospam at free.fr>
> À: "John Forrest" <john.forrest at fastercoin.com>
> Cc: cbc at list.coin-or.org
> Envoyé: Vendredi 29 Septembre 2017 13:45:06
> Objet: Re: [Cbc] Build problem with COIN_BIG_INDEX
>
> You are certainly right.
> It's just because I use Clp compiled from the Cbc archive ... :)
>
> Thanks a lot for your work !
>
> ----- Mail original -----
> De: "John Forrest" <john.forrest at fastercoin.com>
> À: cbc at list.coin-or.org
> Envoyé: Vendredi 29 Septembre 2017 13:40:24
> Objet: Re: [Cbc] Build problem with COIN_BIG_INDEX
>
> I thought it was worthwhile to make Cbc work on problems with more than
> 2 billion variables.  I do not expect any such integer problems in the
> near future, but it should be possible to have a version of Cbc which
> can solve Lp's of that size.
>
> I have made a large number of changes to about 40 files in trunk and now
> Cbc compiles with COIN_BIG_INDEX=2.
>
> It was tedious but straightforward.  Everything seems correct.  I have
> not tested it on problems with more than 2 billion elements and there
> could easily be bugs if an index does not fit in an int.
>
> Please inform me if you notice anything with and without COIN_BIG_INDEX=2.
>
> John Forrest
> On 27/09/17 08:30, ycollette.nospam at free.fr wrote:
>> Hello,
>>
>> I checked that clp compiled fine with COIN_BIG_INDEX=2.
>> But there is still a problem with Cbc.
>> With the current trunk of Cbc, I meet the following error message:
>>
>> [ 36%] Building CXX object Cgl/CMakeFiles/libCgl.dir/src/CglMixedIntegerRounding/CglMixedIntegerRounding.cpp.o
>> /home/artelys/repositories/coin/Cbc/Cgl/src/CglMixedIntegerRounding/CglMixedIntegerRounding.cpp: Dans la fonction membre « virtual void CglMixedIntegerRounding::generateCuts(const OsiSolverInterface&, OsiCuts&, CglTreeInfo) »:
>> /home/artelys/repositories/coin/Cbc/Cgl/src/CglMixedIntegerRounding/CglMixedIntegerRounding.cpp:71:58: error: ne peut convertir « const CoinBigIndex* {aka const long long int*} » en « const int* » dans l'initialisation
>>      const int* rowStarts     = matrixByRow.getVectorStarts();
>>                                                             ^
>> /home/artelys/repositories/coin/Cbc/Cgl/src/CglMixedIntegerRounding/CglMixedIntegerRounding.cpp:78:58: error: ne peut convertir « const CoinBigIndex* {aka const long long int*} » en « const int* » dans l'initialisation
>>      const int* colStarts     = matrixByCol.getVectorStarts();
>>                                                             ^
>> /home/artelys/repositories/coin/Cbc/Cgl/src/CglMixedIntegerRounding/CglMixedIntegerRounding.cpp: Dans la fonction membre « void CglMixedIntegerRounding::mixIntRoundPreprocess(const OsiSolverInterface&) »:
>> /home/artelys/repositories/coin/Cbc/Cgl/src/CglMixedIntegerRounding/CglMixedIntegerRounding.cpp:320:58: error: ne peut convertir « const CoinBigIndex* {aka const long long int*} » en « const int* » dans l'initialisation
>>      const int* rowStarts     = matrixByRow.getVectorStarts();
>>                                                             ^
>> make[2]: *** [Cgl/CMakeFiles/libCgl.dir/build.make:87: Cgl/CMakeFiles/libCgl.dir/src/CglMixedIntegerRounding/CglMixedIntegerRounding.cpp.o] Error 1
>> make[1]: *** [CMakeFiles/Makefile2:1462: Cgl/CMakeFiles/libCgl.dir/all] Error 2
>>
>> Best regards,
>>
>> YC
>>
>> _______________________________________________
>> Cbc mailing list
>> Cbc at list.coin-or.org
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_cbc&d=DwIGaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=js2M0T-3OIMIVDvokcKjokJbk0F8QOCd0mT4FsVFE88&m=P1t285H7ZPOCVwp07jKaHQ0IYxtJVZ-ASHfcrEzYIzs&s=EtdiBl1OifGkePx1dAUTfcWTDcImmmJpCr_zoReLLtU&e=
>>
>>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_cbc&d=DwIGaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=kY-tTJAFuHScYZHjojaaKVZZOEYVVkPpGiWUPr3h80U&m=3tb2hcNhO7_JsYB_Vq2Jda3gW-LFi8wE_T86ZL-y-YY&s=0eAY1cWf_rL_xQV3jo70faGTY1jliDJkLtv0KciTuhM&e=
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_cbc&d=DwIGaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=kY-tTJAFuHScYZHjojaaKVZZOEYVVkPpGiWUPr3h80U&m=-XyJMpuyxwAZdyBYGldzKdbLGp6YLqNFF0vt0iiWO9o&s=3c51hj4WnWxx4odlqGrPrcYNwvJVvLFo-Tm_zST-nkU&e=
>
>



More information about the Cbc mailing list