XLPack 5.3 を公開

XLPackの新版(5.3版)を公開しましたのでお知らせいたします.

本バージョンでは, モジュール1, 2においてLAPACKを最新版に更新し, モジュール3, 4において特殊関数, 数値積分, 乱数の機能追加を行いました. 特殊関数については全面的に見直しを行っています.

旧版をご使用のお客様は新版に更新をしていただくようお願いいたします.

なお, 一部の特殊関数において前バージョン(5.2版)との互換性がない部分がありますのでご注意ください.


前バージョン(5.2版)からの変更点

(1) VBA関数

  • モジュール 1, 2
    • LAPACKを 3.8.0 から 3.9.0 に更新した
  • モジュール 3
    • 高次代数方程式の解を求めるルーチン Cpqr79, Rpqr79 の内部処理を変更した
    • 特殊関数(分類AおよびC)を全面的に見直した
      詳細
      (1) 新規追加

      Cpolar: 複素数の作成(極座標)
      Factorial: 階乗
      Laguerre: ラゲール多項式 Ln(x)
      ALaguerre: ラゲール陪多項式 Lnm(x)
      Legendre: ルジャンドル多項式 Pn(x)
      Legendred: ルジャンドル多項式 Pn(x) の導関数
      ALegendre: ルジャンドル陪関数 Pnm(x)
      SHarmonic: 球面調和関数 Ylm(θ, φ)
      SHarmonicr: 球面調和関数 Ylm(θ, φ) の実数部
      SHarmonici: 球面調和関数 Ylm(θ, φ) の虚数部
      Hermite: エルミート多項式 Hn(x)
      Chebt: 第1種チェビシェフ多項式
      Chebtd: 第1種チェビシェフ多項式の導関数
      Chebu: 第2種チェビシェフ多項式
      Chebs: チェビシェフ級数の値
      Sqrt1pm1: Sqrt(1+x)-1
      Powm1: x^y – 1
      Sinpi: sin(πx)
      Cospi: cos(πx)
      Ccot: 複素数 cot(z)
      En: 指数積分 En(x)
      Spence: スペンスの関数 (ジログ関数) Li2(x)
      Gamma1pm1: ガンマ関数 Γ(1+x)-1
      Lngams: 対数ガンマ関数 ln|Γ(x)| およびガンマ関数の符号
      Gamratio: ガンマ関数の比 Γ(a)/Γ(b)
      Gamdratio: ガンマ関数の比 Γ(a)/Γ(a+δ)
      Diagamma: ディガンマ関数(psi関数)ψ(x)
      Trigamma: トリガンマ関数ψ1(x) (ディガンマ関数ψ(x)の1次導関数)
      Polygamma: ポリガンマ関数ψn(x) (ディガンマ関数ψ(x)のn次導関数)
      Gammap: 正規化された第1種不完全ガンマ関数 P(a, x)
      Gammaq: 正規化された第2種不完全ガンマ関数 Q(a, x)
      Gammapi: 正規化された第1種不完全ガンマ関数 P(a, x)のxの逆関数
      Gammaqi: 正規化された第2種不完全ガンマ関数 Q(a, x)のxの逆関数
      Gammapia: 正規化された第1種不完全ガンマ関数 P(a, x)のaの逆関数
      Gammaqia: 正規化された第2種不完全ガンマ関数 Q(a, x)のaの逆関数
      Gammapd: 正規化された第1種不完全ガンマ関数 P(a, x)の導関数
      Betax: 不完全ベータ関数 Bx(a, b)
      Betaxc: 不完全ベータ補関数 1 – Bx(a, b)
      Ibeta: 正規化された不完全ベータ関数 Ix(a, b)
      Ibetac: 正規化された不完全ベータ補関数 1 – Ix(a, b)
      Ibetai: 正規化された不完全ベータ関数 Ix(a, b)のxの逆関数
      Ibetaci: 正規化された不完全ベータ補関数 1 – Ix(a, b)のxの逆関数
      Ibetaia: 正規化された不完全ベータ関数 Ix(a, b)のaの逆関数
      Ibetacia: 正規化された不完全ベータ補関数 1 – Ix(a, b)のaの逆関数
      Ibetaib: 正規化された不完全ベータ関数 Ix(a, b)のbの逆関数
      Ibetacib: 正規化された不完全ベータ補関数 1 – Ix(a, b)のbの逆関数
      Ibetad: 正規化された不完全ベータ関数 Ix(a, b)の導関数
      Zeta: リーマンゼータ関数 ζ(x)
      Erfi: 誤差関数 erf(x) の逆関数
      Erfci: 誤差補関数 erfc(x) の逆関数
      Dawson: ドーソンの関数 F(x)
      Besjn: 第1種n次ベッセル関数 Jn(x)
      Besyn: 第2種n次ベッセル関数 Yn(x)
      Besjnu: 第1種ベッセル関数 Jν(x) (実数次)
      Besynu: 第2種ベッセル関数 Yν(x) (実数次)
      Besjnd: 第1種n次ベッセル関数の導関数 J’n(x)
      Besynd: 第2種n次ベッセル関数の導関数 Y’n(x)
      Besjnud: 第1種n次ベッセル関数の導関数 J’ν(x) (実数次)
      Besynud: 第2種n次ベッセル関数の導関数 Y’ν(x) (実数次)
      Sbesjn: 第1種n次球ベッセル関数 jn(x)
      Sbesyn: 第2種n次球ベッセル関数 yn(x)
      Sbesjnu: 第1種球ベッセル関数 jν(x) (実数次)
      Sbesynu: 第2種球ベッセル関数 yν(x) (実数次)
      Besin: 第1種n次変形ベッセル関数 In(x)
      Beskn: 第2種n次変形ベッセル関数 Kn(x)
      Besinu: 第1種変形ベッセル関数 Iν(x) (実数次)
      Besknu: 第2種変形ベッセル関数 Kν(x) (実数次)
      Besind: 第1種n次変形ベッセル関数の導関数 I’n(x)
      Besknd: 第2種n次変形ベッセル関数の導関数 K’n(x)
      Besinud: 第1種n次変形ベッセル関数の導関数 I’ν(x) (実数次)
      Besknud: 第2種n次変形ベッセル関数の導関数 K’ν(x) (実数次)
      Sbesin: 第1種n次変形球ベッセル関数 in(x)
      Sbeskn: 第2種n次変形球ベッセル関数 kn(x)
      Sbesinu: 第1種変形球ベッセル関数 iν(x) (実数次)
      Sbesknu: 第2種変形球ベッセル関数 kν(x) (実数次)
      Airyai: エアリー関数 Ai(x)
      Airybi: エアリー関数 Bi(x)
      Airyaid: エアリー関数 Ai(x) の導関数 Ai'(x)
      Airybid: エアリー関数 Bi(x) の導関数 Bi'(x)
      Hyp1f1: 第1種合流型超幾何関数 (超幾何関数 1F1(a; b; z)/クンマーの関数 M(a, b, z))
      Lhyp1f1: 超幾何関数の対数 ln|1F1(a; b; z)|
      Hyp1f1r: 正規化された超幾何関数 1F1(a; b; z)/Γ(b)
      Hyp2f1: 第1種超幾何関数 2F1(a1 a2; b; z) (ガウス型超幾何関数)
      Hyp1f0: 超幾何関数 1F0(a;; z)
      Hyp0f1: 超幾何関数 0F1(; b; z)
      H2f0: 超幾何関数 2F0(a1 a2;; z)
      Jelli: ヤコビの楕円関数 sn(u, k), cn(u,k), dn(u, k)
      Jsn: ヤコビの楕円関数 sn(u, k)
      Jcn: ヤコビの楕円関数 cn(u, k)
      Jdn: ヤコビの楕円関数 dn(u, k)
      Jns: ヤコビの楕円関数 ns(u, k)
      Jnc: ヤコビの楕円関数 nc(u, k)
      Jnd: ヤコビの楕円関数 nd(u, k)
      Jsc: ヤコビの楕円関数 sc(u, k)
      Jsd: ヤコビの楕円関数 sd(u, k)
      Jdc: ヤコビの楕円関数 dc(u, k)
      Jds: ヤコビの楕円関数 ds(u, k)
      Jcs: ヤコビの楕円関数 cs(u, k)
      Jcd: ヤコビの楕円関数 cd(u, k)
      Rg: カールソンの楕円積分 RG(x, y, z)
      Jzeta: ヤコビのゼータ関数 Z(φ, k)

      (2) 内部処理の変更

      ・以下のルーチンの内部処理を変更した. エラー処理の仕様が異なる場合がある.

      Ccbrt: 複素数 立方根
      Expm1: exp(x)-1
      Exp2: 2^x
      Log1p: ln(1 + x)
      Log2: log2(x)
      Log10: log10(x)
      Cexpm1: 複素数 exp(z)-1
      Clog1p: 複素数 ln(1 + z)
      Acos: arccos(x)
      Asin: arcsin(x)
      Atan2: arctan2(y, x)
      Cosh: cosh(x)
      Sinh: sinh(x)
      Acosh: arccosh(x)
      Atanh: arctanh(x)
      Li: 対数積分 li(x)
      Ei: 指数積分 Ei(x)
      E1: 指数積分 E1(x)
      Ci: 余弦積分 Ci(x)
      Si: 正弦積分 Si(x)
      Chi: 双曲線余弦積分 Chi(x)
      Shi: 双曲線正弦積分 Shi(x)
      Gamma: ガンマ関数 Γ(x)
      Lngam: 対数ガンマ関数 ln(Γ(x))
      Gamr: ガンマ関数の逆数 1/Γ(x)
      Poch: ポッホハマー記号 (a)x
      Poch1: 相対ポッホハマー記号 ((a)x – 1)/x
      Cgamme: ガンマ関数Γ(z) (複素引数)
      Clngam: 対数ガンマ関数 ln(Γ(z)) (複素引数)
      Cgamr: ガンマ関数の逆数 1/Γ(z) (複素引数)
      Beta: ベータ関数 Beta(a, b)
      Lnbeta: 対数ベータ関数 ln(B(a, b))
      Cbeta: ベータ関数 B(a, b) (複素引数)
      Clnbeta: 対数ベータ関数 ln(B(a, b)) (複素引数)
      Gami: 第1種不完全ガンマ関数γ(a, x)
      Gamic: 第2種不完全ガンマ関数Γ(a, x)
      Gamit: Tricomi形式の不完全ガンマ関数γ*(a, x)
      Erfc: 誤差補関数 erfc(x)
      Besj0: 第1種0次ベッセル関数 J0(x)
      Besj1: 第1種1次ベッセル関数 J1(x)
      Besy0: 第2種0次ベッセル関数 Y0(x)
      Besy1: 第2種1次ベッセル関数 Y1(x)
      Besi0: 第1種0次変形ベッセル関数 I0(x)
      Besi1: 第1種1次変形ベッセル関数 I1(x)
      Besk0: 第2種0次変形ベッセル関数 K0(x)
      Besk1: 第2種1次変形ベッセル関数 K1(x)
      Celli1: 第1種完全楕円積分 K(k)
      Celli2: 第2種完全楕円積分 E(k)
      Celli3: 第3種完全楕円積分 P(n, k)
      Elli1: 第1種不完全楕円積分 F(φ, k)
      Elli2: 第2種不完全楕円積分 E(φ, k)
      Elli3: 第3種不完全楕円積分 P(φ, n, k)
      Rc: カールソンの楕円積分 RC(x, y)
      Rd: カールソンの楕円積分 RD(x, y, z)
      Rf: カールソンの楕円積分 RF(x, y, z)
      Rj: カールソンの楕円積分 RJ(x, y, z, p)

      (3) 廃止

      ・以下のルーチンを廃止したが, 旧版との互換性のため暫定的に互換ルーチンを提供している(一部スケーリング機能がないなど完全互換ではない). 今後は ⇒ で示した代替新規ルーチンの使用を推奨する.

      Exint: 複数個の指数積分 En(x) ⇒ En(*1)
      Spenc: スペンスの関数 (ジログ関数) Li2(x) ⇒ Spence
      Psi: Psi関数(ディガンマ関数)ψ(x) ⇒ Digamma
      Psifn: ポリガンマ関数ψn(x) (ディガンマ関数ψ(x)のn次導関数) ⇒ Polygamma(*1)
      Cpsi: Psi関数(ディガンマ関数)ψ(z) (複素引数) ⇒ Cdigamma
      Betai: 正規化された不完全ベータ関数 Bx(a, b) ⇒ IBeta(*2)
      Daws: ドーソンの関数 F(x) ⇒ Dawson
      Besj: 第1種ベッセル関数 Jν(x) (複数次数) (実数次) ⇒ Besjnu
      Besy: 第2種ベッセル関数 Yν(x) (複数次数) (実数次) ⇒ Besynu
      Sbesj: 第1種球ベッセル関数 jν(x) (複数次数) (実数次) ⇒ Sbesjnu
      Sbesy: 第2種球ベッセル関数 yν(x) (複数次数) (実数次) ⇒ Sbesynu
      Besi: 第1種変形ベッセル関数 Iν(x) (複数次数) (実数次) ⇒ Besinu(*1)
      Besk: 第2種変形ベッセル関数 Kν(x) (複数次数) (実数次) ⇒ Besknu(*1)
      Sbesi: 第1種変形球ベッセル関数 iν(x) (複数次数) (実数次) ⇒ Sbesinu(*1)
      Sbesk: 第2種変形球ベッセル関数 kν(x) (複数次数) (実数次) ⇒ Sbesknu(*1)
      Airy: エアリー関数 Ai(x) またはその導関数 Ai'(x) ⇒ Airyai, Airyaid(*1)
      Biry: エアリー関数 Bi(x) またはその導関数 Bi'(x) ⇒ Airybi, Airybid(*1)

      (*1) スケーリング機能なし
      (*2) 引数の順番が異なる

  • モジュール 4
    • フーリエ型積分を求める二重指数関数(DE)公式の積分ルーチンを追加した: Deoint, Deoint_r
    • 一様乱数発生ルーチンの64ビット版メルセンヌツイスターを追加した: InitGenrand64, InitByArray64, Genrand64Int64, Genrand64Int63, Genrand64Real1, Genrand64Real2, Genrand64Real3)
    • 以下のルーチンの内部処理を変更した: Bfqad, Pfqad
    • 以下のルーチンの内部処理を変更した: GenrandNorm, RanfArrNextNorm, Drand48Norm, GenrandExp, RanfArrNextExp, Drand49Exp
    • ガンマ分布に従う乱数発生ルーチンを追加した: GenrandGam, RanfArrNextGam, Drand48Gam

(2) ワークシート関数

  • モジュール3の特殊関数を全面的に見直した (変更内容はVBA関数に準ずる)

(3) ソルバー

  • フーリエ型積分を求める二重指数関数(DE)公式の積分ルーチンDeointを追加した