예제 #1
0
파일: narray.c 프로젝트: yui-knk/narray
/*
  Returns string containing the raw data bytes in NArray.
  @overload to_string()
  @return [String] String object containing binary raw data.
 */
static VALUE
nary_to_string(VALUE self)
{
    size_t len, esz;
    char *ptr;
    VALUE str;
    narray_t *na;

    GetNArray(self,na);
    if (na->type == NARRAY_VIEW_T) {
        self = na_copy(self);
    }
    esz = na_get_elmsz(self);
    len = na->size * esz;
    ptr = na_get_pointer_for_read(self);
    str = rb_usascii_str_new(ptr,len);
    RB_GC_GUARD(self);
    return str;
}
예제 #2
0
/*
  @overload <%=name%>(<%=args[1][1]%>,<%=args[3][1]%>)
  @param  [DFloat]   <%=args[1][1]%>
  @param  [DFloat]   <%=args[3][1]%>
  @return [<%=class_name%>]  self

  <%= description %>
*/
static VALUE
<%=c_func(2)%>(VALUE self, VALUE v1, VALUE v2)
{
    <%=struct%> *w;
    double *p1, *p2;

    TypedData_Get_Struct(self, <%=struct%>, &<%=data_type_var%>, w);

    v1 = cast_1d_contiguous(v1, cDF);
    p1 = (double*)na_get_pointer_for_read(v1);
    v2 = cast_1d_contiguous(v2, cDF);
    p2 = (double*)na_get_pointer_for_read(v2);

    <%=func_name%>(w, p1, RNARRAY_SIZE(v1), p2, RNARRAY_SIZE(v2));
    RB_GC_GUARD(v1);
    RB_GC_GUARD(v2);
    return self;
}