Sha256: b6f9412bd8407960918e8f8c077a9ed5f4996ac4504814de8aa88f0e36960bb2
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
/* Convert a data value of obj (with a single element) to dtype. */ /* static dtype <%=c_func(:nodef)%>(VALUE obj) { narray_t *na; dtype x; char *ptr; size_t pos; VALUE r, klass; SHOW_SYNCHRONIZE_WARNING_ONCE("<%=name%>", "<%=type_name%>"); cumo_cuda_runtime_check_status(cudaDeviceSynchronize()); if (IsNArray(obj)) { GetNArray(obj,na); if (na->size != 1) { rb_raise(nary_eShapeError,"narray size should be 1"); } klass = CLASS_OF(obj); ptr = na_get_pointer_for_read(obj); pos = na_get_offset(obj); <% find_tmpl("store").definitions.select{|x| x.class==Store}.each do |x| %> if (<%=x.condition("klass")%>) { <%=x.extract_data("ptr","pos","x")%>; return x; } <% end %> // coerce r = rb_funcall(obj, rb_intern("coerce_cast"), 1, cT); if (CLASS_OF(r)==cT) { return <%=c_func%>(r); } <% if is_object %> return obj; <% else %> rb_raise(nary_eCastError, "unknown conversion from %s to %s", rb_class2name(CLASS_OF(obj)), rb_class2name(cT)); <% end %> } if (TYPE(obj)==T_ARRAY) { if (RARRAY_LEN(obj) != 1) { rb_raise(nary_eShapeError,"array size should be 1"); } return m_num_to_data(RARRAY_AREF(obj,0)); } return m_num_to_data(obj); } */
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cumo-0.1.0 | ext/cumo/narray/gen/tmpl/extract_data.c |