virtual void processNode(InternalNode &u) { int id=u.getID(); Array2D<double>::RowIn2DArray<double> row=L[id]; Taxon *taxon=static_cast<Taxon*>(u.getDecoration()); SubstitutionMatrix &leftPt=getMatrix(*taxon,LEFT); SubstitutionMatrix &rightPt=getMatrix(*taxon,RIGHT); int left=u.getLeft()->getID(), right=u.getRight()->getID(); for(Symbol a=0 ; a<numAlpha ; ++a) if(a!=gap) row[a]= processInternalChild(a,left,leftPt)+ processInternalChild(a,right,rightPt); }
void processNode(InternalNode &v) { Taxon &taxon=*static_cast<Taxon*>(v.getDecoration()); cout<<" LLL "<<taxon.getName()<<"="<<taxon.getSeqLen()<<endl; }
void processNode(InternalNode &v) { Taxon &taxon=*static_cast<Taxon*>(v.getDecoration()); //cout<<"extending "<<taxon.getName()<<" "<<taxon.getSeqLen()<<endl; taxon.getSeq()=Sequence(gapSymbol,taxon.getSeqLen()); }