[Coin-discuss] Running Bcp on Windows
Laszlo Ladanyi
ladanyi at us.ibm.com
Fri Oct 31 12:32:14 EST 2003
Done. I knew there would be at least one I miss... And this one was nasty, two
std::max's on the same line... :-)
--Laci
On Thu, 30 Oct 2003, Jörg Herbers wrote:
> 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
>
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at www-124.ibm.com
> http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss
>
More information about the Coin-discuss
mailing list