author jfa Fri, 25 Nov 2005 15:58:28 +0000 (15:58 +0000) committer jfa Fri, 25 Nov 2005 15:58:28 +0000 (15:58 +0000)

index ecceafd..a768b6c 100644 (file)
else

-  isOK = (load >> a);
+  // read second stored value. It can be two variants here:
+  // 1. If the hypothesis is stored in old format (nb.segments and scale factor),
+  //    we wait here the scale factor, which is double.
+  // 2. If the hypothesis is stored in new format
+  //    (nb.segments, distr.type, some other params.),
+  //    we wait here the ditribution type, which is integer
+  double scale_factor;
+  isOK = (load >> scale_factor);
+  a = (int)scale_factor;
+
+  // try to interprete ditribution type,
+  // supposing that this hypothesis was written in the new format
if (isOK)
{
if (a < DT_Regular || a > DT_ExprFunc)
if (isOK)
_scaleFactor = b;
else
+      {
+        // this can mean, that the hypothesis is stored in old format
+        _distrType = DT_Regular;
+        _scaleFactor = scale_factor;
+      }
}
break;
case DT_TabFunc:
{
if (isOK)
+      {
_table.resize(a, 0.);
+        int i;
+        for (i=0; i < _table.size(); i++)
+        {
+          isOK = (load >> b);
+          if (isOK)
+            _table[i] = b;
+          else
+        }
+      }
else
-      int i;
-      for (i=0; i < _table.size(); i++)
{
-        isOK = (load >> b);
-        if (isOK)
-          _table[i] = b;
-        else
+        // this can mean, that the hypothesis is stored in old format
+        _distrType = DT_Regular;
+        _scaleFactor = scale_factor;
}
}
break;