@@ -19,6 +19,8 @@ VALUE Util = Qnil;
1919
2020// prototypes
2121void Init_arrayfire ();
22+
23+ af_dtype arf_dtype_from_rbsymbol (VALUE sym );
2224static VALUE arf_init (int argc , VALUE * argv , VALUE self );
2325static VALUE arf_alloc (VALUE klass );
2426static void arf_free (afstruct * af );
@@ -598,6 +600,7 @@ VALUE arf_init(int argc, VALUE* argv, VALUE self)
598600 afstruct * afarray ;
599601 Data_Get_Struct (self , afstruct , afarray );
600602 if (argc > 0 ){
603+ af_dtype dtype = (argc == 4 ) ? arf_dtype_from_rbsymbol (argv [3 ]) : f32 ;
601604
602605 dim_t ndims = (dim_t )FIX2LONG (argv [0 ]);
603606 dim_t * dimensions = (dim_t * )malloc (ndims * sizeof (dim_t ));
@@ -611,15 +614,13 @@ VALUE arf_init(int argc, VALUE* argv, VALUE self)
611614 host_array [index ] = (float )NUM2DBL (RARRAY_AREF (argv [2 ], index ));
612615 }
613616
614- af_create_array (& afarray -> carray , host_array , ndims , dimensions , f32 );
615-
617+ af_create_array (& afarray -> carray , host_array , ndims , dimensions , dtype );
616618 af_print_array (afarray -> carray );
617619 }
618620
619621 return self ;
620622}
621623
622-
623624static VALUE arf_alloc (VALUE klass )
624625{
625626 /* allocate */
@@ -741,11 +742,12 @@ DEF_UNARY_RUBY_ACCESSOR(ceil, ceil)
741742#include "cmodules/backend.c"
742743#include "cmodules/blas.c"
743744#include "cmodules/cuda.c"
745+ #include "cmodules/data.c"
746+ #include "cmodules/defines.c"
744747#include "cmodules/device.c"
745748#include "cmodules/index.c"
746- #include "cmodules/opencl.c"
747- #include "cmodules/data.c"
748749#include "cmodules/lapack.c"
750+ #include "cmodules/opencl.c"
749751#include "cmodules/random.c"
750752#include "cmodules/statistics.c"
751753#include "cmodules/util.c"
0 commit comments