matrix classes
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 2691
Matrix GL Screensaver 2.2.2
Matrix GL Screensaver is a 3D screensaver based on more>>
Matrix GL Screensaver 2.2.2 is a free yet cool three-dimensional screensaver based on "The Matrix Reloaded. For running it you need a graphics card with an OpenGL support. Source code is available under the GNU GPL.
Installation:
- Unpack the tar.gz file and place files in temporary directory
- Run the console with root privilegies and run matrix_gl with "install" option: ./matrix_gl -install
- In "Control Centre" choose "Look and feel"->"Screensaver" and set the Matrix GL
- Matrix GL requires freely distributable library Glut.
Added: 2009-07-07 License: GPL Price: FREE
13 downloads
Other version of Matrix GL Screensaver
License:GPL (GNU General Public License)
C++ Foundation Classes 0.1.4
C++ Foundation Classes package contains a Fully Overloaded String object that works with other classes. more>>
The C++ Foundation Classes package contains a Fully Overloaded String object that works with other classes (even those not owned by CFC), a full (template) Matrix and Vector Object, some Data types like DateTime, Boolean, Integer, Real, and Complex, and Sets, Stack, Queues, etc. C++ Foundation Classes also has an LL-type Parser and Scanner for lexical reading.
Installation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes awhile. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Optionally, type `make check to run any self-tests that come with the package.
4. Type `make install to install the programs and any data files and documentation.
5. You can remove the program binaries and object files from the source code directory by typing `make clean. To also remove the files that `configure created (so you can compile the package for a different kind of computer), type `make distclean. There is also a `make maintainer-clean target, but that is intended mainly for the packages developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution.
<<lessInstallation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes awhile. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Optionally, type `make check to run any self-tests that come with the package.
4. Type `make install to install the programs and any data files and documentation.
5. You can remove the program binaries and object files from the source code directory by typing `make clean. To also remove the files that `configure created (so you can compile the package for a different kind of computer), type `make distclean. There is also a `make maintainer-clean target, but that is intended mainly for the packages developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution.
Download (1.2MB)
Added: 2005-11-17 License: GPL (GNU General Public License) Price:
1440 downloads
KMatrix3d 0.1
KMatrix3d is a nice 3D matrix OpenGL screen saver for KDE. more>>
KMatrix3d is a nice 3D matrix OpenGL screen saver for KDE.
This version is based on the code by Thomas John.
IMPORTANT: Packagers wanted - please contact developer.
Future:
Currently Im working on the V2 version of KMatrix3D which will contain following effects:
1) endless corridor section
2) matrix world transitions
3) matrix reloaded intro effects
4) extensive use of shaders
5) performace improvements
<<lessThis version is based on the code by Thomas John.
IMPORTANT: Packagers wanted - please contact developer.
Future:
Currently Im working on the V2 version of KMatrix3D which will contain following effects:
1) endless corridor section
2) matrix world transitions
3) matrix reloaded intro effects
4) extensive use of shaders
5) performace improvements
Download (MB)
Added: 2007-02-05 License: GPL (GNU General Public License) Price:
996 downloads
TERMatrix 0.1
TERMatrix software emulates The Matrix on your VT-100 compatible terminal 8^). more>>
TERMatrix software emulates "The Matrix" on your VT-100 compatible terminal 8^).
It has been tested on GNU/Linux.
Installation:
To compile, just type ``make.
To enter the matrix, just type ``./termatrix.
To end it, just press CTRL-c .
"The Matrix" is a movie from Warner Bros. Inc. Warner Bros. Inc. isnt affiliated in any way with TERMatrix.
<<lessIt has been tested on GNU/Linux.
Installation:
To compile, just type ``make.
To enter the matrix, just type ``./termatrix.
To end it, just press CTRL-c .
"The Matrix" is a movie from Warner Bros. Inc. Warner Bros. Inc. isnt affiliated in any way with TERMatrix.
Download (0.008MB)
Added: 2006-01-27 License: GPL (GNU General Public License) Price:
1365 downloads
ZatriX 1.1
ZatriX is a black and green matrix theme for KDE created in Slackware 11.0 with KDE 3.5.4. more>>
ZatriX is a black and green matrix theme for KDE created in Slackware 11.0 with KDE 3.5.4.
<<less Download (0.72MB)
Added: 2007-04-13 License: GPL (GNU General Public License) Price:
926 downloads
Matrix Public Net 0.5.0
Matrix Public Net spreads short voice messages through a web of trust. more>>
Matrix Public Net spreads short voice messages through a web of trust; credibility decays until a threshold where the message is dropped.
Matrix Public Net comes with a program for recording and sending messages as well as plugins for XMMS and WinAmp that play received messages.
Extending the Blogosphere
This is a proposal for the extension of the Blogosphere, the network of Weblogs.
Individual Blogs are connected by their users implicitly: a community emerges, because users regularly read and comment on others entries. By making this connexions explicit, a web of trust is created which functions like a reputation mechanism.
The resulting system leverages the advantages of social networks for the distribution of news. It can be implemented as a decentralised system, with a simple extension to the Blogosphere.
The system is explained in a paper and in the presentation at the Mobile Entertainment conference in Manchester.
The RSS MPN-Interest module is the first part of this extension.
<<lessMatrix Public Net comes with a program for recording and sending messages as well as plugins for XMMS and WinAmp that play received messages.
Extending the Blogosphere
This is a proposal for the extension of the Blogosphere, the network of Weblogs.
Individual Blogs are connected by their users implicitly: a community emerges, because users regularly read and comment on others entries. By making this connexions explicit, a web of trust is created which functions like a reputation mechanism.
The resulting system leverages the advantages of social networks for the distribution of news. It can be implemented as a decentralised system, with a simple extension to the Blogosphere.
The system is explained in a paper and in the presentation at the Mobile Entertainment conference in Manchester.
The RSS MPN-Interest module is the first part of this extension.
Download (0.45MB)
Added: 2006-05-12 License: GPL (GNU General Public License) Price:
1260 downloads
Perl6::Classes 0.22
Perl6::Classes project contains first class classes in Perl 5. more>>
Perl6::Classes project contains first class classes in Perl 5.
SYNOPSIS
use Perl6::Classes;
class Composer {
submethod BUILD { print "Giving birth to a new composern" }
method compose { print "Writing some music...n" }
}
class ClassicalComposer is Composer {
method compose { print "Writing some muzak...n" }
}
class ModernComposer is Composer {
submethod BUILD($) { $.length = shift }
method compose() { print((map { int rand 10 } 1..$.length), "n") }
has $.length;
}
my $beethoven = new ClassicalComposer;
my $barber = new ModernComposer 4;
my $mahler = ModernComposer->new(400);
$beethoven->compose; # Writing some muzak...
$barber->compose # 7214
compose $mahler; # 89275869347968374698756....
Perl6::Classes allows the creation of (somewhat) Perl 6-style classes in Perl 5. The following features are currently supported:
subs, methods, and submethods
And their respective scoping rules.
Attributes
Which are available through the has keyword, and look like $.this.
Inheritance
Both single and multiple inheritance are available through the is keyword.
Signatures
Signatures on methods, subs, and submethods are supported, but just the Perl 5 kind.
Data hiding
Using the public, protected, and private traits, you can enforce (run-time) data hiding. This is not supported on attributes, which are always private.
Anonymous classes
That respect closures. You can now nest them inside methods of other classes, even other anonymous ones!
The Perl6::Classes module augments Perls syntax with a new declarator: class. It offers the advantage over Perls standard OO mechanism that it is conceptually easier to see (especially for those from a C++/Java background). It offers the disadvantage, of course, of being less versatile.
<<lessSYNOPSIS
use Perl6::Classes;
class Composer {
submethod BUILD { print "Giving birth to a new composern" }
method compose { print "Writing some music...n" }
}
class ClassicalComposer is Composer {
method compose { print "Writing some muzak...n" }
}
class ModernComposer is Composer {
submethod BUILD($) { $.length = shift }
method compose() { print((map { int rand 10 } 1..$.length), "n") }
has $.length;
}
my $beethoven = new ClassicalComposer;
my $barber = new ModernComposer 4;
my $mahler = ModernComposer->new(400);
$beethoven->compose; # Writing some muzak...
$barber->compose # 7214
compose $mahler; # 89275869347968374698756....
Perl6::Classes allows the creation of (somewhat) Perl 6-style classes in Perl 5. The following features are currently supported:
subs, methods, and submethods
And their respective scoping rules.
Attributes
Which are available through the has keyword, and look like $.this.
Inheritance
Both single and multiple inheritance are available through the is keyword.
Signatures
Signatures on methods, subs, and submethods are supported, but just the Perl 5 kind.
Data hiding
Using the public, protected, and private traits, you can enforce (run-time) data hiding. This is not supported on attributes, which are always private.
Anonymous classes
That respect closures. You can now nest them inside methods of other classes, even other anonymous ones!
The Perl6::Classes module augments Perls syntax with a new declarator: class. It offers the advantage over Perls standard OO mechanism that it is conceptually easier to see (especially for those from a C++/Java background). It offers the disadvantage, of course, of being less versatile.
Download (0.007MB)
Added: 2007-06-08 License: Perl Artistic License Price:
868 downloads
Math::Matrix 0.5
Math::Matrix can multiply and invert Matrices. more>>
Math::Matrix can multiply and invert Matrices.
The following methods are available:
new
Constructor arguments are a list of references to arrays of the same length. The arrays are copied. The method returns undef in case of error.
$a = new Math::Matrix ([rand,rand,rand],
[rand,rand,rand],
[rand,rand,rand]);
If you call new as method, a zero filled matrix with identical deminsions is returned.
clone
You can clone a matrix by calling:
$b = $a->clone;
size
You can determine the dimensions of a matrix by calling:
($m, $n) = $a->size;
concat
Concatenates two matrices of same row count. The result is a new matrix or undef in case of error.
$b = new Math::Matrix ([rand],[rand],[rand]);
$c = $a->concat($b);
transpose
Returns the transposed matrix. This is the matrix where colums and rows of the argument matrix are swaped.
multiply
Multiplies two matrices where the length of the rows in the first matrix is the same as the length of the columns in the second matrix. Returns the product or undef in case of error.
solve
Solves a equation system given by the matrix. The number of colums must be greater than the number of rows. If variables are dependent from each other, the second and all further of the dependent coefficients are 0. This means the method can handle such systems. The method returns a matrix containing the solutions in its columns or undef in case of error.
invert
Invert a Matrix using solve.
multiply_scalar
Multiplies a matrix and a scalar resulting in a matrix of the same dimensions with each element scaled with the scalar.
$a->multiply_scalar(2); scale matrix by factor 2
add
Add two matrices of the same dimensions.
substract
Shorthand for add($other->negative)
equal
Decide if two matrices are equal. The criterion is, that each pair of elements differs less than $Math::Matrix::eps.
slice
Extract columns:
a->slice(1,3,5);
determinant
Compute the determinant of a matrix.
dot_product
Compute the dot product of two vectors.
absolute
Compute the absolute value of a vector.
normalizing
Normalize a vector.
cross_product
Compute the cross-product of vectors.
print
Prints the matrix on STDOUT. If the method has additional parameters, these are printed before the matrix is printed.
pinvert
Compute the pseudo-inverse of the matrix: ((AA)^-1)A
EXAMPLE
use Math::Matrix;
srand(time);
$a = new Math::Matrix ([rand,rand,rand],
[rand,rand,rand],
[rand,rand,rand]);
$x = new Math::Matrix ([rand,rand,rand]);
$a->print("An");
$E = $a->concat($x->transpose);
$E->print("Equation systemn");
$s = $E->solve;
$s->print("Solutions sn");
$a->multiply($s)->print("A*sn");
<<lessThe following methods are available:
new
Constructor arguments are a list of references to arrays of the same length. The arrays are copied. The method returns undef in case of error.
$a = new Math::Matrix ([rand,rand,rand],
[rand,rand,rand],
[rand,rand,rand]);
If you call new as method, a zero filled matrix with identical deminsions is returned.
clone
You can clone a matrix by calling:
$b = $a->clone;
size
You can determine the dimensions of a matrix by calling:
($m, $n) = $a->size;
concat
Concatenates two matrices of same row count. The result is a new matrix or undef in case of error.
$b = new Math::Matrix ([rand],[rand],[rand]);
$c = $a->concat($b);
transpose
Returns the transposed matrix. This is the matrix where colums and rows of the argument matrix are swaped.
multiply
Multiplies two matrices where the length of the rows in the first matrix is the same as the length of the columns in the second matrix. Returns the product or undef in case of error.
solve
Solves a equation system given by the matrix. The number of colums must be greater than the number of rows. If variables are dependent from each other, the second and all further of the dependent coefficients are 0. This means the method can handle such systems. The method returns a matrix containing the solutions in its columns or undef in case of error.
invert
Invert a Matrix using solve.
multiply_scalar
Multiplies a matrix and a scalar resulting in a matrix of the same dimensions with each element scaled with the scalar.
$a->multiply_scalar(2); scale matrix by factor 2
add
Add two matrices of the same dimensions.
substract
Shorthand for add($other->negative)
equal
Decide if two matrices are equal. The criterion is, that each pair of elements differs less than $Math::Matrix::eps.
slice
Extract columns:
a->slice(1,3,5);
determinant
Compute the determinant of a matrix.
dot_product
Compute the dot product of two vectors.
absolute
Compute the absolute value of a vector.
normalizing
Normalize a vector.
cross_product
Compute the cross-product of vectors.
Prints the matrix on STDOUT. If the method has additional parameters, these are printed before the matrix is printed.
pinvert
Compute the pseudo-inverse of the matrix: ((AA)^-1)A
EXAMPLE
use Math::Matrix;
srand(time);
$a = new Math::Matrix ([rand,rand,rand],
[rand,rand,rand],
[rand,rand,rand]);
$x = new Math::Matrix ([rand,rand,rand]);
$a->print("An");
$E = $a->concat($x->transpose);
$E->print("Equation systemn");
$s = $E->solve;
$s->print("Solutions sn");
$a->multiply($s)->print("A*sn");
Download (0.006MB)
Added: 2007-08-08 License: Perl Artistic License Price:
810 downloads
Meta Matrix Library 0.7.2
Meta Matrix Library is a modular designed collection of C libraries. more>>
Meta Matrix Library is a modular designed collection of C libraries. Meta Matrix Library was developed as part of the Free Finite Element Package to provide easy and consistent access to numerical linear algebra software for sparse and dense matrices.
The dense matrix and vector operations of the package are based on LAPACK and BLAS (focused upon ATLAS). For more details of LAPACK and BLAS see Related Links. Beyond this MEML supports UMFPACK ( SuperLU projected ) as solver for linear systems of equations with sparse matrices.
<<lessThe dense matrix and vector operations of the package are based on LAPACK and BLAS (focused upon ATLAS). For more details of LAPACK and BLAS see Related Links. Beyond this MEML supports UMFPACK ( SuperLU projected ) as solver for linear systems of equations with sparse matrices.
Download (0.45MB)
Added: 2006-05-21 License: BSD License Price:
1256 downloads
Objective-C Foundation Classes 0.7.1
Objective-C Foundation Classes is an Objective-C library. more>>
Objective-C Foundation Classes is an Objective-C library.
It contains general purpose classes for easier development of applications, in areas such as data types, network, C library wrappers, collections, and compound classes.
The classes in the library are grouped in five clusters:
- DataTypes - integer, text string, fraction, bitarray, date/time, random generators, big integer, big double ...
- Collections - array, list, hash table, AVL and n-tree, circular array, graph ...
- Network - TCP/UDP server and client, HTTP client, Telnet client ...
- C-library wrappers - DBM, socket, MD5, regular expression, timer, file, directory, gzip and bzip2 file, text screen ...
- Compound - Argument parser, calendar, finite state machine, tokenizer, XML tree, discrete distribution, objective-c source tokenizer ...
Enhancements:
- A new class (DBigFraction) and a new protocol (DBitArithmetic) have been added to the library.
- There are also several bugfixes related to 64-bit platforms.
- The copy-constructor support has been improved, and as a result all collections can now be (deep) copied.
- There are some small bugfixes, and several classes have been extended with new methods.
<<lessIt contains general purpose classes for easier development of applications, in areas such as data types, network, C library wrappers, collections, and compound classes.
The classes in the library are grouped in five clusters:
- DataTypes - integer, text string, fraction, bitarray, date/time, random generators, big integer, big double ...
- Collections - array, list, hash table, AVL and n-tree, circular array, graph ...
- Network - TCP/UDP server and client, HTTP client, Telnet client ...
- C-library wrappers - DBM, socket, MD5, regular expression, timer, file, directory, gzip and bzip2 file, text screen ...
- Compound - Argument parser, calendar, finite state machine, tokenizer, XML tree, discrete distribution, objective-c source tokenizer ...
Enhancements:
- A new class (DBigFraction) and a new protocol (DBitArithmetic) have been added to the library.
- There are also several bugfixes related to 64-bit platforms.
- The copy-constructor support has been improved, and as a result all collections can now be (deep) copied.
- There are some small bugfixes, and several classes have been extended with new methods.
Download (0.74MB)
Added: 2006-07-27 License: GPL (GNU General Public License) Price:
1196 downloads
Rauls classes for PHP 0.6.3
Rauls classes for PHP is an OOP database abstraction layer for PHP 5.1 or greater. more>>
Rauls classes for PHP is an OOP database abstraction layer for PHP 5.1 or greater. Rauls classes for PHP provides abstract classes to access database servers and traverse result sets.
There are several implementation classes to access different types of databases: SQLite, MySQL, PostgreSQL, and MSSQL.
The classes provide functions to establish connections, execute queries, traverse result sets with pagination support, and retrieve the list of databases, tables and fields. Any possible error is signaled by throwing exceptions with specific message and error code.
Enhancements:
- A quickref.txt file was added to the project.
- A totalRows get property was included for SQL result objects.
- A third optional parameter was added to the printPageSelect method in order to return the page < select > code as an string instead of printing it.
<<lessThere are several implementation classes to access different types of databases: SQLite, MySQL, PostgreSQL, and MSSQL.
The classes provide functions to establish connections, execute queries, traverse result sets with pagination support, and retrieve the list of databases, tables and fields. Any possible error is signaled by throwing exceptions with specific message and error code.
Enhancements:
- A quickref.txt file was added to the project.
- A totalRows get property was included for SQL result objects.
- A third optional parameter was added to the printPageSelect method in order to return the page < select > code as an string instead of printing it.
Download (0.050MB)
Added: 2006-06-08 License: MIT/X Consortium License Price:
1235 downloads
classes::Test 0.942
classes::Test are functions to help with classes pragma testing. more>>
classes::Test are functions to help with classes pragma testing.
SYNOPSIS
can_new
can_set_get
has_decl
has_class_const
has_mixins
has_mixins_hash
is_classes MyClass;
is_classes main;
is_throwable X::Mine;
is_classes_exc X::Mine;
Generic tests based on Test::Builder designed to help write unit tests for code that uses the classes pragma.
<<lessSYNOPSIS
can_new
can_set_get
has_decl
has_class_const
has_mixins
has_mixins_hash
is_classes MyClass;
is_classes main;
is_throwable X::Mine;
is_classes_exc X::Mine;
Generic tests based on Test::Builder designed to help write unit tests for code that uses the classes pragma.
Download (0.16MB)
Added: 2006-10-31 License: Perl Artistic License Price:
1088 downloads
Bio::Matrix::PSM::InstanceSite 1.4
Bio::Matrix::PSM::InstanceSite is a PSM site occurance. more>>
Bio::Matrix::PSM::InstanceSite is a PSM site occurance.
SYNOPSIS
use Bio::Matrix::PSM::InstanceSite;
#You can get an InstanceSite object either from a file:
my ($instances,$matrix)=$SomePSMFile->parse_next;
#or from memory
my %params=(seq=>TATAAT,
id=>"TATAbox1", accession=>ENSG00000122304, mid=>TB1,
desc=>TATA box, experimentally verified in PRM1 gene,
relpos=>-35);
Abstract interface to PSM site occurrence (PSM sequence match). InstanceSite objects may be used to describe a PSM (See Bio::Matrix::PSM::SiteMatrix) sequence matches. The usual characteristic of such a match is sequence coordinates, score, sequence and sequence (gene) identifier- accession number or other id.
This object inherits from Bio::LocatableSeq (which defines the real sequence) and might hold a SiteMatrix object, used to detect the CRE (cis-regulatory element), or created from this CRE.
While the documentation states that the motif id and gene id (accession) combination should be unique, this is not entirely true- there might be more than one occurrence of the same cis-regulatory element in the upstream region of the same gene. Therefore relpos would be the third element to create a really unique combination.
<<lessSYNOPSIS
use Bio::Matrix::PSM::InstanceSite;
#You can get an InstanceSite object either from a file:
my ($instances,$matrix)=$SomePSMFile->parse_next;
#or from memory
my %params=(seq=>TATAAT,
id=>"TATAbox1", accession=>ENSG00000122304, mid=>TB1,
desc=>TATA box, experimentally verified in PRM1 gene,
relpos=>-35);
Abstract interface to PSM site occurrence (PSM sequence match). InstanceSite objects may be used to describe a PSM (See Bio::Matrix::PSM::SiteMatrix) sequence matches. The usual characteristic of such a match is sequence coordinates, score, sequence and sequence (gene) identifier- accession number or other id.
This object inherits from Bio::LocatableSeq (which defines the real sequence) and might hold a SiteMatrix object, used to detect the CRE (cis-regulatory element), or created from this CRE.
While the documentation states that the motif id and gene id (accession) combination should be unique, this is not entirely true- there might be more than one occurrence of the same cis-regulatory element in the upstream region of the same gene. Therefore relpos would be the third element to create a really unique combination.
Download (4.7MB)
Added: 2006-10-10 License: Perl Artistic License Price:
1110 downloads
Class::Std 0.0.8
Class::Std is a Perl module to support for creating standard inside-out classes. more>>
Class::Std is a Perl module to support for creating standard "inside-out" classes.
SYNOPSIS
package MyClass;
use Class::Std;
# Create storage for object attributes...
my %name : ATTR;
my %rank : ATTR;
my %snum : ATTR;
my %public_data : ATTR;
# Handle initialization of objects of this class...
sub BUILD {
my ($self, $obj_ID, $arg_ref) = @_;
$name{$obj_ID} = check_name( $arg_ref->{name} );
$rank{$obj_ID} = check_rank( $arg_ref->{rank} );
$snum{$obj_ID} = _gen_uniq_serial_num();
}
# Handle cleanup of objects of this class...
sub DEMOLISH {
my ($self, $obj_ID) = @_;
_recycle_serial_num( $snum{$obj_ID} );
}
# Handle unknown method calls...
sub AUTOMETHOD {
my ($self, $obj_ID, @other_args) = @_;
# Return any public data...
if ( m/A get_(.*)/ ) { # Method name passed in $_
my $get_what = $1;
return sub {
return $public_data{$obj_ID}{$get_what};
}
}
warn "Cant call $method_name on ", ref $self, " object";
return; # The call is declined by not returning a sub ref
}
This module provides tools that help to implement the "inside out object" class structure in a convenient and standard way.
<<lessSYNOPSIS
package MyClass;
use Class::Std;
# Create storage for object attributes...
my %name : ATTR;
my %rank : ATTR;
my %snum : ATTR;
my %public_data : ATTR;
# Handle initialization of objects of this class...
sub BUILD {
my ($self, $obj_ID, $arg_ref) = @_;
$name{$obj_ID} = check_name( $arg_ref->{name} );
$rank{$obj_ID} = check_rank( $arg_ref->{rank} );
$snum{$obj_ID} = _gen_uniq_serial_num();
}
# Handle cleanup of objects of this class...
sub DEMOLISH {
my ($self, $obj_ID) = @_;
_recycle_serial_num( $snum{$obj_ID} );
}
# Handle unknown method calls...
sub AUTOMETHOD {
my ($self, $obj_ID, @other_args) = @_;
# Return any public data...
if ( m/A get_(.*)/ ) { # Method name passed in $_
my $get_what = $1;
return sub {
return $public_data{$obj_ID}{$get_what};
}
}
warn "Cant call $method_name on ", ref $self, " object";
return; # The call is declined by not returning a sub ref
}
This module provides tools that help to implement the "inside out object" class structure in a convenient and standard way.
Download (0.030MB)
Added: 2006-09-26 License: Perl Artistic License Price:
1124 downloads
Class::Classless 1.35
Class::Classless is a Perl framework for classless OOP. more>>
Class::Classless is a Perl framework for classless OOP.
SYNOPSIS
use strict;
use Class::Classless;
my $ob1 = $Class::Classless::ROOT->clone;
$ob1->{NAME} = Ob1;
$ob1->{stuff} = 123;
$ob1->{Thing} = 789;
my $ob2 = $ob1->clone;
$ob2->{NAME} = Ob2;
printf "ob1 stuff: n", $ob1->{stuff};
printf "ob2 stuff: n", $ob2->{stuff};
printf "ob1 Thing: n", $ob1->{Thing};
printf "ob2 Thing: n", $ob2->{Thing};
$ob1->{METHODS}{zaz} = sub {
print "Zaz! on ", $_[0]{NAME}, "n";
};
$ob1->zaz;
$ob2->zaz;
$ob1->EXAMINE;
$ob2->EXAMINE;
This prints the following:
ob1 stuff: < 123 >
ob2 stuff: < 123 >
ob1 Thing: < 789 >
ob2 Thing: < >
Zaz! on Ob1
Zaz! on Ob2
< Class::Classless::X=HASH(0x200236f4) >
stuff, 123,
NAME, Ob1,
Thing, 789,
METHODS, { zaz, CODE(0x20068360) },
PARENTS, [ ROOT ],
< Class::Classless::X=HASH(0x2002cb48) >
stuff, 123,
NAME, Ob2,
METHODS, { },
PARENTS, [ Ob1 ],
In class-based OOP frameworks, methods are applicable to objects by virtue of objects belonging to classes that either provide those methods, or inherit them from classes that do.
In classless OOP frameworks (AKA delegation-and-prototypes frameworks), what methods an object is capable of is basically an attribute of that object. That is, in Perl terms: instead of methods being entries in the symbol table of the package/class the object belongs to, they are entries in a hash table inside the object. Inheritance is implemented not by having classes inheriting from other classes (via ISA lists), but by having objects inherit from other objects (via PARENTS lists).
In class-based OOP frameworks, you get new objects by calling constructors. In a classless framework, you get new objects by copying ("cloning") an existing object -- and the new clone becomes a child (inheritor) of the original object. (Where do you get the one original object? The language provides one, which has no parents, and which contains some general purpose methods like "clone".)
<<lessSYNOPSIS
use strict;
use Class::Classless;
my $ob1 = $Class::Classless::ROOT->clone;
$ob1->{NAME} = Ob1;
$ob1->{stuff} = 123;
$ob1->{Thing} = 789;
my $ob2 = $ob1->clone;
$ob2->{NAME} = Ob2;
printf "ob1 stuff: n", $ob1->{stuff};
printf "ob2 stuff: n", $ob2->{stuff};
printf "ob1 Thing: n", $ob1->{Thing};
printf "ob2 Thing: n", $ob2->{Thing};
$ob1->{METHODS}{zaz} = sub {
print "Zaz! on ", $_[0]{NAME}, "n";
};
$ob1->zaz;
$ob2->zaz;
$ob1->EXAMINE;
$ob2->EXAMINE;
This prints the following:
ob1 stuff: < 123 >
ob2 stuff: < 123 >
ob1 Thing: < 789 >
ob2 Thing: < >
Zaz! on Ob1
Zaz! on Ob2
< Class::Classless::X=HASH(0x200236f4) >
stuff, 123,
NAME, Ob1,
Thing, 789,
METHODS, { zaz, CODE(0x20068360) },
PARENTS, [ ROOT ],
< Class::Classless::X=HASH(0x2002cb48) >
stuff, 123,
NAME, Ob2,
METHODS, { },
PARENTS, [ Ob1 ],
In class-based OOP frameworks, methods are applicable to objects by virtue of objects belonging to classes that either provide those methods, or inherit them from classes that do.
In classless OOP frameworks (AKA delegation-and-prototypes frameworks), what methods an object is capable of is basically an attribute of that object. That is, in Perl terms: instead of methods being entries in the symbol table of the package/class the object belongs to, they are entries in a hash table inside the object. Inheritance is implemented not by having classes inheriting from other classes (via ISA lists), but by having objects inherit from other objects (via PARENTS lists).
In class-based OOP frameworks, you get new objects by calling constructors. In a classless framework, you get new objects by copying ("cloning") an existing object -- and the new clone becomes a child (inheritor) of the original object. (Where do you get the one original object? The language provides one, which has no parents, and which contains some general purpose methods like "clone".)
Download (0.023MB)
Added: 2007-07-19 License: Perl Artistic License Price:
827 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 matrix classes 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