## Data types

All the functions are available for each of the standard data-types. The versions for `double` have the prefix `gsl_block`, `gsl_vector` and `gsl_matrix`. Similarly the versions for single-precision `float` arrays have the prefix `gsl_block_float`, `gsl_vector_float` and `gsl_matrix_float`. The full list of available types is given below,

    gsl_block                       double
    gsl_block_float                 float
    gsl_block_long_double           long double
    gsl_block_int                   int
    gsl_block_uint                  unsigned int
    gsl_block_long                  long
    gsl_block_ulong                 unsigned long
    gsl_block_short                 short
    gsl_block_ushort                unsigned short
    gsl_block_char                  char
    gsl_block_uchar                 unsigned char
    gsl_block_complex               complex double
    gsl_block_complex_float         complex float
    gsl_block_complex_long_double   complex long double

Corresponding types exist for the `gsl_vector` and `gsl_matrix` functions.