Compare commits

..

No commits in common. '483301c5c5a0b2cf2b0b54ce7de194c3f4c846bd' and '72592d445575b78a7dd85de495e88007cb4319f2' have entirely different histories.

@ -1,5 +1,5 @@
CXX := clang++ CXX := clang++
CXXFLAGS := -std=c++23 -O2 -Wall -Wextra -Werror -fopenmp -Ilib CXXFLAGS := -std=c++23 -O2 -Wall -Wextra -Werror -Ilib
SRC_DIR := src SRC_DIR := src
LIB_DIR := lib LIB_DIR := lib
@ -9,6 +9,15 @@ PROJECTS := $(wildcard $(SRC_DIR)/*)
BINS := $(patsubst $(SRC_DIR)/%, $(OUT_DIR)/%, $(PROJECTS)) BINS := $(patsubst $(SRC_DIR)/%, $(OUT_DIR)/%, $(PROJECTS))
LIB_SOURCES := $(wildcard $(LIB_DIR)/*.cpp) LIB_SOURCES := $(wildcard $(LIB_DIR)/*.cpp)
OPENMP_FLAG :=
OPENMP_CHECK := $(shell echo | $(CXX) -fopenmp -x c++ - -o /dev/null 2>/dev/null && echo yes)
ifeq ($(OPENMP_CHECK),yes)
OPENMP_FLAG := -fopenmp
endif
CXXFLAGS += $(OPENMP_FLAG)
all: $(BINS) all: $(BINS)
$(OUT_DIR)/%: $(SRC_DIR)/% $(LIB_SOURCES) | $(OUT_DIR) $(OUT_DIR)/%: $(SRC_DIR)/% $(LIB_SOURCES) | $(OUT_DIR)

@ -1,12 +1,12 @@
# Algorithmisches Beweisen - LAB
<p align="center"><a href="https://gitmoji.dev"> <p align="center"><a href="https://gitmoji.dev">
<img src="https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square" <img src="https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square"
alt="Gitmoji"> alt="Gitmoji">
</a></p> </a></p>
# Algorithmisches Beweisen - LAB
## Dependencies: ## Dependencies:
- clang++ using std=c++23 - clang++ using std=c++23
- openmp - openmp (optional)
## Projects in this repository ## Projects in this repository
### Root ### Root

@ -32,8 +32,8 @@ std::vector<int> unrank_combination(long n, long k, long long idx) {
std::vector<int> comb; std::vector<int> comb;
comb.reserve(k); comb.reserve(k);
long start = 1; long start = 1;
for (long i = 0; i < k; ++i) { for (long i = 0; i < k; i++) {
for (long v = start; v <= n; ++v) { for (long v = start; v <= n; v++) {
long long count = binom(n - v, k - i - 1); long long count = binom(n - v, k - i - 1);
if (idx < count) { if (idx < count) {
comb.push_back((int)v); comb.push_back((int)v);
@ -57,7 +57,7 @@ std::vector<long long> sample_indices(long long total, long c) {
std::mt19937 gen(rd()); std::mt19937 gen(rd());
std::uniform_int_distribution<long long> dist(0, total - 1); std::uniform_int_distribution<long long> dist(0, total - 1);
for (long i = 0; i < c; ++i) { for (long i = 0; i < c; i++) {
idx.push_back(dist(gen)); idx.push_back(dist(gen));
} }
@ -75,7 +75,7 @@ Clause decode_clause(long n, long k, long long idx) {
Clause cl; Clause cl;
cl.reserve(k); cl.reserve(k);
for (int i = 0; i < k; ++i) { for (int i = 0; i < k; i++) {
int lit = comb[i]; int lit = comb[i];
cl.push_back((mask & (1 << i)) ? lit : -lit); cl.push_back((mask & (1 << i)) ? lit : -lit);
} }
@ -92,7 +92,7 @@ std::vector<Clause> build_clauses_parallel(
std::vector<Clause> result(indices.size()); std::vector<Clause> result(indices.size());
#pragma omp parallel for schedule(dynamic) #pragma omp parallel for schedule(dynamic)
for (long i = 0; i < (long)indices.size(); ++i) { for (long i = 0; i < (long)indices.size(); i++) {
result[i] = decode_clause(n, k, indices[i]); result[i] = decode_clause(n, k, indices[i]);
} }

Loading…
Cancel
Save