16 typedef void (*functype)(
DenseIndex,
DenseIndex,
DenseIndex,
const Scalar *,
DenseIndex,
const Scalar *,
DenseIndex,
Scalar *,
DenseIndex,
Scalar, internal::level3_blocking<Scalar,Scalar>&,
Eigen::internal::GemmParallelInfo<DenseIndex>*);
17 static const functype func[12] = {
50 else if(*m<0)
info = 3;
51 else if(*
n<0)
info = 4;
52 else if(*k<0)
info = 5;
59 if (*m == 0 || *
n == 0)
65 else matrix(
c, *m, *
n, *ldc) *= beta;
71 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic> blocking(*m,*
n,*k,1,
true);
73 int code =
OP(*opa) | (
OP(*opb) << 2);
74 func[code](*m, *
n, *k,
a, *
lda,
b, *ldb,
c, *ldc,
alpha, blocking, 0);
78 int EIGEN_BLAS_FUNC(
trsm)(
const char *side,
const char *uplo,
const char *opa,
const char *diag,
const int *m,
const int *
n,
83 static const functype func[32] = {
151 else if(*m<0)
info = 5;
152 else if(*
n<0)
info = 6;
161 int code =
OP(*opa) | (
SIDE(*side) << 2) | (
UPLO(*uplo) << 3) | (
DIAG(*diag) << 4);
165 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic,4> blocking(*m,*
n,*m,1,
false);
166 func[code](*m, *
n,
a, *
lda,
b, *ldb, blocking);
170 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic,4> blocking(*m,*
n,*
n,1,
false);
171 func[code](*
n, *m,
a, *
lda,
b, *ldb, blocking);
183 int EIGEN_BLAS_FUNC(
trmm)(
const char *side,
const char *uplo,
const char *opa,
const char *diag,
const int *m,
const int *
n,
187 typedef void (*functype)(
DenseIndex,
DenseIndex,
DenseIndex,
const Scalar *,
DenseIndex,
const Scalar *,
DenseIndex,
Scalar *,
DenseIndex,
const Scalar&, internal::level3_blocking<Scalar,Scalar>&);
188 static const functype func[32] = {
256 else if(*m<0)
info = 5;
257 else if(*
n<0)
info = 6;
263 int code =
OP(*opa) | (
SIDE(*side) << 2) | (
UPLO(*uplo) << 3) | (
DIAG(*diag) << 4);
274 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic,4> blocking(*m,*
n,*m,1,
false);
275 func[code](*m, *
n, *m,
a, *
lda, tmp.
data(), tmp.
outerStride(),
b, *ldb,
alpha, blocking);
279 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic,4> blocking(*m,*
n,*
n,1,
false);
280 func[code](*m, *
n, *
n, tmp.
data(), tmp.
outerStride(),
a, *
lda,
b, *ldb,
alpha, blocking);
300 else if(*m<0)
info = 3;
301 else if(*
n<0)
info = 4;
311 else matrix(
c, *m, *
n, *ldc) *= beta;
338 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic> blocking(*m,*
n,
size,1,
false);
341 if(
UPLO(*uplo)==
UP)
internal::product_selfadjoint_matrix<Scalar, DenseIndex, RowMajor,true,false, ColMajor,false,false, ColMajor>::run(*m, *
n,
a, *
lda,
b, *ldb,
c, *ldc,
alpha, blocking);
342 else if(
UPLO(*uplo)==
LO)
internal::product_selfadjoint_matrix<Scalar, DenseIndex, ColMajor,true,false, ColMajor,false,false, ColMajor>::run(*m, *
n,
a, *
lda,
b, *ldb,
c, *ldc,
alpha, blocking);
345 if(
UPLO(*uplo)==
UP)
internal::product_selfadjoint_matrix<Scalar, DenseIndex, ColMajor,false,false, RowMajor,true,false, ColMajor>::run(*m, *
n,
b, *ldb,
a, *
lda,
c, *ldc,
alpha, blocking);
346 else if(
UPLO(*uplo)==
LO)
internal::product_selfadjoint_matrix<Scalar, DenseIndex, ColMajor,false,false, ColMajor,true,false, ColMajor>::run(*m, *
n,
b, *ldb,
a, *
lda,
c, *ldc,
alpha, blocking);
362 typedef void (*functype)(
DenseIndex,
DenseIndex,
const Scalar *,
DenseIndex,
const Scalar *,
DenseIndex,
Scalar *,
DenseIndex,
const Scalar&, internal::level3_blocking<Scalar,Scalar>&);
363 static const functype func[8] = {
389 else if(*
n<0)
info = 3;
390 else if(*k<0)
info = 4;
426 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic> blocking(*
n,*
n,*k,1,
false);
428 int code =
OP(*op) | (
UPLO(*uplo) << 2);
451 else if(*
n<0)
info = 3;
452 else if(*k<0)
info = 4;
519 else if(*m<0)
info = 3;
520 else if(*
n<0)
info = 4;
536 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic> blocking(*m,*
n,
size,1,
false);
550 else if(
UPLO(*uplo)==
LO) internal::product_selfadjoint_matrix<Scalar,DenseIndex,ColMajor,false,false, ColMajor,true,false, ColMajor>
564 int EIGEN_BLAS_FUNC(herk)(
const char *uplo,
const char *op,
const int *
n,
const int *k,
569 typedef void (*functype)(
DenseIndex,
DenseIndex,
const Scalar *,
DenseIndex,
const Scalar *,
DenseIndex,
Scalar *,
DenseIndex,
const Scalar&, internal::level3_blocking<Scalar,Scalar>&);
570 static const functype func[8] = {
595 else if(*
n<0)
info = 3;
596 else if(*k<0)
info = 4;
602 int code =
OP(*op) | (
UPLO(*uplo) << 2);
615 matrix(
c, *
n, *
n, *ldc).diagonal().real() *= beta;
616 matrix(
c, *
n, *
n, *ldc).diagonal().imag().setZero();
622 internal::gemm_blocking_space<ColMajor,Scalar,Scalar,Dynamic,Dynamic,Dynamic> blocking(*
n,*
n,*k,1,
false);
624 matrix(
c, *
n, *
n, *ldc).diagonal().imag().setZero();
631 int EIGEN_BLAS_FUNC(her2k)(
const char *uplo,
const char *op,
const int *
n,
const int *k,
645 else if(*
n<0)
info = 3;
646 else if(*k<0)
info = 4;
664 matrix(
c, *
n, *
n, *ldc).diagonal().real() *= beta;
665 matrix(
c, *
n, *
n, *ldc).diagonal().imag().setZero();
669 matrix(
c, *
n, *
n, *ldc).diagonal().imag().setZero();
687 else if(
OP(*op)==
ADJ)