対数ガンマ関数

C言語によるサンプルソースコード : 使用関数名:nag_log_gamma (s14abc)

Keyword: 対数ガンマ関数

概要

本サンプルは対数ガンマ関数を求めるC言語によるサンプルプログラムです。 本サンプルは引数xを読み込み、xの各値について以下に示される対数ガンマ関数を求めて出力します。

多ガンマ関数のデータ 

※本サンプルはnAG Cライブラリに含まれる関数 nag_log_gamma() のExampleコードです。本サンプル及び関数の詳細情報は nag_log_gamma のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで

入力データ

(本関数の詳細はnag_log_gamma のマニュアルページを参照)
1
2
3
4
5
6
7
8
9
10

このデータをダウンロード
nag_log_gamma (s14abc) Example Program Data
             1.0
             1.25
             1.5
             1.75
             2.0
             5.0
             10.0
             20.0
             1000.0

  • 1行目はタイトル行で読み飛ばされます。
  • 2~10行目に対数ガンマ関数の引数xの値を指定しています。

出力結果

(本関数の詳細はnag_log_gamma のマニュアルページを参照)
1
2
3
4
5
6
7
8
9
10
11

この出力例をダウンロード
nag_log_gamma (s14abc) Example Program Results
     x           y
   1.000e+00   0.000e+00
   1.250e+00  -9.827e-02
   1.500e+00  -1.208e-01
   1.750e+00  -8.440e-02
   2.000e+00   0.000e+00
   5.000e+00   3.178e+00
   1.000e+01   1.280e+01
   2.000e+01   3.934e+01
   1.000e+03   5.905e+03

  • 3~11行目に引数xの値と対数ガンマ関数の値が出力されています。

ソースコード

(本関数の詳細はnag_log_gamma のマニュアルページを参照)

※本サンプルソースコードはnAG数値計算ライブラリ(Windows, Linux, MAC等に対応)の関数を呼び出します。
サンプルのコンパイル及び実行方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

このソースコードをダウンロード
/* nag_log_gamma (s14abc) Example Program.
 *
 * CLL6I261D/CLL6I261DL Version.
 *
 * Copyright 2017 Numerical Algorithms Group.
 *
 * Mark 26.1, 2017.
 */

#include <nag.h>
#include <stdio.h>
#include <nag_stdlib.h>
#include <nags.h>

int main(void)
{
  Integer exit_status = 0;
  double x, y;
  NagError fail;

  INIT_FAIL(fail);

  /* Skip heading in data file */
  scanf("%*[^\n]");
  printf("nag_log_gamma (s14abc) Example Program Results\n");
  printf("     x           y\n");
  while (scanf("%lf", &x) != EOF)
  {
    /* nag_log_gamma (s14abc).
     * Log Gamma function ln(Gamma(x))
     */
    y = nag_log_gamma(x, &fail);
    if (fail.code != NE_NOERROR) {
      printf("Error from nag_log_gamma (s14abc).\n%s\n", fail.message);
      exit_status = 1;
      goto END;
    }
    printf("%12.3e%12.3e\n", x, y);
  }

END:
  return exit_status;
}


関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks