From 0f117594066a213cc3cc9261c8906f316e6fb153 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 16 Dec 2022 18:00:12 +0200 Subject: [PATCH] ggml : make more compatible with c99 (#262) --- ggml.c | 5 +++-- ggml.h | 46 ++++++++++++++++++++++------------------------ 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/ggml.c b/ggml.c index e3c0db3..bab5cc7 100644 --- a/ggml.c +++ b/ggml.c @@ -14,9 +14,10 @@ #include #include -// if C99 - static_assert is nop +// if C99 - static_assert is noop +// ref: https://stackoverflow.com/a/53923785/4039976 #ifndef static_assert -#define static_assert(cond, msg) +#define static_assert(cond, msg) struct global_scope_noop_trick #endif #if defined _MSC_VER || defined(__MINGW32__) diff --git a/ggml.h b/ggml.h index 6dd5d04..7f24e53 100644 --- a/ggml.h +++ b/ggml.h @@ -681,34 +681,32 @@ struct ggml_opt_params { bool print_forward_graph; bool print_backward_graph; - union { - // ADAM parameters - struct { - int n_iter; + // ADAM parameters + struct { + int n_iter; - float alpha; // learning rate - float beta1; - float beta2; - float eps; // epsilon for numerical stability - float eps_f; // epsilon for convergence test - float eps_g; // epsilon for convergence test - } adam; + float alpha; // learning rate + float beta1; + float beta2; + float eps; // epsilon for numerical stability + float eps_f; // epsilon for convergence test + float eps_g; // epsilon for convergence test + } adam; - // LBFGS parameters - struct { - int m; // number of corrections to approximate the inv. Hessian - int n_iter; - int max_linesearch; + // LBFGS parameters + struct { + int m; // number of corrections to approximate the inv. Hessian + int n_iter; + int max_linesearch; - float eps; // convergence tolerance - float ftol; // line search tolerance - float wolfe; - float min_step; - float max_step; + float eps; // convergence tolerance + float ftol; // line search tolerance + float wolfe; + float min_step; + float max_step; - enum ggml_linesearch linesearch; - } lbfgs; - }; + enum ggml_linesearch linesearch; + } lbfgs; }; struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type);