示例#1
0
// Open dsm files, which are possibly zipped
void openDsmFile(igzstream& dsm_stream, const std::string& file_name)
{
   // Check for a .gz extension
   if (!std::regex_match(file_name, gzipped))
   {
      // Warn
      std::cerr << "WARNING: Input file " + file_name
         + " is not gzip compressed, which is recommended\n";
   }

   dsm_stream.open(file_name.c_str()); // Push binary file into buffer

   // Set stream buffer of istream to the one just opened, and check ok
   if (!dsm_stream.good())
   {
      throw std::runtime_error("Could not open kmer file " + file_name + "\n");
   }

}
示例#2
0
 ixstream_t(const char *name) 
 {
   string fname = name;
   int len = fname.size();
   z = fname.substr(len-3) == ".gz";
   if (z)
     fz.open(name);
   else
     fn.open(name);
 }
示例#3
0
文件: dbseq.cpp 项目: zyndagj/BSMAP
ref_loc_t RefSeq::LoadNextSeq(igzstream &fin) {
	char ch[1000]; char c; string s;
	if(!param.gz_ref) return 0;
	fin>>c; if(fin.eof()) return 0;
	string::iterator z=_seq.begin();
	_length=0; 
	fin>>_name; fin.getline(ch, 1000);
	while(!fin.eof()) {
		fin>>c; if(fin.eof()) break;
		fin.unget(); if(c=='>') break;
		fin>>s;
		if(_length+s.size()>=param.max_dbseq_size) {
			param.max_dbseq_size+=param.append_dbseq_size;
			_seq.resize(param.max_dbseq_size);
			z=_seq.begin()+_length;
			//cout<<"_seq size: "<<param.max_dbseq_size<<endl;
		}
		copy(s.begin(), s.end(), z);
		z+=s.size(); _length+=s.size();
	}
	return _length;
}
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
   }
}