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; +}