Algorithm-Networksort
view release on metacpan or search on metacpan
Revision history for Perl extension Algorithm::Networksort.
2.02
Thu June 21 2018
- Changed colorsettings(), which wasn't following the
documentation correctly.
- Encapsulated Postscript works again.
- Encapsulated Postscript now can have color.
- At some point when I was new to Perl, I learned the
unpack("B32", pack("N", $x))
idiom, not realizing that sprintf() had added a "%b"
flag to its format. Sigh. Made the changes everywhere.
Fri Feb 9 2018
- Keys 'radius' and 'stroke_width' of graphsettings() split
into two each for the input lines and the comparator lines,
becoming 'inputradius' and 'compradius', and 'inputline'
and 'compline'. Zero-width radii (indicating no circle at
all) for either line is possible, and the comparator lines
and circles may be a different widths than the input lines
and circles.
- The settings of the text version of diagrams are now set
with function textsettings(), as making graphsettings()
handle it all was ridiculous, not to mention the key
collisions with the changes above.
- Check for "monotone" diagrams. If all the colors are
the same, just set the color once in the SVG or
EPS output instead of setting the color for each part
of the diagram, resulting in a smaller file.
- Update the t/ and eg/ files to use the above changes.
Sun Jan 14 2018
- Test file best.t only skips networks of input size > 16
instead of all skipping all networks if AUTHOR_TESTING
isn't set.
Fri Jan 12 2018
- Added Designing Sorting Networks to the book list.
- Added David C. Van Voorhis's 16-input network (found in
Designing Sorting Networks) to Best.pm.
2.01
Wed Apr 20 2016
- Add nwsrt_title() to the list of default exported functions
in Networksort.pm for consistency with ::Best.pm and for the
programs that call it.
- Explain this in documentation.
- Also for consistency, =item items are now enclosed in
single quotes in both modules.
- Grey background in SVG at begining lightened up.
2.00
Tue Apr 12 2016
- The module now returns the sorting network as an object.
This is obviously a major change; please see the documentation
for reassuring examples. The OO basis is Moose, plus
Moose::Exporter for a couple of convenience functions. The
function-heavy Version 1.30 will remain on CPAN for at
least another year in the mean time.
- The collection of 'best' networks has been greatly added to,
thanks to the efforts of Morwenn. These networks now reside
in their own child module, Algorithm::Networksort::Best.
It could be argued that the module should be named
Algorithm::Networksort::Optimal, but 'optimal' has seven
letters and 'best' has four, so 'best' wins.
- Doug Hoyte provided code for an astonishing three more
algorithms: odd-even merge, odd-even transposition, and balanced.
- The example scripts in eg/ have been updated and in some
cases improved.
- Found untested cases (formats in particular) and added them
to the tests.
- SVG output is massively improved. The graphing example is now
HTML5 instead of XML, beginning circles now cover their line
instead of vice versa, background color is now supported, and
the ids of graph elements now have a random component in them
so as not to confuse the parser if more than one graph is on
the page (this is one that bit me).
1.31
Sat Mar 22 2012
- Good grief, I mis-spelled nw_comparators() in the
documentation.
- And I left out abecedarian.t in the MANIFEST.
1.30
Tue Nov 20 2012
- Updated the references in the POD documentation.
- Time to upload to CPAN.
Mon Nov 19 2012
- Update the version number everywhere.
- Update documentation to make sure 'bitonic' is mentioned.
- Got svg.t to work correctly in systems that don't have
Test::XML::Easy installed.
- Heavily update README to cover testing, and Doug Hoyte's
contributions.
Sun Nov 18 2012
- Consolidated the "algorithm" test files into one file,
abecedarian.t. Now that we're using $ENV{AUTHOR_TESTING},
we can consolidate test files without worrying about
tests timing out on CPAN testers' machines.
- Simplified code in the "best" test files.
Sat Nov 17 2012
- Upgrage tests to use the is() function from Test::More.
Fri Nov 16 2012
- Fixed the code in Build.PL that would set $ENV{AUTHOR_TESTING}.
All tests, even the lengthy ones, are now run when using
"Build test --Testlong".
Tue Nov 13 2012
- Long-running tests now check for $ENV{AUTHOR_TESTING} = 1,
and skip if it doesn't.
Tue Nov 6 2012
- Worked on bitonic() code. Use existing pack/unpack code to
determine power-of-two value, this replaces the
greater_power_of_2_less_than() function.
- Made loop a little more perlish by using the '..' operator.
- Added 'bitonic' to the keyword list.
- Added a get_options parameter in Build.PL. Looking towards
an option to automatically skip long-running tests in
non-development situations.
Tue Oct 30 2012
- Fall-back algorithm for 'best' option is now Batcher's Merge
Exchange algorithm instead of Bose-Nelson.
- Checks for $inputs < 2 in the algorithm functions are pointless
since the calling, exported function already checks for it.
- "use integer" means that int($n/2) may be written more simply
as $n/2.
Sat Oct 27 2012
- Added two new 'best' networks for input sizes 18 and 22,
discovered by Sherenaz Waleed Al-Haj Baddar and submited
by Doug Hoyte.
- Added the bitonic() code and test file as provided by Doug Hoyte.
Thu Oct 25 2012
- New function nw_sort_stats() to return information about
sorting network exchange counts (based on Doug Hoyte's
idea) and other future ideas.
1.24
( run in 1.491 second using v1.01-cache-2.11-cpan-0d23b851a93 )