Exemple #1
0
OsiConicCut * OsiConicCut::clone() const {
  OsiConicCut * new_cut = new OsiConicCut();
  new_cut->setConeMembers(coneMembers(), coneSize());
  new_cut->setConeType(coneType());
  new_cut->setCutRow(cutRowPtr(), numCutRows(), coneSize());
  new_cut->setCutRowLb(cutRowLb(), numCutRows());
  new_cut->setCutRowUb(cutRowUb(), numCutRows());
  new_cut->setCutCol(cutCol());
  new_cut->setCutColLb(cutColLb(), numCutCols());
  new_cut->setCutColUb(cutColUb(), numCutCols());
  new_cut->setEffectiveness(effectiveness());
  new_cut->setGloballyValid(globallyValid());
}
Exemple #2
0
void Tattempt::updateEffectiveness() {
  if (mistakes.size()) {
    qreal effSum = 0.0;
    m_sum = 0;
    for (int i = 0; i < mistakes.size(); ++i) {
      m_sum |= mistakes[i];
      if (mistakes[i] == TQAunit::e_correct)
          effSum += CORRECT_EFF;
      else if (!(mistakes[i] & TQAunit::e_wrongNote) && !(mistakes[i] & TQAunit::e_wrongPos))
          effSum += NOTBAD_EFF;
    }
    m_effectiveness = effSum / (qreal)mistakes.size();
  } else
    m_effectiveness = 0.0;
  if (effectiveness() >= 50.0) {
    if (m_sum & TQAunit::e_wrongNote) { // subtract e_wrongNote if summary has sufficient effectiveness
      m_sum = m_sum - TQAunit::e_wrongNote; // attempt was successful
      m_sum |= TQAunit::e_littleNotes; // but has little valid notes
    }
  }
}