75 integer,
parameter :: wp = kind(0.0d0)
76 integer,
intent(in) :: lda
77 integer,
intent(in) :: ldb
78 integer,
intent(in) :: n
79 integer,
intent(in) :: nrhs
80 integer,
intent(out) :: info
81 integer,
intent(out),
target :: ipiv(*)
82 complex(kind=wp),
intent(inout),
target :: a(lda,*)
83 complex(kind=wp),
intent(inout),
target :: b(ldb,*)
84 if (.not. plasma_initialized) call
plasma_init(24,info)
93 integer,
parameter :: wp = kind(0.0d0)
94 integer,
intent(in) :: lda
95 integer,
intent(in) :: m
96 integer,
intent(in) :: n
97 integer,
intent(out) :: info
98 integer,
intent(out),
target :: ipiv(*)
99 complex(kind=wp),
intent(inout),
target :: a(lda,*)
100 if (.not. plasma_initialized) call
plasma_init(24,info)
109 integer,
parameter :: wp = kind(0.0d0)
110 integer,
intent(in) :: lda
111 integer,
intent(in) :: ldb
112 integer,
intent(in) :: n
113 integer,
intent(in) :: nrhs
114 integer,
intent(in),
target :: ipiv(*)
115 integer,
intent(out) :: info
116 character,
intent(in) ::
trans
117 complex(kind=wp),
intent(in),
target :: a(lda,*)
118 complex(kind=wp),
intent(inout),
target :: b(ldb,*)
119 integer :: local_trans
121 local_trans = plasmanotrans
123 local_trans = plasmatrans
125 local_trans = plasmaconjtrans
129 if (.not. plasma_initialized) call
plasma_init(24,info)
138 integer,
parameter :: wp = kind(0.0d0)
139 integer,
intent(in) ::
itype
140 integer,
intent(in) :: lda
141 integer,
intent(in) :: ldb
142 integer,
intent(in) :: n
143 integer,
intent(out) :: info
144 character,
intent(in) ::
uplo
145 complex(kind=wp),
intent(in),
target :: b(ldb,*)
146 complex(kind=wp),
intent(inout),
target :: a(lda,*)
147 integer :: local_uplo
149 local_uplo = plasmaupper
150 else if(
uplo==
'L' .or.
uplo==
'l')
then
151 local_uplo = plasmalower
155 if (.not. plasma_initialized) call
plasma_init(24,info)
164 integer,
parameter :: wp = kind(0.0d0)
165 integer,
intent(in) :: incx
166 integer,
intent(in) :: k1
167 integer,
intent(in) :: k2
168 integer,
intent(in) :: lda
169 integer,
intent(in) :: n
170 integer,
intent(in),
target :: ipiv(*)
171 complex(kind=wp),
intent(inout),
target :: a(lda,*)
173 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
182 integer,
parameter :: wp = kind(0.0d0)
183 integer,
intent(in) :: lda
184 integer,
intent(in) :: n
185 integer,
intent(out) :: info
186 character,
intent(in) ::
uplo
187 complex(kind=wp),
intent(inout),
target :: a(lda,*)
188 integer :: local_uplo
190 local_uplo = plasmaupper
191 else if(
uplo==
'L' .or.
uplo==
'l')
then
192 local_uplo = plasmalower
196 if (.not. plasma_initialized) call
plasma_init(24,info)
205 integer,
parameter :: wp = kind(0.0d0)
206 integer,
intent(in) :: lda
207 integer,
intent(in) :: ldb
208 integer,
intent(in) :: n
209 integer,
intent(in) :: nrhs
210 integer,
intent(out) :: info
211 character,
intent(in) ::
uplo
212 complex(kind=wp),
intent(inout),
target :: a(lda,*)
213 complex(kind=wp),
intent(inout),
target :: b(ldb,*)
214 integer :: local_uplo
216 local_uplo = plasmaupper
217 else if(
uplo==
'L' .or.
uplo==
'l')
then
218 local_uplo = plasmalower
222 if (.not. plasma_initialized) call
plasma_init(24,info)
231 integer,
parameter :: wp = kind(0.0d0)
232 integer,
intent(in) :: lda
233 integer,
intent(in) :: n
234 integer,
intent(out) :: info
235 character,
intent(in) ::
uplo
236 complex(kind=wp),
intent(inout),
target :: a(lda,*)
237 integer :: local_uplo
239 local_uplo = plasmaupper
240 else if(
uplo==
'L' .or.
uplo==
'l')
then
241 local_uplo = plasmalower
245 if (.not. plasma_initialized) call
plasma_init(24,info)
254 integer,
parameter :: wp = kind(0.0d0)
255 integer,
intent(in) :: lda
256 integer,
intent(in) :: n
257 integer,
intent(out) :: info
258 character,
intent(in) ::
uplo
259 complex(kind=wp),
intent(inout),
target :: a(lda,*)
260 integer :: local_uplo
262 local_uplo = plasmaupper
263 else if(
uplo==
'L' .or.
uplo==
'l')
then
264 local_uplo = plasmalower
268 if (.not. plasma_initialized) call
plasma_init(24,info)
277 integer,
parameter :: wp = kind(0.0d0)
278 integer,
intent(in) :: lda
279 integer,
intent(in) :: ldb
280 integer,
intent(in) :: n
281 integer,
intent(in) :: nrhs
282 integer,
intent(out) :: info
283 character,
intent(in) ::
uplo
284 complex(kind=wp),
intent(in),
target :: a(lda,*)
285 complex(kind=wp),
intent(inout),
target :: b(ldb,*)
286 integer :: local_uplo
288 local_uplo = plasmaupper
289 else if(
uplo==
'L' .or.
uplo==
'l')
then
290 local_uplo = plasmalower
294 if (.not. plasma_initialized) call
plasma_init(24,info)
303 integer,
parameter :: wp = kind(0.0d0)
304 integer,
intent(in) :: lda
305 integer,
intent(in) :: n
306 integer,
intent(out) :: info
307 character,
intent(in) ::
diag
308 character,
intent(in) ::
uplo
309 complex(kind=wp),
intent(inout),
target :: a(lda,*)
310 integer :: local_diag
311 integer :: local_uplo
313 local_uplo = plasmaupper
314 else if(
uplo==
'L' .or.
uplo==
'l')
then
315 local_uplo = plasmalower
320 local_diag = plasmaunit
321 else if(
diag==
'N' .or.
diag==
'n')
then
322 local_diag = plasmanonunit
326 if (.not. plasma_initialized) call
plasma_init(24,info)
331 subroutine plasma_wrap_zgemm(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
335 integer,
parameter :: wp = kind(0.0d0)
336 integer,
intent(in) :: k
337 integer,
intent(in) :: lda
338 integer,
intent(in) :: ldb
339 integer,
intent(in) :: ldc
340 integer,
intent(in) :: m
341 integer,
intent(in) :: n
342 character,
intent(in) :: transa
343 character,
intent(in) :: transb
344 complex(kind=wp),
intent(in) :: alpha
345 complex(kind=wp),
intent(in) :: beta
346 complex(kind=wp),
intent(in),
target :: a(lda,*)
347 complex(kind=wp),
intent(in),
target :: b(ldb,*)
348 complex(kind=wp),
intent(inout),
target :: c(ldc,*)
349 integer :: local_transa
350 integer :: local_transb
352 if(transa==
'N' .or. transa==
'n')
then
353 local_transa = plasmanotrans
354 else if(transa==
'T' .or. transa==
't')
then
355 local_transa = plasmatrans
356 else if(transa==
'C' .or. transa==
'c')
then
357 local_transa = plasmaconjtrans
361 if(transb==
'N' .or. transb==
'n')
then
362 local_transb = plasmanotrans
363 else if(transb==
'T' .or. transb==
't')
then
364 local_transb = plasmatrans
365 else if(transb==
'C' .or. transb==
'c')
then
366 local_transb = plasmaconjtrans
370 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
372 call
plasma_zgemm(local_transa,local_transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc,local_ret)
375 #if defined(PRECISION_z) || defined(PRECISION_c)
376 subroutine plasma_wrap_zhemm(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
380 integer,
parameter :: wp = kind(0.0d0)
381 integer,
intent(in) :: lda
382 integer,
intent(in) :: ldb
383 integer,
intent(in) :: ldc
384 integer,
intent(in) :: m
385 integer,
intent(in) :: n
386 character,
intent(in) ::
side
387 character,
intent(in) ::
uplo
388 complex(kind=wp),
intent(in) :: alpha
389 complex(kind=wp),
intent(in) :: beta
390 complex(kind=wp),
intent(in),
target :: a(lda,*)
391 complex(kind=wp),
intent(in),
target :: b(ldb,*)
392 complex(kind=wp),
intent(inout),
target :: c(ldc,*)
393 integer :: local_side
394 integer :: local_uplo
397 local_side = plasmaleft
398 else if(
side==
'R' .or.
side==
'r')
then
399 local_side = plasmaright
404 local_uplo = plasmaupper
405 else if(
uplo==
'L' .or.
uplo==
'l')
then
406 local_uplo = plasmalower
410 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
412 call
plasma_zhemm(local_side,local_uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc,local_ret)
415 subroutine plasma_wrap_zher2k(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
419 integer,
parameter :: wp = kind(0.0d0)
420 integer,
intent(in) :: k
421 integer,
intent(in) :: lda
422 integer,
intent(in) :: ldb
423 integer,
intent(in) :: ldc
424 integer,
intent(in) :: n
425 character,
intent(in) ::
trans
426 character,
intent(in) ::
uplo
427 complex(kind=wp),
intent(in) :: alpha
428 complex(kind=wp),
intent(in),
target :: a(lda,*)
429 complex(kind=wp),
intent(in),
target :: b(ldb,*)
430 complex(kind=wp),
intent(inout),
target :: c(ldc,*)
431 double precision,
intent(in) :: beta
432 integer :: local_trans
433 integer :: local_uplo
436 local_uplo = plasmaupper
437 else if(
uplo==
'L' .or.
uplo==
'l')
then
438 local_uplo = plasmalower
443 local_trans = plasmanotrans
445 local_trans = plasmatrans
447 local_trans = plasmaconjtrans
451 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
453 call
plasma_zher2k(local_uplo,local_trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc,local_ret)
460 integer,
parameter :: wp = kind(0.0d0)
461 integer,
intent(in) :: k
462 integer,
intent(in) :: lda
463 integer,
intent(in) :: ldc
464 integer,
intent(in) :: n
465 character,
intent(in) ::
trans
466 character,
intent(in) ::
uplo
467 complex(kind=wp),
intent(in),
target :: a(lda,*)
468 complex(kind=wp),
intent(inout),
target :: c(ldc,*)
469 double precision,
intent(in) :: alpha
470 double precision,
intent(in) :: beta
471 integer :: local_trans
472 integer :: local_uplo
475 local_uplo = plasmaupper
476 else if(
uplo==
'L' .or.
uplo==
'l')
then
477 local_uplo = plasmalower
482 local_trans = plasmanotrans
484 local_trans = plasmatrans
486 local_trans = plasmaconjtrans
490 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
492 call
plasma_zherk(local_uplo,local_trans,n,k,alpha,a,lda,beta,c,ldc,local_ret)
496 subroutine plasma_wrap_zsymm(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
500 integer,
parameter :: wp = kind(0.0d0)
501 integer,
intent(in) :: lda
502 integer,
intent(in) :: ldb
503 integer,
intent(in) :: ldc
504 integer,
intent(in) :: m
505 integer,
intent(in) :: n
506 character,
intent(in) ::
side
507 character,
intent(in) ::
uplo
508 complex(kind=wp),
intent(in) :: alpha
509 complex(kind=wp),
intent(in) :: beta
510 complex(kind=wp),
intent(in),
target :: a(lda,*)
511 complex(kind=wp),
intent(in),
target :: b(ldb,*)
512 complex(kind=wp),
intent(inout),
target :: c(ldc,*)
513 integer :: local_side
514 integer :: local_uplo
517 local_side = plasmaleft
518 else if(
side==
'R' .or.
side==
'r')
then
519 local_side = plasmaright
524 local_uplo = plasmaupper
525 else if(
uplo==
'L' .or.
uplo==
'l')
then
526 local_uplo = plasmalower
530 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
532 call
plasma_zsymm(local_side,local_uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc,local_ret)
535 subroutine plasma_wrap_zsyr2k(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
539 integer,
parameter :: wp = kind(0.0d0)
540 integer,
intent(in) :: k
541 integer,
intent(in) :: lda
542 integer,
intent(in) :: ldb
543 integer,
intent(in) :: ldc
544 integer,
intent(in) :: n
545 character,
intent(in) ::
trans
546 character,
intent(in) ::
uplo
547 complex(kind=wp),
intent(in) :: alpha
548 complex(kind=wp),
intent(in) :: beta
549 complex(kind=wp),
intent(in),
target :: a(lda,*)
550 complex(kind=wp),
intent(in),
target :: b(ldb,*)
551 complex(kind=wp),
intent(inout),
target :: c(ldc,*)
552 integer :: local_trans
553 integer :: local_uplo
556 local_uplo = plasmaupper
557 else if(
uplo==
'L' .or.
uplo==
'l')
then
558 local_uplo = plasmalower
563 local_trans = plasmanotrans
565 local_trans = plasmatrans
567 local_trans = plasmaconjtrans
571 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
573 call
plasma_zsyr2k(local_uplo,local_trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc,local_ret)
580 integer,
parameter :: wp = kind(0.0d0)
581 integer,
intent(in) :: k
582 integer,
intent(in) :: lda
583 integer,
intent(in) :: ldc
584 integer,
intent(in) :: n
585 character,
intent(in) ::
trans
586 character,
intent(in) ::
uplo
587 complex(kind=wp),
intent(in) :: alpha
588 complex(kind=wp),
intent(in) :: beta
589 complex(kind=wp),
intent(in),
target :: a(lda,*)
590 complex(kind=wp),
intent(inout),
target :: c(ldc,*)
591 integer :: local_trans
592 integer :: local_uplo
595 local_uplo = plasmaupper
596 else if(
uplo==
'L' .or.
uplo==
'l')
then
597 local_uplo = plasmalower
602 local_trans = plasmanotrans
604 local_trans = plasmatrans
606 local_trans = plasmaconjtrans
610 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
612 call
plasma_zsyrk(local_uplo,local_trans,n,k,alpha,a,lda,beta,c,ldc,local_ret)
615 subroutine plasma_wrap_ztrmm(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
619 integer,
parameter :: wp = kind(0.0d0)
620 integer,
intent(in) :: lda
621 integer,
intent(in) :: ldb
622 integer,
intent(in) :: m
623 integer,
intent(in) :: n
624 character,
intent(in) ::
diag
625 character,
intent(in) ::
side
626 character,
intent(in) :: transa
627 character,
intent(in) ::
uplo
628 complex(kind=wp),
intent(in) :: alpha
629 complex(kind=wp),
intent(in),
target :: a(lda,*)
630 complex(kind=wp),
intent(inout),
target :: b(ldb,*)
631 integer :: local_diag
632 integer :: local_side
633 integer :: local_transa
634 integer :: local_uplo
637 local_side = plasmaleft
638 else if(
side==
'R' .or.
side==
'r')
then
639 local_side = plasmaright
644 local_uplo = plasmaupper
645 else if(
uplo==
'L' .or.
uplo==
'l')
then
646 local_uplo = plasmalower
650 if(transa==
'N' .or. transa==
'n')
then
651 local_transa = plasmanotrans
652 else if(transa==
'T' .or. transa==
't')
then
653 local_transa = plasmatrans
654 else if(transa==
'C' .or. transa==
'c')
then
655 local_transa = plasmaconjtrans
660 local_diag = plasmaunit
661 else if(
diag==
'N' .or.
diag==
'n')
then
662 local_diag = plasmanonunit
666 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
668 call
plasma_ztrmm(local_side,local_uplo,local_transa,local_diag,m,n,alpha,a,lda,b,ldb,local_ret)
671 subroutine plasma_wrap_ztrsm(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
675 integer,
parameter :: wp = kind(0.0d0)
676 integer,
intent(in) :: lda
677 integer,
intent(in) :: ldb
678 integer,
intent(in) :: m
679 integer,
intent(in) :: n
680 character,
intent(in) ::
diag
681 character,
intent(in) ::
side
682 character,
intent(in) :: transa
683 character,
intent(in) ::
uplo
684 complex(kind=wp),
intent(in) :: alpha
685 complex(kind=wp),
intent(in),
target :: a(lda,*)
686 complex(kind=wp),
intent(inout),
target :: b(ldb,*)
687 integer :: local_diag
688 integer :: local_side
689 integer :: local_transa
690 integer :: local_uplo
693 local_side = plasmaleft
694 else if(
side==
'R' .or.
side==
'r')
then
695 local_side = plasmaright
700 local_uplo = plasmaupper
701 else if(
uplo==
'L' .or.
uplo==
'l')
then
702 local_uplo = plasmalower
706 if(transa==
'N' .or. transa==
'n')
then
707 local_transa = plasmanotrans
708 else if(transa==
'T' .or. transa==
't')
then
709 local_transa = plasmatrans
710 else if(transa==
'C' .or. transa==
'c')
then
711 local_transa = plasmaconjtrans
716 local_diag = plasmaunit
717 else if(
diag==
'N' .or.
diag==
'n')
then
718 local_diag = plasmanonunit
722 if (.not. plasma_initialized) call
plasma_init(24,local_ret)
724 call
plasma_ztrsm(local_side,local_uplo,local_transa,local_diag,m,n,alpha,a,lda,b,ldb,local_ret)