GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MATH::SYMBOLIC::CUSTOM::TRANSFORMATION::GROUP (3)

.ds Aq ’

NAME

Math::Symbolic::Custom::Transformation::Group - Group of Transformations

CONTENTS

SYNOPSIS



  use Math::Symbolic::Custom::Transformation qw/:all/;
  use Math::Symbolic qw/parse_from_string/;
 
  my $group = new_trafo_group(
    ,,
    new_trafo( TREE_x ^ 1       => TREE_x                           ),
    new_trafo( TREE_x ^ CONST_a => TREE_x * TREE_x^value{CONST_a-1} ),
  );
 
  my $function = parse_from_string(
    (foo+1)^3 + bar^2
  );
 
  while(1) {
      my $result = $group->apply_recursive($function);
      last if not defined $result;
      $function = $result;
  }
 
  print $function."\n"
  # prints "((foo + 1) * ((foo + 1) * (foo + 1))) + (bar * bar)"



DESCRIPTION

A Math::Symbolic::Custom::Transformation::Group object (Trafo Group for now) represents a conjunction of several transformations and is a transformation itself. An example is in order here:



  my $group = new_trafo_group( ,, $trafo1, $trafo2, ... );



Now, $group can be applied to Math::Symbolic trees as if it was an ordinary transformation object itself. In fact it is, because this is a subclass of Math::Symbolic::Custom::Transformation.

The first argument to the constructor specifies the condition under which the grouped transformations are applied. , is the simplest form. It means that all grouped transformations are always applied. & means that the next transformation will only be applied if the previous one succeeded. Finally, | means that the first transformation to succeed is the last that is tried. & and | are and and or operators if you will.

    EXPORT

None by default, but you may choose to import the new_trafo_group subroutine as an alternative constructor for Math::Symbolic::Custom::Transformation::Group objects.

    METHODS

This is a list of public methods.
new This is the constructor for Math::Symbolic::Custom::Transformation::Group objects. First argument must be the type of the group as explained above. (,, &, or |.) Following the group type may be any number of transformations (or groups thereof).
apply Applies the transformation (group) to a Math::Symbolic tree. First argument must be a Math::Symbolic tree to transform. The tree is not transformed in-place, but its matched subtrees are contained in the transformed tree, so if you plan to use the original tree as well as the transformed tree, take care to clone one of the trees.

apply() returns the transformed tree if the transformation pattern matched and a false value otherwise.

On errors, it throws a fatal error.

to_string Returns a string representation of the transformation. In presence of the simplify or value hooks, this may fail to return the correct represenation. It does not round-trip!

(Generally, it should work if only one hook is present, but fails if more than one hook is found.)

apply_recursive This method is inherited from Math::Symbolic::Custom::Transformation.

    SUBROUTINES

This is a list of public subroutines.
new_trafo_group This subroutine is an alternative to the new() constructor for Math::Symbolic::Custom::Transformation::Group objects that uses a hard coded package name. (So if you want to subclass this module, you should be aware of that!)

SEE ALSO

New versions of this module can be found on http://steffen-mueller.net or CPAN.

This module uses the Math::Symbolic framework for symbolic computations.

Math::Symbolic::Custom::Pattern implements the pattern matching routines.

AUTHOR

Steffen Mueller, <symbolic-module at steffen-mueller dot net>

COPYRIGHT AND LICENSE

Copyright (C) 2006, 2007, 2008, 2013 by Steffen Mueller

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6.1 or, at your option, any later version of Perl 5 you may have available.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MATH::SYMBOLIC::CUSTOM::TRANSFORMATION::GROUP (3) 2013-05-26

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.