I mainly use C++. But I think C now works so that you could use
gsl_vector* const v
in place of a
const gsl_vector* v
argument, and get the desired result.
I don’t know if there would be unintended consequences of rewriting the
arguments of the GSL functions this way. I know that C can’t handle both of
int function( const gsl_vector* v );
int function( gsl_vector* const v );
in the same code. So it would need a rewrite.
One issue would be that if the code were rewritten any code that passed
a const gsl_vector* argument would cause a compilation failure. The
workaround might be to use a
gsl_vector const* const v
argument. But I don’t know if that would cause problems, for example
with older compilers.