There are functions that have derivatives for the different types.  For
example

`double gsl_stats_mean(const double data[], const size_t stride, const
size_t n)` (`<gsl/gsl_statistics_double.h>`)

has derivatives such as:

`double gsl_stats_short_mean(const short data[], const size_t stride, const
size_t n)` (`<gsl/gsl_statistics_short.h>`)
`double gsl_stats_uchar_mean(const unsigned char data[], const size_t
stride, const size_t n)` (`<gsl/gsl_statistics_uchar.h>`)
`double gsl_stats_char_mean(const char data[], const size_t stride, const
size_t n)` (`<gsl/gsl_statistics_char.h>`)

With all those functions, one can use any of the types in a x64
environment.  But in aarch64 (Manjaro ARM @ Raspberry Pi 3B+), `char` is
unsigned, so `gsl_stats_uchar_mean()` and `gsl_stats_char_mean()` result in
the same function, and there is no function for `int8_t` (a.k.a. `signed
char`) arrays.

Bug fix:  easy, just replace every appearance of `char` by the more
explicit `signed char`.

Reply via email to