Используя GSL (GNU Scientifi c Library), я пытаюсь понять, почему gsl_vector_view_array () возвращает слегка измененное значение после присваивания.
В приведенном ниже коде я объявляю vector_view 'qview_test ', которая связана с таблицей q_test [0] = 0,0 и отображает ее значение, равное 0,0. Затем я изменяю значение q_test [0] = 1.12348 и ожидаю того же значения для qview_test, но оно изменяется на qview_test = 1.1234800000000000341771055900608189.
Как вы объясните такой результат? Как повторить результат без GSL?
#include <iostream>
#include <gsl/gsl_blas.h>
using namespace std;
double q_test[1]={0.0};
gsl_vector_view qview_test;
int nb_variable = 1;
int main()
{
qview_test=gsl_vector_view_array(q_test,nb_variable);
cout.precision(35);
cout << "qview before: " << gsl_vector_get(&qview_test.vector,0)<< endl;
// Assign value
q_test[0]=1.12348;
cout << "qview after: " << gsl_vector_get(&qview_test.vector,0) << endl;
return 0;
}
Спасибо за любую помощь,
H.Nam