Math::SymbolicX::NoSimplification - Turn off Math::Symbolic simplification
use Math::SymbolicX::NoSimplification qw(:all); # ... code that uses Math::Symbolic ... # Won't use the builtin simplification routines. # ... do_simplify(); # ... code that uses Math::Symbolic ... # Will use the builtin simplification routines. # ... dont_simplify(); # ... you get the idea ...
This module offers facilities to turn off the builtin Math::Symbolic simplification routines and replace them with routines that just clone the objects. You may want to do this in cases where the simplification routines fail to simplify the Math::Symbolic trees and waste a lot of CPU time. (For example, calculating the first order Taylor polynomial of a moderately complex test function was sped up by 100% on my machine.)
A word of caution, however: If you turn off the simplification routines, some procedures may produce very, very large trees. One such procedure would be the consecutive application of many derivatives to a product without intermediate simplification. This would yield exponential growth of nodes. (And may, in fact, still do if you keep the simplification heuristics turned on because most expressions cannot be simplified significantly.)
Just load the module to turn off simplification. To turn it back on, you can call
Math::SymbolicX::NoSimplification-do_simplify()> and to turn it off again, you may call
Math::SymbolicX::NoSimplification-do_simplify()>. Since the module's name is quite long, you may choose to import
dont_simplify() into your namespace using standard
Exporter semantics. See below.
Turn simplification back on.
Turn simplification off.
None by default, but you may choose to import either the routines
dont_simplify() or both by using the
:all exporter group. See also: Exporter
Steffen Mueller, <firstname.lastname@example.org>
Please send feedback, bug reports, and support requests to the Math::Symbolic support mailing list: math-symbolic-support at lists dot sourceforge dot net. Please consider letting us know how you use Math::Symbolic. Thank you.
If you're interested in helping with the development or extending the module's functionality, please contact the developers' mailing list: math-symbolic-develop at lists dot sourceforge dot net.
Copyright (C) 2005-2006 Steffen Mueller
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
New versions of this module can be found on http://steffen-mueller.net or CPAN.