メインページ   モジュール   データ構造   ファイル一覧   データフィールド   グローバル  

多倍長整数


モジュール

代入
初期化・破棄
算術演算
ユーティリティー
動的メモリー
エラーハンドラ
数論的関数
出力
比較関数
その他諸々
ビット演算

データ構造

struct  multiprec
 多倍長整数を表す構造体. より詳しく...


マクロ定義

#define DIGIT_BIT   (sizeof(digit_t)*CHAR_BIT)
 digit_tのビット数. より詳しく...

#define DIGIT_MAX   UINT_MAX
 digit_tに格納できる最大値. より詳しく...

#define DIGIT_HIGHEST_BIT   ((digit_t)(1<<(DIGIT_BIT-1)))
#define DOUBLE_DIGIT_BIT   (sizeof(double_digit_t)*CHAR_BIT)
 double_digit_tのビット数. より詳しく...

#define DOUBLE_DIGIT_MAX   ULONGLONG_MAX
 double_digit_tに格納できる最大値. より詳しく...

#define HIGH_DIGIT(dd)   ((digit_t)((dd) >> DIGIT_BIT))
 double_digit_tの上位部分のdigit_tを返す. より詳しく...

#define LOW_DIGIT(dd)   ((digit_t)(dd))
 double_digit_tの下位部分のdigit_tを返す. より詳しく...

#define LOW_DIGIT_TO_HIGH_DIGIT(dd)   ((dd) << DIGIT_BIT)
 double_digit_tの下位部分を上位に移し、下位を0で埋める. より詳しく...

#define MULTIPREC_RADIX   (((double_digit_t)DIGIT_MAX)+1)
 多倍長整数の桁の基数. より詳しく...

#define MULTIPREC_INITIALIZER   {positive_sign, 0, 0, NULL}
 struct multiprecの標準的な初期化指定子. より詳しく...


型定義

typedef unsigned digit_t
 多倍長整数の各桁を表す整数型. より詳しく...

typedef unsigned long long double_digit_t
 digit_tの2倍以上のビット数を持つ整数型. より詳しく...

typedef multiprecmp_ref_t
 struct multiprecヘの参照(ポインタ). より詳しく...

typedef const struct multiprecmp_cref_t
 struct multiprecヘのconst参照(constポインタ). より詳しく...


列挙型

enum  mp_sign_t { positive_sign = 0, negative_sign = 1 }
 多倍長整数の符号. より詳しく...


マクロ定義の解説

#define DIGIT_BIT   (sizeof(digit_t)*CHAR_BIT)
 

digit_tのビット数.

multiprec.h27 行で定義されています。

呼出 digit_len_to_str_len, ymp_abs_clog2, ymp_assign_2exp, ymp_div_2exp, ymp_ilog2, ymp_iroot, ymp_is_perfect_power, ymp_lshiftabs, ymp_mod_2exp, ymp_modabs_2exp, ymp_modmul_2exp, ymp_modmulabs_2exp, ymp_modpow_2exp_z, ymp_modpowabs_2exp_z, ymp_mul_2exp, ymp_nsqrt_mod2exp, ymp_odd_sqrt, ymp_proot, と ymp_rshiftabs.

#define DIGIT_MAX   UINT_MAX
 

digit_tに格納できる最大値.

multiprec.h29 行で定義されています。

#define DIGIT_HIGHEST_BIT   ((digit_t)(1<<(DIGIT_BIT-1)))
 

multiprec.h30 行で定義されています。

呼出 do_divmodabs, ymp_abs_clog2, ymp_divmodabs, ymp_ilog2, と ymp_modpowabs.

#define DOUBLE_DIGIT_BIT   (sizeof(double_digit_t)*CHAR_BIT)
 

double_digit_tのビット数.

multiprec.h38 行で定義されています。

#define DOUBLE_DIGIT_MAX   ULONGLONG_MAX
 

double_digit_tに格納できる最大値.

multiprec.h40 行で定義されています。

#define HIGH_DIGIT dd       ((digit_t)((dd) >> DIGIT_BIT))
 

double_digit_tの上位部分のdigit_tを返す.

multiprec.h43 行で定義されています。

呼出 do_divmodabs, ymp_addabs, ymp_divmodabs, ymp_do_add_digit, ymp_lshiftabs, ymp_modmulabs_2exp, ymp_mulabs, ymp_mulabs_digit, と ymp_subabs.

#define LOW_DIGIT dd       ((digit_t)(dd))
 

double_digit_tの下位部分のdigit_tを返す.

multiprec.h45 行で定義されています。

呼出 do_divmodabs, ymp_addabs, ymp_divmodabs, ymp_divmodabs_digit, ymp_do_add_digit, ymp_modmulabs_2exp, ymp_mulabs, ymp_mulabs_digit, ymp_rshiftabs, と ymp_subabs.

#define LOW_DIGIT_TO_HIGH_DIGIT dd       ((dd) << DIGIT_BIT)
 

double_digit_tの下位部分を上位に移し、下位を0で埋める.

multiprec.h47 行で定義されています。

呼出 do_divmodabs, ymp_divmodabs, ymp_divmodabs_digit, ymp_lshiftabs, と ymp_rshiftabs.

#define MULTIPREC_RADIX   (((double_digit_t)DIGIT_MAX)+1)
 

多倍長整数の桁の基数.

multiprec.h52 行で定義されています。

呼出 do_divmodabs, ymp_assign_string, と ymp_subabs.

#define MULTIPREC_INITIALIZER   {positive_sign, 0, 0, NULL}
 

struct multiprecの標準的な初期化指定子.

この値は、多倍長整数としては 0 として扱われる。

multiprec.h87 行で定義されています。

呼出 ymp_initialize.


型定義の解説

typedef unsigned digit_t
 

多倍長整数の各桁を表す整数型.

multiprec.h25 行で定義されています。

呼出 digit_len_to_str_len, do_divmodabs, do_snprint, ymp_abs_clog2, ymp_add_digit, ymp_addabs, ymp_assign, ymp_assign_2exp, ymp_assign_abs, ymp_assign_abs_array, ymp_assign_abs_digit, ymp_assign_array, ymp_assign_digit, ymp_assign_string, ymp_compare_digit, ymp_div_if_divisible, ymp_div_if_divisible_digit, ymp_divmod_digit, ymp_divmodabs, ymp_divmodabs_digit, ymp_do_add_digit, ymp_euclid, ymp_fprint, ymp_ilog2, ymp_initialize_by_array, ymp_initialize_by_digit, ymp_initialize_by_double, ymp_initialize_by_mp, ymp_is_even, ymp_is_perfect_power, ymp_lshiftabs, ymp_modabs_2exp, ymp_modmul, ymp_modmulabs, ymp_modmulabs_2exp, ymp_modpowabs, ymp_modpowabs_2exp_z, ymp_modpowabs_z, ymp_mul, ymp_mul_digit, ymp_mulabs, ymp_mulabs_digit, ymp_neg, ymp_powabs, ymp_proot, ymp_reserve, ymp_reserve_and_initialize_by_digit, ymp_rshiftabs, ymp_snprint, ymp_sub, ymp_sub_digit, ymp_subabs, と ymp_swap.

typedef unsigned long long double_digit_t
 

digit_tの2倍以上のビット数を持つ整数型.

(digit_t) * (digit_t)を格納できる型

multiprec.h36 行で定義されています。

呼出 do_divmodabs, ymp_addabs, ymp_divmodabs, ymp_divmodabs_digit, ymp_do_add_digit, ymp_lshiftabs, ymp_modmulabs_2exp, ymp_mulabs, ymp_mulabs_digit, ymp_rshiftabs, と ymp_subabs.

typedef struct multiprec* mp_ref_t
 

struct multiprecヘの参照(ポインタ).

multiprec.h77 行で定義されています。

typedef const struct multiprec* mp_cref_t
 

struct multiprecヘのconst参照(constポインタ).

multiprec.h80 行で定義されています。

呼出 do_snprint, ymp_add, ymp_add_digit, ymp_assign, ymp_assign_abs, ymp_binary_sunzi, ymp_compare, ymp_compare_abs, ymp_compare_digit, ymp_div_2exp, ymp_div_if_divisible, ymp_div_if_divisible_digit, ymp_divmod, ymp_divmod_digit, ymp_do_add, ymp_do_add_digit, ymp_dump, ymp_dup, ymp_euclid, ymp_euclid_ex, ymp_fprint, ymp_ilog2, ymp_initialize_by_mp, ymp_iroot, ymp_is_even, ymp_is_perfect_power, ymp_is_zero, ymp_mod_2exp, ymp_modinv, ymp_modmul, ymp_modmul_2exp, ymp_modpow, ymp_modpow_2exp_z, ymp_modpow_z, ymp_mul, ymp_mul_2exp, ymp_mul_digit, ymp_neg, ymp_nsqrt_mod2exp, ymp_odd_root, ymp_odd_sqrt, ymp_pow, ymp_print_hex, ymp_proot, ymp_snprint, ymp_sub, と ymp_sub_digit.


列挙型の解説

enum mp_sign_t
 

多倍長整数の符号.

列挙型値:
positive_sign 
negative_sign 

multiprec.h56 行で定義されています。

呼出 ymp_divmod, と ymp_swap.

00056 { positive_sign=0, negative_sign=1 };


YMPに対してTue Mar 16 19:23:51 2004に生成されました。 doxygen1.2.14 作者 Dimitri van Heesch, © 1997-2002