マクロ定義 | |
| #define | YMP_ALLOCATE(result, type, count) |
| 動的メモリーを新規に確保. より詳しく... | |
| #define | YMP_REALLOCATE(ptr, type, count) |
| 動的メモリーを再確保. より詳しく... | |
| #define | YMP_FREE(ptr) ymp_free(ptr) |
| 動的メモリーを解放. より詳しく... | |
| #define | YMP_TEMP_ALLOCATE(result, type, count) |
| 関数ローカルな動的メモリーを新規に確保. より詳しく... | |
| #define | YMP_ALLOC_DIGITS(self, new_len) |
| new_len要素のdigit_tの列を確保して、先頭ポインタを self->digitsに設定. より詳しく... | |
| #define | YMP_REALLOC_DIGITS(self, new_len) |
| new_len要素のdigit_tの列を再確保して、先頭ポインタを self->digitsに設定. より詳しく... | |
| #define | YMP_FREE_DIGITS(self) |
| self->digitsを解放. より詳しく... | |
変数 | |
| void *(* | ymp_malloc )(size_t size)=malloc |
| 動的メモリー確保. より詳しく... | |
| void *(* | ymp_realloc )(void *pv_mem, size_t size)=realloc |
| 動的メモリー再配置. より詳しく... | |
| void(* | ymp_free )(void *pv_mem)=free |
| メモリー解放. より詳しく... | |
|
|
値: do { \
register type *ptr_tmp = (type*)ymp_malloc(sizeof(type)*(count)); \
if (!ptr_tmp) \
{ \
ymp_alloc_error("確保失敗", sizeof(type)*(count)); \
break; \
} \
(result) = ptr_tmp; \
} while(0)sizeof(type)バイトの要素をcount個確保する。 確保された領域は不用になったらYMP_FREEにより解放する必要がある
multiprec.h の 130 行で定義されています。 |
|
|
値: do { \
register type *ptr_tmp = (type*)ymp_realloc((ptr), sizeof(type)*(count)); \
if (!ptr_tmp) \
{ \
ymp_alloc_error("再確保失敗", sizeof(type)*(count)); \
break; \
} \
(ptr) = ptr_tmp; \
} while(0)sizeof(type)バイトの要素をcount個確保する。 確保された領域は不用になったらYMP_FREEにより解放する必要がある。
multiprec.h の 156 行で定義されています。 |
|
|
動的メモリーを解放. YMP_ALLOCATE, YMP_REALLOCATEで確保した領域を解放
multiprec.h の 174 行で定義されています。 |
|
|
値: do { \
register type *ptr_tmp = (type*)alloca(sizeof(type)*(count)); \
if (!ptr_tmp) \
{ \
ymp_alloc_error("確保失敗", sizeof(type)*(count)); \
break; \
} \
(result) = ptr_tmp; \
} while(0)sizeof(type)バイトの要素をcount個確保する。 ただし、YMP_ALLOCATEとは異なり、この領域は呼び出し元の関数の終了時に自動的に解放される。
multiprec.h の 192 行で定義されています。 呼出 do_snprint, ymp_div_if_divisible, ymp_div_if_divisible_digit, ymp_divmodabs, ymp_euclid, ymp_fprint, ymp_modmul, ymp_modmulabs, ymp_modmulabs_2exp, ymp_modpowabs, ymp_modpowabs_2exp_z, ymp_modpowabs_z, ymp_mul, ymp_powabs, と ymp_snprint. |
|
|
値: do { \
YMP_ALLOCATE((self)->digits, digit_t, new_len); \
(self)->len = new_len; \
} while(0)確保に失敗した場合はymp_alloc_errorを呼ぶ
multiprec.h の 213 行で定義されています。 呼出 ymp_initialize_by_array, ymp_initialize_by_double, ymp_initialize_by_mp, と ymp_reserve_and_initialize_by_digit. |
|
|
値: do { \
YMP_REALLOCATE((self)->digits, digit_t, new_len); \
(self)->len = new_len; \
} while(0)確保に失敗した場合はymp_alloc_errorを呼ぶ
multiprec.h の 227 行で定義されています。 呼出 ymp_cut_down, と ymp_reserve. |
|
|
値: do { \
YMP_FREE((self)->digits); \
(self)->digits = NULL; \
} while(0)
multiprec.h の 239 行で定義されています。 呼出 ymp_destroy. |
|
|
動的メモリー確保.
multiprec.c の 15 行で定義されています。 |
|
|
動的メモリー再配置.
multiprec.c の 22 行で定義されています。 |
|
|
メモリー解放.
multiprec.c の 28 行で定義されています。 |
1.2.14 作者 Dimitri van Heesch,
© 1997-2002