Unlike FORTRAN compilers, C compilers do not usually provide
support for range checking of vectors and matrices. Range checking is
available in the GNU C Compiler extension checkergcc
but it is
not available on every platform. The functions gsl_vector_get
and gsl_vector_set
can perform portable range checking for you
and report an error if you attempt to access elements outside the
allowed range.
The functions for accessing the elements of a vector or matrix are
defined in `gsl_vector.h' and declared extern inline
to
eliminate function-call overhead. If necessary you can turn off range
checking completely without modifying any source files by recompiling
your program with the preprocessor definition
GSL_RANGE_CHECK_OFF
. Provided your compiler supports inline
functions the effect of turning off range checking is to replace calls
to gsl_vector_get(v,i)
by v->data[i*v->stride]
and and
calls to gsl_vector_set(v,i,x)
by v->data[i*v->stride]=x
.
Thus there should be no performance penalty for using the range checking
functions when range checking is turned off.