Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
0.5, 0.6, 0.7, 0.8, 1.0, 1.1, 1.2, 1.3, 1.4
-
None
Description
Below is an example of concatenated math transform. An "Affine" operation appears twice: before and after the "Passthrough" operation:
Concat_MT[ Param_MT["Affine", Parameter["num_row", 5], Parameter["num_col", 5], Parameter["elt_0_0", 0.025], Parameter["elt_0_4", 3.0125], Parameter["elt_1_1", -0.025], Parameter["elt_1_4", 44.9875]], PassThrough_MT[2, 1, Param_MT["Interpolation 1D", Parameter["values", {2.0, 10.0, 20.0, 35.0, 50.0, 75.0, 100.0}]]], Param_MT["Affine", Parameter["num_row", 5], Parameter["num_col", 5], Parameter["elt_3_3", 3600000.0], Parameter["elt_3_4", 1.5127128E12]]]
The last "Affine" operates only on passthrough coordinates. Consequently it could be moved before the "Passthrouh" operation, which would allow concatenation with the first "Affine" operation. It should not change the operation result, but can improve performance.
This optimization is possible only for "Affine" that operate only on pass-through coordinates. If the last "Affine" does not comply with this condition, maybe the first "Affine" does. So we will need to test both.