void ScipParaDiffSubproblem::read( ParaComm *comm, igzstream &in, bool onlyBoundChanges ) { in.read((char *)&localInfoIncluded, sizeof(int)); in.read((char *)&nBoundChanges, sizeof(int)); indicesAmongSolvers = new int[nBoundChanges]; branchBounds = new SCIP_Real[nBoundChanges]; boundTypes = new SCIP_BOUNDTYPE[nBoundChanges]; for(int i = 0; i < nBoundChanges; i++ ) { in.read((char *)&indicesAmongSolvers[i], sizeof(int)); in.read((char *)&branchBounds[i], sizeof(SCIP_Real)); in.read((char *)&boundTypes[i], sizeof(int)); } if( !onlyBoundChanges ) { in.read((char *)&nLinearConss, sizeof(int)); if( nLinearConss > 0 ) { linearLhss = new SCIP_Real[nLinearConss]; linearRhss = new SCIP_Real[nLinearConss]; nLinearCoefs = new int[nLinearConss]; linearCoefs = new SCIP_Real*[nLinearConss]; idxLinearCoefsVars = new int*[nLinearConss]; for(int i = 0; i < nLinearConss; i++ ) { in.read((char *)&linearLhss[i], sizeof(SCIP_Real)); in.read((char *)&linearRhss[i], sizeof(SCIP_Real)); in.read((char *)&nLinearCoefs[i], sizeof(int)); assert(nLinearCoefs[i] > 0); linearCoefs[i] = new SCIP_Real[nLinearCoefs[i]]; idxLinearCoefsVars[i] = new int[nLinearCoefs[i]]; for(int j = 0; j < nLinearCoefs[i]; j++ ) { in.read((char *)&linearCoefs[i][j], sizeof(SCIP_Real)); in.read((char *)&idxLinearCoefsVars[i][j], sizeof(int)); } } } #if !( SCIP_VERSION == 211 && SCIP_SUBVERSION == 0 ) in.read((char *)&offset, sizeof(int)); in.read((char *)&nVarBranchStats, sizeof(int)); if( nVarBranchStats > 0 ) { idxLBranchStatsVars = new int[nVarBranchStats]; downpscost = new SCIP_Real[nVarBranchStats]; uppscost = new SCIP_Real[nVarBranchStats]; downvsids = new SCIP_Real[nVarBranchStats]; upvsids = new SCIP_Real[nVarBranchStats]; downconflen = new SCIP_Real[nVarBranchStats]; upconflen = new SCIP_Real[nVarBranchStats]; downinfer = new SCIP_Real[nVarBranchStats]; upinfer = new SCIP_Real[nVarBranchStats]; downcutoff = new SCIP_Real[nVarBranchStats]; upcutoff = new SCIP_Real[nVarBranchStats]; } for(int i = 0; i < nVarBranchStats; i++ ) { in.read((char *)&idxLBranchStatsVars[i], sizeof(int)); in.read((char *)&downpscost[i], sizeof(SCIP_Real)); in.read((char *)&uppscost[i], sizeof(SCIP_Real)); in.read((char *)&downvsids[i], sizeof(SCIP_Real)); in.read((char *)&upvsids[i], sizeof(SCIP_Real)); in.read((char *)&downconflen[i], sizeof(SCIP_Real)); in.read((char *)&upconflen[i], sizeof(SCIP_Real)); in.read((char *)&downinfer[i], sizeof(SCIP_Real)); in.read((char *)&upinfer[i], sizeof(SCIP_Real)); in.read((char *)&downcutoff[i], sizeof(SCIP_Real)); in.read((char *)&upcutoff[i], sizeof(SCIP_Real)); } #endif } else { assert( nLinearConss == 0); SCIP_Real dummyReal; int dummyInt; int nConss; in.read((char *)&nConss, sizeof(int)); if( nConss > 0 ) { for(int i = 0; i < nConss; i++ ) { int nCoefs; in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&nCoefs, sizeof(int)); assert(nCoefs > 0); for(int j = 0; j < nCoefs; j++ ) { in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyInt, sizeof(int)); } } } #if !( SCIP_VERSION == 211 && SCIP_SUBVERSION == 0 ) assert( nVarBranchStats == 0 ); int nStats; in.read((char *)&dummyInt, sizeof(int)); in.read((char *)&nStats, sizeof(int)); for(int i = 0; i < nStats; i++ ) { in.read((char *)&dummyInt, sizeof(int)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); in.read((char *)&dummyReal, sizeof(SCIP_Real)); } #endif } }