Compare commits

...

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

@ -1,5 +1,5 @@
CXX := clang++
CXXFLAGS := -std=c++23 -O2 -Wall -Wextra -Werror -fopenmp -Ilib
CXXFLAGS := -std=c++23 -O2 -Wall -Wextra -Werror -Ilib
SRC_DIR := src
LIB_DIR := lib
@ -9,6 +9,15 @@ PROJECTS := $(wildcard $(SRC_DIR)/*)
BINS := $(patsubst $(SRC_DIR)/%, $(OUT_DIR)/%, $(PROJECTS))
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)
$(OUT_DIR)/%: $(SRC_DIR)/% $(LIB_SOURCES) | $(OUT_DIR)

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

@ -32,8 +32,8 @@ std::vector<int> unrank_combination(long n, long k, long long idx) {
std::vector<int> comb;
comb.reserve(k);
long start = 1;
for (long i = 0; i < k; ++i) {
for (long v = start; v <= n; ++v) {
for (long i = 0; i < k; i++) {
for (long v = start; v <= n; v++) {
long long count = binom(n - v, k - i - 1);
if (idx < count) {
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::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));
}
@ -75,7 +75,7 @@ Clause decode_clause(long n, long k, long long idx) {
Clause cl;
cl.reserve(k);
for (int i = 0; i < k; ++i) {
for (int i = 0; i < k; i++) {
int lit = comb[i];
cl.push_back((mask & (1 << i)) ? lit : -lit);
}
@ -92,7 +92,7 @@ std::vector<Clause> build_clauses_parallel(
std::vector<Clause> result(indices.size());
#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]);
}

Loading…
Cancel
Save