sort-networks.git
13 years agosrc/sn_network.c: Fix a memory leak in sn_network_create_odd_even_mergesort().
Florian Forster [Tue, 21 Dec 2010 10:38:31 +0000 (11:38 +0100)]
src/sn_network.c: Fix a memory leak in sn_network_create_odd_even_mergesort().

13 years agoImplement the bitonic sort in src/sn_network.c.
Florian Forster [Tue, 21 Dec 2010 10:35:12 +0000 (11:35 +0100)]
Implement the bitonic sort in src/sn_network.c.

The new implementation can handle input numbers which are not a power of
two. Also sn-bitonicmerge has been added which works analogously to
sn-oddevenmerge.

13 years agoRename "sn-pairwise" to "sn-pairwisesort".
Florian Forster [Tue, 21 Dec 2010 08:35:56 +0000 (09:35 +0100)]
Rename "sn-pairwise" to "sn-pairwisesort".

13 years agoRename "sn-batcher" to "sn-bitonicsort".
Florian Forster [Tue, 21 Dec 2010 08:33:52 +0000 (09:33 +0100)]
Rename "sn-batcher" to "sn-bitonicsort".

13 years agoREADME: Add research applications.
Florian Forster [Tue, 21 Dec 2010 08:27:52 +0000 (09:27 +0100)]
README: Add research applications.

13 years agosrc/sn_{comparator,network,random,stage}.[ch]: Change license to LGPLv2.1+.
Florian Forster [Mon, 20 Dec 2010 22:29:15 +0000 (23:29 +0100)]
src/sn_{comparator,network,random,stage}.[ch]: Change license to LGPLv2.1+.

13 years agosrc/sn_network.[ch]: Implement sn_network_network_add().
Florian Forster [Mon, 20 Dec 2010 22:11:09 +0000 (23:11 +0100)]
src/sn_network.[ch]: Implement sn_network_network_add().

13 years agosrc/sn-tex.c: Close comment (typo).
Florian Forster [Mon, 20 Dec 2010 10:30:56 +0000 (11:30 +0100)]
src/sn-tex.c: Close comment (typo).

13 years agosrc/sn-tex.c: Make it possible to specify the absolute width of the graphic.
Florian Forster [Mon, 20 Dec 2010 09:55:50 +0000 (10:55 +0100)]
src/sn-tex.c: Make it possible to specify the absolute width of the graphic.

13 years agosrc/sn-svg.c: Fix XML namespace declaration.
Florian Forster [Mon, 20 Dec 2010 09:02:45 +0000 (10:02 +0100)]
src/sn-svg.c: Fix XML namespace declaration.

13 years agoMerge remote branch 'origin/master'
Florian Forster [Mon, 20 Dec 2010 08:41:04 +0000 (09:41 +0100)]
Merge remote branch 'origin/master'

Conflicts:
src/sn-svg.c

13 years agosrc/sn-svg.c: Add the -e (embed) option.
Florian Forster [Mon, 20 Dec 2010 08:37:33 +0000 (09:37 +0100)]
src/sn-svg.c: Add the -e (embed) option.

13 years agosrc/sn-oddevenmerge.c: Only output a merging network.
Florian Forster [Mon, 20 Dec 2010 08:35:59 +0000 (09:35 +0100)]
src/sn-oddevenmerge.c: Only output a merging network.

See sn-oddevensort for a generator for the odd-even _sorting_ network.

13 years agosrc/sn_comparator.[ch]: Add a user data member.
Florian Forster [Mon, 20 Dec 2010 08:34:55 +0000 (09:34 +0100)]
src/sn_comparator.[ch]: Add a user data member.

13 years agosrc/sn-evolution-cut: Use the new cut interface.
Florian Forster [Mon, 20 Dec 2010 08:33:34 +0000 (09:33 +0100)]
src/sn-evolution-cut: Use the new cut interface.

13 years agoconfigure.ac: Remove libltdl, since it's not used.
Florian Forster [Sat, 18 Dec 2010 23:31:52 +0000 (00:31 +0100)]
configure.ac: Remove libltdl, since it's not used.

13 years agosrc/sn-svg.c: Print the SVG's height and width and a viewBox.
Florian Forster [Sat, 18 Dec 2010 11:22:37 +0000 (12:22 +0100)]
src/sn-svg.c: Print the SVG's height and width and a viewBox.

13 years agosrc/sn-markov.c: Add missing include.
Florian Forster [Sat, 18 Dec 2010 11:20:13 +0000 (12:20 +0100)]
src/sn-markov.c: Add missing include.

13 years agosrc/sn-cut.c: Use the new cut-interface to do all the cuts at once.
Florian Forster [Fri, 17 Dec 2010 21:36:24 +0000 (22:36 +0100)]
src/sn-cut.c: Use the new cut-interface to do all the cuts at once.

This greatly simplifies line numbering when doing multiple cuts.

13 years agosrc/sn_network.[ch]: Implement sn_network_cut().
Florian Forster [Fri, 17 Dec 2010 21:34:39 +0000 (22:34 +0100)]
src/sn_network.[ch]: Implement sn_network_cut().

Using this function it is possible to do multiple cuts at once.

13 years agosrc/sn_stage.c: Add missing variable.
Florian Forster [Fri, 17 Dec 2010 21:04:55 +0000 (22:04 +0100)]
src/sn_stage.c: Add missing variable.

13 years agosn-pairwise: Implement the pairwise sorting network.
Florian Forster [Fri, 17 Dec 2010 13:31:54 +0000 (14:31 +0100)]
sn-pairwise: Implement the pairwise sorting network.

13 years agosrc/sn-markov.c: Add the "-n" command line option.
Florian Forster [Fri, 17 Dec 2010 12:03:36 +0000 (13:03 +0100)]
src/sn-markov.c: Add the "-n" command line option.

Specifying the maximum number of iterations to perform.

13 years agosn-oddevensort: Copy of "sn-oddevenmerge".
Florian Forster [Tue, 14 Dec 2010 15:28:09 +0000 (16:28 +0100)]
sn-oddevensort: Copy of "sn-oddevenmerge".

13 years agosn-markov: Add Markov-chain version of sn-evolution.
Florian Forster [Mon, 13 Dec 2010 08:17:38 +0000 (09:17 +0100)]
sn-markov: Add Markov-chain version of sn-evolution.

13 years agosn-bb, sn-bb-merge: Add branch and bound algorithms for searching for sort and merge...
Florian Forster [Thu, 25 Nov 2010 14:50:45 +0000 (15:50 +0100)]
sn-bb, sn-bb-merge: Add branch and bound algorithms for searching for sort and merge networks.

14 years agoRequest X/Open 7 rather than declaring strdup ourselves.
Florian Forster [Mon, 22 Nov 2010 09:18:45 +0000 (10:18 +0100)]
Request X/Open 7 rather than declaring strdup ourselves.

14 years agosn-evolution-merge: Add programm.
Florian Forster [Mon, 22 Nov 2010 09:15:16 +0000 (10:15 +0100)]
sn-evolution-merge: Add programm.

14 years agoAdd 32 and 64 line networks found by evolution-cut.
Florian Forster [Tue, 22 Jun 2010 08:05:37 +0000 (10:05 +0200)]
Add 32 and 64 line networks found by evolution-cut.

14 years agodata/32-ec-1277190372.sn: 32-input SN found with evolution-cut.
Florian Forster [Tue, 22 Jun 2010 07:08:08 +0000 (09:08 +0200)]
data/32-ec-1277190372.sn: 32-input SN found with evolution-cut.

14 years agosn-svg: Add new tool to display sort network as SVG.
Florian Forster [Thu, 27 May 2010 07:53:51 +0000 (09:53 +0200)]
sn-svg: Add new tool to display sort network as SVG.

14 years agosrc/sn_comparator.h: Add Doxygen documentation.
Florian Forster [Wed, 19 May 2010 15:59:17 +0000 (17:59 +0200)]
src/sn_comparator.h: Add Doxygen documentation.

14 years agoMerge remote branch 'origin/master'
Florian Forster [Wed, 19 May 2010 14:49:40 +0000 (16:49 +0200)]
Merge remote branch 'origin/master'

14 years agosrc/sn_network.h: Print "NULL" in a monospace font.
Florian Forster [Wed, 19 May 2010 14:49:13 +0000 (16:49 +0200)]
src/sn_network.h: Print "NULL" in a monospace font.

14 years agosrc/sn_stage.c: Check arguments in some of the methods.
Florian Forster [Wed, 19 May 2010 12:56:32 +0000 (14:56 +0200)]
src/sn_stage.c: Check arguments in some of the methods.

14 years agosrc/sn_stage.h: Completed Doxygen documentation.
Florian Forster [Wed, 19 May 2010 12:56:10 +0000 (14:56 +0200)]
src/sn_stage.h: Completed Doxygen documentation.

14 years agodata/13i-10s-45c-[01].sn: Document the origin in a comment field.
Florian Forster [Mon, 17 May 2010 10:00:38 +0000 (12:00 +0200)]
data/13i-10s-45c-[01].sn: Document the origin in a comment field.

14 years agoAdded two more efficient 14- and 15-input sorting networks.
Florian Forster [Mon, 17 May 2010 09:56:11 +0000 (11:56 +0200)]
Added two more efficient 14- and 15-input sorting networks.

Both created from data/16i-10s-60c-0.sn by sn-evolution-cut.

14 years agodata/15i-56c-10s-0.sn: Add most-efficient 15-input sorting network.
Florian Forster [Mon, 17 May 2010 09:49:08 +0000 (11:49 +0200)]
data/15i-56c-10s-0.sn: Add most-efficient 15-input sorting network.

Found by the sn-evolution-cut algorithm. It is as efficient as the best known
15-input sorting network.

14 years agodata/14i-10s-51c-0.sn: Add most-efficient 14-input sorting network.
Florian Forster [Mon, 17 May 2010 09:46:44 +0000 (11:46 +0200)]
data/14i-10s-51c-0.sn: Add most-efficient 14-input sorting network.

Found by the sn-evolution-cut algorithm. It is as efficient as the best
known 14-input sorting network.

14 years agoAdded 16-input sorting network found by the END algorithm.
Florian Forster [Mon, 17 May 2010 09:42:16 +0000 (11:42 +0200)]
Added 16-input sorting network found by the END algorithm.

14 years agosrc/sn_stage.h: Begin adding Doxygen documentation.
Florian Forster [Mon, 17 May 2010 08:49:12 +0000 (10:49 +0200)]
src/sn_stage.h: Begin adding Doxygen documentation.

14 years agosrc/sn_stage.c: Added some parameter checks.
Florian Forster [Mon, 17 May 2010 08:48:50 +0000 (10:48 +0200)]
src/sn_stage.c: Added some parameter checks.

14 years agosrc/sn_network.h: Add missing documentation.
Florian Forster [Mon, 17 May 2010 08:48:14 +0000 (10:48 +0200)]
src/sn_network.h: Add missing documentation.

14 years agosrc/sn_network.h: All methods are documented now.
Florian Forster [Mon, 17 May 2010 08:07:00 +0000 (10:07 +0200)]
src/sn_network.h: All methods are documented now.

14 years agosrc/sn_stage.c: Fix comparison of signed and unsigned integers.
Florian Forster [Mon, 17 May 2010 07:53:49 +0000 (09:53 +0200)]
src/sn_stage.c: Fix comparison of signed and unsigned integers.

14 years agosrc/sn_{comparator,stage}.h: Add initial Doxygen stuff.
Florian Forster [Mon, 17 May 2010 07:53:27 +0000 (09:53 +0200)]
src/sn_{comparator,stage}.h: Add initial Doxygen stuff.

14 years agosrc/sn_network.[ch]: Rename the bitonic combine method.
Florian Forster [Mon, 17 May 2010 07:53:00 +0000 (09:53 +0200)]
src/sn_network.[ch]: Rename the bitonic combine method.

The sn-merge utility has been improved to accept the "-b" option and
use the bitonic variant if supplied.

14 years agosrc/sn_network.h: Some more Doxygen documentation.
Florian Forster [Mon, 17 May 2010 07:51:13 +0000 (09:51 +0200)]
src/sn_network.h: Some more Doxygen documentation.

14 years agosrc/sn_network.h: Add Doxygen documentation for some functions.
Florian Forster [Mon, 17 May 2010 06:49:43 +0000 (08:49 +0200)]
src/sn_network.h: Add Doxygen documentation for some functions.

14 years agosn-evolution-cut: Print details to the found individual.
Florian Forster [Mon, 17 May 2010 06:18:24 +0000 (08:18 +0200)]
sn-evolution-cut: Print details to the found individual.

14 years agoGlobal: collectd → libsortnetwork
Florian Forster [Fri, 14 May 2010 15:59:17 +0000 (17:59 +0200)]
Global: collectd → libsortnetwork

14 years agoAdded the best known networks for 9 and 10 inputs.
Florian Forster [Mon, 10 May 2010 16:18:35 +0000 (18:18 +0200)]
Added the best known networks for 9 and 10 inputs.

14 years agoAdded the best known networks for 13 and 16 inputs.
Florian Forster [Mon, 10 May 2010 14:19:12 +0000 (16:19 +0200)]
Added the best known networks for 13 and 16 inputs.

14 years agoREADME: Document "sn-info".
Florian Forster [Mon, 10 May 2010 14:13:06 +0000 (16:13 +0200)]
README: Document "sn-info".

14 years agosn-info: Add tool for displaying information about a network in human readable form.
Florian Forster [Mon, 10 May 2010 14:12:27 +0000 (16:12 +0200)]
sn-info: Add tool for displaying information about a network in human readable form.

14 years agosn-evolution2: Build this algorithm too when libpopulation is available.
Florian Forster [Mon, 10 May 2010 13:05:05 +0000 (15:05 +0200)]
sn-evolution2: Build this algorithm too when libpopulation is available.

14 years agosn-evolution-cut: Add new evolutionary algorithm for optimizing cuts through networks.
Florian Forster [Mon, 10 May 2010 13:04:38 +0000 (15:04 +0200)]
sn-evolution-cut: Add new evolutionary algorithm for optimizing cuts through networks.

14 years agosn-evolution: Mark appropriate arguments as unused.
Florian Forster [Mon, 10 May 2010 10:23:37 +0000 (12:23 +0200)]
sn-evolution: Mark appropriate arguments as unused.

14 years agosrc/Makefile.am: Build the "sn-evolution" application if libpopulation is available.
Florian Forster [Mon, 10 May 2010 10:23:18 +0000 (12:23 +0200)]
src/Makefile.am: Build the "sn-evolution" application if libpopulation is available.

14 years agoconfigure.ac: Link with "pthread" if no libs are given explicitly.
Florian Forster [Mon, 10 May 2010 10:22:55 +0000 (12:22 +0200)]
configure.ac: Link with "pthread" if no libs are given explicitly.

14 years agosn-cut: Include "config.h".
Florian Forster [Mon, 10 May 2010 10:10:56 +0000 (12:10 +0200)]
sn-cut: Include "config.h".

14 years agoconfigure.ac: Added check for libpopulation.
Florian Forster [Mon, 10 May 2010 10:10:39 +0000 (12:10 +0200)]
configure.ac: Added check for libpopulation.

14 years agosrc/sn_network.c: Fix comparison between signed and unsigned.
Florian Forster [Mon, 10 May 2010 09:36:21 +0000 (11:36 +0200)]
src/sn_network.c: Fix comparison between signed and unsigned.

14 years agosn-apply: Include "config.h".
Florian Forster [Mon, 10 May 2010 09:35:58 +0000 (11:35 +0200)]
sn-apply: Include "config.h".

14 years agosn-normalize: Include "config.h".
Florian Forster [Mon, 10 May 2010 09:30:50 +0000 (11:30 +0200)]
sn-normalize: Include "config.h".

14 years agosn-show: Make it possible to display more than one network at once.
Florian Forster [Mon, 10 May 2010 09:29:11 +0000 (11:29 +0200)]
sn-show: Make it possible to display more than one network at once.

14 years agoconfigure.ac: Define wanted C and POSIX versions.
Florian Forster [Mon, 10 May 2010 09:28:50 +0000 (11:28 +0200)]
configure.ac: Define wanted C and POSIX versions.

14 years agoREADME: Added some information about the utility programs.
Florian Forster [Mon, 10 May 2010 08:58:30 +0000 (10:58 +0200)]
README: Added some information about the utility programs.

14 years agoUpdate copyright date and email address.
Florian Forster [Mon, 10 May 2010 08:38:55 +0000 (10:38 +0200)]
Update copyright date and email address.

14 years agosrc/Makefile.am: Added more binaries to the Makefile.
Florian Forster [Mon, 10 May 2010 08:20:08 +0000 (10:20 +0200)]
src/Makefile.am: Added more binaries to the Makefile.

14 years agoAdded empty README file.
Florian Forster [Mon, 10 May 2010 08:14:26 +0000 (10:14 +0200)]
Added empty README file.

14 years agoInitial autotoolization.
Florian Forster [Mon, 10 May 2010 08:11:39 +0000 (10:11 +0200)]
Initial autotoolization.

15 years agopop_stats: Add module for population statistics.
Florian Forster [Fri, 4 Sep 2009 08:15:31 +0000 (10:15 +0200)]
pop_stats: Add module for population statistics.

Actually more offspring statistics, though.

15 years agosrc/sn-evolution2.c: Add `weights' for `total', `fails' and `stages'.
Florian Forster [Thu, 26 Mar 2009 12:58:49 +0000 (13:58 +0100)]
src/sn-evolution2.c: Add `weights' for `total', `fails' and `stages'.

15 years agosrc/sn-evolution2.c: Clean up the mutation probability a bit.
Florian Forster [Thu, 12 Mar 2009 17:13:40 +0000 (18:13 +0100)]
src/sn-evolution2.c: Clean up the mutation probability a bit.

15 years agosrc/sn-evolution2.c: Implement the -I option.
Florian Forster [Thu, 12 Mar 2009 17:12:56 +0000 (18:12 +0100)]
src/sn-evolution2.c: Implement the -I option.

It loads a pre-generated network and uses it as initial population.

15 years agosrc/sn-shmoo.c: Add a generator for shmoo charts.
Florian Forster [Wed, 11 Mar 2009 22:25:49 +0000 (23:25 +0100)]
src/sn-shmoo.c: Add a generator for shmoo charts.

15 years agosrc/sn-batcher.c: Add program to create batcher mergesort networks.
Florian Forster [Wed, 11 Mar 2009 22:24:58 +0000 (23:24 +0100)]
src/sn-batcher.c: Add program to create batcher mergesort networks.

15 years agosrc/sn-evolution2.c: Calculate mutation probability at runtime.
Florian Forster [Wed, 11 Mar 2009 12:08:59 +0000 (13:08 +0100)]
src/sn-evolution2.c: Calculate mutation probability at runtime.

15 years agosrc/sn-evolution2.c: Make mutations more likely.
Florian Forster [Wed, 11 Mar 2009 10:50:52 +0000 (11:50 +0100)]
src/sn-evolution2.c: Make mutations more likely.

15 years agosrc/sn-evolution2: Added a true random evolutionary algorithm.
Florian Forster [Wed, 11 Mar 2009 10:21:37 +0000 (11:21 +0100)]
src/sn-evolution2: Added a true random evolutionary algorithm.

15 years agosrc/sn_network.c: Replace all tabs with spaces.
Florian Forster [Wed, 11 Mar 2009 08:13:47 +0000 (09:13 +0100)]
src/sn_network.c: Replace all tabs with spaces.

15 years agosrc/sn_network.c: Fix a bug in sn_network_normalize.
Florian Forster [Wed, 11 Mar 2009 08:12:18 +0000 (09:12 +0100)]
src/sn_network.c: Fix a bug in sn_network_normalize.

15 years agosrc/sn-oddevenmerge.c: Create a OEM-network.
Florian Forster [Wed, 11 Mar 2009 08:10:26 +0000 (09:10 +0100)]
src/sn-oddevenmerge.c: Create a OEM-network.

The OEM code in sn_network.c has been improved to handle networks with
numbers of inputs that are *not* a power of two.

15 years agosrc/sn-evolution.c: Don't mutate large networks.
Florian Forster [Wed, 26 Nov 2008 22:09:56 +0000 (23:09 +0100)]
src/sn-evolution.c: Don't mutate large networks.

The required brute-force checking can only be done for small (e. g. 16
inputs) networks.

15 years agosrc/sn-evolution.c: Make the output a bit nicer.
Florian Forster [Wed, 26 Nov 2008 22:08:39 +0000 (23:08 +0100)]
src/sn-evolution.c: Make the output a bit nicer.

16 years agosrc/sn_network.c: Implement shifting when using the bitonic merge.
Florian Forster [Thu, 20 Nov 2008 08:58:47 +0000 (09:58 +0100)]
src/sn_network.c: Implement shifting when using the bitonic merge.

Before adding the bitonic merger to a concatenated network, shift it by
a random amount of inputs. Because the merger is *bitonic* it'll still
be able to merge the result correctly.

16 years agosrc/sn_network.[ch]: Implement `sn_network_shift'.
Florian Forster [Thu, 20 Nov 2008 08:44:40 +0000 (09:44 +0100)]
src/sn_network.[ch]: Implement `sn_network_shift'.

16 years agosrc/sn_stage.[ch]: Implement `sn_stage_shift'.
Florian Forster [Thu, 20 Nov 2008 08:43:29 +0000 (09:43 +0100)]
src/sn_stage.[ch]: Implement `sn_stage_shift'.

16 years agosrc/sn_comparator.[ch]: Implement `sn_comparator_shift'.
Florian Forster [Thu, 20 Nov 2008 08:43:04 +0000 (09:43 +0100)]
src/sn_comparator.[ch]: Implement `sn_comparator_shift'.

16 years agosrc/sn_network.c: Add folding markers to all functions.
Florian Forster [Thu, 20 Nov 2008 07:29:04 +0000 (08:29 +0100)]
src/sn_network.c: Add folding markers to all functions.

16 years agoMerge branch 'ff/libpopulation'
Florian Forster [Sun, 13 Jul 2008 08:42:45 +0000 (10:42 +0200)]
Merge branch 'ff/libpopulation'

16 years agosrc/sn-evolution.c: Make peers and #threads configurable at runtime.
Florian Forster [Sun, 13 Jul 2008 08:41:43 +0000 (10:41 +0200)]
src/sn-evolution.c: Make peers and #threads configurable at runtime.

16 years agosrc/sn_network.c: Fix a bug/typo in the unserialize code.
Florian Forster [Sat, 12 Jul 2008 12:10:54 +0000 (14:10 +0200)]
src/sn_network.c: Fix a bug/typo in the unserialize code.

16 years agosn_network.[ch]: Implemented (un)serialize functions.
Florian Forster [Fri, 11 Jul 2008 15:00:39 +0000 (17:00 +0200)]
sn_network.[ch]: Implemented (un)serialize functions.

16 years agosn_stage.[ch]: Implemented (un)serialize functions.
Florian Forster [Fri, 11 Jul 2008 15:00:13 +0000 (17:00 +0200)]
sn_stage.[ch]: Implemented (un)serialize functions.

16 years agosn-evolution: Use the `libpopulation' library instead of `sn_population'.
Florian Forster [Fri, 11 Jul 2008 11:12:15 +0000 (13:12 +0200)]
sn-evolution: Use the `libpopulation' library instead of `sn_population'.

16 years agosrc/sn_population.c: Removed some debug messages.
Florian Forster [Fri, 11 Jul 2008 10:05:43 +0000 (12:05 +0200)]
src/sn_population.c: Removed some debug messages.

16 years agoMerge branch 'master' of git://git.verplant.org/sort-networks
Florian Forster [Sat, 10 May 2008 09:03:13 +0000 (11:03 +0200)]
Merge branch 'master' of git://git.verplant.org/sort-networks