Sha256: b6fdcf042a027a9fbb3ef705265a14e83521587f0a0f7c6ebf2aa70edb9c9eef

Contents?: true

Size: 1.25 KB

Versions: 10

Compression:

Stored size: 1.25 KB

Contents

static void
<%=c_iter%>(na_loop_t *const lp)
{
    size_t  i;
    dtype  x, y, a;

    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 [Numo::NArray,Numeric] a0
  @param [Numo::NArray,Numeric] a1 , ...
  @return [Numo::<%=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

10 entries across 10 versions & 1 rubygems

Version Path
numo-narray-0.9.1.4 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.1.3 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.1.2 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.1.1 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.1.0 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.0.9 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.0.8 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.0.7 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.0.6 ext/numo/narray/gen/tmpl/poly.c
numo-narray-0.9.0.5 ext/numo/narray/gen/tmpl/poly.c