15 #include "CoinHelperFunctions.hpp" 
   20 using namespace Couenne;
 
   65   for(
unsigned int i=0; i<other.
listInt.size(); i++) {
 
   74   if(other.
sol != NULL) {
 
   82   if (other.
modSol != NULL) {
 
  115                                         const int givenCard) {
 
  122       printf(
"### ERROR: CouenneRecordBestSol::setInitIsInt(): cardInitDom: %d  givenCard: %d\n", 
cardInitDom, givenCard);
 
  129       printf(
"### ERROR: CouenneRecordBestSol::setInitIsInt(): cardInitDom: %d  givenCard: %d\n", 
cardInitDom, givenCard);
 
  133   CoinCopyN(givenIsInt, givenCard, 
initIsInt);
 
  136   for(
int i=0; i<givenCard; i++) {
 
  145                                         const int givenCard) {
 
  151       printf(
"### ERROR: CouenneRecordBestSol::setInitDomLb(): cardInitDom: %d  givenCard: %d\n", 
cardInitDom, givenCard);
 
  158       printf(
"### ERROR: CouenneRecordBestSol::setInitDomLb(): cardInitDom: %d  givenCard: %d\n", 
cardInitDom, givenCard);
 
  162   CoinCopyN(givenLb, givenCard, 
initDomLb);
 
  167                                         const int givenCard) {
 
  173       printf(
"### ERROR: CouenneRecordBestSol::setInitDomUb(): cardInitDom: %d  givenCard: %d\n", 
cardInitDom, givenCard);
 
  180       printf(
"### ERROR: CouenneRecordBestSol::setInitDomUb(): cardInitDom: %d  givenCard: %d\n", 
cardInitDom, givenCard);
 
  184   CoinCopyN(givenUb, givenCard, 
initDomUb);
 
  199                                   const double givenMaxViol) {
 
  202     sol = 
new double[givenCard];
 
  204       modSol = 
new double[givenCard];
 
  212         double *newSol = 
new double [givenCard];
 
  213         CoinCopyN (givenSol, givenCard, newSol);
 
  219   CoinCopyN(givenSol, givenCard, 
sol);
 
  223   printf(
"CouenneRecordBestSol::setSol(): New solution set\n");
 
  232   printf(
"CouenneRecordBestSol::setVal(): set to %10.6f\n", givenVal);
 
  241                            const double givenVal, 
const double givenMaxViol) {
 
  243     setSol(givenSol, givenCard, givenMaxViol);
 
  251     printf(
" CouenneRecordBestSol::update(): ### ERROR: modSol == NULL\n");
 
  260                                          const double *solB, 
const double solBVal, 
const double solBMaxViol, 
const bool solBIsFeas,
 
  262                                          const double precision) {
 
  266       if(solAVal < solBVal - precision) {
 
  284           if(solAMaxViol < solBMaxViol) {
 
  307     case 0: 
update(solA, cardSol, solAVal, solAMaxViol); 
break;
 
  308     case 1: 
update(solB, cardSol, solBVal, solBMaxViol); 
break;
 
  310     default: printf(
"CouenneRecordBestSol::compareAndSave(): ### ERROR: retval: %d\n",
 
  321     modSol = 
new double[expectedCard];
 
  325       printf(
"CouenneRecordBestSol::getModSol(): ### ERROR: expectedCard: %d  cardModSol: %d", expectedCard, 
cardModSol);
 
  334                               const int givenModCard, 
 
  335                               const double givenModVal, 
 
  336                               const double givenModMaxViol) {
 
  338   if(givenModSol != NULL) {
 
  341       modSol = 
new double[givenModCard];
 
  348         double *newModSol = 
new double [givenModCard];
 
  349         CoinCopyN (givenModSol, givenModCard, newModSol);
 
  355     CoinCopyN(givenModSol, givenModCard, 
modSol);
 
  365     fprintf(fsol, 
"%d\n", 
cardSol);
 
  367       fprintf(fsol, 
" %12.8f", 
sol[i]);
 
  372     if(cardSol % 10 != 0) {
 
  375     fprintf(fsol, 
"Value: %16.14g\n", 
val);
 
  376     fprintf(fsol, 
"Tolerance: %16.14g\n", 
maxViol);
 
std::vector< int > listInt
 
CouenneRecordBestSol()
Constructor. 
 
void setVal(const double givenVal)
 
void setSol(const double *givenSol, const int givenCard, const double givenMaxViol)
 
void setInitIsInt(const bool *givenIsInt, const int givenCard)
 
void setInitDomUb(const CouNumber *givenUb, const int givenCard)
 
void printSol(FILE *fsol) const 
 
int compareAndSave(const double *solA, const double solAVal, const double solAMaxViol, const bool solAIsFeas, const double *solB, const double solBVal, const double solBMaxViol, const bool solBIsFeas, const int cardSol, const double precision)
 
double CouNumber
main number type in Couenne 
 
~CouenneRecordBestSol()
Destructor. 
 
void setCardSol(const int givenCard)
 
void setModSol(const double *givenModSol, const int givenModCard, const double givenModVal, const double givenModMaxViol)
 
double * getModSol(const int expectedCard)
 
void setHasSol(const bool givenHasSol)
 
void setInitDomLb(const CouNumber *givenLb, const int givenCard)