-
- {
- struct decimal i = interval;
-
- decimal_int_multiply (&i, n_ticks - 1);
-
- decimal_add (&i, &lower);
-
- /* i now contains the upper bound minus one tick */
- assert (decimal_to_double (&i) < high);
-
- decimal_add (&i, &interval);
-
- assert (decimal_to_double (&i) >= high);
+ else
+ assert (n_ticks > 4);
+
+ assert (n_ticks <= 10);
+
+#if 0
+ printf("%s: high: %lg, low %lg, interval: %lg, nticks: %d\n",
+ __FUNCTION__, high, low, interval, n_ticks);
+ dump_scale (lower, interval, n_ticks);
+#endif
+
+ if ((high - low) > 10 * DBL_MIN) {
+ assert (lower <= low);
+ assert (lower + interval > low);
+ assert (lower + n_ticks * interval < high);
+ assert (lower + (n_ticks + 1) * interval >= high);