-opening(x, y, iter) = erosions(x, y, iter) : dilations(x, y, iter);
-closing(x, y, iter) = dilations(x, y, iter) : erosions(x, y, iter);
+dilations_column(x, y, iter) = _ : vectorize(y) : (iter, ((cross : ((0, 1 : prefix), _, _ : select2) : dilation_column(x, y))~_), (iter - 1)) : rdtable : serialize;
+
+erosions_column(x, y, iter) = _ : vectorize(y) : (iter, ((cross : ((0, 1 : prefix), _, _ : select2) : erosion_column(x, y))~_), (iter - 1)) : rdtable : serialize;
+
+dilations_square(x, y, iter) = _ : vectorize(y) : (iter, ((cross : ((0, 1 : prefix), _, _ : select2) : dilation_square(x, y))~_), (iter - 1)) : rdtable : serialize;
+
+erosions_square(x, y, iter) = _ : vectorize(y) : (iter, ((cross : ((0, 1 : prefix), _, _ : select2) : erosion_square(x, y))~_), (iter - 1)) : rdtable : serialize;
+
+opening_line(x, y, iter) = erosions_line(x, y, iter) : dilations_line(x, y, iter);
+closing_line(x, y, iter) = dilations_line(x, y, iter) : erosions_line(x, y, iter);
+
+opening_column(x, y, iter) = erosions_column(x, y, iter) : dilations_column(x, y, iter);
+closing_column(x, y, iter) = dilations_column(x, y, iter) : erosions_column(x, y, iter);
+
+opening_square(x, y, iter) = erosions_square(x, y, iter) : dilations_square(x, y, iter);
+closing_square(x, y, iter) = dilations_square(x, y, iter) : erosions_square(x, y, iter);