[Coin-discuss] Running Bcp on Windows

Jörg Herbers herbers at hotmail.com
Tue Oct 28 03:30:36 EST 2003


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




More information about the Coin-discuss mailing list