42 SimData::SimData() : PolyTable()
46 SimData::SimData( SimData && pt) : PolyTable(
std::move(pt))
50 SimData::SimData(
const SimData & rhs) : PolyTable(rhs)
69 SimData::SimData( std::vector<double> pos,
70 std::vector<std::string> data) : PolyTable(
std::move(pos),
75 SimData::SimData(
const SimData::const_site_iterator & beg,
76 const SimData::const_site_iterator &
end) : PolyTable(beg,end)
80 SimData & SimData::operator=(SimData && pt)
82 PolyTable::operator=(std::move(pt));
86 SimData & SimData::operator=(
const SimData & pt)
88 PolyTable::operator=(pt);
92 std::istream & SimData::read (std::istream & stream)
101 while(! stream.eof() )
104 if( ch ==
':' )
break;
109 std::vector<double> pos(S);
110 for(
unsigned i = 0 ; i < S ; ++i )
116 std::vector<std::string> haps;
117 while( !stream.eof() && char(stream.peek()) !=
'/' ) {
119 stream.read( &temp[0], std::streamsize(S*
sizeof(
char)) );
121 haps.emplace_back(std::move(temp));
123 this->assign( std::move(pos),
128 std::ostream & SimData::print(std::ostream &o)
const 134 o <<
"segsites: " << (*this).numsites() <<
'\n';
135 if (this->numsites()>0)
138 for(
unsigned i = 0 ; i < (*this).numsites() ; ++i)
140 o <<
" "<< (*this).position(i);
144 for(
unsigned i = 0 ; i < (*this).size() ; ++i)
146 if (i < (*this).size() - 1)
147 o << (*
this)[i] <<
'\n';
154 int SimData::fromfile( FILE * openedfile )
168 rv = fscanf(openedfile,
"%c",&ch);
169 if (rv == EOF)
return rv;
174 rv = fscanf(openedfile,
"%u",&ss);
175 if (rv == EOF)
return rv;
177 std::vector<double> _positions;
178 std::vector<std::string> _data;
182 _positions.resize(ss);
185 rv=fscanf(openedfile,
"%c",&ch);
186 if (rv == EOF)
return rv;
190 for (
unsigned i = 0; i < ss; ++i)
192 rv=fscanf(openedfile,
"%lf",&_positions[i]);
193 if (rv == EOF)
return rv;
195 char *seq =
new char[ss+2];
198 rv=fscanf(openedfile,
"%s",seq);
208 else if ( strcmp(seq,
"//") == 0)
214 _data.push_back( std::string(seq) );
221 _positions.resize(0);
225 this->assign(std::move(_positions),
The namespace in which this library resides.
Declaration of Sequence::SimData, a class representing polymorphism data from coalescent simulations ...
const_iterator end() const