NAG Library, Mark 27
NLMI627DGL - Licence Managed
macOS, 64-bit, GNU C or GNU Fortran, 32-bit integers
ユーザーノート内容
1. イントロダクション ........................................................ 1
2. 追加情報 ................................................................. 1
3. 一般情報 ................................................................. 2
3.1. ライブラリのリンク方法 ................................................ 3
3.2. Fortran インターフェースブロック ...................................... 6
3.3. Example プログラム .................................................... 8
3.4. メンテナンスレベル .................................................... 10
3.5. C データ型 ............................................................ 10
3.6. Fortran データ型と強調斜体文字の解釈 .................................. 11
3.7. C または C++ からの NAG Fortran ルーチンの呼び出し ...................... 12
4. ルーチン固有の情報 ........................................................ 13
5. ドキュメント ............................................................. 19
6. サポート ................................................................. 20
7. コンタクト情報 ........................................................... 20

1. イントロダクション
本ユーザーノートは，NAG Library, Mark 27 - NLMI627DGL（ライブラリ）のご利用方法（リンク方法）を説明します．
本ユーザーノートには，NAG Library Manual, Mark 27（ライブラリマニュアル）には含
まれない製品毎の情報が含まれています．ライブラリマニュアルに「ユーザーノート参照」などと書かれている場合は，本ユーザーノートをご参照ください．
ライブラリルーチンのご利用に際しては，ライブラリマニュアル（「5. ドキュメント」
参照）の以下のドキュメントをお読みください．
(a) How to Use the NAG Library(b) Chapter Introduction(c) Routine Document
2. 追加情報
本ライブラリの動作環境やご利用方法についての最新の情報は，以下のウェブページをご確認ください．
https://www.nag.com/doc/inun/nl27/mi6dgl/supplementary.html

1

3. 一般情報
本製品では，Apple vecLib (Accelerate Framework) が提供する BLAS／LAPACK ルーチンを利用するスタティックライブラリ libnag_vl.a および共有ライブラリ libnag_vl.dylibと ， NAG が 提 供 す る BLAS ／ LAPACK ル ー チ ン を 利 用 す る ス タ テ ィ ッ ク ラ イ ブ ラ リ
libnag_nag.a および共有ライブラリ libnag_nag.dylib が提供されます．本ライブラリは，
vecLib version 3.11 を用いてテストされています．vecLib の詳細につきましては，Apple社のウェブサイト https://developer.apple.com/documentation/accelerate/veclib
をご参照ください．パフォーマンスの面からは，vecLib を利用するバージョンの NAG ラ
イブラリ libnag_vl.a または libnag_vl.dylib のご利用を推奨します．
本製品は NAG AD ライブラリを含みません．
NAG ライブラリはメモリリークが起きないように設計されています．メモリの解放は NAG
ライブラリ自身によってか，もしくは，C ルーチンに対しては，ユーザーが NAG_FREE()を呼び出すことによって行われます．しかしながら，NAG ライブラリが依存している他のライブラリ（コンパイラのランタイムライブラリなど）がメモリリークを起こすかもしれません．このため，NAG ライブラリをリンクしているプログラムに対して何らかのメモ
リトレースツールを使った際に，場合によってはメモリリークが検出されるかもしれま
せん．リークするメモリの量はアプリケーションによって異なると思われますが，NAG ラ
イブラリの呼び出し回数に比例して際限なく増加するものではありません．
NAG ライブラリをマルチスレッドアプリケーションで利用する場合の詳細は，ライブラリ
マニュアルの "CL Interface Multithreading" または "FL Interface Multithreading"
ドキュメントをご参照ください．
本製品で提供されているライブラリは並列化されていません．ただし，vecLib はマルチスレッドを用いてパフォーマンスを向上させる場合があります．

2

3.1. ライブラリのリンク方法
本セクションでは，本製品が [INSTALL_DIR] にインストールされていることが前提となります．デフォルトの [INSTALL_DIR] は $HOME/NAG/nlmi627dgl となります．また，インストール時に [INSTALL_DIR] を指定することもできます．
NAG ライブラリは，NAG C ライブラリと NAG Fortran ライブラリ（Fortran ライブラリイ
ンタフェースの C ラッパーを含む）の両方を含んでいます．また，本製品に含まれる様々なライブラリの呼び出しを支援するためのスクリプト nagvars.sh および nagvars.csh が提供されます．これらのスクリプトは，NAG ルーチンを呼び出すアプリケーションのコン
パイル・リンクのための NAG 固有の環境変数を設定します．また，NAG の実行プログラムとライブラリがコンパイル・リンク・実行時に見つかるように，標準の環境変数 PATH とDYLD_LIBRARY_PATH も設定します．
nagvars スクリプトの使用法は以下のようになります．
. [INSTALL_DIR]/scripts/nagvars.sh [-help] [-unset] [-quiet] {int32} \{vendor,nag} {static,dynamic}または，
source [INSTALL_DIR]/scripts/nagvars.csh [-help] [-unset] [-quiet] {int32} \{vendor,nag} {static,dynamic}
ここで，

nagvars.sh は，Bourne，Bash または同等のシェル（注：Dash ではなく）で使用する必要があります．また，nagvars.csh は，Csh，Tcsh または同等のシェルで使用する必要があります．

{int32} は，NAG ルーチンの整数の引数と変数のデフォルトサイズを指定します．
このオプションは，本製品では選択肢が一つしかありませんが，32-bit 整数ライブ
ラリと 64-bit 整数ライブラリを選択できる他の NAG ライブラリ製品との互換性のために保持されています．

3{vendor，nag} は，vecLib ライブラリに依存する NAG ライブラリを使用するか（オプション vendor），もしくは，vecLib ライブラリに依存しない NAG ライブラリを使用するか（オプション nag）を指定します．パフォーマンスの面からは，オプション
vendor を推奨します．

{static，dynamic} は，NAG ライブラリの静的バージョンと動的（共有）バージョンのどちらにリンクするかを指定します．

デフォルト値は設定されていないため，３つのオプション全てを指定する必要がありま
す．どの順序で指定しても構いません．
任意で指定できるオプションは以下のとおりです．
-help は，スクリプトについての情報を表示します．

-unset は，NAG 固有の環境変数を削除し，標準の環境変数 PATH と DYLD_LIBRARY_PATH
から本製品に関する全ての参照を削除します．

-quiet は，標準出力への出力を抑止します．

以下に，Bash での nagvars スクリプトのコマンド例を示します．
source [INSTALL_DIR]/scripts/nagvars.sh int32 vendor dynamic
NAG 固有の環境変数は以下のとおりです．


NAGLIB_CC - NAG ライブラリの作成に使用された C コンパイラ



NAGLIB_CXX - NAG ライブラリの作成に使用された C++コンパイラ



NAGLIB_F77 - NAG ライブラリの作成に使用された Fortran コンパイラ



NAGLIB_CFLAGS - 必要または推奨される C コンパイラオプションNAGLIB_CXXFLAGS - 必要または推奨される C++コンパイラオプションNAGLIB_FFLAGS - 必要または推奨される Fortran コンパイラオプションNAGLIB_INCLUDE - NAG C ヘッダーおよび Fortran モジュールファイルへのパス

NAGLIB_CLINK - C コンパイラを用いる場合，NAG ルーチン（および，オプションでベンダーの BLAS／LAPACK ルーチン）のリンクに必要なライブラリ

NAGLIB_CXXLINK - C++コンパイラを用いる場合，NAG ルーチン（および，オプション
でベンダーの BLAS／LAPACK ルーチン）のリンクに必要なライブラリ

NAGLIB_FLINK - Fortran コンパイラを用いる場合，NAG ルーチン（および，オプシ
ョンでベンダーの BLAS／LAPACK ルーチン）のリンクに必要なライブラリ

4

NAG ライブラリおよび（必要に応じて）Apple vecLib (Accelerate Framework) ライブラ
リを利用する場合は，以下のようにコンパイル・リンクを行ってください．
C プログラム：${NAGLIB_CC} ${NAGLIB_CFLAGS} ${NAGLIB_INCLUDE} program.c ${NAGLIB_CLINK}C++ プログラム${NAGLIB_CXX} ${NAGLIB_CXXFLAGS} ${NAGLIB_INCLUDE} program.cpp ${NAGLIB_CXXLINK}
Fortran プログラム：${NAGLIB_F77} ${NAGLIB_FFLAGS} ${NAGLIB_INCLUDE} program.f90 ${NAGLIB_FLINK}
また，スクリプト nagvars.csh および nagvars.sh の変数 _nag_compiler_runtimedir に
適切な lib ディレクトリのパスを設定する必要があります．スクリプトを使用しない場
合は，コンパイラのランタイムライブラリのパスを DYLD_LIBRARY_PATH に設定します．

5

3.2. Fortran インターフェースブロック
NAG ライブラリのインターフェースブロック（引用仕様宣言）は NAG ライブラリの Fortran
ルーチンの型と引数を定義します．Fortran プログラムから NAG ライブラリを呼び出す際に必ず必要という性質のものではありませんが，その利用が推奨されます（ただし，本製品で提供される Example を利用する際には必ず必要です）．これを用いることで NAG ラ
イブラリルーチンが正しく呼び出されているかどうかのチェックを Fortran コンパイラに任せる事ができます．具体的にはコンパイラが以下のチェックを行うことを可能とします．
(a) サブルーチン呼び出しの整合性(b) 関数宣言の型(c) 引数の数(d) 引数の型
NAG ライブラリのインターフェースブロックファイルはチャプター毎のモジュールとして提供されますが，これらをまとめて一つにしたモジュールが提供されます．
nag_library
これらのモジュールは，GNU Fortran コンパイラ用にコンパイルされた形式（*.mod ファイル）で提供されます．コンパイル時に -I"pathname" オプションを用いて，モジュー
ルファイルが置かれているディレクトリのパス，[INSTALL_DIR]/lp64/nag_interface_blocksを指定してください．
提供されるモジュールファイル（.mod ファイル）は，インストールノートの「2.2. 開発
環境」にある Fortran コンパイラを用いて生成されています．モジュールファイルはコ
ンパイラ依存のファイルであるため，ご利用のコンパイラとの間に互換性がない場合は，ご利用のコンパイラでモジュールファイルを生成する必要があります．（自身のプログ
ラムでインターフェースブロックをご利用にならないのであれば，この限りではありません．ただし，Example プログラムはインターフェースブロックを利用しますので，
Example プログラムをご利用になる場合は必要です．）

6提供されるスクリプト nag_recompile_mods を用いて，モジュールファイルのセットを指定のディレクトリ（例えば，nag_interface_blocks_alt）に生成することができます．
[INSTALL_DIR]/scripts/nag_recompile_mods {int32} nag_interface_blocks_alt
このスクリプトは PATH 環境変数に設定された GNU Fortran コンパイラを使用します．
[INSTALL_DIR]/scripts/nag_recompile_mods を実行する前に，ご利用の GNU Fortran コ
ンパイラの環境設定スクリプトを実行しておくと安心です．
新しいモジュールファイルのセットをデフォルトのセットとして使用するには，以下のコマンドで（ [INSTALL_DIR] を適切な実際のディレクトリパスに置き換えて），デフォ
ルトのセットを変更します．
mv [INSTALL_DIR]/lp64/nag_interface_blocks \[INSTALL_DIR]/lp64/nag_interface_blocks_original
mv [INSTALL_DIR]/lp64/nag_interface_blocks_alt \[INSTALL_DIR]/lp64/nag_interface_blocks
これで，新しくコンパイルされたモジュールファイルを通常の方法で使用できるように
なります．

7

3.3. Example プログラム提供される Example 結果は，インストールノートの「2.2. 開発環境」に記載されている環境で生成されています．Example プログラムの実行結果は，異なる環境下（例えば，異なる C または Fortran コンパイラ，異なるコンパイラランタイムライブラリ，異なる BLAS
または LAPACK ルーチンなど）で若干異なる場合があります．そのような違いが顕著な計算結果としては，固有ベクトル（スカラー（多くの場合 -1）倍の違い），反復回数や関数評価，残差（その他マシン精度と同じくらい小さい量）などがあげられます．
提供される Example 結果は，スタティックライブラリ libnag_vl.a（vecLib 提供の BLAS
／LAPACK ルーチンを使用）を用いて得られたものです．NAG 提供の BLAS／LAPACK ルーチ
ンを使用した場合は，結果が僅かに異なるかもしれません．
Example プログラムは本ライブラリが想定する動作環境に適した状態で提供されます．そのため，ライブラリマニュアルに記載されている Example プログラムに比べて，その内容が若干異なる場合があります．
nag_example スクリプトを用いて Example プログラムを簡単に利用する事ができます．このスクリプトは，[INSTALL_DIR]/scripts ディレクトリに提供されます．
このスクリプトは，Example プログラムのソースファイル（必要に応じて，データファイ
ル，オプションファイルその他）をカレントディレクトリにコピーして，コンパイル・
リンク・実行を行います．デフォルトでは，nag_example は，vecLib に依存しないスタティックライブラリ libnag_nag.a をリンクします．これらのデフォルト値はそれぞれ，-shared と -vendor オプションで変更することができます（これにより，リンクするラ
イブラリの種類を選択することができます）．-quiet オプションを指定すると，コマンドとコメントの両方の出力を最小限にします．以下のコマンドで，利用可能なオプションのリストを見ることができます．
nag_example -help
nag_example スクリプトは，「3.1. ライブラリのリンク方法」で説明した nagvars スクリ
プトを利用しますが，呼び出しシェルの環境を変更しないことに注意してください．

8

ご利用の NAG ライブラリルーチンの名前をスクリプトの引数に指定してください．
例えば，NAG C ルーチン e04ucc の場合，
nag_example e04ucc
この例では，e04ucce.c（ソースファイル），e04ucce.d（データファイル），e04ucce.opt（オプションファイル）をカレントディレクトリにコピーして，コンパイル・リンク・実行を行い，e04ucce.r（結果ファイル）を生成します．
同様に，NAG Fortran ルーチン e04nrf の場合，
nag_example e04nrf
この例では，e04nrfe.f90（ソースファイル），e04nrfe.d（データファイル），e04nrfe.opt（オプションファイル）をカレントディレクトリにコピーして，コンパイル・リンク・実行を行い，e04nrfe.r（結果ファイル）を生成します．
nag_example スクリプトは nagvars.sh スクリプトを利用しているため，nagvars.sh スク
リプトの変数 _nag_compiler_runtimedir に適切なコンパイラランタイムライブラリのパスを設定する必要があります（「3.1. ライブラリのリンク方法」参照）．

9

3.4. メンテナンスレベル
ライブラリのメンテナンスレベルは，ライブラリルーチン a00aaf または a00aac のExample プログラムをコンパイル・リンク・実行することにより確認することができます．
この時，スクリプト nag_example を引数 a00aaf または a00aac と共に用いれば，Example
プログラムのコンパイル・リンク・実行を容易に行うことができます（「3.3. Example プ
ログラム」参照）．ライブラリルーチン a00aaf または a00aac は，ライブラリの詳細（タイトル，製品コード，使用されるコンパイラおよび精度，Mark など）を出力します．
3.5. C データ型
NAG C データ型の Integer と Pointer は，本ライブラリでは以下のように定義されていま
す．

NAG 型

C型

サイズ（バイト）

Integerint

4

Pointervoid *

8

sizeof(Integer) と sizeof(Pointer) の値は a00aac の Example プログラムから得ることもできます．その他の NAG データ型の情報は，ライブラリマニュアル（「5. ドキュメン
ト」参照）の "NAG CL Interface Introduction" ドキュメントの「3.1.1 NAG data types」
をご参照ください．

10

3.6. Fortran データ型と強調斜体文字の解釈
本製品は，32-bit 整数ライブラリ（ [INSTALL_DIR]/lp64/lib ディレクトリに在る）
のみを提供します．
NAG ライブラリとライブラリマニュアルでは，実数の変数を以下のようにパラメーター化された型を用いて記述しています．
REAL(KIND=nag_wp)
ここで nag_wp は Fortran の種別パラメーターを表しています．
nag_wp の値は製品毎に異なり，その値は nag_library モジュールに定義されています．
これに加え，いくつかのルーチンで以下の型が使用されます．
REAL(KIND=nag_rp)
これらの型の使用例については，各 Example プログラムをご参照ください．
本製品では，これらの型は次のような意味を持っています．
REAL(KIND=nag_rp)- REAL（単精度実数）

REAL(KIND=nag_wp)- DOUBLE PRECISION（倍精度実数）

COMPLEX(KIND=nag_rp) - COMPLEX（単精度複素数）
COMPLEX(KIND=nag_wp) - 倍精度複素数（e.g. COMPLEX*16）
これらに加え，ライブラリマニュアルの FL Interface セクションでは，強調斜体文字を用いて，いくつかの用語を表現しています．詳細につきましては，ライブラリマニュア
ルの "FL Interface Introduction" ドキュメントの「2.5Information」をご参照ください．

11

Implementation-dependent3.7. C または C++ からの NAG Fortran ルーチンの呼び出し
NAG ライブラリの Fortran ルーチンは C，C++（または互換性のある環境）からもご利用
いただけます．ユーザーが Fortran 型と C 型の間のマッピングを行うのを支援するために，C の観点からの Fortran インターフェースの説明（C ヘッダーインターフェース）が各 Fortran ルーチンのドキュメントに含まれています．また，C/C++ ヘッダーファイル[INSTALL_DIR]/lp64/include/nag.h が提供されます．
C または C++ から NAG ライブラリの Fortran ルーチンを呼び出す際のアドバイスは，"alt_c_interfaces.html" ドキュメントをご参照ください．（なお，NAG ライブラリの以前の Mark では，このドキュメントは "techdoc.html" と呼ばれていました．
）

12

4. ルーチン固有の情報
本製品のライブラリルーチン固有の情報を（チャプター毎に）以下に示します．
a. F06，F07，F08，F16
チャプター F06，F07，F08，F16 では，BLAS／LAPACK 由来のルーチンに対して NAG スタ
イルのルーチン名が与えられています．ルーチン名の詳細については，各チャプターイ
ントロダクションをご参照ください．パフォーマンスの面からは，NAG スタイルの名前よ
りも BLAS／LAPACK スタイルの名前でルーチンを使用してください．
多くの LAPACK ルーチンには，呼び出し側にどれだけのワークスペースが必要であるかをルーチンに問い合わせる "workspace query" メカニズムがあります．NAG が提供する
LAPACK と vecLib が提供する LAPACK では，このワークスペースのサイズが異なる場合があるので注意してください．
vecLib に依存するバージョンの NAG ライブラリでは，BLAS／LAPACK ルーチンの呼び出しに関して，vecLib が提供する BLAS／LAPACK ルーチンが使われます．ただし，以下の BLAS
／LAPACK ルーチンの呼び出しは，NAG が提供する BLAS／LAPACK ルーチンが使われます．
blas_damax_val blas_damin_val blas_daxpby

blas_ddot

blas_dmax_val

blas_dmin_val

blas_dsum

blas_dwaxpby

blas_zamax_val blas_zamin_val

blas_zaxpby

blas_zsum

blas_zwaxpby

daxpyi dbdsvdx ddoti

dgeesx dgehrd dgejsv dgemqrt dgemv

dgesvj dgetrs dgges

dgges3 dggev3 dggevx dgghd3 dggsvd3 dggsvp3 dgthr

dgthrz dhgeqz dorcsd drot

droti

scasum sdot

dsctr

dgeqrt dgesvdx

dsgesv dtpmqrt dtpqrt dtrsen

dtrsm

dznrm2 sasum

zaxpyi zcgesv zcopy

zdotu

zdotui zgeesx zgejsv zgelsy zgemqrt zgeqp3 zgeqrt zgesvdx zgesvj

zgges3 zggev3 zgghd3 zggsvd3 zggsvp3 zgthr

zgthrz zsctr

ztpqrt zuncsd zunmrz
b. S07 - S21
これらのチャプターの関数の動作は製品毎に異なります．
一般的な詳細はライブラリマニュアルをご参照ください．

13

zdotc

zdotciztgsen ztpmqrt

本製品に固有の値を以下に示します．
s07aa[f] (nag[f]_specfun_tan)
F_1 = 1.0e+13
F_2 = 1.0e-14
s10aa[fc] (nag[f]_specfun_tanh)
E_1 = 1.8715e+1
s10ab[fc] (nag[f]_specfun_sinh)
E_1 = 7.080e+2
s10ac[fc] (nag[f]_specfun_cosh)
E_1 = 7.080e+2
s13aa[fc] (nag[f]_specfun_integral_exp)
x_hi = 7.083e+2
s13ac[fc] (nag[f]_specfun_integral_cos)x_hi = 1.0e+16
s13ad[fc] (nag[f]_specfun_integral_sin)x_hi = 1.0e+17
s14aa[fc] (nag[f]_specfun_gamma)
ifail = 1 (NE_REAL_ARG_GT) if x > 1.70e+2
ifail = 2 (NE_REAL_ARG_LT) if x < -1.70e+2
ifail = 3 (NE_REAL_ARG_TOO_SMALL) if abs(x) < 2.23e-308
s14ab[fc] (nag[f]_specfun_gamma_log_real)
ifail = 2 (NE_REAL_ARG_GT) if x > x_big = 2.55e+305
s15ad[fc] (nag[f]_specfun_erfc_real)
x_hi = 2.65e+1
s15ae[fc] (nag[f]_specfun_erf_real)
x_hi = 2.65e+1
s15ag[fc] (nag[f]_specfun_erfcx_real)
ifail = 1 (NW_HI) if x >= 2.53e+307
ifail = 2 (NW_REAL) if 4.74e+7 <= x < 2.53e+307
ifail = 3 (NW_NEG) if x < -2.66e+1

14

s17ac[fc] (nag[f]_specfun_bessel_y0_real)
ifail = 1 (NE_REAL_ARG_GT) if x > 1.0e+16
s17ad[fc] (nag[f]_specfun_bessel_y1_real)
ifail = 1 (NE_REAL_ARG_GT) if x > 1.0e+16
ifail = 3 (NE_REAL_ARG_TOO_SMALL) if 0 < x <= 2.23e-308
s17ae[fc] (nag[f]_specfun_bessel_j0_real)
ifail = 1 (NE_REAL_ARG_GT) if abs(x) > 1.0e+16
s17af[fc] (nag[f]_specfun_bessel_j1_real)
ifail = 1 (NE_REAL_ARG_GT) if abs(x) > 1.0e+16
s17ag[fc] (nag[f]_specfun_airy_ai_real)
ifail = 1 (NE_REAL_ARG_GT) if x > 1.038e+2
ifail = 2 (NE_REAL_ARG_LT) if x < -5.7e+10
s17ah[fc] (nag[f]_specfun_airy_bi_real)
ifail = 1 (NE_REAL_ARG_GT) if x > 1.041e+2
ifail = 2 (NE_REAL_ARG_LT) if x < -5.7e+10
s17aj[fc] (nag[f]_specfun_airy_ai_deriv)
ifail = 1 (NE_REAL_ARG_GT) if x > 1.041e+2
ifail = 2 (NE_REAL_ARG_LT) if x < -1.9e+9s17ak[fc] (nag[f]_specfun_airy_bi_deriv)
ifail = 1 (NE_REAL_ARG_GT) if x > 1.041e+2
ifail = 2 (NE_REAL_ARG_LT) if x < -1.9e+9s17dc[fc] (nag[f]_specfun_bessel_y_complex)
ifail = 2 (NE_OVERFLOW_LIKELY) if abs(z) < 3.92223e-305
ifail = 4 (NW_SOME_PRECISION_LOSS) if abs(z) or fnu+n-1 > 3.27679e+4
ifail = 5 (NE_TOTAL_PRECISION_LOSS) if abs(z) or fnu+n-1 > 1.07374e+9s17de[fc] (nag[f]_specfun_bessel_j_complex)
ifail = 2 (NE_OVERFLOW_LIKELY) if AIMAG(z) > 7.00921e+2
ifail = 3 (NW_SOME_PRECISION_LOSS) if abs(z) or fnu+n-1 > 3.27679e+4
ifail = 4 (NE_TOTAL_PRECISION_LOSS) if abs(z) or fnu+n-1 > 1.07374e+9s17dg[fc] (nag[f]_specfun_airy_ai_complex)
ifail = 3 (NW_SOME_PRECISION_LOSS) if abs(z) > 1.02399e+3
ifail = 4 (NE_TOTAL_PRECISION_LOSS) if abs(z) > 1.04857e+6
s17dh[fc] (nag[f]_specfun_airy_bi_complex)
ifail = 3 (NW_SOME_PRECISION_LOSS) if abs(z) > 1.02399e+3
ifail = 4 (NE_TOTAL_PRECISION_LOSS) if abs(z) > 1.04857e+6

15s17dl[fc] (nag[f]_specfun_hankel_complex)
ifail = 2 (NE_OVERFLOW_LIKELY) if abs(z) < 3.92223e-305
ifail = 4 (NW_SOME_PRECISION_LOSS) if abs(z) or fnu+n-1 > 3.27679e+4
ifail = 5 (NE_TOTAL_PRECISION_LOSS) if abs(z) or fnu+n-1 > 1.07374e+9s18ad[fc] (nag[f]_specfun_bessel_k1_real)
ifail = 2 (NE_REAL_ARG_TOO_SMALL) if 0 < x <= 2.23e-308
s18ae[fc] (nag[f]_specfun_bessel_i0_real)
ifail = 1 (NE_REAL_ARG_GT) if abs(x) > 7.116e+2
s18af[fc] (nag[f]_specfun_bessel_i1_real)
ifail = 1 (NE_REAL_ARG_GT) if abs(x) > 7.116e+2
s18dc[fc] (nag[f]_specfun_bessel_k_complex)
ifail = 2 (NE_OVERFLOW_LIKELY) if abs(z) < 3.92223e-305
ifail = 4 (NW_SOME_PRECISION_LOSS) if abs(z) or fnu+n-1 > 3.27679e+4
ifail = 5 (NE_TOTAL_PRECISION_LOSS) if abs(z) or fnu+n-1 > 1.07374e+9
s18de[fc] (nag[f]_specfun_bessel_i_complex)
ifail = 2 (NE_OVERFLOW_LIKELY) if REAL(z) > 7.00921e+2
ifail = 3 (NW_SOME_PRECISION_LOSS) if abs(z) or fnu+n-1 > 3.27679e+4
ifail = 4 (NE_TOTAL_PRECISION_LOSS) if abs(z) or fnu+n-1 > 1.07374e+9s19aa[fc] (nag[f]_specfun_kelvin_ber)
ifail = 1 (NE_REAL_ARG_GT) if abs(x) >= 5.04818e+1
s19ab[fc] (nag[f]_specfun_kelvin_bei)
ifail = 1 (NE_REAL_ARG_GT) if abs(x) >= 5.04818e+1
s19ac[fc] (nag[f]_specfun_kelvin_ker)
ifail = 1 (NE_REAL_ARG_GT) if x > 9.9726e+2
s19ad[fc] (nag[f]_specfun_kelvin_kei)
ifail = 1 (NE_REAL_ARG_GT) if x > 9.9726e+2
s21bc[fc] (nag[f]_specfun_ellipint_symm_2)
ifail = 3 (NE_REAL_ARG_LT) if an argument < 1.583e-205
ifail = 4 (NE_REAL_ARG_GE) if an argument >= 3.765e+202
s21bd[fc] (nag[f]_specfun_ellipint_symm_3)
ifail = 3 (NE_REAL_ARG_LT) if an argument < 2.813e-103
ifail = 4 (NE_REAL_ARG_GT) if an argument >= 1.407e+102

16

c. X01
数学定数を以下に示します．
x01aa[fc] (nag[f]_math_pi)= 3.1415926535897932
x01ab[fc] (nag[f]_math_euler)= 0.5772156649015328
d. x02
マシン定数を以下に示します．
浮動小数点演算の基本的なパラメーター：x02bh[fc] (nag[f]_machine_model_base)= 2
x02bj[fc] (nag[f]_machine_model_digits)= 53
x02bk[fc] (nag[f]_machine_model_minexp)= -1021x02bl[fc] (nag[f]_machine_model_maxexp)= 1024浮動小数点演算の派生的なパラメーター：x02aj[fc] (nag[f]_machine_precision)= 1.11022302462516e-16
x02ak[fc] (nag[f]_machine_real_smallest)= 2.22507385850721e-308
x02al[fc] (nag[f]_machine_real_largest)= 1.79769313486231e+308
x02am[fc] (nag[f]_machine_real_safe)= 2.22507385850721e-308
x02an[fc] (nag[f]_machine_complex_safe)= 4.78687214269110e-168

17

コンピューター環境のその他のパラメーター：x02ah[fc] (nag[f]_machine_sinarg_max)= 1.42724769270596e+45
x02bb[fc] (nag[f]_machine_integer_max)= 2147483647
x02be[fc] (nag[f]_machine_decimal_digits)= 15
e. X04Fortran ルーチン：エラーメッセージおよびアドバイスメッセージのデフォルトの出力先
装置番号は 6 番となります．
f. X06
本製品では，X06 ルーチンは vecLib のスレッドの振る舞いに影響を与えません．

18

5. ドキュメント
ライブラリマニュアルは本製品の一部として提供されます．
また，NAG のウェブサイトからダウンロードすることもできます．
ライブラリマニュアルの最新版は，以下のウェブサイトをご参照ください．
https://www.nag.com/numeric/nl/nagdoc_27/
ライブラリマニュアルは HTML5（HTML／MathML マニュアル）で提供されます．
これらのドキュメントは Web ブラウザでご利用いただけます．
以下のマスター目次ファイルが提供されます．
nagdoc_27/index.html
ドキュメントの閲覧方法および操作方法については，以下のドキュメントをご参照ください．
https://www.nag.com/numeric/nl/nagdoc_27/nlhtml/genint/naglibdoc.html
加えて，以下のドキュメントが提供されます．


in.html - インストールノート（英語版）



un.html - ユーザーノート（本ドキュメントの英語版）



alt_c_interfaces.html - C および C++ から NAG ライブラリの Fortran ルーチンを呼び出すためのアドバイス19

6. サポート
製品のご利用に関してご質問等がございましたら，電子メールにて「日本 NAG ヘルプデスク」までお問い合わせください．その際，ご利用の製品の製品コード（NLMI627DGL）
並びに，お客様の User ID をご明記いただきますようお願い致します．
ご返答は平日 9：30～12:00，13:00～17:30 に行わせていただきます．
日本 NAG ヘルプデスク
Email: naghelp@nag-j.co.jp
7. コンタクト情報
日本ニューメリカルアルゴリズムズグループ株式会社（日本 NAG）
〒104-0032
東京都中央区八丁堀 4-9-9 八丁堀フロンティアビル 2F
Email: sales@nag-j.co.jp
Tel:03-5542-6311

Fax:

03-5542-6312

NAG のウェブサイトでは製品およびサービスに関する情報を定期的に更新しています．
https://www.nag-j.co.jp/ （日本）
https://www.nag.co.uk/ （英国本社）
https://www.nag.com/（米国）20