CSFLOC rewrite

Signed-off-by: gothictomato <gothictomato@pm.me>
This commit is contained in:
gothictomato
2022-09-04 10:52:28 -04:00
parent e2b633c802
commit 53a580d0ec
9 changed files with 761 additions and 228 deletions

View File

@@ -3,6 +3,7 @@
#include "../cnf.h"
#include "../gpusolver.h"
#include "../time.h"
#include "../cpusolver.h"
i32 runTests() {
i32 res = runuf20();
@@ -24,8 +25,7 @@ i32 runTests() {
i32 runuf20() {
gpusolver* gs = initSolver();
// printf("Running against uf20\n");
printf("Running against uf20\n");
u32 passed = 0;
u64 tottime = 0;
for (u32 i = 0; i < 1000; ++i) {
@@ -37,23 +37,21 @@ i32 runuf20() {
sortlastnum(c);
u64 start = utime();
i32 res = gpusolve2(gs, c);
i32 res = cpusolve(c);
u64 stop = utime();
tottime += (stop - start);
freecnf(c);
if (res == 1) passed++;
}
// printf("Passed %u / 1000 tests\n", passed);
// printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
printf("Passed %u / 1000 tests\n", passed);
printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
if (passed == 1000) return 0;
freeSolver(gs);
return 1;
}
i32 runuf50() {
gpusolver* gs = initSolver();
// printf("Running against uf50\n");
printf("Running against uf50\n");
u32 passed = 0;
u64 tottime = 0;
for (u32 i = 0; i < 1000; ++i) {
@@ -65,23 +63,21 @@ i32 runuf50() {
sortlastnum(c);
u64 start = utime();
i32 res = gpusolve2(gs, c);
i32 res = cpusolve(c);
u64 stop = utime();
tottime += (stop - start);
freecnf(c);
if (res == 1) passed++;
}
// printf("Passed %u / 1000 tests\n", passed);
// printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
printf("Passed %u / 1000 tests\n", passed);
printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
if (passed == 1000) return 0;
freeSolver(gs);
return 1;
}
i32 runuuf50() {
gpusolver* gs = initSolver();
// printf("Running against uuf50\n");
printf("Running against uuf50\n");
u32 passed = 0;
u64 tottime = 0;
for (u32 i = 0; i < 1000; ++i) {
@@ -93,16 +89,15 @@ i32 runuuf50() {
sortlastnum(c);
u64 start = utime();
i32 res = gpusolve2(gs, c);
i32 res = cpusolve(c);
u64 stop = utime();
tottime += (stop - start);
freecnf(c);
if (res == 0) passed++;
}
// printf("Passed %u / 1000 tests\n", passed);
// printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
printf("Passed %u / 1000 tests\n", passed);
printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
if (passed == 1000) return 0;
freeSolver(gs);
return 1;
}