math objects
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3270
Math Objects 0.1.3
Math Objects is a math template library for C++ using generic programming techniques. more>>
Math Objects is a math template library written in C++ using generic programming techniques. In order to use the "Math Objects" library, the user only has to include the header files he needs (e.g. Matrix.h, Polynomial.h etc.).
In order to compile the library the user needs an ISO/IEC 14882:1998 standard compliant C++ compiler (e.g. one that supports partial template specializations).
The math library has math objects like matrices, polynomials, rational functions, extended precision numbers, complex numbers etc. that can be handled in a similar way like basic numerical types (e.g. integers or floating point numbers).
One can access properties of a mathematical type through a (partial) specialization of a traits class for that type (AlgebraicTraits). Having the traits classes to expose properties of mathematical objects, one can define for example matrices of polynomials having extended precision complex coefficients and apply to them basic linear algebra algorithms using normal C++ syntax.
This library also implements two functions using two deterministic algorithms that compute the Smith form for polynomial matrices, and the Smith-McMillan form of a transfer functions matrix also keeping track of the transformation matrices.
These algorithms can be used to describe a MIMO (multi input-multi output) system by means of its zeros and poles and also give the MFD (matrix fraction description) of the system.
Enhancements:
- Recoded the LongInt class aiming for better runtime efficiency.
<<lessIn order to compile the library the user needs an ISO/IEC 14882:1998 standard compliant C++ compiler (e.g. one that supports partial template specializations).
The math library has math objects like matrices, polynomials, rational functions, extended precision numbers, complex numbers etc. that can be handled in a similar way like basic numerical types (e.g. integers or floating point numbers).
One can access properties of a mathematical type through a (partial) specialization of a traits class for that type (AlgebraicTraits). Having the traits classes to expose properties of mathematical objects, one can define for example matrices of polynomials having extended precision complex coefficients and apply to them basic linear algebra algorithms using normal C++ syntax.
This library also implements two functions using two deterministic algorithms that compute the Smith form for polynomial matrices, and the Smith-McMillan form of a transfer functions matrix also keeping track of the transformation matrices.
These algorithms can be used to describe a MIMO (multi input-multi output) system by means of its zeros and poles and also give the MFD (matrix fraction description) of the system.
Enhancements:
- Recoded the LongInt class aiming for better runtime efficiency.
Download (0.28MB)
Added: 2006-02-21 License: GPL (GNU General Public License) Price:
1343 downloads
HTML Objects 1.2.4
HTML Objects is a Perl module library for turning HTML tags into Perl objects. more>>
HTML Objects is a Perl module library for turning HTML tags into Perl objects. HTML Objects allows Web pages to be manipulated as a data structure rather than text.
Once manipulation is done, the entire page is generated via depth-first recursion.
<<lessOnce manipulation is done, the entire page is generated via depth-first recursion.
Download (0.025MB)
Added: 2006-05-09 License: GPL (GNU General Public License) Price:
1263 downloads
C++ Machine Objects 0.9.4
C++ Machine Objects class library supports a subset of the UML statechart notation. more>>
C++ Machine Objects class library supports a subset of the UML statechart notation for implementing hierarchical state machines in straight C++, similar in spirit to the GoF "State" design pattern.
The currently supported features are hierarchical states, entry and exit actions, state histories, and state variables.
Installation:
The class library as such does not need to be installed. Just include the header file Macho.hpp to make use of it. Prerequisite however is a C++ compiler with sane support for templates.
Included are the example state machines HelloWorld, Example, Microwave and Test. To make the examples run just compile them in the directory they are in, for example:
# GCC
g++ -o microwave Microwave.cpp
# MSVC7
cl /EHsc Microwave.cpp
I like the GoF "State" design pattern. It enables implementing the important concept of state machines with common programming language features. By utilising only basic language mechanisms it is easy to apply in real-life software development.
Another important property that stems from this simplicity is orthogonality, meaning that the pattern can be combined with other design elements, patterns and idioms in arbitrary ways.
In contrast stand the tool supported approaches to state machine creation (of which there is no shortage). Based on code generators and graphical editors, they tend to generate incomprehensible code and forfeit orthogonality by necessarily being outside the domain of the programming language.
Unfortunately the "State" pattern is limited in scope because it does not allow for hierarchical state machines. This is regrettable because flat state machines tend to become unwieldy when getting bigger, for the sheer number of states they produce.
Hierarchical state machines as defined by the statechart notation alleviate this problem by giving an additional structural element through grouping states into hierarchies.
The "State" pattern in its original form is not capable of modeling state hierarchies. The Macho class library extends the concept with this possibility, while keeping the properties of simplicity (there possible) and tool independence from its inspiration.
Enhancements:
- This release adds the feature of backtracking to previous states by using "Snapshots".
<<lessThe currently supported features are hierarchical states, entry and exit actions, state histories, and state variables.
Installation:
The class library as such does not need to be installed. Just include the header file Macho.hpp to make use of it. Prerequisite however is a C++ compiler with sane support for templates.
Included are the example state machines HelloWorld, Example, Microwave and Test. To make the examples run just compile them in the directory they are in, for example:
# GCC
g++ -o microwave Microwave.cpp
# MSVC7
cl /EHsc Microwave.cpp
I like the GoF "State" design pattern. It enables implementing the important concept of state machines with common programming language features. By utilising only basic language mechanisms it is easy to apply in real-life software development.
Another important property that stems from this simplicity is orthogonality, meaning that the pattern can be combined with other design elements, patterns and idioms in arbitrary ways.
In contrast stand the tool supported approaches to state machine creation (of which there is no shortage). Based on code generators and graphical editors, they tend to generate incomprehensible code and forfeit orthogonality by necessarily being outside the domain of the programming language.
Unfortunately the "State" pattern is limited in scope because it does not allow for hierarchical state machines. This is regrettable because flat state machines tend to become unwieldy when getting bigger, for the sheer number of states they produce.
Hierarchical state machines as defined by the statechart notation alleviate this problem by giving an additional structural element through grouping states into hierarchies.
The "State" pattern in its original form is not capable of modeling state hierarchies. The Macho class library extends the concept with this possibility, while keeping the properties of simplicity (there possible) and tool independence from its inspiration.
Enhancements:
- This release adds the feature of backtracking to previous states by using "Snapshots".
Download (0.035MB)
Added: 2006-06-02 License: MIT/X Consortium License Price:
1240 downloads
Python Web Objects 1.3
Python Web Objects is a dynamic page generation system that allows the developer to embed Python code inside HTML. more>>
Python Web Objects is a dynamic page generation system that allows the developer to embed Python code inside HTML. It is similar in function to what JSP is to Java. ts a module that runs under mod_python and the Apache webserver. It is designed to offer a good balance between a providing a clean way to integrate design content from code, while doing so as fast as possible.
Download the latest version, then read the documentation. If youre into antiques, you can always browse the archives, but theres no reason to use an old version.
To install PWO, first decompress the tarball you downloaded.
$ gunzip pwo-0.XX.tar.gz
$ tar xvf pwo-0.XX.tar
Then, copy the pwo.py module into some location in your PYTHONPATH. The proper location is usually /usr/local/lib/python2.x/site-packages/
$ cp pwo-0.XX/pwo.py /usr/local/lib/python2.2/site-packages/
PWO should now be ready to use.
To configure a directory to make PWO pages, you first need to make sure that the directory is visible on the web. Ask your friendly Apache sysadmin if you dont know what this means. In this document, the path youll be keeping your .pwo files in is called /path/to/pwodir/, and its corresponding URL is http://yourserver/url/to/pwodir/.
Let Apache and mod_python know that the pwo.py will be handling requests to .pwo files in that directory. Do this by adding a few lines to our entry in your httpd.conf file.
AddHandler python-program .pwo
PythonHandler pwo
PythonDebug On
The PythonDebug directive is optional, but you will most likely want it enabled while you are developing. It will make exceptions print tracebacks to the browser in plain-text format. For security reasons, you should comment it out on production systems.
Now a file /path/to/pwodir/some_file.pwo will generate its page at http://yourserver/url/to/pwodir/some_file.pwo. Try copying a simple one of the included samples, like hello.pwo, to this directory to test your installation.
If youve never used PWO before, learn the syntax, and/or check out some sample pages.
<<lessDownload the latest version, then read the documentation. If youre into antiques, you can always browse the archives, but theres no reason to use an old version.
To install PWO, first decompress the tarball you downloaded.
$ gunzip pwo-0.XX.tar.gz
$ tar xvf pwo-0.XX.tar
Then, copy the pwo.py module into some location in your PYTHONPATH. The proper location is usually /usr/local/lib/python2.x/site-packages/
$ cp pwo-0.XX/pwo.py /usr/local/lib/python2.2/site-packages/
PWO should now be ready to use.
To configure a directory to make PWO pages, you first need to make sure that the directory is visible on the web. Ask your friendly Apache sysadmin if you dont know what this means. In this document, the path youll be keeping your .pwo files in is called /path/to/pwodir/, and its corresponding URL is http://yourserver/url/to/pwodir/.
Let Apache and mod_python know that the pwo.py will be handling requests to .pwo files in that directory. Do this by adding a few lines to our entry in your httpd.conf file.
AddHandler python-program .pwo
PythonHandler pwo
PythonDebug On
The PythonDebug directive is optional, but you will most likely want it enabled while you are developing. It will make exceptions print tracebacks to the browser in plain-text format. For security reasons, you should comment it out on production systems.
Now a file /path/to/pwodir/some_file.pwo will generate its page at http://yourserver/url/to/pwodir/some_file.pwo. Try copying a simple one of the included samples, like hello.pwo, to this directory to test your installation.
If youve never used PWO before, learn the syntax, and/or check out some sample pages.
Download (0.017MB)
Added: 2006-06-23 License: BSD License Price:
1218 downloads
Active Objects 2007-03-04
Active Objects is an implementation of the Active Object concept based on the boost::thread, boost::bind, boost::function libs. more>>
Active Objects is an implementation of the Active Object concept based on the boost::thread, boost::bind, and boost::function libraries.
The point of the library is to make taking advantage of multiprocessor machines as easy as possible. The library provides two types of functionality. The first is the ability to execute a function in a separate thread and automatically synchronize with the thread when the return value is needed.
The second is the ability to easily create a message cue for any existing class, and have that class process its messages asynchronously.
Enhancements:
- Minor code cleanup and code documentation updates.
<<lessThe point of the library is to make taking advantage of multiprocessor machines as easy as possible. The library provides two types of functionality. The first is the ability to execute a function in a separate thread and automatically synchronize with the thread when the return value is needed.
The second is the ability to easily create a message cue for any existing class, and have that class process its messages asynchronously.
Enhancements:
- Minor code cleanup and code documentation updates.
Download (0.32MB)
Added: 2007-03-07 License: Other/Proprietary License with Source Price:
961 downloads
Basset::Object 1.04
Basset::Object is a Perl module used to create objects. more>>
Basset::Object is a Perl module used to create objects.
This is my ultimate object creation toolset to date. It has roots in Mail::Bulkmail, Text::Flowchart, and the unreleased abstract object constructors that Ive tooled around with in the past.
If you want an object to be compatible with anything else Ive written, then subclass it off of here.
Of course, you dont have to use this to create subclasses, but youll run the risk of making something with an inconsistent interface vs. the rest of the system. Thatll confuse people and make them unhappy. So I recommend subclassing off of here to be consistent. Of course, you may not like these objects, but they do work well and are consistent. Consistency is very important in interface design, IMHO.
<<lessThis is my ultimate object creation toolset to date. It has roots in Mail::Bulkmail, Text::Flowchart, and the unreleased abstract object constructors that Ive tooled around with in the past.
If you want an object to be compatible with anything else Ive written, then subclass it off of here.
Of course, you dont have to use this to create subclasses, but youll run the risk of making something with an inconsistent interface vs. the rest of the system. Thatll confuse people and make them unhappy. So I recommend subclassing off of here to be consistent. Of course, you may not like these objects, but they do work well and are consistent. Consistency is very important in interface design, IMHO.
Download (0.14MB)
Added: 2007-06-20 License: GPL (GNU General Public License) Price:
856 downloads
C++ XML Objects 1.0.0.7
C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML. more>>
C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML. Boost, The STL and Patterns are used extensively. All platforms which support Boost will be supported.
Sometimes there is a need to save hierarchies of C++ objects to a file (or DB etc), and then retrieve them at a later date. This project allows your classes to derive from a single object (called "xmlobj"), provide a few extra methods which allow the visitor pattern to work on them and register them so that they can be read or written to an XML stream.
The only overhead is a per-class type and name of each object (as std::string). The members dont need to be wrapped which means that your memory footprint wont really get any larger.
There are actually 2 separate projects which are combined to make "cppxmlobj". The first is a called "cppreflect" and provides a framework for providing reflection to C++ objects. Reflection is the mechanism by which your class members can be referenced by a string name. To achieve this, "cppreflect" uses the visitor pattern. The other project is "cpppersist" which adds the right methods to each object so that it can be read or written to some type of stream.
These projects are included as part of this (they arent separate SourceForge projects), but they are completely independent of each other, so you could build your own scheme to persist your objects to a different type of file, or provide some other type of mechanism to read and write your objects data.
To interoperate, these two projects share a common base class which is provided by another independent project called "cppcommon". This is a simple class which provides the abstract interfaces necessary for an object to provide different types of facilities.
The project uses all the facilities of Boost for the build system (and for a bunch of the implementation) so you will need to get and build it. It uses the same license as Boost which means you can freely use it (its really only useful as source code anywhere), as long as you dont change the copyright message at the top of the files.
If you find it useful, or find some bugs (and fix them, then get back to me and Ill incorporate the changes. If you do this through SourceForge, then we can track the bugs etc.
Enhancements:
- Added in delayed loading. This allows a system to only load in an object in an XML file when the object is actually referenced. Added in "platforms" to documentation for supported platforms. Now builds on OS X Tiger, GCC 4.0 and latest BOOST (1.33.1). Also builds on latest Linux. Change the documentation layout (thanks Spirit), and added Generic objects. Also changed to use a single license.txt referenced at the top of each file. Since this code has been stable and working for a while, next release will be beta if I can build on a few more systems.
<<lessSometimes there is a need to save hierarchies of C++ objects to a file (or DB etc), and then retrieve them at a later date. This project allows your classes to derive from a single object (called "xmlobj"), provide a few extra methods which allow the visitor pattern to work on them and register them so that they can be read or written to an XML stream.
The only overhead is a per-class type and name of each object (as std::string). The members dont need to be wrapped which means that your memory footprint wont really get any larger.
There are actually 2 separate projects which are combined to make "cppxmlobj". The first is a called "cppreflect" and provides a framework for providing reflection to C++ objects. Reflection is the mechanism by which your class members can be referenced by a string name. To achieve this, "cppreflect" uses the visitor pattern. The other project is "cpppersist" which adds the right methods to each object so that it can be read or written to some type of stream.
These projects are included as part of this (they arent separate SourceForge projects), but they are completely independent of each other, so you could build your own scheme to persist your objects to a different type of file, or provide some other type of mechanism to read and write your objects data.
To interoperate, these two projects share a common base class which is provided by another independent project called "cppcommon". This is a simple class which provides the abstract interfaces necessary for an object to provide different types of facilities.
The project uses all the facilities of Boost for the build system (and for a bunch of the implementation) so you will need to get and build it. It uses the same license as Boost which means you can freely use it (its really only useful as source code anywhere), as long as you dont change the copyright message at the top of the files.
If you find it useful, or find some bugs (and fix them, then get back to me and Ill incorporate the changes. If you do this through SourceForge, then we can track the bugs etc.
Enhancements:
- Added in delayed loading. This allows a system to only load in an object in an XML file when the object is actually referenced. Added in "platforms" to documentation for supported platforms. Now builds on OS X Tiger, GCC 4.0 and latest BOOST (1.33.1). Also builds on latest Linux. Change the documentation layout (thanks Spirit), and added Generic objects. Also changed to use a single license.txt referenced at the top of each file. Since this code has been stable and working for a while, next release will be beta if I can build on a few more systems.
Download (0.40MB)
Added: 2006-04-05 License: Freeware Price:
736 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
Mock Objects for C++ 1.16.1
mockpp is a platform-independent generic unit testing framework for C++. more>>
mockpp is a platform independent generic unit testing framework for C++. Mock Objects for C++ goal is to facilitate developing unit tests in the spirit of Mock Objects for Java, EasyMock and jMock.
Mock objects allow you to set up predictible behaviour to help you test your production code by emulating some functionality your code depends on. This might for example be a huge database which is too difficult and time consuming to maintain just for testing purposes.
Originally I started with a port of MockObjects to C++ and wanted to keep the same interfaces. But in the meanwhile I found out more about Java and its differencens to C++ (its funny reflection api for example ) and so I had to change a bunch of details.
Additionally I included the working method of EasyMock. From my limited understanding of Java there seems to be something similar in MockObjects but I guess EasyMock is easier to use and certainly was easier to port to C++.
Enhancements:
- This release fixes a compilation issue on Mac OS platforms and a parsing problem with mockpp2xml.
<<lessMock objects allow you to set up predictible behaviour to help you test your production code by emulating some functionality your code depends on. This might for example be a huge database which is too difficult and time consuming to maintain just for testing purposes.
Originally I started with a port of MockObjects to C++ and wanted to keep the same interfaces. But in the meanwhile I found out more about Java and its differencens to C++ (its funny reflection api for example ) and so I had to change a bunch of details.
Additionally I included the working method of EasyMock. From my limited understanding of Java there seems to be something similar in MockObjects but I guess EasyMock is easier to use and certainly was easier to port to C++.
Enhancements:
- This release fixes a compilation issue on Mac OS platforms and a parsing problem with mockpp2xml.
Download (0.68MB)
Added: 2007-06-16 License: GPL (GNU General Public License) Price:
864 downloads
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
Math::BaseCalc 1.011
Math::BaseCalc is a Perl module that can convert numbers between various bases. more>>
Math::BaseCalc is a Perl module that can convert numbers between various bases.
SYNOPSIS
use Math::BaseCalc;
my $calc = new Math::BaseCalc(digits => [0,1]); #Binary
my $bin_string = $calc->to_base(465); # Convert 465 to binary
$calc->digits(oct); # Octal
my $number = $calc->from_base(1574); # Convert octal 1574 to decimal
This module facilitates the conversion of numbers between various number bases. You may define your own digit sets, or use any of several predefined digit sets.
The to_base() and from_base() methods convert between Perl numbers and strings which represent these numbers in other bases. For instance, if youre using the binary digit set [0,1], $calc->to_base(5) will return the string "101". $calc->from_base("101") will return the number 5.
To convert between, say, base 7 and base 36, use the 2-step process of first converting to a Perl number, then to the desired base for the result:
$calc7 = new Math::BaseCalc(digits=>[0..6]);
$calc36 = new Math::BaseCalc(digits=>[0..9,a..z];
$in_base_36 = $calc36->to_base( $calc7->from_base(3506) );
If you just need to handle regular octal & hexdecimal strings, you probably dont need this module. See the sprintf(), oct(), and hex() Perl functions.
<<lessSYNOPSIS
use Math::BaseCalc;
my $calc = new Math::BaseCalc(digits => [0,1]); #Binary
my $bin_string = $calc->to_base(465); # Convert 465 to binary
$calc->digits(oct); # Octal
my $number = $calc->from_base(1574); # Convert octal 1574 to decimal
This module facilitates the conversion of numbers between various number bases. You may define your own digit sets, or use any of several predefined digit sets.
The to_base() and from_base() methods convert between Perl numbers and strings which represent these numbers in other bases. For instance, if youre using the binary digit set [0,1], $calc->to_base(5) will return the string "101". $calc->from_base("101") will return the number 5.
To convert between, say, base 7 and base 36, use the 2-step process of first converting to a Perl number, then to the desired base for the result:
$calc7 = new Math::BaseCalc(digits=>[0..6]);
$calc36 = new Math::BaseCalc(digits=>[0..9,a..z];
$in_base_36 = $calc36->to_base( $calc7->from_base(3506) );
If you just need to handle regular octal & hexdecimal strings, you probably dont need this module. See the sprintf(), oct(), and hex() Perl functions.
Download (0.004MB)
Added: 2006-08-08 License: Perl Artistic License Price:
1175 downloads
Rose::HTML::Objects 0.547
Rose::HTML::Objects is a Perl object-oriented interfaces for HTML. more>>
Rose::HTML::Objects is a Perl object-oriented interfaces for HTML.
SYNOPSIS
use Rose::HTML::Form;
$form = Rose::HTML::Form->new(action => /foo,
method => post);
$form->add_fields
(
name => { type => text, size => 20, required => 1 },
height => { type => text, size => 5, maxlength => 5 },
bday => { type => datetime },
);
$form->params(name => John, height => 6ft, bday => 01/24/1984);
$form->init_fields();
$bday = $form->field(bday)->internal_value; # DateTime object
print $bday->strftime(%A); # Tuesday
print $form->field(bday)->html;
The Rose::HTML::Object::* family of classes represent HTML tags, or groups of tags. These objects allow HTML to be arbitrarily manipulated, then serialized to actual HTML (or XHTML). Currently, the process only works in one direction. Objects cannot be constructed from their serialized representations. In practice, given the purpose of these modules, this is not an important limitation.
Any HTML tag can theoretically be represented by a Rose::HTML::Object-derived class, but this family of modules was originally motivated by a desire to simplify the use of HTML forms.
The form/field object interfaces have been heavily abstracted to allow for input and output filtering, inflation/deflation of values, and compound fields (fields that contain other fields). The classes are also designed to be subclassed. The creation of custom form and field subclasses is really the "big win" for these modules.
There is also a simple image tag class which is useful for auto-populating the width and height attributes of img tags. Future releases may include object representations of other HTML tags. Contributions are welcome.
<<lessSYNOPSIS
use Rose::HTML::Form;
$form = Rose::HTML::Form->new(action => /foo,
method => post);
$form->add_fields
(
name => { type => text, size => 20, required => 1 },
height => { type => text, size => 5, maxlength => 5 },
bday => { type => datetime },
);
$form->params(name => John, height => 6ft, bday => 01/24/1984);
$form->init_fields();
$bday = $form->field(bday)->internal_value; # DateTime object
print $bday->strftime(%A); # Tuesday
print $form->field(bday)->html;
The Rose::HTML::Object::* family of classes represent HTML tags, or groups of tags. These objects allow HTML to be arbitrarily manipulated, then serialized to actual HTML (or XHTML). Currently, the process only works in one direction. Objects cannot be constructed from their serialized representations. In practice, given the purpose of these modules, this is not an important limitation.
Any HTML tag can theoretically be represented by a Rose::HTML::Object-derived class, but this family of modules was originally motivated by a desire to simplify the use of HTML forms.
The form/field object interfaces have been heavily abstracted to allow for input and output filtering, inflation/deflation of values, and compound fields (fields that contain other fields). The classes are also designed to be subclassed. The creation of custom form and field subclasses is really the "big win" for these modules.
There is also a simple image tag class which is useful for auto-populating the width and height attributes of img tags. Future releases may include object representations of other HTML tags. Contributions are welcome.
Download (0.13MB)
Added: 2007-03-26 License: Perl Artistic License Price:
942 downloads
Math::Logic 1.19
Math::Logic is a Perl module that provides pure 2, 3 or multi-value logic. more>>
Math::Logic is a Perl module that provides pure 2, 3 or multi-value logic.
SYNOPSIS
use Math::Logic qw( $TRUE $FALSE $UNDEF $STR_TRUE $STR_FALSE $STR_UNDEF ) ;
# 1 0 -1 TRUE FALSE UNDEF
use Math::Logic :NUM ; # $TRUE $FALSE $UNDEF -- what you normally want
use Math::Logic :ALL ; # All the constants
use Math::Logic :STR ; # $STR_TRUE $STR_FALSE $STR_UNDEF
# 2-degree logic
my $true = Math::Logic->new( -value => $TRUE, -degree => 2 ) ;
my $false = Math::Logic->new( -value => $FALSE, -degree => 2 ) ;
my $x = Math::Logic->new_from_string( TRUE,2 ) ;
print "true" if $true ;
# 3-degree logic (non-propagating)
my $true = Math::Logic->new( -value => $TRUE, -degree => 3 ) ;
my $false = Math::Logic->new( -value => $FALSE, -degree => 3 ) ;
my $undef = Math::Logic->new( -value => $UNDEF, -degree => 3 ) ;
my $x = Math::Logic->new_from_string( FALSE,3 ) ;
print "true" if ( $true | $undef ) == $TRUE ;
# 3-degree logic (propagating)
my $true = Math::Logic->new( -value => $TRUE, -degree => 3, -propagate => 1 ) ;
my $false = Math::Logic->new( -value => $FALSE, -degree => 3, -propagate => 1 ) ;
my $undef = Math::Logic->new( -value => $UNDEF, -degree => 3, -propagate => 1 ) ;
my $x = Math::Logic->new_from_string( ( UNDEF, 3, -propagate ) ) ;
print "undef" if ( $true | $undef ) == $UNDEF ;
# multi-degree logic
my $True = 100 ; # Define our own true
my $False = $FALSE ;
my $true = Math::Logic->new( -value => $True, -degree => $True ) ;
my $very = Math::Logic->new( -value => 67, -degree => $True ) ;
my $fairly = Math::Logic->new( -value => 33, -degree => $True ) ;
my $false = Math::Logic->new( -value => $False, -degree => $True ) ;
my $x = Math::Logic->new_from_string( "25,$True" ) ;
print "maybe" if ( $very | $fairly ) > 50 ;
# We can have arbitrarily complex expressions; the result is a Math::Logic
# object; all arguments must be Math::Logic objects or things which can be
# promoted into such and must all be compatible. The outcome depends on
# which kind of logic is being used.
my $xor = ( $x | $y ) & ( ! ( $x & $y ) ) ;
# This is identical to:
my $xor = $x ^ $y ;
Perls built-in logical operators, and, or, xor and not support 2-value logic. This means that they always produce a result which is either true or false. In fact perl sometimes returns 0 and sometimes returns undef for false depending on the operator and the order of the arguments. For "true" Perl generally returns the first value that evaluated to true which turns out to be extremely useful in practice. Given the choice Perls built-in logical operators are to be preferred -- but when you really want pure 2-degree logic or 3-degree logic or multi-degree logic they are available through this module.
The only 2-degree logic values are 1 (TRUE) and 0 (FALSE).
The only 3-degree logic values are 1 (TRUE), 0 (FALSE) and -1 (UNDEF). Note that UNDEF is -1 not undef!
The only multi-degree logic values are 0 (FALSE)..-degree -- the value of TRUE is equal to the degree, usually 100.
The -degree is the maximum value (except for 2 and 3-degree logic); i.e. logic of n-degree is n+1-value logic, e.g. 100-degree logic has 101 values, 0..100.
Although some useful constants may be exported, this is an object module and the results of logical comparisons are Math::Logic objects.
<<lessSYNOPSIS
use Math::Logic qw( $TRUE $FALSE $UNDEF $STR_TRUE $STR_FALSE $STR_UNDEF ) ;
# 1 0 -1 TRUE FALSE UNDEF
use Math::Logic :NUM ; # $TRUE $FALSE $UNDEF -- what you normally want
use Math::Logic :ALL ; # All the constants
use Math::Logic :STR ; # $STR_TRUE $STR_FALSE $STR_UNDEF
# 2-degree logic
my $true = Math::Logic->new( -value => $TRUE, -degree => 2 ) ;
my $false = Math::Logic->new( -value => $FALSE, -degree => 2 ) ;
my $x = Math::Logic->new_from_string( TRUE,2 ) ;
print "true" if $true ;
# 3-degree logic (non-propagating)
my $true = Math::Logic->new( -value => $TRUE, -degree => 3 ) ;
my $false = Math::Logic->new( -value => $FALSE, -degree => 3 ) ;
my $undef = Math::Logic->new( -value => $UNDEF, -degree => 3 ) ;
my $x = Math::Logic->new_from_string( FALSE,3 ) ;
print "true" if ( $true | $undef ) == $TRUE ;
# 3-degree logic (propagating)
my $true = Math::Logic->new( -value => $TRUE, -degree => 3, -propagate => 1 ) ;
my $false = Math::Logic->new( -value => $FALSE, -degree => 3, -propagate => 1 ) ;
my $undef = Math::Logic->new( -value => $UNDEF, -degree => 3, -propagate => 1 ) ;
my $x = Math::Logic->new_from_string( ( UNDEF, 3, -propagate ) ) ;
print "undef" if ( $true | $undef ) == $UNDEF ;
# multi-degree logic
my $True = 100 ; # Define our own true
my $False = $FALSE ;
my $true = Math::Logic->new( -value => $True, -degree => $True ) ;
my $very = Math::Logic->new( -value => 67, -degree => $True ) ;
my $fairly = Math::Logic->new( -value => 33, -degree => $True ) ;
my $false = Math::Logic->new( -value => $False, -degree => $True ) ;
my $x = Math::Logic->new_from_string( "25,$True" ) ;
print "maybe" if ( $very | $fairly ) > 50 ;
# We can have arbitrarily complex expressions; the result is a Math::Logic
# object; all arguments must be Math::Logic objects or things which can be
# promoted into such and must all be compatible. The outcome depends on
# which kind of logic is being used.
my $xor = ( $x | $y ) & ( ! ( $x & $y ) ) ;
# This is identical to:
my $xor = $x ^ $y ;
Perls built-in logical operators, and, or, xor and not support 2-value logic. This means that they always produce a result which is either true or false. In fact perl sometimes returns 0 and sometimes returns undef for false depending on the operator and the order of the arguments. For "true" Perl generally returns the first value that evaluated to true which turns out to be extremely useful in practice. Given the choice Perls built-in logical operators are to be preferred -- but when you really want pure 2-degree logic or 3-degree logic or multi-degree logic they are available through this module.
The only 2-degree logic values are 1 (TRUE) and 0 (FALSE).
The only 3-degree logic values are 1 (TRUE), 0 (FALSE) and -1 (UNDEF). Note that UNDEF is -1 not undef!
The only multi-degree logic values are 0 (FALSE)..-degree -- the value of TRUE is equal to the degree, usually 100.
The -degree is the maximum value (except for 2 and 3-degree logic); i.e. logic of n-degree is n+1-value logic, e.g. 100-degree logic has 101 values, 0..100.
Although some useful constants may be exported, this is an object module and the results of logical comparisons are Math::Logic objects.
Download (0.012MB)
Added: 2007-07-02 License: Perl Artistic License Price:
847 downloads
WFMath 0.3.4
WFMath is a math library that focus on geometric objects. more>>
WFMath is a math library that focus on geometric objects.
Thus, it includes several shapes (boxes, balls, lines), in addition to the basic math objects that are used to build these shapes (points, vectors, and matrices).
Most of the library classes can be divided into two sorts. The first kind are basic mathematical objects, whose members are all fundamental types.
The second kind are shapes, which implement the shape class interface described in doc/shape.h.
There are four classes of the first kind:
Vector
A basic mathematical vector
RotMatrix
An orthogonal matrix of determinant 1, useful for describing rotations.
Point
A point in space. This basic class also implements the shape interface in doc/shape.h.
Quaternion
A quaternion
The shape classes are:
AxisBox
A box oriented parallel to the coordinate axes
Ball
Ball< 2 > is a circle, Ball< 3 > is a sphere, etc.
Segment
A line segment, defined by its endpoints
RotBox
Like AxisBox, but it can be rotated to arbitrary angles
Polygon
A 2 dimensional polygon contained in a (possibly) larger dimensional space
The library also contains some probability-related functions, as well as wrappers for system time and random number functions.
<<lessThus, it includes several shapes (boxes, balls, lines), in addition to the basic math objects that are used to build these shapes (points, vectors, and matrices).
Most of the library classes can be divided into two sorts. The first kind are basic mathematical objects, whose members are all fundamental types.
The second kind are shapes, which implement the shape class interface described in doc/shape.h.
There are four classes of the first kind:
Vector
A basic mathematical vector
RotMatrix
An orthogonal matrix of determinant 1, useful for describing rotations.
Point
A point in space. This basic class also implements the shape interface in doc/shape.h.
Quaternion
A quaternion
The shape classes are:
AxisBox
A box oriented parallel to the coordinate axes
Ball
Ball< 2 > is a circle, Ball< 3 > is a sphere, etc.
Segment
A line segment, defined by its endpoints
RotBox
Like AxisBox, but it can be rotated to arbitrary angles
Polygon
A 2 dimensional polygon contained in a (possibly) larger dimensional space
The library also contains some probability-related functions, as well as wrappers for system time and random number functions.
Download (0.40MB)
Added: 2005-09-27 License: GPL (GNU General Public License) Price:
1490 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 math objects 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