Index: src/cvec.c
===================================================================
--- src/cvec.c	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/cvec.c	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -22,5 +22,5 @@
 #include "cvec.h"
 
-cvec_t * new_cvec( uint_t length) {
+cvec_t * new_cvec(uint_t length) {
   cvec_t * s;
   if ((sint_t)length <= 0) {
@@ -56,9 +56,9 @@
 }
 
-smpl_t * cvec_norm_get_data (cvec_t *s) {
+smpl_t * cvec_norm_get_data (const cvec_t *s) {
   return s->norm;
 }
 
-smpl_t * cvec_phas_get_data (cvec_t *s) {
+smpl_t * cvec_phas_get_data (const cvec_t *s) {
   return s->phas;
 }
@@ -66,5 +66,5 @@
 /* helper functions */
 
-void cvec_print(cvec_t *s) {
+void cvec_print(const cvec_t *s) {
   uint_t j;
   AUBIO_MSG("norm: ");
@@ -80,5 +80,5 @@
 }
 
-void cvec_copy(cvec_t *s, cvec_t *t) {
+void cvec_copy(const cvec_t *s, cvec_t *t) {
   if (s->length != t->length) {
     AUBIO_ERR("trying to copy %d elements to %d elements \n",
Index: src/cvec.h
===================================================================
--- src/cvec.h	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/cvec.h	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -151,5 +151,5 @@
 
 */
-smpl_t * cvec_norm_get_data (cvec_t *s);
+smpl_t * cvec_norm_get_data (const cvec_t *s);
 
 /** read phase data from a complex buffer
@@ -163,5 +163,5 @@
 
 */
-smpl_t * cvec_phas_get_data (cvec_t *s);
+smpl_t * cvec_phas_get_data (const cvec_t *s);
 
 /** print out cvec data
@@ -170,5 +170,5 @@
 
 */
-void cvec_print(cvec_t *s);
+void cvec_print(const cvec_t *s);
 
 /** make a copy of a vector
@@ -178,5 +178,5 @@
 
 */
-void cvec_copy(cvec_t *s, cvec_t *t);
+void cvec_copy(const cvec_t *s, cvec_t *t);
 
 /** set all norm elements to a given value
Index: src/fmat.c
===================================================================
--- src/fmat.c	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/fmat.c	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -54,9 +54,9 @@
 }
 
-smpl_t fmat_get_sample(fmat_t *s, uint_t channel, uint_t position) {
+smpl_t fmat_get_sample(const fmat_t *s, uint_t channel, uint_t position) {
   return s->data[channel][position];
 }
 
-void fmat_get_channel(fmat_t *s, uint_t channel, fvec_t *output) {
+void fmat_get_channel(const fmat_t *s, uint_t channel, fvec_t *output) {
   output->data = s->data[channel];
   output->length = s->length;
@@ -64,9 +64,9 @@
 }
 
-smpl_t * fmat_get_channel_data(fmat_t *s, uint_t channel) {
+smpl_t * fmat_get_channel_data(const fmat_t *s, uint_t channel) {
   return s->data[channel];
 }
 
-smpl_t ** fmat_get_data(fmat_t *s) {
+smpl_t ** fmat_get_data(const fmat_t *s) {
   return s->data;
 }
@@ -74,5 +74,5 @@
 /* helper functions */
 
-void fmat_print(fmat_t *s) {
+void fmat_print(const fmat_t *s) {
   uint_t i,j;
   for (i=0; i< s->height; i++) {
@@ -117,5 +117,5 @@
 }
 
-void fmat_weight(fmat_t *s, fmat_t *weight) {
+void fmat_weight(fmat_t *s, const fmat_t *weight) {
   uint_t i,j;
   uint_t length = MIN(s->length, weight->length);
@@ -127,5 +127,5 @@
 }
 
-void fmat_copy(fmat_t *s, fmat_t *t) {
+void fmat_copy(const fmat_t *s, fmat_t *t) {
   uint_t i;
 #if !HAVE_MEMCPY_HACKS
@@ -155,5 +155,5 @@
 }
 
-void fmat_vecmul(fmat_t *s, fvec_t *scale, fvec_t *output) {
+void fmat_vecmul(const fmat_t *s, const fvec_t *scale, fvec_t *output) {
   uint_t k;
 #if 0
Index: src/fmat.h
===================================================================
--- src/fmat.h	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/fmat.h	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -66,5 +66,5 @@
 
 */
-smpl_t fmat_get_sample(fmat_t *s, uint_t channel, uint_t position);
+smpl_t fmat_get_sample(const fmat_t *s, uint_t channel, uint_t position);
 
 /** write sample value in a buffer
@@ -85,5 +85,5 @@
 
 */
-void fmat_get_channel (fmat_t *s, uint_t channel, fvec_t *output);
+void fmat_get_channel (const fmat_t *s, uint_t channel, fvec_t *output);
 
 /** get vector buffer from an fmat data
@@ -93,5 +93,5 @@
 
 */
-smpl_t * fmat_get_channel_data (fmat_t *s, uint_t channel);
+smpl_t * fmat_get_channel_data (const fmat_t *s, uint_t channel);
 
 /** read data from a buffer
@@ -100,5 +100,5 @@
 
 */
-smpl_t ** fmat_get_data(fmat_t *s);
+smpl_t ** fmat_get_data(const fmat_t *s);
 
 /** print out fmat data
@@ -107,5 +107,5 @@
 
 */
-void fmat_print(fmat_t *s);
+void fmat_print(const fmat_t *s);
 
 /** set all elements to a given value
@@ -147,5 +147,5 @@
 
 */
-void fmat_weight(fmat_t *s, fmat_t *weight);
+void fmat_weight(fmat_t *s, const fmat_t *weight);
 
 /** make a copy of a matrix
@@ -155,5 +155,5 @@
 
 */
-void fmat_copy(fmat_t *s, fmat_t *t);
+void fmat_copy(const fmat_t *s, fmat_t *t);
 
 /* compute the product of a matrix by a vector
@@ -164,5 +164,5 @@
 
 */
-void fmat_vecmul(fmat_t *s, fvec_t *scale, fvec_t *output);
+void fmat_vecmul(const fmat_t *s, const fvec_t *scale, fvec_t *output);
 
 #ifdef __cplusplus
Index: src/fvec.c
===================================================================
--- src/fvec.c	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/fvec.c	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -22,5 +22,5 @@
 #include "fvec.h"
 
-fvec_t * new_fvec( uint_t length) {
+fvec_t * new_fvec(uint_t length) {
   fvec_t * s;
   if ((sint_t)length <= 0) {
@@ -42,9 +42,9 @@
 }
 
-smpl_t fvec_get_sample(fvec_t *s, uint_t position) {
+smpl_t fvec_get_sample(const fvec_t *s, uint_t position) {
   return s->data[position];
 }
 
-smpl_t * fvec_get_data(fvec_t *s) {
+smpl_t * fvec_get_data(const fvec_t *s) {
   return s->data;
 }
@@ -52,5 +52,5 @@
 /* helper functions */
 
-void fvec_print(fvec_t *s) {
+void fvec_print(const fvec_t *s) {
   uint_t j;
   for (j=0; j< s->length; j++) {
@@ -96,5 +96,5 @@
 }
 
-void fvec_weight(fvec_t *s, fvec_t *weight) {
+void fvec_weight(fvec_t *s, const fvec_t *weight) {
 #ifndef HAVE_ACCELERATE
   uint_t j;
@@ -108,5 +108,5 @@
 }
 
-void fvec_weighted_copy(fvec_t *in, fvec_t *weight, fvec_t *out) {
+void fvec_weighted_copy(const fvec_t *in, const fvec_t *weight, fvec_t *out) {
 #ifndef HAVE_ACCELERATE
   uint_t j;
@@ -120,5 +120,5 @@
 }
 
-void fvec_copy(fvec_t *s, fvec_t *t) {
+void fvec_copy(const fvec_t *s, fvec_t *t) {
   if (s->length != t->length) {
     AUBIO_ERR("trying to copy %d elements to %d elements \n",
Index: src/fvec.h
===================================================================
--- src/fvec.h	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/fvec.h	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -90,5 +90,5 @@
 
 */
-smpl_t fvec_get_sample(fvec_t *s, uint_t position);
+smpl_t fvec_get_sample(const fvec_t *s, uint_t position);
 
 /** write sample value in a buffer
@@ -106,5 +106,5 @@
 
 */
-smpl_t * fvec_get_data(fvec_t *s);
+smpl_t * fvec_get_data(const fvec_t *s);
 
 /** print out fvec data
@@ -113,5 +113,5 @@
 
 */
-void fvec_print(fvec_t *s);
+void fvec_print(const fvec_t *s);
 
 /** set all elements to a given value
@@ -153,5 +153,5 @@
 
 */
-void fvec_weight(fvec_t *s, fvec_t *weight);
+void fvec_weight(fvec_t *s, const fvec_t *weight);
 
 /** make a copy of a vector
@@ -161,5 +161,5 @@
 
 */
-void fvec_copy(fvec_t *s, fvec_t *t);
+void fvec_copy(const fvec_t *s, fvec_t *t);
 
 /** make a copy of a vector, applying weights to each element
@@ -170,5 +170,5 @@
 
 */
-void fvec_weighted_copy(fvec_t *in, fvec_t *weight, fvec_t *out);
+void fvec_weighted_copy(const fvec_t *in, const fvec_t *weight, fvec_t *out);
 
 #ifdef __cplusplus
Index: src/lvec.c
===================================================================
--- src/lvec.c	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/lvec.c	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -22,5 +22,5 @@
 #include "lvec.h"
 
-lvec_t * new_lvec( uint_t length) {
+lvec_t * new_lvec(uint_t length) {
   lvec_t * s;
   if ((sint_t)length <= 0) {
@@ -46,5 +46,5 @@
 }
 
-lsmp_t * lvec_get_data(lvec_t *s) {
+lsmp_t * lvec_get_data(const lvec_t *s) {
   return s->data;
 }
@@ -52,5 +52,5 @@
 /* helper functions */
 
-void lvec_print(lvec_t *s) {
+void lvec_print(const lvec_t *s) {
   uint_t j;
   for (j=0; j< s->length; j++) {
Index: src/lvec.h
===================================================================
--- src/lvec.h	(revision c4d251c12cfccd0fb5c64e57c3d36e79d12b2ec9)
+++ src/lvec.h	(revision 1120f86f4c27475f0ae23afaa06d2a2e5996ecd8)
@@ -81,5 +81,5 @@
 
 */
-lsmp_t * lvec_get_data(lvec_t *s);
+lsmp_t * lvec_get_data(const lvec_t *s);
 
 /** print out lvec data
@@ -88,5 +88,5 @@
 
 */
-void lvec_print(lvec_t *s);
+void lvec_print(const lvec_t *s);
 
 /** set all elements to a given value
