math::symbolic::custom::defaultdumpers(3pm) [debian man page]
Math::Symbolic::Custom::DefaultDumpers(3pm) User Contributed Perl Documentation Math::Symbolic::Custom::DefaultDumpers(3pm)NAME
Math::Symbolic::Custom::DefaultDumpers - Default Math::Symbolic output routines
SYNOPSIS
use Math::Symbolic qw/parse_from_string/;
$term = parse_from_string(...);
my ($sub, $leftover_trees) = $term->to_sub();
DESCRIPTION
This is a class of default output routines for Math::Symbolic trees. Likewise, Math::Symbolic::Custom::DefaultTests defines default tree
testing routines and Math::Symbolic::Custom::DefaultMods has default tree modification methods. For details on how the custom method
delegation model works, please have a look at the Math::Symbolic::Custom and Math::Symbolic::Custom::Base classes.
EXPORT
Please see the docs for Math::Symbolic::Custom::Base for details, but you should not try to use the standard Exporter semantics with this
class.
SUBROUTINES
to_string
The to_string method is currently implemented in the module core namespaces and will be moved to Math::Symbolic::DefaultDumpers in a future
release.
Takes one optional argument indicating whether the Math::Symbolic tree should be transformed to a string using 'postfix' notation or using
'infix' notation. Default is infix which is also more likely to be reparseable by the Math::Symbolic parser.
to_code
This method is a wrapper around the compile_to_code class method in the Math::Symbolic::Compiler module. Takes key/value pairs of variables
and integers as argument. The integers should starting at 0 and they determine the order of the variables/parameters to the compiled code.
Returns the compiled code and a reference to an array of possible leftover tree elements that could not be compiled.
Please refer to the Math::Symbolic::Compiler man page for details.
to_sub
This method is a wrapper around the compile_to_sub class method in the Math::Symbolic::Compiler module. Takes key/value pairs of variables
and integers as argument. The integers should starting at 0 and they determine the order of the variables/parameters to the compiled code.
Returns the compiled sub and a reference to an array of possible leftover tree elements that could not be compiled.
Please refer to the Math::Symbolic::Compiler man page for details.
AUTHOR
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.
List of contributors:
Steffen Mueller, symbolic-module at steffen-mueller dot net
Stray Toaster, mwk at users dot sourceforge dot net
Oliver Ebenhoeh
SEE ALSO
New versions of this module can be found on http://steffen-mueller.net or CPAN. The module development takes place on Sourceforge at
http://sourceforge.net/projects/math-symbolic/
Math::Symbolic::Custom Math::Symbolic::Custom::DefaultMods Math::Symbolic::Custom::DefaultTests Math::Symbolic
perl v5.10.1 2011-01-01 Math::Symbolic::Custom::DefaultDumpers(3pm)
Check Out this Related Man Page
Math::Symbolic::Custom(3pm) User Contributed Perl Documentation Math::Symbolic::Custom(3pm)NAME
Math::Symbolic::Custom - Aggregate class for tree tests and transformations
SYNOPSIS
# Extending the class:
package Math::Symbolic::Custom::MyTransformations;
use Math::Symbolic::Custom::Base;
BEGIN {*import = &Math::Symbolic::Custom::Base::aggregate_import}
our $Aggregate_Export = [qw/apply_transformation1 .../];
sub apply_transformation1 {
# ...
}
# ...
# Using the custom class:
use Math::Symbolic;
use Math::Symbolic::Custom::MyTransformations;
# later...
$tree->apply_transformation1();
$tree->mod_transformation2();
die unless $tree->is_type1();
die unless $tree->test_condition1();
die if $tree->contains_something1();
print $tree->to_latex();
DESCRIPTION
This is an aggregate class for all custom modification, transformation, testing and output extensions for Math::Symbolic trees. Some
default transformations and tests are implemented in the Math::Symbolic::Custom::DefaultMods and Math::Symbolic::Custom::DefaultTests
packages, default output routines in Math::Symbolic::Custom::DefaultDumpers which are automatically loaded by the Math::Symbolic::Custom
class.
Math::Symbolic::Custom imports all constants from Math::Symbolic::ExportConstants
EXPORT
None by default.
EXTENDING THE MODULE
In order to extend the functionality of Math::Symbolic, you have to go through the following steps: (also see the synopsis in this
document.)
o Choose an appropriate namespace in the Math::Symbolic::Custom::* hierarchy or if you desparately wish, somewhere else.
o Create a new module (probably using "h2xs -AX MODULENAME") and put the following lines of code in it:
# To make sure we're cooperating with Math::Symbolic's idea of
# method delegation.
use Math::Symbolic::Custom::Base;
BEGIN {*import = &Math::Symbolic::Custom::Base::aggregate_import}
our $Aggregate_Export = [
# Put the list of method names to be exported.
/];
o Think well about the naming of your exported methods. Answer the following questions:
Does the name start with 'is_', 'test_', 'mod_', 'apply_', 'contains_', or 'to_'? If not, find a suitable name that does.
Does the name clash with any of the methods exported by Math::Symbolic::Custom::DefaultTests, Math::Symbolic::Custom::DefaultMods, or
Math::Symbolic::Custom::DefaultDumpers? If so, please consider choosing a different name.
Does the name map to the idea behind the method prefix ('is_', ...)? Only methods starting with one of the prefixes listed above can
be delegated. Any others will never be called. The idea behind delegating methods with several prefixes is to provide for a reasonable
choice for naming methods. 'is_' and 'contains_' are meant to be used for accurate tests like "is_constant". 'test_' is meant for all
tests that either make use of heuristics or can't be fitted into either 'is_' or 'contains_'. The prefixes 'mod_' and 'apply_' are
meant for use with methods that modify the Math::Symbolic tree. Finally, the prefix 'to_' is meant to be used with conversion and
output methods like 'to_latex' or 'to_string'. (Though as of version 0.122, to_string is implemented in the core Math::Symbolic
modules.)
o Make sure you document exactly what your methods do. Do they modify the Math::Symbolic tree in-place or do they clone using the new()
constructor and return a copy? Make sure you mention the behaviour in the docs.
o Consider packaging your extensions as a CPAN distribution to help others in their development with Math::Symbolic. If you think the
extensions are generic enough to be a worthwhile addition to the core distribution, try sending your extensions to the Math::Symbolic
developers mailing list instead.
o Load your extension module after loading the Math::Symbolic module.
o Start using your custom enhancements as methods to the Math::Symbolic trees (any term types).
o Send bug reports and feedback to the Math::Symbolic support mailing list.
AUTHOR
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.
List of contributors:
Steffen Mueller, symbolic-module at steffen-mueller dot net
Stray Toaster, mwk at users dot sourceforge dot net
Oliver Ebenhoeh
SEE ALSO
New versions of this module can be found on http://steffen-mueller.net or CPAN. The module development takes place on Sourceforge at
http://sourceforge.net/projects/math-symbolic/
Math::Symbolic::Custom::Base Math::Symbolic::Custom::DefaultTests Math::Symbolic::Custom::DefaultMods
Math::Symbolic::Custom::DefaultDumpers
Math::Symbolic
perl v5.10.1 2011-01-01 Math::Symbolic::Custom(3pm)