-
Notifications
You must be signed in to change notification settings - Fork 8
Source code for the SubsetSum@Home application.
travisdesell/subset_sum_at_home
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
To compile:
After cloning the git repository, be sure to do:
git submodule init
git submodule update
To make sure that you grab all the files in the undvc_common submodule.
Verbose version:
g++ -Wall -DVERBOSE -O3 -o subset_sum subset_sum_main.cpp
Quiet (fast) version:
g++ -Wall -O3 -o subset_sum subset_sum_main.cpp
For BOINC:
g++ -DVERBOSE -DFALSE_ONLY -DENABLE_CHECKPOINTING -D_BOINC_ -O3 -msse3
-funroll-loops -ftree-vectorize -Wall subset_sum_main.cpp
-o subset_sum
Additional flags:
-DTIMESTAMP -- enable printing the starting, ending and
running time of the program
-DFALSE_ONLY -- only print out the failed sets
-DENABLE_COLOR -- enable ANSI colors. Sums that are required
and found (1s) will be printed green, and
sums that are required and not found (0s)
will be red.
-DENABLE_CHECKPOINTING -- Turns on checkpointing.
-DSHOW_SUM_CALCULATION -- Turns on printing out how the subset sums
are calculated. Useful for debugging and
this might be nice for analysis.
-DHTML_OUTPUT -- Output will be formatted for HTML, so it
can be put in a webpage.
To run:
./subset_sum <M> <N>
Where <M> is the maximum set value, and <N> is the number of elements
in the set. This will calculate it for all subsets.
./subset_sum <M> <N> <i> <count>
This will start from the <i>th subset of the problem for <M> and <N>,
and compute the next <count> subsets.
TODO:
* generate_ith_subset and the n_choose_k functions need to be
updated so they don't fail when M >= 68 and N >= 34.
* Calculate the set sums (without a binary representation) and use
it to verify the results from the fast binary implementation.
* Double check that the 'all_ones', 'or_single', 'or_equal' and
'shift_left' functions are working correctly.
* Update the code so that instead of checking all sums up to the
sum of all set elements, we only need to check up to the sum
of all set elements divided by 2 (as the sums are symmetric).
BUGS:
* No known bugs at the moment.
About
Source code for the SubsetSum@Home application.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published