- case MISSING_NONE:
- nm = 0;
- break;
- case MISSING_1:
- case MISSING_2:
- case MISSING_3:
- for (nm = 0; nm < v->miss_type; nm++)
- m[nm] = v->missing[nm].f;
- break;
- case MISSING_RANGE:
- m[0] = v->missing[0].f;
- m[1] = v->missing[1].f;
- nm = -2;
- break;
- case MISSING_LOW:
- m[0] = second_lowest_flt64;
- m[1] = v->missing[0].f;
- nm = -2;
- break;
- case MISSING_HIGH:
- m[0] = v->missing[0].f;
- m[1] = FLT64_MAX;
- nm = -2;
- break;
- case MISSING_RANGE_1:
- m[0] = v->missing[0].f;
- m[1] = v->missing[1].f;
- m[2] = v->missing[2].f;
- nm = -3;
- break;
- case MISSING_LOW_1:
- m[0] = second_lowest_flt64;
- m[1] = v->missing[0].f;
- m[2] = v->missing[1].f;
- nm = -3;
- break;
- case MISSING_HIGH_1:
- m[0] = v->missing[0].f;
- m[1] = second_lowest_flt64;
- m[2] = v->missing[1].f;
- nm = -3;
- break;
- default:
- assert (0);
- abort ();
+ double x, y;
+ mv_pop_range (&mv, &x, &y);
+ m[nm++] = x == LOWEST ? second_lowest_flt64 : x;
+ m[nm++] = y == HIGHEST ? FLT64_MAX : y;