Skip to content

Commit

Permalink
travis changes
Browse files Browse the repository at this point in the history
travis changes

travis changes
  • Loading branch information
v0dro committed Mar 3, 2016
1 parent 2ea87ea commit 243c3dc
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 22 deletions.
14 changes: 3 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,18 @@ language:
ruby

rvm:
- 1.9
- 1.9.3
- 2.0
- 2.1
- 2.2
- 2.3.0
- ruby-head
- rbx-2

env:
matrix:
- "NARRAY=1"
- "NMATRIX=1"
- ""

matrix:
allow_failures:
- rvm: ruby-head
- rvm: rbx-2

before_install:
- sudo apt-get update -qq
- sudo apt-get install -y libgsl0-dev
- bundle install
- bundle exec rake compile
- bundle exec rake test
30 changes: 19 additions & 11 deletions ext/gsl_native/eigen.c
Original file line number Diff line number Diff line change
Expand Up @@ -332,18 +332,17 @@ static VALUE rb_gsl_eigen_symmv_nmatrix(int argc, VALUE *argv, VALUE obj)
gsl_vector_view vv;
unsigned int shape1[1], shape2[2];
int flagw = 0;

if (!NM_IsNMatrix(argv[0]))
rb_raise(rb_eTypeError, "wrong argument type %s (NMatrix expected)",
rb_class2name(CLASS_OF(argv[0])));
nm = NM_STORAGE_DENSE(argv[0]);
if (nm->shape[0] != nm->shape[1])
rb_raise(rb_eRuntimeError, "square matrix required");
A = gsl_matrix_alloc(nm->shape[0], nm->shape[1]);
memcpy(A->data, (double*) nm->elements, sizeof(double)*A->size1*A->size2);

switch (argc) {
case 2:
if (!NM_IsNMatrix(argv[0]))
rb_raise(rb_eTypeError, "wrong argument type %s (NMatrix expected)",
rb_class2name(CLASS_OF(argv[0])));
nm = NM_STORAGE_DENSE(argv[0]);
if (nm->dim < 2) rb_raise(rb_eRuntimeError, "dim >= 2 required");
if (nm->shape[0] != nm->shape[1])
rb_raise(rb_eRuntimeError, "square matrix required");
A = gsl_matrix_alloc(nm->shape[1], nm->shape[0]);
memcpy(A->data, (double*) nm->elements, sizeof(double)*A->size1*A->size2);
if (CLASS_OF(argv[1]) != cgsl_eigen_symmv_workspace)
rb_raise(rb_eTypeError,
"argv[1]: wrong argument type %s (Eigen::Symm::Workspace expected",
Expand All @@ -352,6 +351,15 @@ static VALUE rb_gsl_eigen_symmv_nmatrix(int argc, VALUE *argv, VALUE obj)
flagw = 0;
break;
case 1:
if (!NM_IsNMatrix(argv[0]))
rb_raise(rb_eTypeError, "wrong argument type %s (NArray expected)",
rb_class2name(CLASS_OF(argv[0])));
nm = NM_STORAGE_DENSE(argv[0]);
if (nm->dim < 2) rb_raise(rb_eRuntimeError, "rank >= 2 required");
if (nm->shape[0] != nm->shape[1])
rb_raise(rb_eRuntimeError, "square matrix required");
A = gsl_matrix_alloc(nm->shape[1], nm->shape[0]);
memcpy(A->data, (double*) nm->elements, sizeof(double)*A->size1*A->size2);
w = gsl_eigen_symmv_alloc(A->size1);
flagw = 1;
break;
Expand All @@ -361,7 +369,7 @@ static VALUE rb_gsl_eigen_symmv_nmatrix(int argc, VALUE *argv, VALUE obj)
}
shape1[0] = A->size1;
shape2[0] = A->size1;
shape2[1] = A->size2;
shape2[1] = A->size1;
eval = rb_nvector_dense_create(FLOAT64, nm->elements, shape1[0]);
evec = rb_nmatrix_dense_create(FLOAT64, shape2, 2, nm->elements, shape2[0]*shape2[1]);
vv = gsl_vector_view_array((double*)NM_DENSE_ELEMENTS(eval), A->size1);
Expand Down
2 changes: 2 additions & 0 deletions ext/gsl_native/extconf.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ def create_conf_h(file) #:nodoc:
end
end

hfile.printf "#define HAVE_RB_ARRAY_CONST_PTR 1"

hfile.puts
hfile.puts "#endif"
end
Expand Down

0 comments on commit 243c3dc

Please sign in to comment.