+
+ for (size_t k = 0; k < nest->n; k++)
+ if (k != nest->scale_idx)
+ nest->areas[at][nest->n_areas[at]++] = k;
+
+ int n_drop;
+ switch (at)
+ {
+ case CTAT_SUBTABLE:
+#define L PIVOT_AXIS_LAYER
+ n_drop = (t->clabels_from_axis == L ? a != L
+ : t->clabels_to_axis != L ? (a == t->clabels_from_axis ? 2 : 0)
+ : a == t->clabels_from_axis ? -1
+ : a != L);
+#undef L
+ break;
+
+ case CTAT_LAYERROW:
+ case CTAT_LAYERCOL:
+ n_drop = a == ata && t->label_axis[ata] == atb;
+ break;
+
+ case CTAT_ROW:
+ case CTAT_COL:
+ n_drop = (a == ata ? t->label_axis[ata] == atb
+ : a != atb ? 0
+ : t->clabels_from_axis == atb ? -1
+ : t->clabels_to_axis != atb ? 1
+ : 0);
+ break;
+
+ case CTAT_LAYER:
+ case CTAT_TABLE:
+ n_drop = 0;
+ break;
+ }
+
+ if (n_drop < 0)