sort-networks.git
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.

16 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.

16 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

16 years agosn-evolution: Add a SIGTERM handler.
Florian Forster [Sat, 10 May 2008 09:02:53 +0000 (11:02 +0200)]
sn-evolution: Add a SIGTERM handler.

16 years agosrc/sn_population.c: Implemented a brute force minimization for very good solutions.
Florian Forster [Sat, 10 May 2008 09:01:54 +0000 (11:01 +0200)]
src/sn_population.c: Implemented a brute force minimization for very good solutions.

16 years agosn-evolution: Remove a debug message.
Florian Forster [Sat, 10 May 2008 09:01:05 +0000 (11:01 +0200)]
sn-evolution: Remove a debug message.

16 years agosn-evolution: Added a mutation operator.
Florian Forster [Sat, 10 May 2008 07:57:39 +0000 (09:57 +0200)]
sn-evolution: Added a mutation operator.

16 years agosn-check-bf: Added a brute-force checker.
Florian Forster [Sat, 10 May 2008 07:44:30 +0000 (09:44 +0200)]
sn-check-bf: Added a brute-force checker.

It's a lot faster than the Perl version. \o/

16 years agosn-apply: Use `sn_stage_sort' rather than the own function.
Florian Forster [Sat, 10 May 2008 06:32:20 +0000 (08:32 +0200)]
sn-apply: Use `sn_stage_sort' rather than the own function.

16 years agosrc/sn_{network,stage}.[ch]: Add a brute force checker.
Florian Forster [Sat, 10 May 2008 06:30:43 +0000 (08:30 +0200)]
src/sn_{network,stage}.[ch]: Add a brute force checker.

And the needed actual sorting code.

16 years agosrc/*.c: Define _ISOC99_SOURCE and _POSIX_C_SOURCE in all .c files.
Florian Forster [Sat, 10 May 2008 06:04:48 +0000 (08:04 +0200)]
src/*.c: Define _ISOC99_SOURCE and _POSIX_C_SOURCE in all .c files.

16 years agosrc/Makefile: Updated the `clean' target.
Florian Forster [Sat, 10 May 2008 06:03:41 +0000 (08:03 +0200)]
src/Makefile: Updated the `clean' target.

16 years agosrc/sn-evolution.c: Added pthread support for (local) parallelization.
Florian Forster [Sat, 10 May 2008 05:57:28 +0000 (07:57 +0200)]
src/sn-evolution.c: Added pthread support for (local) parallelization.

16 years agosrc/sn-apply.c: Add tool to show the progress of the network.
Florian octo Forster [Thu, 8 May 2008 05:11:58 +0000 (07:11 +0200)]
src/sn-apply.c: Add tool to show the progress of the network.

16 years agosrc/*.[ch]: Added GPLv2 license information.
Florian Forster [Wed, 7 May 2008 15:20:35 +0000 (17:20 +0200)]
src/*.[ch]: Added GPLv2 license information.

16 years agosrc/Makefile: Added the new programs and dependencies.
Florian Forster [Wed, 7 May 2008 15:05:17 +0000 (17:05 +0200)]
src/Makefile: Added the new programs and dependencies.

16 years agosrc/sn-tex.c: Add a program to format sort networks as tikz source.
Florian Forster [Wed, 7 May 2008 15:04:36 +0000 (17:04 +0200)]
src/sn-tex.c: Add a program to format sort networks as tikz source.

16 years agosrc/sn_normalize.c: Add a program to normalize sort networks.
Florian Forster [Wed, 7 May 2008 15:03:42 +0000 (17:03 +0200)]
src/sn_normalize.c: Add a program to normalize sort networks.

16 years agosrc/sn_network.[ch]: Add `sn_network_normalize'.
Florian Forster [Wed, 7 May 2008 15:02:58 +0000 (17:02 +0200)]
src/sn_network.[ch]: Add `sn_network_normalize'.

This changes all comparators, so that they all point in the same direction.

16 years agosrc/sn_evolution.c: Print the rating of the best solution periodically.
Florian Forster [Wed, 7 May 2008 15:01:45 +0000 (17:01 +0200)]
src/sn_evolution.c: Print the rating of the best solution periodically.

16 years agosrc/sn_population.[ch]: Add `sn_population_best_rating'.
Florian Forster [Wed, 7 May 2008 15:01:16 +0000 (17:01 +0200)]
src/sn_population.[ch]: Add `sn_population_best_rating'.

16 years agosrc/sn-evolution.c: Use the sn_random module.
Florian Forster [Fri, 25 Apr 2008 09:15:43 +0000 (11:15 +0200)]
src/sn-evolution.c: Use the sn_random module.

16 years agosrc/sn-evolution.c: Write best network to output file if given.
Florian Forster [Fri, 25 Apr 2008 09:15:20 +0000 (11:15 +0200)]
src/sn-evolution.c: Write best network to output file if given.

16 years agoMakefile: Added the new modules and updated existing ones.
Florian Forster [Fri, 25 Apr 2008 09:08:12 +0000 (11:08 +0200)]
Makefile: Added the new modules and updated existing ones.

16 years agosn-evolution.c: Use the new sn_population object.
Florian Forster [Fri, 25 Apr 2008 09:07:10 +0000 (11:07 +0200)]
sn-evolution.c: Use the new sn_population object.

16 years agosn_population.[ch]: Add the sn_population object.
Florian Forster [Fri, 25 Apr 2008 09:06:26 +0000 (11:06 +0200)]
sn_population.[ch]: Add the sn_population object.

This object capsulates population handling in a thread-safe manner.

16 years agosn_random.[ch]: Add a module for random number handling.
Florian Forster [Fri, 25 Apr 2008 09:05:50 +0000 (11:05 +0200)]
sn_random.[ch]: Add a module for random number handling.

The random number handling should be thread-safe.

16 years agosn_stage.[ch]: Add the sn_stage_clone method.
Florian Forster [Fri, 25 Apr 2008 09:05:03 +0000 (11:05 +0200)]
sn_stage.[ch]: Add the sn_stage_clone method.

16 years agosn_network.[ch]: Add the sn_network_clone method.
Florian Forster [Fri, 25 Apr 2008 09:04:38 +0000 (11:04 +0200)]
sn_network.[ch]: Add the sn_network_clone method.

16 years agosn-evolution: Implemented the use of `getopt'.
Florian Forster [Mon, 11 Feb 2008 13:56:45 +0000 (14:56 +0100)]
sn-evolution: Implemented the use of `getopt'.

16 years agosrc/sn-evolution.c: Free the population before exiting.
Florian Forster [Sat, 2 Feb 2008 00:01:56 +0000 (01:01 +0100)]
src/sn-evolution.c: Free the population before exiting.

16 years agoAdded a `clean' target.
Florian Forster [Sat, 2 Feb 2008 00:01:19 +0000 (01:01 +0100)]
Added a `clean' target.

16 years agosrc/sn_network.c: Fixed two memory leaks.
Florian Forster [Sat, 2 Feb 2008 00:01:04 +0000 (01:01 +0100)]
src/sn_network.c: Fixed two memory leaks.

16 years agosrc/sn-evolution.c: Change the default number of iterations to INT_MAX.
Florian Forster [Fri, 1 Feb 2008 19:24:55 +0000 (20:24 +0100)]
src/sn-evolution.c: Change the default number of iterations to INT_MAX.

16 years agosrc/sn-evolution.c: Added an `olymp'.
Florian Forster [Fri, 1 Feb 2008 19:19:43 +0000 (20:19 +0100)]
src/sn-evolution.c: Added an `olymp'.

This means that every solution is in the population for a garuanteed number of
iterations.

16 years agosrc/sn-evolution.c: Installed a SIGINT handler to shutdown cleanly upon sigint.
Florian Forster [Fri, 1 Feb 2008 19:05:09 +0000 (20:05 +0100)]
src/sn-evolution.c: Installed a SIGINT handler to shutdown cleanly upon sigint.

The best solution is then written to STDOUT before exiting.

16 years agosrc/sn-evolution.c: Added a first version of evolutionary optimization.
Florian Forster [Fri, 1 Feb 2008 18:30:56 +0000 (19:30 +0100)]
src/sn-evolution.c: Added a first version of evolutionary optimization.