Sha256: 8dd237ab06ca4996b2e0a63c46c70ae64a63b046fe4478093786e58924ec41c4

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

<%
set singleton: true
%>
/*
  @overload <%=name%>(trans_a, alpha, a, x, beta, y)
  @param  [Integer]             trans_a = NO_TRANS | TRANS
  @param  [Float]               alpha
  @param  [Numo::GSL::SpMatrix] a (input sparse matrix)
  @param  [Numo::DFloat]        x (input vector)
  @param  [Float]               beta
  @param  [Numo::DFloat]        y (input|output vector)
  @return [Numo::DFloat]        result (or y)

  <%= description %>
*/
static VALUE
<%=c_func(6)%>(VALUE mod, VALUE vTransA, VALUE valpha, VALUE va, VALUE vx, VALUE vbeta, VALUE vy)
{
    // y = alpha A x + beta y
    CBLAS_TRANSPOSE_t TransA;
    double alpha;
    gsl_spmatrix *A;
    gsl_vector *x;
    double beta;
    gsl_vector *y;

    TransA = NUM2INT(vTransA);
    alpha = NUM2DBL(valpha);
    beta = NUM2DBL(vbeta);
    TypedData_Get_Struct(va, <%=struct%>, &<%=data_type_var%>, A);

    vx = cast_1d_contiguous(vx, cDF);
    ALLOCA_GSL_VECTOR_FROM_NARRAY_R(vx, x);
    vy = cast_1d_contiguous(vy, cDF);
    if (!TEST_INPLACE(vy)) {
        vy = na_copy(vy);
    }
    ALLOCA_GSL_VECTOR_FROM_NARRAY_RW(vy, y);

    <%=func_name%>(TransA, alpha, A, x, beta, y);
    RB_GC_GUARD(vx);
    return vy;
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
numo-gsl-0.1.2 ext/numo/gsl/spmatrix/tmpl/spblas_dgemv.c
numo-gsl-0.1.1 ext/numo/gsl/spmatrix/tmpl/spblas_dgemv.c
numo-gsl-0.1.0 ext/numo/gsl/spmatrix/tmpl/spblas_dgemv.c