Quadruple Precision
BLAS Routines
QPBLAS Ver.1.0
User’s Manual

July, 2013
Japan Atomic Energy Agency

Contents
1

Overview ......................................................................................................................32

Basic Linear Algebra Subprograms (BLAS)..............................................................4

3

Quadruple precision algorithm ..................................................................................44

Reference......................................................................................................................55

Directory structure......................................................................................................56

Installation ..................................................................................................................6

7

Verification and performance evaluation programs .................................................88

Sample programs ........................................................................................................99

Subroutines details .................................................................................................. 13

1 Overview
The R&D Office of Simulation Technology at the Center for Computational Science &e-Systems in the Japan Atomic Energy Agency has been working on research anddevelopment (R&D) for computational techniques relevant to one of the R&D targets inthe mid-term plan for the second mid-term, "developing high-precision simulation
technologies that can be used for clarification of degradation phenomena of thestructural materials of a nuclear reactor, prediction of the material properties offuel-related actinide compounds, clarification of the relationship between the structureand function of the highly-efficient thermoelectric materials, electric power supply
materials, and superconducting materials." In the aforementioned plan, it is a common
challenge of computational science to develop numerical calculation techniques for use
in the study of material properties, and it is indispensable to develop methods toaccurately calculate an electronic state based on quantum mechanics (quantum
many-body problem). In order to accurately solve a quantum many-body problem, a verylarge degree of freedom must be handled without approximation, and therefore, it isrequired to conduct a large-scale numerical calculation while maintaining sufficientprecision. At present, a large-scale computation, such as solving a quantum many-bodyproblem, is made possible by using a parallel computer. As long as the total amount of
the available memory space collected from each processor is sufficiently large, aproblem as large as the computational resources allow is approachable. In contrast, asignificant amount of computational error accumulates during an actual large-scalecalculation for obtaining accurate quantum states because an enormous number ofoperations are required to do so. (A computer calculates with a certain number ofsignificant digits. At every calculation, a rounding error is added. The rounding errors
accumulate as the number of calculations increases.)
Until recently, the scale of a simulation was not sufficiently large to be problematic interms of its error, but it has been pointed out that, when a simulation that requires avery large scale computer such as the K computer to run at its maximum performance isconducted, the rounding errors may add up significantly, and the simulation result may
lose most of its significant digits. (It was actually observed that the result of an
eigenvalue problem that took all 4096 CPU nodes of a previous version of Earth
Simulator to calculate had only a couple of significant digits.)
Under the situation being as described above, extending BLAS, a library of routinesthat perform basic operations and are used frequently for a computer simulation, toquadruple precision is an R&D activity indispensable for facilitating a high-precisionvery-large-scale parallel simulation and is a high priority due to its universality
applicable to all large-scale simulations.
The R&D Office of Simulation Technology has converted all 40 BLAS routines toquadruple precision as well as parallelized them using OpenMP and made the libraries
public as "QPBLAS." The following explains how to use this library.

2 Basic Linear Algebra Subprograms (BLAS)
Basic Linear Algebra Subprograms (BLAS) is a high-quality numerical calculation
library of frequently used basic linear algebra operations. In 1979, the first code
implementation in FORTRAN was published. Since then, bindings to BLAS for avariety of programing languages including C/C++ have become available. Currently, theoperations included in BLAS can be used in many programing languages with almost
the same interface. In addition, extensions to BLAS, such as adding operations andoptimizing for parallel calculation, have been made. Well-known examples of thoseextended numerical calculation libraries include LAPACK, ATLAS, and Intel Kernel
Math Library (MKL).
Operations in BLAS can be divided into three levels according to the type of operation.
Level 1 consists of operations between two vectors. Level 2 consists of operations
between a matrix and a vector. Level 3 consists of operations between two matrices.

3 Quadruple precision algorithm
IEEE 754- compliant quadruple precision (128 bit) floating point operations havealready been implemented in some languages including the latest Fortran. But
hardware has not been optimized for those operations yet, and they are often executed
as arbitrary precision calculations. As a result, their calculation speed is extremely slow
compared to double precision operations.
In order to improve both precision and speed of the calculation, QPBLAS uses the
double-double algorithm proposed by D.H.Bailey, in which one quadruple precision
number is represented by a combination of two double precision numbers. The range
and precision of the numeric representation used in the double-double algorithm isslightly worse than those of the genuine quadruple precision because the representation

has two exponent parts but still almost doubled compared to the standard double
precision. This algorithm allows such high-precision calculations using just a
combination of double precision operations and therefore is highly effective for
implementing a large-scale high-precision simulation.

4 Reference
BaileyHD. High-Precision Software Directory.
http://crd-legacy.lbl.gov/~dhbailey/mpdist.
Susumu Yamada, Narimasa Sasa, Toshiyuki Imamura, and Masahiko Machida:“Introduction to quadruple precision basic linear algebra routines QPBLAS and its
application,” IPSJ SIG Technical Report, Vol. 2012-HPC-137, No. 23, pp. 1-6, 2012.

5 Directory structure
When you expand the compressed source code, the following directory structure iscreated.
.

├── ddblas

double-double quadruple precision BLAS routine├── qblas

128bit quadruple precision BLAS routine├── sample

sample programs└── test

operation verification/performance evaluation

programs

6 Installation
Enter the following commands to a terminal to create a Makefile that matches a user
environment and then compile.
tar xzf QPBLAS-version.tar.gz
cd QPBLAS-version./configure options
make
The major options you may consider using in the configure command and their
meanings are as follows.
FC=f90_compiler

Specifies the Fortran compiler.

FCFLAGS=options

Specifies compile options and parallel
computation and optimization settings.

LDFLAGS=options

Specifies link options.

--prefix=path

Changes the install directory.

--disable-openmp

Disables parallel processing via OpenMP.
If this option is not specified, parallel
processing is enabled using OpenMP.

--without-dblas

Specifies whether to compile the double
precision BLAS library.
If this option is specified, the BLAS double
precision routines used in a part of the test
programs are not compiled, and theexisting library specified by LDFLAGS orothers is used instead.

By default, the double precision BLAS
library is compiled.
Examples of minimum options of the configure command necessary for compile are as
follows.
Example: When GNU Fortran is used./configure FC=gfortran
Example: When Intel Fortran is used./configure FC=ifort
Example: When Intel Fortran and MKL are used./configure --without-dblas FC=ifort LDFLAGS=-mkl
Example: When Intel Fortran and MKL are used without parallel processing via
OpenMP./configure --without-dblas --disable-openmp ¥FC=ifort LDFLAGS="-mkl=sequential"
Example: When PGI Fortran is used./configure FC=pgfortran
Example: When PGI Fortran and its BLAS library are used/configure --without-dblas FC=pgfortran LDFLAGS=-lblas
Example: When Parallelnavi Language Package Fortran is used./configure FC=frt FCFLAGS=-Am
If the make is successful, the following libraries and programs are created.
lib/libddblas.a

QPBLAS library

lib/libqblas.aQuadruple precision BLAS library (only if possible tocreate)lib/libdblas.a

Double precision BLAS library (only if necessary)test/level1

Verification program for Level 1

test/level2

Verification program for Level 2

test/level3

Verification program for Level 3

sample/ddnrm2_sample

Sample program using DDNRM2 routine

sample/ddgemv_sample

Sample program using DDGEMV routine

sample/ddtrsv_sample

Sample program using DDTRSV routine

sample/zzdotu_sample

Sample program using ZZDOTC routine

sample/zzhemm_sample

Sample program using ZZHEMM routine

sample/zzhemv_sample

Sample program using ZZHEMV routine

To install libddblas.a to the default location, enter the following command to aterminal. In this case, other libraries and programs are not installed.
make install

7 Verification

andperformance

evaluation

programs
After you follow the procedure in 6 and finish the compile process, enter the following
commands. Here, n is either 1, 2, or 3.
cd test./leveln
Then a menu screen including a list of QPBLAS routines at the specified level isdisplayed. If you enter a series of numbers in this menu screen, you can perform
verification and performance evaluation for the library. For example, the following
commands can be executed at level1.
1 ... 14

Executes the corresponding routine in QPBLAS, double precision BLAS,
and quadruple precision BLAS.
(Executed in quadruple precision BLAS only if possible.)75

Changes the length of the vector.
(Press Enter once. When asked to enter the new length, enter the value andpress Enter.)
96

Executes all routines at this level once in turn.
(for automated testing)97

Switches the ON/OFF setting of the detailed display for the input andoutput of the routine. (OFF at startup)98

Switches the ON/OFF setting of the comparison display for the calculation
output. (OFF at startup)

99

Switches the ON/OFF setting of the result display for the calculation time.
(OFF at startup)

0

Quits the program.

For example, if you enter the following numbers in this order, the calculation results of
DDAXPY when the length of vectors is 100 are compared and the computation time ismeasured. Then those results are output to a terminal. (You must press Enter at theend of each line.)
75
100
98
99
4

8 Sample programs
The sample directory contains some QPBLAS sample programs written in Fortran 90.
ddnrm2_sample.f90

Vector 2-norm

ddtrsv_sample.f90

Solving an equation that contains atriangular matrix.

ddgemm_sample.f90

Calculation that involves a general matrix
and matrices

zzdotu_sample.f90

Scalar product of complex vectors

zzhemv_sample.f90

Calculation that involves a Hermitianmatrix and vectors

zzhemm_sample.f90

Calculation that involves a Hermitianmatrix and matrices

8.1

Vector 2-norm (ddnrm2_sample.f90)

A quadruple precision real vector of order 2000

is given by

assigning random numbers to the high word xh and 0.0d to the low word xl,
and the 2-norm of the vector

8.2

is calculated.

Solving a triangular matrix (ddtrsv_sample.f90)

A quadruple precision matrix

is an upper triangular matrix oforder 3 and is given byand. A quadruple precision real vector

is given by

assigning random numbers to the high word and 0.0d to the low word. Then theequation

is solved.

8.3 Calculation that involves a general matrix and matrices(ddgemm_sample.f90)
A quadruple precision 2 by 4 matrix
and 2 by 3 matrix, 4 by 3 matrix,

are given by assigning random numbers toeach high word and 0.0d to each low word. A random number is assigned toeach of coefficients

8.4

and

, and

is calculated.

Scalar product of complex vectors (zzdotu_sample.f90)

Quadruple precision complex vectors of order 2000

andare given by assigning random numbers to each high word and 0.0d to each
low word, and their scalar productis calculated.

8.5 Calculation that involves a Hermitian matrix and vectors(zzhemv_sample.f90)
A quadruple precision Hermitian matrix of order 3
quadruple precision complex vectors of order 3

and
and

are given by assigning random numbers to each high word and 0.0d to each low
word. A random number is assigned to each of coefficientsis calculated.

and

, and

8.6

Calculation that involves a Hermitian matrix and matrices(zzhemm_sample.f90)
A quadruple precision Hermitian matrix of order 3
quadruple precision 3 by 2 complex matrices

and
and

are given by assigning random numbers to each high word and 0.0d to each low
word. A random number is assigned to each of coefficients

and

, and

is calculated.

8.7

Execution of sample programs

Those sample programs have already been compiled during the make, and you can, forexample, execute zzdotu_sample by entering as follows.
cd sample./zzdotu_sample
If you want to compile this program by yourself, perform, for example, the following.
gfortran -fopenmp zzdotu_sample.f90 ../lib/libddblas.aNote that some routines included in QPBLAS depend on utility functions in BLAS, andthat the following error may be reported during the link.
gfortran -fopenmp ddgemv_sample.f90 ../lib/libddblas.a...
undefined reference to `lsame_`
undefined reference to `xerbla_`
If this happens, add the link to BLAS as below.
gfortran -fopenmp -lblas ddgemv_sample.f90 ../lib/libddblas.a
The source code of the sample program "zzdotu_sample.f90" is as follows.
program main

implicit none

integer :: ndouble complex, allocatable :: xh(:), xl(:)
integer :: incx
double complex, allocatable :: yh(:), yl(:)
integer :: incy
double complex :: zh, zl

n = 2000incx = 1
incy = 1

allocate(xh(1+(n-1)*abs(incx)))
allocate(xl(1+(n-1)*abs(incx)))
allocate(yh(1+(n-1)*abs(incy)))
allocate(yl(1+(n-1)*abs(incy)))
call random_complex(xh)xl = 0d0
call random_complex(yh)yl = 0d0

call zzdotu(n, xh, xl, incx, yh, yl, incy, zh, zl)

print *, "zh =", zhprint *, "zl =", zlcontains

subroutine random_complex(z)double complex, intent(out) :: z(:)

double precision, allocatable :: re(:), im(:)

allocate(re(size(z,1)))
allocate(im(size(z,1)))

call random_number(re)call random_number(im)z(:) = cmplx(re, im)end subroutine

end program

9 Subroutines details
Forty of the most frequently used routines in BLAS are implemented in QPBLAS.
Level1DDSWAP

Vector-vector swap

DDCOPY

Vector copy

DDSCAL

Vector scaling

DDAXPY

Vector calculation

DDDOT

Scalar product

DDNRM2Vector 2-norm

DDASUM

Absolute sum of vector
elements (1-norm)

IDDAMAX

Index of the vector elementwith maximum absolute
value

DDROTG

Generates the Givens
rotation matrix.

DDROT

Applies a Givens rotation.

DDROTMG

Generates the modified
Givens rotation matrix.

DDROTM

Applies a modified Givens
rotation.

ZZDOTC

Scalar product for complex
vectors (1st vector istransposed and conjugated.)ZZDOTU

Scalar product for complex
vectors (1st vector istransposed.)
Level2

DDGEMV

Calculation that involves ageneral matrix and vectors

DDGBMV

Calculation that involves ageneral band matrix andvectors

DDGER

Rank-1 update of a generalmatrixDDSYMV

Calculation that involves asymmetric matrix andvectors

DDSBMV

Calculation that involves asymmetric band matrix andvectors

DDSYR

Rank-1 update of asymmetric matrix

DDSYR2

Rank-2 update of asymmetric matrix

DDTRMV

Calculation that involves atriangular matrix and avectorDDTBMV

Calculation that involves atriangular band matrix anda vector

DDTRSV

Solves an equation that
contains a triangularmatrix.

DDTBSV

Solves an equation that
contains a triangular band
matrix.

ZZGERC

Rank-1 update of a generalcomplex matrix (2nd vector
is transposed andconjugated.)ZZGERU

Rank-1 update of a generalcomplex matrix (2nd vector

is transposed.)ZZHEMV

Calculation that involves a
Hermitian matrix andvectors

ZZHBMV

Calculation that involves a
Hermitian band matrix andvectors

ZZHER

Rank-1 update of a
Hermitian matrix

ZZHER2

Rank-2 update of a
Hermitian matrix

Level3

DDGEMM

Calculation that involves ageneral matrix and matrices

DDSYMM

Calculation that involves asymmetric matrix andmatrices

DDSYRK

Rank-k update of asymmetric matrix

DDSYR2K

Rank-2k update of asymmetric matrix

DDTRMM

Calculation that involves atriangular matrix and amatrixDDTRSM

Solves an equation that
contains a triangularmatrix.

ZZHEMM

Calculation that involves a
Hermitian matrix andmatricesZZHERK

Rank-k update of a
Hermitian matrix

ZZHER2K

Rank-2k update of a
Hermitian matrix

DDSWAPFUNCTION:：
vector-vector swap
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

i/o

double precisionHigh word of quadruple precision real vector

XL

i/o

double precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YH

i/o

double precisionHigh word of quadruple precision real vector

YL

i/o

double precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YLsDDCOPY
FUNCTION:
Vector copy
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

idouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YHodouble precisionHigh word of quadruple precision real vectorYLodouble precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YLsDDSCALFUNCTION:
Vector scaling
x := a * x
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

AH

idouble precisionHigh word of quadruple precision real numberALidouble precision

Low word of quadruple precision real number

XH

i/o

double precisionHigh word of quadruple precision real vector

XL

i/o

double precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XLsDDAXPY
FUNCTION:
Vector calculation
y := a * x + y
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

AH

idouble precisionHigh word of quadruple precision real numberALidouble precision

Low word of quadruple precision real number

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YH

i/o

double precisionHigh word of quadruple precision real vector

YL

i/o

double precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YLsDDDOTFUNCTION:
Scalar productArgument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

idouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YHidouble precisionHigh word of quadruple precision real vectorYLidouble precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YL

DDHodouble precisionHigh word of quadruple precision real numberDDLodouble precision

Low word of quadruple precision real numbersDDNRM2
FUNCTION:
Vector 2-norm
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

idouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

DDHodouble precisionHigh word of quadruple precision real numberDDLodouble precision

Low word of quadruple precision real numbersDDASUM
FUNCTION:
Absolute sum of vector elements (1-norm)
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

idouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

DDHodouble precisionHigh word of quadruple precision real numberDDLodouble precision

Low word of quadruple precision real numbersIDDAMAXFUNCTION:
Index of the vector element with maximum absolute value
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

idouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

ret

ret

integers

Index of the vector element with maximum
absolute value

DDROTGFUNCTION:
Generates the Givens rotation matrix
Argument

I/O

Type

Descriptions

AH

i/o

double precisionHigh word of quadruple precision real number

AL

i/o

double precision

Low word of quadruple precision real number

BH

i/o

double precisionHigh word of quadruple precision real number

BL

i/o

double precision

Low word of quadruple precision real numberCHodouble precisionCLodouble precisionSHodouble precisionSLodouble precisionsHigh word of cosine of generated Givens
rotation
Low word of cosine of generated Givens
rotationHigh word of sine of generated Givens
rotation
Low word of sine of generated Givens rotation

DDROTFUNCTION:
Applies a Givens rotation
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

i/o

double precisionHigh word of quadruple precision real vector

XL

i/o

double precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YH

i/o

double precisionHigh word of quadruple precision real vector

YL

i/o

double precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YL

CHidouble precisionHigh word of cosine applying Givens rotationCLidouble precision

Low word of cosine applying Givens rotationSHidouble precisionHigh word of sine applying Givens rotationSLidouble precision

Low word of sine applying Givens rotationsDDROTMGFUNCTION:
Generates the modified Givens rotation matrix
Argument

I/O

Type

Descriptions

D1H

i/o

double precisionHigh word of quadruple precision real number

D1L

i/o

double precision

Low word of quadruple precision real number

D2H

i/o

double precisionHigh word of quadruple precision real number

D2L

i/o

double precision

Low word of quadruple precision real number

X1H

i/o

double precisionHigh word of quadruple precision real number

X1L

i/o

double precision

Low word of quadruple precision real number

Y1Hidouble precisionHigh word of quadruple precision real number

Y1L

idouble precision

Low word of quadruple precision real number

PARAMHi/odouble precision

PARAMLi/odouble precision

s

High

word ofmodified Givens rotation

parameter
Low

word

parameterofmodified

Givensrotation

DDROTMFUNCTION:
Applies a modified Givens rotation
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

i/o

double precisionHigh word of quadruple precision real vector

XL

i/o

double precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YH

i/o

double precisionHigh word of quadruple precision real vector

YL

i/o

double precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YL

PARAMHi

double precision

PARAMLidouble precisionsHigh word of parameter applying the modified
Givens rotation
Low word of parameter applying the modified
Givens rotationZZDOTC
FUNCTION:
Scalar product for complex vectors (1st vector is transposed and conjugated)
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

idouble complex

XLidouble complex

INCX

i

integerYH

idouble complex

YLidouble complex

INCY

i

integerZZHodouble complex

ZZLodouble complexsHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of YH and YLHigh word of quadruple precision complex
number
Low word of quadruple precision complex
numberZZDOTUFUNCTION:
Scalar product for complex vectors (1st vector is transposed)
Argument

I/O

Type

DescriptionsNiinteger

Dimension of the vector

XH

idouble complex

XLidouble complex

INCX

i

integerYH

idouble complex

YLidouble complex

INCY

i

integerZZHodouble complex

ZZLodouble complexsHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of YH and YLHigh word of quadruple precision complex
number
Low word of quadruple precision complex
number

DDGEMV
FUNCTION:
Calculation that involves a general matrix and vectors
y := alpha * A * x + beta * yory := alpha * A^T * x + beta * y

Argument
s

I/O

Type

Descriptions
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugateMiinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

YH

i/o

double precisionHigh word of quadruple precision real vector

YL

i/o

double precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YL

DDGBMV
FUNCTION:
Calculation that involves a general band matrix and vectors
y := alpha * A * x + beta * yory := alpha * A^T * x + beta * y

Argument
s

I/O

Type

Descriptions
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugateMiinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

KLiinteger

Lower band width

KUiintegerUpper band width

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AH

i/o

double precisionHigh word of quadruple precision real matrix

AL

i/o

double precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

YHidouble precisionHigh word of quadruple precision real vectorYLidouble precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YL

DDGERFUNCTION:
Rank-1 update of a general matrix
A := alpha * x * y^T + A
Argument

I/O

Type

Descriptions

Miinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YHidouble precisionHigh word of quadruple precision real vectorYLidouble precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YL

AH

i/o

double precisionHigh word of quadruple precision real matrix

AL

i/o

double precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrixs

DDSYMV
FUNCTION:
Calculation that involves a symmetric matrix and vectors
x := alpha * A * x + beta * y
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

YH

i/o

double precisionHigh word of quadruple precision real vector

YL

i/o

double precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YLDDSBMV
FUNCTION:
Calculation that involves a symmetric band matrix and vectors
y := alpha * A * x + beta * y
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

Row or column size of a matrix

Kiinteger

Band width

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AH

i/o

double precisionHigh word of quadruple precision real matrix

AL

i/o

double precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

YHidouble precisionHigh word of quadruple precision real vectorYLidouble precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YLDDSYRFUNCTION:
Rank-1 update of a symmetric matrix
A := alpha * x * x^T + A
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

AH

i/o

double precisionHigh word of quadruple precision real matrix

AL

i/o

double precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

DDSYR2FUNCTION:
Rank-2 update of a symmetric matrix
A := alpha * x * y^T + alpha * y * x^T + A
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XL

YHidouble precisionHigh word of quadruple precision real vectorYLidouble precision

Low word of quadruple precision real vector

INCY

i

integer

Incremental of YH and YL

AH

i/o

double precisionHigh word of quadruple precision real matrix

AL

i/o

double precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

DDTRMV
FUNCTION:
Calculation that involves a triangular matrix and a vector
x := A * x
orx := A^T * x

Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugate
Options for diagonal component of triangular

DIAG

i

character(1)matrixDIAG = 'U' or 'u' → unit triangular matrix
DIAG = 'N' or 'n' → not unit triangular matrix

Niinteger

Row or column size of a matrix

AHi

double precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XH

i/o

double precisionHigh word of quadruple precision real vector

XL

i/o

double precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XLDDTBMV
FUNCTION:
Calculation that involves a triangular band matrix and a vector
x := A * x
orx := A^T * x

Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugate
Options for diagonal component of triangular

DIAG

i

character(1)matrixDIAG = 'U' or 'u' → unit triangular matrix
DIAG = 'N' or 'n' → not unit triangular matrix

Niinteger

Row or column size of a matrix

Kiinteger

Band width

AH

i/o

double precisionHigh word of quadruple precision real matrix

AL

i/o

double precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XHidouble precisionHigh word of quadruple precision real vector

XLidouble precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XLDDTRSV
FUNCTION:
Solves an equation that contains a triangular matrix
x := A^-1 * x
orx := (A^T)^-1 * x

Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugate
Options for diagonal component of triangular

DIAG

i

character(1)matrixDIAG = 'U' or 'u' → unit triangular matrix
DIAG = 'N' or 'n' → not unit triangular matrix

Niinteger

Row or column size of a matrix

AHi

double precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XH

i/o

double precisionHigh word of quadruple precision real vector

XL

i/o

double precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XLDDTBSV
FUNCTION:
Solves an equation that contains a triangular band matrix
x := A^-1 * x
orx := (A^T)^-1 * x

Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugate
Options for diagonal component of triangular

DIAG

i

character(1)matrixDIAG = 'U' or 'u' → unit triangular matrix
DIAG = 'N' or 'n' → not unit triangular matrix

Niinteger

Row or column size of a matrix

Kiinteger

Band widthAHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix

XH

i/o

double precisionHigh word of quadruple precision real vector

XL

i/o

double precision

Low word of quadruple precision real vector

INCX

i

integer

Incremental of XH and XLZZGERCFUNCTION:
Rank-1 update of a general complex matrix (2nd vector is transposed and conjugated.)
A := alpha * x * y^H + A
Argument

I/O

Type

Descriptions

Miinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double complex

ALPHALidouble complex

XH

idouble complex

XLidouble complex

INCX

i

integerYH

idouble complex

YLidouble complex

INCY

i

integerAH

i/odouble complex

AL

i/o

double complex

LDAiintegersHigh word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of YH and YLHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of a matrix

ZZGERUFUNCTION:
Rank-1 update of a general complex matrix (2nd vector is transposed.)
A := alpha * x * y^T + A
Argument

I/O

Type

Descriptions

Miinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double complex

ALPHALidouble complex

XH

idouble complex

XLidouble complex

INCX

i

integerYH

idouble complex

YLidouble complex

INCY

i

integerAH

i/odouble complex

AL

i/o

double complex

LDAiintegersHigh word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of YH and YLHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of a matrix

ZZHEMV
FUNCTION:
Calculation that involves a Hermitian matrix and vectors
y := alpha * A * x + beta * y
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

ALPHAHi

double complex

ALPHALidouble complex

AHidouble complex

ALidouble complex

LDAiintegerXH

idouble complex

XLidouble complex

INCX

i

integer

BETAH

idouble complex

BETAL

i

double complex

YH

i/o

double complex

YL

i/o

double complex

INCY

i

integer

Row or column size of a matrix
High word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of a matrix
High word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of YH and YLZZHBMV
FUNCTION:
Calculation that involves a Hermitian band matrix and vectors
y := alpha * A * x + beta * y
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

Row or column size of a matrix

Kiinteger

Band width

ALPHAHi

double complex

ALPHALidouble complex

AHidouble complex

ALidouble complex

LDAiintegerXH

idouble complex

XLidouble complex

INCX

i

integer

BETAH

idouble complex

BETAL

i

double complex

YH

i/o

double complex

YL

i/o

double complex

High word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of a matrix
High word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorINCYiinteger

Incremental of YH and YLZZHERFUNCTION:
Rank-1 update of a Hermitian matrix
A := alpha * x * x^H + A
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

XHidouble complex

XLidouble complex

INCX

i

integerAH

i/odouble complex

AL

i/o

double complex

LDAiintegerHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of a matrix

ZZHER2FUNCTION:
Rank-2 update of a Hermitian matrix
A := alpha * x * y^H + conjg( alpha ) * y * x^H + A
Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

ALPHAHi

double complex

ALPHALidouble complex

XH

idouble complex

XLidouble complex

INCX

i

integerYH

idouble complex

YLidouble complex

INCY

i

integerAH

i/odouble complex

AL

i/o

double complex

LDAiinteger

Row or column size of a matrix
High word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of XH and XLHigh word of quadruple precision complex
vector
Low word of quadruple precision complex
vectorIncremental of YH and YLHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of a matrix

DDGEMMFUNCTION:
Calculation that involves a general matrix and matrices
C := alpha * A * B + beta * C
orC := alpha * A^T * B + beta * C
orC := alpha * A * B^T + beta * C
orC := alpha * A^T * B^T + beta * C

Argument
s

I/O

Type

Descriptions
Options for transpose of matrix A

TRANSAi

character(1)TRANSA = 'N' or 'n' → no transpose
TRANSA = 'T' or 't' → transpose
TRANSA = 'C' or 'c' → transpose and conjugate
Options for transpose of matrix B

TRANSBicharacter(1)TRANSB = 'N' or 'n' → no transpose
TRANSB = 'T' or 't' → transpose
TRANSB = 'C' or 'c' → transpose and conjugateMiinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

Kiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of matrix A

BH

idouble precisionHigh word of quadruple precision real matrix

BLidouble precision

Low word of quadruple precision real matrix

LDBiinteger

1st dimension of matrix B

BETAH

i

double precisionHigh word of quadruple precision real number

BETALidouble precision

Low word of quadruple precision real number

CH

i/o

double precisionHigh word of quadruple precision real matrix

CL

i/o

double precision

Low word of quadruple precision real matrix

LDCiinteger

1st dimension of matrix C

DDSYMMFUNCTION:
Calculation that involves a symmetric matrix and matrices
C := alpha * A * B + beta * C
orC := alpha * B * A + beta * C

Argument
s

I/O

Type

Descriptions
Options for order of multiplication

SIDE

i

character(1)SIDE = 'L' or 'l' → A B
SIDE = 'R' or 'r' → B A
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularMiinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of matrix A

BH

idouble precisionHigh word of quadruple precision real matrix

BLidouble precision

Low word of quadruple precision real matrix

LDBiinteger

1st dimension of matrix B

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

CH

i/o

double precisionHigh word of quadruple precision real matrix

CL

i/o

double precision

Low word of quadruple precision real matrix

LDCiinteger

1st dimension of matrix C

DDSYRKFUNCTION:
Rank-k update of a symmetric matrix
C := alpha * A * A^T + beta * C
orC := alpha * A^T * A + beta * C

Argument
s

I/O

Type

Descriptions
Options for order of multiplication

SIDE

i

character(1)SIDE = 'L' or 'l' → A B
SIDE = 'R' or 'r' → B A
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularNiinteger

Row or column size of a matrix

Kiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of a matrix A

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

CH

i/o

double precisionHigh word of quadruple precision real matrix

CL

i/o

double precision

Low word of quadruple precision real matrix

LDCiinteger

1st dimension of matrix C

DDSYR2K
FUNCTION:
Rank-2k update of a symmetric matrix
C := alpha * A * B^T + alpha * B * A^T + beta * C
orC := alpha * B^T * A + alpha * A^T * B + beta * C

Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugateNiinteger

Row or column size of a matrix

Kiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of matrix A

BH

idouble precisionHigh word of quadruple precision real matrix

BLidouble precision

Low word of quadruple precision real matrix

LDBiinteger

1st dimension of matrix B

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

CH

i/o

double precisionHigh word of quadruple precision real matrix

CL

i/o

double precision

Low word of quadruple precision real matrix

LDCiinteger

1st dimension of matrix C

DDTRMMFUNCTION:
Calculation that involves a triangular matrix and a matrix
B := alpha * A * B
or
B := alpha * A^T * B
or
B := alpha * B * Aor
B := alpha * B * A^T

Argument
s

I/O

Type

Descriptions
Options for order of multiplication

SIDE

i

character(1)SIDE = 'L' or 'l' → A B
SIDE = 'R' or 'r' → B A
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for transpose of matrix A

TRANSAi

character(1)TRANSA = 'N' or 'n' → no transpose
TRANSA = 'T' or 't' → transpose
TRANSA = 'C' or 'c' → transpose and conjugate
Options for diagonal component of triangular

DIAG

i

character(1)matrixDIAG = 'U' or 'u' → unit triangular matrix
DIAG = 'N' or 'n' → not unit triangular matrix

Miinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDA

i

integer

1st dimension of matrix A

BH

i/o

double precisionHigh word of quadruple precision real matrix

BL

i/o

double precision

Low word of quadruple precision real matrix

LDBiinteger

1st dimension of matrix B

DDTRSM
FUNCTION:
Solves an equation that contains a triangular matrix
B := alpha * A^-1 * BorB := alpha * B * A^-1

Argument
s

I/O

Type

Descriptions
Options for order of multiplication

SIDE

i

character(1)SIDE = 'L' or 'l' → A B
SIDE = 'R' or 'r' → B A
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for transpose of matrix A

TRANSAi

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugate
Options for diagonal component of triangular

DIAG

i

character(1)matrixDIAG = 'U' or 'u' → unit triangular matrix
DIAG = 'N' or 'n' → not unit triangular matrix

Miinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of matrix A

BH

i/o

double precisionHigh word of quadruple precision real matrix

BL

i/o

double precision

Low word of quadruple precision real matrix

LDBiinteger

1st dimension of matrix B

ZZHEMMFUNCTION:
Calculation that involves a Hermitian matrix and matrices
C := alpha * A * B + beta * C
orC := alpha * B * A + beta * C

Argument
s

I/O

Type

Descriptions
Options for order of multiplication

SIDE

i

character(1)SIDE = 'L' or 'l' → A B
SIDE = 'R' or 'r' → B A
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangularMiinteger

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble precisionHigh word of quadruple precision real matrix

ALidouble precision

Low word of quadruple precision real matrix

LDAiinteger

1st dimension of matrix A

BH

idouble precisionHigh word of quadruple precision real matrix

BLidouble precision

Low word of quadruple precision real matrix

LDBiinteger

1st dimension of matrix B

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

CH

i/o

double precisionHigh word of quadruple precision real matrix

CL

i/o

double precision

Low word of quadruple precision real matrix

LDCiinteger

1st dimension of matrix C

ZZHERKFUNCTION:
Rank-k update of a Hermitian matrix
C := alpha * A * A^H + beta * C
orC := alpha * A^H * A + beta * C

Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugateNiinteger

Row or column size of a matrix

Kiinteger

Row or column size of a matrix

ALPHAHi

double precisionHigh word of quadruple precision real number

ALPHALidouble precision

Low word of quadruple precision real number

AHidouble complex

ALidouble complex

LDAiinteger

1st dimension of matrix A

BETAH

i

double precisionHigh word of quadruple precision real number

BETAL

i

double precision

Low word of quadruple precision real number

CH

i/o

double complex

CL

i/o

double complex

LDCiintegerHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrixHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of matrix C

ZZHER2K
FUNCTION:
Rank-2k update of a Hermitian matrix
C := alpha * A * B^H + alpha * B * A^H + beta * C
orC := alpha * B^H * A + alpha * A^H * B + beta * C

Argument
s

I/O

Type

Descriptions
Options for triangular matrix

UPLO

i

character(1)UPLO = 'U' or 'u' → upper triangular
UPLO = 'L' or 'l' → lower triangular
Options for matrix transpose

TRANS

i

character(1)TRANS = 'N' or 'n' → no transpose
TRANS = 'T' or 't' → transpose
TRANS = 'C' or 'c' → transpose and conjugateNiinteger

Row or column size of a matrix

Kiinteger

Row or column size of a matrix

ALPHAHi

double complex

ALPHALidouble complex

AHidouble complex

ALidouble complex

LDAiintegerBH

idouble complexBLidouble complex

LDBiinteger

1st dimension of matrix B

BETAH

i

double precisionHigh word of quadruple precision real number

High word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of matrix A
High word of quadruple precision complex
matrixLow word of quadruple precision complex
matrixBETALidouble precision

CH

i/o

double complex

CL

i/o

double complex

LDCiinteger

Low word of quadruple precision real number
High word of quadruple precision complex
matrixLow word of quadruple precision complex
matrix
1st dimension of matrix C