Changeset 786


Ignore:
Timestamp:
Nov 16, 2011 11:10:29 PM (8 years ago)
Author:
pbelotti
Message:

attempt at fixing exprMul extra cut. Introducing performance indicator for BT (used in Fixed Point LP).

Location:
trunk
Files:
4 added
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/Couenne/configure

    r782 r786  
    19781978if test x"$CXX" != x; then
    19791979  case "$CXX" in
     1980    clang* ) ;;
    19801981    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    19811982      if test x"$CC" = x; then
     
    27972798# Autoconf incorrectly concludes that cl recognises -g. It doesn't.
    27982799case "$CC" in
     2800  clang* ) ;;
    27992801  cl* | */cl* | CL* | */CL* )
    28002802    if test "$ac_cv_prog_cc_g" = yes ; then
     
    28092811coin_cc_is_cl=false
    28102812case "$CC" in
     2813  clang* ) ;;
    28112814  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    28122815    coin_cc_is_cl=true
     
    29122915      *-cygwin* | *-mingw*)
    29132916        case "$CC" in
     2917          clang* ) ;;
    29142918          cl* | */cl* | CL* | */CL*)
    29152919            coin_opt_cflags='-MT -O2'
     
    32333237# Correct the LD variable if we are using the MS or Intel-windows compiler
    32343238case "$CC" in
     3239  clang* ) ;;
    32353240  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    32363241    case $build in
     
    37243729# It seems that we need to cleanup something here for the Windows
    37253730case "$CXX" in
     3731  clang* ) ;;
    37263732  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    37273733    sed -e 's/^void exit (int);//' confdefs.h >> confdefs.hh
     
    37453751# Autoconf incorrectly concludes that cl recognises -g. It doesn't.
    37463752case "$CXX" in
     3753  clang* ) ;;
    37473754  cl* | */cl* | CL* | */CL* )
    37483755    if test "$ac_cv_prog_cxx_g" = yes ; then
     
    38483855      *-cygwin* | *-mingw*)
    38493856        case "$CXX" in
     3857          clang* ) ;;
    38503858          cl* | */cl* | CL* | */CL*)
    38513859            # The MT and MTd options are mutually exclusive
     
    41774185# correct the LD variable in a mingw build with MS or intel compiler
    41784186case "$CXX" in
     4187  clang* ) ;;
    41794188  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    41804189    case $build in
     
    42184227if test x"$CXX" != x; then
    42194228  case "$CXX" in
     4229    clang* ) ;;
    42204230    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    42214231      if test x"$CC" = x; then
     
    48364846# Autoconf incorrectly concludes that cl recognises -g. It doesn't.
    48374847case "$CC" in
     4848  clang* ) ;;
    48384849  cl* | */cl* | CL* | */CL* )
    48394850    if test "$ac_cv_prog_cc_g" = yes ; then
     
    48484859coin_cc_is_cl=false
    48494860case "$CC" in
     4861  clang* ) ;;
    48504862  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    48514863    coin_cc_is_cl=true
     
    49514963      *-cygwin* | *-mingw*)
    49524964        case "$CC" in
     4965          clang* ) ;;
    49534966          cl* | */cl* | CL* | */CL*)
    49544967            coin_opt_cflags='-MT -O2'
     
    52725285# Correct the LD variable if we are using the MS or Intel-windows compiler
    52735286case "$CC" in
     5287  clang* ) ;;
    52745288  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    52755289    case $build in
     
    70477061*-*-irix6*)
    70487062  # Find out which ABI we are using.
    7049   echo '#line 7049 "configure"' > conftest.$ac_ext
     7063  echo '#line 7063 "configure"' > conftest.$ac_ext
    70507064  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
    70517065  (eval $ac_compile) 2>&5
     
    81818195
    81828196# Provide some information about the compiler.
    8183 echo "$as_me:8183:" \
     8197echo "$as_me:8197:" \
    81848198     "checking for Fortran 77 compiler version" >&5
    81858199ac_compiler=`set X $ac_compile; echo $2`
     
    92489262   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    92499263   -e 's:$: $lt_compiler_flag:'`
    9250    (eval echo "\"\$as_me:9250: $lt_compile\"" >&5)
     9264   (eval echo "\"\$as_me:9264: $lt_compile\"" >&5)
    92519265   (eval "$lt_compile" 2>conftest.err)
    92529266   ac_status=$?
    92539267   cat conftest.err >&5
    9254    echo "$as_me:9254: \$? = $ac_status" >&5
     9268   echo "$as_me:9268: \$? = $ac_status" >&5
    92559269   if (exit $ac_status) && test -s "$ac_outfile"; then
    92569270     # The compiler can only warn and ignore the option if not recognized
     
    95169530   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    95179531   -e 's:$: $lt_compiler_flag:'`
    9518    (eval echo "\"\$as_me:9518: $lt_compile\"" >&5)
     9532   (eval echo "\"\$as_me:9532: $lt_compile\"" >&5)
    95199533   (eval "$lt_compile" 2>conftest.err)
    95209534   ac_status=$?
    95219535   cat conftest.err >&5
    9522    echo "$as_me:9522: \$? = $ac_status" >&5
     9536   echo "$as_me:9536: \$? = $ac_status" >&5
    95239537   if (exit $ac_status) && test -s "$ac_outfile"; then
    95249538     # The compiler can only warn and ignore the option if not recognized
     
    96209634   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    96219635   -e 's:$: $lt_compiler_flag:'`
    9622    (eval echo "\"\$as_me:9622: $lt_compile\"" >&5)
     9636   (eval echo "\"\$as_me:9636: $lt_compile\"" >&5)
    96239637   (eval "$lt_compile" 2>out/conftest.err)
    96249638   ac_status=$?
    96259639   cat out/conftest.err >&5
    9626    echo "$as_me:9626: \$? = $ac_status" >&5
     9640   echo "$as_me:9640: \$? = $ac_status" >&5
    96279641   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    96289642   then
     
    1196511979  lt_status=$lt_dlunknown
    1196611980  cat > conftest.$ac_ext <<EOF
    11967 #line 11967 "configure"
     11981#line 11981 "configure"
    1196811982#include "confdefs.h"
    1196911983
     
    1206512079  lt_status=$lt_dlunknown
    1206612080  cat > conftest.$ac_ext <<EOF
    12067 #line 12067 "configure"
     12081#line 12081 "configure"
    1206812082#include "confdefs.h"
    1206912083
     
    1440914423   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1441014424   -e 's:$: $lt_compiler_flag:'`
    14411    (eval echo "\"\$as_me:14411: $lt_compile\"" >&5)
     14425   (eval echo "\"\$as_me:14425: $lt_compile\"" >&5)
    1441214426   (eval "$lt_compile" 2>conftest.err)
    1441314427   ac_status=$?
    1441414428   cat conftest.err >&5
    14415    echo "$as_me:14415: \$? = $ac_status" >&5
     14429   echo "$as_me:14429: \$? = $ac_status" >&5
    1441614430   if (exit $ac_status) && test -s "$ac_outfile"; then
    1441714431     # The compiler can only warn and ignore the option if not recognized
     
    1451314527   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1451414528   -e 's:$: $lt_compiler_flag:'`
    14515    (eval echo "\"\$as_me:14515: $lt_compile\"" >&5)
     14529   (eval echo "\"\$as_me:14529: $lt_compile\"" >&5)
    1451614530   (eval "$lt_compile" 2>out/conftest.err)
    1451714531   ac_status=$?
    1451814532   cat out/conftest.err >&5
    14519    echo "$as_me:14519: \$? = $ac_status" >&5
     14533   echo "$as_me:14533: \$? = $ac_status" >&5
    1452014534   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1452114535   then
     
    1608316097   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1608416098   -e 's:$: $lt_compiler_flag:'`
    16085    (eval echo "\"\$as_me:16085: $lt_compile\"" >&5)
     16099   (eval echo "\"\$as_me:16099: $lt_compile\"" >&5)
    1608616100   (eval "$lt_compile" 2>conftest.err)
    1608716101   ac_status=$?
    1608816102   cat conftest.err >&5
    16089    echo "$as_me:16089: \$? = $ac_status" >&5
     16103   echo "$as_me:16103: \$? = $ac_status" >&5
    1609016104   if (exit $ac_status) && test -s "$ac_outfile"; then
    1609116105     # The compiler can only warn and ignore the option if not recognized
     
    1618716201   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1618816202   -e 's:$: $lt_compiler_flag:'`
    16189    (eval echo "\"\$as_me:16189: $lt_compile\"" >&5)
     16203   (eval echo "\"\$as_me:16203: $lt_compile\"" >&5)
    1619016204   (eval "$lt_compile" 2>out/conftest.err)
    1619116205   ac_status=$?
    1619216206   cat out/conftest.err >&5
    16193    echo "$as_me:16193: \$? = $ac_status" >&5
     16207   echo "$as_me:16207: \$? = $ac_status" >&5
    1619416208   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1619516209   then
     
    1839418408   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1839518409   -e 's:$: $lt_compiler_flag:'`
    18396    (eval echo "\"\$as_me:18396: $lt_compile\"" >&5)
     18410   (eval echo "\"\$as_me:18410: $lt_compile\"" >&5)
    1839718411   (eval "$lt_compile" 2>conftest.err)
    1839818412   ac_status=$?
    1839918413   cat conftest.err >&5
    18400    echo "$as_me:18400: \$? = $ac_status" >&5
     18414   echo "$as_me:18414: \$? = $ac_status" >&5
    1840118415   if (exit $ac_status) && test -s "$ac_outfile"; then
    1840218416     # The compiler can only warn and ignore the option if not recognized
     
    1866218676   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1866318677   -e 's:$: $lt_compiler_flag:'`
    18664    (eval echo "\"\$as_me:18664: $lt_compile\"" >&5)
     18678   (eval echo "\"\$as_me:18678: $lt_compile\"" >&5)
    1866518679   (eval "$lt_compile" 2>conftest.err)
    1866618680   ac_status=$?
    1866718681   cat conftest.err >&5
    18668    echo "$as_me:18668: \$? = $ac_status" >&5
     18682   echo "$as_me:18682: \$? = $ac_status" >&5
    1866918683   if (exit $ac_status) && test -s "$ac_outfile"; then
    1867018684     # The compiler can only warn and ignore the option if not recognized
     
    1876618780   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1876718781   -e 's:$: $lt_compiler_flag:'`
    18768    (eval echo "\"\$as_me:18768: $lt_compile\"" >&5)
     18782   (eval echo "\"\$as_me:18782: $lt_compile\"" >&5)
    1876918783   (eval "$lt_compile" 2>out/conftest.err)
    1877018784   ac_status=$?
    1877118785   cat out/conftest.err >&5
    18772    echo "$as_me:18772: \$? = $ac_status" >&5
     18786   echo "$as_me:18786: \$? = $ac_status" >&5
    1877318787   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1877418788   then
     
    2150621520    *-cygwin* | *-mingw*)
    2150721521       case "$CXX" in
     21522    clang* )
     21523      # we assume that libtool patches for CLANG are the same as for GNU compiler - correct???
     21524      { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5
     21525echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;}
     21526      sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
     21527          -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \
     21528          -e 's|libext="lib"|libext="a"|' \
     21529      libtool > conftest.bla
     21530      ;;
    2150821531    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2150921532      { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5
     
    2152121544          -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \
    2152221545      libtool > conftest.bla
    21523 
    21524       mv conftest.bla libtool
    21525       chmod 755 libtool
    2152621546      ;;
    2152721547    *)
     
    2153221552          -e 's|libext="lib"|libext="a"|' \
    2153321553      libtool > conftest.bla
    21534 
    21535       mv conftest.bla libtool
    21536       chmod 755 libtool
    2153721554      ;;
    2153821555  esac
     21556  mv conftest.bla libtool
     21557  chmod 755 libtool
     21558
    2153921559      ;;
    2154021560    *-darwin*)
     
    2787727897fi
    2787827898case "$CC" in
     27899  clang* ) ;;
    2787927900  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2788027901    coin_link_input_cmd=cp ;;
     
    2789027911
    2789127912  case "$CC" in
     27913    clang* )
     27914         LIBEXT=a ;;
    2789227915    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2789327916         LIBEXT=lib ;;
  • trunk/Couenne/src/Makefile.am

    r767 r786  
    105105        branch/CouenneProjections.hpp \
    106106        standardize/CouenneLQelems.hpp \
     107        bound_tightening/CouenneBTPerfIndicator.hpp \
    107108        bound_tightening/CouenneFixPoint.hpp \
    108109        bound_tightening/CouenneAggrProbing.hpp \
  • trunk/Couenne/src/Makefile.in

    r782 r786  
    107107        branch/CouenneSOSObject.hpp branch/CouenneProjections.hpp \
    108108        standardize/CouenneLQelems.hpp \
     109        bound_tightening/CouenneBTPerfIndicator.hpp \
    109110        bound_tightening/CouenneFixPoint.hpp \
    110111        bound_tightening/CouenneAggrProbing.hpp \
     
    468469        branch/CouenneSOSObject.hpp branch/CouenneProjections.hpp \
    469470        standardize/CouenneLQelems.hpp \
     471        bound_tightening/CouenneBTPerfIndicator.hpp \
    470472        bound_tightening/CouenneFixPoint.hpp \
    471473        bound_tightening/CouenneAggrProbing.hpp \
  • trunk/Couenne/src/bound_tightening/CouenneAggrProbing.cpp

    r530 r786  
    117117
    118118  // Initial cutoff value
    119   double initCutoff = problem->Ub()[indobj];
     119  double initCutoff = problem->getCutOff (); //Ub()[indobj];
    120120
    121121  double* initCutoffSol = NULL;
     
    192192    if (restoreCutoff_){
    193193      problem->resetCutOff(initCutoff);
    194       problem->Ub()[indobj] = initCutoff;
     194      if (indobj >= 0)
     195        problem->Ub(indobj) = initCutoff;
    195196      problem->installCutOff();
    196197    }
     
    283284
    284285    if (restoreCutoff_){
    285       problem->Ub()[indobj] = initCutoff;
     286      if (indobj >= 0)
     287        problem->Ub(indobj) = initCutoff;
    286288      problem->resetCutOff(initCutoff);
    287289      problem->installCutOff();
     
    353355    // Reset cutoff
    354356    if (restoreCutoff_){
    355       problem->Ub()[indobj] = initCutoff;
     357      if (indobj >= 0)
     358        problem->Ub(indobj) = initCutoff;
    356359      problem->resetCutOff(initCutoff);
    357360      problem->installCutOff();
  • trunk/Couenne/src/bound_tightening/CouenneFixPoint.hpp

    r490 r786  
    1818#include "OsiRowCut.hpp"
    1919#include "OsiSolverInterface.hpp"
     20
     21#include "CouenneBTPerfIndicator.hpp"
    2022
    2123namespace Couenne {
     
    8183                    bool,
    8284                    int, int) const;
     85
     86    /// Performance indicator
     87    CouenneBTPerfIndicator perfIndicator_;
    8388  };
    8489}
  • trunk/Couenne/src/bound_tightening/FixPointConstructors.cpp

    r562 r786  
    2121  CPUtime_    (0.),
    2222  nRuns_      (0),
    23   nTightened_ (0) {
     23  nTightened_ (0),
     24  perfIndicator_ (p, "Fixed Point LP") {
    2425
    2526  std::string s;
     
    3637  CPUtime_       (rhs.CPUtime_),
    3738  nRuns_         (rhs.nRuns_),
    38   nTightened_    (rhs.nTightened_) {}
     39  nTightened_    (rhs.nTightened_),
     40  perfIndicator_ (rhs.perfIndicator_) {}
    3941
    4042
     
    4244CouenneFixPoint::~CouenneFixPoint () {
    4345
    44   if (!firstCall_)
     46  if (0 && !firstCall_)
    4547    printf ("Fixed point BT: CPU time %g, %d runs, %d tightened\n",
    4648            CPUtime_, nRuns_, nTightened_);
  • trunk/Couenne/src/bound_tightening/FixPointGenCuts.cpp

    r694 r786  
    5353    return;
    5454
     55  double startTime = CoinCpuTime ();
     56
     57  perfIndicator_. setOldBounds (si. getColLower (), si. getColUpper ());
     58
    5559  int nInitTightened = nTightened_;
    5660
     
    327331                                      nTightened_ - nInitTightened, CoinCpuTime () - now);
    328332    }
     333
     334    perfIndicator_. update (problem_ -> Lb (), problem_ -> Ub (), treeInfo.level);
     335    perfIndicator_. addToTimer (CoinCpuTime () - startTime);
    329336
    330337  } else
  • trunk/Couenne/src/bound_tightening/Makefile.am

    r765 r786  
    2121        FixPointGenCuts.cpp \
    2222        CouenneInfeasCut.cpp \
     23        obbt_supplement.cpp \
     24        BTPerfIndicator.cpp \
     25        BTPerfIndicatorConstr.cpp \
    2326        operators/impliedBounds-mul.cpp \
    2427        operators/impliedBounds-sum.cpp \
  • trunk/Couenne/src/bound_tightening/Makefile.in

    r765 r786  
    5959        aggressiveBT.lo fake_tightening.lo obbt.lo obbt_iter.lo \
    6060        tightenBounds.lo impliedBounds.lo FixPointConstructors.lo \
    61         FixPointGenCuts.lo CouenneInfeasCut.lo impliedBounds-mul.lo \
    62         impliedBounds-sum.lo impliedBounds-exprSum.lo \
    63         impliedBounds-exprDiv.lo impliedBounds-exprMul.lo \
    64         impliedBounds-exprTrilinear.lo impliedBounds-exprQuad.lo \
    65         impliedBounds-exprPow.lo BonCouenneInfo.lo \
    66         CouenneAggrProbing.lo
     61        FixPointGenCuts.lo CouenneInfeasCut.lo obbt_supplement.lo \
     62        BTPerfIndicator.lo BTPerfIndicatorConstr.lo \
     63        impliedBounds-mul.lo impliedBounds-sum.lo \
     64        impliedBounds-exprSum.lo impliedBounds-exprDiv.lo \
     65        impliedBounds-exprMul.lo impliedBounds-exprTrilinear.lo \
     66        impliedBounds-exprQuad.lo impliedBounds-exprPow.lo \
     67        BonCouenneInfo.lo CouenneAggrProbing.lo
    6768libCouenneBoundTightening_la_OBJECTS =  \
    6869        $(am_libCouenneBoundTightening_la_OBJECTS)
     
    324325        FixPointGenCuts.cpp \
    325326        CouenneInfeasCut.cpp \
     327        obbt_supplement.cpp \
     328        BTPerfIndicator.cpp \
     329        BTPerfIndicatorConstr.cpp \
    326330        operators/impliedBounds-mul.cpp \
    327331        operators/impliedBounds-sum.cpp \
     
    406410        -rm -f *.tab.c
    407411
     412@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BTPerfIndicator.Plo@am__quote@
     413@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BTPerfIndicatorConstr.Plo@am__quote@
    408414@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BonCouenneInfo.Plo@am__quote@
    409415@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CouenneAggrProbing.Plo@am__quote@
     
    425431@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obbt.Plo@am__quote@
    426432@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obbt_iter.Plo@am__quote@
     433@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obbt_supplement.Plo@am__quote@
    427434@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tightenBounds.Plo@am__quote@
    428435
  • trunk/Couenne/src/bound_tightening/aggressiveBT.cpp

    r752 r786  
    205205                        "   %2d %+20g [%+20g %+20g]\n",
    206206                        i, X [i], Lb (i), Ub (i));
    207       Jnlst()->Printf(J_ITERSUMMARY, J_BOUNDTIGHTENING,
    208                       "-------------\nAggressive BT. Current bound = %g, cutoff = %g, %d vars\n",
    209                       Lb (objind), getCutOff (), ncols);
     207      if (objind >= 0)
     208        Jnlst()->Printf(J_ITERSUMMARY, J_BOUNDTIGHTENING,
     209                        "-------------\nAggressive BT. Current bound = %g, cutoff = %g, %d vars\n",
     210                        Lb (objind), getCutOff (), ncols);
    210211    }
    211212
     
    309310      int objind = Obj (0) -> Body  () -> Index ();
    310311
    311       Jnlst()->Printf(J_ITERSUMMARY, J_BOUNDTIGHTENING,
    312                       "-------------\ndone Aggressive BT. Current bound = %g, cutoff = %g, %d vars\n",
    313                       Lb (objind), getCutOff (), ncols);
     312      if (objind >= 0)
     313        Jnlst()->Printf(J_ITERSUMMARY, J_BOUNDTIGHTENING,
     314                        "-------------\ndone Aggressive BT. Current bound = %g, cutoff = %g, %d vars\n",
     315                        Lb (objind), getCutOff (), ncols);
    314316
    315317      if (Jnlst()->ProduceOutput(J_DETAILED, J_BOUNDTIGHTENING))
  • trunk/Couenne/src/bound_tightening/boundTightening.cpp

    r738 r786  
    1313#include "CouenneExprVar.hpp"
    1414#include "CouenneProblemElem.hpp"
     15#include "CouenneBTPerfIndicator.hpp"
    1516#include "BonBabInfos.hpp"
    1617#include "BonCbc.hpp"
     
    167168
    168169bool CouenneProblem::boundTightening (t_chg_bounds *chg_bds,
     170                                      const CglTreeInfo info,
    169171                                      Bonmin::BabInfo * babInfo) const {
    170172
    171   //  double startTime = CoinCpuTime ();
     173  double startTime = CoinCpuTime ();
     174
     175  perfIndicator_ -> setOldBounds (Lb (), Ub ());
     176
    172177  //
    173178  // #define SMALL_BOUND 1e4
     
    208213  }
    209214
    210   return btCore (chg_bds);
     215  bool retval = btCore (chg_bds);
     216
     217  perfIndicator_ -> update     (Lb (), Ub (), info.level);
     218  perfIndicator_ -> addToTimer (CoinCpuTime () - startTime);
     219
     220  return retval;
    211221
    212222  //printf ("Total cpu time = %e\n", CoinCpuTime () - startTime);
     
    224234    objind   = Obj (0) -> Body () -> Index ();
    225235
    226   assert (objind >= 0);
     236  if (objind < 0)
     237    return 0;
    227238
    228239  CouNumber
  • trunk/Couenne/src/bound_tightening/fake_tightening.cpp

    r749 r786  
    9595    objind   = Obj (0) -> Body  () -> Index ();
    9696
    97   assert (objind >= 0);
     97  //assert (objind >= 0);
    9898
    9999  bool
     
    113113  jnlst_ -> Printf (Ipopt::J_ERROR, J_BOUNDTIGHTENING,
    114114                    "  x_%d.  x = %10g, lb = %g, cutoff = %g-----------------\n",
    115                     index,xcur,Lb (objind),getCutOff());
     115                    index,xcur,objind >= 0 ? Lb (objind) : 0., getCutOff());
    116116
    117117  /*if (index == objind)
     
    174174    bool
    175175      feasible  = btCore (f_chg),                           // true if feasible with fake bound
    176       betterbds = Lb (objind) > getCutOff () + COUENNE_EPS; // true if over cutoff
     176      betterbds = objind >= 0 && (Lb (objind) > getCutOff () + COUENNE_EPS); // true if over cutoff
    177177
    178178    jnlst_ -> Printf (Ipopt::J_ERROR, J_BOUNDTIGHTENING,
    179179                      " [%10g,%10g] lb = %g {fea=%d,btr=%d} ",
    180                       Lb (index), Ub (index), Lb (objind),feasible,betterbds);
     180                      Lb (index), Ub (index), objind >= 0 ? Lb (objind) : 0., feasible,betterbds);
    181181
    182182    if (feasible && !betterbds) {
     
    328328                    "  [x%2d] pruned %s [%g, %g] -- lb = %g cutoff = %g\n",
    329329                    index,direction?"right":"left",
    330                     olb[index],oub[index], Lb (objind), getCutOff ());
     330                    olb[index],oub[index], objind >= 0 ? Lb (objind) : 0., getCutOff ());
    331331
    332332  return tightened ? 1 : 0;
  • trunk/Couenne/src/bound_tightening/obbt_iter.cpp

    r732 r786  
    2424// bounds around 1e14. Fix.
    2525
     26int obbt_supplement (const OsiSolverInterface *csi, /// interface to use as a solver
     27                     int index,                     /// variable being looked at
     28                     int sense);                    /// 1: minimize, -1: maximize
     29
    2630/// reoptimize and change bound of a variable if needed
    2731static bool obbt_updateBound (OsiSolverInterface *csi, /// interface to use as a solver
     
    2933                              CouNumber &bound,        /// bound to be updated
    3034                              bool isint) {            /// is this variable integer
     35
     36
     37  // NEW: TODO: save min x^\star_i to check at every iteration
     38  // (comparison each iteration is less advtgs) when checking if x_i
     39  // needs minz for obbt
    3140
    3241  //csi -> deleteScaleFactors ();
     
    245254    //index, sense, bound, isInt);
    246255
     256    bool has_updated = false;
     257
    247258    if (obbt_updateBound (csi, sense, bound, isInt)) {
     259
     260      has_updated = true;
    248261
    249262      if (knownOptimum) {
     
    286299      */
    287300
    288       // check value and bounds of other variables
    289 
    290       const double *sol = csi -> getColSolution ();
    291 
    292       for (int j=0; j<ncols; j++)
    293         if ((j!=index) && (j!=objind)) {
    294 
    295           if (sol [j] <= Lb (j) + COUENNE_EPS) chg_bds [j].setLowerBits(t_chg_bounds::EXACT);
    296           if (sol [j] >= Ub (j) - COUENNE_EPS) chg_bds [j].setUpperBits(t_chg_bounds::EXACT);
    297         }
    298 
    299301#if 0
    300302      // re-check considering reduced costs (more expensive)
     
    343345      nImprov++;
    344346    }
     347
     348    // Check value and bounds of other variables. Do this regardless
     349    // of the i-th variable being tightened in this iteration
     350
     351    const double *sol = csi -> getColSolution ();
     352
     353    for (int j=0; j<ncols; j++)
     354      if ((j!=index) && (j!=objind)) {
     355
     356        if (sol [j] <= Lb (j) + COUENNE_EPS) {
     357
     358          // if (!(chg_bds [j].lower() & t_chg_bounds::EXACT) && (!has_updated))
     359          //   printf ("told you it would be useful: l_i: %g\n", j, Lb (j));
     360         
     361          chg_bds [j].setLowerBits(t_chg_bounds::EXACT);
     362        }
     363
     364        if (sol [j] >= Ub (j) - COUENNE_EPS) {
     365
     366          // if (!(chg_bds [j].upper() & t_chg_bounds::EXACT) && (!has_updated))
     367          //   printf ("told you it would be useful: u_i: %g\n", j, Ub (j));
     368         
     369          chg_bds [j].setUpperBits(t_chg_bounds::EXACT);
     370        }
     371      }
     372
     373    // check for bounds using dual info
     374
     375    int result = obbt_supplement (csi, index, sense);
    345376
    346377    // if we solved the problem on the objective function's
  • trunk/Couenne/src/convex/generateCuts.cpp

    r736 r786  
    217217    // run AFTER initial FBBT...
    218218    if (problem_ -> doFBBT () &&
    219         (! (problem_ -> boundTightening (chg_bds, babInfo))))
     219        (! (problem_ -> boundTightening (chg_bds, info, babInfo))))
    220220          jnlst_ -> Printf (J_STRONGWARNING, J_CONVEXIFYING,
    221221            "Couenne: WARNING, first convexification is infeasible\n");
     
    406406    if (problem_ -> doFBBT () &&
    407407        //(info.pass <= 0) && // do it in subsequent rounds too
    408         (! (problem_ -> boundTightening (chg_bds, babInfo))))
     408        (! (problem_ -> boundTightening (chg_bds, info, babInfo))))
    409409      throw infeasible;
    410410
  • trunk/Couenne/src/convex/operators/exprMul-upperHull.cpp

    r774 r786  
    1616namespace Couenne {
    1717
    18 //#define DEBUG
     18  //#define DEBUG
    1919
    2020int findIntersection (CouNumber  x0, CouNumber  y0,
     
    4848  // See forthcoming paper for explanation ;-)
    4949  //
     50  // Summarized version available at
     51  //
     52  // http://www.neos-guide.org/NEOS/images/a/aa/ViewsAndNews-22%281%29.pdf
    5053
    5154#ifdef DEBUG
     
    176179    if (yUpp > yu) { // upper intersect is North; place it within box
    177180      yUpp = yu;
    178       xUpp = wu / yu;
     181      xUpp = CoinMin (xu, wu / yu);
    179182    } else {         //                    East
    180183      xUpp = xu;
    181       yUpp = wu / xu;
     184      yUpp = CoinMin (yu, wu / xu);
    182185    }
    183186
     
    203206    if (yLow < yl) { // upper intersect is South; place it within box
    204207      yLow = yl;
    205       xLow = wl / yl;
     208      xLow = CoinMax (xl, wl / yl);
    206209    } else {         //                    West
    207210      xLow = xl;
    208       yLow = wl / xl;
     211      yLow = CoinMax (yl, wl / xl);
    209212    }
    210213
    211214    // find intersection on low curve on half line through new point and (x0,y0)
    212     if (findIntersection (xLow, yLow, x0, y0, NULL, &wu, NULL, NULL, &xUpp, &yUpp))
    213       return;
    214 
    215     if (xUpp > xu || yUpp > yu) // McCormick's suffice
    216       return;
    217 
    218     // Otherwise, lift inequality on UPPER point
    219     if (genMulCoeff (xLow, yLow, xUpp, yUpp, 1, cX, cY, cW))
     215    if ((findIntersection (xLow, yLow, x0, y0, NULL, &wu, NULL, NULL, &xUpp, &yUpp)) ||
     216        (xUpp > xu || yUpp > yu)  ||                           // McCormick's suffice
     217        (genMulCoeff (xLow, yLow, xUpp, yUpp, 1, cX, cY, cW))) // Otherwise, lift inequality on UPPER point
    220218      return;
    221219
     
    235233
    236234    if (yLow < yl) { // upper intersect is South; place it within box
    237       yLow = yl;      xLow = wl / yl;
    238       yUpp = yu;      xUpp = wu / yu;
     235      yLow = yl;      xLow = CoinMax (xl, wl / yl);
     236      yUpp = yu;      xUpp = CoinMin (xu, wu / yu);
    239237    } else {         //                    West
    240       xLow = xl;      yLow = wl / xl;
    241       xUpp = xu;      yUpp = wu / xu;
     238      xLow = xl;      yLow = CoinMax (yl, wl / xl);
     239      xUpp = xu;      yUpp = CoinMax (yu, wu / xu);
    242240    }
    243241
     
    259257    // and the upper (lower) point
    260258
    261     CouNumber xLow2, yLow2, xUpp2, yUpp2;
    262 
    263     if ((findIntersection (xLow, yLow, x0, y0, NULL, &wu, NULL,   NULL,   &xUpp2, &yUpp2) || genMulCoeff (xLow, yLow, xUpp, yUpp, 0, cX, cY, cW)) &&
    264         (findIntersection (xUpp, yUpp, x0, y0, &wl, NULL, &xLow2, &yLow2, NULL,   NULL)   || genMulCoeff (xLow, yLow, xUpp, yUpp, 1, cX, cY, cW)))
     259    CouNumber xLow2 = xLow, yLow2 = yLow, xUpp2, yUpp2;
     260
     261    if ((findIntersection (xLow, yLow, x0, y0, NULL, &wu, NULL,   NULL,   &xUpp2, &yUpp2) || genMulCoeff (xLow,  yLow,  xUpp2, yUpp2, 0, cX, cY, cW)) &&
     262        (findIntersection (xUpp, yUpp, x0, y0, &wl, NULL, &xLow2, &yLow2, NULL,   NULL)   || genMulCoeff (xLow2, yLow2, xUpp,  yUpp, 1, cX, cY, cW)))
    265263      return;
    266264
     
    270268#endif
    271269
    272     c0X = cX * xLow; //   c0Xp = cXp * xUpp;
    273     c0Y = cY * yLow; //   c0Yp = cYp * yUpp;
    274     c0W = cW * wl;   //   c0Wp = cWp * wu; 
     270    c0X = cX * xLow2; //   c0Xp = cXp * xUpp;
     271    c0Y = cY * yLow2; //   c0Yp = cYp * yUpp;
     272    c0W = cW * wl;    //   c0Wp = cWp * wu; 
    275273
    276274//     twoIneqs = true;
  • trunk/Couenne/src/expression/Makefile.am

    r765 r786  
    9393        -I`$(CYGPATH_W) $(srcdir)/../util` \
    9494        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     95        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    9596        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    9697        -I`$(CYGPATH_W) $(srcdir)/../problem/depGraph` \
  • trunk/Couenne/src/expression/Makefile.in

    r765 r786  
    408408        -I`$(CYGPATH_W) $(srcdir)/../util` \
    409409        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     410        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    410411        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    411412        -I`$(CYGPATH_W) $(srcdir)/../problem/depGraph` \
  • trunk/Couenne/src/interfaces/BonCouenneInterface.cpp

    r752 r786  
    115115      }
    116116
    117       if (!(p -> boundTightening (chg_bds, NULL))) {
     117      if (!(p -> boundTightening (chg_bds, CglTreeInfo (), NULL))) {
    118118        is_feasible = false;
    119119        *messageHandler() << "Couenne: Warning, tightened NLP is infeasible" << CoinMessageEol;
  • trunk/Couenne/src/main/BonCouenne.cpp

    r732 r786  
    147147    else {
    148148      printf ("main(): ### ERROR: Can not get CouenneCutGenerator\n");
    149       exit (1);
     149      exit (-1);
    150150    }
    151151
  • trunk/Couenne/src/problem/CouenneProblem.hpp

    r773 r786  
    66 * Purpose: define the class CouenneProblem
    77 *
    8  * (C) Carnegie-Mellon University, 2006-10.
     8 * (C) Carnegie-Mellon University, 2006-11.
    99 * This file is licensed under the Eclipse Public License (EPL)
    1010 */
     
    127127  class CouenneObjective;
    128128  class GlobalCutOff;
     129  class CouenneBTPerfIndicator;
    129130  //  class JnlstPtr;
    130131  //  class ConstJnlstPtr;
     
    317318  /// constant value of the objective if no variable is declared in it
    318319  double constObjVal_;
     320
     321  /// Performance indicator for FBBT -- to be moved away from
     322  /// CouenneProblem when we do it with FBBT
     323  CouenneBTPerfIndicator *perfIndicator_;
    319324
    320325 public:
     
    499504
    500505  /// tighten bounds using propagation, implied bounds and reduced costs
    501   bool boundTightening (t_chg_bounds *,
     506  bool boundTightening (t_chg_bounds *,
     507                        const CglTreeInfo info,
    502508                        Bonmin::BabInfo * = NULL) const;
    503509
  • trunk/Couenne/src/problem/CouenneProblemConstructors.cpp

    r768 r786  
    55 * Purpose: Constructors and destructors of the class CouenneProblem
    66 *
    7  * (C) Carnegie-Mellon University, 2009-10.
     7 * (C) Carnegie-Mellon University, 2009-11.
    88 * This file is licensed under the Eclipse Public License (EPL)
    99 */
     
    3535
    3636#include "CouenneRecordBestSol.hpp"
     37#include "CouenneBTPerfIndicator.hpp"
    3738
    3839using namespace Couenne;
     
    8081  max_fbbt_iter_ (MAX_FBBT_ITER),
    8182  orbitalBranching_ (false),
    82   constObjVal_ (0.) {
     83  constObjVal_ (0.),
     84  perfIndicator_ (new CouenneBTPerfIndicator (this, "FBBT")) {
    8385
    8486  double now = CoinCpuTime ();
     
    155157  max_fbbt_iter_  (p.max_fbbt_iter_),
    156158  orbitalBranching_  (p.orbitalBranching_),
    157   constObjVal_       (p.constObjVal_) {
     159  constObjVal_       (p.constObjVal_),
     160  perfIndicator_     (new CouenneBTPerfIndicator (*(p.perfIndicator_))) {
    158161
    159162  for (int i=0; i < p.nVars (); i++)
     
    207210CouenneProblem::~CouenneProblem () {
    208211
     212  if (perfIndicator_)
     213    delete perfIndicator_;
     214
    209215  // delete optimal solution (if any)
    210216  if (optimum_)
  • trunk/Couenne/src/problem/CouenneSymmetry.cpp

    r725 r786  
    348348  std::vector<std::vector<int> > *new_orbits = nauty_info->getOrbits();
    349349
    350   //printf("There were %d orbits and %d generators\n",
    351   //nauty_info->getNumOrbits(),
    352   //nauty_info->getNumGenerators());
     350  printf("There were %d orbits and %d generators\n",
     351  nauty_info->getNumOrbits(),
     352  nauty_info->getNumGenerators());
    353353
    354354  int nNonTrivialOrbits = 0;
  • trunk/Couenne/src/problem/Makefile.am

    r765 r786  
    6161        -I`$(CYGPATH_W) $(srcdir)/../expression/operators` \
    6262        -I`$(CYGPATH_W) $(srcdir)/../standardize` \
     63        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    6364        -I`$(CYGPATH_W) $(srcdir)/../branch` \
    6465        -I`$(CYGPATH_W) $(srcdir)/../problem` \
  • trunk/Couenne/src/problem/Makefile.in

    r765 r786  
    360360        -I`$(CYGPATH_W) $(srcdir)/../expression/operators` \
    361361        -I`$(CYGPATH_W) $(srcdir)/../standardize` -I`$(CYGPATH_W) \
     362        $(srcdir)/../bound_tightening` -I`$(CYGPATH_W) \
    362363        $(srcdir)/../branch` -I`$(CYGPATH_W) $(srcdir)/../problem` \
    363364        -I`$(CYGPATH_W) $(srcdir)/../problem/depGraph` \
  • trunk/Couenne/src/problem/checkNLP.cpp

    r752 r786  
    306306        (Jnlst () -> ProduceOutput (Ipopt::J_ALL, J_PROBLEM))) {
    307307      printf ("%.12e %.12e %.12e ------------------------------\n",
    308               realObj, sol[objBody -> Index ()],
     308              realObj, objBody -> Index () >= 0 ? sol[objBody -> Index ()] : 0.,
    309309              (*(objBody -> Image () ? objBody -> Image () : objBody)) ());
    310310    }
  • trunk/Couenne/src/readnl/Makefile.am

    r765 r786  
    2929        -I`$(CYGPATH_W) $(srcdir)/../expression/operators` \
    3030        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     31        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    3132        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    3233        $(COUENNELIB_CFLAGS) $(ASL_CFLAGS)
  • trunk/Couenne/src/readnl/Makefile.in

    r765 r786  
    331331        -I`$(CYGPATH_W) $(srcdir)/../expression/operators` \
    332332        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     333        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    333334        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    334335        $(COUENNELIB_CFLAGS) $(ASL_CFLAGS)
  • trunk/Couenne/src/standardize/Makefile.am

    r765 r786  
    3232        -I`$(CYGPATH_W) $(srcdir)/../expression/operators` \
    3333        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     34        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    3435        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    3536        -I`$(CYGPATH_W) $(srcdir)/../problem/depGraph` \
  • trunk/Couenne/src/standardize/Makefile.in

    r765 r786  
    331331        -I`$(CYGPATH_W) $(srcdir)/../expression/operators` \
    332332        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     333        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    333334        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    334335        -I`$(CYGPATH_W) $(srcdir)/../problem/depGraph` \
  • trunk/Couenne/src/util/Makefile.am

    r765 r786  
    2525        -I`$(CYGPATH_W) $(srcdir)/../convex` \
    2626        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     27        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    2728        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    2829        -I`$(CYGPATH_W) $(srcdir)/../util` \
  • trunk/Couenne/src/util/Makefile.in

    r765 r786  
    321321        -I`$(CYGPATH_W) $(srcdir)/../convex` \
    322322        -I`$(CYGPATH_W) $(srcdir)/../branch` \
     323        -I`$(CYGPATH_W) $(srcdir)/../bound_tightening` \
    323324        -I`$(CYGPATH_W) $(srcdir)/../problem` \
    324325        -I`$(CYGPATH_W) $(srcdir)/../util` \
  • trunk/configure

    r758 r786  
    18661866if test x"$CXX" != x; then
    18671867  case "$CXX" in
     1868    clang* ) ;;
    18681869    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    18691870      if test x"$CC" = x; then
     
    26852686# Autoconf incorrectly concludes that cl recognises -g. It doesn't.
    26862687case "$CC" in
     2688  clang* ) ;;
    26872689  cl* | */cl* | CL* | */CL* )
    26882690    if test "$ac_cv_prog_cc_g" = yes ; then
     
    26972699coin_cc_is_cl=false
    26982700case "$CC" in
     2701  clang* ) ;;
    26992702  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    27002703    coin_cc_is_cl=true
     
    28002803      *-cygwin* | *-mingw*)
    28012804        case "$CC" in
     2805          clang* ) ;;
    28022806          cl* | */cl* | CL* | */CL*)
    28032807            coin_opt_cflags='-MT -O2'
     
    31213125# Correct the LD variable if we are using the MS or Intel-windows compiler
    31223126case "$CC" in
     3127  clang* ) ;;
    31233128  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    31243129    case $build in
     
    36143619# It seems that we need to cleanup something here for the Windows
    36153620case "$CXX" in
     3621  clang* ) ;;
    36163622  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    36173623    sed -e 's/^void exit (int);//' confdefs.h >> confdefs.hh
     
    36353641# Autoconf incorrectly concludes that cl recognises -g. It doesn't.
    36363642case "$CXX" in
     3643  clang* ) ;;
    36373644  cl* | */cl* | CL* | */CL* )
    36383645    if test "$ac_cv_prog_cxx_g" = yes ; then
     
    37383745      *-cygwin* | *-mingw*)
    37393746        case "$CXX" in
     3747          clang* ) ;;
    37403748          cl* | */cl* | CL* | */CL*)
    37413749            # The MT and MTd options are mutually exclusive
     
    40674075# correct the LD variable in a mingw build with MS or intel compiler
    40684076case "$CXX" in
     4077  clang* ) ;;
    40694078  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    40704079    case $build in
     
    43234332
    43244333# Provide some information about the compiler.
    4325 echo "$as_me:4325:" \
     4334echo "$as_me:4334:" \
    43264335     "checking for Fortran 77 compiler version" >&5
    43274336ac_compiler=`set X $ac_compile; echo $2`
     
    65896598*-*-irix6*)
    65906599  # Find out which ABI we are using.
    6591   echo '#line 6591 "configure"' > conftest.$ac_ext
     6600  echo '#line 6600 "configure"' > conftest.$ac_ext
    65926601  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
    65936602  (eval $ac_compile) 2>&5
     
    85538562   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    85548563   -e 's:$: $lt_compiler_flag:'`
    8555    (eval echo "\"\$as_me:8555: $lt_compile\"" >&5)
     8564   (eval echo "\"\$as_me:8564: $lt_compile\"" >&5)
    85568565   (eval "$lt_compile" 2>conftest.err)
    85578566   ac_status=$?
    85588567   cat conftest.err >&5
    8559    echo "$as_me:8559: \$? = $ac_status" >&5
     8568   echo "$as_me:8568: \$? = $ac_status" >&5
    85608569   if (exit $ac_status) && test -s "$ac_outfile"; then
    85618570     # The compiler can only warn and ignore the option if not recognized
     
    88218830   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    88228831   -e 's:$: $lt_compiler_flag:'`
    8823    (eval echo "\"\$as_me:8823: $lt_compile\"" >&5)
     8832   (eval echo "\"\$as_me:8832: $lt_compile\"" >&5)
    88248833   (eval "$lt_compile" 2>conftest.err)
    88258834   ac_status=$?
    88268835   cat conftest.err >&5
    8827    echo "$as_me:8827: \$? = $ac_status" >&5
     8836   echo "$as_me:8836: \$? = $ac_status" >&5
    88288837   if (exit $ac_status) && test -s "$ac_outfile"; then
    88298838     # The compiler can only warn and ignore the option if not recognized
     
    89258934   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    89268935   -e 's:$: $lt_compiler_flag:'`
    8927    (eval echo "\"\$as_me:8927: $lt_compile\"" >&5)
     8936   (eval echo "\"\$as_me:8936: $lt_compile\"" >&5)
    89288937   (eval "$lt_compile" 2>out/conftest.err)
    89298938   ac_status=$?
    89308939   cat out/conftest.err >&5
    8931    echo "$as_me:8931: \$? = $ac_status" >&5
     8940   echo "$as_me:8940: \$? = $ac_status" >&5
    89328941   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    89338942   then
     
    1127011279  lt_status=$lt_dlunknown
    1127111280  cat > conftest.$ac_ext <<EOF
    11272 #line 11272 "configure"
     11281#line 11281 "configure"
    1127311282#include "confdefs.h"
    1127411283
     
    1137011379  lt_status=$lt_dlunknown
    1137111380  cat > conftest.$ac_ext <<EOF
    11372 #line 11372 "configure"
     11381#line 11381 "configure"
    1137311382#include "confdefs.h"
    1137411383
     
    1371413723   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1371513724   -e 's:$: $lt_compiler_flag:'`
    13716    (eval echo "\"\$as_me:13716: $lt_compile\"" >&5)
     13725   (eval echo "\"\$as_me:13725: $lt_compile\"" >&5)
    1371713726   (eval "$lt_compile" 2>conftest.err)
    1371813727   ac_status=$?
    1371913728   cat conftest.err >&5
    13720    echo "$as_me:13720: \$? = $ac_status" >&5
     13729   echo "$as_me:13729: \$? = $ac_status" >&5
    1372113730   if (exit $ac_status) && test -s "$ac_outfile"; then
    1372213731     # The compiler can only warn and ignore the option if not recognized
     
    1381813827   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1381913828   -e 's:$: $lt_compiler_flag:'`
    13820    (eval echo "\"\$as_me:13820: $lt_compile\"" >&5)
     13829   (eval echo "\"\$as_me:13829: $lt_compile\"" >&5)
    1382113830   (eval "$lt_compile" 2>out/conftest.err)
    1382213831   ac_status=$?
    1382313832   cat out/conftest.err >&5
    13824    echo "$as_me:13824: \$? = $ac_status" >&5
     13833   echo "$as_me:13833: \$? = $ac_status" >&5
    1382513834   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1382613835   then
     
    1538815397   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1538915398   -e 's:$: $lt_compiler_flag:'`
    15390    (eval echo "\"\$as_me:15390: $lt_compile\"" >&5)
     15399   (eval echo "\"\$as_me:15399: $lt_compile\"" >&5)
    1539115400   (eval "$lt_compile" 2>conftest.err)
    1539215401   ac_status=$?
    1539315402   cat conftest.err >&5
    15394    echo "$as_me:15394: \$? = $ac_status" >&5
     15403   echo "$as_me:15403: \$? = $ac_status" >&5
    1539515404   if (exit $ac_status) && test -s "$ac_outfile"; then
    1539615405     # The compiler can only warn and ignore the option if not recognized
     
    1549215501   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1549315502   -e 's:$: $lt_compiler_flag:'`
    15494    (eval echo "\"\$as_me:15494: $lt_compile\"" >&5)
     15503   (eval echo "\"\$as_me:15503: $lt_compile\"" >&5)
    1549515504   (eval "$lt_compile" 2>out/conftest.err)
    1549615505   ac_status=$?
    1549715506   cat out/conftest.err >&5
    15498    echo "$as_me:15498: \$? = $ac_status" >&5
     15507   echo "$as_me:15507: \$? = $ac_status" >&5
    1549915508   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1550015509   then
     
    1769917708   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1770017709   -e 's:$: $lt_compiler_flag:'`
    17701    (eval echo "\"\$as_me:17701: $lt_compile\"" >&5)
     17710   (eval echo "\"\$as_me:17710: $lt_compile\"" >&5)
    1770217711   (eval "$lt_compile" 2>conftest.err)
    1770317712   ac_status=$?
    1770417713   cat conftest.err >&5
    17705    echo "$as_me:17705: \$? = $ac_status" >&5
     17714   echo "$as_me:17714: \$? = $ac_status" >&5
    1770617715   if (exit $ac_status) && test -s "$ac_outfile"; then
    1770717716     # The compiler can only warn and ignore the option if not recognized
     
    1796717976   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1796817977   -e 's:$: $lt_compiler_flag:'`
    17969    (eval echo "\"\$as_me:17969: $lt_compile\"" >&5)
     17978   (eval echo "\"\$as_me:17978: $lt_compile\"" >&5)
    1797017979   (eval "$lt_compile" 2>conftest.err)
    1797117980   ac_status=$?
    1797217981   cat conftest.err >&5
    17973    echo "$as_me:17973: \$? = $ac_status" >&5
     17982   echo "$as_me:17982: \$? = $ac_status" >&5
    1797417983   if (exit $ac_status) && test -s "$ac_outfile"; then
    1797517984     # The compiler can only warn and ignore the option if not recognized
     
    1807118080   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1807218081   -e 's:$: $lt_compiler_flag:'`
    18073    (eval echo "\"\$as_me:18073: $lt_compile\"" >&5)
     18082   (eval echo "\"\$as_me:18082: $lt_compile\"" >&5)
    1807418083   (eval "$lt_compile" 2>out/conftest.err)
    1807518084   ac_status=$?
    1807618085   cat out/conftest.err >&5
    18077    echo "$as_me:18077: \$? = $ac_status" >&5
     18086   echo "$as_me:18086: \$? = $ac_status" >&5
    1807818087   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1807918088   then
     
    2081120820    *-cygwin* | *-mingw*)
    2081220821       case "$CXX" in
     20822    clang* )
     20823      # we assume that libtool patches for CLANG are the same as for GNU compiler - correct???
     20824      { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5
     20825echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;}
     20826      sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
     20827          -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \
     20828          -e 's|libext="lib"|libext="a"|' \
     20829      libtool > conftest.bla
     20830      ;;
    2081320831    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2081420832      { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5
     
    2082620844          -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \
    2082720845      libtool > conftest.bla
    20828 
    20829       mv conftest.bla libtool
    20830       chmod 755 libtool
    2083120846      ;;
    2083220847    *)
     
    2083720852          -e 's|libext="lib"|libext="a"|' \
    2083820853      libtool > conftest.bla
    20839 
    20840       mv conftest.bla libtool
    20841       chmod 755 libtool
    2084220854      ;;
    2084320855  esac
     20856  mv conftest.bla libtool
     20857  chmod 755 libtool
     20858
    2084420859      ;;
    2084520860    *-darwin*)
     
    2291322928fi
    2291422929case "$CC" in
     22930  clang* ) ;;
    2291522931  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2291622932    coin_link_input_cmd=cp ;;
     
    2292622942
    2292722943  case "$CC" in
     22944    clang* )
     22945         LIBEXT=a ;;
    2292822946    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2292922947         LIBEXT=lib ;;
Note: See TracChangeset for help on using the changeset viewer.