[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] possible bug for vectors and matrices
From: |
Rhys Ulerich |
Subject: |
Re: [Help-gsl] possible bug for vectors and matrices |
Date: |
Sat, 2 Jun 2012 08:34:47 -0500 |
Hi Jerome (and bug-gsl added on CC),
> I have just gone through some gsl_(vector|matrix)_TYPE.h headers (with
> TYPE=long, long_double, ...). Functions that scale by or add a
> constant has a *double* as constant argument: should this argument
> constant not be in type TYPE rather than in type double?
Just to be concrete, you're saying all of
int gsl_vector_long_double_scale (gsl_vector_long_double * a, const double x);
int gsl_vector_long_double_add_constant (gsl_vector_long_double * a,
const double x);
int gsl_matrix_long_double_scale (gsl_matrix_long_double * a, const double x);
int gsl_matrix_long_double_add_constant (gsl_matrix_long_double * a,
const double x);
int gsl_matrix_long_double_add_diagonal (gsl_matrix_long_double * a,
const double x);
should be taking long doubles as their second argument? Likewise for
other types? I agree.
For anything "smaller" than double I doubt that the bug will cause a
loss of precision. But for long doubles and above it is indeed a
problem. Either way, the API isn't right.
Anyone have an objection if I throw this in a ticket on savannah and
take a stab at fixing it by correcting the templating? (I think the
right template macro is BASE rather than TYPE, but that's an
implementation detail).
- Rhys