Final efficiency test

  • StringFunction objects are as efficient as similar hardcoded objects, i.e.,
    class F:
        def __call__(self, x, y):
            return sin(x)*cos(y)
    
    but there is some overhead associated with the __call__ op.

  • Trick: extract the underlying method and call it directly
    f1 = F()
    f2 = f1.__call__
    # f2(x,y) is faster than f1(x,y)
    
    Can typically reduce CPU time from 1.3 to 1.0

  • Conclusion: now we can grab formulas from command-line, GUI, Web, overhead}

    previousnexttable of contents