packages feed

coinor-clp-0.0: cbits/support.cpp

#define CLP_EXTERN_C
#include "coin/ClpSimplex.hpp"
#include "support.h"


ClpPlusMinusOneMatrix *
  Clp_newPlusMinusOneMatrix (
    int numberRows,
    int numberColumns,
    bool columnOrdered,
    const int *indices,
    const CoinBigIndex *startPositive,
    const CoinBigIndex *startNegative
  ) {

  return
    new ClpPlusMinusOneMatrix (
      numberRows, numberColumns,
      columnOrdered, indices,
      startPositive, startNegative
    );
}

void
  Clp_deletePlusMinusOneMatrix (
    ClpPlusMinusOneMatrix *matrix
  ) {
  delete matrix;
}

void
  Clp_loadProblemFromMatrix (
    Clp_Simplex *model,
    const ClpMatrixBase *matrix,
    const double *collb,
    const double *colub,
    const double *obj,
    const double *rowlb,
    const double *rowub,
    const double *rowObjective
  ) {

  model->model_->loadProblem (
      *matrix,
      collb, colub, obj,
      rowlb, rowub, rowObjective
    );
}


CoinPackedMatrix *
  Clp_newCoinPackedMatrix (
    const bool colordered,
    const int minor,
    const int major,
    const CoinBigIndex numels,
    const double *elem,
    const int *ind,
    const CoinBigIndex *start,
    const int *len
  ) {
  return
    new CoinPackedMatrix (
      colordered,
      minor, major, numels,
      elem, ind, start, len
    );
}

void
  Clp_deleteCoinPackedMatrix (
    CoinPackedMatrix *matrix
  ) {
  delete matrix;
}

void
  Clp_loadProblemFromCoinMatrix (
    Clp_Simplex *model,
    const CoinPackedMatrix *matrix,
    const double *collb,
    const double *colub,
    const double *obj,
    const double *rowlb,
    const double *rowub,
    const double *rowObjective
  ) {

  model->model_->loadProblem (
      *matrix,
      collb, colub, obj,
      rowlb, rowub, rowObjective
    );
}


void Clp_dumpMatrix (Clp_Simplex *model) {
  model->model_->matrix()->dumpMatrix ();
}