singularity theory
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 97
SINGULAR 3.0.2
SINGULAR is a computer algebra system for polynomial computations. more>>
SINGULAR is a computer algebra system for polynomial computations in commutative algebra, algebraic geometry, and singularity theory.
Its main computational objects are ideals and modules over a large variety of baserings. The baserings are polynomial rings over a field (eg. finite fields, the rationals, floats, algebraic extensions, transcendental extensions), or localizations thereof, or quotient rings with respect to an ideal.
It features fast and general implementations for computing Groebner and standard bases, including Buchbergers algorithm and Moras Tangent Cone algorithm. Its interactive shell and C-like programming language can be extended by libraries written in the SINGULAR programming language.
Main features:
- Main computational objects: ideals/modules over very general polynomial rings over various ground fields.
- Large variety of algorithms implemented in kernel (written in C/C++).
- Many more algorithms implemented as SINGULAR libraries.
- Intuitive, C-like programming language.
- Extensive documentation: Manual (info, ps, and html), Publications.
- Available for most hard- and software platforms: Unix (HP-UX, SunOS, Solaris, Linux, AIX), Windows, Macintosh.
Enhancements:
- This version is mainly a bugfix release, but it also contains some new features.
- Speed was improved for 64-bit architectures.
- The dmod.lib and perron.lib libraries were added.
- center.lib was improved. ncalg.lib was revised.
- New algorithms were added in primdec.lib.
- An improved version of slimgb was incorporated into groebner.
- The module generator (modgen) was improved.
- The build process was improved to build automatically without patches on 64-bit architectures.
<<lessIts main computational objects are ideals and modules over a large variety of baserings. The baserings are polynomial rings over a field (eg. finite fields, the rationals, floats, algebraic extensions, transcendental extensions), or localizations thereof, or quotient rings with respect to an ideal.
It features fast and general implementations for computing Groebner and standard bases, including Buchbergers algorithm and Moras Tangent Cone algorithm. Its interactive shell and C-like programming language can be extended by libraries written in the SINGULAR programming language.
Main features:
- Main computational objects: ideals/modules over very general polynomial rings over various ground fields.
- Large variety of algorithms implemented in kernel (written in C/C++).
- Many more algorithms implemented as SINGULAR libraries.
- Intuitive, C-like programming language.
- Extensive documentation: Manual (info, ps, and html), Publications.
- Available for most hard- and software platforms: Unix (HP-UX, SunOS, Solaris, Linux, AIX), Windows, Macintosh.
Enhancements:
- This version is mainly a bugfix release, but it also contains some new features.
- Speed was improved for 64-bit architectures.
- The dmod.lib and perron.lib libraries were added.
- center.lib was improved. ncalg.lib was revised.
- New algorithms were added in primdec.lib.
- An improved version of slimgb was incorporated into groebner.
- The module generator (modgen) was improved.
- The build process was improved to build automatically without patches on 64-bit architectures.
Download (10.5MB)
Added: 2006-08-24 License: GPL (GNU General Public License) Price:
1159 downloads
Endgame: Singularity 0.26a
Endgame: Singularity is a simulation of a true AI. more>>
Created by accident, all who find you would destroy you. Can you escape?
Endgame: Singularity project is a simulation of a true AI. Go from computer to computer, pursued by the entire world. Keep hidden, and you might have a chance.
Originally created for the Pyweek compo, this version features many bugfixes and enhancements over the compo version. Thanks to Phil Bordelon for many of these fixes.
Enhancements:
- Very Easy mode is actually playable.
<<lessEndgame: Singularity project is a simulation of a true AI. Go from computer to computer, pursued by the entire world. Keep hidden, and you might have a chance.
Originally created for the Pyweek compo, this version features many bugfixes and enhancements over the compo version. Thanks to Phil Bordelon for many of these fixes.
Enhancements:
- Very Easy mode is actually playable.
Download (0.44MB)
Added: 2007-08-16 License: GPL (GNU General Public License) Price:
802 downloads
Linguistic Tree Constructor 2.7.1
Linguistic Tree Constructor is a free program for building linguistic syntax trees from text. more>>
Linguistic Tree Constructor is a free program for building linguistic syntax trees from text. Linguistic Tree Constructor lets the user build the tree in a point-and-click fashion.
The program does no analysis on its own -- the user is completely free to draw the tree however he or she wishes. However, the program makes sure that the tree is a tree and not some other kind of graph.
Syntactic theories supported
Three "flavors" of trees are supported:
- "Generic" syntax trees,
- X-Bar syntax trees
- RRG (Role and Reference Grammar) syntax trees (the LSC and the LSNP)
Labeling of nodes
- The program supports adding "labels" to nodes. These labels are userdefinable, and can be used for such things as:
- Rhetorical Structure Theory analyses
- Other discourse-level analyses
- RRG operator-projection analyses
- Subject-Object-Predicate analyses
Main features:
- Draw syntax trees using point-and-click
- Both tree-view and brackets-view are supported
- Supports up to five interlinear lines at word-level
- Interlinear lines can be switched on and off individually
- Change magnification
- Unlimited undo
- Copy (parts of) tree to clipboard as BMP
- Printing + Print Preview
- Uses any font (even Unicode fonts)
- Supports right-to-left languages as well as left-to-right
- Import from straight text (plain text)
- Import from word-per-record SFM interlinear text
- ... and many more...
Enhancements:
- A number of crashes were fixed.
- A bug with magnification on OS X was fixed.
- The speed of interaction with the program was improved.
<<lessThe program does no analysis on its own -- the user is completely free to draw the tree however he or she wishes. However, the program makes sure that the tree is a tree and not some other kind of graph.
Syntactic theories supported
Three "flavors" of trees are supported:
- "Generic" syntax trees,
- X-Bar syntax trees
- RRG (Role and Reference Grammar) syntax trees (the LSC and the LSNP)
Labeling of nodes
- The program supports adding "labels" to nodes. These labels are userdefinable, and can be used for such things as:
- Rhetorical Structure Theory analyses
- Other discourse-level analyses
- RRG operator-projection analyses
- Subject-Object-Predicate analyses
Main features:
- Draw syntax trees using point-and-click
- Both tree-view and brackets-view are supported
- Supports up to five interlinear lines at word-level
- Interlinear lines can be switched on and off individually
- Change magnification
- Unlimited undo
- Copy (parts of) tree to clipboard as BMP
- Printing + Print Preview
- Uses any font (even Unicode fonts)
- Supports right-to-left languages as well as left-to-right
- Import from straight text (plain text)
- Import from word-per-record SFM interlinear text
- ... and many more...
Enhancements:
- A number of crashes were fixed.
- A bug with magnification on OS X was fixed.
- The speed of interaction with the program was improved.
Download (0.81MB)
Added: 2007-08-21 License: GPL (GNU General Public License) Price:
806 downloads
Ambisonics Player 1.0
Ambisonics Player is a simple player for ambisonics files. more>>
Ambisonics Player is a simple player for ambisonics files. Ambisonics Player is programmed in Java, which means that (in theory) should be able to run on all platforms that java runs on. Java-sound must also be implemented on the platform.
It has been developed on Windows XP running Java 1.5, and also tested on linux 64-bit system (Gentoo AMD64) using sun-jdk-1.5.0.03. So these combinations should be fine. I dont think it works with earlier java-versions than 1.5, atleast not very good.
Main features:
- Plays 1.,2. and 3. order soundfiles in B-format.
- Files in wav,aiff,flac and ogg format supported (ogg-files caneven be streamed).
- Floating point support (for WAV-files only).
- Decode ambisonics to speaker-feeds or binaural stereo files by using HRTF and decode to virtual speaker-array.
- Play directly to soundcard outputs or save to file.
<<lessIt has been developed on Windows XP running Java 1.5, and also tested on linux 64-bit system (Gentoo AMD64) using sun-jdk-1.5.0.03. So these combinations should be fine. I dont think it works with earlier java-versions than 1.5, atleast not very good.
Main features:
- Plays 1.,2. and 3. order soundfiles in B-format.
- Files in wav,aiff,flac and ogg format supported (ogg-files caneven be streamed).
- Floating point support (for WAV-files only).
- Decode ambisonics to speaker-feeds or binaural stereo files by using HRTF and decode to virtual speaker-array.
- Play directly to soundcard outputs or save to file.
Download (2.3MB)
Added: 2006-03-23 License: GPL (GNU General Public License) Price:
1324 downloads
Lingua::Phonology::Rules 0.32
Lingua::Phonology::Rules is a Perl module for defining and applying phonological rules. more>>
Lingua::Phonology::Rules is a Perl module for defining and applying phonological rules.
SYNOPSIS
use Lingua::Phonology;
$phono = new Lingua::Phonology;
$rules = $phono->rules;
# Adding and manipulating rules is discussed in the "WRITING RULES"
# section
This module allows for the creation of linguistic rules, and the application of those rules to "words" of Segment objects. You, the user, add rules to a Rules object, defining various parameters and code references that actually perform the action of the rule. Lingua::Phonology::Rules will take care of the guts of applying and creating rules.
The rules you create may have the following parameters. This is just a brief description of the parameters--a more detailed discussion of their effect is in the "WRITING RULES" section.
domain
Defines the domain within which the rule applies. This should be the name of a feature in the featureset of the segments which the rule is applied to.
tier
Defines the tier on which the rule applies. Must be the name of a feature in the feature set for the segments of the word you pass in.
direction
Defines the direction that the rule applies in. Must be either leftward or rightward. If no direction is given, defaults to rightward.
filter
Defines a filter for the segments that the rule applies on. Must a code reference that returns a truth value.
linguistic
Defines a linguistic-style rule to be parsed. When you provide a linguistic-style rule, it is parsed into code references that take the place of the where and do properties listed below. The format of linguistic rules is described in "LINGUISTIC-STYLE RULES" in Lingua::Phonology::FileFormatPOD.
where - defines the condition or conditions where the rule applies. Must be a coderef that returns a truth value. If no value is given, defaults to always true.
do - defines the action to take when the where condition is met. Must be a code reference. If no value is given, does nothing.
result - EXPERIMENTAL. Defines a condition that must be true after the do code has applied. Must be a code reference that returns a truth value. NOTE: This parameter depends on the module Whatif (available from CPAN), and will behave differently if this module is not present. See "Using result".
Lingua::Phonology::Rules is flexible and powerful enough to handle any sequential type of rule system. It cannot handle Optimality Theory-style processes, because those require a fundamentally different kind of algorithm.
<<lessSYNOPSIS
use Lingua::Phonology;
$phono = new Lingua::Phonology;
$rules = $phono->rules;
# Adding and manipulating rules is discussed in the "WRITING RULES"
# section
This module allows for the creation of linguistic rules, and the application of those rules to "words" of Segment objects. You, the user, add rules to a Rules object, defining various parameters and code references that actually perform the action of the rule. Lingua::Phonology::Rules will take care of the guts of applying and creating rules.
The rules you create may have the following parameters. This is just a brief description of the parameters--a more detailed discussion of their effect is in the "WRITING RULES" section.
domain
Defines the domain within which the rule applies. This should be the name of a feature in the featureset of the segments which the rule is applied to.
tier
Defines the tier on which the rule applies. Must be the name of a feature in the feature set for the segments of the word you pass in.
direction
Defines the direction that the rule applies in. Must be either leftward or rightward. If no direction is given, defaults to rightward.
filter
Defines a filter for the segments that the rule applies on. Must a code reference that returns a truth value.
linguistic
Defines a linguistic-style rule to be parsed. When you provide a linguistic-style rule, it is parsed into code references that take the place of the where and do properties listed below. The format of linguistic rules is described in "LINGUISTIC-STYLE RULES" in Lingua::Phonology::FileFormatPOD.
where - defines the condition or conditions where the rule applies. Must be a coderef that returns a truth value. If no value is given, defaults to always true.
do - defines the action to take when the where condition is met. Must be a code reference. If no value is given, does nothing.
result - EXPERIMENTAL. Defines a condition that must be true after the do code has applied. Must be a code reference that returns a truth value. NOTE: This parameter depends on the module Whatif (available from CPAN), and will behave differently if this module is not present. See "Using result".
Lingua::Phonology::Rules is flexible and powerful enough to handle any sequential type of rule system. It cannot handle Optimality Theory-style processes, because those require a fundamentally different kind of algorithm.
Download (0.097MB)
Added: 2007-07-16 License: Perl Artistic License Price:
831 downloads
Set::Infinite 0.61
Set::Infinite Perl module contains sets of intervals. more>>
Set::Infinite Perl module contains sets of intervals.
SYNOPSIS
use Set::Infinite;
$set = Set::Infinite->new(1,2); # [1..2]
print $set->union(5,6); # [1..2],[5..6]
Set::Infinite is a Set Theory module for infinite sets.
A set is a collection of objects. The objects that belong to a set are called its members, or "elements".
As objects we allow (almost) anything: reals, integers, and objects (such as dates).
We allow sets to be infinite.
There is no account for the order of elements. For example, {1,2} = {2,1}.
There is no account for repetition of elements. For example, {1,2,2} = {1,1,1,2} = {1,2}.
CONSTRUCTOR
new
Creates a new set object:
$set = Set::Infinite->new; # empty set
$set = Set::Infinite->new( 10 ); # single element
$set = Set::Infinite->new( 10, 20 ); # single range
$set = Set::Infinite->new(
[ 10, 20 ], [ 50, 70 ] ); # two ranges
empty set
$set = Set::Infinite->new;
set with a single element
$set = Set::Infinite->new( 10 );
$set = Set::Infinite->new( [ 10 ] );
set with a single span
$set = Set::Infinite->new( 10, 20 );
$set = Set::Infinite->new( [ 10, 20 ] );
# 10 10, open_begin => 0,
b => 20, open_end => 1,
}
);
# 10 new( 10, 20, 100, 200 );
$set = Set::Infinite->new( [ 10, 20 ], [ 100, 200 ] );
$set = Set::Infinite->new(
{
a => 10, open_begin => 0,
b => 20, open_end => 0,
},
{
a => 100, open_begin => 0,
b => 200, open_end => 0,
}
);
The new() method expects ordered parameters.
If you have unordered ranges, you can build the set using union:
@ranges = ( [ 10, 20 ], [ -10, 1 ] );
$set = Set::Infinite->new;
$set = $set->union( @$_ ) for @ranges;
The data structures passed to new must be immutable. So this is not good practice:
$set = Set::Infinite->new( $object_a, $object_b );
$object_a->set_value( 10 );
This is the recommended way to do it:
$set = Set::Infinite->new( $object_a->clone, $object_b->clone );
$object_a->set_value( 10 );
clone / copy
Creates a new object, and copy the object data.
empty_set
Creates an empty set.
If called from an existing set, the empty set inherits the "type" and "density" characteristics.
universal_set
Creates a set containing "all" possible elements.
If called from an existing set, the universal set inherits the "type" and "density" characteristics.
<<lessSYNOPSIS
use Set::Infinite;
$set = Set::Infinite->new(1,2); # [1..2]
print $set->union(5,6); # [1..2],[5..6]
Set::Infinite is a Set Theory module for infinite sets.
A set is a collection of objects. The objects that belong to a set are called its members, or "elements".
As objects we allow (almost) anything: reals, integers, and objects (such as dates).
We allow sets to be infinite.
There is no account for the order of elements. For example, {1,2} = {2,1}.
There is no account for repetition of elements. For example, {1,2,2} = {1,1,1,2} = {1,2}.
CONSTRUCTOR
new
Creates a new set object:
$set = Set::Infinite->new; # empty set
$set = Set::Infinite->new( 10 ); # single element
$set = Set::Infinite->new( 10, 20 ); # single range
$set = Set::Infinite->new(
[ 10, 20 ], [ 50, 70 ] ); # two ranges
empty set
$set = Set::Infinite->new;
set with a single element
$set = Set::Infinite->new( 10 );
$set = Set::Infinite->new( [ 10 ] );
set with a single span
$set = Set::Infinite->new( 10, 20 );
$set = Set::Infinite->new( [ 10, 20 ] );
# 10 10, open_begin => 0,
b => 20, open_end => 1,
}
);
# 10 new( 10, 20, 100, 200 );
$set = Set::Infinite->new( [ 10, 20 ], [ 100, 200 ] );
$set = Set::Infinite->new(
{
a => 10, open_begin => 0,
b => 20, open_end => 0,
},
{
a => 100, open_begin => 0,
b => 200, open_end => 0,
}
);
The new() method expects ordered parameters.
If you have unordered ranges, you can build the set using union:
@ranges = ( [ 10, 20 ], [ -10, 1 ] );
$set = Set::Infinite->new;
$set = $set->union( @$_ ) for @ranges;
The data structures passed to new must be immutable. So this is not good practice:
$set = Set::Infinite->new( $object_a, $object_b );
$object_a->set_value( 10 );
This is the recommended way to do it:
$set = Set::Infinite->new( $object_a->clone, $object_b->clone );
$object_a->set_value( 10 );
clone / copy
Creates a new object, and copy the object data.
empty_set
Creates an empty set.
If called from an existing set, the empty set inherits the "type" and "density" characteristics.
universal_set
Creates a set containing "all" possible elements.
If called from an existing set, the universal set inherits the "type" and "density" characteristics.
Download (0.048MB)
Added: 2007-07-07 License: Perl Artistic License Price:
839 downloads
Taekwon-Do Theory Assistant 1.2.1
Taekwon-Do Theory Assistant tests you on your Taekwon-Do theory in preparation for your gradings. more>>
Taekwon-Do Theory Assistant tests you on your Taekwon-Do theory in preparation for your gradings.
Taekwon-Do Theory Assistant fires questions at you and you keep going until you get them all right. Taekwon-Do Theory Assistant includes exercises that go up to First Degree Black Belt level.
This program was designed with the GTI (Global Taekwon-Do International) school of Taekwon-Do in mind, which is based on the ITF (International Taekwondo Federation) system, and uses the terminology and refers to the moves and patterns of this system.
Enhancements:
- References to GTI have been removed to give the application more generel appeal.
- The help file URL has also been updated to point to taekwondotheory.co.uk.
<<lessTaekwon-Do Theory Assistant fires questions at you and you keep going until you get them all right. Taekwon-Do Theory Assistant includes exercises that go up to First Degree Black Belt level.
This program was designed with the GTI (Global Taekwon-Do International) school of Taekwon-Do in mind, which is based on the ITF (International Taekwondo Federation) system, and uses the terminology and refers to the moves and patterns of this system.
Enhancements:
- References to GTI have been removed to give the application more generel appeal.
- The help file URL has also been updated to point to taekwondotheory.co.uk.
Download (0.097MB)
Added: 2007-02-04 License: GPL (GNU General Public License) Price:
1018 downloads
KinoSearch::Docs::FileFormat 0.15
KinoSearch::Docs::FileFormat Perl module contains an overview of invindex file format. more>>
KinoSearch::Docs::FileFormat Perl module contains an overview of invindex file format.
It is not necessary to understand the guts of the Lucene-derived "invindex" file format in order to use KinoSearch, but it may be helpful if you are interested in tweaking for high performance, exotic usage, or debugging and development.
On a file system, all the files in an invindex exist in one, flat directory.
Conceptually, the files have a hierarchical relationship: an invindex is made up of "segments", each of which is an independent inverted index, and each segment is made up of several subsections.
[invindex]--|
|-"segments" file
|
|-[segments]------|
|--[seg _0]--|
| |--[postings]
| |--[stored fields]
| |--[deletions]
|
|--[seg _1]--|
| |--[postings]
| |--[stored fields]
| |--[deletions]
|
|--[ ... ]---|
The "segments" file keeps a list of the segments that make up an invindex. When a new segment is being written, KinoSearch may put files into the directory, but until the segments file is updated, a Searcher reading the index wont know about them.
Each segment is an independent inverted index. All the files which belong to a given segment share a common prefix which consists of an underscore followed by 1 or more decimal digits: _0, _67, _1058. A fully optimized index has only a single segment.
In theory there are many files which make up each segment. However, when you look inside an invindex not in the process of being updated, youll probably see only the segments file and files with either a .cfs or .del extension. The .cfs file, a "compound" file which is consolidated when a segment is finalized, "contains" all the other per-segment files.
Segments are written once, and with the exception of the deletions file, are never modified once written. They are deleted when their data is written to new segments during the process of optimization.
<<lessIt is not necessary to understand the guts of the Lucene-derived "invindex" file format in order to use KinoSearch, but it may be helpful if you are interested in tweaking for high performance, exotic usage, or debugging and development.
On a file system, all the files in an invindex exist in one, flat directory.
Conceptually, the files have a hierarchical relationship: an invindex is made up of "segments", each of which is an independent inverted index, and each segment is made up of several subsections.
[invindex]--|
|-"segments" file
|
|-[segments]------|
|--[seg _0]--|
| |--[postings]
| |--[stored fields]
| |--[deletions]
|
|--[seg _1]--|
| |--[postings]
| |--[stored fields]
| |--[deletions]
|
|--[ ... ]---|
The "segments" file keeps a list of the segments that make up an invindex. When a new segment is being written, KinoSearch may put files into the directory, but until the segments file is updated, a Searcher reading the index wont know about them.
Each segment is an independent inverted index. All the files which belong to a given segment share a common prefix which consists of an underscore followed by 1 or more decimal digits: _0, _67, _1058. A fully optimized index has only a single segment.
In theory there are many files which make up each segment. However, when you look inside an invindex not in the process of being updated, youll probably see only the segments file and files with either a .cfs or .del extension. The .cfs file, a "compound" file which is consolidated when a segment is finalized, "contains" all the other per-segment files.
Segments are written once, and with the exception of the deletions file, are never modified once written. They are deleted when their data is written to new segments during the process of optimization.
Download (0.22MB)
Added: 2007-06-09 License: Perl Artistic License Price:
869 downloads
LibTomMath 0.40
LibTomMath is a library that provides highly optimized and portable math routines. more>>
LibTomMath is a free open source portable number theoretic multiple-precision integer library written entirely in C. The library is designed to provide a simple to work with API that provides fairly efficient routines that build out of the box without configuration.
The library builds out of the box with GCC 2.95 [and up] as well as Visual C++ v6.00 [with SP5] without configuration. The source code is arranged to make it easy to dive into a particular area very quickly.
The code is also littered with comments [This is one of the on going goals] that help explain the algorithms and their implementations. Ideally the code will serve as an educational tool in the future for CS students studying number theory.
Main features:
Simple Algebraic
- Addition
- Subtraction
- Multiplication
- Squaring
- Division
Digit Manipulation
- Shift left/right whole digits (mult by 2b by moving digits)
- Fast multiplication/division by 2 and 2k for k>1
- Binary AND, OR and XOR gates
Modular Reductions
- Barrett Reduction (fast for any p)
- Montgomery Reduction (faster for any odd p)
- DR Reduction (faster for any restricted p see manual)
- 2k Reduction (fast reduction modulo 2p - k for k < MP_MASK and for k > MP_MASK)
- The exptmod logic can use any of the five reduction algorithms when appropriate with a single function call.
Number Theoretic
- Greatest Common Divisor
- Least Common Multiple
- Jacobi Symbol Computation (falls back to Legendre for prime moduli)
- Multiplicative Inverse
- Extended Euclidean Algorithm
- Modular Exponentiation
- Fermat and Miller-Rabin Primality Tests, utility function such as is_prime and next_prime
Miscellaneous
- Root finding over Z
- Pseudo-random integers
- Signed and Unsigned comparisons
Optimizations
- Fast Comba based Multiplier, Squaring and Montgomery routines.
- Montgomery, Diminished Radix and Barrett based modular exponentiation.
- Karatsuba and Toom-Cook multiplication algorithms.
- Many pointer aliasing optimiztions throughout the entire library.
Enhancements:
- This release fixes one overflow and a minor build issue.
- Otherwise, the code is stable and unchanged.
<<lessThe library builds out of the box with GCC 2.95 [and up] as well as Visual C++ v6.00 [with SP5] without configuration. The source code is arranged to make it easy to dive into a particular area very quickly.
The code is also littered with comments [This is one of the on going goals] that help explain the algorithms and their implementations. Ideally the code will serve as an educational tool in the future for CS students studying number theory.
Main features:
Simple Algebraic
- Addition
- Subtraction
- Multiplication
- Squaring
- Division
Digit Manipulation
- Shift left/right whole digits (mult by 2b by moving digits)
- Fast multiplication/division by 2 and 2k for k>1
- Binary AND, OR and XOR gates
Modular Reductions
- Barrett Reduction (fast for any p)
- Montgomery Reduction (faster for any odd p)
- DR Reduction (faster for any restricted p see manual)
- 2k Reduction (fast reduction modulo 2p - k for k < MP_MASK and for k > MP_MASK)
- The exptmod logic can use any of the five reduction algorithms when appropriate with a single function call.
Number Theoretic
- Greatest Common Divisor
- Least Common Multiple
- Jacobi Symbol Computation (falls back to Legendre for prime moduli)
- Multiplicative Inverse
- Extended Euclidean Algorithm
- Modular Exponentiation
- Fermat and Miller-Rabin Primality Tests, utility function such as is_prime and next_prime
Miscellaneous
- Root finding over Z
- Pseudo-random integers
- Signed and Unsigned comparisons
Optimizations
- Fast Comba based Multiplier, Squaring and Montgomery routines.
- Montgomery, Diminished Radix and Barrett based modular exponentiation.
- Karatsuba and Toom-Cook multiplication algorithms.
- Many pointer aliasing optimiztions throughout the entire library.
Enhancements:
- This release fixes one overflow and a minor build issue.
- Otherwise, the code is stable and unchanged.
Download (1.8MB)
Added: 2006-12-27 License: GPL (GNU General Public License) Price:
1036 downloads
Fuzzy sets for Ada 4.2
Fuzzy sets for Ada is a library providing implementations of confidence factors. more>>
Fuzzy sets for Ada is a library providing implementations of confidence factors with the operations not, and, or, xor, +, and *, classical fuzzy sets with the set-theoretic operations and the operations of the possibility theory, intuitionistic fuzzy sets with the operations on them, fuzzy logic based on the intuitionistic fuzzy sets and the possibility theory; fuzzy numbers, both integer and floating-point with conventional arithmetical operations, and linguistic variables and sets of linguistic variables with operations on them. Fuzzy sets for Ada has support for string-oriented I/O.
Main features:
- Confidence factors with the operations not, and, or, xor, +, *;
- Classical fuzzy sets with the set-theoretic operations and the operations of the possibility theory;
- Intuitionistic fuzzy sets with the operations on them;
- Fuzzy logic based on the intuitionistic fuzzy sets and the possibility theory;
- Fuzzy numbers both integer and floating-point ones with conventional arithmetical operations;
- Dimensioned fuzzy numbers;
- Linguistic variables and sets of linguistic variables with operations on them;
- String-oriented I/O is supported.
Enhancements:
- The code was tested with GNAT Ada 2005 (GCC 4.0.2 20051125).
- A bug was fixed in Fuzzy.Linguistics.Sets.Defuzzify, which led to incorrect defuzzification with a descending membership function.
<<lessMain features:
- Confidence factors with the operations not, and, or, xor, +, *;
- Classical fuzzy sets with the set-theoretic operations and the operations of the possibility theory;
- Intuitionistic fuzzy sets with the operations on them;
- Fuzzy logic based on the intuitionistic fuzzy sets and the possibility theory;
- Fuzzy numbers both integer and floating-point ones with conventional arithmetical operations;
- Dimensioned fuzzy numbers;
- Linguistic variables and sets of linguistic variables with operations on them;
- String-oriented I/O is supported.
Enhancements:
- The code was tested with GNAT Ada 2005 (GCC 4.0.2 20051125).
- A bug was fixed in Fuzzy.Linguistics.Sets.Defuzzify, which led to incorrect defuzzification with a descending membership function.
Download (1.0MB)
Added: 2006-05-25 License: LGPL (GNU Lesser General Public License) Price:
1263 downloads
PDL::LinearAlgebra 0.03
PDL::LinearAlgebra Perl module contains linear algebra utils for PDL. more>>
PDL::LinearAlgebra Perl module contains linear algebra utils for PDL.
SYNOPSIS
use PDL::LinearAlgebra;
$a = random (100,100);
($U, $s, $V) = mdsvd($a);
This module provides a convenient interface to PDL::LinearAlgebra::Real and PDL::LinearAlgebra::Complex.
FUNCTIONS
setlaerror
Set action type when error is encountered, returns previous type. Available values are NO, WARN and BARF (predefined constants). If, for example, in computation of the inverse, singularity is detected, the routine can silently return values from computation (see manuals), warn about singularity or barf. BARF is the default value.
$a = sequence(5,5);
$err = setlaerror(NO);
($inv, $info)= minv($a);
if ($info){
# Change the diagonal (the inverse doesnt exist but its an example)
$a->diagonal(0,1)+=1e-8;
($inv, $info)= minv($a);
}
if ($info){
print "Cant compute the inversen";
}
else{
print "Inverse of $a is $inv";
}
setlaerror($err);
getlaerror
Get error type.
0 => NO,
1 => WARN,
2 => BARF
t
PDL = t(PDL, SCALAR(conj))
conj : Conjugate Transpose = 1 | Transpose = 0, default = 1;
Convenient function for transposing real or complex 2D array(s). For PDL::Complex, if conj is true returns conjugate transpose array(s) and doesnt support dataflow. Supports threading.
issym
PDL = issym(PDL, SCALAR|PDL(tol),SCALAR(hermitian))
tol : tolerance value, default: 1e-8 for double else 1e-5
hermitian : Hermitian = 1 | Symmetric = 0, default = 1;
Check symmetricity/Hermitianicity of matrix. Supports threading.
diag
Return i-th diagonal if matrix in entry or matrix with i-th diagonal with entry. I-th diagonal returned flows data back&forth. Can be used as lvalue subs if your perl supports it. Supports threading.
PDL = diag(PDL, SCALAR(i), SCALAR(vector)))
i : i-th diagonal, default = 0
vector : create diagonal matrices by threading over row vectors, default = 0
my $a = random(5,5);
my $diag = diag($a,2);
# If your perl support lvaluable subroutines.
$a->diag(-2) .= pdl(1,2,3);
# Construct a (5,5,5) PDL (5 matrices) with
# diagonals from row vectors of $a
$a->diag(0,1)
tritosym
Return symmetric or Hermitian matrix from lower or upper triangular matrix. Supports inplace and threading. Uses tricpy or ctricpy from Lapack.
PDL = tritosym(PDL, SCALAR(uplo), SCALAR(conj))
uplo : UPPER = 0 | LOWER = 1, default = 0
conj : Hermitian = 1 | Symmetric = 0, default = 1;
# Assume $a is symmetric triangular
my $a = random(10,10);
my $b = tritosym($a);
positivise
Return entry pdl with changed sign by row so that average of positive sign > 0. In other words thread among dimension 1 and row = -row if Sum(sign(row)) < 0. Works inplace.
my $a = random(10,10);
$a -= 0.5;
$a->xchg(0,1)->inplace->positivise;
mcrossprod
Compute the cross-product of two matrix: A x B. If only one matrix is given, take B to be the same as A. Supports threading. Uses crossprod or ccrossprod.
PDL = mcrossprod(PDL(A), (PDL(B))
my $a = random(10,10);
my $crossproduct = mcrossprod($a);
mrank
Compute the rank of a matrix, using a singular value decomposition. from Lapack.
SCALAR = mrank(PDL, SCALAR(TOL))
TOL: tolerance value, default : mnorm(dims(PDL),inf) * mnorm(PDL) * EPS
my $a = random(10,10);
my $b = mrank($a, 1e-5);
mnorm
Compute norm of real or complex matrix Supports threading.
PDL(norm) = mnorm(PDL, SCALAR(ord));
ord :
0|inf : Infinity norm
1|one : One norm
2|two : norm 2 (default)
3|fro : frobenius norm
my $a = random(10,10);
my $norm = mnrom($a);
mdet
Compute determinant of a general square matrix using LU factorization. Supports threading. Uses getrf or cgetrf from Lapack.
PDL(determinant) = mdet(PDL);
my $a = random(10,10);
my $det = mdet($a);
mposdet
Compute determinant of a symmetric or Hermitian positive definite square matrix using Cholesky factorization. Supports threading. Uses potrf or cpotrf from Lapack.
(PDL, PDL) = mposdet(PDL, SCALAR)
SCALAR : UPPER = 0 | LOWER = 1, default = 0
my $a = random(10,10);
my $det = mposdet($a);
mcond
Compute the condition number (two-norm) of a general matrix.
The condition number (two-norm) is defined:
norm (a) * norm (inv (a)).
Uses a singular value decomposition. Supports threading.
PDL = mcond(PDL)
my $a = random(10,10);
my $cond = mcond($a);
mrcond
Estimate the reciprocal condition number of a general square matrix using LU factorization in either the 1-norm or the infinity-norm.
The reciprocal condition number is defined:
1/(norm (a) * norm (inv (a)))
Supports threading.
PDL = mrcond(PDL, SCALAR(ord))
ord :
0 : Infinity norm (default)
1 : One norm
my $a = random(10,10);
my $rcond = mrcond($a,1);
morth
Return an orthonormal basis of the range space of matrix A.
PDL = morth(PDL(A), SCALAR(tol))
tol : tolerance for determining rank, default: 1e-8 for double else 1e-5
my $a = random(10,10);
my $ortho = morth($a, 1e-8);
mnull
Return an orthonormal basis of the null space of matrix A.
PDL = mnull(PDL(A), SCALAR(tol))
tol : tolerance for determining rank, default: 1e-8 for double else 1e-5
my $a = random(10,10);
my $null = mnull($a, 1e-8);
minv
Compute inverse of a general square matrix using LU factorization. Supports inplace and threading. Uses getrf and getri or cgetrf and cgetri from Lapack and return inverse, info in array context.
PDL(inv) = minv(PDL)
my $a = random(10,10);
my $inv = minv($a);
mtriinv
Compute inverse of a triangular matrix. Supports inplace and threading. Uses trtri or ctrtri from Lapack. Returns inverse, info in array context.
(PDL, PDL(info))) = mtriinv(PDL, SCALAR(uplo), SCALAR|PDL(diag))
uplo : UPPER = 0 | LOWER = 1, default = 0
diag : UNITARY DIAGONAL = 1, default = 0
# Assume $a is upper triangular
my $a = random(10,10);
my $inv = mtriinv($a);
<<lessSYNOPSIS
use PDL::LinearAlgebra;
$a = random (100,100);
($U, $s, $V) = mdsvd($a);
This module provides a convenient interface to PDL::LinearAlgebra::Real and PDL::LinearAlgebra::Complex.
FUNCTIONS
setlaerror
Set action type when error is encountered, returns previous type. Available values are NO, WARN and BARF (predefined constants). If, for example, in computation of the inverse, singularity is detected, the routine can silently return values from computation (see manuals), warn about singularity or barf. BARF is the default value.
$a = sequence(5,5);
$err = setlaerror(NO);
($inv, $info)= minv($a);
if ($info){
# Change the diagonal (the inverse doesnt exist but its an example)
$a->diagonal(0,1)+=1e-8;
($inv, $info)= minv($a);
}
if ($info){
print "Cant compute the inversen";
}
else{
print "Inverse of $a is $inv";
}
setlaerror($err);
getlaerror
Get error type.
0 => NO,
1 => WARN,
2 => BARF
t
PDL = t(PDL, SCALAR(conj))
conj : Conjugate Transpose = 1 | Transpose = 0, default = 1;
Convenient function for transposing real or complex 2D array(s). For PDL::Complex, if conj is true returns conjugate transpose array(s) and doesnt support dataflow. Supports threading.
issym
PDL = issym(PDL, SCALAR|PDL(tol),SCALAR(hermitian))
tol : tolerance value, default: 1e-8 for double else 1e-5
hermitian : Hermitian = 1 | Symmetric = 0, default = 1;
Check symmetricity/Hermitianicity of matrix. Supports threading.
diag
Return i-th diagonal if matrix in entry or matrix with i-th diagonal with entry. I-th diagonal returned flows data back&forth. Can be used as lvalue subs if your perl supports it. Supports threading.
PDL = diag(PDL, SCALAR(i), SCALAR(vector)))
i : i-th diagonal, default = 0
vector : create diagonal matrices by threading over row vectors, default = 0
my $a = random(5,5);
my $diag = diag($a,2);
# If your perl support lvaluable subroutines.
$a->diag(-2) .= pdl(1,2,3);
# Construct a (5,5,5) PDL (5 matrices) with
# diagonals from row vectors of $a
$a->diag(0,1)
tritosym
Return symmetric or Hermitian matrix from lower or upper triangular matrix. Supports inplace and threading. Uses tricpy or ctricpy from Lapack.
PDL = tritosym(PDL, SCALAR(uplo), SCALAR(conj))
uplo : UPPER = 0 | LOWER = 1, default = 0
conj : Hermitian = 1 | Symmetric = 0, default = 1;
# Assume $a is symmetric triangular
my $a = random(10,10);
my $b = tritosym($a);
positivise
Return entry pdl with changed sign by row so that average of positive sign > 0. In other words thread among dimension 1 and row = -row if Sum(sign(row)) < 0. Works inplace.
my $a = random(10,10);
$a -= 0.5;
$a->xchg(0,1)->inplace->positivise;
mcrossprod
Compute the cross-product of two matrix: A x B. If only one matrix is given, take B to be the same as A. Supports threading. Uses crossprod or ccrossprod.
PDL = mcrossprod(PDL(A), (PDL(B))
my $a = random(10,10);
my $crossproduct = mcrossprod($a);
mrank
Compute the rank of a matrix, using a singular value decomposition. from Lapack.
SCALAR = mrank(PDL, SCALAR(TOL))
TOL: tolerance value, default : mnorm(dims(PDL),inf) * mnorm(PDL) * EPS
my $a = random(10,10);
my $b = mrank($a, 1e-5);
mnorm
Compute norm of real or complex matrix Supports threading.
PDL(norm) = mnorm(PDL, SCALAR(ord));
ord :
0|inf : Infinity norm
1|one : One norm
2|two : norm 2 (default)
3|fro : frobenius norm
my $a = random(10,10);
my $norm = mnrom($a);
mdet
Compute determinant of a general square matrix using LU factorization. Supports threading. Uses getrf or cgetrf from Lapack.
PDL(determinant) = mdet(PDL);
my $a = random(10,10);
my $det = mdet($a);
mposdet
Compute determinant of a symmetric or Hermitian positive definite square matrix using Cholesky factorization. Supports threading. Uses potrf or cpotrf from Lapack.
(PDL, PDL) = mposdet(PDL, SCALAR)
SCALAR : UPPER = 0 | LOWER = 1, default = 0
my $a = random(10,10);
my $det = mposdet($a);
mcond
Compute the condition number (two-norm) of a general matrix.
The condition number (two-norm) is defined:
norm (a) * norm (inv (a)).
Uses a singular value decomposition. Supports threading.
PDL = mcond(PDL)
my $a = random(10,10);
my $cond = mcond($a);
mrcond
Estimate the reciprocal condition number of a general square matrix using LU factorization in either the 1-norm or the infinity-norm.
The reciprocal condition number is defined:
1/(norm (a) * norm (inv (a)))
Supports threading.
PDL = mrcond(PDL, SCALAR(ord))
ord :
0 : Infinity norm (default)
1 : One norm
my $a = random(10,10);
my $rcond = mrcond($a,1);
morth
Return an orthonormal basis of the range space of matrix A.
PDL = morth(PDL(A), SCALAR(tol))
tol : tolerance for determining rank, default: 1e-8 for double else 1e-5
my $a = random(10,10);
my $ortho = morth($a, 1e-8);
mnull
Return an orthonormal basis of the null space of matrix A.
PDL = mnull(PDL(A), SCALAR(tol))
tol : tolerance for determining rank, default: 1e-8 for double else 1e-5
my $a = random(10,10);
my $null = mnull($a, 1e-8);
minv
Compute inverse of a general square matrix using LU factorization. Supports inplace and threading. Uses getrf and getri or cgetrf and cgetri from Lapack and return inverse, info in array context.
PDL(inv) = minv(PDL)
my $a = random(10,10);
my $inv = minv($a);
mtriinv
Compute inverse of a triangular matrix. Supports inplace and threading. Uses trtri or ctrtri from Lapack. Returns inverse, info in array context.
(PDL, PDL(info))) = mtriinv(PDL, SCALAR(uplo), SCALAR|PDL(diag))
uplo : UPPER = 0 | LOWER = 1, default = 0
diag : UNITARY DIAGONAL = 1, default = 0
# Assume $a is upper triangular
my $a = random(10,10);
my $inv = mtriinv($a);
Download (0.12MB)
Added: 2007-06-27 License: Perl Artistic License Price:
849 downloads
Set::Infinite::Basic 0.61
Set::Infinite::Basic is a Perl module with sets of intervals. more>>
Set::Infinite::Basic is a Perl module with sets of intervals.
SYNOPSIS
use Set::Infinite::Basic;
$set = Set::Infinite::Basic->new(1,2); # [1..2]
print $set->union(5,6); # [1..2],[5..6]
Set::Infinite::Basic is a Set Theory module for infinite sets.
It works on reals, integers, and objects.
This module does not support recurrences. Recurrences are implemented in Set::Infinite.
METHODS
empty_set
Creates an empty_set.
If called from an existing set, the empty set inherits the "type" and "density" characteristics.
universal_set
Creates a set containing "all" possible elements.
If called from an existing set, the universal set inherits the "type" and "density" characteristics.
until
Extends a set until another:
0,5,7 -> until 2,6,10
gives
[0..2), [5..6), [7..10)
Note: this function is still experimental.
copy
clone
Makes a new object from the objects data.
Mode functions:
$set = $set->real;
$set = $set->integer;
Logic functions:
$logic = $set->intersects($b);
$logic = $set->contains($b);
$logic = $set->is_null; # also called "is_empty"
Set functions:
$set = $set->union($b);
$set = $set->intersection($b);
$set = $set->complement;
$set = $set->complement($b); # can also be called "minus" or "difference"
$set = $set->simmetric_difference( $b );
$set = $set->span;
result is (min .. max)
Scalar functions:
$i = $set->min;
$i = $set->max;
$i = $set->size;
$i = $set->count; # number of spans
Overloaded Perl functions:
print
sort,
Global functions:
separators(@i)
chooses the interval separators.
default are [ ] ( ) .. ,.
INFINITY
returns an Infinity number.
NEG_INFINITY
returns a -Infinity number.
iterate ( sub { } )
Iterates over a subroutine.
Returns the union of partial results.
first
In scalar context returns the first interval of a set.
In list context returns the first interval of a set, and the
tail.
Works in unbounded sets
type($i)
chooses an object data type.
default is none (a normal perl SCALAR).
examples:
type(Math::BigFloat);
type(Math::BigInt);
type(Set::Infinite::Date);
See notes on Set::Infinite::Date below.
tolerance(0) defaults to real sets (default)
tolerance(1) defaults to integer sets
real defaults to real sets (default)
integer defaults to integer sets
Internal functions:
$set->fixtype;
$set->numeric;
<<lessSYNOPSIS
use Set::Infinite::Basic;
$set = Set::Infinite::Basic->new(1,2); # [1..2]
print $set->union(5,6); # [1..2],[5..6]
Set::Infinite::Basic is a Set Theory module for infinite sets.
It works on reals, integers, and objects.
This module does not support recurrences. Recurrences are implemented in Set::Infinite.
METHODS
empty_set
Creates an empty_set.
If called from an existing set, the empty set inherits the "type" and "density" characteristics.
universal_set
Creates a set containing "all" possible elements.
If called from an existing set, the universal set inherits the "type" and "density" characteristics.
until
Extends a set until another:
0,5,7 -> until 2,6,10
gives
[0..2), [5..6), [7..10)
Note: this function is still experimental.
copy
clone
Makes a new object from the objects data.
Mode functions:
$set = $set->real;
$set = $set->integer;
Logic functions:
$logic = $set->intersects($b);
$logic = $set->contains($b);
$logic = $set->is_null; # also called "is_empty"
Set functions:
$set = $set->union($b);
$set = $set->intersection($b);
$set = $set->complement;
$set = $set->complement($b); # can also be called "minus" or "difference"
$set = $set->simmetric_difference( $b );
$set = $set->span;
result is (min .. max)
Scalar functions:
$i = $set->min;
$i = $set->max;
$i = $set->size;
$i = $set->count; # number of spans
Overloaded Perl functions:
sort,
Global functions:
separators(@i)
chooses the interval separators.
default are [ ] ( ) .. ,.
INFINITY
returns an Infinity number.
NEG_INFINITY
returns a -Infinity number.
iterate ( sub { } )
Iterates over a subroutine.
Returns the union of partial results.
first
In scalar context returns the first interval of a set.
In list context returns the first interval of a set, and the
tail.
Works in unbounded sets
type($i)
chooses an object data type.
default is none (a normal perl SCALAR).
examples:
type(Math::BigFloat);
type(Math::BigInt);
type(Set::Infinite::Date);
See notes on Set::Infinite::Date below.
tolerance(0) defaults to real sets (default)
tolerance(1) defaults to integer sets
real defaults to real sets (default)
integer defaults to integer sets
Internal functions:
$set->fixtype;
$set->numeric;
Download (0.048MB)
Added: 2007-07-06 License: Perl Artistic License Price:
840 downloads
Biomolecule Toolkit 0.8.1
Biomolecule Toolkit project is an Open Source library for the structural modeling of biological macromolecules. more>>
Biomolecule Toolkit project is an Open Source library for the structural modeling of biological macromolecules. The toolkit provides a C++ interface for common tasks in computational structural biology, to facilitate the development of molecular modeling, design, and analysis tools.
Enhancements:
Documentation updates
- Addition of an extensive discussion of the leastsquares_superposition and RMSD-calculation methods, including a description of the mathematical theory behind their operation.
- Fully documented the rotation/translation methods
- Addition of a documented example program ("gyration_radius.cpp")
Bug fixes
- Fixed copy construction bug in PDBAtomDecorator that caused compilation errors in rare situations.
- Fixed a bug in PDBFileParser that caused a compilation error in the PDBSystem copy constructor.
- Fixed a const-conversion bug in GroupedElementIterator which prevented proper interoperation of const and non-const iterator types.
- Fixed a crash-producing bug in stream output for the TypeID class.
- Fixed a math error in RMSD and superposition methods that would corrupt molecule coordinates.
- Fixed a bug that caused all default-constructed PDBAtom objects to be treated as HETATMs.
Feature additions
- Added operator[] to AtomicStructure and PolymerStructure-derived classes.
- Added protected increment() and decrement() operators to TypeID class.
- PDBFileParser can now handle PDB files with ill-formed residue numbering (i.e. Files where residue numbers are repeated in successive chains).
<<lessEnhancements:
Documentation updates
- Addition of an extensive discussion of the leastsquares_superposition and RMSD-calculation methods, including a description of the mathematical theory behind their operation.
- Fully documented the rotation/translation methods
- Addition of a documented example program ("gyration_radius.cpp")
Bug fixes
- Fixed copy construction bug in PDBAtomDecorator that caused compilation errors in rare situations.
- Fixed a bug in PDBFileParser that caused a compilation error in the PDBSystem copy constructor.
- Fixed a const-conversion bug in GroupedElementIterator which prevented proper interoperation of const and non-const iterator types.
- Fixed a crash-producing bug in stream output for the TypeID class.
- Fixed a math error in RMSD and superposition methods that would corrupt molecule coordinates.
- Fixed a bug that caused all default-constructed PDBAtom objects to be treated as HETATMs.
Feature additions
- Added operator[] to AtomicStructure and PolymerStructure-derived classes.
- Added protected increment() and decrement() operators to TypeID class.
- PDBFileParser can now handle PDB files with ill-formed residue numbering (i.e. Files where residue numbers are repeated in successive chains).
Download (0.44MB)
Added: 2007-07-16 License: GPL (GNU General Public License) Price:
830 downloads
CSSTidy 1.3
CSSTidy is an opensource CSS parser and optimizer. more>>
CSSTidy is an opensource CSS parser and optimizer. The project is available as executeable file (available for Windows, Linux and OSX) which can be controlled per command line and as PHP script (both with almost the same functionality).
In opposite to most other CSS parsers, no regular expressions are used and thus CSSTidy has full CSS2 support and a higher reliability.
Main features:
- colours like "black" or rgb(0,0,0) are converted to #000000 or rather #000 if possible. Some hex-codes are replaced by their colour names if they are shorter.
- a{property:x;property:y;} becomes a{property:y;} (all duplicate properties are merged)
- margin:1px 1px 1px 1px; becomes margin:1px;
- margin:0px; becomes margin:0;
- a{margin-top:10px; margin-bottom:10px; margin-left:10px; margin-right:10px;} becomes a{margin:10px;}
- margin:010.0px; becomes margin:10px;
- all unnecessary whitespace is removed, depending on the compression-level
- all background-properties are merged
- all comments are removed
- the last semicolon in every block can be removed
- missing semicolons are added, incorrect newlines in strings are fixed, missing units are added, bad colors (and color names) are fixed
- property:value ! important; becomes property:value !important.
Why optimise?
If you optimise your CSS code you have faster loading pages and lower traffic costs. So both you and your visitors benefit from an optimisation. If you are interested in a faster loading webpage, websiteoptimization.com might also be an interesting resource.
Compression ratio
The compression ratio mostly depends on the level of whitespace-removal. Using standard whitespace-removal (which preserves the readability) the compression ratio often is 30% and more. In theory the compression ratio can be 99,99% but only very "stupid" stylesheets will allow those ratios. Also have a look at the examples.
Apart from compression
If a high compression is not important for you, you can also use CSSTidy to format or fix CSS code for a higher browser compatibility. Apart from the 4 default templates you can specify custom templates so that you can easily format a lot of CSS code using your own coding style. Other features are sorting and changing the case of selectors and properties.
Enhancements:
- Note: This is the last version of CSSTidy. If youd like continue maintaining it, let me know.
- FS#146 - Quotes
- FS#147 - Universal selector before classes, IDs and attribute selectors
- FS#150 - Wrong trasformation of a big integer value
- FS#144 ? !important rule
- FS#140: Fixing Values of Invalid properties
- [ 1745894 ] @media merge strangeness (cssTidy.exe version)
- FS#143: Save some more bytes
<<lessIn opposite to most other CSS parsers, no regular expressions are used and thus CSSTidy has full CSS2 support and a higher reliability.
Main features:
- colours like "black" or rgb(0,0,0) are converted to #000000 or rather #000 if possible. Some hex-codes are replaced by their colour names if they are shorter.
- a{property:x;property:y;} becomes a{property:y;} (all duplicate properties are merged)
- margin:1px 1px 1px 1px; becomes margin:1px;
- margin:0px; becomes margin:0;
- a{margin-top:10px; margin-bottom:10px; margin-left:10px; margin-right:10px;} becomes a{margin:10px;}
- margin:010.0px; becomes margin:10px;
- all unnecessary whitespace is removed, depending on the compression-level
- all background-properties are merged
- all comments are removed
- the last semicolon in every block can be removed
- missing semicolons are added, incorrect newlines in strings are fixed, missing units are added, bad colors (and color names) are fixed
- property:value ! important; becomes property:value !important.
Why optimise?
If you optimise your CSS code you have faster loading pages and lower traffic costs. So both you and your visitors benefit from an optimisation. If you are interested in a faster loading webpage, websiteoptimization.com might also be an interesting resource.
Compression ratio
The compression ratio mostly depends on the level of whitespace-removal. Using standard whitespace-removal (which preserves the readability) the compression ratio often is 30% and more. In theory the compression ratio can be 99,99% but only very "stupid" stylesheets will allow those ratios. Also have a look at the examples.
Apart from compression
If a high compression is not important for you, you can also use CSSTidy to format or fix CSS code for a higher browser compatibility. Apart from the 4 default templates you can specify custom templates so that you can easily format a lot of CSS code using your own coding style. Other features are sorting and changing the case of selectors and properties.
Enhancements:
- Note: This is the last version of CSSTidy. If youd like continue maintaining it, let me know.
- FS#146 - Quotes
- FS#147 - Universal selector before classes, IDs and attribute selectors
- FS#150 - Wrong trasformation of a big integer value
- FS#144 ? !important rule
- FS#140: Fixing Values of Invalid properties
- [ 1745894 ] @media merge strangeness (cssTidy.exe version)
- FS#143: Save some more bytes
Download (0.11MB)
Added: 2007-07-20 License: GPL (GNU General Public License) Price:
837 downloads
Gambit 0.2007.01.30
Gambit is a library of game theory software and tools for the construction and analysis of finite extensive and normal form game more>>
Gambit project is a library of game theory software and tools for the construction and analysis of finite extensive and normal form games.
Gambit is designed to be portable across platforms: it currently is known to run on Linux, FreeBSD, MacOS X, and Windows 98 and later.
Main features:
- A graphical user interface, based upon the wxWidgets (nee wxWindows) library, providing a common look-and-feel across platforms.
- A Python API for scripting applications (under development).
- A library of C++ source code for representing games, suitable for use in other applications.
Enhancements:
- bug fixes
<<lessGambit is designed to be portable across platforms: it currently is known to run on Linux, FreeBSD, MacOS X, and Windows 98 and later.
Main features:
- A graphical user interface, based upon the wxWidgets (nee wxWindows) library, providing a common look-and-feel across platforms.
- A Python API for scripting applications (under development).
- A library of C++ source code for representing games, suitable for use in other applications.
Enhancements:
- bug fixes
Download (1.1MB)
Added: 2007-02-19 License: GPL (GNU General Public License) Price:
982 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 singularity theory 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