Sha256: c7f94da585a1c8902ece9425da455f8c2bb5693eafae3e206fa34e081812a8f1
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
static void <%=c_iter%>(na_loop_t *const lp) { size_t i; dtype x, y, a; SHOW_SYNCHRONIZE_FIXME_WARNING_ONCE("<%=name%>", "<%=type_name%>"); x = *(dtype*)(lp->args[0].ptr + lp->args[0].iter[0].pos); i = lp->narg - 2; y = *(dtype*)(lp->args[i].ptr + lp->args[i].iter[0].pos); for (; --i;) { y = m_mul(x,y); a = *(dtype*)(lp->args[i].ptr + lp->args[i].iter[0].pos); y = m_add(y,a); } i = lp->narg - 1; *(dtype*)(lp->args[i].ptr + lp->args[i].iter[0].pos) = y; } /* Polynomial.: a0 + a1*x + a2*x**2 + a3*x**3 + ... + an*x**n @overload <%=name%> a0, a1, ... @param [Cumo::NArray,Numeric] a0 @param [Cumo::NArray,Numeric] a1 , ... @return [Cumo::<%=class_name%>] */ static VALUE <%=c_func(-2)%>(VALUE self, VALUE args) { int argc, i; VALUE *argv; volatile VALUE v, a; ndfunc_arg_out_t aout[1] = {{cT,0}}; ndfunc_t ndf = { <%=c_iter%>, NO_LOOP, 0, 1, 0, aout }; argc = RARRAY_LEN(args); ndf.nin = argc+1; ndf.ain = ALLOCA_N(ndfunc_arg_in_t,argc+1); for (i=0; i<argc+1; i++) { ndf.ain[i].type = cT; } argv = ALLOCA_N(VALUE,argc+1); argv[0] = self; for (i=0; i<argc; i++) { argv[i+1] = RARRAY_PTR(args)[i]; } a = rb_ary_new4(argc+1, argv); v = na_ndloop2(&ndf, a); return <%=type_name%>_extract(v); }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cumo-0.1.0 | ext/cumo/narray/gen/tmpl/poly.c |