/** * Function for initialization. */ GLUSboolean init(GLUSvoid) { try { RequreExtentions(); g_programCompute = ComputeProgram("../main/Compute.glsl"); computeTest(g_programCompute.program); return GLUS_TRUE; } catch(std::runtime_error e) { std::cerr << e.what() << std::endl; exit(-1); } catch(...) { std::cerr << "Unexpected Exception (init)!" << std::endl; exit(-1); } }
void SPxSolver::qualRedCostViolation(Real& maxviol, Real& sumviol) const { maxviol = 0.0; sumviol = 0.0; int i; // TODO: y = c_B * B^-1 => coSolve(y, c_B) // redcost = c_N - yA_N // solve system "x = e_i^T * B^-1" to get i'th row of B^-1 // DVector y( nRows() ); // basis().coSolve( x, spx->unitVector( i ) ); // DVector rdcost( nCols() ); #if 0 // un-const if (lastUpdate() > 0) factorize(); computePvec(); if (type() == ENTER) computeTest(); #endif if (type() == ENTER) { for(i = 0; i < dim(); ++i) { Real x = coTest()[i]; if (x < 0.0) { sumviol -= x; if (x < maxviol) maxviol = x; } } for(i = 0; i < coDim(); ++i) { Real x = test()[i]; if (x < 0.0) { sumviol -= x; if (x < maxviol) maxviol = x; } } } else { assert(type() == LEAVE); for(i = 0; i < dim(); ++i) { Real x = fTest()[i]; if (x < 0.0) { sumviol -= x; if (x < maxviol) maxviol = x; } } } maxviol *= -1; }