Quadruple Precision
BLAS Routines for GPU
QPBLAS-GPU 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 .................................................7

8

Sample programs ........................................................................................................8

9

Subroutines details .................................................................................................. 12

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,
the rounding errors may add up significantly is conducted, 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 16 basic routines toquadruple precision in the Year 2009 project "Development of high-precision routines
for nuclear device simulation" and has converted an additional 24 routines as well as
parallelized them using OpenMP in the Year 2010 project "Development ofhigh-precision routines for nuclear material simulation." (The routines developed in thetwo projects as a whole are called "Quadruple precision BLAS routines.")
Furthermore, numerous examples of large-scale numerical simulation have been
recently reported due to the improved computational performance of a GPU, and, in the
future, large-scale parallel simulations on a parallel cluster with GPUs are expected to
be popular. This is the reason we worked in Year 2011 on a series of development
activities to run "Quadruple precision BLAS routines" on a GPU. We call this library for
GPU "QPBLAS-GPU." The following explains how to use this library.

2 Basic Linear Algebra Subprograms (BLAS)
Basic Linear Algebra Subprograms (BLAS) is a high-quality numerical library of
frequently used basic linear algebra operations. In 1979, the first code implementationin FORTRAN was published. Since then, bindings to BLAS for a variety of
programming languages including C/C++ have become available. Currently, theoperations included in BLAS can be used in many programming 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 numeric 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
BaileyAD. (2006). High-precision arithmetic in scientific computation. SC06 TechnicalPaper.
Susumu Yamada, Narimasa Sasa, Toshiyuki Imamura, and Masahiko Machida (2012).
Introduction to quadruple precision basic linear algebra routines QPBLAS and its
application. IPSJ SIG Technical Report.

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

wrapper functions for host memory├── cpu_multiwrapper functions for host memory (multiple CPUs)├── gpu

double-double quadruple precision BLAS for GPU├── sample

sample programs└── test

operation verification/performance evaluation programs

6 Installation
The verification programs for QPBLAS-GPU use 128 bit quadruple precision BLAS
included in QPBLAS. If you want to compare it with quadruple precision BLAS, youmust install the QPBLAS library in advance.
To install QPBLAS-GPU libraries, you need Ver 4.0 CUDA compiler and CUDA
standard library.
Enter the following commands to a terminal to create a Makefile that matches a user
environment and then compile.
tar xzf QPBLAS-GPU-version.tar.gz
cd QPBLAS-GPU-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 (used forbuilding samples).

FCFLAGS=options

Specifies compile options and parallel
computation and optimization settings.

LDFLAGS=options

Specifies link options.

LIBS=options

Specifies additional libraries.

--prefix=path

Changes the install directory.

--with-cuda=path

Specifies the install directory of CUDA.

--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 oftest programs are not compiled, and thepreexistent library specified by LDFLAGS
or others is used instead.

By default, the double precision BLAS
library is compiled.
Examples of minimum options of the configure command necessary for compile areas follows.
Example: When GNU Fortran is used./configure FC=gfortran LDFLAGS="-L../lib" ¥LIBS="-lqblas -ldblas" --with-cuda=/usr/local/cuda-4.0
If the make is successful, the following libraries and programs are created.
libgddblas.a

QPBLAS-GPU library

test/level1

Verification program for Level 1

test/level2

Verification program for Level 2

test/level3

Verification program for Level 3

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-GPU 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 resultsof GDDAXPY 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-GPU sample programs written in
Fortran 90.

gddnrm2_sample.f90

Vector 2-norm

gddtrsv_sample.f90

Solving an equation that contains atriangular matrix.

gddgemm_sample.f90

Calculation that involves a generalmatrix and matrices

gzzdotu_sample.f90

Scalar product of complex vectors

gzzhemv_sample.f90

Calculation that involves a Hermitianmatrix and vectors

gzzhemm_sample.f90

Calculation that involves a Hermitianmatrix and matrices

To compile and execute those sample programs, enter as follows.
cd sample
make./gzzdotu_sample
If you want to compile this program by yourself, perform, for example, the following.
gfortran gzzdotu_sample.f90 ../libddblas.a –fopenmp ¥-L/usr/local/cuda-4.0/lib64 ¥-L/usr/local/cuda-4.0/NVIDIA_GPU_Computing_SDK/C/lib ¥-lcudart -lcublas -lcutil_x86_64
The following is a description of the sample programs.

8.1

Vector 2-norm (gddnrm2_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 (gddtrsv_sample.f90)

A quadruple precision matrix
order 3 and is given byis an upper triangular matrix ofand. A quadruple precision real vector

is given by assigning

random numbers to the high word and 0.0d to the low word. Then the equation
is solved.

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

are given by assigning random numbers to eachhigh word and 0.0d to each low word. A random number is assigned to each ofcoefficients

8.4

and

, and

is calculated.

Scalar product of complex vectors (gzzdotu_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(gzzhemv_sample.f90)
A quadruple precision Hermitian matrix of order 3precision complex vectors of order 3

and quadruple

andare 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.6 Calculation that involves a Hermitian matrix and matrices(gzzhemm_sample.f90)
A quadruple precision Hermitian matrix of order 3precision 3 by 2 complex matrices

andand quadruple
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

8.7

and

, and

is calculated.

Sample source code

The source code of the sample program "gzzdotu_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 gzzdotu_host_multigpu(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(:) = dcmplx(re, im)end subroutine

end program

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

Lev
el1

GDDSWAP

Vector-vector swap

GDDCOPY

Vector copy

GDDSCAL

Vector scaling

GDDAXPY

Vector calculation

GDDDOT

Scalar productGDDNRM2

Vector 2-norm

GDDASUM

Absolute sum of vector
elements (1-norm)

GIDDAMAX

Index of the vector
element with maximum
absolute value

GDDROTG

Generates the Givens
rotation matrix.

GDDROT

Applies a Givens
rotation.

GDDROTMG

Generates the modified
Givens rotation matrix.

GDDROTM

Applies a modified
Givens rotation.

GZZDOTC

Scalar product forcomplex vectors (1st vector

is transposed andconjugated.)

Lev
el2

GZZDOTU

Scalar product forcomplex vectors (1st vector
is transposed.)

GDDGEMV

Calculation that involves
a general matrix andvectors

GDDGBMV

Calculation that involves
a general band matrix andvectors

DDGER
GDDSYMV

Rank-1 update of ageneral matrix
Calculation that involves
a symmetric matrix andvectors

GDDSBMV

Calculation that involves
a symmetric band matrix
and vectors

GDDSYR

Rank-1 update of asymmetric matrix

GDDSYR2

Rank-2 update of asymmetric matrix

GDDTRMV

Calculation that involvesa triangular matrix and avectorGDDTBMV

Calculation that involvesa triangular band matrix
and a vector

GDDTRSV

Solving an equation that
contains a triangular matrix.

GDDTBSV

Solves an equation that
contains a triangular band
matrix.

GZZGERC

Rank-1 update of ageneral complex matrix

(2nd vector is transposedand conjugated.)
GZZGERU

Rank-1 update of ageneral complex matrix(2nd vector is transposed.)

GZZHEMV

Calculation that involvesa Hermitian matrix andvectors

GZZHBMV

Calculation that involvesa Hermitian band matrix
and vectors

GZZHER

Rank-1 update of a
Hermitian matrix

GZZHER2

Rank-2 update of a
Hermitian matrix

Lev
el3

GDDGEMM

Calculation that involves
a general matrix andmatrices

GDDSYMM

Calculation that involves
a symmetric matrix andmatrices

GDDSYRK

Rank-k update of asymmetric matrix

GDDSYR2K

Rank-2k update of asymmetric matrix

GDDTRMM

Calculation that involvesa triangular matrix and amatrixGDDTRSM

Solving an equation that
contains a triangular matrix.

GZZHEMM

Calculation that involvesa Hermitian matrix andmatrices

GZZHERK

Rank-k update of a
Hermitian matrix

GZZHER2K

Rank-2k update of a
Hermitian matrix

GDDSWAPFUNCTION:
vector-vector swap
引数

型

I/O

説明

N

i

integer

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GDDCOPYFUNCTION:
Vector copy
引数

型

I/O

説明

N

i

integer

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 YLGDDSCALFUNCTION:
Vector scaling
x := a * x
引数

型

I/O

説明

N

i

integer

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 XLGDDAXPYFUNCTION:
Vector calculation

y := a * x + y
引数

型

I/O

説明

N

i

integer

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 YLGDDDOTFUNCTION:
Scala product
引数

型

I/O

説明

N

i

integer

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 number

GDDNRM2
FUNCTION:
Vector 2-norm
引数

型

I/O

説明

N

i

integer

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 number

GDDASUM
FUNCTION:
Absolute sum of vector elements (1-norm)

引数

型

I/O

説明

N

i

integer

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 number

GIDDAMAXFUNCTION:
Index of the vector element with maximum absolute value

引数

型

I/O

説明

N

i

integer

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

integerIndex of the vector element with maximum
absolute value

GDDROTG
FUNCTION:
Generates the Givens rotation matrix

引数

I/O

型

説明

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 precisionHigh 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

GDDROTFUNCTION:
Applies a Givens rotation

引数

型

I/O

説明

N

i

integer

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 rotation

GDDROTMG
FUNCTION:
Generates the modified Givens rotation matrix

引数

I/O

型

説明

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 precisionHighword ofmodified Givens rotation

parameter
Low

word

parameterofmodified

Givensrotation

GDDROTM
FUNCTION:
Applies a modified Givens rotation

引数

型

I/O

説明

N

i

integer

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 precisionHigh word of parameter applying the modified
Givens rotation
Low word of parameter applying the modified
Givens rotation

GZZDOTCFUNCTION:
Scalar product for complex vectors (1st vector is transposed and conjugated)

引数

型

I/O

説明

N

i

integer

Dimension of the vector

XH

idouble complex

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

YHidouble complex

High word of quadruple precision complex vectorYLidouble complex

Low word of quadruple precision complex vector

INCY

i

integer

Incremental of YH and YL

ZZHodouble complexodouble complex

ZZL

High word of quadruple precision complex
number
Low word of quadruple precision complex
numberGZZDOTU
FUNCTION:
Scalar product for complex vectors (1st vector is transposed)

引数

型

I/O

説明

N

i

integer

Dimension of the vector

XH

idouble complex

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

YHidouble complex

High word of quadruple precision complex vectorYLidouble complex

Low word of quadruple precision complex vector

INCY

i

integer

Incremental of YH and YL

ZZHodouble complexodouble complex

ZZL

High word of quadruple precision complex
number
Low word of quadruple precision complex
numberGDDGEMVFUNCTION:
Calculation that involves a general matrix and vectors

y := alpha * A * x + beta * yory := alpha * A^T * x + beta * y

引数

型

I/O

説明
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GDDGBMVFUNCTION:
Calculation that involves a general band matrix and vectors

y := alpha * A * x + beta * yory := alpha * A^T * x + beta * y

引数

型

I/O

説明
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
引数

型

I/O

説明

M

i

integer

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 matrix

GDDSYMVFUNCTION:
Calculation that involves a symmetric matrix and vectors

x := alpha * A * x + beta * y
引数

型

I/O

説明
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GDDSBMVFUNCTION:
Calculation that involves a symmetric band matrix and vectors

y := alpha * A * x + beta * y
引数

型

I/O

説明
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GDDSYRFUNCTION:
Rank-1 update of a symmetric matrix

A := alpha * x * x^T + A
引数

型

I/O

説明
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

GDDSYR2FUNCTION:
Rank-2 update of a symmetric matrix

A := alpha * x * y^T + alpha * y * x^T + A
引数

型

I/O

説明
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

GDDTRMVFUNCTION:
Calculation that involves a triangular matrix and a vector

x := A * x
orx := A^T * x

引数

型

I/O

説明
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GDDTBMVFUNCTION:
Calculation that involves a triangular band matrix and a vector

x := A * x
orx := A^T * x

引数

型

I/O

説明
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GDDTRSVFUNCTION:
Solves an equation that contains a triangular matrix

x := A^-1 * x
orx := (A^T)^-1 * x

引数

型

I/O

説明
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GDDTBSV
FUNCTION:
Solves an equation that contains a triangular band matrix

x := A^-1 * x
orx := (A^T)^-1 * x

引数

型

I/O

説明
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GZZGERCFUNCTION:
Rank-1 update of a general complex matrix (2nd vector is transposed and conjugated.)

A := alpha * x * y^H + A
引数

型

I/O

説明

M

i

integer

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double complex

ALPHALidouble complex

XH

idouble complex

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

YHidouble complex

High word of quadruple precision complex vectorYLidouble complex

Low word of quadruple precision complex vector

INCY

i

integer

Incremental of YH and YL

AH

i/o

double complex

High word of quadruple precision complex matrix

AL

i/o

double complex

Low word of quadruple precision complex matrix

LDAiinteger

1st dimension of a matrix

High word of quadruple precision complex
number
Low word of quadruple precision complex
numberGZZGERUFUNCTION:
Rank-1 update of a general complex matrix (2nd vector is transposed.)

A := alpha * x * y^T + A
引数

型

I/O

説明

M

i

integer

Row or column size of a matrix

Niinteger

Row or column size of a matrix

ALPHAHi

double complex

ALPHALidouble complex

XH

idouble complex

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

YHidouble complex

High word of quadruple precision complex vectorYLidouble complex

Low word of quadruple precision complex vector

INCY

i

integer

Incremental of YH and YL

AH

i/o

double complex

High word of quadruple precision complex matrix

AL

i/o

double complex

Low word of quadruple precision complex matrix

LDAiinteger

1st dimension of a matrix

High word of quadruple precision complex
number
Low word of quadruple precision complex
numberGZZHEMVFUNCTION:
Calculation that involves a Hermitian matrix and vectors

y := alpha * A * x + beta * y
引数

型

I/O

説明
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

High word of quadruple precision complex matrix

ALidouble complex

Low word of quadruple precision complex matrix

LDAiinteger

1st dimension of a matrix

XHidouble complex

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

BETAH

i

double complex

BETAL

i

double complex

YH

i/o

double complex

High word of quadruple precision complex vector

YL

i/o

double complex

Low word of quadruple precision complex vector

INCY

i

integer

Incremental of YH and YL

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
number
Low word of quadruple precision complex
numberGZZHBMVFUNCTION:
Calculation that involves a Hermitian band matrix and vectors

y := alpha * A * x + beta * y
引数

型

I/O

説明
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

High word of quadruple precision complex matrix

ALidouble complex

Low word of quadruple precision complex matrix

LDAiinteger

1st dimension of a matrix

XHidouble complex

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

BETAH

i

double complex

BETAL

i

double complex

YH

i/o

double complex

High word of quadruple precision complex vector

YL

i/o

double complex

Low word of quadruple precision complex vector

INCY

i

integer

Incremental of YH and YLHigh word of quadruple precision complex
number
Low word of quadruple precision complex
numberHigh word of quadruple precision complex
number
Low word of quadruple precision complex
numberGZZHERFUNCTION:
Rank-1 update of a Hermitian matrix

A := alpha * x * x^H + A
引数

型

I/O

説明
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

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

AH

i/o

double complex

High word of quadruple precision complex matrix

AL

i/o

double complex

Low word of quadruple precision complex matrix

LDAiinteger

1st dimension of a matrix

GZZHER2FUNCTION:
Rank-2 update of a Hermitian matrix

A := alpha * x * y^H + conjg( alpha ) * y * x^H + A
引数

型

I/O

説明
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

High word of quadruple precision complex vector

XLidouble complex

Low word of quadruple precision complex vector

INCX

i

integer

Incremental of XH and XL

YHidouble complex

High word of quadruple precision complex vectorYLidouble complex

Low word of quadruple precision complex vector

INCY

i

integer

Incremental of YH and YL

AH

i/o

double complex

High word of quadruple precision complex matrix

AL

i/o

double complex

Low word of quadruple precision complex matrix

LDAiinteger

1st dimension of a matrix

Row or column size of a matrix
High word of quadruple precision complex
number
Low word of quadruple precision complex
numberGDDGEMM
FUNCTION:
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

引数

型

I/O

説明
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

GDDSYMM
FUNCTION:
Calculation that involves a symmetric matrix and matrices

C := alpha * A * B + beta * C
orC := alpha * B * A + beta * C

引数

型

I/O

説明
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

GDDSYRKFUNCTION:
Rank-k update of a symmetric matrix

C := alpha * A * A^T + beta * C
orC := alpha * A^T * A + beta * C

引数

型

I/O

説明
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 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

GDDSYR2K
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

引数

型

I/O

説明
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

GDDTRMM
FUNCTION:
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

引数

型

I/O

説明
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

GDDTRSM
FUNCTION:
Solves an equation that contains a triangular matrix

B := alpha * A^-1 * BorB := alpha * B * A^-1

引数

型

I/O

説明
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

GZZHEMM
FUNCTION:
Calculation that involves a Hermitian matrix and matrices

C := alpha * A * B + beta * C
orC := alpha * B * A + beta * C

引数

型

I/O

説明
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

GZZHERKFUNCTION:
Rank-k update of a Hermitian matrix

C := alpha * A * A^H + beta * C
orC := alpha * A^H * A + beta * C

引数

型

I/O

説明
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

High word of quadruple precision complex matrix

ALidouble complex

Low word of quadruple precision complex matrix

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

High word of quadruple precision complex matrix

CL

i/o

double complex

Low word of quadruple precision complex matrix

LDCiinteger

1st dimension of matrix C

GZZHER2K
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

引数

型

I/O

説明
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

High word of quadruple precision complex matrix

ALidouble complex

Low word of quadruple precision complex matrix

LDAiinteger

1st dimension of matrix A

BH

idouble complex

High word of quadruple precision complex matrix

BLidouble complex

Low word of quadruple precision complex 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 complex

High word of quadruple precision complex matrix

CL

i/o

double complex

Low word of quadruple precision complex matrix

LDCiinteger

1st dimension of matrix C

High word of quadruple precision complex
number
Low word of quadruple precision complex
number