In this example it seems that the tandem of HornerForm
and Experimentat
OptimizeExpression` will do something useful.
Here is the multiplication count for the expression. After applying HornerForm
it is about the same.
In[61]:= Total[Cases[myexpression, a_Times :> Length[a], Infinity]]
Out[61]= 521
But...
oex =
Experimental`OptimizeExpression[HornerForm@myexpression,
"OptimizationLevel" -> 2, "OptimizationSymbol" -> C$];
Now it is cut more than in half.
In[65]:= Total[Cases[oex, a_Times :> Length[a], Infinity]]
Out[65]= 238
This might or might not work well for other examples.