38 subroutine dswap(n, dx, incx, dy, incy)
39 use,
intrinsic :: iso_fortran_env
41 integer,
intent(in) :: n, incx, incy
42 real(real64),
intent(inout) :: dx, dy
45 subroutine zswap(n, dx, incx, dy, incy)
46 use,
intrinsic :: iso_fortran_env
48 integer,
intent(in) :: n, incx, incy
49 complex(real64),
intent(inout) :: dx, dy
52 subroutine sswap(n, dx, incx, dy, incy)
53 use,
intrinsic :: iso_fortran_env
55 integer,
intent(in) :: n, incx, incy
56 real(real32),
intent(inout) :: dx, dy
59 subroutine cswap(n, dx, incx, dy, incy)
60 use,
intrinsic :: iso_fortran_env
62 integer,
intent(in) :: n, incx, incy
63 complex(real32),
intent(inout) :: dx, dy
70 subroutine dscal(n, da, dx, incx)
71 use,
intrinsic :: iso_fortran_env
73 integer,
intent(in) :: n, incx
74 real(real64),
intent(in) :: da
75 real(real64),
intent(inout) :: dx
78 subroutine zscal(n, da, dx, incx)
79 use,
intrinsic :: iso_fortran_env
81 integer,
intent(in) :: n, incx
82 complex(real64),
intent(in) :: da
83 complex(real64),
intent(inout) :: dx
86 subroutine zdscal(n, da, dx, incx)
87 use,
intrinsic :: iso_fortran_env
89 integer,
intent(in) :: n, incx
90 real(real64),
intent(in) :: da
91 complex(real64),
intent(inout) :: dx
94 subroutine sscal(n, da, dx, incx)
95 use,
intrinsic :: iso_fortran_env
97 integer,
intent(in) :: n, incx
98 real(real32),
intent(in) :: da
99 real(real32),
intent(inout) :: dx
102 subroutine cscal(n, da, dx, incx)
103 use,
intrinsic :: iso_fortran_env
105 integer,
intent(in) :: n, incx
106 complex(real32),
intent(in) :: da
107 complex(real32),
intent(inout) :: dx
110 subroutine csscal(n, da, dx, incx)
111 use,
intrinsic :: iso_fortran_env
113 integer,
intent(in) :: n, incx
114 real(real32),
intent(in) :: da
115 complex(real32),
intent(inout) :: dx
116 end subroutine csscal
122 subroutine daxpy (n, da, dx, incx, dy, incy)
123 use,
intrinsic :: iso_fortran_env
125 integer,
intent(in) :: n, incx, incy
126 real(real64),
intent(in) :: da, dx
127 real(real64),
intent(inout) :: dy
130 subroutine zaxpy (n, da, dx, incx, dy, incy)
131 use,
intrinsic :: iso_fortran_env
133 integer,
intent(in) :: n, incx, incy
134 complex(real64),
intent(in) :: da, dx
135 complex(real64),
intent(inout) :: dy
138 subroutine saxpy (n, da, dx, incx, dy, incy)
139 use,
intrinsic :: iso_fortran_env
141 integer,
intent(in) :: n, incx, incy
142 real(real32),
intent(in) :: da, dx
143 real(real32),
intent(inout) :: dy
146 subroutine caxpy (n, da, dx, incx, dy, incy)
147 use,
intrinsic :: iso_fortran_env
149 integer,
intent(in) :: n, incx, incy
150 complex(real32),
intent(in) :: da, dx
151 complex(real32),
intent(inout) :: dy
161 subroutine dcopy(n, dx, incx, dy, incy)
162 use,
intrinsic :: iso_fortran_env
164 integer,
intent(in) :: n, incx, incy
165 real(real64),
intent(in) :: dx
166 real(real64),
intent(out) :: dy
169 subroutine zcopy(n, dx, incx, dy, incy)
170 use,
intrinsic :: iso_fortran_env
172 integer,
intent(in) :: n, incx, incy
173 complex(real64),
intent(in) :: dx
174 complex(real64),
intent(out) :: dy
177 subroutine scopy(n, dx, incx, dy, incy)
178 use,
intrinsic :: iso_fortran_env
180 integer,
intent(in) :: n, incx, incy
181 real(real32),
intent(in) :: dx
182 real(real32),
intent(out) :: dy
185 subroutine ccopy(n, dx, incx, dy, incy)
186 use,
intrinsic :: iso_fortran_env
188 integer,
intent(in) :: n, incx, incy
189 complex(real32),
intent(in) :: dx
190 complex(real32),
intent(out) :: dy
197 real(real64) function ddot(n, dx, incx, dy, incy)
198 use,
intrinsic :: iso_fortran_env
200 integer,
intent(in) :: n, incx, incy
201 real(real64),
intent(in) :: dx, dy
204#if defined(HAVE_ACCELERATE)
205 module procedure zdotc
207 complex(real64) function zdotc(n, dx, incx, dy, incy)
208 use,
intrinsic :: iso_fortran_env
210 integer,
intent(in) :: n, incx, incy
211 complex(real64),
intent(in) :: dx, dy
217#if defined(HAVE_ACCELERATE)
218 module procedure zdotu
220 complex(real64) function zdotu(n, dx, incx, dy, incy)
221 use,
intrinsic :: iso_fortran_env
223 integer,
intent(in) :: n, incx, incy
224 complex(real64),
intent(in) :: dx, dy
236 real(real64) function dnrm2(n, dx, incx)
237 use,
intrinsic :: iso_fortran_env
239 integer,
intent(in) :: n, incx
240 real(real64),
intent(in) :: dx
243 real(real64) function dznrm2(n, dx, incx)
244 use,
intrinsic :: iso_fortran_env
246 integer,
intent(in) :: n, incx
247 complex(real64),
intent(in) :: dx
250 real(real32) function snrm2(n, dx, incx)
251 use,
intrinsic :: iso_fortran_env
253 integer,
intent(in) :: n, incx
254 real(real32),
intent(in) :: dx
257 real(real32) function scnrm2(n, dx, incx)
258 use,
intrinsic :: iso_fortran_env
260 integer,
intent(in) :: n, incx
261 complex(real32),
intent(in) :: dx
280 subroutine dsymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
281 use,
intrinsic :: iso_fortran_env
283 character(1),
intent(in) :: uplo
284 integer,
intent(in) :: n, lda, incx, incy
285 real(real64),
intent(in) :: alpha, beta
286 real(real64),
intent(in) :: a
287 real(real64),
intent(in) :: x
288 real(real64),
intent(inout) :: y
291 subroutine zsymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
292 use,
intrinsic :: iso_fortran_env
294 character(1),
intent(in) :: uplo
295 integer,
intent(in) :: n, lda, incx, incy
296 complex(real64),
intent(in) :: alpha, beta
297 complex(real64),
intent(in) :: a
298 complex(real64),
intent(in) :: x
299 complex(real64),
intent(inout) :: y
302 subroutine ssymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
303 use,
intrinsic :: iso_fortran_env
305 character(1),
intent(in) :: uplo
306 integer,
intent(in) :: n, lda, incx, incy
307 real(real32),
intent(in) :: alpha, beta
308 real(real32),
intent(in) :: a
309 real(real32),
intent(in) :: x
310 real(real32),
intent(inout) :: y
313 subroutine csymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
314 use,
intrinsic :: iso_fortran_env
316 character(1),
intent(in) :: uplo
317 integer,
intent(in) :: n, lda, incx, incy
318 complex(real32),
intent(in) :: alpha, beta
319 complex(real32),
intent(in) :: a
320 complex(real32),
intent(in) :: x
321 complex(real32),
intent(inout) :: y
339 subroutine dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
340 use,
intrinsic :: iso_fortran_env
342 character(1),
intent(in) :: trans
343 integer,
intent(in) :: m, n, lda, incx, incy
344 real(real64),
intent(in) :: alpha, beta
345 real(real64),
intent(in) :: a
346 real(real64),
intent(in) :: x
347 real(real64),
intent(inout) :: y
350 subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
351 use,
intrinsic :: iso_fortran_env
353 character(1),
intent(in) :: trans
354 integer,
intent(in) :: m, n, lda, incx, incy
355 complex(real64),
intent(in) :: alpha, beta
356 complex(real64),
intent(in) :: a
357 complex(real64),
intent(in) :: x
358 complex(real64),
intent(inout) :: y
361 subroutine sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
362 use,
intrinsic :: iso_fortran_env
364 character(1),
intent(in) :: trans
365 integer,
intent(in) :: m, n, lda, incx, incy
366 real(real32),
intent(in) :: alpha, beta
367 real(real32),
intent(in) :: a
368 real(real32),
intent(in) :: x
369 real(real32),
intent(inout) :: y
372 subroutine cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
373 use,
intrinsic :: iso_fortran_env
375 character(1),
intent(in) :: trans
376 integer,
intent(in) :: m, n, lda, incx, incy
377 complex(real32),
intent(in) :: alpha, beta
378 complex(real32),
intent(in) :: a
379 complex(real32),
intent(in) :: x
380 complex(real32),
intent(inout) :: y
406 subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
407 use,
intrinsic :: iso_fortran_env
409 character(1),
intent(in) :: transa, transb
410 integer,
intent(in) :: m, n, k, lda, ldb, ldc
411 real(real64),
intent(in) :: alpha, beta
412 real(real64),
intent(in) :: a
413 real(real64),
intent(in) :: b
414 real(real64),
intent(inout) :: c
417 subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
418 use,
intrinsic :: iso_fortran_env
420 character(1),
intent(in) :: transa, transb
421 integer,
intent(in) :: m, n, k, lda, ldb, ldc
422 complex(real64),
intent(in) :: alpha, beta
423 complex(real64),
intent(in) :: a
424 complex(real64),
intent(in) :: b
425 complex(real64),
intent(inout) :: c
430 subroutine sgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
431 use,
intrinsic :: iso_fortran_env
433 character(1),
intent(in) :: transa, transb
434 integer,
intent(in) :: m, n, k, lda, ldb, ldc
435 real(real32),
intent(in) :: alpha, beta
436 real(real32),
intent(in) :: a
437 real(real32),
intent(in) :: b
438 real(real32),
intent(inout) :: c
441 subroutine cgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
442 use,
intrinsic :: iso_fortran_env
444 character(1),
intent(in) :: transa, transb
445 integer,
intent(in) :: m, n, k, lda, ldb, ldc
446 complex(real32),
intent(in) :: alpha, beta
447 complex(real32),
intent(in) :: a
448 complex(real32),
intent(in) :: b
449 complex(real32),
intent(inout) :: c
468 subroutine dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
469 use,
intrinsic :: iso_fortran_env
471 character(1),
intent(in) :: side, uplo, transa, diag
472 integer,
intent(in) :: m, n, lda, ldb
473 real(real64),
intent(in) :: a, alpha
474 real(real64),
intent(inout) :: b
477 subroutine ztrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
478 use,
intrinsic :: iso_fortran_env
480 character(1),
intent(in) :: side, uplo, transa, diag
481 integer,
intent(in) :: m, n, lda, ldb
482 complex(real64),
intent(in) :: a, alpha
483 complex(real64),
intent(inout) :: b
486 subroutine strmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
487 use,
intrinsic :: iso_fortran_env
489 character(1),
intent(in) :: side, uplo, transa, diag
490 integer,
intent(in) :: m, n, lda, ldb
491 real(real32),
intent(in) :: a, alpha
492 real(real32),
intent(inout) :: b
495 subroutine ctrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
496 use,
intrinsic :: iso_fortran_env
498 character(1),
intent(in) :: side, uplo, transa, diag
499 integer,
intent(in) :: m, n, lda, ldb
500 complex(real32),
intent(in) :: a, alpha
501 complex(real32),
intent(inout) :: b
521 subroutine dsymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
522 use,
intrinsic :: iso_fortran_env
524 character(1),
intent(in) :: side, uplo
525 integer,
intent(in) :: m, n, lda, ldb, ldc
526 real(real64),
intent(in) :: alpha, beta, a, b
527 real(real64),
intent(inout) :: c
530 subroutine zsymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
531 use,
intrinsic :: iso_fortran_env
533 character(1),
intent(in) :: side, uplo
534 integer,
intent(in) :: m, n, lda, ldb, ldc
535 complex(real64),
intent(in) :: alpha, beta, a, b
536 complex(real64),
intent(inout) :: c
539 subroutine ssymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
540 use,
intrinsic :: iso_fortran_env
542 character(1),
intent(in) :: side, uplo
543 integer,
intent(in) :: m, n, lda, ldb, ldc
544 real(real32),
intent(in) :: alpha, beta, a, b
545 real(real32),
intent(inout) :: c
548 subroutine csymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
549 use,
intrinsic :: iso_fortran_env
551 character(1),
intent(in) :: side, uplo
552 integer,
intent(in) :: m, n, lda, ldb, ldc
553 complex(real32),
intent(in) :: alpha, beta, a, b
554 complex(real32),
intent(inout) :: c
575 subroutine dsyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
576 use,
intrinsic :: iso_fortran_env
578 character(1),
intent(in) :: uplo, trans
579 integer,
intent(in) :: n, k, lda, ldc
580 real(real64),
intent(in) :: alpha, beta, a
581 real(real64),
intent(inout) :: c
584 subroutine zherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
585 use,
intrinsic :: iso_fortran_env
587 character(1),
intent(in) :: uplo, trans
588 integer,
intent(in) :: n, k, lda, ldc
589 real(real64),
intent(in) :: alpha, beta
590 complex(real64),
intent(in) :: a
591 complex(real64),
intent(inout) :: c
616 subroutine dtrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
617 use,
intrinsic :: iso_fortran_env
619 character(1),
intent(in) :: side
620 character(1),
intent(in) :: uplo
621 character(1),
intent(in) :: transa
622 character(1),
intent(in) :: diag
623 integer,
intent(in) :: m
624 integer,
intent(in) :: n
625 real(real64),
intent(in) :: alpha
626 real(real64),
intent(in) :: a
627 integer,
intent(in) :: lda
628 real(real64),
intent(inout) :: b
629 integer,
intent(in) :: ldb
632 subroutine ztrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
633 use,
intrinsic :: iso_fortran_env
635 character(1),
intent(in) :: side
636 character(1),
intent(in) :: uplo
637 character(1),
intent(in) :: transa
638 character(1),
intent(in) :: diag
639 integer,
intent(in) :: m
640 integer,
intent(in) :: n
641 complex(real64),
intent(in) :: alpha
642 complex(real64),
intent(in) :: a
643 integer,
intent(in) :: lda
644 complex(real64),
intent(inout) :: b
645 integer,
intent(in) :: ldb
651#if defined(HAVE_ACCELERATE)
659 complex(real64) function zdotc(n, dx, incx, dy, incy)
660 use,
intrinsic :: iso_c_binding
661 use,
intrinsic :: iso_fortran_env
663 integer,
intent(in) :: n, incx, incy
664 complex(real64),
intent(in) :: dx, dy
667 subroutine cblas_zdotc_sub(n, x, incx, y, incy, dotc)
bind(c, name="cblas_zdotc_sub")
668 use,
intrinsic :: iso_c_binding
670 integer(c_int),
intent(in),
value :: n, incx, incy
671 complex(c_double_complex),
intent(in) :: x, y
672 complex(c_double_complex),
intent(out) :: dotc
685 complex(real64) function zdotu(n, dx, incx, dy, incy)
686 use,
intrinsic :: iso_c_binding
687 use,
intrinsic :: iso_fortran_env
689 integer,
intent(in) :: n, incx, incy
690 complex(real64),
intent(in) :: dx, dy
693 subroutine cblas_zdotu_sub(n, x, incx, y, incy, dotu)
bind(c, name="cblas_zdotu_sub")
694 use,
intrinsic :: iso_c_binding
696 integer(c_int),
intent(in),
value :: n, incx, incy
697 complex(c_double_complex),
intent(in) :: x, y
698 complex(c_double_complex),
intent(out) :: dotu
713 subroutine dazaxpy(n, da, dx, dy)
714 use,
intrinsic :: iso_c_binding
715 use,
intrinsic :: iso_fortran_env
717 integer,
intent(in) :: n
718 real(real64),
intent(in) :: da
719 complex(real64),
intent(in),
target :: dx
720 complex(real64),
intent(inout),
target :: dy
722 real(real64),
pointer :: rx, ry
726 call c_f_pointer(c_loc(dx), rx)
727 call c_f_pointer(c_loc(dy), ry)
737 subroutine sacaxpy(n, da, dx, dy)
738 use,
intrinsic :: iso_c_binding
739 use,
intrinsic :: iso_fortran_env
741 integer,
intent(in) :: n
742 real(real32),
intent(in) :: da
743 complex(real32),
intent(in),
target :: dx
744 complex(real32),
intent(inout),
target :: dy
746 real(real32),
pointer :: rx, ry
750 call c_f_pointer(c_loc(dx), rx)
751 call c_f_pointer(c_loc(dy), ry)
762 subroutine zdgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
763 use,
intrinsic :: iso_c_binding
764 use,
intrinsic :: iso_fortran_env
766 character(1),
intent(in) :: transa, transb
767 integer,
intent(in) :: m, n, k, lda, ldb, ldc
768 real(real64),
intent(in) :: alpha, beta
769 complex(real64),
intent(in),
target :: a
770 real(real64),
intent(in) :: b
771 complex(real64),
intent(inout),
target :: c
773 real(real64),
pointer :: ra, rc
777 call c_f_pointer(c_loc(a), ra)
778 call c_f_pointer(c_loc(c), rc)
780 call blas_gemm(transa, transb, m, n, k, alpha, ra, lda, b, ldb, beta, rc, ldc)
--------------— axpy ---------------— Constant times a vector plus a vector.
--------------— copy ---------------— Copies a vector, x, to a vector, y.
--------------— dot ---------------— Forms the dot product of two vectors.
--------------— gemm ---------------— performs one of the matrix-matrix operations
--------------— gemv ---------------— SGEMV performs one of the matrix-vector operations
--------------— syrk, herk ---------------— performs one of the symmetric rank k operations
--------------— nrm2 ---------------— Returns the euclidean norm of a vector via the function name,...
--------------— scal ---------------— Scales a vector by a constant.
--------------— swap ---------------— Interchanges two vectors.
--------------— symm, hemm ---------------— performs one of the matrix-matrix operations
--------------— symv ---------------— performs the matrix-vector operation
--------------— trmm ---------------— Performs one of the matrix-matrix operations
--------------------—trsm----------------------— Solves one of the matrix equations
void cblas_zdotc_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotc)
void cblas_zdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu)
This module contains interfaces for BLAS routines You should not use these routines directly....
subroutine zdgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
A real matrix multiplying a complex one, added to a complex matrix.
subroutine dazaxpy(n, da, dx, dy)
A real constant times a complex vector plus a complex vector.
subroutine sacaxpy(n, da, dx, dy)
A real constant times a complex vector plus a complex vector, in single precision.