|
libflame
revision_anchor
|
Functions | |
| void | bli_scopymr (uplo_t uplo, int m, int n, float *a, int a_rs, int a_cs, float *b, int b_rs, int b_cs) |
| void | bli_dcopymr (uplo_t uplo, int m, int n, double *a, int a_rs, int a_cs, double *b, int b_rs, int b_cs) |
| void | bli_ccopymr (uplo_t uplo, int m, int n, scomplex *a, int a_rs, int a_cs, scomplex *b, int b_rs, int b_cs) |
| void | bli_zcopymr (uplo_t uplo, int m, int n, dcomplex *a, int a_rs, int a_cs, dcomplex *b, int b_rs, int b_cs) |
| void | bli_sscopymr (uplo_t uplo, int m, int n, float *a, int a_rs, int a_cs, float *b, int b_rs, int b_cs) |
| void | bli_sdcopymr (uplo_t uplo, int m, int n, float *a, int a_rs, int a_cs, double *b, int b_rs, int b_cs) |
| void | bli_dscopymr (uplo_t uplo, int m, int n, double *a, int a_rs, int a_cs, float *b, int b_rs, int b_cs) |
| void | bli_sccopymr (uplo_t uplo, int m, int n, float *a, int a_rs, int a_cs, scomplex *b, int b_rs, int b_cs) |
| void | bli_cscopymr (uplo_t uplo, int m, int n, scomplex *a, int a_rs, int a_cs, float *b, int b_rs, int b_cs) |
| void | bli_szcopymr (uplo_t uplo, int m, int n, float *a, int a_rs, int a_cs, dcomplex *b, int b_rs, int b_cs) |
| void | bli_zscopymr (uplo_t uplo, int m, int n, dcomplex *a, int a_rs, int a_cs, float *b, int b_rs, int b_cs) |
| void | bli_ddcopymr (uplo_t uplo, int m, int n, double *a, int a_rs, int a_cs, double *b, int b_rs, int b_cs) |
| void | bli_dccopymr (uplo_t uplo, int m, int n, double *a, int a_rs, int a_cs, scomplex *b, int b_rs, int b_cs) |
| void | bli_cdcopymr (uplo_t uplo, int m, int n, scomplex *a, int a_rs, int a_cs, double *b, int b_rs, int b_cs) |
| void | bli_dzcopymr (uplo_t uplo, int m, int n, double *a, int a_rs, int a_cs, dcomplex *b, int b_rs, int b_cs) |
| void | bli_zdcopymr (uplo_t uplo, int m, int n, dcomplex *a, int a_rs, int a_cs, double *b, int b_rs, int b_cs) |
| void | bli_cccopymr (uplo_t uplo, int m, int n, scomplex *a, int a_rs, int a_cs, scomplex *b, int b_rs, int b_cs) |
| void | bli_czcopymr (uplo_t uplo, int m, int n, scomplex *a, int a_rs, int a_cs, dcomplex *b, int b_rs, int b_cs) |
| void | bli_zccopymr (uplo_t uplo, int m, int n, dcomplex *a, int a_rs, int a_cs, scomplex *b, int b_rs, int b_cs) |
| void | bli_zzcopymr (uplo_t uplo, int m, int n, dcomplex *a, int a_rs, int a_cs, dcomplex *b, int b_rs, int b_cs) |
| void bli_cccopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| scomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| scomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_ccopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
{
scomplex* a_begin;
scomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_ccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_ccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_ccopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| scomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| scomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_ccopy(), bli_is_row_storage(), bli_is_upper(), and bli_zero_dim2().
Referenced by bli_ccreate_contigmr(), bli_cfree_saved_contigmr(), and FLA_Copyr_external().
{
scomplex* a_begin;
scomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if A and B are both row-major, then let's access the
// matrices by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) && bli_is_row_storage( a_rs, a_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_ccopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_ccopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_cdcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| scomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| double * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_cdcopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
scomplex* a_begin;
double* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_cdcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_cdcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_cscopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| scomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| float * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_cscopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
scomplex* a_begin;
float* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_cscopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_cscopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_czcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| scomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| dcomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_czcopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
scomplex* a_begin;
dcomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_czcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_czcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_dccopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| double * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| scomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_dccopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
double* a_begin;
scomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_dccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_dccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_dcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| double * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| double * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_dcopy(), bli_is_row_storage(), bli_is_upper(), and bli_zero_dim2().
Referenced by bli_dcreate_contigmr(), bli_dfree_saved_contigmr(), and FLA_Copyr_external().
{
double* a_begin;
double* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if A and B are both row-major, then let's access the
// matrices by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) && bli_is_row_storage( a_rs, a_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_dcopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_dcopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_ddcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| double * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| double * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_dcopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
{
double* a_begin;
double* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_dcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_dcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_dscopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| double * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| float * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_dscopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
double* a_begin;
float* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_dscopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_dscopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_dzcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| double * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| dcomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_dzcopyv(), bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
double* a_begin;
dcomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_dzcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_dzcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_sccopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| float * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| scomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_sccopyv(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
float* a_begin;
scomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_sccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_sccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_scopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| float * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| float * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_scopy(), and bli_zero_dim2().
Referenced by bli_screate_contigmr(), bli_sfree_saved_contigmr(), and FLA_Copyr_external().
{
float* a_begin;
float* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if A and B are both row-major, then let's access the
// matrices by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) && bli_is_row_storage( a_rs, a_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_scopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_scopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_sdcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| float * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| double * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_sdcopyv(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
float* a_begin;
double* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_sdcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_sdcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_sscopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| float * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| float * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_scopyv(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
{
float* a_begin;
float* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_scopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_scopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_szcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| float * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| dcomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_szcopyv(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
float* a_begin;
dcomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_szcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_szcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_zccopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| dcomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| scomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_zccopyv(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
dcomplex* a_begin;
scomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_zccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_zccopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_zcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| dcomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| dcomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_zcopy(), and bli_zero_dim2().
Referenced by bli_zcreate_contigmr(), bli_zfree_saved_contigmr(), bli_zfree_saved_contigmsr(), and FLA_Copyr_external().
{
dcomplex* a_begin;
dcomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if A and B are both row-major, then let's access the
// matrices by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) && bli_is_row_storage( a_rs, a_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_zcopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_zcopy( n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_zdcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| dcomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| double * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_zdcopyv(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
dcomplex* a_begin;
double* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_zdcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_zdcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_zscopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| dcomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| float * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_zero_dim2(), bli_zscopyv(), and BLIS_NO_TRANSPOSE.
Referenced by FLA_Copyr_external().
{
dcomplex* a_begin;
float* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_zscopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_zscopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
| void bli_zzcopymr | ( | uplo_t | uplo, |
| int | m, | ||
| int | n, | ||
| dcomplex * | a, | ||
| int | a_rs, | ||
| int | a_cs, | ||
| dcomplex * | b, | ||
| int | b_rs, | ||
| int | b_cs | ||
| ) |
References bli_is_row_storage(), bli_is_upper(), bli_zcopyv(), bli_zero_dim2(), and BLIS_NO_TRANSPOSE.
{
dcomplex* a_begin;
dcomplex* b_begin;
int lda, inca;
int ldb, incb;
int n_iter;
int n_elem_max;
int n_elem;
int j;
// Return early if possible.
if ( bli_zero_dim2( m, n ) ) return;
// We initialize for column-major.
n_iter = n;
n_elem_max = m;
lda = a_cs;
inca = a_rs;
ldb = b_cs;
incb = b_rs;
// An optimization: if B is row-major, then let's access the matrix
// by rows instead of by columns for increased spatial locality.
if ( bli_is_row_storage( b_rs, b_cs ) )
{
bli_swap_ints( n_iter, n_elem_max );
bli_swap_ints( lda, inca );
bli_swap_ints( ldb, incb );
bli_toggle_uplo( uplo );
}
if ( bli_is_upper( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_min( j + 1, n_elem_max );
a_begin = a + j*lda;
b_begin = b + j*ldb;
bli_zcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
else // if ( bli_is_lower( uplo ) )
{
for ( j = 0; j < n_iter; j++ )
{
n_elem = bli_max( 0, n_elem_max - j );
a_begin = a + j*lda + j*inca;
b_begin = b + j*ldb + j*incb;
if ( n_elem <= 0 ) break;
bli_zcopyv( BLIS_NO_TRANSPOSE,
n_elem,
a_begin, inca,
b_begin, incb );
}
}
}
1.7.6.1