マクロ定義 | |
| #define | ymp_is_odd(self) !ymp_is_even((self)) |
| 多倍長整数が奇数かどうかを判定. より詳しく... | |
関数 | |
| int | ymp_compare_abs (mp_cref_t lhs, mp_cref_t rhs) |
| 多倍長整数の絶対値同士を大小比較する. より詳しく... | |
| int | ymp_compare (mp_cref_t lhs, mp_cref_t rhs) |
| 多倍長整数同士を大小比較する. より詳しく... | |
| int | ymp_compare_digit (mp_cref_t lhs, digit_t rhs) |
| 多倍長整数とdigit_tを大小比較する. より詳しく... | |
| int | ymp_is_zero (mp_cref_t self) |
| 多倍長整数が0かどうかを判定. より詳しく... | |
| int | ymp_is_even (mp_cref_t self) |
| 多倍長整数が偶数かどうかを判定. より詳しく... | |
|
|
多倍長整数が奇数かどうかを判定.
multiprec.h の 590 行で定義されています。 |
|
||||||||||||
|
多倍長整数の絶対値同士を大小比較する.
参照 mp_cref_t.
00022 {
00023 if (lhs->used > rhs->used)
00024 {
00025 return 1;
00026 }
00027 else if (lhs->used < rhs->used)
00028 {
00029 return -1;
00030 }
00031 else
00032 {
00033 size_t i;
00034 for (i=lhs->used; i-- > 0; )
00035 {
00036 if (lhs->digits[i] > rhs->digits[i]) return 1;
00037 else if (lhs->digits[i] < rhs->digits[i]) return -1;
00038 }
00039 }
00040 return 0;
00041 }
|
|
||||||||||||
|
多倍長整数同士を大小比較する.
参照 mp_cref_t, と ymp_compare_abs.
00055 {
00056 if (lhs->sign != rhs->sign)
00057 return rhs->sign - lhs->sign;
00058 else if (lhs->sign)
00059 return ymp_compare_abs(rhs, lhs);
00060 else
00061 return ymp_compare_abs(lhs, rhs);
00062 }
|
|
||||||||||||
|
多倍長整数とdigit_tを大小比較する.
00075 {
00076 if (lhs->sign) return -1;
00077
00078 if (lhs->used > 1) return 1;
00079 else if (lhs->used == 1)
00080 {
00081 if (lhs->digits[0] > rhs) return 1;
00082 else if (lhs->digits[0] < rhs) return -1;
00083 else return 0;
00084 }
00085 else return -(rhs!=0);
00086 }
|
|
|
多倍長整数が0かどうかを判定.
参照 mp_cref_t.
00096 {
00097 return !self || !self->used || (self->used==1 && !self->digits[0]);
00098 }
|
|
|
多倍長整数が偶数かどうかを判定.
参照 mp_cref_t.
00107 {
00108 return !self || !self->used || !(self->digits[0] & 0x01);
00109 }
|
1.2.14 作者 Dimitri van Heesch,
© 1997-2002