/**
  * @param ssf
  * @param data
  */
 @Override
 public void prepare(final IMSsf ssf, final IMSsfData data) {
   if (m_var.isOpen()) {
     m_fdata.checkSize(data.getCount());
   } else {
     super.clear();
     m_fdata.init(ssf.getStateDim(), data.getVarsCount(), data.getCount());
   }
   m_var.prepare(ssf, data);
 }
 /**
  * @param t
  * @param state
  */
 @Override
 public void save(final int t, final MState state) {
   m_var.save(t, state);
   m_fdata.save(t, state);
   DataBlock diag = state.F.diagonal();
   for (int i = 0; i < state.E.getLength(); ++i) {
     double r = diag.get(i);
     if (r != 0) {
       addStd(state.E.get(i), r);
     }
   }
 }
 /** @param start */
 public void saveAll(int start) {
   m_var.setSavingK(true);
   m_var.setSavingP(true);
   m_var.setStartSaving(start);
 }
 /** @param start */
 public void setStartSaving(int start) {
   m_var.setStartSaving(start);
 }
 @Override
 public void clear() {
   super.clear();
   m_fdata.clear();
   m_var.clear();
 }