fix: laxed convergence counter, remove gtk for now
authorametama <ametama@wafflesoft.org>
Thu, 18 Dec 2025 16:27:49 +0000 (17:27 +0100)
committerametama <ametama@wafflesoft.org>
Thu, 18 Dec 2025 16:27:49 +0000 (17:27 +0100)
.gitignore
Makefile
include/gui.h [deleted file]
include/swarm.h
src/gui.c [deleted file]
src/main.c
src/swarm.c

index 95963100ef4155412e3df3e0e41aeb95b6af38d7..28f02b871b2bf2fecb2c83dbd677b72cb14053b3 100644 (file)
@@ -1,2 +1,3 @@
 apso
 compile_flags.txt
+*.gnu
index 0a4bff35ea02708bc94b5283bf33d578859da8e2..7185bbe5bac231124f5174f59c5272e00204c8b1 100644 (file)
--- 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 (file)
index 2ea4b73..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <gtk/gtk.h>
-
-GtkApplication *gui_init();
index 169bc0e79ad283c72262e3c51d89fedb4b4733dd..b3f58e95fbffdb865b51e9b79f263323a891e0d6 100644 (file)
@@ -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 (file)
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;
-}
index 62965ae465b6e4c43388d2cb54e75fd2a797c2a6..94ddcfad2e6860320365354963e90490b638d0f5 100644 (file)
@@ -1,6 +1,7 @@
+#include <math.h>
+#include <stdio.h>
 #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();
index 4d94c82c5d173d1bc3f577b57f9de4a6a7178511..c4074df91e7bca599217d35397e33c936162a523 100644 (file)
@@ -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++;