ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixMulAdd.F90
Go to the documentation of this file.
1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3!!!! !!!!
4!!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5!!!! !!!!
6!!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7!!!! !!!!
8!!!! This file is part of the ParaMonte library. !!!!
9!!!! !!!!
10!!!! LICENSE !!!!
11!!!! !!!!
12!!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13!!!! !!!!
14!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
98
99!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100
102
103 use pm_kind, only: SK, IK, LK, RKS, RKD
111 use pm_blas, only: blasSYMM, blasHEMM, blasGEMM
112 use pm_blas, only: blasSPMV, blasHPMV
113 use pm_blas, only: blasSYMV, blasHEMV
114 use pm_blas, only: blasGEMV
115
116 implicit none
117
118 character(*, SK), parameter :: MODULE_NAME = "@pm_matrixMulAdd"
119
120!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
121
236 ! It cannot be present if `matA` is a scalar value, in which case, `alpha` can be multiplied and merged with `matA` prior to calling this interface.)
390 ! \lapackint{setMatMulAdd}
391 !
392 ! \warning This table must be updated with the correct modern interfaces.
393 ! BLAS/LAPACK interface | [setMatMulAdd](@ref pm_matrixMulAdd::setMatMulAdd) interface
394 ! ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------
395 ! `call SSPMV / DSPMV / CHPMV / ZHPMV (uplo = "U", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = symmetric, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
396 ! `call SSPMV / DSPMV / CHPMV / ZHPMV (uplo = "L", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = symmetric, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
397 ! `call CHPMV / ZHPMV (uplo = "U", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = hermitian, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
398 ! `call CHPMV / ZHPMV (uplo = "L", n = ndim, alpha, ap = matA(i:), x = matB(k), incx = incB, beta, y = matC(p), incy = incC)` | `call setMatMulAdd(matA(i :), classA = hermitian, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, incB, incC)`
399 ! `call SSYMV / DSYMV / CHEMV / ZHEMV (uplo = "U", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = symmetric, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
400 ! `call SSYMV / DSYMV / CHEMV / ZHEMV (uplo = "L", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = symmetric, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
401 ! `call CHEMV / ZHEMV (uplo = "U", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = hermitian, subsetA = uppDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
402 ! `call CHEMV / ZHEMV (uplo = "L", n = ndim, alpha, a = matA(i,j), lda, x = matB(k:), incx = incB, beta, y = matC(p:), incy = incC)` | `call setMatMulAdd(matA(:,:), classA = hermitian, subsetA = lowDiaA, matB(k :), matC(p :), alpha, beta, ndim, roffA = i - 1, coffA = j - 1, incB, incC)`
403 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "N", transb = "N", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1)`
404 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "N", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationB = transSymm)`
405 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "T", transb = "N", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transSymm)`
406 ! `call SGEMM / DGEMM / CGEMM / ZGEMM (transa = "T", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transSymm, operationB = transSymm)`
407 ! `call CGEMM / ZGEMM (transa = "N", transb = "C", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationB = transHerm)`
408 ! `call CGEMM / ZGEMM (transa = "C", transb = "N", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transHerm)`
409 ! `call CGEMM / ZGEMM (transa = "T", transb = "C", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transSymm, operationB = transHerm)`
410 ! `call CGEMM / ZGEMM (transa = "C", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transHerm, operationB = transSymm)`
411 ! `call CGEMM / ZGEMM (transa = "C", transb = "T", m = nrow, n = ncol, k = ndum, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, ndum, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, operationA = transHerm, operationB = transHerm)`
412 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "L", uplo = "U", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = uppDiaA, classA = symmetric)`
413 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "R", uplo = "U", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = uppDiaB, classB = symmetric)`
414 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "L", uplo = "L", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = lowDiaA, classA = symmetric)`
415 ! `call SSYMM / DSYMM / CSYMM / ZSYMM (side = "R", uplo = "L", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = lowDiaB, classB = symmetric)`
416 ! `call CHEMM / ZHEMM (side = "L", uplo = "U", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = uppDiaA, classA = hermitian)`
417 ! `call CHEMM / ZHEMM (side = "R", uplo = "U", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = uppDiaB, classB = hermitian)`
418 ! `call CHEMM / ZHEMM (side = "L", uplo = "L", m = nrow, n = ncol, alpha, a = matA(i,j), lda, b = matB(k,l), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetA = lowDiaA, classA = hermitian)`
419 ! `call CHEMM / ZHEMM (side = "R", uplo = "L", m = nrow, n = ncol, alpha, a = matB(k,l), lda, b = matA(i,j), ldb, beta, c = matC(p,q), ldc)` | `call setMatMulAdd(matA(:,:), matB(:,:), matC(:,:), alpha, beta, nrow, ncol, roffA = i - 1, coffA = j - 1, roffB = k - 1, coffB = l - 1, roffC = p - 1, coffC = q - 1, subsetB = lowDiaB, classB = hermitian)`
482
483 ! BLAS 2: `SGEMV`, `DGEMV`, `CGEMV`, `ZGEMV`
484
485 interface setMatMulAdd
486
487 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
488 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
490
491 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
492 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
493 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
494
495 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
496
497#if IK5_ENABLED
498 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK5(matA, matB, matC, alpha, beta)
499#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
500 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK5
501#endif
502 use pm_kind, only: IKG => IK5
503 integer(IKG) , intent(in) , optional :: alpha, beta
504 integer(IKG) , intent(in) , contiguous :: matA(:,:)
505 integer(IKG) , intent(in) , contiguous :: matB(:)
506 integer(IKG) , intent(inout) , contiguous :: matC(:)
507 end subroutine
508#endif
509
510#if IK4_ENABLED
511 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK4(matA, matB, matC, alpha, beta)
512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
513 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK4
514#endif
515 use pm_kind, only: IKG => IK4
516 integer(IKG) , intent(in) , optional :: alpha, beta
517 integer(IKG) , intent(in) , contiguous :: matA(:,:)
518 integer(IKG) , intent(in) , contiguous :: matB(:)
519 integer(IKG) , intent(inout) , contiguous :: matC(:)
520 end subroutine
521#endif
522
523#if IK3_ENABLED
524 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK3(matA, matB, matC, alpha, beta)
525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
526 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK3
527#endif
528 use pm_kind, only: IKG => IK3
529 integer(IKG) , intent(in) , optional :: alpha, beta
530 integer(IKG) , intent(in) , contiguous :: matA(:,:)
531 integer(IKG) , intent(in) , contiguous :: matB(:)
532 integer(IKG) , intent(inout) , contiguous :: matC(:)
533 end subroutine
534#endif
535
536#if IK2_ENABLED
537 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK2(matA, matB, matC, alpha, beta)
538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
539 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK2
540#endif
541 use pm_kind, only: IKG => IK2
542 integer(IKG) , intent(in) , optional :: alpha, beta
543 integer(IKG) , intent(in) , contiguous :: matA(:,:)
544 integer(IKG) , intent(in) , contiguous :: matB(:)
545 integer(IKG) , intent(inout) , contiguous :: matC(:)
546 end subroutine
547#endif
548
549#if IK1_ENABLED
550 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_IK1(matA, matB, matC, alpha, beta)
551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
552 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_IK1
553#endif
554 use pm_kind, only: IKG => IK1
555 integer(IKG) , intent(in) , optional :: alpha, beta
556 integer(IKG) , intent(in) , contiguous :: matA(:,:)
557 integer(IKG) , intent(in) , contiguous :: matB(:)
558 integer(IKG) , intent(inout) , contiguous :: matC(:)
559 end subroutine
560#endif
561
562 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
563
564#if CK5_ENABLED
565 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK5(matA, matB, matC, alpha, beta)
566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
567 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK5
568#endif
569 use pm_kind, only: CKG => CK5
570 complex(CKG) , intent(in) , optional :: alpha, beta
571 complex(CKG) , intent(in) , contiguous :: matA(:,:)
572 complex(CKG) , intent(in) , contiguous :: matB(:)
573 complex(CKG) , intent(inout) , contiguous :: matC(:)
574 end subroutine
575#endif
576
577#if CK4_ENABLED
578 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK4(matA, matB, matC, alpha, beta)
579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
580 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK4
581#endif
582 use pm_kind, only: CKG => CK4
583 complex(CKG) , intent(in) , optional :: alpha, beta
584 complex(CKG) , intent(in) , contiguous :: matA(:,:)
585 complex(CKG) , intent(in) , contiguous :: matB(:)
586 complex(CKG) , intent(inout) , contiguous :: matC(:)
587 end subroutine
588#endif
589
590#if CK3_ENABLED
591 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK3(matA, matB, matC, alpha, beta)
592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
593 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK3
594#endif
595 use pm_kind, only: CKG => CK3
596 complex(CKG) , intent(in) , optional :: alpha, beta
597 complex(CKG) , intent(in) , contiguous :: matA(:,:)
598 complex(CKG) , intent(in) , contiguous :: matB(:)
599 complex(CKG) , intent(inout) , contiguous :: matC(:)
600 end subroutine
601#endif
602
603#if CK2_ENABLED
604 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK2(matA, matB, matC, alpha, beta)
605#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
606 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK2
607#endif
608 use pm_kind, only: CKG => CK2
609 complex(CKG) , intent(in) , optional :: alpha, beta
610 complex(CKG) , intent(in) , contiguous :: matA(:,:)
611 complex(CKG) , intent(in) , contiguous :: matB(:)
612 complex(CKG) , intent(inout) , contiguous :: matC(:)
613 end subroutine
614#endif
615
616#if CK1_ENABLED
617 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_CK1(matA, matB, matC, alpha, beta)
618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
619 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_CK1
620#endif
621 use pm_kind, only: CKG => CK1
622 complex(CKG) , intent(in) , optional :: alpha, beta
623 complex(CKG) , intent(in) , contiguous :: matA(:,:)
624 complex(CKG) , intent(in) , contiguous :: matB(:)
625 complex(CKG) , intent(inout) , contiguous :: matC(:)
626 end subroutine
627#endif
628
629 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
630
631#if RK5_ENABLED
632 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK5(matA, matB, matC, alpha, beta)
633#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
634 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK5
635#endif
636 use pm_kind, only: RKG => RK5
637 real(RKG) , intent(in) , optional :: alpha, beta
638 real(RKG) , intent(in) , contiguous :: matA(:,:)
639 real(RKG) , intent(in) , contiguous :: matB(:)
640 real(RKG) , intent(inout) , contiguous :: matC(:)
641 end subroutine
642#endif
643
644#if RK4_ENABLED
645 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK4(matA, matB, matC, alpha, beta)
646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
647 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK4
648#endif
649 use pm_kind, only: RKG => RK4
650 real(RKG) , intent(in) , optional :: alpha, beta
651 real(RKG) , intent(in) , contiguous :: matA(:,:)
652 real(RKG) , intent(in) , contiguous :: matB(:)
653 real(RKG) , intent(inout) , contiguous :: matC(:)
654 end subroutine
655#endif
656
657#if RK3_ENABLED
658 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK3(matA, matB, matC, alpha, beta)
659#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
660 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK3
661#endif
662 use pm_kind, only: RKG => RK3
663 real(RKG) , intent(in) , optional :: alpha, beta
664 real(RKG) , intent(in) , contiguous :: matA(:,:)
665 real(RKG) , intent(in) , contiguous :: matB(:)
666 real(RKG) , intent(inout) , contiguous :: matC(:)
667 end subroutine
668#endif
669
670#if RK2_ENABLED
671 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK2(matA, matB, matC, alpha, beta)
672#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
673 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK2
674#endif
675 use pm_kind, only: RKG => RK2
676 real(RKG) , intent(in) , optional :: alpha, beta
677 real(RKG) , intent(in) , contiguous :: matA(:,:)
678 real(RKG) , intent(in) , contiguous :: matB(:)
679 real(RKG) , intent(inout) , contiguous :: matC(:)
680 end subroutine
681#endif
682
683#if RK1_ENABLED
684 PURE module subroutine gemv_ASS_SFA_SFB_TNA_TNB_RK1(matA, matB, matC, alpha, beta)
685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
686 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TNA_TNB_RK1
687#endif
688 use pm_kind, only: RKG => RK1
689 real(RKG) , intent(in) , optional :: alpha, beta
690 real(RKG) , intent(in) , contiguous :: matA(:,:)
691 real(RKG) , intent(in) , contiguous :: matB(:)
692 real(RKG) , intent(inout) , contiguous :: matC(:)
693 end subroutine
694#endif
695
696 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697
698 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
699 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
700 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
701
702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
703
704#if IK5_ENABLED
705 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK5(matA, operationA, matB, matC, alpha, beta)
706#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
707 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK5
708#endif
709 use pm_kind, only: IKG => IK5
710 integer(IKG) , intent(in) , optional :: alpha, beta
711 integer(IKG) , intent(in) , contiguous :: matA(:,:)
712 integer(IKG) , intent(in) , contiguous :: matB(:)
713 integer(IKG) , intent(inout) , contiguous :: matC(:)
714 type(transSymm_type) , intent(in) :: operationA
715 end subroutine
716#endif
717
718#if IK4_ENABLED
719 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK4(matA, operationA, matB, matC, alpha, beta)
720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
721 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK4
722#endif
723 use pm_kind, only: IKG => IK4
724 integer(IKG) , intent(in) , optional :: alpha, beta
725 integer(IKG) , intent(in) , contiguous :: matA(:,:)
726 integer(IKG) , intent(in) , contiguous :: matB(:)
727 integer(IKG) , intent(inout) , contiguous :: matC(:)
728 type(transSymm_type) , intent(in) :: operationA
729 end subroutine
730#endif
731
732#if IK3_ENABLED
733 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK3(matA, operationA, matB, matC, alpha, beta)
734#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
735 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK3
736#endif
737 use pm_kind, only: IKG => IK3
738 integer(IKG) , intent(in) , optional :: alpha, beta
739 integer(IKG) , intent(in) , contiguous :: matA(:,:)
740 integer(IKG) , intent(in) , contiguous :: matB(:)
741 integer(IKG) , intent(inout) , contiguous :: matC(:)
742 type(transSymm_type) , intent(in) :: operationA
743 end subroutine
744#endif
745
746#if IK2_ENABLED
747 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK2(matA, operationA, matB, matC, alpha, beta)
748#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
749 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK2
750#endif
751 use pm_kind, only: IKG => IK2
752 integer(IKG) , intent(in) , optional :: alpha, beta
753 integer(IKG) , intent(in) , contiguous :: matA(:,:)
754 integer(IKG) , intent(in) , contiguous :: matB(:)
755 integer(IKG) , intent(inout) , contiguous :: matC(:)
756 type(transSymm_type) , intent(in) :: operationA
757 end subroutine
758#endif
759
760#if IK1_ENABLED
761 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_IK1(matA, operationA, matB, matC, alpha, beta)
762#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
763 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_IK1
764#endif
765 use pm_kind, only: IKG => IK1
766 integer(IKG) , intent(in) , optional :: alpha, beta
767 integer(IKG) , intent(in) , contiguous :: matA(:,:)
768 integer(IKG) , intent(in) , contiguous :: matB(:)
769 integer(IKG) , intent(inout) , contiguous :: matC(:)
770 type(transSymm_type) , intent(in) :: operationA
771 end subroutine
772#endif
773
774 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
775
776#if CK5_ENABLED
777 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK5(matA, operationA, matB, matC, alpha, beta)
778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
779 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK5
780#endif
781 use pm_kind, only: CKG => CK5
782 complex(CKG) , intent(in) , optional :: alpha, beta
783 complex(CKG) , intent(in) , contiguous :: matA(:,:)
784 complex(CKG) , intent(in) , contiguous :: matB(:)
785 complex(CKG) , intent(inout) , contiguous :: matC(:)
786 type(transSymm_type) , intent(in) :: operationA
787 end subroutine
788#endif
789
790#if CK4_ENABLED
791 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK4(matA, operationA, matB, matC, alpha, beta)
792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
793 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK4
794#endif
795 use pm_kind, only: CKG => CK4
796 complex(CKG) , intent(in) , optional :: alpha, beta
797 complex(CKG) , intent(in) , contiguous :: matA(:,:)
798 complex(CKG) , intent(in) , contiguous :: matB(:)
799 complex(CKG) , intent(inout) , contiguous :: matC(:)
800 type(transSymm_type) , intent(in) :: operationA
801 end subroutine
802#endif
803
804#if CK3_ENABLED
805 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK3(matA, operationA, matB, matC, alpha, beta)
806#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
807 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK3
808#endif
809 use pm_kind, only: CKG => CK3
810 complex(CKG) , intent(in) , optional :: alpha, beta
811 complex(CKG) , intent(in) , contiguous :: matA(:,:)
812 complex(CKG) , intent(in) , contiguous :: matB(:)
813 complex(CKG) , intent(inout) , contiguous :: matC(:)
814 type(transSymm_type) , intent(in) :: operationA
815 end subroutine
816#endif
817
818#if CK2_ENABLED
819 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK2(matA, operationA, matB, matC, alpha, beta)
820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
821 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK2
822#endif
823 use pm_kind, only: CKG => CK2
824 complex(CKG) , intent(in) , optional :: alpha, beta
825 complex(CKG) , intent(in) , contiguous :: matA(:,:)
826 complex(CKG) , intent(in) , contiguous :: matB(:)
827 complex(CKG) , intent(inout) , contiguous :: matC(:)
828 type(transSymm_type) , intent(in) :: operationA
829 end subroutine
830#endif
831
832#if CK1_ENABLED
833 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_CK1(matA, operationA, matB, matC, alpha, beta)
834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
835 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_CK1
836#endif
837 use pm_kind, only: CKG => CK1
838 complex(CKG) , intent(in) , optional :: alpha, beta
839 complex(CKG) , intent(in) , contiguous :: matA(:,:)
840 complex(CKG) , intent(in) , contiguous :: matB(:)
841 complex(CKG) , intent(inout) , contiguous :: matC(:)
842 type(transSymm_type) , intent(in) :: operationA
843 end subroutine
844#endif
845
846 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
847
848#if RK5_ENABLED
849 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK5(matA, operationA, matB, matC, alpha, beta)
850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
851 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK5
852#endif
853 use pm_kind, only: RKG => RK5
854 real(RKG) , intent(in) , optional :: alpha, beta
855 real(RKG) , intent(in) , contiguous :: matA(:,:)
856 real(RKG) , intent(in) , contiguous :: matB(:)
857 real(RKG) , intent(inout) , contiguous :: matC(:)
858 type(transSymm_type) , intent(in) :: operationA
859 end subroutine
860#endif
861
862#if RK4_ENABLED
863 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK4(matA, operationA, matB, matC, alpha, beta)
864#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
865 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK4
866#endif
867 use pm_kind, only: RKG => RK4
868 real(RKG) , intent(in) , optional :: alpha, beta
869 real(RKG) , intent(in) , contiguous :: matA(:,:)
870 real(RKG) , intent(in) , contiguous :: matB(:)
871 real(RKG) , intent(inout) , contiguous :: matC(:)
872 type(transSymm_type) , intent(in) :: operationA
873 end subroutine
874#endif
875
876#if RK3_ENABLED
877 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK3(matA, operationA, matB, matC, alpha, beta)
878#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
879 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK3
880#endif
881 use pm_kind, only: RKG => RK3
882 real(RKG) , intent(in) , optional :: alpha, beta
883 real(RKG) , intent(in) , contiguous :: matA(:,:)
884 real(RKG) , intent(in) , contiguous :: matB(:)
885 real(RKG) , intent(inout) , contiguous :: matC(:)
886 type(transSymm_type) , intent(in) :: operationA
887 end subroutine
888#endif
889
890#if RK2_ENABLED
891 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK2(matA, operationA, matB, matC, alpha, beta)
892#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
893 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK2
894#endif
895 use pm_kind, only: RKG => RK2
896 real(RKG) , intent(in) , optional :: alpha, beta
897 real(RKG) , intent(in) , contiguous :: matA(:,:)
898 real(RKG) , intent(in) , contiguous :: matB(:)
899 real(RKG) , intent(inout) , contiguous :: matC(:)
900 type(transSymm_type) , intent(in) :: operationA
901 end subroutine
902#endif
903
904#if RK1_ENABLED
905 PURE module subroutine gemv_ASS_SFA_SFB_TSA_TNB_RK1(matA, operationA, matB, matC, alpha, beta)
906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
907 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_TSA_TNB_RK1
908#endif
909 use pm_kind, only: RKG => RK1
910 real(RKG) , intent(in) , optional :: alpha, beta
911 real(RKG) , intent(in) , contiguous :: matA(:,:)
912 real(RKG) , intent(in) , contiguous :: matB(:)
913 real(RKG) , intent(inout) , contiguous :: matC(:)
914 type(transSymm_type) , intent(in) :: operationA
915 end subroutine
916#endif
917
918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
919
920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
922 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
923
924 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
925
926#if IK5_ENABLED
927 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK5(matA, operationA, matB, matC, alpha, beta)
928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
929 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK5
930#endif
931 use pm_kind, only: IKG => IK5
932 integer(IKG) , intent(in) , optional :: alpha, beta
933 integer(IKG) , intent(in) , contiguous :: matA(:,:)
934 integer(IKG) , intent(in) , contiguous :: matB(:)
935 integer(IKG) , intent(inout) , contiguous :: matC(:)
936 type(transHerm_type) , intent(in) :: operationA
937 end subroutine
938#endif
939
940#if IK4_ENABLED
941 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK4(matA, operationA, matB, matC, alpha, beta)
942#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
943 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK4
944#endif
945 use pm_kind, only: IKG => IK4
946 integer(IKG) , intent(in) , optional :: alpha, beta
947 integer(IKG) , intent(in) , contiguous :: matA(:,:)
948 integer(IKG) , intent(in) , contiguous :: matB(:)
949 integer(IKG) , intent(inout) , contiguous :: matC(:)
950 type(transHerm_type) , intent(in) :: operationA
951 end subroutine
952#endif
953
954#if IK3_ENABLED
955 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK3(matA, operationA, matB, matC, alpha, beta)
956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
957 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK3
958#endif
959 use pm_kind, only: IKG => IK3
960 integer(IKG) , intent(in) , optional :: alpha, beta
961 integer(IKG) , intent(in) , contiguous :: matA(:,:)
962 integer(IKG) , intent(in) , contiguous :: matB(:)
963 integer(IKG) , intent(inout) , contiguous :: matC(:)
964 type(transHerm_type) , intent(in) :: operationA
965 end subroutine
966#endif
967
968#if IK2_ENABLED
969 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK2(matA, operationA, matB, matC, alpha, beta)
970#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
971 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK2
972#endif
973 use pm_kind, only: IKG => IK2
974 integer(IKG) , intent(in) , optional :: alpha, beta
975 integer(IKG) , intent(in) , contiguous :: matA(:,:)
976 integer(IKG) , intent(in) , contiguous :: matB(:)
977 integer(IKG) , intent(inout) , contiguous :: matC(:)
978 type(transHerm_type) , intent(in) :: operationA
979 end subroutine
980#endif
981
982#if IK1_ENABLED
983 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_IK1(matA, operationA, matB, matC, alpha, beta)
984#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
985 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_IK1
986#endif
987 use pm_kind, only: IKG => IK1
988 integer(IKG) , intent(in) , optional :: alpha, beta
989 integer(IKG) , intent(in) , contiguous :: matA(:,:)
990 integer(IKG) , intent(in) , contiguous :: matB(:)
991 integer(IKG) , intent(inout) , contiguous :: matC(:)
992 type(transHerm_type) , intent(in) :: operationA
993 end subroutine
994#endif
995
996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
997
998#if CK5_ENABLED
999 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK5(matA, operationA, matB, matC, alpha, beta)
1000#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1001 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK5
1002#endif
1003 use pm_kind, only: CKG => CK5
1004 complex(CKG) , intent(in) , optional :: alpha, beta
1005 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1006 complex(CKG) , intent(in) , contiguous :: matB(:)
1007 complex(CKG) , intent(inout) , contiguous :: matC(:)
1008 type(transHerm_type) , intent(in) :: operationA
1009 end subroutine
1010#endif
1011
1012#if CK4_ENABLED
1013 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK4(matA, operationA, matB, matC, alpha, beta)
1014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1015 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK4
1016#endif
1017 use pm_kind, only: CKG => CK4
1018 complex(CKG) , intent(in) , optional :: alpha, beta
1019 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1020 complex(CKG) , intent(in) , contiguous :: matB(:)
1021 complex(CKG) , intent(inout) , contiguous :: matC(:)
1022 type(transHerm_type) , intent(in) :: operationA
1023 end subroutine
1024#endif
1025
1026#if CK3_ENABLED
1027 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK3(matA, operationA, matB, matC, alpha, beta)
1028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1029 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK3
1030#endif
1031 use pm_kind, only: CKG => CK3
1032 complex(CKG) , intent(in) , optional :: alpha, beta
1033 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1034 complex(CKG) , intent(in) , contiguous :: matB(:)
1035 complex(CKG) , intent(inout) , contiguous :: matC(:)
1036 type(transHerm_type) , intent(in) :: operationA
1037 end subroutine
1038#endif
1039
1040#if CK2_ENABLED
1041 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK2(matA, operationA, matB, matC, alpha, beta)
1042#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1043 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK2
1044#endif
1045 use pm_kind, only: CKG => CK2
1046 complex(CKG) , intent(in) , optional :: alpha, beta
1047 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1048 complex(CKG) , intent(in) , contiguous :: matB(:)
1049 complex(CKG) , intent(inout) , contiguous :: matC(:)
1050 type(transHerm_type) , intent(in) :: operationA
1051 end subroutine
1052#endif
1053
1054#if CK1_ENABLED
1055 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_CK1(matA, operationA, matB, matC, alpha, beta)
1056#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1057 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_CK1
1058#endif
1059 use pm_kind, only: CKG => CK1
1060 complex(CKG) , intent(in) , optional :: alpha, beta
1061 complex(CKG) , intent(in) , contiguous :: matA(:,:)
1062 complex(CKG) , intent(in) , contiguous :: matB(:)
1063 complex(CKG) , intent(inout) , contiguous :: matC(:)
1064 type(transHerm_type) , intent(in) :: operationA
1065 end subroutine
1066#endif
1067
1068 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1069
1070#if RK5_ENABLED
1071 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK5(matA, operationA, matB, matC, alpha, beta)
1072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1073 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK5
1074#endif
1075 use pm_kind, only: RKG => RK5
1076 real(RKG) , intent(in) , optional :: alpha, beta
1077 real(RKG) , intent(in) , contiguous :: matA(:,:)
1078 real(RKG) , intent(in) , contiguous :: matB(:)
1079 real(RKG) , intent(inout) , contiguous :: matC(:)
1080 type(transHerm_type) , intent(in) :: operationA
1081 end subroutine
1082#endif
1083
1084#if RK4_ENABLED
1085 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK4(matA, operationA, matB, matC, alpha, beta)
1086#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1087 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK4
1088#endif
1089 use pm_kind, only: RKG => RK4
1090 real(RKG) , intent(in) , optional :: alpha, beta
1091 real(RKG) , intent(in) , contiguous :: matA(:,:)
1092 real(RKG) , intent(in) , contiguous :: matB(:)
1093 real(RKG) , intent(inout) , contiguous :: matC(:)
1094 type(transHerm_type) , intent(in) :: operationA
1095 end subroutine
1096#endif
1097
1098#if RK3_ENABLED
1099 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK3(matA, operationA, matB, matC, alpha, beta)
1100#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1101 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK3
1102#endif
1103 use pm_kind, only: RKG => RK3
1104 real(RKG) , intent(in) , optional :: alpha, beta
1105 real(RKG) , intent(in) , contiguous :: matA(:,:)
1106 real(RKG) , intent(in) , contiguous :: matB(:)
1107 real(RKG) , intent(inout) , contiguous :: matC(:)
1108 type(transHerm_type) , intent(in) :: operationA
1109 end subroutine
1110#endif
1111
1112#if RK2_ENABLED
1113 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK2(matA, operationA, matB, matC, alpha, beta)
1114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1115 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK2
1116#endif
1117 use pm_kind, only: RKG => RK2
1118 real(RKG) , intent(in) , optional :: alpha, beta
1119 real(RKG) , intent(in) , contiguous :: matA(:,:)
1120 real(RKG) , intent(in) , contiguous :: matB(:)
1121 real(RKG) , intent(inout) , contiguous :: matC(:)
1122 type(transHerm_type) , intent(in) :: operationA
1123 end subroutine
1124#endif
1125
1126#if RK1_ENABLED
1127 PURE module subroutine gemv_ASS_SFA_SFB_THA_TNB_RK1(matA, operationA, matB, matC, alpha, beta)
1128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1129 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_ASS_SFA_SFB_THA_TNB_RK1
1130#endif
1131 use pm_kind, only: RKG => RK1
1132 real(RKG) , intent(in) , optional :: alpha, beta
1133 real(RKG) , intent(in) , contiguous :: matA(:,:)
1134 real(RKG) , intent(in) , contiguous :: matB(:)
1135 real(RKG) , intent(inout) , contiguous :: matC(:)
1136 type(transHerm_type) , intent(in) :: operationA
1137 end subroutine
1138#endif
1139
1140 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1141
1142 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1143 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1144 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1145
1146 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1147 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1148 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1149
1150 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1151
1152#if IK5_ENABLED
1153 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK5(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1155 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK5
1156#endif
1157 use pm_kind, only: IKG => IK5
1158 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1159 integer(IKG) , intent(in) :: alpha, beta
1160 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1161 integer(IKG) , intent(in) , contiguous :: matB(:)
1162 integer(IKG) , intent(inout) , contiguous :: matC(:)
1163 end subroutine
1164#endif
1165
1166#if IK4_ENABLED
1167 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK4(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1169 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK4
1170#endif
1171 use pm_kind, only: IKG => IK4
1172 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1173 integer(IKG) , intent(in) :: alpha, beta
1174 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1175 integer(IKG) , intent(in) , contiguous :: matB(:)
1176 integer(IKG) , intent(inout) , contiguous :: matC(:)
1177 end subroutine
1178#endif
1179
1180#if IK3_ENABLED
1181 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK3(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1183 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK3
1184#endif
1185 use pm_kind, only: IKG => IK3
1186 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1187 integer(IKG) , intent(in) :: alpha, beta
1188 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1189 integer(IKG) , intent(in) , contiguous :: matB(:)
1190 integer(IKG) , intent(inout) , contiguous :: matC(:)
1191 end subroutine
1192#endif
1193
1194#if IK2_ENABLED
1195 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK2(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1196#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1197 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK2
1198#endif
1199 use pm_kind, only: IKG => IK2
1200 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1201 integer(IKG) , intent(in) :: alpha, beta
1202 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1203 integer(IKG) , intent(in) , contiguous :: matB(:)
1204 integer(IKG) , intent(inout) , contiguous :: matC(:)
1205 end subroutine
1206#endif
1207
1208#if IK1_ENABLED
1209 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_IK1(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1211 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_IK1
1212#endif
1213 use pm_kind, only: IKG => IK1
1214 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1215 integer(IKG) , intent(in) :: alpha, beta
1216 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1217 integer(IKG) , intent(in) , contiguous :: matB(:)
1218 integer(IKG) , intent(inout) , contiguous :: matC(:)
1219 end subroutine
1220#endif
1221
1222 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1223
1224#if CK5_ENABLED
1225 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK5(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1227 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK5
1228#endif
1229 use pm_kind, only: CKG => CK5
1230 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1231 complex(CKG) , intent(in) :: alpha, beta
1232 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1233 complex(CKG) , intent(in) , contiguous :: matB(:)
1234 complex(CKG) , intent(inout) , contiguous :: matC(:)
1235 end subroutine
1236#endif
1237
1238#if CK4_ENABLED
1239 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK4(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1241 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK4
1242#endif
1243 use pm_kind, only: CKG => CK4
1244 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1245 complex(CKG) , intent(in) :: alpha, beta
1246 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1247 complex(CKG) , intent(in) , contiguous :: matB(:)
1248 complex(CKG) , intent(inout) , contiguous :: matC(:)
1249 end subroutine
1250#endif
1251
1252#if CK3_ENABLED
1253 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK3(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1255 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK3
1256#endif
1257 use pm_kind, only: CKG => CK3
1258 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1259 complex(CKG) , intent(in) :: alpha, beta
1260 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1261 complex(CKG) , intent(in) , contiguous :: matB(:)
1262 complex(CKG) , intent(inout) , contiguous :: matC(:)
1263 end subroutine
1264#endif
1265
1266#if CK2_ENABLED
1267 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK2(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1269 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK2
1270#endif
1271 use pm_kind, only: CKG => CK2
1272 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1273 complex(CKG) , intent(in) :: alpha, beta
1274 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1275 complex(CKG) , intent(in) , contiguous :: matB(:)
1276 complex(CKG) , intent(inout) , contiguous :: matC(:)
1277 end subroutine
1278#endif
1279
1280#if CK1_ENABLED
1281 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_CK1(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1283 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_CK1
1284#endif
1285 use pm_kind, only: CKG => CK1
1286 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1287 complex(CKG) , intent(in) :: alpha, beta
1288 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1289 complex(CKG) , intent(in) , contiguous :: matB(:)
1290 complex(CKG) , intent(inout) , contiguous :: matC(:)
1291 end subroutine
1292#endif
1293
1294 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1295
1296#if RK5_ENABLED
1297 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK5(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1299 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK5
1300#endif
1301 use pm_kind, only: RKG => RK5
1302 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1303 real(RKG) , intent(in) :: alpha, beta
1304 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1305 real(RKG) , intent(in) , contiguous :: matB(:)
1306 real(RKG) , intent(inout) , contiguous :: matC(:)
1307 end subroutine
1308#endif
1309
1310#if RK4_ENABLED
1311 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK4(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1313 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK4
1314#endif
1315 use pm_kind, only: RKG => RK4
1316 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1317 real(RKG) , intent(in) :: alpha, beta
1318 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1319 real(RKG) , intent(in) , contiguous :: matB(:)
1320 real(RKG) , intent(inout) , contiguous :: matC(:)
1321 end subroutine
1322#endif
1323
1324#if RK3_ENABLED
1325 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK3(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1326#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1327 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK3
1328#endif
1329 use pm_kind, only: RKG => RK3
1330 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1331 real(RKG) , intent(in) :: alpha, beta
1332 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1333 real(RKG) , intent(in) , contiguous :: matB(:)
1334 real(RKG) , intent(inout) , contiguous :: matC(:)
1335 end subroutine
1336#endif
1337
1338#if RK2_ENABLED
1339 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK2(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1341 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK2
1342#endif
1343 use pm_kind, only: RKG => RK2
1344 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1345 real(RKG) , intent(in) :: alpha, beta
1346 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1347 real(RKG) , intent(in) , contiguous :: matB(:)
1348 real(RKG) , intent(inout) , contiguous :: matC(:)
1349 end subroutine
1350#endif
1351
1352#if RK1_ENABLED
1353 PURE module subroutine gemv_EXP_SFA_SFB_TNA_TNB_RK1(matA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1355 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TNA_TNB_RK1
1356#endif
1357 use pm_kind, only: RKG => RK1
1358 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1359 real(RKG) , intent(in) :: alpha, beta
1360 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1361 real(RKG) , intent(in) , contiguous :: matB(:)
1362 real(RKG) , intent(inout) , contiguous :: matC(:)
1363 end subroutine
1364#endif
1365
1366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1367
1368 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1370 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1371
1372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1373
1374#if IK5_ENABLED
1375 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1377 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK5
1378#endif
1379 use pm_kind, only: IKG => IK5
1380 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1381 integer(IKG) , intent(in) :: alpha, beta
1382 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1383 integer(IKG) , intent(in) , contiguous :: matB(:)
1384 integer(IKG) , intent(inout) , contiguous :: matC(:)
1385 type(transSymm_type) , intent(in) :: operationA
1386 end subroutine
1387#endif
1388
1389#if IK4_ENABLED
1390 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1392 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK4
1393#endif
1394 use pm_kind, only: IKG => IK4
1395 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1396 integer(IKG) , intent(in) :: alpha, beta
1397 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1398 integer(IKG) , intent(in) , contiguous :: matB(:)
1399 integer(IKG) , intent(inout) , contiguous :: matC(:)
1400 type(transSymm_type) , intent(in) :: operationA
1401 end subroutine
1402#endif
1403
1404#if IK3_ENABLED
1405 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1406#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1407 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK3
1408#endif
1409 use pm_kind, only: IKG => IK3
1410 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1411 integer(IKG) , intent(in) :: alpha, beta
1412 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1413 integer(IKG) , intent(in) , contiguous :: matB(:)
1414 integer(IKG) , intent(inout) , contiguous :: matC(:)
1415 type(transSymm_type) , intent(in) :: operationA
1416 end subroutine
1417#endif
1418
1419#if IK2_ENABLED
1420 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1422 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK2
1423#endif
1424 use pm_kind, only: IKG => IK2
1425 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1426 integer(IKG) , intent(in) :: alpha, beta
1427 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1428 integer(IKG) , intent(in) , contiguous :: matB(:)
1429 integer(IKG) , intent(inout) , contiguous :: matC(:)
1430 type(transSymm_type) , intent(in) :: operationA
1431 end subroutine
1432#endif
1433
1434#if IK1_ENABLED
1435 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_IK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1437 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_IK1
1438#endif
1439 use pm_kind, only: IKG => IK1
1440 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1441 integer(IKG) , intent(in) :: alpha, beta
1442 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1443 integer(IKG) , intent(in) , contiguous :: matB(:)
1444 integer(IKG) , intent(inout) , contiguous :: matC(:)
1445 type(transSymm_type) , intent(in) :: operationA
1446 end subroutine
1447#endif
1448
1449 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1450
1451#if CK5_ENABLED
1452 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1453#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1454 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK5
1455#endif
1456 use pm_kind, only: CKG => CK5
1457 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1458 complex(CKG) , intent(in) :: alpha, beta
1459 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1460 complex(CKG) , intent(in) , contiguous :: matB(:)
1461 complex(CKG) , intent(inout) , contiguous :: matC(:)
1462 type(transSymm_type) , intent(in) :: operationA
1463 end subroutine
1464#endif
1465
1466#if CK4_ENABLED
1467 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1469 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK4
1470#endif
1471 use pm_kind, only: CKG => CK4
1472 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1473 complex(CKG) , intent(in) :: alpha, beta
1474 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1475 complex(CKG) , intent(in) , contiguous :: matB(:)
1476 complex(CKG) , intent(inout) , contiguous :: matC(:)
1477 type(transSymm_type) , intent(in) :: operationA
1478 end subroutine
1479#endif
1480
1481#if CK3_ENABLED
1482 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1484 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK3
1485#endif
1486 use pm_kind, only: CKG => CK3
1487 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1488 complex(CKG) , intent(in) :: alpha, beta
1489 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1490 complex(CKG) , intent(in) , contiguous :: matB(:)
1491 complex(CKG) , intent(inout) , contiguous :: matC(:)
1492 type(transSymm_type) , intent(in) :: operationA
1493 end subroutine
1494#endif
1495
1496#if CK2_ENABLED
1497 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1499 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK2
1500#endif
1501 use pm_kind, only: CKG => CK2
1502 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1503 complex(CKG) , intent(in) :: alpha, beta
1504 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1505 complex(CKG) , intent(in) , contiguous :: matB(:)
1506 complex(CKG) , intent(inout) , contiguous :: matC(:)
1507 type(transSymm_type) , intent(in) :: operationA
1508 end subroutine
1509#endif
1510
1511#if CK1_ENABLED
1512 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_CK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1514 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_CK1
1515#endif
1516 use pm_kind, only: CKG => CK1
1517 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1518 complex(CKG) , intent(in) :: alpha, beta
1519 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1520 complex(CKG) , intent(in) , contiguous :: matB(:)
1521 complex(CKG) , intent(inout) , contiguous :: matC(:)
1522 type(transSymm_type) , intent(in) :: operationA
1523 end subroutine
1524#endif
1525
1526 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1527
1528#if RK5_ENABLED
1529 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1531 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK5
1532#endif
1533 use pm_kind, only: RKG => RK5
1534 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1535 real(RKG) , intent(in) :: alpha, beta
1536 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1537 real(RKG) , intent(in) , contiguous :: matB(:)
1538 real(RKG) , intent(inout) , contiguous :: matC(:)
1539 type(transSymm_type) , intent(in) :: operationA
1540 end subroutine
1541#endif
1542
1543#if RK4_ENABLED
1544 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1546 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK4
1547#endif
1548 use pm_kind, only: RKG => RK4
1549 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1550 real(RKG) , intent(in) :: alpha, beta
1551 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1552 real(RKG) , intent(in) , contiguous :: matB(:)
1553 real(RKG) , intent(inout) , contiguous :: matC(:)
1554 type(transSymm_type) , intent(in) :: operationA
1555 end subroutine
1556#endif
1557
1558#if RK3_ENABLED
1559 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1561 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK3
1562#endif
1563 use pm_kind, only: RKG => RK3
1564 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1565 real(RKG) , intent(in) :: alpha, beta
1566 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1567 real(RKG) , intent(in) , contiguous :: matB(:)
1568 real(RKG) , intent(inout) , contiguous :: matC(:)
1569 type(transSymm_type) , intent(in) :: operationA
1570 end subroutine
1571#endif
1572
1573#if RK2_ENABLED
1574 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1576 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK2
1577#endif
1578 use pm_kind, only: RKG => RK2
1579 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1580 real(RKG) , intent(in) :: alpha, beta
1581 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1582 real(RKG) , intent(in) , contiguous :: matB(:)
1583 real(RKG) , intent(inout) , contiguous :: matC(:)
1584 type(transSymm_type) , intent(in) :: operationA
1585 end subroutine
1586#endif
1587
1588#if RK1_ENABLED
1589 PURE module subroutine gemv_EXP_SFA_SFB_TSA_TNB_RK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1590#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1591 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_TSA_TNB_RK1
1592#endif
1593 use pm_kind, only: RKG => RK1
1594 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1595 real(RKG) , intent(in) :: alpha, beta
1596 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1597 real(RKG) , intent(in) , contiguous :: matB(:)
1598 real(RKG) , intent(inout) , contiguous :: matC(:)
1599 type(transSymm_type) , intent(in) :: operationA
1600 end subroutine
1601#endif
1602
1603 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1604
1605 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1606 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1607 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1608
1609 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1610
1611#if IK5_ENABLED
1612 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1613#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1614 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK5
1615#endif
1616 use pm_kind, only: IKG => IK5
1617 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1618 integer(IKG) , intent(in) :: alpha, beta
1619 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1620 integer(IKG) , intent(in) , contiguous :: matB(:)
1621 integer(IKG) , intent(inout) , contiguous :: matC(:)
1622 type(transHerm_type) , intent(in) :: operationA
1623 end subroutine
1624#endif
1625
1626#if IK4_ENABLED
1627 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1629 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK4
1630#endif
1631 use pm_kind, only: IKG => IK4
1632 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1633 integer(IKG) , intent(in) :: alpha, beta
1634 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1635 integer(IKG) , intent(in) , contiguous :: matB(:)
1636 integer(IKG) , intent(inout) , contiguous :: matC(:)
1637 type(transHerm_type) , intent(in) :: operationA
1638 end subroutine
1639#endif
1640
1641#if IK3_ENABLED
1642 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1644 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK3
1645#endif
1646 use pm_kind, only: IKG => IK3
1647 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1648 integer(IKG) , intent(in) :: alpha, beta
1649 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1650 integer(IKG) , intent(in) , contiguous :: matB(:)
1651 integer(IKG) , intent(inout) , contiguous :: matC(:)
1652 type(transHerm_type) , intent(in) :: operationA
1653 end subroutine
1654#endif
1655
1656#if IK2_ENABLED
1657 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1659 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK2
1660#endif
1661 use pm_kind, only: IKG => IK2
1662 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1663 integer(IKG) , intent(in) :: alpha, beta
1664 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1665 integer(IKG) , intent(in) , contiguous :: matB(:)
1666 integer(IKG) , intent(inout) , contiguous :: matC(:)
1667 type(transHerm_type) , intent(in) :: operationA
1668 end subroutine
1669#endif
1670
1671#if IK1_ENABLED
1672 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_IK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1674 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_IK1
1675#endif
1676 use pm_kind, only: IKG => IK1
1677 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1678 integer(IKG) , intent(in) :: alpha, beta
1679 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1680 integer(IKG) , intent(in) , contiguous :: matB(:)
1681 integer(IKG) , intent(inout) , contiguous :: matC(:)
1682 type(transHerm_type) , intent(in) :: operationA
1683 end subroutine
1684#endif
1685
1686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1687
1688#if CK5_ENABLED
1689 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1691 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK5
1692#endif
1693 use pm_kind, only: CKG => CK5
1694 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1695 complex(CKG) , intent(in) :: alpha, beta
1696 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1697 complex(CKG) , intent(in) , contiguous :: matB(:)
1698 complex(CKG) , intent(inout) , contiguous :: matC(:)
1699 type(transHerm_type) , intent(in) :: operationA
1700 end subroutine
1701#endif
1702
1703#if CK4_ENABLED
1704 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1705#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1706 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK4
1707#endif
1708 use pm_kind, only: CKG => CK4
1709 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1710 complex(CKG) , intent(in) :: alpha, beta
1711 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1712 complex(CKG) , intent(in) , contiguous :: matB(:)
1713 complex(CKG) , intent(inout) , contiguous :: matC(:)
1714 type(transHerm_type) , intent(in) :: operationA
1715 end subroutine
1716#endif
1717
1718#if CK3_ENABLED
1719 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1720#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1721 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK3
1722#endif
1723 use pm_kind, only: CKG => CK3
1724 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1725 complex(CKG) , intent(in) :: alpha, beta
1726 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1727 complex(CKG) , intent(in) , contiguous :: matB(:)
1728 complex(CKG) , intent(inout) , contiguous :: matC(:)
1729 type(transHerm_type) , intent(in) :: operationA
1730 end subroutine
1731#endif
1732
1733#if CK2_ENABLED
1734 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1736 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK2
1737#endif
1738 use pm_kind, only: CKG => CK2
1739 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1740 complex(CKG) , intent(in) :: alpha, beta
1741 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1742 complex(CKG) , intent(in) , contiguous :: matB(:)
1743 complex(CKG) , intent(inout) , contiguous :: matC(:)
1744 type(transHerm_type) , intent(in) :: operationA
1745 end subroutine
1746#endif
1747
1748#if CK1_ENABLED
1749 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_CK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1751 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_CK1
1752#endif
1753 use pm_kind, only: CKG => CK1
1754 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1755 complex(CKG) , intent(in) :: alpha, beta
1756 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1757 complex(CKG) , intent(in) , contiguous :: matB(:)
1758 complex(CKG) , intent(inout) , contiguous :: matC(:)
1759 type(transHerm_type) , intent(in) :: operationA
1760 end subroutine
1761#endif
1762
1763 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1764
1765#if RK5_ENABLED
1766 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK5(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1768 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK5
1769#endif
1770 use pm_kind, only: RKG => RK5
1771 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1772 real(RKG) , intent(in) :: alpha, beta
1773 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1774 real(RKG) , intent(in) , contiguous :: matB(:)
1775 real(RKG) , intent(inout) , contiguous :: matC(:)
1776 type(transHerm_type) , intent(in) :: operationA
1777 end subroutine
1778#endif
1779
1780#if RK4_ENABLED
1781 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK4(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1783 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK4
1784#endif
1785 use pm_kind, only: RKG => RK4
1786 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1787 real(RKG) , intent(in) :: alpha, beta
1788 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1789 real(RKG) , intent(in) , contiguous :: matB(:)
1790 real(RKG) , intent(inout) , contiguous :: matC(:)
1791 type(transHerm_type) , intent(in) :: operationA
1792 end subroutine
1793#endif
1794
1795#if RK3_ENABLED
1796 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK3(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1797#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1798 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK3
1799#endif
1800 use pm_kind, only: RKG => RK3
1801 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1802 real(RKG) , intent(in) :: alpha, beta
1803 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1804 real(RKG) , intent(in) , contiguous :: matB(:)
1805 real(RKG) , intent(inout) , contiguous :: matC(:)
1806 type(transHerm_type) , intent(in) :: operationA
1807 end subroutine
1808#endif
1809
1810#if RK2_ENABLED
1811 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK2(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1812#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1813 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK2
1814#endif
1815 use pm_kind, only: RKG => RK2
1816 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1817 real(RKG) , intent(in) :: alpha, beta
1818 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1819 real(RKG) , intent(in) , contiguous :: matB(:)
1820 real(RKG) , intent(inout) , contiguous :: matC(:)
1821 type(transHerm_type) , intent(in) :: operationA
1822 end subroutine
1823#endif
1824
1825#if RK1_ENABLED
1826 PURE module subroutine gemv_EXP_SFA_SFB_THA_TNB_RK1(matA, operationA, matB, matC, alpha, beta, nrow, ncol, roffA, coffA, incB, incC)
1827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1828 !DEC$ ATTRIBUTES DLLEXPORT :: gemv_EXP_SFA_SFB_THA_TNB_RK1
1829#endif
1830 use pm_kind, only: RKG => RK1
1831 integer(IK) , intent(in) :: nrow, ncol, roffA, coffA, incB, incC
1832 real(RKG) , intent(in) :: alpha, beta
1833 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
1834 real(RKG) , intent(in) , contiguous :: matB(:)
1835 real(RKG) , intent(inout) , contiguous :: matC(:)
1836 type(transHerm_type) , intent(in) :: operationA
1837 end subroutine
1838#endif
1839
1840 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1841
1842 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1843 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1844 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1845
1846 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1847 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1848 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1849
1850 end interface
1851
1852 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1853 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1854 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1855
1856 ! BLAS 2: `SSPMV`, `DSPMV`, `CSPMV`, `ZSPMV`
1857
1858 interface setMatMulAdd
1859
1860 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1861 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1862 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1863
1864 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1865
1866#if IK5_ENABLED
1867 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1868#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1869 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK5
1870#endif
1871 use pm_kind, only: IKG => IK5
1872 integer(IKG) , intent(in) , optional :: alpha, beta
1873 integer(IKG) , intent(in) , contiguous :: matA(:)
1874 integer(IKG) , intent(in) , contiguous :: matB(:)
1875 integer(IKG) , intent(inout) , contiguous :: matC(:)
1876 type(uppDia_type) , intent(in) :: subsetA
1877 type(symmetric_type) , intent(in) :: classA
1878 type(lfpack_type) , intent(in) :: packA
1879 end subroutine
1880#endif
1881
1882#if IK4_ENABLED
1883 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1885 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK4
1886#endif
1887 use pm_kind, only: IKG => IK4
1888 integer(IKG) , intent(in) , optional :: alpha, beta
1889 integer(IKG) , intent(in) , contiguous :: matA(:)
1890 integer(IKG) , intent(in) , contiguous :: matB(:)
1891 integer(IKG) , intent(inout) , contiguous :: matC(:)
1892 type(uppDia_type) , intent(in) :: subsetA
1893 type(symmetric_type) , intent(in) :: classA
1894 type(lfpack_type) , intent(in) :: packA
1895 end subroutine
1896#endif
1897
1898#if IK3_ENABLED
1899 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1901 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK3
1902#endif
1903 use pm_kind, only: IKG => IK3
1904 integer(IKG) , intent(in) , optional :: alpha, beta
1905 integer(IKG) , intent(in) , contiguous :: matA(:)
1906 integer(IKG) , intent(in) , contiguous :: matB(:)
1907 integer(IKG) , intent(inout) , contiguous :: matC(:)
1908 type(uppDia_type) , intent(in) :: subsetA
1909 type(symmetric_type) , intent(in) :: classA
1910 type(lfpack_type) , intent(in) :: packA
1911 end subroutine
1912#endif
1913
1914#if IK2_ENABLED
1915 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1916#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1917 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK2
1918#endif
1919 use pm_kind, only: IKG => IK2
1920 integer(IKG) , intent(in) , optional :: alpha, beta
1921 integer(IKG) , intent(in) , contiguous :: matA(:)
1922 integer(IKG) , intent(in) , contiguous :: matB(:)
1923 integer(IKG) , intent(inout) , contiguous :: matC(:)
1924 type(uppDia_type) , intent(in) :: subsetA
1925 type(symmetric_type) , intent(in) :: classA
1926 type(lfpack_type) , intent(in) :: packA
1927 end subroutine
1928#endif
1929
1930#if IK1_ENABLED
1931 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1932#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1933 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_IK1
1934#endif
1935 use pm_kind, only: IKG => IK1
1936 integer(IKG) , intent(in) , optional :: alpha, beta
1937 integer(IKG) , intent(in) , contiguous :: matA(:)
1938 integer(IKG) , intent(in) , contiguous :: matB(:)
1939 integer(IKG) , intent(inout) , contiguous :: matC(:)
1940 type(uppDia_type) , intent(in) :: subsetA
1941 type(symmetric_type) , intent(in) :: classA
1942 type(lfpack_type) , intent(in) :: packA
1943 end subroutine
1944#endif
1945
1946 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1947
1948#if CK5_ENABLED
1949 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1951 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK5
1952#endif
1953 use pm_kind, only: CKG => CK5
1954 complex(CKG) , intent(in) , optional :: alpha, beta
1955 complex(CKG) , intent(in) , contiguous :: matA(:)
1956 complex(CKG) , intent(in) , contiguous :: matB(:)
1957 complex(CKG) , intent(inout) , contiguous :: matC(:)
1958 type(uppDia_type) , intent(in) :: subsetA
1959 type(symmetric_type) , intent(in) :: classA
1960 type(lfpack_type) , intent(in) :: packA
1961 end subroutine
1962#endif
1963
1964#if CK4_ENABLED
1965 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1967 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK4
1968#endif
1969 use pm_kind, only: CKG => CK4
1970 complex(CKG) , intent(in) , optional :: alpha, beta
1971 complex(CKG) , intent(in) , contiguous :: matA(:)
1972 complex(CKG) , intent(in) , contiguous :: matB(:)
1973 complex(CKG) , intent(inout) , contiguous :: matC(:)
1974 type(uppDia_type) , intent(in) :: subsetA
1975 type(symmetric_type) , intent(in) :: classA
1976 type(lfpack_type) , intent(in) :: packA
1977 end subroutine
1978#endif
1979
1980#if CK3_ENABLED
1981 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1982#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1983 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK3
1984#endif
1985 use pm_kind, only: CKG => CK3
1986 complex(CKG) , intent(in) , optional :: alpha, beta
1987 complex(CKG) , intent(in) , contiguous :: matA(:)
1988 complex(CKG) , intent(in) , contiguous :: matB(:)
1989 complex(CKG) , intent(inout) , contiguous :: matC(:)
1990 type(uppDia_type) , intent(in) :: subsetA
1991 type(symmetric_type) , intent(in) :: classA
1992 type(lfpack_type) , intent(in) :: packA
1993 end subroutine
1994#endif
1995
1996#if CK2_ENABLED
1997 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
1998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1999 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK2
2000#endif
2001 use pm_kind, only: CKG => CK2
2002 complex(CKG) , intent(in) , optional :: alpha, beta
2003 complex(CKG) , intent(in) , contiguous :: matA(:)
2004 complex(CKG) , intent(in) , contiguous :: matB(:)
2005 complex(CKG) , intent(inout) , contiguous :: matC(:)
2006 type(uppDia_type) , intent(in) :: subsetA
2007 type(symmetric_type) , intent(in) :: classA
2008 type(lfpack_type) , intent(in) :: packA
2009 end subroutine
2010#endif
2011
2012#if CK1_ENABLED
2013 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2015 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_CK1
2016#endif
2017 use pm_kind, only: CKG => CK1
2018 complex(CKG) , intent(in) , optional :: alpha, beta
2019 complex(CKG) , intent(in) , contiguous :: matA(:)
2020 complex(CKG) , intent(in) , contiguous :: matB(:)
2021 complex(CKG) , intent(inout) , contiguous :: matC(:)
2022 type(uppDia_type) , intent(in) :: subsetA
2023 type(symmetric_type) , intent(in) :: classA
2024 type(lfpack_type) , intent(in) :: packA
2025 end subroutine
2026#endif
2027
2028 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2029
2030#if RK5_ENABLED
2031 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2033 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK5
2034#endif
2035 use pm_kind, only: RKG => RK5
2036 real(RKG) , intent(in) , optional :: alpha, beta
2037 real(RKG) , intent(in) , contiguous :: matA(:)
2038 real(RKG) , intent(in) , contiguous :: matB(:)
2039 real(RKG) , intent(inout) , contiguous :: matC(:)
2040 type(uppDia_type) , intent(in) :: subsetA
2041 type(symmetric_type) , intent(in) :: classA
2042 type(lfpack_type) , intent(in) :: packA
2043 end subroutine
2044#endif
2045
2046#if RK4_ENABLED
2047 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2048#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2049 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK4
2050#endif
2051 use pm_kind, only: RKG => RK4
2052 real(RKG) , intent(in) , optional :: alpha, beta
2053 real(RKG) , intent(in) , contiguous :: matA(:)
2054 real(RKG) , intent(in) , contiguous :: matB(:)
2055 real(RKG) , intent(inout) , contiguous :: matC(:)
2056 type(uppDia_type) , intent(in) :: subsetA
2057 type(symmetric_type) , intent(in) :: classA
2058 type(lfpack_type) , intent(in) :: packA
2059 end subroutine
2060#endif
2061
2062#if RK3_ENABLED
2063 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2065 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK3
2066#endif
2067 use pm_kind, only: RKG => RK3
2068 real(RKG) , intent(in) , optional :: alpha, beta
2069 real(RKG) , intent(in) , contiguous :: matA(:)
2070 real(RKG) , intent(in) , contiguous :: matB(:)
2071 real(RKG) , intent(inout) , contiguous :: matC(:)
2072 type(uppDia_type) , intent(in) :: subsetA
2073 type(symmetric_type) , intent(in) :: classA
2074 type(lfpack_type) , intent(in) :: packA
2075 end subroutine
2076#endif
2077
2078#if RK2_ENABLED
2079 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2081 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK2
2082#endif
2083 use pm_kind, only: RKG => RK2
2084 real(RKG) , intent(in) , optional :: alpha, beta
2085 real(RKG) , intent(in) , contiguous :: matA(:)
2086 real(RKG) , intent(in) , contiguous :: matB(:)
2087 real(RKG) , intent(inout) , contiguous :: matC(:)
2088 type(uppDia_type) , intent(in) :: subsetA
2089 type(symmetric_type) , intent(in) :: classA
2090 type(lfpack_type) , intent(in) :: packA
2091 end subroutine
2092#endif
2093
2094#if RK1_ENABLED
2095 PURE module subroutine spmv_ASS_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2097 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SUA_CNB_SFB_RK1
2098#endif
2099 use pm_kind, only: RKG => RK1
2100 real(RKG) , intent(in) , optional :: alpha, beta
2101 real(RKG) , intent(in) , contiguous :: matA(:)
2102 real(RKG) , intent(in) , contiguous :: matB(:)
2103 real(RKG) , intent(inout) , contiguous :: matC(:)
2104 type(uppDia_type) , intent(in) :: subsetA
2105 type(symmetric_type) , intent(in) :: classA
2106 type(lfpack_type) , intent(in) :: packA
2107 end subroutine
2108#endif
2109
2110 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2111
2112 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2113 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2114 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2115
2116 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2117
2118#if IK5_ENABLED
2119 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2121 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK5
2122#endif
2123 use pm_kind, only: IKG => IK5
2124 integer(IKG) , intent(in) , optional :: alpha, beta
2125 integer(IKG) , intent(in) , contiguous :: matA(:)
2126 integer(IKG) , intent(in) , contiguous :: matB(:)
2127 integer(IKG) , intent(inout) , contiguous :: matC(:)
2128 type(lowDia_type) , intent(in) :: subsetA
2129 type(symmetric_type) , intent(in) :: classA
2130 type(lfpack_type) , intent(in) :: packA
2131 end subroutine
2132#endif
2133
2134#if IK4_ENABLED
2135 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2137 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK4
2138#endif
2139 use pm_kind, only: IKG => IK4
2140 integer(IKG) , intent(in) , optional :: alpha, beta
2141 integer(IKG) , intent(in) , contiguous :: matA(:)
2142 integer(IKG) , intent(in) , contiguous :: matB(:)
2143 integer(IKG) , intent(inout) , contiguous :: matC(:)
2144 type(lowDia_type) , intent(in) :: subsetA
2145 type(symmetric_type) , intent(in) :: classA
2146 type(lfpack_type) , intent(in) :: packA
2147 end subroutine
2148#endif
2149
2150#if IK3_ENABLED
2151 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2153 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK3
2154#endif
2155 use pm_kind, only: IKG => IK3
2156 integer(IKG) , intent(in) , optional :: alpha, beta
2157 integer(IKG) , intent(in) , contiguous :: matA(:)
2158 integer(IKG) , intent(in) , contiguous :: matB(:)
2159 integer(IKG) , intent(inout) , contiguous :: matC(:)
2160 type(lowDia_type) , intent(in) :: subsetA
2161 type(symmetric_type) , intent(in) :: classA
2162 type(lfpack_type) , intent(in) :: packA
2163 end subroutine
2164#endif
2165
2166#if IK2_ENABLED
2167 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2169 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK2
2170#endif
2171 use pm_kind, only: IKG => IK2
2172 integer(IKG) , intent(in) , optional :: alpha, beta
2173 integer(IKG) , intent(in) , contiguous :: matA(:)
2174 integer(IKG) , intent(in) , contiguous :: matB(:)
2175 integer(IKG) , intent(inout) , contiguous :: matC(:)
2176 type(lowDia_type) , intent(in) :: subsetA
2177 type(symmetric_type) , intent(in) :: classA
2178 type(lfpack_type) , intent(in) :: packA
2179 end subroutine
2180#endif
2181
2182#if IK1_ENABLED
2183 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2184#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2185 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_IK1
2186#endif
2187 use pm_kind, only: IKG => IK1
2188 integer(IKG) , intent(in) , optional :: alpha, beta
2189 integer(IKG) , intent(in) , contiguous :: matA(:)
2190 integer(IKG) , intent(in) , contiguous :: matB(:)
2191 integer(IKG) , intent(inout) , contiguous :: matC(:)
2192 type(lowDia_type) , intent(in) :: subsetA
2193 type(symmetric_type) , intent(in) :: classA
2194 type(lfpack_type) , intent(in) :: packA
2195 end subroutine
2196#endif
2197
2198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2199
2200#if CK5_ENABLED
2201 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2203 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK5
2204#endif
2205 use pm_kind, only: CKG => CK5
2206 complex(CKG) , intent(in) , optional :: alpha, beta
2207 complex(CKG) , intent(in) , contiguous :: matA(:)
2208 complex(CKG) , intent(in) , contiguous :: matB(:)
2209 complex(CKG) , intent(inout) , contiguous :: matC(:)
2210 type(lowDia_type) , intent(in) :: subsetA
2211 type(symmetric_type) , intent(in) :: classA
2212 type(lfpack_type) , intent(in) :: packA
2213 end subroutine
2214#endif
2215
2216#if CK4_ENABLED
2217 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2219 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK4
2220#endif
2221 use pm_kind, only: CKG => CK4
2222 complex(CKG) , intent(in) , optional :: alpha, beta
2223 complex(CKG) , intent(in) , contiguous :: matA(:)
2224 complex(CKG) , intent(in) , contiguous :: matB(:)
2225 complex(CKG) , intent(inout) , contiguous :: matC(:)
2226 type(lowDia_type) , intent(in) :: subsetA
2227 type(symmetric_type) , intent(in) :: classA
2228 type(lfpack_type) , intent(in) :: packA
2229 end subroutine
2230#endif
2231
2232#if CK3_ENABLED
2233 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2234#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2235 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK3
2236#endif
2237 use pm_kind, only: CKG => CK3
2238 complex(CKG) , intent(in) , optional :: alpha, beta
2239 complex(CKG) , intent(in) , contiguous :: matA(:)
2240 complex(CKG) , intent(in) , contiguous :: matB(:)
2241 complex(CKG) , intent(inout) , contiguous :: matC(:)
2242 type(lowDia_type) , intent(in) :: subsetA
2243 type(symmetric_type) , intent(in) :: classA
2244 type(lfpack_type) , intent(in) :: packA
2245 end subroutine
2246#endif
2247
2248#if CK2_ENABLED
2249 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2250#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2251 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK2
2252#endif
2253 use pm_kind, only: CKG => CK2
2254 complex(CKG) , intent(in) , optional :: alpha, beta
2255 complex(CKG) , intent(in) , contiguous :: matA(:)
2256 complex(CKG) , intent(in) , contiguous :: matB(:)
2257 complex(CKG) , intent(inout) , contiguous :: matC(:)
2258 type(lowDia_type) , intent(in) :: subsetA
2259 type(symmetric_type) , intent(in) :: classA
2260 type(lfpack_type) , intent(in) :: packA
2261 end subroutine
2262#endif
2263
2264#if CK1_ENABLED
2265 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2267 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_CK1
2268#endif
2269 use pm_kind, only: CKG => CK1
2270 complex(CKG) , intent(in) , optional :: alpha, beta
2271 complex(CKG) , intent(in) , contiguous :: matA(:)
2272 complex(CKG) , intent(in) , contiguous :: matB(:)
2273 complex(CKG) , intent(inout) , contiguous :: matC(:)
2274 type(lowDia_type) , intent(in) :: subsetA
2275 type(symmetric_type) , intent(in) :: classA
2276 type(lfpack_type) , intent(in) :: packA
2277 end subroutine
2278#endif
2279
2280 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2281
2282#if RK5_ENABLED
2283 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2285 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK5
2286#endif
2287 use pm_kind, only: RKG => RK5
2288 real(RKG) , intent(in) , optional :: alpha, beta
2289 real(RKG) , intent(in) , contiguous :: matA(:)
2290 real(RKG) , intent(in) , contiguous :: matB(:)
2291 real(RKG) , intent(inout) , contiguous :: matC(:)
2292 type(lowDia_type) , intent(in) :: subsetA
2293 type(symmetric_type) , intent(in) :: classA
2294 type(lfpack_type) , intent(in) :: packA
2295 end subroutine
2296#endif
2297
2298#if RK4_ENABLED
2299 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2301 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK4
2302#endif
2303 use pm_kind, only: RKG => RK4
2304 real(RKG) , intent(in) , optional :: alpha, beta
2305 real(RKG) , intent(in) , contiguous :: matA(:)
2306 real(RKG) , intent(in) , contiguous :: matB(:)
2307 real(RKG) , intent(inout) , contiguous :: matC(:)
2308 type(lowDia_type) , intent(in) :: subsetA
2309 type(symmetric_type) , intent(in) :: classA
2310 type(lfpack_type) , intent(in) :: packA
2311 end subroutine
2312#endif
2313
2314#if RK3_ENABLED
2315 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2317 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK3
2318#endif
2319 use pm_kind, only: RKG => RK3
2320 real(RKG) , intent(in) , optional :: alpha, beta
2321 real(RKG) , intent(in) , contiguous :: matA(:)
2322 real(RKG) , intent(in) , contiguous :: matB(:)
2323 real(RKG) , intent(inout) , contiguous :: matC(:)
2324 type(lowDia_type) , intent(in) :: subsetA
2325 type(symmetric_type) , intent(in) :: classA
2326 type(lfpack_type) , intent(in) :: packA
2327 end subroutine
2328#endif
2329
2330#if RK2_ENABLED
2331 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2333 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK2
2334#endif
2335 use pm_kind, only: RKG => RK2
2336 real(RKG) , intent(in) , optional :: alpha, beta
2337 real(RKG) , intent(in) , contiguous :: matA(:)
2338 real(RKG) , intent(in) , contiguous :: matB(:)
2339 real(RKG) , intent(inout) , contiguous :: matC(:)
2340 type(lowDia_type) , intent(in) :: subsetA
2341 type(symmetric_type) , intent(in) :: classA
2342 type(lfpack_type) , intent(in) :: packA
2343 end subroutine
2344#endif
2345
2346#if RK1_ENABLED
2347 PURE module subroutine spmv_ASS_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2348#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2349 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_ASS_CSA_SLA_CNB_SFB_RK1
2350#endif
2351 use pm_kind, only: RKG => RK1
2352 real(RKG) , intent(in) , optional :: alpha, beta
2353 real(RKG) , intent(in) , contiguous :: matA(:)
2354 real(RKG) , intent(in) , contiguous :: matB(:)
2355 real(RKG) , intent(inout) , contiguous :: matC(:)
2356 type(lowDia_type) , intent(in) :: subsetA
2357 type(symmetric_type) , intent(in) :: classA
2358 type(lfpack_type) , intent(in) :: packA
2359 end subroutine
2360#endif
2361
2362 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2363
2364 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2365 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2366 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2367
2368 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2369 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2370 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2371
2372 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2373
2374#if IK5_ENABLED
2375 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2377 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK5
2378#endif
2379 use pm_kind, only: IKG => IK5
2380 integer(IK) , intent(in) :: ndim, incB, incC
2381 integer(IKG) , intent(in) :: alpha, beta
2382 integer(IKG) , intent(in) , contiguous :: matA(:)
2383 integer(IKG) , intent(in) , contiguous :: matB(:)
2384 integer(IKG) , intent(inout) , contiguous :: matC(:)
2385 type(uppDia_type) , intent(in) :: subsetA
2386 type(symmetric_type) , intent(in) :: classA
2387 type(lfpack_type) , intent(in) :: packA
2388 end subroutine
2389#endif
2390
2391#if IK4_ENABLED
2392 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2394 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK4
2395#endif
2396 use pm_kind, only: IKG => IK4
2397 integer(IK) , intent(in) :: ndim, incB, incC
2398 integer(IKG) , intent(in) :: alpha, beta
2399 integer(IKG) , intent(in) , contiguous :: matA(:)
2400 integer(IKG) , intent(in) , contiguous :: matB(:)
2401 integer(IKG) , intent(inout) , contiguous :: matC(:)
2402 type(uppDia_type) , intent(in) :: subsetA
2403 type(symmetric_type) , intent(in) :: classA
2404 type(lfpack_type) , intent(in) :: packA
2405 end subroutine
2406#endif
2407
2408#if IK3_ENABLED
2409 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2411 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK3
2412#endif
2413 use pm_kind, only: IKG => IK3
2414 integer(IK) , intent(in) :: ndim, incB, incC
2415 integer(IKG) , intent(in) :: alpha, beta
2416 integer(IKG) , intent(in) , contiguous :: matA(:)
2417 integer(IKG) , intent(in) , contiguous :: matB(:)
2418 integer(IKG) , intent(inout) , contiguous :: matC(:)
2419 type(uppDia_type) , intent(in) :: subsetA
2420 type(symmetric_type) , intent(in) :: classA
2421 type(lfpack_type) , intent(in) :: packA
2422 end subroutine
2423#endif
2424
2425#if IK2_ENABLED
2426 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2428 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK2
2429#endif
2430 use pm_kind, only: IKG => IK2
2431 integer(IK) , intent(in) :: ndim, incB, incC
2432 integer(IKG) , intent(in) :: alpha, beta
2433 integer(IKG) , intent(in) , contiguous :: matA(:)
2434 integer(IKG) , intent(in) , contiguous :: matB(:)
2435 integer(IKG) , intent(inout) , contiguous :: matC(:)
2436 type(uppDia_type) , intent(in) :: subsetA
2437 type(symmetric_type) , intent(in) :: classA
2438 type(lfpack_type) , intent(in) :: packA
2439 end subroutine
2440#endif
2441
2442#if IK1_ENABLED
2443 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2444#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2445 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_IK1
2446#endif
2447 use pm_kind, only: IKG => IK1
2448 integer(IK) , intent(in) :: ndim, incB, incC
2449 integer(IKG) , intent(in) :: alpha, beta
2450 integer(IKG) , intent(in) , contiguous :: matA(:)
2451 integer(IKG) , intent(in) , contiguous :: matB(:)
2452 integer(IKG) , intent(inout) , contiguous :: matC(:)
2453 type(uppDia_type) , intent(in) :: subsetA
2454 type(symmetric_type) , intent(in) :: classA
2455 type(lfpack_type) , intent(in) :: packA
2456 end subroutine
2457#endif
2458
2459 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2460
2461#if CK5_ENABLED
2462 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2464 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK5
2465#endif
2466 use pm_kind, only: CKG => CK5
2467 integer(IK) , intent(in) :: ndim, incB, incC
2468 complex(CKG) , intent(in) :: alpha, beta
2469 complex(CKG) , intent(in) , contiguous :: matA(:)
2470 complex(CKG) , intent(in) , contiguous :: matB(:)
2471 complex(CKG) , intent(inout) , contiguous :: matC(:)
2472 type(uppDia_type) , intent(in) :: subsetA
2473 type(symmetric_type) , intent(in) :: classA
2474 type(lfpack_type) , intent(in) :: packA
2475 end subroutine
2476#endif
2477
2478#if CK4_ENABLED
2479 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2481 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK4
2482#endif
2483 use pm_kind, only: CKG => CK4
2484 integer(IK) , intent(in) :: ndim, incB, incC
2485 complex(CKG) , intent(in) :: alpha, beta
2486 complex(CKG) , intent(in) , contiguous :: matA(:)
2487 complex(CKG) , intent(in) , contiguous :: matB(:)
2488 complex(CKG) , intent(inout) , contiguous :: matC(:)
2489 type(uppDia_type) , intent(in) :: subsetA
2490 type(symmetric_type) , intent(in) :: classA
2491 type(lfpack_type) , intent(in) :: packA
2492 end subroutine
2493#endif
2494
2495#if CK3_ENABLED
2496 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2498 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK3
2499#endif
2500 use pm_kind, only: CKG => CK3
2501 integer(IK) , intent(in) :: ndim, incB, incC
2502 complex(CKG) , intent(in) :: alpha, beta
2503 complex(CKG) , intent(in) , contiguous :: matA(:)
2504 complex(CKG) , intent(in) , contiguous :: matB(:)
2505 complex(CKG) , intent(inout) , contiguous :: matC(:)
2506 type(uppDia_type) , intent(in) :: subsetA
2507 type(symmetric_type) , intent(in) :: classA
2508 type(lfpack_type) , intent(in) :: packA
2509 end subroutine
2510#endif
2511
2512#if CK2_ENABLED
2513 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2515 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK2
2516#endif
2517 use pm_kind, only: CKG => CK2
2518 integer(IK) , intent(in) :: ndim, incB, incC
2519 complex(CKG) , intent(in) :: alpha, beta
2520 complex(CKG) , intent(in) , contiguous :: matA(:)
2521 complex(CKG) , intent(in) , contiguous :: matB(:)
2522 complex(CKG) , intent(inout) , contiguous :: matC(:)
2523 type(uppDia_type) , intent(in) :: subsetA
2524 type(symmetric_type) , intent(in) :: classA
2525 type(lfpack_type) , intent(in) :: packA
2526 end subroutine
2527#endif
2528
2529#if CK1_ENABLED
2530 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2532 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_CK1
2533#endif
2534 use pm_kind, only: CKG => CK1
2535 integer(IK) , intent(in) :: ndim, incB, incC
2536 complex(CKG) , intent(in) :: alpha, beta
2537 complex(CKG) , intent(in) , contiguous :: matA(:)
2538 complex(CKG) , intent(in) , contiguous :: matB(:)
2539 complex(CKG) , intent(inout) , contiguous :: matC(:)
2540 type(uppDia_type) , intent(in) :: subsetA
2541 type(symmetric_type) , intent(in) :: classA
2542 type(lfpack_type) , intent(in) :: packA
2543 end subroutine
2544#endif
2545
2546 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2547
2548#if RK5_ENABLED
2549 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2551 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK5
2552#endif
2553 use pm_kind, only: RKG => RK5
2554 integer(IK) , intent(in) :: ndim, incB, incC
2555 real(RKG) , intent(in) :: alpha, beta
2556 real(RKG) , intent(in) , contiguous :: matA(:)
2557 real(RKG) , intent(in) , contiguous :: matB(:)
2558 real(RKG) , intent(inout) , contiguous :: matC(:)
2559 type(uppDia_type) , intent(in) :: subsetA
2560 type(symmetric_type) , intent(in) :: classA
2561 type(lfpack_type) , intent(in) :: packA
2562 end subroutine
2563#endif
2564
2565#if RK4_ENABLED
2566 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2568 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK4
2569#endif
2570 use pm_kind, only: RKG => RK4
2571 integer(IK) , intent(in) :: ndim, incB, incC
2572 real(RKG) , intent(in) :: alpha, beta
2573 real(RKG) , intent(in) , contiguous :: matA(:)
2574 real(RKG) , intent(in) , contiguous :: matB(:)
2575 real(RKG) , intent(inout) , contiguous :: matC(:)
2576 type(uppDia_type) , intent(in) :: subsetA
2577 type(symmetric_type) , intent(in) :: classA
2578 type(lfpack_type) , intent(in) :: packA
2579 end subroutine
2580#endif
2581
2582#if RK3_ENABLED
2583 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2584#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2585 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK3
2586#endif
2587 use pm_kind, only: RKG => RK3
2588 integer(IK) , intent(in) :: ndim, incB, incC
2589 real(RKG) , intent(in) :: alpha, beta
2590 real(RKG) , intent(in) , contiguous :: matA(:)
2591 real(RKG) , intent(in) , contiguous :: matB(:)
2592 real(RKG) , intent(inout) , contiguous :: matC(:)
2593 type(uppDia_type) , intent(in) :: subsetA
2594 type(symmetric_type) , intent(in) :: classA
2595 type(lfpack_type) , intent(in) :: packA
2596 end subroutine
2597#endif
2598
2599#if RK2_ENABLED
2600 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2601#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2602 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK2
2603#endif
2604 use pm_kind, only: RKG => RK2
2605 integer(IK) , intent(in) :: ndim, incB, incC
2606 real(RKG) , intent(in) :: alpha, beta
2607 real(RKG) , intent(in) , contiguous :: matA(:)
2608 real(RKG) , intent(in) , contiguous :: matB(:)
2609 real(RKG) , intent(inout) , contiguous :: matC(:)
2610 type(uppDia_type) , intent(in) :: subsetA
2611 type(symmetric_type) , intent(in) :: classA
2612 type(lfpack_type) , intent(in) :: packA
2613 end subroutine
2614#endif
2615
2616#if RK1_ENABLED
2617 PURE module subroutine spmv_EXP_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2619 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SUA_CNB_SFB_RK1
2620#endif
2621 use pm_kind, only: RKG => RK1
2622 integer(IK) , intent(in) :: ndim, incB, incC
2623 real(RKG) , intent(in) :: alpha, beta
2624 real(RKG) , intent(in) , contiguous :: matA(:)
2625 real(RKG) , intent(in) , contiguous :: matB(:)
2626 real(RKG) , intent(inout) , contiguous :: matC(:)
2627 type(uppDia_type) , intent(in) :: subsetA
2628 type(symmetric_type) , intent(in) :: classA
2629 type(lfpack_type) , intent(in) :: packA
2630 end subroutine
2631#endif
2632
2633 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2634
2635 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2636 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2637 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2638
2639 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2640
2641#if IK5_ENABLED
2642 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2643#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2644 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK5
2645#endif
2646 use pm_kind, only: IKG => IK5
2647 integer(IK) , intent(in) :: ndim, incB, incC
2648 integer(IKG) , intent(in) :: alpha, beta
2649 integer(IKG) , intent(in) , contiguous :: matA(:)
2650 integer(IKG) , intent(in) , contiguous :: matB(:)
2651 integer(IKG) , intent(inout) , contiguous :: matC(:)
2652 type(lowDia_type) , intent(in) :: subsetA
2653 type(symmetric_type) , intent(in) :: classA
2654 type(lfpack_type) , intent(in) :: packA
2655 end subroutine
2656#endif
2657
2658#if IK4_ENABLED
2659 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2661 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK4
2662#endif
2663 use pm_kind, only: IKG => IK4
2664 integer(IK) , intent(in) :: ndim, incB, incC
2665 integer(IKG) , intent(in) :: alpha, beta
2666 integer(IKG) , intent(in) , contiguous :: matA(:)
2667 integer(IKG) , intent(in) , contiguous :: matB(:)
2668 integer(IKG) , intent(inout) , contiguous :: matC(:)
2669 type(lowDia_type) , intent(in) :: subsetA
2670 type(symmetric_type) , intent(in) :: classA
2671 type(lfpack_type) , intent(in) :: packA
2672 end subroutine
2673#endif
2674
2675#if IK3_ENABLED
2676 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2678 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK3
2679#endif
2680 use pm_kind, only: IKG => IK3
2681 integer(IK) , intent(in) :: ndim, incB, incC
2682 integer(IKG) , intent(in) :: alpha, beta
2683 integer(IKG) , intent(in) , contiguous :: matA(:)
2684 integer(IKG) , intent(in) , contiguous :: matB(:)
2685 integer(IKG) , intent(inout) , contiguous :: matC(:)
2686 type(lowDia_type) , intent(in) :: subsetA
2687 type(symmetric_type) , intent(in) :: classA
2688 type(lfpack_type) , intent(in) :: packA
2689 end subroutine
2690#endif
2691
2692#if IK2_ENABLED
2693 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2694#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2695 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK2
2696#endif
2697 use pm_kind, only: IKG => IK2
2698 integer(IK) , intent(in) :: ndim, incB, incC
2699 integer(IKG) , intent(in) :: alpha, beta
2700 integer(IKG) , intent(in) , contiguous :: matA(:)
2701 integer(IKG) , intent(in) , contiguous :: matB(:)
2702 integer(IKG) , intent(inout) , contiguous :: matC(:)
2703 type(lowDia_type) , intent(in) :: subsetA
2704 type(symmetric_type) , intent(in) :: classA
2705 type(lfpack_type) , intent(in) :: packA
2706 end subroutine
2707#endif
2708
2709#if IK1_ENABLED
2710 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2711#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2712 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_IK1
2713#endif
2714 use pm_kind, only: IKG => IK1
2715 integer(IK) , intent(in) :: ndim, incB, incC
2716 integer(IKG) , intent(in) :: alpha, beta
2717 integer(IKG) , intent(in) , contiguous :: matA(:)
2718 integer(IKG) , intent(in) , contiguous :: matB(:)
2719 integer(IKG) , intent(inout) , contiguous :: matC(:)
2720 type(lowDia_type) , intent(in) :: subsetA
2721 type(symmetric_type) , intent(in) :: classA
2722 type(lfpack_type) , intent(in) :: packA
2723 end subroutine
2724#endif
2725
2726 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2727
2728#if CK5_ENABLED
2729 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2730#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2731 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK5
2732#endif
2733 use pm_kind, only: CKG => CK5
2734 integer(IK) , intent(in) :: ndim, incB, incC
2735 complex(CKG) , intent(in) :: alpha, beta
2736 complex(CKG) , intent(in) , contiguous :: matA(:)
2737 complex(CKG) , intent(in) , contiguous :: matB(:)
2738 complex(CKG) , intent(inout) , contiguous :: matC(:)
2739 type(lowDia_type) , intent(in) :: subsetA
2740 type(symmetric_type) , intent(in) :: classA
2741 type(lfpack_type) , intent(in) :: packA
2742 end subroutine
2743#endif
2744
2745#if CK4_ENABLED
2746 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2747#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2748 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK4
2749#endif
2750 use pm_kind, only: CKG => CK4
2751 integer(IK) , intent(in) :: ndim, incB, incC
2752 complex(CKG) , intent(in) :: alpha, beta
2753 complex(CKG) , intent(in) , contiguous :: matA(:)
2754 complex(CKG) , intent(in) , contiguous :: matB(:)
2755 complex(CKG) , intent(inout) , contiguous :: matC(:)
2756 type(lowDia_type) , intent(in) :: subsetA
2757 type(symmetric_type) , intent(in) :: classA
2758 type(lfpack_type) , intent(in) :: packA
2759 end subroutine
2760#endif
2761
2762#if CK3_ENABLED
2763 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2765 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK3
2766#endif
2767 use pm_kind, only: CKG => CK3
2768 integer(IK) , intent(in) :: ndim, incB, incC
2769 complex(CKG) , intent(in) :: alpha, beta
2770 complex(CKG) , intent(in) , contiguous :: matA(:)
2771 complex(CKG) , intent(in) , contiguous :: matB(:)
2772 complex(CKG) , intent(inout) , contiguous :: matC(:)
2773 type(lowDia_type) , intent(in) :: subsetA
2774 type(symmetric_type) , intent(in) :: classA
2775 type(lfpack_type) , intent(in) :: packA
2776 end subroutine
2777#endif
2778
2779#if CK2_ENABLED
2780 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2782 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK2
2783#endif
2784 use pm_kind, only: CKG => CK2
2785 integer(IK) , intent(in) :: ndim, incB, incC
2786 complex(CKG) , intent(in) :: alpha, beta
2787 complex(CKG) , intent(in) , contiguous :: matA(:)
2788 complex(CKG) , intent(in) , contiguous :: matB(:)
2789 complex(CKG) , intent(inout) , contiguous :: matC(:)
2790 type(lowDia_type) , intent(in) :: subsetA
2791 type(symmetric_type) , intent(in) :: classA
2792 type(lfpack_type) , intent(in) :: packA
2793 end subroutine
2794#endif
2795
2796#if CK1_ENABLED
2797 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2799 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_CK1
2800#endif
2801 use pm_kind, only: CKG => CK1
2802 integer(IK) , intent(in) :: ndim, incB, incC
2803 complex(CKG) , intent(in) :: alpha, beta
2804 complex(CKG) , intent(in) , contiguous :: matA(:)
2805 complex(CKG) , intent(in) , contiguous :: matB(:)
2806 complex(CKG) , intent(inout) , contiguous :: matC(:)
2807 type(lowDia_type) , intent(in) :: subsetA
2808 type(symmetric_type) , intent(in) :: classA
2809 type(lfpack_type) , intent(in) :: packA
2810 end subroutine
2811#endif
2812
2813 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2814
2815#if RK5_ENABLED
2816 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2818 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK5
2819#endif
2820 use pm_kind, only: RKG => RK5
2821 integer(IK) , intent(in) :: ndim, incB, incC
2822 real(RKG) , intent(in) :: alpha, beta
2823 real(RKG) , intent(in) , contiguous :: matA(:)
2824 real(RKG) , intent(in) , contiguous :: matB(:)
2825 real(RKG) , intent(inout) , contiguous :: matC(:)
2826 type(lowDia_type) , intent(in) :: subsetA
2827 type(symmetric_type) , intent(in) :: classA
2828 type(lfpack_type) , intent(in) :: packA
2829 end subroutine
2830#endif
2831
2832#if RK4_ENABLED
2833 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2834#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2835 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK4
2836#endif
2837 use pm_kind, only: RKG => RK4
2838 integer(IK) , intent(in) :: ndim, incB, incC
2839 real(RKG) , intent(in) :: alpha, beta
2840 real(RKG) , intent(in) , contiguous :: matA(:)
2841 real(RKG) , intent(in) , contiguous :: matB(:)
2842 real(RKG) , intent(inout) , contiguous :: matC(:)
2843 type(lowDia_type) , intent(in) :: subsetA
2844 type(symmetric_type) , intent(in) :: classA
2845 type(lfpack_type) , intent(in) :: packA
2846 end subroutine
2847#endif
2848
2849#if RK3_ENABLED
2850 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2851#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2852 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK3
2853#endif
2854 use pm_kind, only: RKG => RK3
2855 integer(IK) , intent(in) :: ndim, incB, incC
2856 real(RKG) , intent(in) :: alpha, beta
2857 real(RKG) , intent(in) , contiguous :: matA(:)
2858 real(RKG) , intent(in) , contiguous :: matB(:)
2859 real(RKG) , intent(inout) , contiguous :: matC(:)
2860 type(lowDia_type) , intent(in) :: subsetA
2861 type(symmetric_type) , intent(in) :: classA
2862 type(lfpack_type) , intent(in) :: packA
2863 end subroutine
2864#endif
2865
2866#if RK2_ENABLED
2867 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2868#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2869 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK2
2870#endif
2871 use pm_kind, only: RKG => RK2
2872 integer(IK) , intent(in) :: ndim, incB, incC
2873 real(RKG) , intent(in) :: alpha, beta
2874 real(RKG) , intent(in) , contiguous :: matA(:)
2875 real(RKG) , intent(in) , contiguous :: matB(:)
2876 real(RKG) , intent(inout) , contiguous :: matC(:)
2877 type(lowDia_type) , intent(in) :: subsetA
2878 type(symmetric_type) , intent(in) :: classA
2879 type(lfpack_type) , intent(in) :: packA
2880 end subroutine
2881#endif
2882
2883#if RK1_ENABLED
2884 PURE module subroutine spmv_EXP_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
2885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2886 !DEC$ ATTRIBUTES DLLEXPORT :: spmv_EXP_CSA_SLA_CNB_SFB_RK1
2887#endif
2888 use pm_kind, only: RKG => RK1
2889 integer(IK) , intent(in) :: ndim, incB, incC
2890 real(RKG) , intent(in) :: alpha, beta
2891 real(RKG) , intent(in) , contiguous :: matA(:)
2892 real(RKG) , intent(in) , contiguous :: matB(:)
2893 real(RKG) , intent(inout) , contiguous :: matC(:)
2894 type(lowDia_type) , intent(in) :: subsetA
2895 type(symmetric_type) , intent(in) :: classA
2896 type(lfpack_type) , intent(in) :: packA
2897 end subroutine
2898#endif
2899
2900 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2901
2902 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2903 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2904 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2905
2906 end interface
2907
2908 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2909 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2910 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2911
2912 ! BLAS 2: `SHPMV`, `DHPMV`, `CHPMV`, `ZHPMV`
2913
2914 interface setMatMulAdd
2915
2916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2919
2920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2921
2922#if IK5_ENABLED
2923 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2925 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK5
2926#endif
2927 use pm_kind, only: IKG => IK5
2928 integer(IKG) , intent(in) , optional :: alpha, beta
2929 integer(IKG) , intent(in) , contiguous :: matA(:)
2930 integer(IKG) , intent(in) , contiguous :: matB(:)
2931 integer(IKG) , intent(inout) , contiguous :: matC(:)
2932 type(uppDia_type) , intent(in) :: subsetA
2933 type(hermitian_type) , intent(in) :: classA
2934 type(lfpack_type) , intent(in) :: packA
2935 end subroutine
2936#endif
2937
2938#if IK4_ENABLED
2939 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2940#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2941 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK4
2942#endif
2943 use pm_kind, only: IKG => IK4
2944 integer(IKG) , intent(in) , optional :: alpha, beta
2945 integer(IKG) , intent(in) , contiguous :: matA(:)
2946 integer(IKG) , intent(in) , contiguous :: matB(:)
2947 integer(IKG) , intent(inout) , contiguous :: matC(:)
2948 type(uppDia_type) , intent(in) :: subsetA
2949 type(hermitian_type) , intent(in) :: classA
2950 type(lfpack_type) , intent(in) :: packA
2951 end subroutine
2952#endif
2953
2954#if IK3_ENABLED
2955 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2956#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2957 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK3
2958#endif
2959 use pm_kind, only: IKG => IK3
2960 integer(IKG) , intent(in) , optional :: alpha, beta
2961 integer(IKG) , intent(in) , contiguous :: matA(:)
2962 integer(IKG) , intent(in) , contiguous :: matB(:)
2963 integer(IKG) , intent(inout) , contiguous :: matC(:)
2964 type(uppDia_type) , intent(in) :: subsetA
2965 type(hermitian_type) , intent(in) :: classA
2966 type(lfpack_type) , intent(in) :: packA
2967 end subroutine
2968#endif
2969
2970#if IK2_ENABLED
2971 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2973 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK2
2974#endif
2975 use pm_kind, only: IKG => IK2
2976 integer(IKG) , intent(in) , optional :: alpha, beta
2977 integer(IKG) , intent(in) , contiguous :: matA(:)
2978 integer(IKG) , intent(in) , contiguous :: matB(:)
2979 integer(IKG) , intent(inout) , contiguous :: matC(:)
2980 type(uppDia_type) , intent(in) :: subsetA
2981 type(hermitian_type) , intent(in) :: classA
2982 type(lfpack_type) , intent(in) :: packA
2983 end subroutine
2984#endif
2985
2986#if IK1_ENABLED
2987 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
2988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2989 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_IK1
2990#endif
2991 use pm_kind, only: IKG => IK1
2992 integer(IKG) , intent(in) , optional :: alpha, beta
2993 integer(IKG) , intent(in) , contiguous :: matA(:)
2994 integer(IKG) , intent(in) , contiguous :: matB(:)
2995 integer(IKG) , intent(inout) , contiguous :: matC(:)
2996 type(uppDia_type) , intent(in) :: subsetA
2997 type(hermitian_type) , intent(in) :: classA
2998 type(lfpack_type) , intent(in) :: packA
2999 end subroutine
3000#endif
3001
3002 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3003
3004#if CK5_ENABLED
3005 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3006#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3007 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK5
3008#endif
3009 use pm_kind, only: CKG => CK5
3010 complex(CKG) , intent(in) , optional :: alpha, beta
3011 complex(CKG) , intent(in) , contiguous :: matA(:)
3012 complex(CKG) , intent(in) , contiguous :: matB(:)
3013 complex(CKG) , intent(inout) , contiguous :: matC(:)
3014 type(uppDia_type) , intent(in) :: subsetA
3015 type(hermitian_type) , intent(in) :: classA
3016 type(lfpack_type) , intent(in) :: packA
3017 end subroutine
3018#endif
3019
3020#if CK4_ENABLED
3021 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3022#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3023 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK4
3024#endif
3025 use pm_kind, only: CKG => CK4
3026 complex(CKG) , intent(in) , optional :: alpha, beta
3027 complex(CKG) , intent(in) , contiguous :: matA(:)
3028 complex(CKG) , intent(in) , contiguous :: matB(:)
3029 complex(CKG) , intent(inout) , contiguous :: matC(:)
3030 type(uppDia_type) , intent(in) :: subsetA
3031 type(hermitian_type) , intent(in) :: classA
3032 type(lfpack_type) , intent(in) :: packA
3033 end subroutine
3034#endif
3035
3036#if CK3_ENABLED
3037 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3039 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK3
3040#endif
3041 use pm_kind, only: CKG => CK3
3042 complex(CKG) , intent(in) , optional :: alpha, beta
3043 complex(CKG) , intent(in) , contiguous :: matA(:)
3044 complex(CKG) , intent(in) , contiguous :: matB(:)
3045 complex(CKG) , intent(inout) , contiguous :: matC(:)
3046 type(uppDia_type) , intent(in) :: subsetA
3047 type(hermitian_type) , intent(in) :: classA
3048 type(lfpack_type) , intent(in) :: packA
3049 end subroutine
3050#endif
3051
3052#if CK2_ENABLED
3053 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3054#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3055 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK2
3056#endif
3057 use pm_kind, only: CKG => CK2
3058 complex(CKG) , intent(in) , optional :: alpha, beta
3059 complex(CKG) , intent(in) , contiguous :: matA(:)
3060 complex(CKG) , intent(in) , contiguous :: matB(:)
3061 complex(CKG) , intent(inout) , contiguous :: matC(:)
3062 type(uppDia_type) , intent(in) :: subsetA
3063 type(hermitian_type) , intent(in) :: classA
3064 type(lfpack_type) , intent(in) :: packA
3065 end subroutine
3066#endif
3067
3068#if CK1_ENABLED
3069 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3070#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3071 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_CK1
3072#endif
3073 use pm_kind, only: CKG => CK1
3074 complex(CKG) , intent(in) , optional :: alpha, beta
3075 complex(CKG) , intent(in) , contiguous :: matA(:)
3076 complex(CKG) , intent(in) , contiguous :: matB(:)
3077 complex(CKG) , intent(inout) , contiguous :: matC(:)
3078 type(uppDia_type) , intent(in) :: subsetA
3079 type(hermitian_type) , intent(in) :: classA
3080 type(lfpack_type) , intent(in) :: packA
3081 end subroutine
3082#endif
3083
3084 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3085
3086#if RK5_ENABLED
3087 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3088#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3089 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK5
3090#endif
3091 use pm_kind, only: RKG => RK5
3092 real(RKG) , intent(in) , optional :: alpha, beta
3093 real(RKG) , intent(in) , contiguous :: matA(:)
3094 real(RKG) , intent(in) , contiguous :: matB(:)
3095 real(RKG) , intent(inout) , contiguous :: matC(:)
3096 type(uppDia_type) , intent(in) :: subsetA
3097 type(hermitian_type) , intent(in) :: classA
3098 type(lfpack_type) , intent(in) :: packA
3099 end subroutine
3100#endif
3101
3102#if RK4_ENABLED
3103 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3104#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3105 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK4
3106#endif
3107 use pm_kind, only: RKG => RK4
3108 real(RKG) , intent(in) , optional :: alpha, beta
3109 real(RKG) , intent(in) , contiguous :: matA(:)
3110 real(RKG) , intent(in) , contiguous :: matB(:)
3111 real(RKG) , intent(inout) , contiguous :: matC(:)
3112 type(uppDia_type) , intent(in) :: subsetA
3113 type(hermitian_type) , intent(in) :: classA
3114 type(lfpack_type) , intent(in) :: packA
3115 end subroutine
3116#endif
3117
3118#if RK3_ENABLED
3119 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3120#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3121 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK3
3122#endif
3123 use pm_kind, only: RKG => RK3
3124 real(RKG) , intent(in) , optional :: alpha, beta
3125 real(RKG) , intent(in) , contiguous :: matA(:)
3126 real(RKG) , intent(in) , contiguous :: matB(:)
3127 real(RKG) , intent(inout) , contiguous :: matC(:)
3128 type(uppDia_type) , intent(in) :: subsetA
3129 type(hermitian_type) , intent(in) :: classA
3130 type(lfpack_type) , intent(in) :: packA
3131 end subroutine
3132#endif
3133
3134#if RK2_ENABLED
3135 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3137 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK2
3138#endif
3139 use pm_kind, only: RKG => RK2
3140 real(RKG) , intent(in) , optional :: alpha, beta
3141 real(RKG) , intent(in) , contiguous :: matA(:)
3142 real(RKG) , intent(in) , contiguous :: matB(:)
3143 real(RKG) , intent(inout) , contiguous :: matC(:)
3144 type(uppDia_type) , intent(in) :: subsetA
3145 type(hermitian_type) , intent(in) :: classA
3146 type(lfpack_type) , intent(in) :: packA
3147 end subroutine
3148#endif
3149
3150#if RK1_ENABLED
3151 PURE module subroutine hpmv_ASS_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3153 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SUA_CNB_SFB_RK1
3154#endif
3155 use pm_kind, only: RKG => RK1
3156 real(RKG) , intent(in) , optional :: alpha, beta
3157 real(RKG) , intent(in) , contiguous :: matA(:)
3158 real(RKG) , intent(in) , contiguous :: matB(:)
3159 real(RKG) , intent(inout) , contiguous :: matC(:)
3160 type(uppDia_type) , intent(in) :: subsetA
3161 type(hermitian_type) , intent(in) :: classA
3162 type(lfpack_type) , intent(in) :: packA
3163 end subroutine
3164#endif
3165
3166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3167
3168 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3169 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3170 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3171
3172 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3173
3174#if IK5_ENABLED
3175 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3177 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK5
3178#endif
3179 use pm_kind, only: IKG => IK5
3180 integer(IKG) , intent(in) , optional :: alpha, beta
3181 integer(IKG) , intent(in) , contiguous :: matA(:)
3182 integer(IKG) , intent(in) , contiguous :: matB(:)
3183 integer(IKG) , intent(inout) , contiguous :: matC(:)
3184 type(lowDia_type) , intent(in) :: subsetA
3185 type(hermitian_type) , intent(in) :: classA
3186 type(lfpack_type) , intent(in) :: packA
3187 end subroutine
3188#endif
3189
3190#if IK4_ENABLED
3191 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3193 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK4
3194#endif
3195 use pm_kind, only: IKG => IK4
3196 integer(IKG) , intent(in) , optional :: alpha, beta
3197 integer(IKG) , intent(in) , contiguous :: matA(:)
3198 integer(IKG) , intent(in) , contiguous :: matB(:)
3199 integer(IKG) , intent(inout) , contiguous :: matC(:)
3200 type(lowDia_type) , intent(in) :: subsetA
3201 type(hermitian_type) , intent(in) :: classA
3202 type(lfpack_type) , intent(in) :: packA
3203 end subroutine
3204#endif
3205
3206#if IK3_ENABLED
3207 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3209 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK3
3210#endif
3211 use pm_kind, only: IKG => IK3
3212 integer(IKG) , intent(in) , optional :: alpha, beta
3213 integer(IKG) , intent(in) , contiguous :: matA(:)
3214 integer(IKG) , intent(in) , contiguous :: matB(:)
3215 integer(IKG) , intent(inout) , contiguous :: matC(:)
3216 type(lowDia_type) , intent(in) :: subsetA
3217 type(hermitian_type) , intent(in) :: classA
3218 type(lfpack_type) , intent(in) :: packA
3219 end subroutine
3220#endif
3221
3222#if IK2_ENABLED
3223 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3225 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK2
3226#endif
3227 use pm_kind, only: IKG => IK2
3228 integer(IKG) , intent(in) , optional :: alpha, beta
3229 integer(IKG) , intent(in) , contiguous :: matA(:)
3230 integer(IKG) , intent(in) , contiguous :: matB(:)
3231 integer(IKG) , intent(inout) , contiguous :: matC(:)
3232 type(lowDia_type) , intent(in) :: subsetA
3233 type(hermitian_type) , intent(in) :: classA
3234 type(lfpack_type) , intent(in) :: packA
3235 end subroutine
3236#endif
3237
3238#if IK1_ENABLED
3239 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3240#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3241 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_IK1
3242#endif
3243 use pm_kind, only: IKG => IK1
3244 integer(IKG) , intent(in) , optional :: alpha, beta
3245 integer(IKG) , intent(in) , contiguous :: matA(:)
3246 integer(IKG) , intent(in) , contiguous :: matB(:)
3247 integer(IKG) , intent(inout) , contiguous :: matC(:)
3248 type(lowDia_type) , intent(in) :: subsetA
3249 type(hermitian_type) , intent(in) :: classA
3250 type(lfpack_type) , intent(in) :: packA
3251 end subroutine
3252#endif
3253
3254 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3255
3256#if CK5_ENABLED
3257 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3258#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3259 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK5
3260#endif
3261 use pm_kind, only: CKG => CK5
3262 complex(CKG) , intent(in) , optional :: alpha, beta
3263 complex(CKG) , intent(in) , contiguous :: matA(:)
3264 complex(CKG) , intent(in) , contiguous :: matB(:)
3265 complex(CKG) , intent(inout) , contiguous :: matC(:)
3266 type(lowDia_type) , intent(in) :: subsetA
3267 type(hermitian_type) , intent(in) :: classA
3268 type(lfpack_type) , intent(in) :: packA
3269 end subroutine
3270#endif
3271
3272#if CK4_ENABLED
3273 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3275 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK4
3276#endif
3277 use pm_kind, only: CKG => CK4
3278 complex(CKG) , intent(in) , optional :: alpha, beta
3279 complex(CKG) , intent(in) , contiguous :: matA(:)
3280 complex(CKG) , intent(in) , contiguous :: matB(:)
3281 complex(CKG) , intent(inout) , contiguous :: matC(:)
3282 type(lowDia_type) , intent(in) :: subsetA
3283 type(hermitian_type) , intent(in) :: classA
3284 type(lfpack_type) , intent(in) :: packA
3285 end subroutine
3286#endif
3287
3288#if CK3_ENABLED
3289 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3291 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK3
3292#endif
3293 use pm_kind, only: CKG => CK3
3294 complex(CKG) , intent(in) , optional :: alpha, beta
3295 complex(CKG) , intent(in) , contiguous :: matA(:)
3296 complex(CKG) , intent(in) , contiguous :: matB(:)
3297 complex(CKG) , intent(inout) , contiguous :: matC(:)
3298 type(lowDia_type) , intent(in) :: subsetA
3299 type(hermitian_type) , intent(in) :: classA
3300 type(lfpack_type) , intent(in) :: packA
3301 end subroutine
3302#endif
3303
3304#if CK2_ENABLED
3305 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3306#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3307 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK2
3308#endif
3309 use pm_kind, only: CKG => CK2
3310 complex(CKG) , intent(in) , optional :: alpha, beta
3311 complex(CKG) , intent(in) , contiguous :: matA(:)
3312 complex(CKG) , intent(in) , contiguous :: matB(:)
3313 complex(CKG) , intent(inout) , contiguous :: matC(:)
3314 type(lowDia_type) , intent(in) :: subsetA
3315 type(hermitian_type) , intent(in) :: classA
3316 type(lfpack_type) , intent(in) :: packA
3317 end subroutine
3318#endif
3319
3320#if CK1_ENABLED
3321 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3323 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_CK1
3324#endif
3325 use pm_kind, only: CKG => CK1
3326 complex(CKG) , intent(in) , optional :: alpha, beta
3327 complex(CKG) , intent(in) , contiguous :: matA(:)
3328 complex(CKG) , intent(in) , contiguous :: matB(:)
3329 complex(CKG) , intent(inout) , contiguous :: matC(:)
3330 type(lowDia_type) , intent(in) :: subsetA
3331 type(hermitian_type) , intent(in) :: classA
3332 type(lfpack_type) , intent(in) :: packA
3333 end subroutine
3334#endif
3335
3336 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3337
3338#if RK5_ENABLED
3339 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3341 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK5
3342#endif
3343 use pm_kind, only: RKG => RK5
3344 real(RKG) , intent(in) , optional :: alpha, beta
3345 real(RKG) , intent(in) , contiguous :: matA(:)
3346 real(RKG) , intent(in) , contiguous :: matB(:)
3347 real(RKG) , intent(inout) , contiguous :: matC(:)
3348 type(lowDia_type) , intent(in) :: subsetA
3349 type(hermitian_type) , intent(in) :: classA
3350 type(lfpack_type) , intent(in) :: packA
3351 end subroutine
3352#endif
3353
3354#if RK4_ENABLED
3355 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3356#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3357 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK4
3358#endif
3359 use pm_kind, only: RKG => RK4
3360 real(RKG) , intent(in) , optional :: alpha, beta
3361 real(RKG) , intent(in) , contiguous :: matA(:)
3362 real(RKG) , intent(in) , contiguous :: matB(:)
3363 real(RKG) , intent(inout) , contiguous :: matC(:)
3364 type(lowDia_type) , intent(in) :: subsetA
3365 type(hermitian_type) , intent(in) :: classA
3366 type(lfpack_type) , intent(in) :: packA
3367 end subroutine
3368#endif
3369
3370#if RK3_ENABLED
3371 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3373 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK3
3374#endif
3375 use pm_kind, only: RKG => RK3
3376 real(RKG) , intent(in) , optional :: alpha, beta
3377 real(RKG) , intent(in) , contiguous :: matA(:)
3378 real(RKG) , intent(in) , contiguous :: matB(:)
3379 real(RKG) , intent(inout) , contiguous :: matC(:)
3380 type(lowDia_type) , intent(in) :: subsetA
3381 type(hermitian_type) , intent(in) :: classA
3382 type(lfpack_type) , intent(in) :: packA
3383 end subroutine
3384#endif
3385
3386#if RK2_ENABLED
3387 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3389 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK2
3390#endif
3391 use pm_kind, only: RKG => RK2
3392 real(RKG) , intent(in) , optional :: alpha, beta
3393 real(RKG) , intent(in) , contiguous :: matA(:)
3394 real(RKG) , intent(in) , contiguous :: matB(:)
3395 real(RKG) , intent(inout) , contiguous :: matC(:)
3396 type(lowDia_type) , intent(in) :: subsetA
3397 type(hermitian_type) , intent(in) :: classA
3398 type(lfpack_type) , intent(in) :: packA
3399 end subroutine
3400#endif
3401
3402#if RK1_ENABLED
3403 PURE module subroutine hpmv_ASS_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta)
3404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3405 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_ASS_CHA_SLA_CNB_SFB_RK1
3406#endif
3407 use pm_kind, only: RKG => RK1
3408 real(RKG) , intent(in) , optional :: alpha, beta
3409 real(RKG) , intent(in) , contiguous :: matA(:)
3410 real(RKG) , intent(in) , contiguous :: matB(:)
3411 real(RKG) , intent(inout) , contiguous :: matC(:)
3412 type(lowDia_type) , intent(in) :: subsetA
3413 type(hermitian_type) , intent(in) :: classA
3414 type(lfpack_type) , intent(in) :: packA
3415 end subroutine
3416#endif
3417
3418 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3419
3420 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3422 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3423
3424 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3425 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3426 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3427
3428 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3429
3430#if IK5_ENABLED
3431 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3433 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK5
3434#endif
3435 use pm_kind, only: IKG => IK5
3436 integer(IK) , intent(in) :: ndim, incB, incC
3437 integer(IKG) , intent(in) :: alpha, beta
3438 integer(IKG) , intent(in) , contiguous :: matA(:)
3439 integer(IKG) , intent(in) , contiguous :: matB(:)
3440 integer(IKG) , intent(inout) , contiguous :: matC(:)
3441 type(uppDia_type) , intent(in) :: subsetA
3442 type(hermitian_type) , intent(in) :: classA
3443 type(lfpack_type) , intent(in) :: packA
3444 end subroutine
3445#endif
3446
3447#if IK4_ENABLED
3448 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3450 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK4
3451#endif
3452 use pm_kind, only: IKG => IK4
3453 integer(IK) , intent(in) :: ndim, incB, incC
3454 integer(IKG) , intent(in) :: alpha, beta
3455 integer(IKG) , intent(in) , contiguous :: matA(:)
3456 integer(IKG) , intent(in) , contiguous :: matB(:)
3457 integer(IKG) , intent(inout) , contiguous :: matC(:)
3458 type(uppDia_type) , intent(in) :: subsetA
3459 type(hermitian_type) , intent(in) :: classA
3460 type(lfpack_type) , intent(in) :: packA
3461 end subroutine
3462#endif
3463
3464#if IK3_ENABLED
3465 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3466#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3467 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK3
3468#endif
3469 use pm_kind, only: IKG => IK3
3470 integer(IK) , intent(in) :: ndim, incB, incC
3471 integer(IKG) , intent(in) :: alpha, beta
3472 integer(IKG) , intent(in) , contiguous :: matA(:)
3473 integer(IKG) , intent(in) , contiguous :: matB(:)
3474 integer(IKG) , intent(inout) , contiguous :: matC(:)
3475 type(uppDia_type) , intent(in) :: subsetA
3476 type(hermitian_type) , intent(in) :: classA
3477 type(lfpack_type) , intent(in) :: packA
3478 end subroutine
3479#endif
3480
3481#if IK2_ENABLED
3482 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3484 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK2
3485#endif
3486 use pm_kind, only: IKG => IK2
3487 integer(IK) , intent(in) :: ndim, incB, incC
3488 integer(IKG) , intent(in) :: alpha, beta
3489 integer(IKG) , intent(in) , contiguous :: matA(:)
3490 integer(IKG) , intent(in) , contiguous :: matB(:)
3491 integer(IKG) , intent(inout) , contiguous :: matC(:)
3492 type(uppDia_type) , intent(in) :: subsetA
3493 type(hermitian_type) , intent(in) :: classA
3494 type(lfpack_type) , intent(in) :: packA
3495 end subroutine
3496#endif
3497
3498#if IK1_ENABLED
3499 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3501 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_IK1
3502#endif
3503 use pm_kind, only: IKG => IK1
3504 integer(IK) , intent(in) :: ndim, incB, incC
3505 integer(IKG) , intent(in) :: alpha, beta
3506 integer(IKG) , intent(in) , contiguous :: matA(:)
3507 integer(IKG) , intent(in) , contiguous :: matB(:)
3508 integer(IKG) , intent(inout) , contiguous :: matC(:)
3509 type(uppDia_type) , intent(in) :: subsetA
3510 type(hermitian_type) , intent(in) :: classA
3511 type(lfpack_type) , intent(in) :: packA
3512 end subroutine
3513#endif
3514
3515 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3516
3517#if CK5_ENABLED
3518 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3519#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3520 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK5
3521#endif
3522 use pm_kind, only: CKG => CK5
3523 integer(IK) , intent(in) :: ndim, incB, incC
3524 complex(CKG) , intent(in) :: alpha, beta
3525 complex(CKG) , intent(in) , contiguous :: matA(:)
3526 complex(CKG) , intent(in) , contiguous :: matB(:)
3527 complex(CKG) , intent(inout) , contiguous :: matC(:)
3528 type(uppDia_type) , intent(in) :: subsetA
3529 type(hermitian_type) , intent(in) :: classA
3530 type(lfpack_type) , intent(in) :: packA
3531 end subroutine
3532#endif
3533
3534#if CK4_ENABLED
3535 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3537 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK4
3538#endif
3539 use pm_kind, only: CKG => CK4
3540 integer(IK) , intent(in) :: ndim, incB, incC
3541 complex(CKG) , intent(in) :: alpha, beta
3542 complex(CKG) , intent(in) , contiguous :: matA(:)
3543 complex(CKG) , intent(in) , contiguous :: matB(:)
3544 complex(CKG) , intent(inout) , contiguous :: matC(:)
3545 type(uppDia_type) , intent(in) :: subsetA
3546 type(hermitian_type) , intent(in) :: classA
3547 type(lfpack_type) , intent(in) :: packA
3548 end subroutine
3549#endif
3550
3551#if CK3_ENABLED
3552 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3553#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3554 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK3
3555#endif
3556 use pm_kind, only: CKG => CK3
3557 integer(IK) , intent(in) :: ndim, incB, incC
3558 complex(CKG) , intent(in) :: alpha, beta
3559 complex(CKG) , intent(in) , contiguous :: matA(:)
3560 complex(CKG) , intent(in) , contiguous :: matB(:)
3561 complex(CKG) , intent(inout) , contiguous :: matC(:)
3562 type(uppDia_type) , intent(in) :: subsetA
3563 type(hermitian_type) , intent(in) :: classA
3564 type(lfpack_type) , intent(in) :: packA
3565 end subroutine
3566#endif
3567
3568#if CK2_ENABLED
3569 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3571 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK2
3572#endif
3573 use pm_kind, only: CKG => CK2
3574 integer(IK) , intent(in) :: ndim, incB, incC
3575 complex(CKG) , intent(in) :: alpha, beta
3576 complex(CKG) , intent(in) , contiguous :: matA(:)
3577 complex(CKG) , intent(in) , contiguous :: matB(:)
3578 complex(CKG) , intent(inout) , contiguous :: matC(:)
3579 type(uppDia_type) , intent(in) :: subsetA
3580 type(hermitian_type) , intent(in) :: classA
3581 type(lfpack_type) , intent(in) :: packA
3582 end subroutine
3583#endif
3584
3585#if CK1_ENABLED
3586 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3588 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_CK1
3589#endif
3590 use pm_kind, only: CKG => CK1
3591 integer(IK) , intent(in) :: ndim, incB, incC
3592 complex(CKG) , intent(in) :: alpha, beta
3593 complex(CKG) , intent(in) , contiguous :: matA(:)
3594 complex(CKG) , intent(in) , contiguous :: matB(:)
3595 complex(CKG) , intent(inout) , contiguous :: matC(:)
3596 type(uppDia_type) , intent(in) :: subsetA
3597 type(hermitian_type) , intent(in) :: classA
3598 type(lfpack_type) , intent(in) :: packA
3599 end subroutine
3600#endif
3601
3602 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3603
3604#if RK5_ENABLED
3605 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3607 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK5
3608#endif
3609 use pm_kind, only: RKG => RK5
3610 integer(IK) , intent(in) :: ndim, incB, incC
3611 real(RKG) , intent(in) :: alpha, beta
3612 real(RKG) , intent(in) , contiguous :: matA(:)
3613 real(RKG) , intent(in) , contiguous :: matB(:)
3614 real(RKG) , intent(inout) , contiguous :: matC(:)
3615 type(uppDia_type) , intent(in) :: subsetA
3616 type(hermitian_type) , intent(in) :: classA
3617 type(lfpack_type) , intent(in) :: packA
3618 end subroutine
3619#endif
3620
3621#if RK4_ENABLED
3622 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3623#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3624 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK4
3625#endif
3626 use pm_kind, only: RKG => RK4
3627 integer(IK) , intent(in) :: ndim, incB, incC
3628 real(RKG) , intent(in) :: alpha, beta
3629 real(RKG) , intent(in) , contiguous :: matA(:)
3630 real(RKG) , intent(in) , contiguous :: matB(:)
3631 real(RKG) , intent(inout) , contiguous :: matC(:)
3632 type(uppDia_type) , intent(in) :: subsetA
3633 type(hermitian_type) , intent(in) :: classA
3634 type(lfpack_type) , intent(in) :: packA
3635 end subroutine
3636#endif
3637
3638#if RK3_ENABLED
3639 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3641 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK3
3642#endif
3643 use pm_kind, only: RKG => RK3
3644 integer(IK) , intent(in) :: ndim, incB, incC
3645 real(RKG) , intent(in) :: alpha, beta
3646 real(RKG) , intent(in) , contiguous :: matA(:)
3647 real(RKG) , intent(in) , contiguous :: matB(:)
3648 real(RKG) , intent(inout) , contiguous :: matC(:)
3649 type(uppDia_type) , intent(in) :: subsetA
3650 type(hermitian_type) , intent(in) :: classA
3651 type(lfpack_type) , intent(in) :: packA
3652 end subroutine
3653#endif
3654
3655#if RK2_ENABLED
3656 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3658 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK2
3659#endif
3660 use pm_kind, only: RKG => RK2
3661 integer(IK) , intent(in) :: ndim, incB, incC
3662 real(RKG) , intent(in) :: alpha, beta
3663 real(RKG) , intent(in) , contiguous :: matA(:)
3664 real(RKG) , intent(in) , contiguous :: matB(:)
3665 real(RKG) , intent(inout) , contiguous :: matC(:)
3666 type(uppDia_type) , intent(in) :: subsetA
3667 type(hermitian_type) , intent(in) :: classA
3668 type(lfpack_type) , intent(in) :: packA
3669 end subroutine
3670#endif
3671
3672#if RK1_ENABLED
3673 PURE module subroutine hpmv_EXP_CHA_SUA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3674#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3675 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SUA_CNB_SFB_RK1
3676#endif
3677 use pm_kind, only: RKG => RK1
3678 integer(IK) , intent(in) :: ndim, incB, incC
3679 real(RKG) , intent(in) :: alpha, beta
3680 real(RKG) , intent(in) , contiguous :: matA(:)
3681 real(RKG) , intent(in) , contiguous :: matB(:)
3682 real(RKG) , intent(inout) , contiguous :: matC(:)
3683 type(uppDia_type) , intent(in) :: subsetA
3684 type(hermitian_type) , intent(in) :: classA
3685 type(lfpack_type) , intent(in) :: packA
3686 end subroutine
3687#endif
3688
3689 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3690
3691 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3692 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3693 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3694
3695 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3696
3697#if IK5_ENABLED
3698 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3700 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK5
3701#endif
3702 use pm_kind, only: IKG => IK5
3703 integer(IK) , intent(in) :: ndim, incB, incC
3704 integer(IKG) , intent(in) :: alpha, beta
3705 integer(IKG) , intent(in) , contiguous :: matA(:)
3706 integer(IKG) , intent(in) , contiguous :: matB(:)
3707 integer(IKG) , intent(inout) , contiguous :: matC(:)
3708 type(lowDia_type) , intent(in) :: subsetA
3709 type(hermitian_type) , intent(in) :: classA
3710 type(lfpack_type) , intent(in) :: packA
3711 end subroutine
3712#endif
3713
3714#if IK4_ENABLED
3715 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3717 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK4
3718#endif
3719 use pm_kind, only: IKG => IK4
3720 integer(IK) , intent(in) :: ndim, incB, incC
3721 integer(IKG) , intent(in) :: alpha, beta
3722 integer(IKG) , intent(in) , contiguous :: matA(:)
3723 integer(IKG) , intent(in) , contiguous :: matB(:)
3724 integer(IKG) , intent(inout) , contiguous :: matC(:)
3725 type(lowDia_type) , intent(in) :: subsetA
3726 type(hermitian_type) , intent(in) :: classA
3727 type(lfpack_type) , intent(in) :: packA
3728 end subroutine
3729#endif
3730
3731#if IK3_ENABLED
3732 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3733#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3734 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK3
3735#endif
3736 use pm_kind, only: IKG => IK3
3737 integer(IK) , intent(in) :: ndim, incB, incC
3738 integer(IKG) , intent(in) :: alpha, beta
3739 integer(IKG) , intent(in) , contiguous :: matA(:)
3740 integer(IKG) , intent(in) , contiguous :: matB(:)
3741 integer(IKG) , intent(inout) , contiguous :: matC(:)
3742 type(lowDia_type) , intent(in) :: subsetA
3743 type(hermitian_type) , intent(in) :: classA
3744 type(lfpack_type) , intent(in) :: packA
3745 end subroutine
3746#endif
3747
3748#if IK2_ENABLED
3749 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3750#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3751 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK2
3752#endif
3753 use pm_kind, only: IKG => IK2
3754 integer(IK) , intent(in) :: ndim, incB, incC
3755 integer(IKG) , intent(in) :: alpha, beta
3756 integer(IKG) , intent(in) , contiguous :: matA(:)
3757 integer(IKG) , intent(in) , contiguous :: matB(:)
3758 integer(IKG) , intent(inout) , contiguous :: matC(:)
3759 type(lowDia_type) , intent(in) :: subsetA
3760 type(hermitian_type) , intent(in) :: classA
3761 type(lfpack_type) , intent(in) :: packA
3762 end subroutine
3763#endif
3764
3765#if IK1_ENABLED
3766 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_IK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3767#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3768 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_IK1
3769#endif
3770 use pm_kind, only: IKG => IK1
3771 integer(IK) , intent(in) :: ndim, incB, incC
3772 integer(IKG) , intent(in) :: alpha, beta
3773 integer(IKG) , intent(in) , contiguous :: matA(:)
3774 integer(IKG) , intent(in) , contiguous :: matB(:)
3775 integer(IKG) , intent(inout) , contiguous :: matC(:)
3776 type(lowDia_type) , intent(in) :: subsetA
3777 type(hermitian_type) , intent(in) :: classA
3778 type(lfpack_type) , intent(in) :: packA
3779 end subroutine
3780#endif
3781
3782 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3783
3784#if CK5_ENABLED
3785 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3786#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3787 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK5
3788#endif
3789 use pm_kind, only: CKG => CK5
3790 integer(IK) , intent(in) :: ndim, incB, incC
3791 complex(CKG) , intent(in) :: alpha, beta
3792 complex(CKG) , intent(in) , contiguous :: matA(:)
3793 complex(CKG) , intent(in) , contiguous :: matB(:)
3794 complex(CKG) , intent(inout) , contiguous :: matC(:)
3795 type(lowDia_type) , intent(in) :: subsetA
3796 type(hermitian_type) , intent(in) :: classA
3797 type(lfpack_type) , intent(in) :: packA
3798 end subroutine
3799#endif
3800
3801#if CK4_ENABLED
3802 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3803#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3804 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK4
3805#endif
3806 use pm_kind, only: CKG => CK4
3807 integer(IK) , intent(in) :: ndim, incB, incC
3808 complex(CKG) , intent(in) :: alpha, beta
3809 complex(CKG) , intent(in) , contiguous :: matA(:)
3810 complex(CKG) , intent(in) , contiguous :: matB(:)
3811 complex(CKG) , intent(inout) , contiguous :: matC(:)
3812 type(lowDia_type) , intent(in) :: subsetA
3813 type(hermitian_type) , intent(in) :: classA
3814 type(lfpack_type) , intent(in) :: packA
3815 end subroutine
3816#endif
3817
3818#if CK3_ENABLED
3819 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3820#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3821 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK3
3822#endif
3823 use pm_kind, only: CKG => CK3
3824 integer(IK) , intent(in) :: ndim, incB, incC
3825 complex(CKG) , intent(in) :: alpha, beta
3826 complex(CKG) , intent(in) , contiguous :: matA(:)
3827 complex(CKG) , intent(in) , contiguous :: matB(:)
3828 complex(CKG) , intent(inout) , contiguous :: matC(:)
3829 type(lowDia_type) , intent(in) :: subsetA
3830 type(hermitian_type) , intent(in) :: classA
3831 type(lfpack_type) , intent(in) :: packA
3832 end subroutine
3833#endif
3834
3835#if CK2_ENABLED
3836 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3837#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3838 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK2
3839#endif
3840 use pm_kind, only: CKG => CK2
3841 integer(IK) , intent(in) :: ndim, incB, incC
3842 complex(CKG) , intent(in) :: alpha, beta
3843 complex(CKG) , intent(in) , contiguous :: matA(:)
3844 complex(CKG) , intent(in) , contiguous :: matB(:)
3845 complex(CKG) , intent(inout) , contiguous :: matC(:)
3846 type(lowDia_type) , intent(in) :: subsetA
3847 type(hermitian_type) , intent(in) :: classA
3848 type(lfpack_type) , intent(in) :: packA
3849 end subroutine
3850#endif
3851
3852#if CK1_ENABLED
3853 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_CK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3854#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3855 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_CK1
3856#endif
3857 use pm_kind, only: CKG => CK1
3858 integer(IK) , intent(in) :: ndim, incB, incC
3859 complex(CKG) , intent(in) :: alpha, beta
3860 complex(CKG) , intent(in) , contiguous :: matA(:)
3861 complex(CKG) , intent(in) , contiguous :: matB(:)
3862 complex(CKG) , intent(inout) , contiguous :: matC(:)
3863 type(lowDia_type) , intent(in) :: subsetA
3864 type(hermitian_type) , intent(in) :: classA
3865 type(lfpack_type) , intent(in) :: packA
3866 end subroutine
3867#endif
3868
3869 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3870
3871#if RK5_ENABLED
3872 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK5(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3873#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3874 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK5
3875#endif
3876 use pm_kind, only: RKG => RK5
3877 integer(IK) , intent(in) :: ndim, incB, incC
3878 real(RKG) , intent(in) :: alpha, beta
3879 real(RKG) , intent(in) , contiguous :: matA(:)
3880 real(RKG) , intent(in) , contiguous :: matB(:)
3881 real(RKG) , intent(inout) , contiguous :: matC(:)
3882 type(lowDia_type) , intent(in) :: subsetA
3883 type(hermitian_type) , intent(in) :: classA
3884 type(lfpack_type) , intent(in) :: packA
3885 end subroutine
3886#endif
3887
3888#if RK4_ENABLED
3889 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK4(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3890#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3891 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK4
3892#endif
3893 use pm_kind, only: RKG => RK4
3894 integer(IK) , intent(in) :: ndim, incB, incC
3895 real(RKG) , intent(in) :: alpha, beta
3896 real(RKG) , intent(in) , contiguous :: matA(:)
3897 real(RKG) , intent(in) , contiguous :: matB(:)
3898 real(RKG) , intent(inout) , contiguous :: matC(:)
3899 type(lowDia_type) , intent(in) :: subsetA
3900 type(hermitian_type) , intent(in) :: classA
3901 type(lfpack_type) , intent(in) :: packA
3902 end subroutine
3903#endif
3904
3905#if RK3_ENABLED
3906 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK3(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3908 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK3
3909#endif
3910 use pm_kind, only: RKG => RK3
3911 integer(IK) , intent(in) :: ndim, incB, incC
3912 real(RKG) , intent(in) :: alpha, beta
3913 real(RKG) , intent(in) , contiguous :: matA(:)
3914 real(RKG) , intent(in) , contiguous :: matB(:)
3915 real(RKG) , intent(inout) , contiguous :: matC(:)
3916 type(lowDia_type) , intent(in) :: subsetA
3917 type(hermitian_type) , intent(in) :: classA
3918 type(lfpack_type) , intent(in) :: packA
3919 end subroutine
3920#endif
3921
3922#if RK2_ENABLED
3923 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK2(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3925 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK2
3926#endif
3927 use pm_kind, only: RKG => RK2
3928 integer(IK) , intent(in) :: ndim, incB, incC
3929 real(RKG) , intent(in) :: alpha, beta
3930 real(RKG) , intent(in) , contiguous :: matA(:)
3931 real(RKG) , intent(in) , contiguous :: matB(:)
3932 real(RKG) , intent(inout) , contiguous :: matC(:)
3933 type(lowDia_type) , intent(in) :: subsetA
3934 type(hermitian_type) , intent(in) :: classA
3935 type(lfpack_type) , intent(in) :: packA
3936 end subroutine
3937#endif
3938
3939#if RK1_ENABLED
3940 PURE module subroutine hpmv_EXP_CHA_SLA_CNB_SFB_RK1(matA, classA, subsetA, packA, matB, matC, alpha, beta, ndim, incB, incC)
3941#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3942 !DEC$ ATTRIBUTES DLLEXPORT :: hpmv_EXP_CHA_SLA_CNB_SFB_RK1
3943#endif
3944 use pm_kind, only: RKG => RK1
3945 integer(IK) , intent(in) :: ndim, incB, incC
3946 real(RKG) , intent(in) :: alpha, beta
3947 real(RKG) , intent(in) , contiguous :: matA(:)
3948 real(RKG) , intent(in) , contiguous :: matB(:)
3949 real(RKG) , intent(inout) , contiguous :: matC(:)
3950 type(lowDia_type) , intent(in) :: subsetA
3951 type(hermitian_type) , intent(in) :: classA
3952 type(lfpack_type) , intent(in) :: packA
3953 end subroutine
3954#endif
3955
3956 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3957
3958 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3959 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3960 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3961
3962 end interface
3963
3964 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3965 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3966 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3967
3968 ! BLAS 2: `SSYMV`, `DSYMV`, `CSYMV`, `ZSYMV`
3969
3970 interface setMatMulAdd
3971
3972 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3973 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3974 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3975
3976 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3977
3978#if IK5_ENABLED
3979 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
3980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3981 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK5
3982#endif
3983 use pm_kind, only: IKG => IK5
3984 integer(IKG) , intent(in) , optional :: alpha, beta
3985 integer(IKG) , intent(in) , contiguous :: matA(:,:)
3986 integer(IKG) , intent(in) , contiguous :: matB(:)
3987 integer(IKG) , intent(inout) , contiguous :: matC(:)
3988 type(uppDia_type) , intent(in) :: subsetA
3989 type(symmetric_type) , intent(in) :: classA
3990 end subroutine
3991#endif
3992
3993#if IK4_ENABLED
3994 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
3995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3996 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK4
3997#endif
3998 use pm_kind, only: IKG => IK4
3999 integer(IKG) , intent(in) , optional :: alpha, beta
4000 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4001 integer(IKG) , intent(in) , contiguous :: matB(:)
4002 integer(IKG) , intent(inout) , contiguous :: matC(:)
4003 type(uppDia_type) , intent(in) :: subsetA
4004 type(symmetric_type) , intent(in) :: classA
4005 end subroutine
4006#endif
4007
4008#if IK3_ENABLED
4009 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
4010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4011 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK3
4012#endif
4013 use pm_kind, only: IKG => IK3
4014 integer(IKG) , intent(in) , optional :: alpha, beta
4015 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4016 integer(IKG) , intent(in) , contiguous :: matB(:)
4017 integer(IKG) , intent(inout) , contiguous :: matC(:)
4018 type(uppDia_type) , intent(in) :: subsetA
4019 type(symmetric_type) , intent(in) :: classA
4020 end subroutine
4021#endif
4022
4023#if IK2_ENABLED
4024 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
4025#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4026 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK2
4027#endif
4028 use pm_kind, only: IKG => IK2
4029 integer(IKG) , intent(in) , optional :: alpha, beta
4030 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4031 integer(IKG) , intent(in) , contiguous :: matB(:)
4032 integer(IKG) , intent(inout) , contiguous :: matC(:)
4033 type(uppDia_type) , intent(in) :: subsetA
4034 type(symmetric_type) , intent(in) :: classA
4035 end subroutine
4036#endif
4037
4038#if IK1_ENABLED
4039 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
4040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4041 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_IK1
4042#endif
4043 use pm_kind, only: IKG => IK1
4044 integer(IKG) , intent(in) , optional :: alpha, beta
4045 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4046 integer(IKG) , intent(in) , contiguous :: matB(:)
4047 integer(IKG) , intent(inout) , contiguous :: matC(:)
4048 type(uppDia_type) , intent(in) :: subsetA
4049 type(symmetric_type) , intent(in) :: classA
4050 end subroutine
4051#endif
4052
4053 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4054
4055#if CK5_ENABLED
4056 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
4057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4058 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK5
4059#endif
4060 use pm_kind, only: CKG => CK5
4061 complex(CKG) , intent(in) , optional :: alpha, beta
4062 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4063 complex(CKG) , intent(in) , contiguous :: matB(:)
4064 complex(CKG) , intent(inout) , contiguous :: matC(:)
4065 type(uppDia_type) , intent(in) :: subsetA
4066 type(symmetric_type) , intent(in) :: classA
4067 end subroutine
4068#endif
4069
4070#if CK4_ENABLED
4071 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
4072#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4073 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK4
4074#endif
4075 use pm_kind, only: CKG => CK4
4076 complex(CKG) , intent(in) , optional :: alpha, beta
4077 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4078 complex(CKG) , intent(in) , contiguous :: matB(:)
4079 complex(CKG) , intent(inout) , contiguous :: matC(:)
4080 type(uppDia_type) , intent(in) :: subsetA
4081 type(symmetric_type) , intent(in) :: classA
4082 end subroutine
4083#endif
4084
4085#if CK3_ENABLED
4086 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
4087#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4088 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK3
4089#endif
4090 use pm_kind, only: CKG => CK3
4091 complex(CKG) , intent(in) , optional :: alpha, beta
4092 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4093 complex(CKG) , intent(in) , contiguous :: matB(:)
4094 complex(CKG) , intent(inout) , contiguous :: matC(:)
4095 type(uppDia_type) , intent(in) :: subsetA
4096 type(symmetric_type) , intent(in) :: classA
4097 end subroutine
4098#endif
4099
4100#if CK2_ENABLED
4101 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
4102#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4103 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK2
4104#endif
4105 use pm_kind, only: CKG => CK2
4106 complex(CKG) , intent(in) , optional :: alpha, beta
4107 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4108 complex(CKG) , intent(in) , contiguous :: matB(:)
4109 complex(CKG) , intent(inout) , contiguous :: matC(:)
4110 type(uppDia_type) , intent(in) :: subsetA
4111 type(symmetric_type) , intent(in) :: classA
4112 end subroutine
4113#endif
4114
4115#if CK1_ENABLED
4116 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
4117#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4118 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_CK1
4119#endif
4120 use pm_kind, only: CKG => CK1
4121 complex(CKG) , intent(in) , optional :: alpha, beta
4122 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4123 complex(CKG) , intent(in) , contiguous :: matB(:)
4124 complex(CKG) , intent(inout) , contiguous :: matC(:)
4125 type(uppDia_type) , intent(in) :: subsetA
4126 type(symmetric_type) , intent(in) :: classA
4127 end subroutine
4128#endif
4129
4130 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4131
4132#if RK5_ENABLED
4133 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
4134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4135 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK5
4136#endif
4137 use pm_kind, only: RKG => RK5
4138 real(RKG) , intent(in) , optional :: alpha, beta
4139 real(RKG) , intent(in) , contiguous :: matA(:,:)
4140 real(RKG) , intent(in) , contiguous :: matB(:)
4141 real(RKG) , intent(inout) , contiguous :: matC(:)
4142 type(uppDia_type) , intent(in) :: subsetA
4143 type(symmetric_type) , intent(in) :: classA
4144 end subroutine
4145#endif
4146
4147#if RK4_ENABLED
4148 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
4149#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4150 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK4
4151#endif
4152 use pm_kind, only: RKG => RK4
4153 real(RKG) , intent(in) , optional :: alpha, beta
4154 real(RKG) , intent(in) , contiguous :: matA(:,:)
4155 real(RKG) , intent(in) , contiguous :: matB(:)
4156 real(RKG) , intent(inout) , contiguous :: matC(:)
4157 type(uppDia_type) , intent(in) :: subsetA
4158 type(symmetric_type) , intent(in) :: classA
4159 end subroutine
4160#endif
4161
4162#if RK3_ENABLED
4163 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
4164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4165 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK3
4166#endif
4167 use pm_kind, only: RKG => RK3
4168 real(RKG) , intent(in) , optional :: alpha, beta
4169 real(RKG) , intent(in) , contiguous :: matA(:,:)
4170 real(RKG) , intent(in) , contiguous :: matB(:)
4171 real(RKG) , intent(inout) , contiguous :: matC(:)
4172 type(uppDia_type) , intent(in) :: subsetA
4173 type(symmetric_type) , intent(in) :: classA
4174 end subroutine
4175#endif
4176
4177#if RK2_ENABLED
4178 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
4179#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4180 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK2
4181#endif
4182 use pm_kind, only: RKG => RK2
4183 real(RKG) , intent(in) , optional :: alpha, beta
4184 real(RKG) , intent(in) , contiguous :: matA(:,:)
4185 real(RKG) , intent(in) , contiguous :: matB(:)
4186 real(RKG) , intent(inout) , contiguous :: matC(:)
4187 type(uppDia_type) , intent(in) :: subsetA
4188 type(symmetric_type) , intent(in) :: classA
4189 end subroutine
4190#endif
4191
4192#if RK1_ENABLED
4193 PURE module subroutine symv_ASS_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
4194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4195 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SUA_CNB_SFB_RK1
4196#endif
4197 use pm_kind, only: RKG => RK1
4198 real(RKG) , intent(in) , optional :: alpha, beta
4199 real(RKG) , intent(in) , contiguous :: matA(:,:)
4200 real(RKG) , intent(in) , contiguous :: matB(:)
4201 real(RKG) , intent(inout) , contiguous :: matC(:)
4202 type(uppDia_type) , intent(in) :: subsetA
4203 type(symmetric_type) , intent(in) :: classA
4204 end subroutine
4205#endif
4206
4207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4208
4209 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4210 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4211 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4212
4213 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4214
4215#if IK5_ENABLED
4216 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta)
4217#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4218 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK5
4219#endif
4220 use pm_kind, only: IKG => IK5
4221 integer(IKG) , intent(in) , optional :: alpha, beta
4222 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4223 integer(IKG) , intent(in) , contiguous :: matB(:)
4224 integer(IKG) , intent(inout) , contiguous :: matC(:)
4225 type(lowDia_type) , intent(in) :: subsetA
4226 type(symmetric_type) , intent(in) :: classA
4227 end subroutine
4228#endif
4229
4230#if IK4_ENABLED
4231 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta)
4232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4233 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK4
4234#endif
4235 use pm_kind, only: IKG => IK4
4236 integer(IKG) , intent(in) , optional :: alpha, beta
4237 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4238 integer(IKG) , intent(in) , contiguous :: matB(:)
4239 integer(IKG) , intent(inout) , contiguous :: matC(:)
4240 type(lowDia_type) , intent(in) :: subsetA
4241 type(symmetric_type) , intent(in) :: classA
4242 end subroutine
4243#endif
4244
4245#if IK3_ENABLED
4246 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta)
4247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4248 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK3
4249#endif
4250 use pm_kind, only: IKG => IK3
4251 integer(IKG) , intent(in) , optional :: alpha, beta
4252 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4253 integer(IKG) , intent(in) , contiguous :: matB(:)
4254 integer(IKG) , intent(inout) , contiguous :: matC(:)
4255 type(lowDia_type) , intent(in) :: subsetA
4256 type(symmetric_type) , intent(in) :: classA
4257 end subroutine
4258#endif
4259
4260#if IK2_ENABLED
4261 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta)
4262#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4263 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK2
4264#endif
4265 use pm_kind, only: IKG => IK2
4266 integer(IKG) , intent(in) , optional :: alpha, beta
4267 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4268 integer(IKG) , intent(in) , contiguous :: matB(:)
4269 integer(IKG) , intent(inout) , contiguous :: matC(:)
4270 type(lowDia_type) , intent(in) :: subsetA
4271 type(symmetric_type) , intent(in) :: classA
4272 end subroutine
4273#endif
4274
4275#if IK1_ENABLED
4276 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta)
4277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4278 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_IK1
4279#endif
4280 use pm_kind, only: IKG => IK1
4281 integer(IKG) , intent(in) , optional :: alpha, beta
4282 integer(IKG) , intent(in) , contiguous :: matA(:,:)
4283 integer(IKG) , intent(in) , contiguous :: matB(:)
4284 integer(IKG) , intent(inout) , contiguous :: matC(:)
4285 type(lowDia_type) , intent(in) :: subsetA
4286 type(symmetric_type) , intent(in) :: classA
4287 end subroutine
4288#endif
4289
4290 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4291
4292#if CK5_ENABLED
4293 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta)
4294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4295 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK5
4296#endif
4297 use pm_kind, only: CKG => CK5
4298 complex(CKG) , intent(in) , optional :: alpha, beta
4299 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4300 complex(CKG) , intent(in) , contiguous :: matB(:)
4301 complex(CKG) , intent(inout) , contiguous :: matC(:)
4302 type(lowDia_type) , intent(in) :: subsetA
4303 type(symmetric_type) , intent(in) :: classA
4304 end subroutine
4305#endif
4306
4307#if CK4_ENABLED
4308 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta)
4309#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4310 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK4
4311#endif
4312 use pm_kind, only: CKG => CK4
4313 complex(CKG) , intent(in) , optional :: alpha, beta
4314 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4315 complex(CKG) , intent(in) , contiguous :: matB(:)
4316 complex(CKG) , intent(inout) , contiguous :: matC(:)
4317 type(lowDia_type) , intent(in) :: subsetA
4318 type(symmetric_type) , intent(in) :: classA
4319 end subroutine
4320#endif
4321
4322#if CK3_ENABLED
4323 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta)
4324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4325 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK3
4326#endif
4327 use pm_kind, only: CKG => CK3
4328 complex(CKG) , intent(in) , optional :: alpha, beta
4329 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4330 complex(CKG) , intent(in) , contiguous :: matB(:)
4331 complex(CKG) , intent(inout) , contiguous :: matC(:)
4332 type(lowDia_type) , intent(in) :: subsetA
4333 type(symmetric_type) , intent(in) :: classA
4334 end subroutine
4335#endif
4336
4337#if CK2_ENABLED
4338 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta)
4339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4340 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK2
4341#endif
4342 use pm_kind, only: CKG => CK2
4343 complex(CKG) , intent(in) , optional :: alpha, beta
4344 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4345 complex(CKG) , intent(in) , contiguous :: matB(:)
4346 complex(CKG) , intent(inout) , contiguous :: matC(:)
4347 type(lowDia_type) , intent(in) :: subsetA
4348 type(symmetric_type) , intent(in) :: classA
4349 end subroutine
4350#endif
4351
4352#if CK1_ENABLED
4353 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta)
4354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4355 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_CK1
4356#endif
4357 use pm_kind, only: CKG => CK1
4358 complex(CKG) , intent(in) , optional :: alpha, beta
4359 complex(CKG) , intent(in) , contiguous :: matA(:,:)
4360 complex(CKG) , intent(in) , contiguous :: matB(:)
4361 complex(CKG) , intent(inout) , contiguous :: matC(:)
4362 type(lowDia_type) , intent(in) :: subsetA
4363 type(symmetric_type) , intent(in) :: classA
4364 end subroutine
4365#endif
4366
4367 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4368
4369#if RK5_ENABLED
4370 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta)
4371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4372 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK5
4373#endif
4374 use pm_kind, only: RKG => RK5
4375 real(RKG) , intent(in) , optional :: alpha, beta
4376 real(RKG) , intent(in) , contiguous :: matA(:,:)
4377 real(RKG) , intent(in) , contiguous :: matB(:)
4378 real(RKG) , intent(inout) , contiguous :: matC(:)
4379 type(lowDia_type) , intent(in) :: subsetA
4380 type(symmetric_type) , intent(in) :: classA
4381 end subroutine
4382#endif
4383
4384#if RK4_ENABLED
4385 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta)
4386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4387 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK4
4388#endif
4389 use pm_kind, only: RKG => RK4
4390 real(RKG) , intent(in) , optional :: alpha, beta
4391 real(RKG) , intent(in) , contiguous :: matA(:,:)
4392 real(RKG) , intent(in) , contiguous :: matB(:)
4393 real(RKG) , intent(inout) , contiguous :: matC(:)
4394 type(lowDia_type) , intent(in) :: subsetA
4395 type(symmetric_type) , intent(in) :: classA
4396 end subroutine
4397#endif
4398
4399#if RK3_ENABLED
4400 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta)
4401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4402 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK3
4403#endif
4404 use pm_kind, only: RKG => RK3
4405 real(RKG) , intent(in) , optional :: alpha, beta
4406 real(RKG) , intent(in) , contiguous :: matA(:,:)
4407 real(RKG) , intent(in) , contiguous :: matB(:)
4408 real(RKG) , intent(inout) , contiguous :: matC(:)
4409 type(lowDia_type) , intent(in) :: subsetA
4410 type(symmetric_type) , intent(in) :: classA
4411 end subroutine
4412#endif
4413
4414#if RK2_ENABLED
4415 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta)
4416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4417 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK2
4418#endif
4419 use pm_kind, only: RKG => RK2
4420 real(RKG) , intent(in) , optional :: alpha, beta
4421 real(RKG) , intent(in) , contiguous :: matA(:,:)
4422 real(RKG) , intent(in) , contiguous :: matB(:)
4423 real(RKG) , intent(inout) , contiguous :: matC(:)
4424 type(lowDia_type) , intent(in) :: subsetA
4425 type(symmetric_type) , intent(in) :: classA
4426 end subroutine
4427#endif
4428
4429#if RK1_ENABLED
4430 PURE module subroutine symv_ASS_CSA_SLA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta)
4431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4432 !DEC$ ATTRIBUTES DLLEXPORT :: symv_ASS_CSA_SLA_CNB_SFB_RK1
4433#endif
4434 use pm_kind, only: RKG => RK1
4435 real(RKG) , intent(in) , optional :: alpha, beta
4436 real(RKG) , intent(in) , contiguous :: matA(:,:)
4437 real(RKG) , intent(in) , contiguous :: matB(:)
4438 real(RKG) , intent(inout) , contiguous :: matC(:)
4439 type(lowDia_type) , intent(in) :: subsetA
4440 type(symmetric_type) , intent(in) :: classA
4441 end subroutine
4442#endif
4443
4444 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4445
4446 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4447 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4448 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4449
4450 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4451 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4452 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4453
4454 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4455
4456#if IK5_ENABLED
4457 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4459 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK5
4460#endif
4461 use pm_kind, only: IKG => IK5
4462 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4463 integer(IKG) , intent(in) :: alpha, beta
4464 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4465 integer(IKG) , intent(in) , contiguous :: matB(:)
4466 integer(IKG) , intent(inout) , contiguous :: matC(:)
4467 type(uppDia_type) , intent(in) :: subsetA
4468 type(symmetric_type) , intent(in) :: classA
4469 end subroutine
4470#endif
4471
4472#if IK4_ENABLED
4473 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4474#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4475 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK4
4476#endif
4477 use pm_kind, only: IKG => IK4
4478 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4479 integer(IKG) , intent(in) :: alpha, beta
4480 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4481 integer(IKG) , intent(in) , contiguous :: matB(:)
4482 integer(IKG) , intent(inout) , contiguous :: matC(:)
4483 type(uppDia_type) , intent(in) :: subsetA
4484 type(symmetric_type) , intent(in) :: classA
4485 end subroutine
4486#endif
4487
4488#if IK3_ENABLED
4489 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4491 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK3
4492#endif
4493 use pm_kind, only: IKG => IK3
4494 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4495 integer(IKG) , intent(in) :: alpha, beta
4496 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4497 integer(IKG) , intent(in) , contiguous :: matB(:)
4498 integer(IKG) , intent(inout) , contiguous :: matC(:)
4499 type(uppDia_type) , intent(in) :: subsetA
4500 type(symmetric_type) , intent(in) :: classA
4501 end subroutine
4502#endif
4503
4504#if IK2_ENABLED
4505 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4507 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK2
4508#endif
4509 use pm_kind, only: IKG => IK2
4510 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4511 integer(IKG) , intent(in) :: alpha, beta
4512 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4513 integer(IKG) , intent(in) , contiguous :: matB(:)
4514 integer(IKG) , intent(inout) , contiguous :: matC(:)
4515 type(uppDia_type) , intent(in) :: subsetA
4516 type(symmetric_type) , intent(in) :: classA
4517 end subroutine
4518#endif
4519
4520#if IK1_ENABLED
4521 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4523 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_IK1
4524#endif
4525 use pm_kind, only: IKG => IK1
4526 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4527 integer(IKG) , intent(in) :: alpha, beta
4528 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4529 integer(IKG) , intent(in) , contiguous :: matB(:)
4530 integer(IKG) , intent(inout) , contiguous :: matC(:)
4531 type(uppDia_type) , intent(in) :: subsetA
4532 type(symmetric_type) , intent(in) :: classA
4533 end subroutine
4534#endif
4535
4536 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4537
4538#if CK5_ENABLED
4539 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4540#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4541 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK5
4542#endif
4543 use pm_kind, only: CKG => CK5
4544 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4545 complex(CKG) , intent(in) :: alpha, beta
4546 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4547 complex(CKG) , intent(in) , contiguous :: matB(:)
4548 complex(CKG) , intent(inout) , contiguous :: matC(:)
4549 type(uppDia_type) , intent(in) :: subsetA
4550 type(symmetric_type) , intent(in) :: classA
4551 end subroutine
4552#endif
4553
4554#if CK4_ENABLED
4555 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4556#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4557 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK4
4558#endif
4559 use pm_kind, only: CKG => CK4
4560 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4561 complex(CKG) , intent(in) :: alpha, beta
4562 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4563 complex(CKG) , intent(in) , contiguous :: matB(:)
4564 complex(CKG) , intent(inout) , contiguous :: matC(:)
4565 type(uppDia_type) , intent(in) :: subsetA
4566 type(symmetric_type) , intent(in) :: classA
4567 end subroutine
4568#endif
4569
4570#if CK3_ENABLED
4571 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4573 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK3
4574#endif
4575 use pm_kind, only: CKG => CK3
4576 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4577 complex(CKG) , intent(in) :: alpha, beta
4578 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4579 complex(CKG) , intent(in) , contiguous :: matB(:)
4580 complex(CKG) , intent(inout) , contiguous :: matC(:)
4581 type(uppDia_type) , intent(in) :: subsetA
4582 type(symmetric_type) , intent(in) :: classA
4583 end subroutine
4584#endif
4585
4586#if CK2_ENABLED
4587 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4588#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4589 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK2
4590#endif
4591 use pm_kind, only: CKG => CK2
4592 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4593 complex(CKG) , intent(in) :: alpha, beta
4594 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4595 complex(CKG) , intent(in) , contiguous :: matB(:)
4596 complex(CKG) , intent(inout) , contiguous :: matC(:)
4597 type(uppDia_type) , intent(in) :: subsetA
4598 type(symmetric_type) , intent(in) :: classA
4599 end subroutine
4600#endif
4601
4602#if CK1_ENABLED
4603 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_CK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4605 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_CK1
4606#endif
4607 use pm_kind, only: CKG => CK1
4608 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4609 complex(CKG) , intent(in) :: alpha, beta
4610 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4611 complex(CKG) , intent(in) , contiguous :: matB(:)
4612 complex(CKG) , intent(inout) , contiguous :: matC(:)
4613 type(uppDia_type) , intent(in) :: subsetA
4614 type(symmetric_type) , intent(in) :: classA
4615 end subroutine
4616#endif
4617
4618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4619
4620#if RK5_ENABLED
4621 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4623 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK5
4624#endif
4625 use pm_kind, only: RKG => RK5
4626 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4627 real(RKG) , intent(in) :: alpha, beta
4628 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4629 real(RKG) , intent(in) , contiguous :: matB(:)
4630 real(RKG) , intent(inout) , contiguous :: matC(:)
4631 type(uppDia_type) , intent(in) :: subsetA
4632 type(symmetric_type) , intent(in) :: classA
4633 end subroutine
4634#endif
4635
4636#if RK4_ENABLED
4637 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4639 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK4
4640#endif
4641 use pm_kind, only: RKG => RK4
4642 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4643 real(RKG) , intent(in) :: alpha, beta
4644 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4645 real(RKG) , intent(in) , contiguous :: matB(:)
4646 real(RKG) , intent(inout) , contiguous :: matC(:)
4647 type(uppDia_type) , intent(in) :: subsetA
4648 type(symmetric_type) , intent(in) :: classA
4649 end subroutine
4650#endif
4651
4652#if RK3_ENABLED
4653 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4654#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4655 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK3
4656#endif
4657 use pm_kind, only: RKG => RK3
4658 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4659 real(RKG) , intent(in) :: alpha, beta
4660 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4661 real(RKG) , intent(in) , contiguous :: matB(:)
4662 real(RKG) , intent(inout) , contiguous :: matC(:)
4663 type(uppDia_type) , intent(in) :: subsetA
4664 type(symmetric_type) , intent(in) :: classA
4665 end subroutine
4666#endif
4667
4668#if RK2_ENABLED
4669 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4670#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4671 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK2
4672#endif
4673 use pm_kind, only: RKG => RK2
4674 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4675 real(RKG) , intent(in) :: alpha, beta
4676 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4677 real(RKG) , intent(in) , contiguous :: matB(:)
4678 real(RKG) , intent(inout) , contiguous :: matC(:)
4679 type(uppDia_type) , intent(in) :: subsetA
4680 type(symmetric_type) , intent(in) :: classA
4681 end subroutine
4682#endif
4683
4684#if RK1_ENABLED
4685 PURE module subroutine symv_EXP_CSA_SUA_CNB_SFB_RK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4687 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SUA_CNB_SFB_RK1
4688#endif
4689 use pm_kind, only: RKG => RK1
4690 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4691 real(RKG) , intent(in) :: alpha, beta
4692 real(RKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4693 real(RKG) , intent(in) , contiguous :: matB(:)
4694 real(RKG) , intent(inout) , contiguous :: matC(:)
4695 type(uppDia_type) , intent(in) :: subsetA
4696 type(symmetric_type) , intent(in) :: classA
4697 end subroutine
4698#endif
4699
4700 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4701
4702 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4703 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4704 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4705
4706 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4707
4708#if IK5_ENABLED
4709 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4711 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK5
4712#endif
4713 use pm_kind, only: IKG => IK5
4714 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4715 integer(IKG) , intent(in) :: alpha, beta
4716 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4717 integer(IKG) , intent(in) , contiguous :: matB(:)
4718 integer(IKG) , intent(inout) , contiguous :: matC(:)
4719 type(lowDia_type) , intent(in) :: subsetA
4720 type(symmetric_type) , intent(in) :: classA
4721 end subroutine
4722#endif
4723
4724#if IK4_ENABLED
4725 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4727 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK4
4728#endif
4729 use pm_kind, only: IKG => IK4
4730 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4731 integer(IKG) , intent(in) :: alpha, beta
4732 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4733 integer(IKG) , intent(in) , contiguous :: matB(:)
4734 integer(IKG) , intent(inout) , contiguous :: matC(:)
4735 type(lowDia_type) , intent(in) :: subsetA
4736 type(symmetric_type) , intent(in) :: classA
4737 end subroutine
4738#endif
4739
4740#if IK3_ENABLED
4741 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4743 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK3
4744#endif
4745 use pm_kind, only: IKG => IK3
4746 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4747 integer(IKG) , intent(in) :: alpha, beta
4748 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4749 integer(IKG) , intent(in) , contiguous :: matB(:)
4750 integer(IKG) , intent(inout) , contiguous :: matC(:)
4751 type(lowDia_type) , intent(in) :: subsetA
4752 type(symmetric_type) , intent(in) :: classA
4753 end subroutine
4754#endif
4755
4756#if IK2_ENABLED
4757 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK2(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4758#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4759 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK2
4760#endif
4761 use pm_kind, only: IKG => IK2
4762 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4763 integer(IKG) , intent(in) :: alpha, beta
4764 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4765 integer(IKG) , intent(in) , contiguous :: matB(:)
4766 integer(IKG) , intent(inout) , contiguous :: matC(:)
4767 type(lowDia_type) , intent(in) :: subsetA
4768 type(symmetric_type) , intent(in) :: classA
4769 end subroutine
4770#endif
4771
4772#if IK1_ENABLED
4773 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_IK1(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4775 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_IK1
4776#endif
4777 use pm_kind, only: IKG => IK1
4778 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4779 integer(IKG) , intent(in) :: alpha, beta
4780 integer(IKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4781 integer(IKG) , intent(in) , contiguous :: matB(:)
4782 integer(IKG) , intent(inout) , contiguous :: matC(:)
4783 type(lowDia_type) , intent(in) :: subsetA
4784 type(symmetric_type) , intent(in) :: classA
4785 end subroutine
4786#endif
4787
4788 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4789
4790#if CK5_ENABLED
4791 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK5(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4793 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK5
4794#endif
4795 use pm_kind, only: CKG => CK5
4796 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4797 complex(CKG) , intent(in) :: alpha, beta
4798 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4799 complex(CKG) , intent(in) , contiguous :: matB(:)
4800 complex(CKG) , intent(inout) , contiguous :: matC(:)
4801 type(lowDia_type) , intent(in) :: subsetA
4802 type(symmetric_type) , intent(in) :: classA
4803 end subroutine
4804#endif
4805
4806#if CK4_ENABLED
4807 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK4(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4809 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK4
4810#endif
4811 use pm_kind, only: CKG => CK4
4812 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4813 complex(CKG) , intent(in) :: alpha, beta
4814 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4815 complex(CKG) , intent(in) , contiguous :: matB(:)
4816 complex(CKG) , intent(inout) , contiguous :: matC(:)
4817 type(lowDia_type) , intent(in) :: subsetA
4818 type(symmetric_type) , intent(in) :: classA
4819 end subroutine
4820#endif
4821
4822#if CK3_ENABLED
4823 PURE module subroutine symv_EXP_CSA_SLA_CNB_SFB_CK3(matA, classA, subsetA, matB, matC, alpha, beta, ndim, roffA, coffA, incB, incC)
4824#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4825 !DEC$ ATTRIBUTES DLLEXPORT :: symv_EXP_CSA_SLA_CNB_SFB_CK3
4826#endif
4827 use pm_kind, only: CKG => CK3
4828 integer(IK) , intent(in) :: ndim, roffA, coffA, incB, incC
4829 complex(CKG) , intent(in) :: alpha, beta
4830 complex(CKG) , intent(in) , contiguous :: matA(1 - roffA :, 1 - coffA :)
4831 complex(CKG) , intent(in) , contiguous :: matB(:)
4832 complex(CKG) , intent(inout) , contiguous :: matC(:)
4833 type(lowDia_type) ,