Method: NuLin::Native.dgemm

Defined in:
ext/nulin_native.c

.dgemm(transa, transb, n, m, k, alpha, a, lda, b, ldb, beta, c, ldc) ⇒ Object



517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
# File 'ext/nulin_native.c', line 517

static VALUE nulin_dgemm(VALUE self,VALUE transa,VALUE transb,VALUE n,VALUE m,VALUE k,VALUE alpha,VALUE a,VALUE lda,VALUE b,VALUE ldb,VALUE beta,VALUE c,VALUE ldc)
{
  char TRANSA = StringValueCStr(transa)[0];
  char TRANSB = StringValueCStr(transb)[0];
  integer N = NUM2INT(n);
  integer M = NUM2INT(m);
  integer K = NUM2INT(k);
  doublereal ALPHA = NUM2DBL(alpha);
  doublereal* A = NA_PTR_TYPE((nulin_check_narray(a),a), doublereal*);
  integer LDA = NUM2INT(lda);
  doublereal* B = NA_PTR_TYPE((nulin_check_narray(b),b), doublereal*);
  integer LDB = NUM2INT(ldb);
  doublereal BETA = NUM2DBL(beta);
  doublereal* C = NA_PTR_TYPE((nulin_check_narray(c),c), doublereal*);
  integer LDC = NUM2INT(ldc);
  dgemm_(&TRANSA,&TRANSB,&N,&M,&K,&ALPHA,A,&LDA,B,&LDB,&BETA,C,&LDC);
  return Qnil;
}