/*..........................................ContinuousHistory................*/
 public CharacterHistory clone(CharacterHistory s) {
   ContinuousHistory snew;
   if ((s == null) || (s.getNumNodes() != numNodes) || (!(s instanceof ContinuousHistory)))
     snew = new ContinuousHistory(getTaxa(), numNodes, (ContinuousData) data);
   else {
     snew = (ContinuousHistory) s;
     snew.data = data;
   }
   snew.setItemsAs(this);
   for (int i = 0; i < numNodes; i++) {
     for (int im = 0; im < getNumItems(); im++) snew.setState(i, im, getState(i, im));
   }
   snew.characterNumber = characterNumber;
   if (observedStates != null)
     snew.setObservedStates((CharacterDistribution) observedStates.getAdjustableClone());
   snew.setExplanation(getExplanation());
   return snew;
 }