include/rb_gsl_common.h in gsl-1.14.7 vs include/rb_gsl_common.h in gsl-1.15.3

- old
+ new

@@ -23,10 +23,11 @@ #include <gsl/gsl_matrix.h> #include <gsl/gsl_permutation.h> #include <gsl/gsl_ieee_utils.h> #ifdef HAVE_NARRAY_H #include "narray.h" +#include "rb_gsl_with_narray.h" #endif EXTERN ID rb_gsl_id_beg, rb_gsl_id_end, rb_gsl_id_excl, rb_gsl_id_to_a; #ifndef CHECK_FIXNUM @@ -133,16 +134,14 @@ #endif #ifdef HAVE_NARRAY_H #define Data_Get_Vector(obj,sval) do {\ if (NA_IsNArray(obj)) {\ - (sval)->data = NA_PTR_TYPE(obj,double*);\ - (sval)->size = NA_TOTAL(obj);\ - (sval)->stride = 1;\ - } else {\ - CHECK_VECTOR(obj);\ - Data_Get_Struct(obj,gsl_vector,sval);\ + /* Convert obj to GSL::Vector::View */\ + obj = rb_gsl_na_to_gsl_vector_view_method(obj);\ }\ + CHECK_VECTOR(obj);\ + Data_Get_Struct(obj,gsl_vector,sval);\ } while (0) #else #define Data_Get_Vector(obj,sval) do {\ CHECK_VECTOR(obj);\ Data_Get_Struct(obj,gsl_vector,sval);\