highs/1.7.0

high performance serial and parallel solver for large scale sparse linear optimization problems
Recipe info
2024-03-11

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
highs/1.7.0

Using highs

Note

If you are a new Conan user, we recommend reading the how to consume packages tutorial.

If you need additional assistance, please ask a question in the Conan Center Index repository.

Simplest use case consuming this recipe and assuming CMake as your local build tool:

[requires]
highs/1.7.0
[generators]
CMakeDeps
CMakeToolchain
[layout]
cmake_layout
from conan import ConanFile
from conan.tools.cmake import cmake_layout


class ExampleRecipe(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    generators = "CMakeDeps", "CMakeToolchain"

    def requirements(self):
        self.requires("highs/1.7.0")

    def layout(self):
        cmake_layout(self)

Now, you can run this Conan command to locally install (and build if necessary) this recipe and its dependencies (if any):

$ conan install conanfile.txt --build=missing

Useful information to take into account to consume this library:


These are the main declared targets:

  • CMake package name(s): highs
  • CMake target name(s): highs::highs
  • pkg-config file name(s): highs.pc

A simple use case using the CMake file name and the global target:

# ...
find_package(highs REQUIRED)
# ...
target_link_libraries(YOUR_TARGET highs::highs)

These are all the available headers. Some of these ones might be non-public; make sure of it by visiting the highs homepage listed above:

#include "HConfig.h"
#include "Highs.h"
#include "filereaderlp/builder.hpp"
#include "filereaderlp/def.hpp"
#include "filereaderlp/model.hpp"
#include "filereaderlp/reader.hpp"
#include "interfaces/highs_c_api.h"
#include "io/Filereader.h"
#include "io/FilereaderEms.h"
#include "io/FilereaderLp.h"
#include "io/FilereaderMps.h"
#include "io/HMPSIO.h"
#include "io/HMpsFF.h"
#include "io/HighsIO.h"
#include "io/LoadOptions.h"
#include "ipm/IpxSolution.h"
#include "ipm/IpxWrapper.h"
#include "ipm/basiclu/basiclu.h"
#include "ipm/basiclu/basiclu_factorize.h"
#include "ipm/basiclu/basiclu_get_factors.h"
#include "ipm/basiclu/basiclu_initialize.h"
#include "ipm/basiclu/basiclu_obj_factorize.h"
#include "ipm/basiclu/basiclu_obj_free.h"
#include "ipm/basiclu/basiclu_obj_get_factors.h"
#include "ipm/basiclu/basiclu_obj_initialize.h"
#include "ipm/basiclu/basiclu_obj_solve_dense.h"
#include "ipm/basiclu/basiclu_obj_solve_for_update.h"
#include "ipm/basiclu/basiclu_obj_solve_sparse.h"
#include "ipm/basiclu/basiclu_obj_update.h"
#include "ipm/basiclu/basiclu_object.h"
#include "ipm/basiclu/basiclu_solve_dense.h"
#include "ipm/basiclu/basiclu_solve_for_update.h"
#include "ipm/basiclu/basiclu_solve_sparse.h"
#include "ipm/basiclu/basiclu_update.h"
#include "ipm/basiclu/lu_def.h"
#include "ipm/basiclu/lu_file.h"
#include "ipm/basiclu/lu_internal.h"
#include "ipm/basiclu/lu_list.h"
#include "ipm/ipx/basiclu_kernel.h"
#include "ipm/ipx/basiclu_wrapper.h"
#include "ipm/ipx/basis.h"
#include "ipm/ipx/conjugate_residuals.h"
#include "ipm/ipx/control.h"
#include "ipm/ipx/crossover.h"
#include "ipm/ipx/diagonal_precond.h"
#include "ipm/ipx/forrest_tomlin.h"
#include "ipm/ipx/guess_basis.h"
#include "ipm/ipx/indexed_vector.h"
#include "ipm/ipx/info.h"
#include "ipm/ipx/ipm.h"
#include "ipm/ipx/ipx_c.h"
#include "ipm/ipx/ipx_config.h"
#include "ipm/ipx/ipx_info.h"
#include "ipm/ipx/ipx_internal.h"
#include "ipm/ipx/ipx_parameters.h"
#include "ipm/ipx/ipx_status.h"
#include "ipm/ipx/iterate.h"
#include "ipm/ipx/kkt_solver.h"
#include "ipm/ipx/kkt_solver_basis.h"
#include "ipm/ipx/kkt_solver_diag.h"
#include "ipm/ipx/linear_operator.h"
#include "ipm/ipx/lp_solver.h"
#include "ipm/ipx/lu_factorization.h"
#include "ipm/ipx/lu_update.h"
#include "ipm/ipx/maxvolume.h"
#include "ipm/ipx/model.h"
#include "ipm/ipx/multistream.h"
#include "ipm/ipx/normal_matrix.h"
#include "ipm/ipx/power_method.h"
#include "ipm/ipx/sparse_matrix.h"
#include "ipm/ipx/sparse_utils.h"
#include "ipm/ipx/splitted_normal_matrix.h"
#include "ipm/ipx/starting_basis.h"
#include "ipm/ipx/symbolic_invert.h"
#include "ipm/ipx/timer.h"
#include "ipm/ipx/utils.h"
#include "lp_data/HConst.h"
#include "lp_data/HStruct.h"
#include "lp_data/HighsAnalysis.h"
#include "lp_data/HighsCallback.h"
#include "lp_data/HighsCallbackStruct.h"
#include "lp_data/HighsDebug.h"
#include "lp_data/HighsInfo.h"
#include "lp_data/HighsInfoDebug.h"
#include "lp_data/HighsLp.h"
#include "lp_data/HighsLpSolverObject.h"
#include "lp_data/HighsLpUtils.h"
#include "lp_data/HighsModelUtils.h"
#include "lp_data/HighsOptions.h"
#include "lp_data/HighsRanging.h"
#include "lp_data/HighsRuntimeOptions.h"
#include "lp_data/HighsSolution.h"
#include "lp_data/HighsSolutionDebug.h"
#include "lp_data/HighsSolve.h"
#include "lp_data/HighsStatus.h"
#include "mip/HighsCliqueTable.h"
#include "mip/HighsConflictPool.h"
#include "mip/HighsCutGeneration.h"
#include "mip/HighsCutPool.h"
#include "mip/HighsDebugSol.h"
#include "mip/HighsDomain.h"
#include "mip/HighsDomainChange.h"
#include "mip/HighsDynamicRowMatrix.h"
#include "mip/HighsGFkSolve.h"
#include "mip/HighsImplications.h"
#include "mip/HighsLpAggregator.h"
#include "mip/HighsLpRelaxation.h"
#include "mip/HighsMipSolver.h"
#include "mip/HighsMipSolverData.h"
#include "mip/HighsModkSeparator.h"
#include "mip/HighsNodeQueue.h"
#include "mip/HighsObjectiveFunction.h"
#include "mip/HighsPathSeparator.h"
#include "mip/HighsPrimalHeuristics.h"
#include "mip/HighsPseudocost.h"
#include "mip/HighsRedcostFixing.h"
#include "mip/HighsSearch.h"
#include "mip/HighsSeparation.h"
#include "mip/HighsSeparator.h"
#include "mip/HighsTableauSeparator.h"
#include "mip/HighsTransformedLp.h"
#include "model/HighsHessian.h"
#include "model/HighsHessianUtils.h"
#include "model/HighsModel.h"
#include "parallel/HighsBinarySemaphore.h"
#include "parallel/HighsCacheAlign.h"
#include "parallel/HighsCombinable.h"
#include "parallel/HighsMutex.h"
#include "parallel/HighsParallel.h"
#include "parallel/HighsRaceTimer.h"
#include "parallel/HighsSchedulerConstants.h"
#include "parallel/HighsSpinMutex.h"
#include "parallel/HighsSplitDeque.h"
#include "parallel/HighsTask.h"
#include "parallel/HighsTaskExecutor.h"
#include "pdlp/CupdlpWrapper.h"
#include "pdlp/cupdlp/cupdlp_cs.h"
#include "pdlp/cupdlp/cupdlp_defs.h"
#include "pdlp/cupdlp/cupdlp_linalg.h"
#include "pdlp/cupdlp/cupdlp_proj.h"
#include "pdlp/cupdlp/cupdlp_restart.h"
#include "pdlp/cupdlp/cupdlp_scaling_cuda.h"
#include "pdlp/cupdlp/cupdlp_solver.h"
#include "pdlp/cupdlp/cupdlp_step.h"
#include "pdlp/cupdlp/cupdlp_utils.c"
#include "pdqsort/pdqsort.h"
#include "presolve/HPresolve.h"
#include "presolve/HPresolveAnalysis.h"
#include "presolve/HighsPostsolveStack.h"
#include "presolve/HighsSymmetry.h"
#include "presolve/ICrash.h"
#include "presolve/ICrashUtil.h"
#include "presolve/ICrashX.h"
#include "presolve/PresolveComponent.h"
#include "qpsolver/a_asm.hpp"
#include "qpsolver/a_quass.hpp"
#include "qpsolver/basis.hpp"
#include "qpsolver/crashsolution.hpp"
#include "qpsolver/dantzigpricing.hpp"
#include "qpsolver/devexpricing.hpp"
#include "qpsolver/eventhandler.hpp"
#include "qpsolver/factor.hpp"
#include "qpsolver/feasibility.hpp"
#include "qpsolver/feasibility_highs.hpp"
#include "qpsolver/feasibility_quass.hpp"
#include "qpsolver/gradient.hpp"
#include "qpsolver/instance.hpp"
#include "qpsolver/matrix.hpp"
#include "qpsolver/perturbation.hpp"
#include "qpsolver/pricing.hpp"
#include "qpsolver/qpconst.hpp"
#include "qpsolver/quass.hpp"
#include "qpsolver/ratiotest.hpp"
#include "qpsolver/runtime.hpp"
#include "qpsolver/scaling.hpp"
#include "qpsolver/settings.hpp"
#include "qpsolver/snippets.hpp"
#include "qpsolver/statistics.hpp"
#include "qpsolver/steepestedgepricing.hpp"
#include "qpsolver/vector.hpp"
#include "simplex/HApp.h"
#include "simplex/HEkk.h"
#include "simplex/HEkkDual.h"
#include "simplex/HEkkDualRHS.h"
#include "simplex/HEkkDualRow.h"
#include "simplex/HEkkPrimal.h"
#include "simplex/HSimplex.h"
#include "simplex/HSimplexDebug.h"
#include "simplex/HSimplexNla.h"
#include "simplex/HSimplexReport.h"
#include "simplex/HighsSimplexAnalysis.h"
#include "simplex/SimplexConst.h"
#include "simplex/SimplexStruct.h"
#include "simplex/SimplexTimer.h"
#include "test/DevKkt.h"
#include "test/KktCh2.h"
#include "util/FactorTimer.h"
#include "util/HFactor.h"
#include "util/HFactorConst.h"
#include "util/HFactorDebug.h"
#include "util/HSet.h"
#include "util/HVector.h"
#include "util/HVectorBase.h"
#include "util/HighsCDouble.h"
#include "util/HighsComponent.h"
#include "util/HighsDataStack.h"
#include "util/HighsDisjointSets.h"
#include "util/HighsHash.h"
#include "util/HighsHashTree.h"
#include "util/HighsInt.h"
#include "util/HighsIntegers.h"
#include "util/HighsLinearSumBounds.h"
#include "util/HighsMatrixPic.h"
#include "util/HighsMatrixSlice.h"
#include "util/HighsMatrixUtils.h"
#include "util/HighsRandom.h"
#include "util/HighsRbTree.h"
#include "util/HighsSort.h"
#include "util/HighsSparseMatrix.h"
#include "util/HighsSparseVectorSum.h"
#include "util/HighsSplay.h"
#include "util/HighsTimer.h"
#include "util/HighsUtils.h"
#include "util/stringutil.h"
#include "zstr/strict_fstream.hpp"
#include "zstr/zstr.hpp"