本文整理汇总了C++中Mmla函数的典型用法代码示例。如果您正苦于以下问题:C++ Mmla函数的具体用法?C++ Mmla怎么用?C++ Mmla使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Mmla函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: Mzvscal
void ATL_zrefhpmvL
(
const int N,
const double * ALPHA,
const double * A,
const int LDA,
const double * X,
const int INCX,
const double * BETA,
double * Y,
const int INCY
)
{
/*
* Purpose
* =======
*
* ATL_zrefhpmvL( ... )
*
* <=>
*
* ATL_zrefhpmv( AtlasLower, ... )
*
* See ATL_zrefhpmv for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r, t1_i, t1_r;
int i, iaij, ix, iy, j, jaj = 0, jx, jy,
lda2 = ( LDA << 1 ), incx2 = 2 * INCX,
incy2 = 2 * INCY;
/* ..
* .. Executable Statements ..
*
*/
Mzvscal( N, BETA, Y, INCY );
for( j = 0, jx = 0, jy = 0; j < N; j++, jx += incx2, jy += incy2 )
{
Mmul( ALPHA[0], ALPHA[1], X[jx], X[jx+1], t0_r, t0_i );
Mset( ATL_dZERO, ATL_dZERO, t1_r, t1_i );
Mset( Y[jy] + A[jaj]*t0_r, Y[jy+1] + A[jaj]*t0_i, Y[jy], Y[jy+1] );
for( i = j+1, iaij = jaj+2, ix = jx+incx2, iy = jy+incy2;
i < N; i++, iaij += 2, ix += incx2, iy += incy2 )
{
Mmla( A[iaij], A[iaij+1], t0_r, t0_i, Y[iy], Y[iy+1] );
Mmla( A[iaij], -A[iaij+1], X[ix], X[ix+1], t1_r, t1_i );
}
Mmla( ALPHA[0], ALPHA[1], t1_r, t1_i, Y[jy], Y[jy+1] );
jaj += lda2;
lda2 -= 2;
}
/*
* End of ATL_zrefhpmvL
*/
}
开发者ID:numpy,项目名称:numpy-vendor,代码行数:59,代码来源:ATL_zrefhpmvL.c
示例2: Mmul
void ATL_zrefhpr2U
(
const int N,
const double * ALPHA,
const double * X,
const int INCX,
const double * Y,
const int INCY,
double * A,
const int LDA
)
{
/*
* Purpose
* =======
*
* ATL_zrefhpr2U( ... )
*
* <=>
*
* ATL_zrefhpr2( AtlasUpper, ... )
*
* See ATL_zrefhpr2 for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r, t1_i, t1_r;
int i, iaij, incx2 = 2 * INCX, incy2 = 2 * INCY,
ix, iy, j, jaj, jx, jy, lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jx = 0, jy = 0; j < N; j++, jx += incx2, jy += incy2 )
{
Mmul( ALPHA[0], ALPHA[1], Y[jy], -Y[jy+1], t0_r, t0_i );
Mmul( ALPHA[0], -ALPHA[1], X[jx], -X[jx+1], t1_r, t1_i );
for( i = 0, iaij = jaj, ix = 0, iy = 0;
i < j; i++, iaij += 2, ix += incx2, iy += incy2 )
{
Mmla( X[ix], X[ix+1], t0_r, t0_i, A[iaij], A[iaij+1] );
Mmla( Y[iy], Y[iy+1], t1_r, t1_i, A[iaij], A[iaij+1] );
}
Mset( A[iaij] + X[jx] * t0_r - X[jx+1] * t0_i +
Y[jy] * t1_r - Y[jy+1] * t1_i, ATL_dZERO,
A[iaij], A[iaij+1] );
jaj += lda2;
lda2 += 2;
}
/*
* End of ATL_zrefhpr2U
*/
}
开发者ID:numpy,项目名称:numpy-vendor,代码行数:56,代码来源:ATL_zrefhpr2U.c
示例3: Mmul
void ATL_crefhpr2L
(
const int N,
const float * ALPHA,
const float * X,
const int INCX,
const float * Y,
const int INCY,
float * A,
const int LDA
)
{
/*
* Purpose
* =======
*
* ATL_crefhpr2L( ... )
*
* <=>
*
* ATL_crefhpr2( AtlasLower, ... )
*
* See ATL_crefhpr2 for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register float t0_i, t0_r, t1_i, t1_r;
int i, iaij, incx2 = 2 * INCX, incy2 = 2 * INCY,
ix, iy, j, jaj, jx, jy, lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jx = 0, jy = 0; j < N; j++, jx += incx2, jy += incy2 )
{
Mmul( ALPHA[0], ALPHA[1], Y[jy], -Y[jy+1], t0_r, t0_i );
Mmul( ALPHA[0], -ALPHA[1], X[jx], -X[jx+1], t1_r, t1_i );
Mset( A[jaj] + X[jx] * t0_r - X[jx+1] * t0_i +
Y[jy] * t1_r - Y[jy+1] * t1_i, ATL_sZERO,
A[jaj], A[jaj+1] );
for( i = j+1, iaij = jaj+2, ix = jx + incx2, iy = jy + incy2;
i < N; i++, iaij += 2, ix += incx2, iy += incy2 )
{
Mmla( X[ix], X[ix+1], t0_r, t0_i, A[iaij], A[iaij+1] );
Mmla( Y[iy], Y[iy+1], t1_r, t1_i, A[iaij], A[iaij+1] );
}
jaj += lda2; lda2 -= 2;
}
/*
* End of ATL_crefhpr2L
*/
}
开发者ID:GorgonCryoEM,项目名称:Gorgon-CVS,代码行数:55,代码来源:ATL_crefhpr2L.c
示例4: Mset
void ATL_zrefgbmvT
(
const int M,
const int N,
const int KL,
const int KU,
const double * ALPHA,
const double * A,
const int LDA,
const double * X,
const int INCX,
const double * BETA,
double * Y,
const int INCY
)
{
/*
* Purpose
* =======
*
* ATL_zrefgbmvT( ... ) <=> ATL_zrefgbmv( AtlasTrans, ... )
*
* See ATL_zrefgbmv for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, i0, i1, iaij, ix, j, jaj, jy, k, kx=0, ky=0;
int incx2 = 2 * INCX, incy2 = 2 * INCY,
lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jy = ky; j < M; j++, jaj += lda2, jy += incy2 )
{
Mset( ATL_dZERO, ATL_dZERO, t0_r, t0_i );
k = KU - j; i0 = ( j - KU > 0 ? j - KU : 0 );
i1 = ( N - 1 > j + KL ? j + KL : N - 1 );
for( i = i0, iaij = ((k+i0) << 1)+jaj, ix = kx;
i <= i1; i++, iaij += 2, ix += incx2 )
{ Mmla( A[iaij], A[iaij+1], X[ix], X[ix+1], t0_r, t0_i ); }
Mzelscal( BETA[0], BETA[1], Y[jy], Y[jy+1] );
Mmla( ALPHA[0], ALPHA[1], t0_r, t0_i, Y[jy], Y[jy+1] );
if( j >= KU ) kx += incx2;
}
/*
* End of ATL_zrefgbmvT
*/
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:54,代码来源:ATL_zrefgbmvT.c
示例5: Mset
void ATL_zrefsyrkLT
(
const int N,
const int K,
const double * ALPHA,
const double * A,
const int LDA,
const double * BETA,
double * C,
const int LDC
)
{
/*
* Purpose
* =======
*
* ATL_zrefsyrkLT( ... )
*
* <=>
*
* ATL_zrefsyrk( AtlasLower, AtlasTrans, ... )
*
* See ATL_zrefsyrk for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, iali, ialj, icij, j, jai, jaj, jcj, l,
lda2 = ( LDA << 1 ), ldc2 = ( LDC << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jcj = 0; j < N; j++, jaj += lda2, jcj += ldc2 )
{
for( i = j, jai = j*lda2, icij = (j << 1)+jcj;
i < N; i++, jai += lda2, icij += 2 )
{
Mset( ATL_dZERO, ATL_dZERO, t0_r, t0_i );
for( l = 0, iali = jai, ialj = jaj; l < K; l++, iali += 2, ialj += 2 )
{ Mmla( A[iali], A[iali+1], A[ialj], A[ialj+1], t0_r, t0_i ); }
Mzelscal( BETA[0], BETA[1], C[icij], C[icij+1] );
Mmla( ALPHA[0], ALPHA[1], t0_r, t0_i, C[icij], C[icij+1] );
}
}
/*
* End of ATL_zrefsyrkLT
*/
}
开发者ID:certik,项目名称:vendor,代码行数:52,代码来源:ATL_zrefsyrkLT.c
示例6: Mset
void ATL_zrefgpmvUT
(
const int M,
const int N,
const double * ALPHA,
const double * A,
const int LDA,
const double * X,
const int INCX,
const double * BETA,
double * Y,
const int INCY
)
{
/*
* Purpose
* =======
*
* ATL_zrefgpmvLT( ... )
*
* <=>
*
* ATL_zrefgpmv( AtlasUpper, AtlasTrans, ... )
*
* See ATL_zrefgpmv for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, iaij, incx2 = 2 * INCX, incy2 = 2 * INCY,
ix, j, jaj, jy, lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jy = 0; j < M; j++, jy += incy2 )
{
Mset( ATL_dZERO, ATL_dZERO, t0_r, t0_i );
for( i = 0, iaij = jaj, ix = 0; i < N; i++, iaij += 2, ix += incx2 )
{ Mmla( A[iaij], A[iaij+1], X[ix], X[ix+1], t0_r, t0_i ); }
Mzelscal( BETA[0], BETA[1], Y[jy], Y[jy+1] );
Mmla( ALPHA[0], ALPHA[1], t0_r, t0_i, Y[jy], Y[jy+1] );
jaj += lda2; lda2 += 2;
}
/*
* End of ATL_zrefgpmvUT
*/
}
开发者ID:certik,项目名称:vendor,代码行数:51,代码来源:ATL_zrefgpmvUT.c
示例7: Mset
void ATL_crefgpmvLH
(
const int M,
const int N,
const float * ALPHA,
const float * A,
const int LDA,
const float * X,
const int INCX,
const float * BETA,
float * Y,
const int INCY
)
{
/*
* Purpose
* =======
*
* ATL_crefgpmvLH( ... )
*
* <=>
*
* ATL_crefgpmv( AtlasLower, AtlasConjTrans, ... )
*
* See ATL_crefgpmv for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register float t0_i, t0_r;
int i, iaij, incx2 = 2 * INCX, incy2 = 2 * INCY,
ix, j, jaj, jy, lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jy = 0; j < M; j++, jy += incy2 )
{
Mset( ATL_sZERO, ATL_sZERO, t0_r, t0_i );
for( i = 0, iaij = jaj, ix = 0; i < N; i++, iaij += 2, ix += incx2 )
{ Mmla( A[iaij], -A[iaij+1], X[ix], X[ix+1], t0_r, t0_i ); }
Mcelscal( BETA[0], BETA[1], Y[jy], Y[jy+1] );
Mmla( ALPHA[0], ALPHA[1], t0_r, t0_i, Y[jy], Y[jy+1] );
lda2 -= 2; jaj += lda2;
}
/*
* End of ATL_crefgpmvLH
*/
}
开发者ID:certik,项目名称:vendor,代码行数:51,代码来源:ATL_crefgpmvLH.c
示例8: Mset
void ATL_creftbmvUHN
(
const int N,
const int K,
const float * A,
const int LDA,
float * X,
const int INCX
)
{
/*
* Purpose
* =======
*
* ATL_creftbmvUHN( ... )
*
* <=>
*
* ATL_creftbmv( AtlasUpper, AtlasConjTrans, AtlasNonUnit, ... )
*
* See ATL_creftbmv for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register float t0_i, t0_r;
int i, i0, iaij, incx2 = 2 * INCX, ix, j, jaj,
jx, kx = 0, l, lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = N-1, jaj = (N-1)*lda2, jx = kx+(N-1)*incx2;
j >= 0; j--, jaj -= lda2, jx -= incx2 )
{
Mset( ATL_sZERO, ATL_sZERO, t0_r, t0_i );
l = K - j; i0 = ( j - K > 0 ? j - K : 0 );
for( i = i0, iaij = ((l+i0) << 1)+jaj, ix = kx+i0*incx2;
i < j; i++, iaij += 2, ix += incx2 )
{ Mmla( A[iaij], -A[iaij+1], X[ix] , X[ix+1], t0_r, t0_i ); }
Mmla( A[iaij], -A[iaij+1], X[jx] , X[jx+1], t0_r, t0_i );
Mset( t0_r, t0_i, X[jx], X[jx+1] );
}
/*
* End of ATL_creftbmvUHN
*/
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:49,代码来源:ATL_creftbmvUHN.c
示例9: Mmul
void ATL_zrefgpruU
(
const int M,
const int N,
const double * ALPHA,
const double * X,
const int INCX,
const double * Y,
const int INCY,
double * A,
const int LDA
)
{
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, iaij, incx2 = 2 * INCX, incy2 = 2 * INCY,
ix, j, jaj, jy, lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jy = 0; j < N; j++, jy += incy2 )
{
Mmul( ALPHA[0], ALPHA[1], Y[jy], Y[jy+1], t0_r, t0_i );
for( i = 0, iaij = jaj, ix = 0; i < M; i++, iaij += 2, ix += incx2 )
{ Mmla( X[ix], X[ix+1], t0_r, t0_i, A[iaij], A[iaij+1] ); }
jaj += lda2; lda2 += 2;
}
/*
* End of ATL_zrefgpruU
*/
}
开发者ID:GorgonCryoEM,项目名称:Gorgon-CVS,代码行数:34,代码来源:ATL_zrefgpru.c
示例10: Mselscal
void ATL_crefherkLC
(
const int N,
const int K,
const float ALPHA,
const float * A,
const int LDA,
const float BETA,
float * C,
const int LDC
)
{
/*
* Purpose
* =======
*
* ATL_crefherkLC( ... )
*
* <=>
*
* ATL_crefherk( AtlasLower, AtlasConjTrans, ... )
*
* See ATL_crefherk for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register float t0_i, t0_r;
int i, iali, ialj, icij, j, jai, jaj, jcj, l,
lda2 = ( LDA << 1 ), ldc2 = ( LDC << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jcj = 0; j < N; j++, jaj += lda2, jcj += ldc2 )
{
jai = j * lda2; icij = ( j << 1 ) + jcj; t0_r = ATL_sZERO;
for( l = 0, iali = jai, ialj = jaj; l < K; l++, iali += 2, ialj += 2 )
{ t0_r += A[iali] * A[ialj] + A[iali+1] * A[ialj+1]; }
Mselscal( BETA, C[icij] );
Mset( C[icij] + ALPHA * t0_r, ATL_sZERO, C[icij], C[icij+1] );
icij += 2; jai += lda2;
for( i = j+1; i < N; i++, jai += lda2, icij += 2 )
{
Mset( ATL_sZERO, ATL_sZERO, t0_r, t0_i );
for( l = 0, iali = jai, ialj = jaj; l < K; l++, iali += 2, ialj += 2 )
{ Mmla( A[iali], -A[iali+1], A[ialj], A[ialj+1], t0_r, t0_i ); }
Mselscal( BETA, C[icij ] ); Mselscal( BETA, C[icij+1] );
Mset( C[icij] + ALPHA * t0_r, C[icij+1] + ALPHA * t0_i,
C[icij], C[icij+1] );
}
}
/*
* End of ATL_crefherkLC
*/
}
开发者ID:certik,项目名称:vendor,代码行数:60,代码来源:ATL_crefherkLC.c
示例11: Mset
void ATL_zreftrmvUTN
(
const int N,
const double * A,
const int LDA,
double * X,
const int INCX
)
{
/*
* Purpose
* =======
*
* ATL_zreftrmvUTN( ... )
*
* <=>
*
* ATL_zreftrmv( AtlasUpper, AtlasTrans, AtlasNonUnit, ... )
*
* See ATL_zreftrmv for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, iaij, incx2 = 2 * INCX, ix, j, jaj, jx,
lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = N-1, jaj = (N-1)*lda2, jx = (N-1)*incx2;
j >= 0; j--, jaj -= lda2, jx -= incx2 )
{
Mset( ATL_dZERO, ATL_dZERO, t0_r, t0_i );
for( i = 0, iaij = jaj, ix = 0; i < j; i++, iaij += 2, ix += incx2 )
{ Mmla( A[iaij], A[iaij+1], X[ix] , X[ix+1], t0_r, t0_i ); }
Mmla( A[iaij], A[iaij+1], X[jx] , X[jx+1], t0_r, t0_i );
Mset( t0_r, t0_i, X[jx], X[jx+1] );
}
/*
* End of ATL_zreftrmvUTN
*/
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:46,代码来源:ATL_zreftrmvUTN.c
示例12: Mmul
void ATL_creftrmmRUCU
(
const int M,
const int N,
const float * ALPHA,
const float * A,
const int LDA,
float * B,
const int LDB
)
{
/*
* Purpose
* =======
*
* ATL_creftrmmRUCU( ... )
*
* <=>
*
* ATL_creftrmm
* ( AtlasRight, AtlasUpper, AtlasConjTrans, AtlasUnit, ... )
*
* See ATL_creftrmm for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
float t0_i, t0_r;
int i, iajk, ibij, ibik, j, jak, jbj, jbk, k,
lda2 = ( LDA << 1 ), ldb2 = ( LDB << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( k = 0, jak = 0, jbk = 0; k < N; k++, jak += lda2, jbk += ldb2 )
{
for( j = 0, iajk = jak, jbj = 0; j < k; j++, iajk += 2, jbj += ldb2 )
{
Mmul( ALPHA[0], ALPHA[1], A[iajk], -A[iajk+1], t0_r, t0_i );
for( i = 0, ibij = jbj, ibik = jbk;
i < M; i++, ibij += 2, ibik += 2 )
{
Mmla( t0_r, t0_i, B[ibik], B[ibik+1], B[ibij], B[ibij+1] );
}
}
Mset( ALPHA[0], ALPHA[1], t0_r, t0_i );
for( i = 0, ibik = jbk; i < M; i++, ibik += 2 )
{
Msscl( t0_r, t0_i, B[ibik], B[ibik+1] );
}
}
/*
* End of ATL_creftrmmRUCU
*/
}
开发者ID:Leobin7,项目名称:Kaldi,代码行数:57,代码来源:ATL_creftrmmRUCU.c
示例13: Mdelscal
void ATL_zrefherkLN
(
const int N,
const int K,
const double ALPHA,
const double * A,
const int LDA,
const double BETA,
double * C,
const int LDC
)
{
/*
* Purpose
* =======
*
* ATL_zrefherkLN( ... )
*
* <=>
*
* ATL_zrefherk( AtlasLower, AtlasNoTrans, ... )
*
* See ATL_zrefherk for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, iail, iaj, iajl, icij, j, jal, jcj, l,
lda2 = ( LDA << 1 ), ldc2 = ( LDC << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, iaj = 0, jcj = 0; j < N; j++, iaj += 2, jcj += ldc2 )
{
icij = ( j << 1 ) + jcj;
Mdelscal( BETA, C[icij] ); C[icij+1] = ATL_dZERO;
Mdvscal( ((N-j-1) << 1), BETA, C+icij+2, 1 );
for( l = 0, iajl = iaj, jal = 0; l < K; l++, iajl += lda2, jal += lda2 )
{
Mset( ALPHA * A[iajl], -ALPHA * A[iajl+1], t0_r, t0_i );
iail = ( j << 1 ) + jal; icij = ( j << 1 ) + jcj;
Mset( C[icij] + t0_r * A[iail] - t0_i * A[iail+1],
ATL_dZERO, C[icij], C[icij+1] );
iail += 2; icij += 2;
for( i = j+1; i < N; i++, iail += 2, icij += 2 )
{ Mmla( t0_r, t0_i, A[iail], A[iail+1], C[icij], C[icij+1] ); }
}
}
/*
* End of ATL_zrefherkLN
*/
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:57,代码来源:ATL_zrefherkLN.c
示例14: Mmul
void ATL_zreftrmmRLTN
(
const int M,
const int N,
const double * ALPHA,
const double * A,
const int LDA,
double * B,
const int LDB
)
{
/*
* Purpose
* =======
*
* ATL_zreftrmmRLTN( ... )
*
* <=>
*
* ATL_zreftrmm
* ( AtlasRight, AtlasLower, AtlasTrans, AtlasNonUnit, ... )
*
* See ATL_zreftrmm for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
double t0_i, t0_r;
int i, iajk, ibij, ibik, j, jak, jbj, jbk, k,
lda2 = ( LDA << 1 ), ldb2 = ( LDB << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( k = N-1, jak = (N-1)*lda2, jbk = (N-1)*ldb2;
k >= 0; k--, jak -= lda2, jbk -= ldb2 )
{
for( j = k+1, iajk = ( (k+1) << 1 )+jak, jbj = (k+1)*ldb2;
j < N; j++, iajk += 2, jbj += ldb2 )
{
Mmul( ALPHA[0], ALPHA[1], A[iajk], A[iajk+1], t0_r, t0_i );
for( i = 0, ibij = jbj, ibik = jbk;
i < M; i++, ibij += 2, ibik += 2 )
{ Mmla( t0_r, t0_i, B[ibik], B[ibik+1], B[ibij], B[ibij+1] ); }
}
Mset( ALPHA[0], ALPHA[1], t0_r, t0_i );
i = ( k << 1 ) + jak; Mdscl( A[i], A[i+1], t0_r, t0_i );
for( i = 0, ibik = jbk; i < M; i++, ibik += 2 )
{ Mdscl( t0_r, t0_i, B[ibik], B[ibik+1] ); }
}
/*
* End of ATL_zreftrmmRLTN
*/
}
开发者ID:certik,项目名称:vendor,代码行数:56,代码来源:ATL_zreftrmmRLTN.c
示例15: Msvscal
void ATL_crefherkUN
(
const int N,
const int K,
const float ALPHA,
const float * A,
const int LDA,
const float BETA,
float * C,
const int LDC
)
{
/*
* Purpose
* =======
*
* ATL_crefherkUN( ... )
*
* <=>
*
* ATL_crefherk( AtlasUpper, AtlasNoTrans, ... )
*
* See ATL_crefherk for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register float t0_i, t0_r;
int i, iail, iaj, iajl, icij, j, jal, jcj, l,
lda2 = ( LDA << 1 ), ldc2 = ( LDC << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, iaj = 0, jcj = 0; j < N; j++, iaj += 2, jcj += ldc2 )
{
Msvscal( (j << 1), BETA, C+jcj, 1 );
icij = ( j << 1 ) + jcj;
Mselscal( BETA, C[icij] ); C[icij+1] = ATL_sZERO;
for( l = 0, iajl = iaj, jal = 0; l < K; l++, iajl += lda2, jal += lda2 )
{
Mset( ALPHA * A[iajl], -ALPHA * A[iajl+1], t0_r, t0_i );
for( i = 0, iail = jal, icij = jcj; i < j; i++, iail += 2, icij += 2 )
{ Mmla( t0_r, t0_i, A[iail], A[iail+1], C[icij], C[icij+1] ); }
Mset( C[icij] + t0_r * A[iail] - t0_i * A[iail+1], ATL_sZERO,
C[icij], C[icij+1] );
}
}
/*
* End of ATL_crefherkUN
*/
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:55,代码来源:ATL_crefherkUN.c
示例16: Mset
void ATL_crefgemmCT
(
const int M,
const int N,
const int K,
const float * ALPHA,
const float * A,
const int LDA,
const float * B,
const int LDB,
const float * BETA,
float * C,
const int LDC
)
{
/*
* .. Local Variables ..
*/
register float t0_i, t0_r;
int i, iali, ibj, ibjl, icij, j, jai, jcj, l,
lda2 = ( LDA << 1 ), ldb2 = ( LDB << 1 ),
ldc2 = ( LDC << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, ibj = 0, jcj = 0; j < N; j++, ibj += 2, jcj += ldc2 )
{
for( i = 0, icij = jcj, jai = 0; i < M; i++, icij += 2, jai += lda2 )
{
Mset( ATL_sZERO, ATL_sZERO, t0_r, t0_i );
for( l = 0, iali = jai, ibjl = ibj;
l < K; l++, iali += 2, ibjl += ldb2 )
{ Mmla( A[iali], -A[iali+1], B[ibjl], B[ibjl+1], t0_r, t0_i ); }
Mcelscal( BETA[0], BETA[1], C[icij], C[icij+1] );
Mmla( ALPHA[0], ALPHA[1], t0_r, t0_i, C[icij], C[icij+1] );
}
}
/*
* End of ATL_crefgemmCT
*/
}
开发者ID:certik,项目名称:vendor,代码行数:42,代码来源:ATL_crefgemmCT.c
示例17: Mzvscal
void ATL_zrefgbmvN
(
const int M,
const int N,
const int KL,
const int KU,
const double * ALPHA,
const double * A,
const int LDA,
const double * X,
const int INCX,
const double * BETA,
double * Y,
const int INCY
)
{
/*
* Purpose
* =======
*
* ATL_zrefgbmvN( ... ) <=> ATL_zrefgbmv( AtlasNoTrans, ... )
*
* See ATL_zrefgbmv for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, i0, i1, iaij, iy, j, jaj, jx, k, kx=0, ky=0;
int incx2 = 2 * INCX, incy2 = 2 * INCY,
lda2 = ( LDA << 1 );
/* ..
* .. Executable Statements ..
*
*/
Mzvscal( M, BETA, Y, INCY );
for( j = 0, jaj = 0, jx = kx; j < N; j++, jaj += lda2, jx += incx2 )
{
Mmul( ALPHA[0], ALPHA[1], X[jx], X[jx+1], t0_r, t0_i );
k = KU - j; i0 = ( j - KU > 0 ? j - KU : 0 );
i1 = ( M - 1 > j + KL ? j + KL : M - 1 );
for( i = i0, iaij = ((k+i0) << 1)+jaj, iy = ky; i <= i1;
i++, iaij += 2, iy += incy2 )
{ Mmla( A[iaij], A[iaij+1], t0_r, t0_i, Y[iy], Y[iy+1] ); }
if( j >= KU ) ky += incy2;
}
/*
* End of ATL_zrefgbmvN
*/
}
开发者ID:certik,项目名称:vendor,代码行数:54,代码来源:ATL_zrefgbmvN.c
示例18: Mset
void ATL_creftrmmRLNN
(
const int M,
const int N,
const float * ALPHA,
const float * A,
const int LDA,
float * B,
const int LDB
)
{
/*
* Purpose
* =======
*
* ATL_creftrmmRLNN( ... )
*
* <=>
*
* ATL_creftrmm
* ( AtlasRight, AtlasLower, AtlasNoTrans, AtlasNonUnit, ... )
*
* See ATL_creftrmm for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
float t0_i, t0_r;
int i, iakj, ibij, ibik, j, jaj, jbj, jbk, k,
lda2 = ( LDA << 1 ), ldb2 = ( LDB << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jaj = 0, jbj = 0; j < N; j++, jaj += lda2, jbj += ldb2 )
{
Mset( ALPHA[0], ALPHA[1], t0_r, t0_i );
i = ( j << 1 ) + jaj; Msscl( A[i], A[i+1], t0_r, t0_i );
for( i = 0, ibij = jbj; i < M; i++, ibij += 2 )
{ Msscl( t0_r, t0_i, B[ibij], B[ibij+1] ); }
for( k = j+1, iakj = ((j+1)<<1)+jaj, jbk = (j+1)*ldb2;
k < N; k++, iakj += 2, jbk += ldb2 )
{
Mmul( ALPHA[0], ALPHA[1], A[iakj], A[iakj+1], t0_r, t0_i );
for( i = 0, ibij = jbj, ibik = jbk; i < M; i++, ibij += 2, ibik += 2 )
{ Mmla( t0_r, t0_i, B[ibik], B[ibik+1], B[ibij], B[ibij+1] ); }
}
}
/*
* End of ATL_creftrmmRLNN
*/
}
开发者ID:AIDman,项目名称:Kaldi,代码行数:54,代码来源:ATL_creftrmmRLNN.c
示例19: Mset
void ATL_zreftrmmRUNN
(
const int M,
const int N,
const double * ALPHA,
const double * A,
const int LDA,
double * B,
const int LDB
)
{
/*
* Purpose
* =======
*
* ATL_zreftrmmRUNN( ... )
*
* <=>
*
* ATL_zreftrmm
* ( AtlasRight, AtlasUpper, AtlasNoTrans, AtlasNonUnit, ... )
*
* See ATL_zreftrmm for details.
*
* ---------------------------------------------------------------------
*/
/*
* .. Local Variables ..
*/
double t0_i, t0_r;
int i, iakj, ibij, ibik, j, jaj, jbj, jbk, k,
lda2 = ( LDA << 1 ), ldb2 = ( LDB << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = N-1, jaj = (N-1)*lda2, jbj = (N-1)*ldb2;
j >= 0; j--, jaj -= lda2, jbj -= ldb2 )
{
Mset( ALPHA[0], ALPHA[1], t0_r, t0_i );
i = ( j << 1 ) + jaj; Mdscl( A[i], A[i+1], t0_r, t0_i );
for( i = 0, ibij = jbj; i < M; i++, ibij += 2 )
{ Mdscl( t0_r, t0_i, B[ibij], B[ibij+1] ); }
for( k = 0, iakj = jaj, jbk = 0; k < j; k++, iakj += 2, jbk += ldb2 )
{
Mmul( ALPHA[0], ALPHA[1], A[iakj], A[iakj+1], t0_r, t0_i );
for( i = 0, ibij = jbj, ibik = jbk; i < M; i++, ibij += 2, ibik += 2 )
{ Mmla( t0_r, t0_i, B[ibik], B[ibik+1], B[ibij], B[ibij+1] ); }
}
}
/*
* End of ATL_zreftrmmRUNN
*/
}
开发者ID:GorgonCryoEM,项目名称:Gorgon-CVS,代码行数:54,代码来源:ATL_zreftrmmRUNN.c
示例20: Mset
void ATL_zrefgemmCN
(
const int M,
const int N,
const int K,
const double * ALPHA,
const double * A,
const int LDA,
const double * B,
const int LDB,
const double * BETA,
double * C,
const int LDC
)
{
/*
* .. Local Variables ..
*/
register double t0_i, t0_r;
int i, iai, iail, iblj, icij, j, jbj, jcj, l,
lda2 = ( LDA << 1 ), ldb2 = ( LDB << 1 ),
ldc2 = ( LDC << 1 );
/* ..
* .. Executable Statements ..
*
*/
for( j = 0, jbj = 0, jcj = 0; j < N; j++, jbj += ldb2, jcj += ldc2 )
{
for( i = 0, icij = jcj, iai = 0; i < M; i++, icij += 2, iai += lda2 )
{
Mset( ATL_dZERO, ATL_dZERO, t0_r, t0_i );
for( l = 0, iail = iai, iblj = jbj; l < K; l++, iail += 2, iblj += 2 )
{ Mmla( A[iail], -A[iail+1], B[iblj], B[iblj+1], t0_r, t0_i ); }
Mzelscal( BETA[0], BETA[1], C[icij], C[icij+1] );
Mmla( ALPHA[0], ALPHA[1], t0_r, t0_i, C[icij], C[icij+1] );
}
}
/*
* End of ATL_zrefgemmCN
*/
}
开发者ID:GorgonCryoEM,项目名称:Gorgon-CVS,代码行数:41,代码来源:ATL_zrefgemmCN.c
注:本文中的Mmla函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论