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.

__Function:__double**gsl_vector_get***(const gsl_vector **`v`, size_t`i`)-
This function returns the
`i`-th element of a vector`v`. If`i`lies outside the allowed range of 0 to`n-1`then the error handler is invoked and 0 is returned.

__Function:__void**gsl_vector_set***(gsl_vector **`v`, size_t`i`, double`x`)-
This function sets the value of the
`i`-th element of a vector`v`to`x`. If`i`lies outside the allowed range of 0 to`n-1`then the error handler is invoked.

__Function:__double ***gsl_vector_ptr***(gsl_vector **`v`, size_t`i`)__Function:__const double ***gsl_vector_ptr***(const gsl_vector **`v`, size_t`i`)-
These functions return a pointer to the
`i`-th element of a vector`v`. If`i`lies outside the allowed range of 0 to`n-1`then the error handler is invoked and a null pointer is returned.

Go to the first, previous, next, last section, table of contents.