master math
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 489
Master Math Word Problems 1.6
Master Math Word Problems can help sharpen skills through practice. more>>
Solving word problems is an area where elementary students overwhelmingly display difficulties. Master Math Word Problems program can help sharpen skills through practice. Third through fifth graders learn to watch for key words and translate those into mathematical operations.
Students can learn new math skills, practice logic, get extended practice with word problems, but most of all they learn that they must read the problem. With regular practice your students may become master math word problem solvers.
Download and try out Master Math Word Problems.
<<lessStudents can learn new math skills, practice logic, get extended practice with word problems, but most of all they learn that they must read the problem. With regular practice your students may become master math word problem solvers.
Download and try out Master Math Word Problems.
Download (1.2MB)
Added: 2006-05-17 License: GPL (GNU General Public License) Price: $12
1262 downloads
ISO Master 1.0
ISO Master is an open-source, graphical CD image editor that runs on Linux. more>>
ISO Master is an open-source, graphical CD image editor that runs on Linux; and bkisofs, the underlying library used for reading, modifying and writing ISO images.
The hard part of this project is the library for working with ISOs (bkisofs). My hope is that people will like this library enough to make their own GUIs using it. So my choice of widget set (GTK, that is) will not necessarily annoy too many people.
Main features:
- Display file/directory contents of the image and and the regular filesystem in two panels and be able to navigate them.
- Display file sizes for files on image/filesystem.
- Sort by name or by size
- Select any number of items in the file browsers.
- Extract selected from image to the filesystem
- Delete selected from image.
- Add selected from filesystem to image.
- Save modified image.
- Create image from scratch.
Enhancements:
- Usability and performance improvements.
- 10 new translations.
- A bug that sometimes caused corrupt ISOs to be written has been fixed.
<<lessThe hard part of this project is the library for working with ISOs (bkisofs). My hope is that people will like this library enough to make their own GUIs using it. So my choice of widget set (GTK, that is) will not necessarily annoy too many people.
Main features:
- Display file/directory contents of the image and and the regular filesystem in two panels and be able to navigate them.
- Display file sizes for files on image/filesystem.
- Sort by name or by size
- Select any number of items in the file browsers.
- Extract selected from image to the filesystem
- Delete selected from image.
- Add selected from filesystem to image.
- Save modified image.
- Create image from scratch.
Enhancements:
- Usability and performance improvements.
- 10 new translations.
- A bug that sometimes caused corrupt ISOs to be written has been fixed.
Download (0.20MB)
Added: 2007-06-11 License: GPL (GNU General Public License) Price:
1093 downloads
Hanzi Master 1.3
Hanzi Master project is a visual, interactive Chinese character and word dictionary. more>>
Hanzi Master project is a visual, interactive Chinese character and word dictionary.
Hanzim ("Hanzi Master") is an interactive visual dictionary for learning and seeing relationships between Chinese radicals, characters, and compounds.
All the characters with a given radical, phonetic component, or pronunciation can be displayed, and all words containing a character, with English meanings.
All data is stored locally. Either simplified or traditional characters can be used.
Main features:
- typing in pinyin gives list of characters and definitions with that pronunciation
- clicking on a radical gives list of characters and definitions with that radical
- clicking on any character in any list displays that character along with the compounds it occurs in as the first or second character.
<<lessHanzim ("Hanzi Master") is an interactive visual dictionary for learning and seeing relationships between Chinese radicals, characters, and compounds.
All the characters with a given radical, phonetic component, or pronunciation can be displayed, and all words containing a character, with English meanings.
All data is stored locally. Either simplified or traditional characters can be used.
Main features:
- typing in pinyin gives list of characters and definitions with that pronunciation
- clicking on a radical gives list of characters and definitions with that radical
- clicking on any character in any list displays that character along with the compounds it occurs in as the first or second character.
Download (0.57MB)
Added: 2006-10-16 License: GPL (GNU General Public License) Price:
1117 downloads
Research Master 1.2c
ResearchMaster has been designed to make working a little easier. more>>
ResearchMaster project has been designed to make working a little easier. Specifically, the application can be either a storage facility for all of your precious, miscellaneous digital information, or for just some of it. The project began as a way for the author to [1] have a centralized library for all the papers and various snippets he collects, and [2] to have some powerful, built-in support for BibTeX, the LaTeX bibliography system ( The LaTeX bibliography system, as described in the Leslie Lamport book. ISBN 0-201-52983-1).
When the application starts up, it creates a virtual filesystem (vfs) from information contained in records. Each record appends itself under at least one folder in the vfs, and the vfs is represented by a tree-widget system of folders and records. The application is divided into folder controls (left) and record controls (right).
Each record is actually a set of three python dictionaries, stored in a flat ascii text file. The three dictionaries correspond to [1] BibTex information corresponding to the record, [2] Meta information (eg. isbn, call number, url, membership) and [3] an endless notes file. When a record is selected from the tree widget, the corresponding three dictionaries are presented in a three-tabbed notebook widget on the right side of the application.
New records are created via a button on the records toolbar. When you create a new record the application pops a filechooser and you are given the opportunity to import a single file. Perhaps the imported file is a pdf copy of a research paper that you dont want to lose. ResearchMaster is a good place to store it. First, the record and the imported file now have each other. Now you can keep a log of your involvement with the file in the notes portion of the record. The Meta portion of the record contains non-BibTex information, such as which folders the record is a member of. The application accesses the records BibTex information whenever the record has membership within the subtree of a particular folder for which a recursive bibliography is being generated.
Heres a typical example: Say you create a folder for some project. Lets say that after six months your folder now has several subtrees of folders and records, all arranged according to the scheme that happened. Now imagine there are twenty records with BibTex information strewn throughout the projects subtree, side-by-side with other records that dont have BibTex information (notes, whatever). By pushing the Create Bibliography button on the left toolbar the application will produce a perfectly formatted BibTex file with all twenty records.
Each record can be made a member of any folder simply by adding the folders path to the membership list in the Meta portion of the record. The tree widget is dynamically constructed by recursively examining a directory tree (corresponding to the folders of the tree-widget) and the membership list contained in each record. This is done so that we only have one physical copy of each record, despite the fact that the record might show up in fifty different places throughout the tree widget.
The file that gets imported with a record can be any file of any format. You can tell ResearchMaster to launch the file as an argument to any external application, based on the filenames suffix (.gif, .avi, .mpg, .mp3). Then, select the record from the tree, push the launch button (on the records toolbar), and voila! The associated application brings up your file. Thats one feature that makes working a little easier.
Enhancements:
- Small correction was needed on line 1140 of ResearchMaster_wxuser.py, where "researchmaster" needed to be "ReseaerchMaster" for preferences initialization.
<<lessWhen the application starts up, it creates a virtual filesystem (vfs) from information contained in records. Each record appends itself under at least one folder in the vfs, and the vfs is represented by a tree-widget system of folders and records. The application is divided into folder controls (left) and record controls (right).
Each record is actually a set of three python dictionaries, stored in a flat ascii text file. The three dictionaries correspond to [1] BibTex information corresponding to the record, [2] Meta information (eg. isbn, call number, url, membership) and [3] an endless notes file. When a record is selected from the tree widget, the corresponding three dictionaries are presented in a three-tabbed notebook widget on the right side of the application.
New records are created via a button on the records toolbar. When you create a new record the application pops a filechooser and you are given the opportunity to import a single file. Perhaps the imported file is a pdf copy of a research paper that you dont want to lose. ResearchMaster is a good place to store it. First, the record and the imported file now have each other. Now you can keep a log of your involvement with the file in the notes portion of the record. The Meta portion of the record contains non-BibTex information, such as which folders the record is a member of. The application accesses the records BibTex information whenever the record has membership within the subtree of a particular folder for which a recursive bibliography is being generated.
Heres a typical example: Say you create a folder for some project. Lets say that after six months your folder now has several subtrees of folders and records, all arranged according to the scheme that happened. Now imagine there are twenty records with BibTex information strewn throughout the projects subtree, side-by-side with other records that dont have BibTex information (notes, whatever). By pushing the Create Bibliography button on the left toolbar the application will produce a perfectly formatted BibTex file with all twenty records.
Each record can be made a member of any folder simply by adding the folders path to the membership list in the Meta portion of the record. The tree widget is dynamically constructed by recursively examining a directory tree (corresponding to the folders of the tree-widget) and the membership list contained in each record. This is done so that we only have one physical copy of each record, despite the fact that the record might show up in fifty different places throughout the tree widget.
The file that gets imported with a record can be any file of any format. You can tell ResearchMaster to launch the file as an argument to any external application, based on the filenames suffix (.gif, .avi, .mpg, .mp3). Then, select the record from the tree, push the launch button (on the records toolbar), and voila! The associated application brings up your file. Thats one feature that makes working a little easier.
Enhancements:
- Small correction was needed on line 1140 of ResearchMaster_wxuser.py, where "researchmaster" needed to be "ReseaerchMaster" for preferences initialization.
Download (2.1MB)
Added: 2006-11-29 License: GPL (GNU General Public License) Price:
1061 downloads
Master Combat Control Program 0.9.4
Master Combat Control Program is an improved clone of the Shadowrun-Assistent program. more>>
Master Combat Control Program is an improved clone of the "Shadowrun-Assistent" program (as found on shadowrun.de).
Its main goals are better usability, minor feature improvements, and i18n. It constists of a character editor, an initiative manager, and a dice roller.
Enhancements:
- Due to popular demand, the directory where the configuration files are put is now configurable via the "-config" option.
- When first running the program it complained about missing files, which are created on shutdown, so this was changed.
- added parsing of command line parameter "-config";
- all error messages internationalized;
- added "readme.txt"
<<lessIts main goals are better usability, minor feature improvements, and i18n. It constists of a character editor, an initiative manager, and a dice roller.
Enhancements:
- Due to popular demand, the directory where the configuration files are put is now configurable via the "-config" option.
- When first running the program it complained about missing files, which are created on shutdown, so this was changed.
- added parsing of command line parameter "-config";
- all error messages internationalized;
- added "readme.txt"
Download (0.14MB)
Added: 2005-07-22 License: GPL (GNU General Public License) Price:
1564 downloads
Libapmath 0.3
Libapmath is a C++ arbitrary precision math library designed to be as convenient as possible, besides performing well. more>>
Libapmath is a C++ arbitrary precision math library designed to be as convenient as possible, besides performing well.
The approach taken is that of choosing names like those in < cmath > and implementing all arithmetic by overloading of operators.
Main features:
- Real and complex arithmetic
- Trigonometric, exponential functions and many more for real and complex domain and range
- Some common constants
<<lessThe approach taken is that of choosing names like those in < cmath > and implementing all arithmetic by overloading of operators.
Main features:
- Real and complex arithmetic
- Trigonometric, exponential functions and many more for real and complex domain and range
- Some common constants
Download (0.050MB)
Added: 2006-11-05 License: BSD License Price:
1083 downloads
Zombie Master Dedicated Server 1.1.2
Zombie Master is a multiplayer survival horror FPS/RTS mod for Half-Life 2. more>>
Zombie Master project is a multiplayer survival horror FPS/RTS mod for Half-Life 2. A team of FPS-playing humans attempts to complete map-specific objectives while an RTS player controls the zombie horde with only one goal: death to all humans.
He is the Zombie Master.
Enhancements:
- [fix] Weapons were sometimes hard to pick up
- [fix] Fast shooting exploits in shotgun and rifle
- [tweak] Health indication in player identification display
- [tweak] ZM resource limit server setting zm_resource_limit (default 4000)
- [fix] Team changes (including to spectator after death) had erratic results
- [feature] Muting players
- [tweak] Weapon flags failed to reset in some situations after forcehuman/forcemaster team switching
- [fix] ZM preference window came up when the ZM camera toggled
- [fix] Zombie spawns could still be clicked when inactive
- [fix] Voting for roundrestart could be spammed
- [fix] DOTD chalkboard weirded out
- Plus minor fixes to the maps.
As usual, if your game goes horridly wrong after patching, try reinstalling with the 1.1.2 full installer.
UPDATE: If you experience the spectator bug after patching to 1.1.2, it is recommended you do a clean install using the full 1.1.2 installer.
<<lessHe is the Zombie Master.
Enhancements:
- [fix] Weapons were sometimes hard to pick up
- [fix] Fast shooting exploits in shotgun and rifle
- [tweak] Health indication in player identification display
- [tweak] ZM resource limit server setting zm_resource_limit (default 4000)
- [fix] Team changes (including to spectator after death) had erratic results
- [feature] Muting players
- [tweak] Weapon flags failed to reset in some situations after forcehuman/forcemaster team switching
- [fix] ZM preference window came up when the ZM camera toggled
- [fix] Zombie spawns could still be clicked when inactive
- [fix] Voting for roundrestart could be spammed
- [fix] DOTD chalkboard weirded out
- Plus minor fixes to the maps.
As usual, if your game goes horridly wrong after patching, try reinstalling with the 1.1.2 full installer.
UPDATE: If you experience the spectator bug after patching to 1.1.2, it is recommended you do a clean install using the full 1.1.2 installer.
Download (82.3MB)
Added: 2007-06-26 License: Freeware Price:
899 downloads
Unnamed Math Program 0.8.6
Ump is a graphical, easy to use math program, which works with complex numbers, matrices, functions and much more. more>>
Ump is a program in which all sorts of calculations can be done, from the simplest to the more advanced. It handles complex numbers and matrices of those.
The complex numbers are built up by either floating point values or ratios of arbitrary sized integers. Ump also draws graphs, ordinary, polar, and parameter, which is done through an easy to use user interface.
Unnamed Math Program is also possible to write your own functions using the built in editor.
<<lessThe complex numbers are built up by either floating point values or ratios of arbitrary sized integers. Ump also draws graphs, ordinary, polar, and parameter, which is done through an easy to use user interface.
Unnamed Math Program is also possible to write your own functions using the built in editor.
Download (0.14MB)
Added: 2007-04-16 License: GPL (GNU General Public License) Price:
921 downloads
Math::CDF 0.1
Math::CDF is a Perl module to generate probabilities and quantiles from several statistical probability functions. more>>
Math::CDF is a Perl module to generate probabilities and quantiles from several statistical probability functions.
SYNOPSIS
use Math::CDF;
$prob = &Math::CDF::pnorm(1.96);
if( not defined($z = &Math::CDF::qnorm(0.975)) ) { die "qnorm() failed"; }
or
use Math::CDF qw(:all);
$prob = pnorm(1.96);
This module provides a perl interface to the DCDFLIB. See the section on DCDFLIB for more information.
Functions are available for 7 continuous distributions (Beta, Chi-square, F, Gamma, Normal, Poisson and T-distribution) and for two discrete distributions (Binomial and Negative Binomial). Optional non-centrality parameters are available for the Chi-square, F and T-distributions. Cumulative probabilities are available for all 9 distributions and quantile functions are available for the 7 continuous distributions.
All cumulative probability function names begin with the character "p". They give the probability of being less than or equal to the given value [ P(X<<less
SYNOPSIS
use Math::CDF;
$prob = &Math::CDF::pnorm(1.96);
if( not defined($z = &Math::CDF::qnorm(0.975)) ) { die "qnorm() failed"; }
or
use Math::CDF qw(:all);
$prob = pnorm(1.96);
This module provides a perl interface to the DCDFLIB. See the section on DCDFLIB for more information.
Functions are available for 7 continuous distributions (Beta, Chi-square, F, Gamma, Normal, Poisson and T-distribution) and for two discrete distributions (Binomial and Negative Binomial). Optional non-centrality parameters are available for the Chi-square, F and T-distributions. Cumulative probabilities are available for all 9 distributions and quantile functions are available for the 7 continuous distributions.
All cumulative probability function names begin with the character "p". They give the probability of being less than or equal to the given value [ P(X<<less
Download (0.064MB)
Added: 2007-08-03 License: Perl Artistic License Price:
815 downloads
MathWar 0.2.4
MathWar project is a flashcard math game for kids. more>>
MathWar project is a flashcard math game for kids.
MathWar is a flashcard math game in which the child plays against the computer to solve simple addition, subtraction, and multiplication problems before the computer player answers.
MathWar is aimed at kids who are just learning their math facts, and can easily be tailored to fit different skill levels.
<<lessMathWar is a flashcard math game in which the child plays against the computer to solve simple addition, subtraction, and multiplication problems before the computer player answers.
MathWar is aimed at kids who are just learning their math facts, and can easily be tailored to fit different skill levels.
Download (0.80MB)
Added: 2006-10-16 License: GPL (GNU General Public License) Price:
1106 downloads
TuxMathScrabble 4.2
TuxMathScrabble is a multi-user math-version of Scrabble for youngsters. more>>
TuxMathScrabble is a math-version of the popular board game for children aged 4-10. The game features drag-and-drop tiles for the user, while Tux moves his own.
The game challenges young people to construct compound equations and consider multiple abstract possibilities.
Dancing penguins come out of the tiles when your move is correct (like a cuckoo-clock). Tux is animated as well.
<<lessThe game challenges young people to construct compound equations and consider multiple abstract possibilities.
Dancing penguins come out of the tiles when your move is correct (like a cuckoo-clock). Tux is animated as well.
Download (0.81MB)
Added: 2007-07-28 License: GPL (GNU General Public License) Price:
821 downloads
Math::Vec 1.01
Math::Vec is a Object-Oriented Vector Math Methods in Perl. more>>
Math::Vec is a Object-Oriented Vector Math Methods in Perl.
SYNOPSIS
use Math::Vec;
$v = Math::Vec->new(0,1,2);
or
use Math::Vec qw(NewVec);
$v = NewVec(0,1,2);
@res = $v->Cross([1,2.5,0]);
$p = NewVec(@res);
$q = $p->Dot([0,1,0]);
or
use Math::Vec qw(:terse);
$v = V(0,1,2);
$q = ($v x [1,2.5,0]) * [0,1,0];
NOTICE
This module is still somewhat incomplete. If a function does nothing, there is likely a really good reason. Please have a look at the code if you are trying to use this in a production environment.
<<lessSYNOPSIS
use Math::Vec;
$v = Math::Vec->new(0,1,2);
or
use Math::Vec qw(NewVec);
$v = NewVec(0,1,2);
@res = $v->Cross([1,2.5,0]);
$p = NewVec(@res);
$q = $p->Dot([0,1,0]);
or
use Math::Vec qw(:terse);
$v = V(0,1,2);
$q = ($v x [1,2.5,0]) * [0,1,0];
NOTICE
This module is still somewhat incomplete. If a function does nothing, there is likely a really good reason. Please have a look at the code if you are trying to use this in a production environment.
Download (0.010MB)
Added: 2007-07-03 License: Perl Artistic License Price:
847 downloads
Math::ODE 0.03
Math::ODE Perl module allows you to solve N-th Order Ordinary Differential Equations with as little pain as possible. more>>
Math::ODE Perl module allows you to solve N-th Order Ordinary Differential Equations with as little pain as possible.
Currently, only IVPs (initial value problems) are supported, but native support for BVPs (boundary value problems) may be added in the future. To solve N-th order equations, you must first turn it into a system of N first order equations, as in MATLAB.
<<lessCurrently, only IVPs (initial value problems) are supported, but native support for BVPs (boundary value problems) may be added in the future. To solve N-th order equations, you must first turn it into a system of N first order equations, as in MATLAB.
Download (0.005MB)
Added: 2007-06-13 License: GPL (GNU General Public License) Price:
867 downloads
Math::Expr 0.2
Math::Expr is a Perl module that parses mathematical expressions. more>>
Math::Expr is a Perl module that parses mathematical expressions.
SYNOPSIS
require Math::Expr;
$p=new Math::Expr;
$e=$p->Parse("a+4*b-d/log(s)+f(d,e)");
Parses mathematical expressions into a tree structure. The expressions may contain integers, real numbers, alphanumeric variable names, alphanumeric function names and most other characters might be used as operators. The operators can even be longer than one character! The only limitation is that a variable or function name may not start on a digit, and not all chars are accepted as operations. To be exact, here is the grammatic (in perl regexp notation):
< Expr > = -?< Elem >(< OpChr >< Elem >)*
< Elem > = < Number >|< Var >|< Function >|(< Expr >)
< Number > = < Integer >|< Float >
< Integer > = d+
< Float > = d*.d+
< Var > = [a-zA-Z][a-zA-Z0-9]*(:[a-zA-Z][a-zA-Z0-9]*)?
< Function > = [a-zA-Z][a-zA-Z0-9]*(< Expr >(,< Expr >)*)
< OpChr > = [^a-zA-Z0-9(),.:]+
If the - sign is present at the beginning of an < Expr > it is parsed in the exact same structure as 0< Expr >. That is to allow constructions like "-a*b" or "b+3*(-7)".
A variable consists of two parts separated by a :-char. The first part is the variable name, and the second optional part is its type. Default type is Real.
METHODS
$p = new Math::Expr
This is the constructor, it creates an object which later can be used to parse the strings.
$e=$p->Parse($str)
This will parse the string $str and return an expression tree, in the form of a Math::Expr::Opp object (or in simple cases only a Math::Expr::Var or Math::Expr::Num object).
$p->Priority({^=>50, /=>40, *=>30, -=>20, +=>10})
This will set the priority of ALL the operands (there is currently no way to change only one of them). The priority decides what should be constructed if several operands is listed without delimiters. Eg if a+b*c should be treated as (a+b)*c or a+(b*c). (Default is listed in header).
$p->SetOppDB($db)
Sets the OpperationDB to be used to $db. See Math::Expr::OpperationDB for more info. This will be passed down to all objects returned by the parser aswell.
<<lessSYNOPSIS
require Math::Expr;
$p=new Math::Expr;
$e=$p->Parse("a+4*b-d/log(s)+f(d,e)");
Parses mathematical expressions into a tree structure. The expressions may contain integers, real numbers, alphanumeric variable names, alphanumeric function names and most other characters might be used as operators. The operators can even be longer than one character! The only limitation is that a variable or function name may not start on a digit, and not all chars are accepted as operations. To be exact, here is the grammatic (in perl regexp notation):
< Expr > = -?< Elem >(< OpChr >< Elem >)*
< Elem > = < Number >|< Var >|< Function >|(< Expr >)
< Number > = < Integer >|< Float >
< Integer > = d+
< Float > = d*.d+
< Var > = [a-zA-Z][a-zA-Z0-9]*(:[a-zA-Z][a-zA-Z0-9]*)?
< Function > = [a-zA-Z][a-zA-Z0-9]*(< Expr >(,< Expr >)*)
< OpChr > = [^a-zA-Z0-9(),.:]+
If the - sign is present at the beginning of an < Expr > it is parsed in the exact same structure as 0< Expr >. That is to allow constructions like "-a*b" or "b+3*(-7)".
A variable consists of two parts separated by a :-char. The first part is the variable name, and the second optional part is its type. Default type is Real.
METHODS
$p = new Math::Expr
This is the constructor, it creates an object which later can be used to parse the strings.
$e=$p->Parse($str)
This will parse the string $str and return an expression tree, in the form of a Math::Expr::Opp object (or in simple cases only a Math::Expr::Var or Math::Expr::Num object).
$p->Priority({^=>50, /=>40, *=>30, -=>20, +=>10})
This will set the priority of ALL the operands (there is currently no way to change only one of them). The priority decides what should be constructed if several operands is listed without delimiters. Eg if a+b*c should be treated as (a+b)*c or a+(b*c). (Default is listed in header).
$p->SetOppDB($db)
Sets the OpperationDB to be used to $db. See Math::Expr::OpperationDB for more info. This will be passed down to all objects returned by the parser aswell.
Download (0.013MB)
Added: 2007-07-25 License: Perl Artistic License Price:
821 downloads
Math::RPN 1.08
RPN is a Perl extension for Reverse Polish Math Expression Evaluation. more>>
RPN is a Perl extension for Reverse Polish Math Expression Evaluation.
SYNOPSIS
use Math::RPN;
$value=rpn(expr...);
@array=rpn(expr...);
expr... is one or more scalars or lists of scalars which contain
RPN expressions. An RPN expression is a series of numbers and/or
operators separated by commas. (commas are only required within
scalars).
The rpn function will take a scalar or list of sclars which contain an RPN expression as a set of comma delimited values and operators, and return the result or stack, depending on context. If the function is called in an array context, it will return the entire remaining stack. If it is called in a scalar context, it will return the top item of the stack. In a scalar context, if more than one value remains on the stack, a warning will be sent to STDERR.
In the event of an error, an error message will be sent to STDERR, and rpn will return undef.
The expression can contain any combination of values and operators. Any token which is not an operator is assumed to be a value to be pushed onto the stack.
An explanation of Reverse Polish Notation is beyond the scope of this document, but it I will describe it briefly as a stack-based way of writing mathematical expressions. This has the advantage of eliminating the need for parenthesis and simplifying parsing for computers vs. normal algebraic notation at a slight cost in the ability of humans to easily comprehend the expressions.
This evaluator works by cycling through the expression from left to right. As each token is encountered, it is checked against the list of operators. If it matches, then a check is performed for stack underflow.
If the stack has not underflowed, the operation is performed by removing the required number of operands from the top of the stack. The result is then pushed on to the stack. Operations for which order is significant (-,/,%,etc.) are processed such that the top item on the stack is treated as the right operand, and the next item down is treated as the left operand. Thus, "5,3,-" would yield 2, not -2. If the token does not match any of the known operators, the token is blindly pushed onto the stack. As a result, one can produce unexpected results. For example, the expression "5,3,grandma,+,*" would produce 15 because 5*(3+0) is how it would end up evaluated. That is, 5 would be pushed onto the stack, then 3, then "grandma". Next, + is evaluated, so 3+"grandma" is evaluated. PERL evaluates "grandma" to be numerically 0, so 3 is pushed back onto the stack. Next, the * multiplies the top two items of the stack [5][3], producing 15, which is pushed back onto the stack.
<<lessSYNOPSIS
use Math::RPN;
$value=rpn(expr...);
@array=rpn(expr...);
expr... is one or more scalars or lists of scalars which contain
RPN expressions. An RPN expression is a series of numbers and/or
operators separated by commas. (commas are only required within
scalars).
The rpn function will take a scalar or list of sclars which contain an RPN expression as a set of comma delimited values and operators, and return the result or stack, depending on context. If the function is called in an array context, it will return the entire remaining stack. If it is called in a scalar context, it will return the top item of the stack. In a scalar context, if more than one value remains on the stack, a warning will be sent to STDERR.
In the event of an error, an error message will be sent to STDERR, and rpn will return undef.
The expression can contain any combination of values and operators. Any token which is not an operator is assumed to be a value to be pushed onto the stack.
An explanation of Reverse Polish Notation is beyond the scope of this document, but it I will describe it briefly as a stack-based way of writing mathematical expressions. This has the advantage of eliminating the need for parenthesis and simplifying parsing for computers vs. normal algebraic notation at a slight cost in the ability of humans to easily comprehend the expressions.
This evaluator works by cycling through the expression from left to right. As each token is encountered, it is checked against the list of operators. If it matches, then a check is performed for stack underflow.
If the stack has not underflowed, the operation is performed by removing the required number of operands from the top of the stack. The result is then pushed on to the stack. Operations for which order is significant (-,/,%,etc.) are processed such that the top item on the stack is treated as the right operand, and the next item down is treated as the left operand. Thus, "5,3,-" would yield 2, not -2. If the token does not match any of the known operators, the token is blindly pushed onto the stack. As a result, one can produce unexpected results. For example, the expression "5,3,grandma,+,*" would produce 15 because 5*(3+0) is how it would end up evaluated. That is, 5 would be pushed onto the stack, then 3, then "grandma". Next, + is evaluated, so 3+"grandma" is evaluated. PERL evaluates "grandma" to be numerically 0, so 3 is pushed back onto the stack. Next, the * multiplies the top two items of the stack [5][3], producing 15, which is pushed back onto the stack.
Download (0.008MB)
Added: 2007-06-28 License: Perl Artistic License Price:
848 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above master math search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed