├── .gitignore ├── bundled ├── asl-extra │ ├── arith.h.i686-linux-gnu │ ├── arith.h.arm-linux-gnueabihf │ ├── arith.h.i686-w64-mingw32 │ ├── arith.h.aarch64-linux-gnu │ ├── arith.h.x86_64-linux-gnu │ ├── arith.h.x86_64-w64-mingw32 │ ├── arith.h.powerpc64le-linux-gnu │ ├── arith.h.x86_64-apple-darwin14 │ ├── no_benchmark.patch │ └── expr-info.cc ├── mumps-extra │ └── quiet.diff └── cbc-extra │ └── no_lp.patch ├── README.md └── LICENSE.md /.gitignore: -------------------------------------------------------------------------------- 1 | products/ 2 | downloads/ 3 | build/ 4 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.i686-linux-gnu: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define QNaN0 0x0 4 | #define QNaN1 0xfff80000 5 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.arm-linux-gnueabihf: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define Double_Align 4 | #define QNaN0 0x0 5 | #define QNaN1 0x7ff80000 6 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.i686-w64-mingw32: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define Double_Align 4 | #define QNaN0 0x0 5 | #define QNaN1 0xfff80000 6 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.aarch64-linux-gnu: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define Long int 4 | #define Intcast (int)(long) 5 | #define Double_Align 6 | #define X64_bit_pointers 7 | #define QNaN0 0x0 8 | #define QNaN1 0x7ff80000 9 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.x86_64-linux-gnu: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define Long int 4 | #define Intcast (int)(long) 5 | #define Double_Align 6 | #define X64_bit_pointers 7 | #define QNaN0 0x0 8 | #define QNaN1 0xfff80000 9 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.x86_64-w64-mingw32: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define Long int 4 | #define Intcast (int)(long) 5 | #define Double_Align 6 | #define X64_bit_pointers 7 | #define QNaN0 0x0 8 | #define QNaN1 0xfff80000 9 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.powerpc64le-linux-gnu: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define Long int 4 | #define Intcast (int)(long) 5 | #define Double_Align 6 | #define X64_bit_pointers 7 | #define QNaN0 0x0 8 | #define QNaN1 0x7ff80000 9 | -------------------------------------------------------------------------------- /bundled/asl-extra/arith.h.x86_64-apple-darwin14: -------------------------------------------------------------------------------- 1 | #define IEEE_8087 2 | #define Arith_Kind_ASL 1 3 | #define Long int 4 | #define Intcast (int)(long) 5 | #define Double_Align 6 | #define X64_bit_pointers 7 | #define QNaN0 0x0 8 | #define QNaN1 0x7ff80000 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CbcBuilder 2 | 3 | [![Build Status](https://travis-ci.org/juan-pablo-vielma/CbcBuilder.svg?branch=master)](https://travis-ci.org/juan-pablo-vielma/CbcBuilder) 4 | 5 | This repository builds binary artifacts for the CbcBuilder project. Binary artifacts are automatically uploaded to 6 | [this repository's GitHub releases page](https://github.com/juan-pablo-vielma/CbcBuilder/releases) whenever a tag is created 7 | on this repository. 8 | 9 | This repository was created using [BinaryBuilder.jl](https://github.com/JuliaPackaging/BinaryBuilder.jl) 10 | -------------------------------------------------------------------------------- /bundled/asl-extra/no_benchmark.patch: -------------------------------------------------------------------------------- 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt 2 | index 523faa7f..be88636d 100644 3 | --- a/CMakeLists.txt 4 | +++ b/CMakeLists.txt 5 | @@ -381,13 +381,6 @@ foreach (module ${MP_MODULES}) 6 | endif () 7 | endforeach () 8 | 9 | -if (MP_VARIADIC_TEMPLATES AND HAVE_ATOMIC) 10 | - option(BENCHMARK_ENABLE_TESTING 11 | - "Enable testing of the benchmark library." OFF) 12 | - add_subdirectory(thirdparty/benchmark) 13 | - enable_cxx11(benchmark) 14 | -endif () 15 | - 16 | enable_testing() 17 | add_subdirectory(test) 18 | 19 | -------------------------------------------------------------------------------- /bundled/mumps-extra/quiet.diff: -------------------------------------------------------------------------------- 1 | index af0b62a..55e372e 100644 2 | --- a/MUMPS/src/dmumps_part1.F 3 | +++ b/MUMPS/src/dmumps_part1.F 4 | @@ -104,16 +104,6 @@ C matrix in assembled format (ICNTL(5)=0, and ICNTL(18) $\neq$ 3), 5 | MPG = id%ICNTL(3) 6 | PROK = ((MP.GT.0).AND.(id%ICNTL(4).GE.3)) 7 | PROKG = ( MPG .GT. 0 .and. id%MYID .eq. MASTER ) 8 | - IF (PROKG) THEN 9 | - IF (id%ICNTL(5) .NE. 1) THEN 10 | - WRITE(MPG,'(A,I4,I12,I15)') 11 | - & 'Entering DMUMPS driver with JOB, N, NZ =', JOB,N,NZ 12 | - ELSE 13 | - WRITE(MPG,'(A,I4,I12,I15)') 14 | - & 'Entering DMUMPS driver with JOB, N, NELT =', JOB,N 15 | - & ,NELT 16 | - ENDIF 17 | - ENDIF 18 | ELSE 19 | MPG = 0 20 | PROK = .FALSE. 21 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | 2 | Permission is hereby granted, free of charge, to any person obtaining a copy 3 | of this software and associated documentation files (the "Software"), to deal 4 | in the Software without restriction, including without limitation the rights 5 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 6 | copies of the Software, and to permit persons to whom the Software is 7 | furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all 10 | copies or substantial portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 15 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 17 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 18 | SOFTWARE. 19 | -------------------------------------------------------------------------------- /bundled/cbc-extra/no_lp.patch: -------------------------------------------------------------------------------- 1 | --- Cbc_C_Interface.cpp.orig 2 | +++ Cbc_C_Interface.cpp 3 | @@ -840,43 +840,27 @@ 4 | } 5 | 6 | COINLIBAPI int COINLINKAGE 7 | -Cbc_solve(Cbc_Model *model) 8 | +Cbc_solve(Cbc_Model * model) 9 | { 10 | - Cbc_flush( model ); 11 | - 12 | - OsiSolverInterface *solver = model->solver_; 13 | - if (solver->getNumIntegers() == 0 || model->relax_ == 1) { 14 | - if (solver->basisIsAvailable()) { 15 | - solver->resolve(); 16 | - } else { 17 | - solver->initialSolve(); 18 | + const char prefix[] = "Cbc_C_Interface::Cbc_solve(): "; 19 | + int result = 0; 20 | + std::vector argv; 21 | + argv.push_back("Cbc_C_Interface"); 22 | + for (size_t i = 0; i < model->cmdargs_.size(); i++) { 23 | + argv.push_back(model->cmdargs_[i].c_str()); 24 | } 25 | + argv.push_back("-solve"); 26 | + argv.push_back("-quit"); 27 | + try { 28 | + 29 | + CbcMain1((int)argv.size(), &argv[0], *model->model_); 30 | + } catch (CoinError e) { 31 | + printf("%s ERROR: %s::%s, %s\n", prefix, 32 | + e.className().c_str(), e.methodName().c_str(), e.message().c_str()); 33 | + } 34 | + result = model->model_->status(); 35 | 36 | - if (solver->isProvenOptimal()) 37 | - return 0; 38 | - 39 | - return 1; 40 | - } 41 | - 42 | - const char prefix[] = "Cbc_C_Interface::Cbc_solve(): "; 43 | - int result = 0; 44 | - std::vector< const char * > argv; 45 | - argv.push_back("Cbc_C_Interface"); 46 | - for (size_t i = 0; i < model->cmdargs_.size(); i++) { 47 | - argv.push_back(model->cmdargs_[i].c_str()); 48 | - } 49 | - argv.push_back("-solve"); 50 | - argv.push_back("-quit"); 51 | - try { 52 | - 53 | - CbcMain1((int)argv.size(), &argv[0], *model->model_, NULL, *model->cbcData); 54 | - } catch (CoinError e) { 55 | - printf("%s ERROR: %s::%s, %s\n", prefix, 56 | - e.className().c_str(), e.methodName().c_str(), e.message().c_str()); 57 | - } 58 | - result = model->model_->status(); 59 | - 60 | - return result; 61 | + return result; 62 | } 63 | 64 | COINLIBAPI void COINLINKAGE Cbc_addCutCallback( 65 | @@ -1039,9 +1023,6 @@ 66 | COINLIBAPI int COINLINKAGE 67 | Cbc_isAbandoned(Cbc_Model *model) 68 | { 69 | - if (Cbc_getNumIntegers(model) == 0 || model->relax_ == 1) 70 | - return model->solver_->isAbandoned(); 71 | - else 72 | return model->model_->isAbandoned(); 73 | } 74 | 75 | @@ -1049,36 +1030,24 @@ 76 | COINLIBAPI int COINLINKAGE 77 | Cbc_isProvenOptimal(Cbc_Model *model) 78 | { 79 | - if (Cbc_getNumIntegers(model) == 0 || model->relax_ == 1) 80 | - return model->solver_->isProvenOptimal(); 81 | - else 82 | return model->model_->isProvenOptimal(); 83 | } 84 | 85 | COINLIBAPI int COINLINKAGE 86 | Cbc_isProvenInfeasible(Cbc_Model *model) 87 | { 88 | - if (Cbc_getNumIntegers(model) == 0 || model->relax_ == 1) 89 | - return (model->solver_->isProvenDualInfeasible() || model->solver_->isProvenPrimalInfeasible()); 90 | - else 91 | return model->model_->isProvenInfeasible(); 92 | } 93 | 94 | COINLIBAPI double COINLINKAGE 95 | Cbc_getObjValue(Cbc_Model *model) 96 | { 97 | - if (Cbc_getNumIntegers(model) == 0 || model->relax_ == 1) 98 | - return (model->solver_->getObjValue()); 99 | - 100 | return model->model_->getObjValue(); 101 | } 102 | 103 | COINLIBAPI const double *COINLINKAGE 104 | Cbc_getReducedCost(Cbc_Model *model) 105 | { 106 | - if (Cbc_getNumIntegers(model) == 0 || model->relax_ == 1) 107 | - return (model->solver_->getReducedCost()); 108 | - 109 | return model->model_->getReducedCost(); 110 | } 111 | 112 | @@ -1103,9 +1072,6 @@ 113 | COINLIBAPI const double *COINLINKAGE 114 | Cbc_getColSolution(Cbc_Model *model) 115 | { 116 | - if (Cbc_getNumIntegers(model) == 0 || model->relax_ == 1) 117 | - return (model->solver_->getColSolution()); 118 | - 119 | return model->model_->getColSolution(); 120 | } 121 | 122 | -------------------------------------------------------------------------------- /bundled/asl-extra/expr-info.cc: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. Do not edit! 2 | 3 | #include "mp/common.h" 4 | #include "expr-writer.h" 5 | 6 | const mp::internal::OpCodeInfo mp::internal::OpCodeInfo::INFO[] = { 7 | {expr::ADD, expr::FIRST_BINARY}, 8 | {expr::SUB, expr::FIRST_BINARY}, 9 | {expr::MUL, expr::FIRST_BINARY}, 10 | {expr::DIV, expr::FIRST_BINARY}, 11 | {expr::MOD, expr::FIRST_BINARY}, 12 | {expr::POW, expr::FIRST_BINARY}, 13 | {expr::LESS, expr::FIRST_BINARY}, 14 | {expr::UNKNOWN, expr::UNKNOWN}, 15 | {expr::UNKNOWN, expr::UNKNOWN}, 16 | {expr::UNKNOWN, expr::UNKNOWN}, 17 | {expr::UNKNOWN, expr::UNKNOWN}, 18 | {expr::MIN, expr::FIRST_VARARG}, 19 | {expr::MAX, expr::FIRST_VARARG}, 20 | {expr::FLOOR, expr::FIRST_UNARY}, 21 | {expr::CEIL, expr::FIRST_UNARY}, 22 | {expr::ABS, expr::FIRST_UNARY}, 23 | {expr::MINUS, expr::FIRST_UNARY}, 24 | {expr::UNKNOWN, expr::UNKNOWN}, 25 | {expr::UNKNOWN, expr::UNKNOWN}, 26 | {expr::UNKNOWN, expr::UNKNOWN}, 27 | {expr::OR, expr::FIRST_BINARY_LOGICAL}, 28 | {expr::AND, expr::FIRST_BINARY_LOGICAL}, 29 | {expr::LT, expr::FIRST_RELATIONAL}, 30 | {expr::LE, expr::FIRST_RELATIONAL}, 31 | {expr::EQ, expr::FIRST_RELATIONAL}, 32 | {expr::UNKNOWN, expr::UNKNOWN}, 33 | {expr::UNKNOWN, expr::UNKNOWN}, 34 | {expr::UNKNOWN, expr::UNKNOWN}, 35 | {expr::GE, expr::FIRST_RELATIONAL}, 36 | {expr::GT, expr::FIRST_RELATIONAL}, 37 | {expr::NE, expr::FIRST_RELATIONAL}, 38 | {expr::UNKNOWN, expr::UNKNOWN}, 39 | {expr::UNKNOWN, expr::UNKNOWN}, 40 | {expr::UNKNOWN, expr::UNKNOWN}, 41 | {expr::NOT, expr::NOT}, 42 | {expr::IF, expr::IF}, 43 | {expr::UNKNOWN, expr::UNKNOWN}, 44 | {expr::TANH, expr::FIRST_UNARY}, 45 | {expr::TAN, expr::FIRST_UNARY}, 46 | {expr::SQRT, expr::FIRST_UNARY}, 47 | {expr::SINH, expr::FIRST_UNARY}, 48 | {expr::SIN, expr::FIRST_UNARY}, 49 | {expr::LOG10, expr::FIRST_UNARY}, 50 | {expr::LOG, expr::FIRST_UNARY}, 51 | {expr::EXP, expr::FIRST_UNARY}, 52 | {expr::COSH, expr::FIRST_UNARY}, 53 | {expr::COS, expr::FIRST_UNARY}, 54 | {expr::ATANH, expr::FIRST_UNARY}, 55 | {expr::ATAN2, expr::FIRST_BINARY}, 56 | {expr::ATAN, expr::FIRST_UNARY}, 57 | {expr::ASINH, expr::FIRST_UNARY}, 58 | {expr::ASIN, expr::FIRST_UNARY}, 59 | {expr::ACOSH, expr::FIRST_UNARY}, 60 | {expr::ACOS, expr::FIRST_UNARY}, 61 | {expr::SUM, expr::SUM}, 62 | {expr::TRUNC_DIV, expr::FIRST_BINARY}, 63 | {expr::PRECISION, expr::FIRST_BINARY}, 64 | {expr::ROUND, expr::FIRST_BINARY}, 65 | {expr::TRUNC, expr::FIRST_BINARY}, 66 | {expr::COUNT, expr::COUNT}, 67 | {expr::NUMBEROF, expr::NUMBEROF}, 68 | {expr::NUMBEROF_SYM, expr::NUMBEROF_SYM}, 69 | {expr::ATLEAST, expr::FIRST_LOGICAL_COUNT}, 70 | {expr::ATMOST, expr::FIRST_LOGICAL_COUNT}, 71 | {expr::PLTERM, expr::PLTERM}, 72 | {expr::IFSYM, expr::IFSYM}, 73 | {expr::EXACTLY, expr::FIRST_LOGICAL_COUNT}, 74 | {expr::NOT_ATLEAST, expr::FIRST_LOGICAL_COUNT}, 75 | {expr::NOT_ATMOST, expr::FIRST_LOGICAL_COUNT}, 76 | {expr::NOT_EXACTLY, expr::FIRST_LOGICAL_COUNT}, 77 | {expr::FORALL, expr::FIRST_ITERATED_LOGICAL}, 78 | {expr::EXISTS, expr::FIRST_ITERATED_LOGICAL}, 79 | {expr::IMPLICATION, expr::IMPLICATION}, 80 | {expr::IFF, expr::FIRST_BINARY_LOGICAL}, 81 | {expr::ALLDIFF, expr::FIRST_PAIRWISE}, 82 | {expr::NOT_ALLDIFF, expr::FIRST_PAIRWISE}, 83 | {expr::POW_CONST_EXP, expr::FIRST_BINARY}, 84 | {expr::POW2, expr::FIRST_UNARY}, 85 | {expr::POW_CONST_BASE, expr::FIRST_BINARY}, 86 | {expr::CALL, expr::CALL}, 87 | {expr::NUMBER, expr::NUMBER}, 88 | {expr::STRING, expr::STRING}, 89 | {expr::VARIABLE, expr::VARIABLE} 90 | }; 91 | 92 | const mp::internal::ExprInfo mp::internal::ExprInfo::INFO[] = { 93 | {-1, "unknown"}, 94 | {80, "number"}, 95 | {82, "variable"}, 96 | {-1, "common expression"}, 97 | {16, "unary -"}, 98 | {15, "abs"}, 99 | {13, "floor"}, 100 | {14, "ceil"}, 101 | {39, "sqrt"}, 102 | {77, "^2"}, 103 | {44, "exp"}, 104 | {43, "log"}, 105 | {42, "log10"}, 106 | {41, "sin"}, 107 | {40, "sinh"}, 108 | {46, "cos"}, 109 | {45, "cosh"}, 110 | {38, "tan"}, 111 | {37, "tanh"}, 112 | {51, "asin"}, 113 | {50, "asinh"}, 114 | {53, "acos"}, 115 | {52, "acosh"}, 116 | {49, "atan"}, 117 | {47, "atanh"}, 118 | {0, "+"}, 119 | {1, "-"}, 120 | {6, "less"}, 121 | {2, "*"}, 122 | {3, "/"}, 123 | {55, "div"}, 124 | {4, "mod"}, 125 | {5, "^"}, 126 | {78, "^"}, 127 | {76, "^"}, 128 | {48, "atan2"}, 129 | {56, "precision"}, 130 | {57, "round"}, 131 | {58, "trunc"}, 132 | {35, "if"}, 133 | {64, "piecewise-linear term"}, 134 | {79, "function call"}, 135 | {11, "min"}, 136 | {12, "max"}, 137 | {54, "sum"}, 138 | {60, "numberof"}, 139 | {61, "symbolic numberof"}, 140 | {59, "count"}, 141 | {80, "bool"}, 142 | {34, "!"}, 143 | {20, "||"}, 144 | {21, "&&"}, 145 | {73, "<==>"}, 146 | {22, "<"}, 147 | {23, "<="}, 148 | {24, "="}, 149 | {28, ">="}, 150 | {29, ">"}, 151 | {30, "!="}, 152 | {62, "atleast"}, 153 | {63, "atmost"}, 154 | {66, "exactly"}, 155 | {67, "!atleast"}, 156 | {68, "!atmost"}, 157 | {69, "!exactly"}, 158 | {72, "==>"}, 159 | {71, "exists"}, 160 | {70, "forall"}, 161 | {74, "alldiff"}, 162 | {75, "!alldiff"}, 163 | {81, "string"}, 164 | {65, "symbolic if"} 165 | }; 166 | 167 | const mp::prec::Precedence mp::expr::PrecInfo::INFO[] = { 168 | prec::UNKNOWN, 169 | prec::PRIMARY, 170 | prec::PRIMARY, 171 | prec::PRIMARY, 172 | prec::UNARY, 173 | prec::CALL, 174 | prec::CALL, 175 | prec::CALL, 176 | prec::CALL, 177 | prec::EXPONENTIATION, 178 | prec::CALL, 179 | prec::CALL, 180 | prec::CALL, 181 | prec::CALL, 182 | prec::CALL, 183 | prec::CALL, 184 | prec::CALL, 185 | prec::CALL, 186 | prec::CALL, 187 | prec::CALL, 188 | prec::CALL, 189 | prec::CALL, 190 | prec::CALL, 191 | prec::CALL, 192 | prec::CALL, 193 | prec::ADDITIVE, 194 | prec::ADDITIVE, 195 | prec::ADDITIVE, 196 | prec::MULTIPLICATIVE, 197 | prec::MULTIPLICATIVE, 198 | prec::MULTIPLICATIVE, 199 | prec::MULTIPLICATIVE, 200 | prec::EXPONENTIATION, 201 | prec::EXPONENTIATION, 202 | prec::EXPONENTIATION, 203 | prec::CALL, 204 | prec::CALL, 205 | prec::CALL, 206 | prec::CALL, 207 | prec::CONDITIONAL, 208 | prec::CALL, 209 | prec::CALL, 210 | prec::CALL, 211 | prec::CALL, 212 | prec::ITERATIVE, 213 | prec::CALL, 214 | prec::CALL, 215 | prec::CALL, 216 | prec::PRIMARY, 217 | prec::NOT, 218 | prec::LOGICAL_OR, 219 | prec::LOGICAL_AND, 220 | prec::IFF, 221 | prec::RELATIONAL, 222 | prec::RELATIONAL, 223 | prec::RELATIONAL, 224 | prec::RELATIONAL, 225 | prec::RELATIONAL, 226 | prec::RELATIONAL, 227 | prec::CALL, 228 | prec::CALL, 229 | prec::CALL, 230 | prec::CALL, 231 | prec::CALL, 232 | prec::CALL, 233 | prec::IMPLICATION, 234 | prec::CALL, 235 | prec::CALL, 236 | prec::CALL, 237 | prec::CALL, 238 | prec::PRIMARY, 239 | prec::CONDITIONAL 240 | }; 241 | --------------------------------------------------------------------------------