From d2a050d1da5948da400561cb4cef1e401b8942be Mon Sep 17 00:00:00 2001 From: TheOnePath Date: Wed, 11 Sep 2024 14:24:24 +0100 Subject: [PATCH] Moved linspace function into module --- include/linalg.h | 10 ++++++++++ src/linalg.c | 12 ++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 include/linalg.h create mode 100644 src/linalg.c diff --git a/include/linalg.h b/include/linalg.h new file mode 100644 index 0000000..4caf762 --- /dev/null +++ b/include/linalg.h @@ -0,0 +1,10 @@ +#include + +#ifndef LINALG_H +#define LINALG_H + +int +linspace +( double start, double end, int length, gsl_matrix *out ); + +#endif diff --git a/src/linalg.c b/src/linalg.c new file mode 100644 index 0000000..d3a7da4 --- /dev/null +++ b/src/linalg.c @@ -0,0 +1,12 @@ +#include "linalg.h" + +int linspace ( double start, double end, int length, gsl_matrix *out ) { + if ( out->size2 != length ) + return 1; + + double by = end / length; + for ( int i = 0 ; i < length ; i++ ) + (void)gsl_matrix_set(out, 0, i, i*by); + + return 0; +}