From: ametama Date: Thu, 18 Dec 2025 16:27:49 +0000 (+0100) Subject: fix: laxed convergence counter, remove gtk for now X-Git-Url: https://git.wafflesoft.org/?a=commitdiff_plain;h=52c1dfe47a8ba77cb74ad7835b01fa8f97d6c20a;p=cgo.git fix: laxed convergence counter, remove gtk for now --- diff --git a/.gitignore b/.gitignore index 9596310..28f02b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ apso compile_flags.txt +*.gnu diff --git a/Makefile b/Makefile index 0a4bff3..7185bbe 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,16 @@ -all: compile_flags executable +build: compile_flags executable -compile_flags: +compile_flags_gtk: echo "-Iinclude `pkg-config --cflags gtk4` -lm -fopenmp `pkg-config --libs gtk4`" | perl -pe 's|(-.*?)\s|\1\n|g' > compile_flags.txt echo "-o apso" >> compile_flags.txt +compile_flags: + echo "-Iinclude -lm -fopenmp" | perl -pe 's|(-.*?)\s|\1\n|g' > compile_flags.txt + echo "-o apso" >> compile_flags.txt + executable: $(wildcard src/*.c) gcc $(shell cat compile_flags.txt) $(shell ls src/*.c) + +clear: + rm apso + rm compile_flags.txt diff --git a/include/gui.h b/include/gui.h deleted file mode 100644 index 2ea4b73..0000000 --- a/include/gui.h +++ /dev/null @@ -1,3 +0,0 @@ -#include - -GtkApplication *gui_init(); diff --git a/include/swarm.h b/include/swarm.h index 169bc0e..b3f58e9 100644 --- a/include/swarm.h +++ b/include/swarm.h @@ -32,7 +32,7 @@ struct particle { double *velocity; }; -void pick(const int dim, const range *vrange, double *v); +void pick(const int dim, const range *rrange, double *v); void swarm_populate(swarm *sw, const range *rrange); void swarm_velocity_update(swarm *sw); void swarm_optimize(swarm *sw); diff --git a/src/gui.c b/src/gui.c deleted file mode 100644 index 532f9af..0000000 --- a/src/gui.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "gui.h" - -static void on_activate(GtkApplication *app) { - GtkWidget *window = gtk_application_window_new(app); - GtkWidget *button = gtk_button_new_with_label("Hello, World!"); - g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_window_close), window); - gtk_window_set_child(GTK_WINDOW(window), button); - gtk_window_present(GTK_WINDOW(window)); -} - -GtkApplication *gui_init() { - GtkApplication *app = gtk_application_new("org.wafflesoft.NCPSO", G_APPLICATION_DEFAULT_FLAGS); - g_signal_connect(app, "activate", G_CALLBACK(on_activate), NULL); - return app; -} diff --git a/src/main.c b/src/main.c index 62965ae..94ddcfa 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,7 @@ +#include +#include #include "vector.h" #include "swarm.h" -#include "gui.h" double b0(double *x) { return -x[0]; @@ -38,7 +39,7 @@ int main(int argc, char *argv[]) { }; swarm_populate(&sw, rrange); swarm_optimize(&sw); - printf("APSO: converged in x="); + printf("apso: converged in x="); vec_print(sw.params.dim, sw.global_best->current.x); printf(" with fitness f(x)=%f\n", sw.global_best->current.fitness); // GtkApplication *app = gui_init(); diff --git a/src/swarm.c b/src/swarm.c index 4d94c82..c4074df 100644 --- a/src/swarm.c +++ b/src/swarm.c @@ -12,8 +12,8 @@ double randrange(double min, double max) { return rands() * (max - min) + min; } -void pick(const int dim, const range *vrange, double *v) { - for (int d = 0; d < dim; d++) v[d] = randrange(vrange[d].min, vrange[d].max); +void pick(const int dim, const range *rrange, double *v) { + for (int d = 0; d < dim; d++) v[d] = randrange(rrange[d].min, rrange[d].max); } void swarm_populate(swarm *sw, const range *rrange) { @@ -63,7 +63,7 @@ void swarm_velocity_update(swarm *sw) { void swarm_optimize(swarm *sw) { int conv = 0; double best = INFINITY; - while (conv < 10000) { + while (conv < 1000) { swarm_velocity_update(sw); if (fabs(sw->global_best->current.fitness - best) < sw->params.eps) conv++;