[Coin-discuss] Running Bcp on Windows

Jörg Herbers herbers at hotmail.com
Thu Oct 30 04:16:20 EST 2003


Hi Laci,

one little change is missing in what you committed: in BCP_lp_pool.cpp, line 
8, the second std::max also has to be qualified with <double>, i.e. the line 
should be

_violation = std::max<double>( 0.0, std::max<double>(_row->LowerBound()-lhs,

for VC7 to compile correctly. Could you correct that?

Everything else works perfectly!

Thanks a lot,
Jörg


>>>ladanyi at us.ibm.com 10/29/2003 10:39:08 PM >>>
Thanks! I have committed your changes (with one difference: I have changed 
to
using CoinCpuTime() from BCP_time_since_epoch()). Please check it out and
verify that it works correctly.

Thanks again,
--Laci

On Tue, 28 Oct 2003, Jörg Herbers wrote:

>Hi Laci,
>
><ctime> (instead of <time.h>) works without any further changes.
>
>Below, you'll find my "statement of origin". Let me know if you 
>additionally need a hardcopy.
>
>By the way: I didn't try to get the BCP features for parallel execution 
>running, and I don't know if the message passing interfaces can be ported 
>to Windows/VC7. The code works on a single machine, using 
>BCP_message_single.
>
>Jörg
>
>
>===============================================================================
>
>CONTRIBUTOR'S  STATEMENT OF ORIGIN
>
>I, Jörg Herbers:
>
>(a) represent that
>
>I am the only author and owner of the software
>
>described as "patches to compile BCP under VC++.NET", and
>
>(b)  represent that either
>
>    (i) this software was neither derived in any other way nor otherwise
>
>    copied from any other software, or
>
>    (ii) that any exception to (i) is software which was obtained under the
>
>    CPL (Common Public License), and
>
>(c)  hereby agree to license this software under the CPL.
>
>================================================================================
>
>
>
> >>>ladanyi at us.ibm.com 10/27/2003 5:31:19 PM >>>
>Hi Jorg,
>
>Great work! I'll put in these changes into the repository, just I need you 
>to
>fill out the mini-COO (certificate of origin) below. The description would 
>be,
>I guess, "patches to compile BCP under VC++.NET" or something similar.
>
>BTW, could you try whether one could include <ctime> instead of <time.h>?
>After all, ctime is the correct C++ header, but I know that it doesn't work 
>on
>some systems.
>
>Thanks,
>--Laci
>
>===============================================================================
>
>CONTRIBUTOR'S  STATEMENT OF ORIGIN
>
>I/We, ______________,  ______________, and ______________:
>
>(a) represent that
>
>I/we am/are the only author/authors and owner/owners of the software
>
>described as/entitled ____________________________, and
>
>(b)  represent that either
>
>    (i) this software was neither derived in any other way nor otherwise
>
>    copied from any other software, or
>
>    (ii) that any exception to (i) is software which was obtained under the
>
>    CPL (Common Public License), and
>
>(c)  hereby agree to license this software under the CPL.
>
>================================================================================
>
>On Wed, 22 Oct 2003, Jörg Herbers wrote:
>
> >Hi Jesper,
> >
> >BCP compiles on cygwin and with some modifications on Visual C++ .NET 
>2003. >Most of the necessary changes are due to persistent problems of VC7 
>with >templates:
> >
> >BCP_lp_branching.cpp:275: const int maxind = std::max<int>(rownum, 
>colnum);
> >BCP_lp_colrow.cpp:401: 
> >std::min<size_t>(p.param(BCP_lp_par::MaxCutsAddedPerIteration),
> >BCP_lp_colrow.cpp:495: 
> >std::min<size_t>(p.param(BCP_lp_par::MaxVarsAddedPerIteration),
> >BCP_lp_create_lp.cpp:125: const int num = std::max<int>(varnum, cutnum);
> >BCP_lp_fathom.cpp:260: std::max<const size_t>(
> >BCP_lp_generate_cuts.cpp:166: tout = std::max<double>(0.0, tout - 
> >(BCP_time_since_epoch() - tin));
> >BCP_lp_generate_vars.cpp:162: tout = std::max<double>(0.0, tout - 
> >(CoinCpuTime() - tin));
> >BCP_lp_main.cpp:32: p.node->vars.reserve(std::max<int>(1000, 3 * 
>bvarnum));
> >BCP_lp_main.cpp:42: p.node->cuts.reserve(std::max<int>(1000, 3 * 
>bcutnum));
> >BCP_lp_pool.cpp:8: _violation = std::max<double>( 0.0, 
> >std::max<double>(_row->LowerBound()-lhs,
> >BCP_message_single.cpp:251: _lp_prob->upper_bound = 
> >std::min<double>(_tm_prob->ub(), DBL_MAX/2);
> >
> >BCP_timeout.cpp needs the following extensions:
> >
> >#if defined(_MSC_VER) && (_MSC_VER > 1300)
> >#  include <time.h>
> >#endif
> >
> >double BCP_time_since_epoch() {
> >    BCP_DEFAULT_NAMESPACE;
> >#if defined(_MSC_VER)
> >    unsigned int ticksnow;
> >    ticksnow = (unsigned int)clock();
> >    return (double)((double)ticksnow/CLOCKS_PER_SEC);
> >#else
> >   /* ... as before ... */
> >#endif
> >}
> >
> >Furthermore, I use an OS specific header file (BCP_msvc.hpp):
> >
> >#ifndef _BCP_MSVC
> >#define _BCP_MSVC
> >
> >typedef int BCP_IndexType;
> >
> >#  define setpriority(x,y,z)
> >#  define BCP_USE_RUSAGE 0
> >#  include <Windows.h>
> >#  define gethostname(c, l) { DWORD cnlen = l; GetComputerName(c, 
>&cnlen); >}
> >#  include <process.h>
> >#  define BCP_PtrDiff       int
> >#  define BCP_DEFAULT_NAMESPACE
> >
> >#    define NEED_TEMPLATE_CLASSES
> >// #    define NEED_TEMPLATE_FUNCTIONS
> >// #    define NEED_STD_TEMPLATE_FUNCTIONS
> >// #    define NEED_IMPLICIT_TEMPLATE_CLASSES
> >// #    define NEED_IMPLICIT_TEMPLATE_FUNCTIONS
> >#    define BCP_CONSTRUCT     std::_Construct
> >#    define BCP_DESTROY       std::_Destroy
> >//#    define BCP_DESTROY_RANGE std::_Destroy_range
> >
> >template<class T> inline void BCP_DESTROY_RANGE(T *first, T *last)
> >{
> >   for (; first != last; ++first)
> >     BCP_DESTROY(first);
> >}
> >
> >#endif
> >
> >which is included in BCP_os.hpp:
> >
> >#if defined(_MSC_VER) && (_MSC_VER > 1300)
> >#  include "BCP_msvc.hpp"
> >#endif
> >
> > >From my viewpoint, it would be helpful to integrate these changes in 
>BCP. >But since the changes are due to compiler flaws, this again leads us 
>to the >discussion on how many and which compilers BCP should support...
> >
> >Jörg
> >
> >
> > >>>jpfasano at us.ibm.com 10/20/2003 6:39:10 PM >>>
> >
> >
> >
> >
> >Hi Jesper,
> >I believe BCP will compile using CYGWIN on Windows.
> >
> >JP Fasano
> >jpfasano at us.ibm.com (914)945-1324  (tie line 862-1324)
> >COIN www.coin-or.org >
> >
> >
> >                       ladanyi at watson.ibm.com                       Sent 
> >by:                       To:       COIN-discuss 
> ><coin-discuss at oss.software.ibm.com>
> >                       coin-discuss-admin at www-        cc:
> >                       124.ibm.com                    Subject:  Re: 
> >[Coin-discuss] Running Bcp on Windows
> >
> >
> >                       10/20/2003 11:48 AM
> >                       Please respond to
> >                       coin-discuss
> >
> >
> >
> >
> >
> >
> >Hi Jesper,
> >
> >Yes, I tried it, and it's a no go. BCP uses templated member functions 
>and
> >VC++-6.0 can't handle them. It claims that there's a syntax error. I 
>boiled
> >the problem down to a trivial example, contacted Microsoft and they
> >admitted
> >the error in the compiler.
> >
> >On the bright side, VC++-7 is supposed to be much more standards 
>compliant,
> >so
> >you may get Bcp working with it.
> >
> >Good luck,
> >--Laci
> >
> >On Mon, 20 Oct 2003, Jesper Hansen wrote:
> >
> > >Hi
> > >
> > >I'm trying to get Bcp running on Windows with Visual C++ 6.0. However I
> >get
> > >a huge number of compilation errors. Have anyone tried this before?
> > >Experiences would be much appreciated.
> > >
> > >For instance I get the following error (which does not seem to be an
> >error):
> > >
> > >e:\COIN\Bcp\include\BCP_vector.hpp(299) : error C2039: 'const_iterator' 
>:
> >is
> > >not a member of 'BCP_vec<int>'
> > >
> > >Another issue is the os specific header files...
> > >
> > >'Jesper
> > >
> > >
> > >---
> > >Jesper Hansen                   mailto:jesper at carmenconsulting.com 
>Carmen > >Consulting, Købmagergade 53 3., DK-1150 Kbh K, Denmark
> > >Telephone: +45 33 17 91 92                 Mobile: +45 61 33 29 69
> > >http://www.carmenconsulting.com >
> > >
> > >_______________________________________________
> > >Coin-discuss mailing list
> > >Coin-discuss at www-124.ibm.com > 
> >http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss >
> >
> >_______________________________________________
> >Coin-discuss mailing list
> >Coin-discuss at www-124.ibm.com 
> >http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss >
> >
> >
> >_______________________________________________
> >Coin-discuss mailing list
> >Coin-discuss at www-124.ibm.com 
> >http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss >
> >_________________________________________________________________
> >Protect your PC - get McAfee.com VirusScan Online 
> >http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 >
> >_______________________________________________
> >Coin-discuss mailing list
> >Coin-discuss at www-124.ibm.com 
> >http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss >
>
>_______________________________________________
>Coin-discuss mailing list
>Coin-discuss at www-124.ibm.com 
>http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss
>
>_________________________________________________________________
>Protect your PC - get McAfee.com VirusScan Online 
>http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
>
>_______________________________________________
>Coin-discuss mailing list
>Coin-discuss at www-124.ibm.com 
>http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss
>

_______________________________________________
Coin-discuss mailing list
Coin-discuss at www-124.ibm.com
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss

_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE* 
http://join.msn.com/?page=features/virus




More information about the Coin-discuss mailing list