codegen
cost
operation evaluation count
Calling Sequence
Parameters
Description
Examples
cost(x1, x2,...,xn)
xk
-
of type algebraic, name = algebraic, array(algebraic)
The cost command is used to compute an operation count for the numerical evaluation of the given arguments. The operation count is expressed as a polynomial in the names additions, multiplications, assignments, divisions, functions, storage, subscripts, integrals, products and assignments with non-negative integer coefficients.
Assignment of positive real values to these global names yields a weighted cost.
Note that the cost used for computing powers is as follows. For an integral power, repeated multiplication is assumed. For a general power it is assumed to be computed using exp and ln.
The command with(codegen,cost) allows the use of the abbreviated form of this command.
withcodegen,cost,optimize:
a≔x+x2+x3+x4:
costa
3additions+6multiplications
a≔converta,horner:
3multiplications+3additions
Using numeric values to express the relative costs of various operations, you can derive a numerical measure of the cost of an expression or procedure. This can then be used to evaluate whether or not to use an optimized version.
rp≔randpolyx,y,z:
p≔unapplyrp,x,y,z:
po1≔optimizep:po2≔optimizep,:-tryhard:
c≔costp:
c1≔costpo1:
c2≔costpo2:
c−c1;c−c2;c1−c2
4multiplications−5storage−5assignments
8multiplications−2storage−2assignments
3storage+3assignments+4multiplications
V≔storage=2,additions=1,assignments=1,functions=100,multiplications=20:
evalc,V
424
evalc1,V
359
evalc2,V
270
See Also
codegen[optimize]
Download Help Document