Math::Symbolic::Custom::Collect =============================== Provides "to_collected()" through the Math::Symbolic module extension class. "to_collected" performs the following operations on the inputted Math::Symbolic tree:- * Folds constants * Converts decimal numbers to rational numbers * Combines fractions * Expands brackets * Collects like terms * Cancels down The result is often a more concise expression. However, because it does not (yet) factor the expression, the result is not always the simplest representation. Hence it is not offered as a simplify(). E.g.:- use Math::Symbolic qw(:all); use Math::Symbolic::Custom::Collect; my $t1 = "0.125"; print "Output: ", parse_from_string($t1)->to_collected()->to_string(), "\n"; # Output: 1 / 8 my $t2 = "25/100"; print "Output: ", parse_from_string($t2)->to_collected()->to_string(), "\n"; # Output: 1 / 4 my $t3 = "((1/4)+(1/2))*3*x"; print "Output: ", parse_from_string($t3)->to_collected()->to_string(), "\n"; # Output: (9 * x) / 4 my $t4 = "1/(1-(1/x))"; print "Output: ", parse_from_string($t4)->to_collected()->to_string(), "\n"; # Output: x / (x - 1) my $t5 = "sin(x^2+y)*sin(y+x^2)"; print "Output: ", parse_from_string($t5)->to_collected()->to_string(), "\n"; # Output: (sin((x ^ 2) + y)) ^ 2 my $t6 = "x + x^2 + 3*x^3 + 2*x - x^2"; print "Output: ", parse_from_string($t6)->to_collected()->to_string(), "\n"; # Output: (3 * x) + (3 * (x ^ 3)) my $t7 = "((1/(3*a))-(1/(3*b)))/((a/b)-(b/a))"; print "Output: ", parse_from_string($t7)->to_collected()->to_string(), "\n"; # Output: (b - a) / ((3 * (a ^ 2)) - (3 * (b ^ 2))) INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc Math::Symbolic::Custom::Collect You can also look for information at: RT, CPAN's request tracker (report bugs here) https://rt.cpan.org/NoAuth/Bugs.html?Dist=Math-Symbolic-Custom-Collect CPAN Ratings https://cpanratings.perl.org/d/Math-Symbolic-Custom-Collect Search CPAN https://metacpan.org/release/Math-Symbolic-Custom-Collect LICENSE AND COPYRIGHT This software is copyright (c) 2024 by Matt Johnson. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.