#include <sc_signed.h>
sc_signed.h の 1074 行で定義されています。
typedef bool sc_dt::sc_signed::elemtype [private] |
sc_signed.h の 1085 行で定義されています。
sc_dt::sc_signed::sc_signed | ( | int | nb = sc_length_param().len() |
) | [explicit] |
sc_dt::sc_signed::sc_signed | ( | const sc_signed & | v | ) |
sc_dt::sc_signed::sc_signed | ( | const sc_unsigned & | v | ) |
sc_dt::sc_signed::sc_signed | ( | const sc_generic_base< T > & | v | ) | [inline, explicit] |
sc_signed.h の 2325 行で定義されています。
02326 { 02327 int nb = v->length(); 02328 sgn = default_sign(); 02329 if( nb > 0 ) { 02330 nbits = num_bits( nb ); 02331 } else { 02332 char msg[BUFSIZ]; 02333 std::sprintf( msg, 02334 "sc_unsigned( sc_generic_base<T> ) : nb = %d is not valid", nb); 02335 SC_REPORT_ERROR( sc_core::SC_ID_INIT_FAILED_, msg ); 02336 } 02337 ndigits = DIV_CEIL(nbits); 02338 # ifdef SC_MAX_NBITS 02339 test_bound(nb); 02340 # else 02341 digit = new sc_digit[ndigits]; 02342 # endif 02343 makezero(); 02344 v->to_sc_signed(*this); 02345 }
sc_dt::sc_signed::sc_signed | ( | const sc_bv_base & | v | ) | [explicit] |
sc_dt::sc_signed::sc_signed | ( | const sc_lv_base & | v | ) | [explicit] |
sc_dt::sc_signed::sc_signed | ( | const sc_int_subref_r & | v | ) | [explicit] |
sc_dt::sc_signed::sc_signed | ( | const sc_uint_subref_r & | v | ) | [explicit] |
sc_dt::sc_signed::sc_signed | ( | const sc_signed_subref_r & | v | ) | [explicit] |
sc_dt::sc_signed::sc_signed | ( | const sc_unsigned_subref_r & | v | ) | [explicit] |
virtual sc_dt::sc_signed::~sc_signed | ( | ) | [inline, virtual] |
sc_signed.h の 1144 行で定義されています。
01145 { 01146 #ifndef SC_MAX_NBITS 01147 delete [] digit; 01148 #endif 01149 }
sc_dt::sc_signed::sc_signed | ( | const sc_signed & | v, | |
small_type | s | |||
) | [private] |
sc_dt::sc_signed::sc_signed | ( | const sc_unsigned & | v, | |
small_type | s | |||
) | [private] |
sc_dt::sc_signed::sc_signed | ( | small_type | s, | |
int | nb, | |||
int | nd, | |||
sc_digit * | d, | |||
bool | alloc = true | |||
) | [private] |
sc_dt::sc_signed::sc_signed | ( | const sc_signed * | u, | |
int | l, | |||
int | r | |||
) | [private] |
sc_dt::sc_signed::sc_signed | ( | const sc_unsigned * | u, | |
int | l, | |||
int | r | |||
) | [private] |
sc_dt::sc_bigint< W >で再定義されています。
const sc_signed& sc_dt::sc_signed::operator= | ( | const sc_signed_subref_r & | a | ) |
const sc_signed& sc_dt::sc_signed::operator= | ( | const sc_generic_base< T > & | a | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator= | ( | const sc_unsigned & | v | ) |
sc_dt::sc_bigint< W >で再定義されています。
const sc_signed& sc_dt::sc_signed::operator= | ( | const sc_unsigned_subref_r & | a | ) |
const sc_signed & sc_dt::sc_signed::operator= | ( | const char * | v | ) |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 448 行で定義されています。
00449 { 00450 if( a == 0 ) { 00451 SC_REPORT_ERROR( sc_core::SC_ID_CONVERSION_FAILED_, 00452 "character string is zero" ); 00453 } 00454 if( *a == 0 ) { 00455 SC_REPORT_ERROR( sc_core::SC_ID_CONVERSION_FAILED_, 00456 "character string is empty" ); 00457 } 00458 try { 00459 int len = length(); 00460 sc_fix aa( a, len, len, SC_TRN, SC_WRAP, 0, SC_ON ); 00461 return this->operator = ( aa ); 00462 } catch( sc_core::sc_report ) { 00463 char msg[BUFSIZ]; 00464 std::sprintf( msg, "character string '%s' is not valid", a ); 00465 SC_REPORT_ERROR( sc_core::SC_ID_CONVERSION_FAILED_, msg ); 00466 // never reached 00467 } 00468 return *this; 00469 }
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 472 行で定義されています。
00473 { 00474 sgn = get_sign(v); 00475 // v >= 0 now. 00476 if (sgn == SC_ZERO) 00477 vec_zero(ndigits, digit); 00478 else { 00479 from_uint(ndigits, digit, (uint64) v); 00480 if (nbits <= (int)BITS_PER_INT64) 00481 convert_SM_to_2C_to_SM(); 00482 } 00483 return *this; 00484 }
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 487 行で定義されています。
00488 { 00489 sgn = get_sign(v); 00490 if (sgn == SC_ZERO) 00491 vec_zero(ndigits, digit); 00492 else { 00493 from_uint(ndigits, digit, v); 00494 if (nbits <= (int)BITS_PER_INT64) 00495 convert_SM_to_2C_to_SM(); 00496 } 00497 return *this; 00498 }
const sc_signed & sc_dt::sc_signed::operator= | ( | long | v | ) |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 501 行で定義されています。
00502 { 00503 sgn = get_sign(v); 00504 // v >= 0 now. 00505 if (sgn == SC_ZERO) 00506 vec_zero(ndigits, digit); 00507 else { 00508 from_uint(ndigits, digit, (unsigned long) v); 00509 if (nbits <= (int)BITS_PER_LONG) 00510 convert_SM_to_2C_to_SM(); 00511 } 00512 return *this; 00513 }
const sc_signed & sc_dt::sc_signed::operator= | ( | unsigned long | v | ) |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 516 行で定義されています。
00517 { 00518 sgn = get_sign(v); 00519 if (sgn == SC_ZERO) 00520 vec_zero(ndigits, digit); 00521 else { 00522 from_uint(ndigits, digit, v); 00523 if (nbits <= (int)BITS_PER_LONG) 00524 convert_SM_to_2C_to_SM(); 00525 } 00526 return *this; 00527 }
const sc_signed& sc_dt::sc_signed::operator= | ( | int | v | ) | [inline] |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.h の 1121 行で定義されています。
01122 { return operator=((long) v); }
const sc_signed& sc_dt::sc_signed::operator= | ( | unsigned int | v | ) | [inline] |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.h の 1124 行で定義されています。
01125 { return operator=((unsigned long) v); }
const sc_signed & sc_dt::sc_signed::operator= | ( | double | v | ) |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 530 行で定義されています。
00531 { 00532 is_bad_double(v); 00533 if (v < 0) { 00534 v = -v; 00535 sgn = SC_NEG; 00536 } 00537 else 00538 sgn = SC_POS; 00539 register int i = 0; 00540 while (floor(v) && (i < ndigits)) { 00541 #ifndef WIN32 00542 digit[i++] = (sc_digit) floor(remainder(v, DIGIT_RADIX)); 00543 #else 00544 digit[i++] = (sc_digit) floor(fmod(v, DIGIT_RADIX)); 00545 #endif 00546 v /= DIGIT_RADIX; 00547 } 00548 vec_zero(i, ndigits, digit); 00549 convert_SM_to_2C_to_SM(); 00550 return *this; 00551 }
const sc_signed & sc_dt::sc_signed::operator= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator= | ( | const sc_uint_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator= | ( | const sc_bv_base & | v | ) |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 557 行で定義されています。
00558 { 00559 int minlen = sc_min( nbits, v.length() ); 00560 int i = 0; 00561 for( ; i < minlen; ++ i ) { 00562 safe_set( i, v.get_bit( i ), digit ); 00563 } 00564 for( ; i < nbits; ++ i ) { 00565 safe_set( i, 0, digit ); // zero-extend 00566 } 00567 convert_2C_to_SM(); 00568 return *this; 00569 }
const sc_signed & sc_dt::sc_signed::operator= | ( | const sc_lv_base & | v | ) |
sc_dt::sc_bigint< W >で再定義されています。
sc_signed.cpp の 572 行で定義されています。
00573 { 00574 int minlen = sc_min( nbits, v.length() ); 00575 int i = 0; 00576 for( ; i < minlen; ++ i ) { 00577 safe_set( i, sc_logic( v.get_bit( i ) ).to_bool(), digit ); 00578 } 00579 for( ; i < nbits; ++ i ) { 00580 safe_set( i, 0, digit ); // zero-extend 00581 } 00582 convert_2C_to_SM(); 00583 return *this; 00584 }
sc_digit* sc_dt::sc_signed::get_raw | ( | ) | const [inline] |
virtual int sc_dt::sc_signed::concat_length | ( | bool * | xz_present_p | ) | const [inline, virtual] |
sc_dt::sc_value_baseを再定義しています。
sc_signed.h の 1155 行で定義されています。
01156 { if ( xz_present_p ) *xz_present_p = false; return nbits; }
bool sc_dt::sc_signed::concat_get_ctrl | ( | sc_digit * | dst_p, | |
int | low_i | |||
) | const [virtual] |
sc_dt::sc_value_baseを再定義しています。
sc_signed.cpp の 117 行で定義されています。
00118 { 00119 int dst_i; // Index to next word to set in dst_p. 00120 int end_i; // Index of high order word to set. 00121 int left_shift; // Amount to shift value left. 00122 sc_digit mask; // Mask for partial word sets. 00123 00124 00125 // CALCULATE METRICS FOR DATA MOVEMENT: 00126 00127 dst_i = low_i / BITS_PER_DIGIT; 00128 end_i = (low_i + nbits - 1) / BITS_PER_DIGIT; 00129 left_shift = low_i % BITS_PER_DIGIT; 00130 00131 00132 // ALL DATA TO BE MOVED IS IN A SINGLE WORD: 00133 00134 mask = ~(-1 << left_shift); 00135 dst_p[dst_i] = ( dst_p[dst_i] & ~mask ); 00136 dst_i++; 00137 00138 for ( ; dst_i <= end_i; dst_i++ ) dst_p[dst_i] = 0; 00139 00140 return false; 00141 }
bool sc_dt::sc_signed::concat_get_data | ( | sc_digit * | dst_p, | |
int | low_i | |||
) | const [virtual] |
sc_dt::sc_value_baseを再定義しています。
sc_signed.cpp の 143 行で定義されています。
00144 { 00145 sc_digit carry; // Carry bit for complements. 00146 int dst_i; // Index to next word to set in dst_p. 00147 int end_i; // Index of high order word to set. 00148 int high_i; // Index w/in word of high order bit. 00149 int left_shift; // Amount to shift value left. 00150 sc_digit left_word; // High word component for set. 00151 sc_digit mask; // Mask for partial word sets. 00152 bool result; // True if inserted non-zero data. 00153 int right_shift; // Amount to shift value right. 00154 sc_digit right_word; // Low word component for set. 00155 int src_i; // Index to next word to get from digit. 00156 00157 00158 00159 // CALCULATE METRICS FOR DATA MOVEMENT: 00160 00161 dst_i = low_i / BITS_PER_DIGIT; 00162 high_i = low_i + nbits - 1; 00163 end_i = high_i / BITS_PER_DIGIT; 00164 left_shift = low_i % BITS_PER_DIGIT; 00165 00166 switch ( sgn ) 00167 { 00168 // POSITIVE SOURCE VALUE: 00169 00170 case SC_POS: 00171 00172 result = true; 00173 00174 // ALL DATA TO BE MOVED IS IN A SINGLE WORD: 00175 00176 if ( dst_i == end_i ) 00177 { 00178 mask = ~(-1 << nbits) << left_shift; 00179 dst_p[dst_i] = ( dst_p[dst_i] & ~mask ) | 00180 ((digit[0] << left_shift) & mask); 00181 } 00182 00183 00184 // DATA IS IN MORE THAN ONE WORD, BUT IS WORD ALIGNED: 00185 00186 else if ( left_shift == 0 ) 00187 { 00188 carry = 1; 00189 for ( src_i = 0; dst_i < end_i; dst_i++, src_i++ ) 00190 { 00191 dst_p[dst_i] = digit[src_i]; 00192 } 00193 high_i = high_i % BITS_PER_DIGIT; 00194 mask = ~(-2 << high_i) & DIGIT_MASK; 00195 dst_p[dst_i] = digit[src_i] & mask; 00196 } 00197 00198 00199 // DATA IS IN MORE THAN ONE WORD, AND NOT WORD ALIGNED: 00200 00201 else 00202 { 00203 high_i = high_i % BITS_PER_DIGIT; 00204 right_shift = BITS_PER_DIGIT - left_shift; 00205 mask = ~(-1 << left_shift); 00206 right_word = digit[0]; 00207 dst_p[dst_i] = (dst_p[dst_i] & mask) | 00208 ((right_word << left_shift) & DIGIT_MASK); 00209 for ( src_i = 1, dst_i++; dst_i < end_i; dst_i++, src_i++ ) 00210 { 00211 left_word = digit[src_i]; 00212 dst_p[dst_i] = ((left_word << left_shift)&DIGIT_MASK) | 00213 (right_word >> right_shift); 00214 right_word = left_word; 00215 } 00216 left_word = digit[src_i]; 00217 mask = ~(-2 << high_i) & DIGIT_MASK; 00218 dst_p[dst_i] = ((left_word << left_shift) | 00219 (right_word >> right_shift)) & mask; 00220 } 00221 break; 00222 00223 00224 // SOURCE VALUE IS NEGATIVE: 00225 00226 case SC_NEG: 00227 00228 // ALL DATA TO BE MOVED IS IN A SINGLE WORD: 00229 00230 result = true; 00231 if ( dst_i == end_i ) 00232 { 00233 mask = ~(-1 << nbits) << left_shift; 00234 right_word = (digit[0] ^ DIGIT_MASK) + 1; 00235 dst_p[dst_i] = ( dst_p[dst_i] & ~mask ) | 00236 ((right_word << left_shift) & mask); 00237 } 00238 00239 00240 // DATA IS IN MORE THAN ONE WORD, BUT IS WORD ALIGNED: 00241 00242 else if ( left_shift == 0 ) 00243 { 00244 carry = 1; 00245 for ( src_i = 0; dst_i < end_i; dst_i++, src_i++ ) 00246 { 00247 right_word = (digit[src_i] ^ DIGIT_MASK) + carry; 00248 dst_p[dst_i] = right_word & DIGIT_MASK; 00249 carry = right_word >> BITS_PER_DIGIT; 00250 } 00251 high_i = high_i % BITS_PER_DIGIT; 00252 mask = (~(-2 << high_i)) & DIGIT_MASK; 00253 right_word = (digit[src_i] ^ DIGIT_MASK) + carry; 00254 dst_p[dst_i] = right_word & mask; 00255 } 00256 00257 00258 // DATA IS IN MORE THAN ONE WORD, AND NOT WORD ALIGNED: 00259 00260 else 00261 { 00262 high_i = high_i % BITS_PER_DIGIT; 00263 right_shift = BITS_PER_DIGIT - left_shift; 00264 mask = ~(-1 << left_shift); 00265 carry = 1; 00266 right_word = (digit[0] ^ DIGIT_MASK) + carry; 00267 dst_p[dst_i] = (dst_p[dst_i] & mask) | 00268 ((right_word << left_shift) & DIGIT_MASK); 00269 carry = right_word >> BITS_PER_DIGIT; 00270 for ( src_i = 1, dst_i++; dst_i < end_i; dst_i++, src_i++ ) 00271 { 00272 left_word = (digit[src_i] ^ DIGIT_MASK) + carry; 00273 dst_p[dst_i] = ((left_word << left_shift)&DIGIT_MASK) | 00274 (right_word >> right_shift); 00275 carry = left_word >> BITS_PER_DIGIT; 00276 right_word = left_word & DIGIT_MASK; 00277 } 00278 left_word = (digit[src_i] ^ DIGIT_MASK) + carry; 00279 mask = ~(-2 << high_i) & DIGIT_MASK; 00280 dst_p[dst_i] = ((left_word << left_shift) | 00281 (right_word >> right_shift)) & mask; 00282 } 00283 break; 00284 00285 00286 // VALUE IS ZERO: 00287 00288 default: 00289 result = false; 00290 00291 00292 // ALL DATA TO BE MOVED IS IN A SINGLE WORD: 00293 00294 if ( dst_i == end_i ) 00295 { 00296 mask = ~(-1 << nbits) << left_shift; 00297 dst_p[dst_i] = dst_p[dst_i] & ~mask; 00298 } 00299 00300 00301 // DATA IS IN MORE THAN ONE WORD, BUT IS WORD ALIGNED: 00302 00303 else if ( left_shift == 0 ) 00304 { 00305 carry = 1; 00306 for ( src_i = 0; dst_i < end_i; dst_i++, src_i++ ) 00307 { 00308 dst_p[dst_i] = 0; 00309 } 00310 high_i = high_i % BITS_PER_DIGIT; 00311 mask = ~(-2 << high_i) & DIGIT_MASK; 00312 dst_p[dst_i] = 0; // #### digit[src_i] & mask; 00313 } 00314 00315 00316 // DATA IS IN MORE THAN ONE WORD, AND NOT WORD ALIGNED: 00317 00318 else 00319 { 00320 high_i = high_i % BITS_PER_DIGIT; 00321 right_shift = BITS_PER_DIGIT - left_shift; 00322 mask = ~(-1 << left_shift); 00323 dst_p[dst_i] = (dst_p[dst_i] & mask); 00324 for ( dst_i++; dst_i <= end_i; dst_i++ ) 00325 { 00326 dst_p[dst_i] = 0; 00327 } 00328 } 00329 break; 00330 } 00331 return result; 00332 }
uint64 sc_dt::sc_signed::concat_get_uint64 | ( | ) | const [virtual] |
sc_dt::sc_value_baseを再定義しています。
sc_signed.cpp の 336 行で定義されています。
00337 { 00338 uint64 result; 00339 00340 switch ( sgn ) 00341 { 00342 case SC_POS: 00343 result = 0; 00344 if ( ndigits > 2 ) 00345 result = digit[2]; 00346 if ( ndigits > 1 ) 00347 result = (result << BITS_PER_DIGIT) | digit[1]; 00348 result = (result << BITS_PER_DIGIT) | digit[0]; 00349 break; 00350 case SC_NEG: 00351 result = 0; 00352 if ( ndigits > 2 ) 00353 result = digit[2]; 00354 if ( ndigits > 1 ) 00355 result = (result << BITS_PER_DIGIT) | digit[1]; 00356 result = (result << BITS_PER_DIGIT) | digit[0]; 00357 result = -result; 00358 if ( nbits < 64 ) 00359 { 00360 uint64 mask = ~0; 00361 result = result & ~(mask << nbits); 00362 } 00363 break; 00364 default: 00365 result = 0; 00366 break; 00367 } 00368 return result; 00369 }
void sc_dt::sc_signed::concat_set | ( | int64 | src, | |
int | low_i | |||
) | [virtual] |
void sc_dt::sc_signed::concat_set | ( | const sc_signed & | src, | |
int | low_i | |||
) | [virtual] |
sc_dt::sc_value_baseを再定義しています。
sc_signed.cpp の 377 行で定義されています。
00378 { 00379 if ( low_i < src.length() ) 00380 *this = src >> low_i; 00381 else 00382 *this = (src<0) ? (int_type)-1 : 0; 00383 }
void sc_dt::sc_signed::concat_set | ( | const sc_unsigned & | src, | |
int | low_i | |||
) | [virtual] |
sc_dt::sc_value_baseを再定義しています。
sc_signed.cpp の 385 行で定義されています。
00386 { 00387 if ( low_i < src.length() ) 00388 *this = src >> low_i; 00389 else 00390 *this = 0; 00391 }
void sc_dt::sc_signed::concat_set | ( | uint64 | src, | |
int | low_i | |||
) | [virtual] |
sc_signed& sc_dt::sc_signed::operator++ | ( | ) |
const sc_signed sc_dt::sc_signed::operator++ | ( | int | ) |
sc_signed& sc_dt::sc_signed::operator-- | ( | ) |
const sc_signed sc_dt::sc_signed::operator-- | ( | int | ) |
void sc_dt::sc_signed::check_index | ( | int | i | ) | const [inline] |
void sc_dt::sc_signed::invalid_index | ( | int | i | ) | const |
sc_signed.cpp の 83 行で定義されています。
00084 { 00085 char msg[BUFSIZ]; 00086 std::sprintf( msg, 00087 "sc_bigint bit selection: index = %d violates " 00088 "0 <= index <= %d", i, nbits - 1 ); 00089 SC_REPORT_ERROR( sc_core::SC_ID_OUT_OF_BOUNDS_, msg ); 00090 }
sc_signed_bitref& sc_dt::sc_signed::operator[] | ( | int | i | ) | [inline] |
sc_signed.h の 1183 行で定義されています。
01184 { 01185 check_index(i); 01186 sc_signed_bitref* result_p = 01187 sc_signed_bitref::m_pool.allocate(); 01188 result_p->initialize( this, i ); 01189 return *result_p; 01190 }
const sc_signed_bitref_r& sc_dt::sc_signed::operator[] | ( | int | i | ) | const [inline] |
sc_signed.h の 1192 行で定義されています。
01193 { 01194 check_index(i); 01195 sc_signed_bitref* result_p = 01196 sc_signed_bitref::m_pool.allocate(); 01197 result_p->initialize( this, i ); 01198 return *result_p; 01199 }
sc_signed_bitref& sc_dt::sc_signed::bit | ( | int | i | ) | [inline] |
sc_signed.h の 1201 行で定義されています。
01202 { 01203 check_index(i); 01204 sc_signed_bitref* result_p = 01205 sc_signed_bitref::m_pool.allocate(); 01206 result_p->initialize( this, i ); 01207 return *result_p; 01208 }
const sc_signed_bitref_r& sc_dt::sc_signed::bit | ( | int | i | ) | const [inline] |
sc_signed.h の 1210 行で定義されています。
01211 { 01212 check_index(i); 01213 sc_signed_bitref* result_p = 01214 sc_signed_bitref::m_pool.allocate(); 01215 result_p->initialize( this, i ); 01216 return *result_p; 01217 }
void sc_dt::sc_signed::check_range | ( | int | l, | |
int | r | |||
) | const [inline] |
sc_signed.h の 1229 行で定義されています。
01230 { 01231 if ( l < r ) 01232 { 01233 if ( l < 0 || r >= nbits ) invalid_range(l,r); 01234 } 01235 else 01236 { 01237 if ( r < 0 || l >= nbits ) invalid_range(l,r); 01238 } 01239 }
void sc_dt::sc_signed::invalid_range | ( | int | l, | |
int | r | |||
) | const |
sc_signed.cpp の 93 行で定義されています。
00094 { 00095 char msg[BUFSIZ]; 00096 std::sprintf( msg, 00097 "sc_bigint part selection: left = %d, right = %d \n" 00098 " violates either (0 <= left <= %d) or (0 <= right <= %d)", 00099 l, r, nbits-1, nbits-1 ); 00100 SC_REPORT_ERROR( sc_core::SC_ID_OUT_OF_BOUNDS_, msg ); 00101 }
sc_signed_subref& sc_dt::sc_signed::range | ( | int | i, | |
int | j | |||
) | [inline] |
sc_signed.h の 1243 行で定義されています。
01244 { 01245 check_range( i, j ); 01246 sc_signed_subref* result_p = 01247 sc_signed_subref::m_pool.allocate(); 01248 result_p->initialize( this, i, j ); 01249 return *result_p; 01250 }
const sc_signed_subref_r& sc_dt::sc_signed::range | ( | int | i, | |
int | j | |||
) | const [inline] |
sc_signed.h の 1252 行で定義されています。
01253 { 01254 check_range( i, j ); 01255 sc_signed_subref* result_p = 01256 sc_signed_subref::m_pool.allocate(); 01257 result_p->initialize( this, i, j ); 01258 return *result_p; 01259 }
sc_signed_subref& sc_dt::sc_signed::operator() | ( | int | i, | |
int | j | |||
) | [inline] |
sc_signed.h の 1261 行で定義されています。
01262 { 01263 check_range( i, j ); 01264 sc_signed_subref* result_p = 01265 sc_signed_subref::m_pool.allocate(); 01266 result_p->initialize( this, i, j ); 01267 return *result_p; 01268 }
const sc_signed_subref_r& sc_dt::sc_signed::operator() | ( | int | i, | |
int | j | |||
) | const [inline] |
sc_signed.h の 1270 行で定義されています。
01271 { 01272 check_range( i, j ); 01273 sc_signed_subref* result_p = 01274 sc_signed_subref::m_pool.allocate(); 01275 result_p->initialize( this, i, j ); 01276 return *result_p; 01277 }
int sc_dt::sc_signed::to_int | ( | ) | const |
unsigned int sc_dt::sc_signed::to_uint | ( | ) | const |
long sc_dt::sc_signed::to_long | ( | ) | const |
unsigned long sc_dt::sc_signed::to_ulong | ( | ) | const |
int64 sc_dt::sc_signed::to_int64 | ( | ) | const |
uint64 sc_dt::sc_signed::to_uint64 | ( | ) | const |
double sc_dt::sc_signed::to_double | ( | ) | const |
const std::string sc_dt::sc_signed::to_string | ( | sc_numrep | numrep = SC_DEC |
) | const |
const std::string sc_dt::sc_signed::to_string | ( | sc_numrep | numrep, | |
bool | w_prefix | |||
) | const |
void sc_dt::sc_signed::print | ( | ::std::ostream & | os = ::std::cout |
) | const [inline] |
sc_signed.h の 1306 行で定義されています。
01307 { os << to_string(sc_io_base(os,SC_DEC),sc_io_show_base(os)); }
void sc_dt::sc_signed::scan | ( | ::std::istream & | is = ::std::cin |
) |
void sc_dt::sc_signed::dump | ( | ::std::ostream & | os = ::std::cout |
) | const |
int sc_dt::sc_signed::length | ( | ) | const [inline] |
bool sc_dt::sc_signed::iszero | ( | ) | const |
sc_signed.cpp の 4016 行で定義されています。
04017 { 04018 if (sgn == SC_ZERO) 04019 return true; 04020 else if (sgn != SC_NOSIGN) 04021 return false; 04022 else 04023 return check_for_zero(ndigits, digit); 04024 }
bool sc_dt::sc_signed::sign | ( | ) | const |
bool sc_dt::sc_signed::and_reduce | ( | ) | const |
sc_signed.cpp の 402 行で定義されています。
00403 { 00404 sc_digit current; // Current digit examining. 00405 int i; // Index of digit examining. 00406 00407 if ( sgn == SC_NEG ) 00408 { 00409 current = (1 << BITS_PER_DIGIT); 00410 for ( i = 0; i < ndigits-1; i++ ) 00411 { 00412 current = (current >> BITS_PER_DIGIT) + (digit[i]^DIGIT_MASK); 00413 if ( (current & DIGIT_MASK) != DIGIT_MASK ) return false; 00414 } 00415 current = (current >> BITS_PER_DIGIT) + (digit[i]^DIGIT_MASK); 00416 if ( (current & ~(-1 << (nbits % BITS_PER_DIGIT))) == 00417 (sc_digit) ~(-1 << (nbits % BITS_PER_DIGIT)) ) 00418 return true; 00419 } 00420 return false; 00421 }
bool sc_dt::sc_signed::nand_reduce | ( | ) | const [inline] |
bool sc_dt::sc_signed::or_reduce | ( | ) | const |
bool sc_dt::sc_signed::nor_reduce | ( | ) | const [inline] |
bool sc_dt::sc_signed::xor_reduce | ( | ) | const |
sc_signed.cpp の 428 行で定義されています。
00429 { 00430 int i; // Digit examining. 00431 int odd; // Flag for odd number of digits. 00432 00433 odd = 0; 00434 for ( i = 0; i < nbits; i++ ) 00435 if ( test(i) ) odd = ~odd; 00436 return odd ? true : false; 00437 }
bool sc_dt::sc_signed::xnor_reduce | ( | ) | const [inline] |
bool sc_dt::sc_signed::test | ( | int | i | ) | const |
void sc_dt::sc_signed::set | ( | int | i | ) |
void sc_dt::sc_signed::clear | ( | int | i | ) |
void sc_dt::sc_signed::set | ( | int | i, | |
bool | v | |||
) | [inline] |
void sc_dt::sc_signed::invert | ( | int | i | ) | [inline] |
void sc_dt::sc_signed::reverse | ( | ) |
void sc_dt::sc_signed::get_packed_rep | ( | sc_digit * | buf | ) | const |
void sc_dt::sc_signed::set_packed_rep | ( | sc_digit * | buf | ) |
const sc_signed& sc_dt::sc_signed::operator+= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator+= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator+= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator+= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator+= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator+= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator+= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator-= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator-= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator-= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator-= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator-= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator-= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator-= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator*= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator*= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator*= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator*= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator*= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator*= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator*= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator/= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator/= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator/= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator/= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator/= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator/= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator/= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator%= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator%= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator%= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator%= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator%= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator%= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator%= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator &= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator &= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator &= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator &= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator &= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator &= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator &= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator|= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator|= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator|= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator|= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator|= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator|= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator|= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator^= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator^= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator^= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator^= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator^= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator^= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator^= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator<<= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator<<= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator<<= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator<<= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator<<= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator<<= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator<<= | ( | const sc_uint_base & | v | ) |
const sc_signed& sc_dt::sc_signed::operator>>= | ( | const sc_unsigned & | v | ) |
const sc_signed& sc_dt::sc_signed::operator>>= | ( | long | v | ) |
const sc_signed& sc_dt::sc_signed::operator>>= | ( | unsigned long | v | ) |
const sc_signed& sc_dt::sc_signed::operator>>= | ( | int | v | ) | [inline] |
const sc_signed& sc_dt::sc_signed::operator>>= | ( | unsigned int | v | ) | [inline] |
const sc_signed & sc_dt::sc_signed::operator>>= | ( | const sc_int_base & | v | ) |
const sc_signed & sc_dt::sc_signed::operator>>= | ( | const sc_uint_base & | v | ) |
small_type sc_dt::sc_signed::default_sign | ( | ) | const [inline, private] |
int sc_dt::sc_signed::num_bits | ( | int | nb | ) | const [inline, private] |
bool sc_dt::sc_signed::check_if_outside | ( | int | bit_num | ) | const [private] |
void sc_dt::sc_signed::copy_digits | ( | int | nb, | |
int | nd, | |||
const sc_digit * | d | |||
) | [inline, private] |
void sc_dt::sc_signed::makezero | ( | ) | [inline, private] |
void sc_dt::sc_signed::convert_2C_to_SM | ( | ) | [inline, private] |
void sc_dt::sc_signed::convert_SM_to_2C_to_SM | ( | ) | [inline, private] |
void sc_dt::sc_signed::convert_SM_to_2C | ( | ) | [inline, private] |
friend class sc_concatref [friend] |
friend class sc_signed_bitref_r [friend] |
sc_signed.h の 1077 行で定義されています。
friend class sc_signed_bitref [friend] |
sc_signed.h の 1078 行で定義されています。
friend class sc_signed_subref_r [friend] |
sc_signed.h の 1079 行で定義されています。
friend class sc_signed_subref [friend] |
sc_signed.h の 1080 行で定義されています。
friend class sc_unsigned [friend] |
sc_signed.h の 1081 行で定義されています。
friend class sc_unsigned_subref [friend] |
sc_signed.h の 1082 行で定義されています。
sc_signed operator+ | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 1107 行で定義されています。
01108 { 01109 01110 if (u.sgn == SC_ZERO) // case 1 01111 return sc_signed(v); 01112 01113 if (v.sgn == SC_ZERO) // case 2 01114 return sc_signed(u); 01115 01116 // cases 3 and 4 01117 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01118 v.sgn, v.nbits, v.ndigits, v.digit); 01119 01120 }
sc_signed operator+ | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1124 行で定義されています。
01125 { 01126 01127 if (u.sgn == SC_ZERO) // case 1 01128 return sc_signed(v); 01129 01130 if (v.sgn == SC_ZERO) // case 2 01131 return sc_signed(u); 01132 01133 // cases 3 and 4 01134 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01135 v.sgn, v.nbits, v.ndigits, v.digit); 01136 01137 }
sc_signed operator+ | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 1197 行で定義されています。
01198 { 01199 01200 if (v == 0) // case 2 01201 return sc_signed(u); 01202 01203 CONVERT_INT64(v); 01204 01205 if (u.sgn == SC_ZERO) // case 1 01206 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 01207 01208 // cases 3 and 4 01209 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01210 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01211 01212 }
sc_signed operator+ | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 1313 行で定義されています。
01314 { 01315 01316 if (v == 0) // case 2 01317 return sc_signed(u); 01318 01319 CONVERT_LONG(v); 01320 01321 if (u.sgn == SC_ZERO) // case 1 01322 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 01323 01324 // cases 3 and 4 01325 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01326 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01327 01328 }
sc_signed operator+ | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator+ | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1216 行で定義されています。
01217 { 01218 01219 if (u == 0) // case 1 01220 return sc_signed(v); 01221 01222 CONVERT_INT64(u); 01223 01224 if (v.sgn == SC_ZERO) // case 2 01225 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 01226 01227 // cases 3 and 4 01228 01229 return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01230 v.sgn, v.nbits, v.ndigits, v.digit); 01231 01232 }
sc_signed operator+ | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1332 行で定義されています。
01333 { 01334 01335 if (u == 0) // case 1 01336 return sc_signed(v); 01337 01338 CONVERT_LONG(u); 01339 01340 if (v.sgn == SC_ZERO) // case 2 01341 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 01342 01343 // cases 3 and 4 01344 return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01345 v.sgn, v.nbits, v.ndigits, v.digit); 01346 01347 }
sc_signed operator+ | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1141 行で定義されています。
01142 { 01143 01144 if (u.sgn == SC_ZERO) // case 1 01145 return sc_signed(v); 01146 01147 if (v.sgn == SC_ZERO) // case 2 01148 return sc_signed(u); 01149 01150 // cases 3 and 4 01151 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01152 v.sgn, v.nbits, v.ndigits, v.digit); 01153 01154 }
sc_signed.cpp の 1158 行で定義されています。
01159 { 01160 01161 if (v == 0) // case 2 01162 return sc_signed(u); 01163 01164 CONVERT_INT64(v); 01165 01166 if (u.sgn == SC_ZERO) // case 1 01167 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 01168 01169 // cases 3 and 4 01170 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01171 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01172 01173 }
sc_signed.cpp の 1236 行で定義されています。
01237 { 01238 01239 if (v == 0) // case 2 01240 return sc_signed(u); 01241 01242 CONVERT_INT64(v); 01243 01244 if (u.sgn == SC_ZERO) // case 1 01245 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 01246 01247 // cases 3 and 4 01248 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01249 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01250 01251 }
sc_signed.cpp の 1275 行で定義されています。
01276 { 01277 01278 if (v == 0) // case 2 01279 return sc_signed(u); 01280 01281 CONVERT_LONG(v); 01282 01283 if (u.sgn == SC_ZERO) // case 1 01284 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 01285 01286 // cases 3 and 4 01287 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01288 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01289 01290 }
sc_signed.cpp の 1351 行で定義されています。
01352 { 01353 01354 if (v == 0) // case 2 01355 return sc_signed(u); 01356 01357 CONVERT_LONG(v); 01358 01359 if (u.sgn == SC_ZERO) // case 1 01360 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 01361 01362 // cases 3 and 4 01363 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01364 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01365 01366 }
sc_signed.cpp の 1177 行で定義されています。
01178 { 01179 01180 if (u == 0) // case 1 01181 return sc_signed(v); 01182 01183 CONVERT_INT64(u); 01184 01185 if (v.sgn == SC_ZERO) // case 2 01186 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 01187 01188 // cases 3 and 4 01189 01190 return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01191 v.sgn, v.nbits, v.ndigits, v.digit); 01192 01193 }
sc_signed.cpp の 1255 行で定義されています。
01256 { 01257 01258 if (u == 0) // case 1 01259 return sc_signed(v); 01260 01261 CONVERT_INT64(u); 01262 01263 if (v.sgn == SC_ZERO) // case 2 01264 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 01265 01266 // cases 3 and 4 01267 01268 return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01269 v.sgn, v.nbits, v.ndigits, v.digit); 01270 01271 }
sc_signed.cpp の 1294 行で定義されています。
01295 { 01296 01297 if (u == 0) // case 1 01298 return sc_signed(v); 01299 01300 CONVERT_LONG(u); 01301 01302 if (v.sgn == SC_ZERO) // case 2 01303 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 01304 01305 // cases 3 and 4 01306 return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01307 v.sgn, v.nbits, v.ndigits, v.digit); 01308 01309 }
sc_signed.cpp の 1370 行で定義されています。
01371 { 01372 01373 if (u == 0) // case 1 01374 return sc_signed(v); 01375 01376 CONVERT_LONG(u); 01377 01378 if (v.sgn == SC_ZERO) // case 2 01379 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 01380 01381 // cases 3 and 4 01382 return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01383 v.sgn, v.nbits, v.ndigits, v.digit); 01384 01385 }
sc_signed operator+ | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator+ | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator+ | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator+ | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator+ | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator+ | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 1427 行で定義されています。
01428 { 01429 01430 if (v.sgn == SC_ZERO) // case 1 01431 return sc_signed(u); 01432 01433 if (u.sgn == SC_ZERO) // case 2 01434 return sc_signed(v, -v.sgn); 01435 01436 // cases 3 and 4 01437 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01438 -v.sgn, v.nbits, v.ndigits, v.digit); 01439 01440 }
sc_signed operator- | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1444 行で定義されています。
01445 { 01446 01447 if (v.sgn == SC_ZERO) // case 1 01448 return sc_signed(u); 01449 01450 if (u.sgn == SC_ZERO) // case 2 01451 return sc_signed(v, -v.sgn); 01452 01453 // cases 3 and 4 01454 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01455 -v.sgn, v.nbits, v.ndigits, v.digit); 01456 01457 }
sc_signed operator- | ( | const sc_unsigned & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1410 行で定義されています。
01411 { 01412 01413 if (v.sgn == SC_ZERO) // case 1 01414 return sc_signed(u); 01415 01416 if (u.sgn == SC_ZERO) // case 2 01417 return sc_signed(v, -v.sgn); 01418 01419 // cases 3 and 4 01420 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01421 -v.sgn, v.nbits, v.ndigits, v.digit); 01422 01423 }
sc_signed operator- | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 1517 行で定義されています。
01518 { 01519 01520 if (v == 0) // case 1 01521 return sc_signed(u); 01522 01523 CONVERT_INT64(v); 01524 01525 if (u.sgn == SC_ZERO) // case 2 01526 return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 01527 01528 // cases 3 and 4 01529 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01530 -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01531 01532 }
sc_signed operator- | ( | const sc_unsigned & | u, | |
uint64 | v | |||
) | [friend] |
sc_signed.cpp の 1595 行で定義されています。
01596 { 01597 01598 if (v == 0) // case 1 01599 return sc_signed(u); 01600 01601 CONVERT_INT64(v); 01602 01603 if (u.sgn == SC_ZERO) // case 2 01604 return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 01605 01606 // cases 3 and 4 01607 01608 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01609 -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01610 01611 }
sc_signed operator- | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 1672 行で定義されています。
01673 { 01674 01675 if (v == 0) // case 1 01676 return sc_signed(u); 01677 01678 CONVERT_LONG(v); 01679 01680 if (u.sgn == SC_ZERO) // case 2 01681 return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 01682 01683 // cases 3 and 4 01684 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01685 -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01686 01687 }
sc_signed operator- | ( | const sc_unsigned & | u, | |
unsigned long | v | |||
) | [friend] |
sc_signed.cpp の 1747 行で定義されています。
01748 { 01749 01750 if (v == 0) // case 1 01751 return sc_signed(u); 01752 01753 CONVERT_LONG(v); 01754 01755 if (u.sgn == SC_ZERO) // case 2 01756 return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 01757 01758 // cases 3 and 4 01759 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01760 -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01761 01762 }
sc_signed operator- | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_unsigned & | u, | |
unsigned int | v | |||
) | [friend] |
sc_signed operator- | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1536 行で定義されています。
01537 { 01538 01539 if (u == 0) // case 1 01540 return sc_signed(v, -v.sgn); 01541 01542 CONVERT_INT64(u); 01543 01544 if (v.sgn == SC_ZERO) // case 2 01545 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 01546 01547 // cases 3 and 4 01548 01549 return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01550 -v.sgn, v.nbits, v.ndigits, v.digit); 01551 01552 }
sc_signed operator- | ( | uint64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1615 行で定義されています。
01616 { 01617 01618 if (u == 0) // case 1 01619 return sc_signed(v, -v.sgn); 01620 01621 CONVERT_INT64(u); 01622 01623 if (v.sgn == SC_ZERO) // case 2 01624 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 01625 01626 // cases 3 and 4 01627 return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01628 -v.sgn, v.nbits, v.ndigits, v.digit); 01629 01630 }
sc_signed operator- | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1691 行で定義されています。
01692 { 01693 01694 if (u == 0) // case 1 01695 return sc_signed(v, -v.sgn); 01696 01697 CONVERT_LONG(u); 01698 01699 if (v.sgn == SC_ZERO) // case 2 01700 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 01701 01702 // cases 3 and 4 01703 return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01704 -v.sgn, v.nbits, v.ndigits, v.digit); 01705 01706 }
sc_signed operator- | ( | unsigned long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1766 行で定義されています。
01767 { 01768 if (u == 0) // case 1 01769 return sc_signed(v, -v.sgn); 01770 01771 CONVERT_LONG(u); 01772 01773 if (v.sgn == SC_ZERO) // case 2 01774 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 01775 01776 // cases 3 and 4 01777 return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01778 -v.sgn, v.nbits, v.ndigits, v.digit); 01779 01780 }
sc_signed operator- | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator- | ( | unsigned int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1461 行で定義されています。
01462 { 01463 01464 if (v.sgn == SC_ZERO) // case 1 01465 return sc_signed(u); 01466 01467 if (u.sgn == SC_ZERO) // case 2 01468 return sc_signed(v, -v.sgn); 01469 01470 // cases 3 and 4 01471 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01472 -v.sgn, v.nbits, v.ndigits, v.digit); 01473 01474 }
sc_signed.cpp の 1478 行で定義されています。
01479 { 01480 01481 if (v == 0) // case 1 01482 return sc_signed(u); 01483 01484 CONVERT_INT64(v); 01485 01486 if (u.sgn == SC_ZERO) // case 2 01487 return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 01488 01489 // cases 3 and 4 01490 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01491 -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01492 01493 }
sc_signed.cpp の 1556 行で定義されています。
01557 { 01558 01559 if (v == 0) // case 1 01560 return sc_signed(u); 01561 01562 CONVERT_INT64(v); 01563 01564 if (u.sgn == SC_ZERO) // case 2 01565 return sc_signed(-vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 01566 01567 // cases 3 and 4 01568 01569 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01570 -vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01571 01572 }
sc_signed.cpp の 1634 行で定義されています。
01635 { 01636 01637 if (v == 0) // case 1 01638 return sc_signed(u); 01639 01640 CONVERT_LONG(v); 01641 01642 if (u.sgn == SC_ZERO) // case 2 01643 return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 01644 01645 // cases 3 and 4 01646 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01647 -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01648 01649 }
sc_signed.cpp の 1710 行で定義されています。
01711 { 01712 01713 if (v == 0) // case 1 01714 return sc_signed(u); 01715 01716 CONVERT_LONG(v); 01717 01718 if (u.sgn == SC_ZERO) // case 2 01719 return sc_signed(-vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 01720 01721 // cases 3 and 4 01722 return add_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 01723 -vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01724 01725 }
sc_signed.cpp の 1497 行で定義されています。
01498 { 01499 01500 if (u == 0) // case 1 01501 return sc_signed(v, -v.sgn); 01502 01503 CONVERT_INT64(u); 01504 01505 if (v.sgn == SC_ZERO) // case 2 01506 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 01507 01508 // cases 3 and 4 01509 01510 return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01511 -v.sgn, v.nbits, v.ndigits, v.digit); 01512 01513 }
sc_signed.cpp の 1576 行で定義されています。
01577 { 01578 01579 if (u == 0) // case 1 01580 return sc_signed(v, -v.sgn); 01581 01582 CONVERT_INT64(u); 01583 01584 if (v.sgn == SC_ZERO) // case 2 01585 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 01586 01587 // cases 3 and 4 01588 return add_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01589 -v.sgn, v.nbits, v.ndigits, v.digit); 01590 01591 }
sc_signed.cpp の 1653 行で定義されています。
01654 { 01655 01656 if (u == 0) // case 1 01657 return sc_signed(v, -v.sgn); 01658 01659 CONVERT_LONG(u); 01660 01661 if (v.sgn == SC_ZERO) // case 2 01662 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 01663 01664 // cases 3 and 4 01665 return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01666 -v.sgn, v.nbits, v.ndigits, v.digit); 01667 01668 }
sc_signed.cpp の 1729 行で定義されています。
01730 { 01731 if (u == 0) // case 1 01732 return sc_signed(v, -v.sgn); 01733 01734 CONVERT_LONG(u); 01735 01736 if (v.sgn == SC_ZERO) // case 2 01737 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 01738 01739 // cases 3 and 4 01740 return add_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01741 -v.sgn, v.nbits, v.ndigits, v.digit); 01742 01743 }
sc_signed operator- | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_unsigned & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_uint_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator* | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 1797 行で定義されています。
01798 { 01799 01800 small_type s = mul_signs(u.sgn, v.sgn); 01801 01802 if (s == SC_ZERO) // case 1 01803 return sc_signed(); 01804 01805 // cases 2-4 01806 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 01807 v.nbits, v.ndigits, v.digit); 01808 01809 }
sc_signed operator* | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1813 行で定義されています。
01814 { 01815 01816 small_type s = mul_signs(u.sgn, v.sgn); 01817 01818 if (s == SC_ZERO) // case 1 01819 return sc_signed(); 01820 01821 // cases 2-4 01822 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 01823 v.nbits, v.ndigits, v.digit); 01824 01825 }
sc_signed operator* | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 1881 行で定義されています。
01882 { 01883 01884 small_type s = mul_signs(u.sgn, get_sign(v)); 01885 01886 if (s == SC_ZERO) // case 1 01887 return sc_signed(); 01888 01889 CONVERT_INT64_2(v); 01890 01891 // cases 2-4 01892 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 01893 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01894 01895 }
sc_signed operator* | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 1989 行で定義されています。
01990 { 01991 01992 small_type s = mul_signs(u.sgn, get_sign(v)); 01993 01994 if (s == SC_ZERO) // case 1 01995 return sc_signed(); 01996 01997 CONVERT_LONG_2(v); 01998 01999 // cases 2-4 02000 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 02001 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02002 02003 }
sc_signed operator* | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator* | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1899 行で定義されています。
01900 { 01901 01902 small_type s = mul_signs(v.sgn, get_sign(u)); 01903 01904 if (s == SC_ZERO) // case 1 01905 return sc_signed(); 01906 01907 CONVERT_INT64_2(u); 01908 01909 // cases 2-4 01910 return mul_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01911 v.nbits, v.ndigits, v.digit); 01912 01913 }
sc_signed operator* | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2007 行で定義されています。
02008 { 02009 02010 small_type s = mul_signs(v.sgn, get_sign(u)); 02011 02012 if (s == SC_ZERO) // case 1 02013 return sc_signed(); 02014 02015 CONVERT_LONG_2(u); 02016 02017 // cases 2-4 02018 return mul_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02019 v.nbits, v.ndigits, v.digit); 02020 02021 }
sc_signed operator* | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 1829 行で定義されています。
01830 { 01831 01832 small_type s = mul_signs(u.sgn, v.sgn); 01833 01834 if (s == SC_ZERO) // case 1 01835 return sc_signed(); 01836 01837 // cases 2-4 01838 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 01839 v.nbits, v.ndigits, v.digit); 01840 01841 }
sc_signed.cpp の 1845 行で定義されています。
01846 { 01847 01848 small_type s = mul_signs(u.sgn, get_sign(v)); 01849 01850 if (s == SC_ZERO) // case 1 01851 return sc_signed(); 01852 01853 CONVERT_INT64_2(v); 01854 01855 // cases 2-4 01856 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 01857 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01858 01859 }
sc_signed.cpp の 1917 行で定義されています。
01918 { 01919 01920 small_type s = mul_signs(u.sgn, get_sign(v)); 01921 01922 if (s == SC_ZERO) // case 1 01923 return sc_signed(); 01924 01925 CONVERT_INT64_2(v); 01926 01927 // cases 2-4 01928 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 01929 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 01930 01931 }
sc_signed.cpp の 1953 行で定義されています。
01954 { 01955 01956 small_type s = mul_signs(u.sgn, get_sign(v)); 01957 01958 if (s == SC_ZERO) // case 1 01959 return sc_signed(); 01960 01961 CONVERT_LONG_2(v); 01962 01963 // cases 2-4 01964 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 01965 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 01966 01967 }
sc_signed.cpp の 2025 行で定義されています。
02026 { 02027 02028 small_type s = mul_signs(u.sgn, get_sign(v)); 02029 02030 if (s == SC_ZERO) // case 1 02031 return sc_signed(); 02032 02033 CONVERT_LONG_2(v); 02034 02035 // else cases 2-4 02036 return mul_signed_friend(s, u.nbits, u.ndigits, u.digit, 02037 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02038 02039 }
sc_signed.cpp の 1863 行で定義されています。
01864 { 01865 01866 small_type s = mul_signs(v.sgn, get_sign(u)); 01867 01868 if (s == SC_ZERO) // case 1 01869 return sc_signed(); 01870 01871 CONVERT_INT64_2(u); 01872 01873 // cases 2-4 01874 return mul_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01875 v.nbits, v.ndigits, v.digit); 01876 01877 }
sc_signed.cpp の 1935 行で定義されています。
01936 { 01937 01938 small_type s = mul_signs(v.sgn, get_sign(u)); 01939 01940 if (s == SC_ZERO) // case 1 01941 return sc_signed(); 01942 01943 CONVERT_INT64_2(u); 01944 01945 // cases 2-4 01946 return mul_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 01947 v.nbits, v.ndigits, v.digit); 01948 01949 }
sc_signed.cpp の 1971 行で定義されています。
01972 { 01973 01974 small_type s = mul_signs(v.sgn, get_sign(u)); 01975 01976 if (s == SC_ZERO) // case 1 01977 return sc_signed(); 01978 01979 CONVERT_LONG_2(u); 01980 01981 // cases 2-4 01982 return mul_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 01983 v.nbits, v.ndigits, v.digit); 01984 01985 }
sc_signed.cpp の 2042 行で定義されています。
02043 { 02044 02045 small_type s = mul_signs(v.sgn, get_sign(u)); 02046 02047 if (s == SC_ZERO) // case 1 02048 return sc_signed(); 02049 02050 CONVERT_LONG_2(u); 02051 02052 // cases 2-4 02053 return mul_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02054 v.nbits, v.ndigits, v.digit); 02055 02056 }
sc_signed operator* | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator* | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator* | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator* | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator* | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator* | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator/ | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 2075 行で定義されています。
02076 { 02077 02078 small_type s = mul_signs(u.sgn, v.sgn); 02079 02080 if (s == SC_ZERO) { 02081 div_by_zero(v.sgn); // case 1 02082 return sc_signed(); // case 2 02083 } 02084 02085 // other cases 02086 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02087 v.nbits, v.ndigits, v.digit); 02088 02089 }
sc_signed operator/ | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2093 行で定義されています。
02094 { 02095 02096 small_type s = mul_signs(u.sgn, v.sgn); 02097 02098 if (s == SC_ZERO) { 02099 div_by_zero(v.sgn); // case 1 02100 return sc_signed(); // case 2 02101 } 02102 02103 // other cases 02104 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02105 v.nbits, v.ndigits, v.digit); 02106 02107 }
sc_signed operator/ | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 2169 行で定義されています。
02170 { 02171 02172 small_type s = mul_signs(u.sgn, get_sign(v)); 02173 02174 if (s == SC_ZERO) { 02175 div_by_zero(v); // case 1 02176 return sc_signed(); // case 2 02177 } 02178 02179 CONVERT_INT64_2(v); 02180 02181 // other cases 02182 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02183 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02184 02185 }
sc_signed operator/ | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 2290 行で定義されています。
02291 { 02292 02293 small_type s = mul_signs(u.sgn, get_sign(v)); 02294 02295 if (s == SC_ZERO) { 02296 div_by_zero(v); // case 1 02297 return sc_signed(); // case 2 02298 } 02299 02300 CONVERT_LONG_2(v); 02301 02302 // other cases 02303 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02304 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02305 02306 }
sc_signed operator/ | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator/ | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2189 行で定義されています。
02190 { 02191 02192 small_type s = mul_signs(v.sgn, get_sign(u)); 02193 02194 if (s == SC_ZERO) { 02195 div_by_zero(v.sgn); // case 1 02196 return sc_signed(); // case 2 02197 } 02198 02199 CONVERT_INT64_2(u); 02200 02201 // other cases 02202 return div_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02203 v.nbits, v.ndigits, v.digit); 02204 02205 }
sc_signed operator/ | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2310 行で定義されています。
02311 { 02312 02313 small_type s = mul_signs(v.sgn, get_sign(u)); 02314 02315 if (s == SC_ZERO) { 02316 div_by_zero(v.sgn); // case 1 02317 return sc_signed(); // case 2 02318 } 02319 02320 CONVERT_LONG_2(u); 02321 02322 // other cases 02323 return div_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02324 v.nbits, v.ndigits, v.digit); 02325 02326 }
sc_signed operator/ | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2111 行で定義されています。
02112 { 02113 02114 small_type s = mul_signs(u.sgn, v.sgn); 02115 02116 if (s == SC_ZERO) { 02117 div_by_zero(v.sgn); // case 1 02118 return sc_signed(); // case 2 02119 } 02120 02121 // other cases 02122 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02123 v.nbits, v.ndigits, v.digit); 02124 02125 }
sc_signed.cpp の 2129 行で定義されています。
02130 { 02131 02132 small_type s = mul_signs(u.sgn, get_sign(v)); 02133 02134 if (s == SC_ZERO) { 02135 div_by_zero(v); // case 1 02136 return sc_signed(); // case 2 02137 } 02138 02139 CONVERT_INT64_2(v); 02140 02141 // other cases 02142 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02143 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02144 02145 }
sc_signed.cpp の 2209 行で定義されています。
02210 { 02211 02212 small_type s = mul_signs(u.sgn, get_sign(v)); 02213 02214 if (s == SC_ZERO) { 02215 div_by_zero(v); // case 1 02216 return sc_signed(); // case 2 02217 } 02218 02219 CONVERT_INT64_2(v); 02220 02221 // other cases 02222 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02223 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02224 02225 }
sc_signed.cpp の 2250 行で定義されています。
02251 { 02252 02253 small_type s = mul_signs(u.sgn, get_sign(v)); 02254 02255 if (s == SC_ZERO) { 02256 div_by_zero(v); // case 1 02257 return sc_signed(); // case 2 02258 } 02259 02260 CONVERT_LONG_2(v); 02261 02262 // other cases 02263 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02264 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02265 02266 }
sc_signed.cpp の 2330 行で定義されています。
02331 { 02332 02333 small_type s = mul_signs(u.sgn, get_sign(v)); 02334 02335 if (s == SC_ZERO) { 02336 div_by_zero(v); // case 1 02337 return sc_signed(); // case 2 02338 } 02339 02340 CONVERT_LONG_2(v); 02341 02342 // other cases 02343 return div_signed_friend(s, u.nbits, u.ndigits, u.digit, 02344 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02345 02346 }
sc_signed.cpp の 2149 行で定義されています。
02150 { 02151 02152 small_type s = mul_signs(v.sgn, get_sign(u)); 02153 02154 if (s == SC_ZERO) { 02155 div_by_zero(v.sgn); // case 1 02156 return sc_signed(); // case 2 02157 } 02158 02159 CONVERT_INT64_2(u); 02160 02161 // other cases 02162 return div_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02163 v.nbits, v.ndigits, v.digit); 02164 02165 }
sc_signed.cpp の 2229 行で定義されています。
02230 { 02231 02232 small_type s = mul_signs(v.sgn, get_sign(u)); 02233 02234 if (s == SC_ZERO) { 02235 div_by_zero(v.sgn); // case 1 02236 return sc_signed(); // case 2 02237 02238 } 02239 02240 CONVERT_INT64_2(u); 02241 02242 // other cases 02243 return div_signed_friend(s, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02244 v.nbits, v.ndigits, v.digit); 02245 02246 }
sc_signed.cpp の 2270 行で定義されています。
02271 { 02272 02273 small_type s = mul_signs(v.sgn, get_sign(u)); 02274 02275 if (s == SC_ZERO) { 02276 div_by_zero(v.sgn); // case 1 02277 return sc_signed(); // case 2 02278 } 02279 02280 CONVERT_LONG_2(u); 02281 02282 // other cases 02283 return div_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02284 v.nbits, v.ndigits, v.digit); 02285 02286 }
sc_signed.cpp の 2350 行で定義されています。
02351 { 02352 02353 small_type s = mul_signs(v.sgn, get_sign(u)); 02354 02355 if (s == SC_ZERO) { 02356 div_by_zero(v.sgn); // case 1 02357 return sc_signed(); // case 2 02358 02359 } 02360 02361 CONVERT_LONG_2(u); 02362 02363 // other cases 02364 return div_signed_friend(s, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02365 v.nbits, v.ndigits, v.digit); 02366 02367 }
sc_signed operator/ | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator/ | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator/ | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator/ | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator/ | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator/ | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator% | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 2386 行で定義されています。
02387 { 02388 02389 if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) { 02390 div_by_zero(v.sgn); // case 1 02391 return sc_signed(); // case 2 02392 } 02393 02394 // other cases 02395 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02396 v.nbits, v.ndigits, v.digit); 02397 }
sc_signed operator% | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2401 行で定義されています。
02402 { 02403 02404 if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) { 02405 div_by_zero(v.sgn); // case 1 02406 return sc_signed(); // case 2 02407 } 02408 02409 // other cases 02410 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02411 v.nbits, v.ndigits, v.digit); 02412 }
sc_signed operator% | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 2471 行で定義されています。
02472 { 02473 02474 small_type vs = get_sign(v); 02475 02476 if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) { 02477 div_by_zero(v); // case 1 02478 return sc_signed(); // case 2 02479 } 02480 02481 CONVERT_INT64_2(v); 02482 02483 // other cases 02484 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02485 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02486 02487 }
sc_signed operator% | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 2586 行で定義されています。
02587 { 02588 02589 small_type vs = get_sign(v); 02590 02591 if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) { 02592 div_by_zero(v); // case 1 02593 return sc_signed(); // case 2 02594 } 02595 02596 CONVERT_LONG_2(v); 02597 02598 // other cases 02599 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02600 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02601 }
sc_signed operator% | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator% | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2491 行で定義されています。
02492 { 02493 02494 small_type us = get_sign(u); 02495 02496 if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) { 02497 div_by_zero(v.sgn); // case 1 02498 return sc_signed(); // case 2 02499 } 02500 02501 CONVERT_INT64_2(u); 02502 02503 // other cases 02504 return mod_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02505 v.nbits, v.ndigits, v.digit); 02506 02507 }
sc_signed operator% | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2605 行で定義されています。
02606 { 02607 02608 small_type us = get_sign(u); 02609 02610 if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) { 02611 div_by_zero(v.sgn); // case 1 02612 return sc_signed(); // case 2 02613 } 02614 02615 CONVERT_LONG_2(u); 02616 02617 // other cases 02618 return mod_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02619 v.nbits, v.ndigits, v.digit); 02620 02621 }
sc_signed operator% | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2416 行で定義されています。
02417 { 02418 02419 if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) { 02420 div_by_zero(v.sgn); // case 1 02421 return sc_signed(); // case 2 02422 } 02423 02424 // other cases 02425 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02426 v.nbits, v.ndigits, v.digit); 02427 }
sc_signed.cpp の 2431 行で定義されています。
02432 { 02433 02434 small_type vs = get_sign(v); 02435 02436 if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) { 02437 div_by_zero(v); // case 1 02438 return sc_signed(); // case 2 02439 } 02440 02441 CONVERT_INT64_2(v); 02442 02443 // other cases 02444 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02445 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02446 02447 }
sc_signed.cpp の 2511 行で定義されています。
02512 { 02513 02514 if ((u.sgn == SC_ZERO) || (v == 0)) { 02515 div_by_zero(v); // case 1 02516 return sc_signed(); // case 2 02517 } 02518 02519 CONVERT_INT64_2(v); 02520 02521 // other cases 02522 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02523 BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02524 02525 }
sc_signed.cpp の 2547 行で定義されています。
02548 { 02549 02550 small_type vs = get_sign(v); 02551 02552 if ((u.sgn == SC_ZERO) || (vs == SC_ZERO)) { 02553 div_by_zero(v); // case 1 02554 return sc_signed(); // case 2 02555 } 02556 02557 CONVERT_LONG_2(v); 02558 02559 // other cases 02560 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02561 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02562 }
sc_signed.cpp の 2625 行で定義されています。
02626 { 02627 02628 if ((u.sgn == SC_ZERO) || (v == 0)) { 02629 div_by_zero(v); // case 1 02630 return sc_signed(); // case 2 02631 } 02632 02633 CONVERT_LONG_2(v); 02634 02635 // other cases 02636 return mod_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02637 BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02638 02639 }
sc_signed.cpp の 2451 行で定義されています。
02452 { 02453 02454 small_type us = get_sign(u); 02455 02456 if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) { 02457 div_by_zero(v.sgn); // case 1 02458 return sc_signed(); // case 2 02459 } 02460 02461 CONVERT_INT64_2(u); 02462 02463 // other cases 02464 return mod_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02465 v.nbits, v.ndigits, v.digit); 02466 02467 }
sc_signed.cpp の 2529 行で定義されています。
02530 { 02531 02532 if ((u == 0) || (v.sgn == SC_ZERO)) { 02533 div_by_zero(v.sgn); // case 1 02534 return sc_signed(); // case 2 02535 } 02536 02537 CONVERT_INT64(u); 02538 02539 // other cases 02540 return mod_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02541 v.nbits, v.ndigits, v.digit); 02542 02543 }
sc_signed.cpp の 2566 行で定義されています。
02567 { 02568 02569 small_type us = get_sign(u); 02570 02571 if ((us == SC_ZERO) || (v.sgn == SC_ZERO)) { 02572 div_by_zero(v.sgn); // case 1 02573 return sc_signed(); // case 2 02574 } 02575 02576 CONVERT_LONG_2(u); 02577 02578 // other cases 02579 return mod_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02580 v.nbits, v.ndigits, v.digit); 02581 02582 }
sc_signed.cpp の 2643 行で定義されています。
02644 { 02645 02646 if ((u == 0) || (v.sgn == SC_ZERO)) { 02647 div_by_zero(v.sgn); // case 1 02648 return sc_signed(); // case 2 02649 } 02650 02651 CONVERT_LONG(u); 02652 02653 // other cases 02654 return mod_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02655 v.nbits, v.ndigits, v.digit); 02656 02657 }
sc_signed operator% | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator% | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator% | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator% | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator% | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator% | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator & | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 2675 行で定義されています。
02676 { 02677 02678 if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) // case 1 02679 return sc_signed(); 02680 02681 // other cases 02682 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02683 v.sgn, v.nbits, v.ndigits, v.digit); 02684 02685 }
sc_signed operator & | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2689 行で定義されています。
02690 { 02691 02692 if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) // case 1 02693 return sc_signed(); 02694 02695 // other cases 02696 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02697 v.sgn, v.nbits, v.ndigits, v.digit); 02698 02699 }
sc_signed operator & | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 2749 行で定義されています。
02750 { 02751 02752 if ((u.sgn == SC_ZERO) || (v == 0)) // case 1 02753 return sc_signed(); 02754 02755 CONVERT_INT64(v); 02756 02757 // other cases 02758 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02759 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02760 02761 }
sc_signed operator & | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 2845 行で定義されています。
02846 { 02847 02848 if ((u.sgn == SC_ZERO) || (v == 0)) // case 1 02849 return sc_signed(); 02850 02851 CONVERT_LONG(v); 02852 02853 // other cases 02854 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02855 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02856 02857 }
sc_signed operator & | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator & | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2765 行で定義されています。
02766 { 02767 02768 if ((u == 0) || (v.sgn == SC_ZERO)) // case 1 02769 return sc_signed(); 02770 02771 CONVERT_INT64(u); 02772 02773 // other cases 02774 return and_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02775 v.sgn, v.nbits, v.ndigits, v.digit); 02776 02777 }
sc_signed operator & | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2861 行で定義されています。
02862 { 02863 02864 if ((u == 0) || (v.sgn == SC_ZERO)) // case 1 02865 return sc_signed(); 02866 02867 CONVERT_LONG(u); 02868 02869 // other cases 02870 return and_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02871 v.sgn, v.nbits, v.ndigits, v.digit); 02872 02873 }
sc_signed operator & | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2703 行で定義されています。
02704 { 02705 02706 if ((u.sgn == SC_ZERO) || (v.sgn == SC_ZERO)) // case 1 02707 return sc_signed(); 02708 02709 // other cases 02710 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02711 v.sgn, v.nbits, v.ndigits, v.digit); 02712 02713 }
sc_signed.cpp の 2717 行で定義されています。
02718 { 02719 02720 if ((u.sgn == SC_ZERO) || (v == 0)) // case 1 02721 return sc_signed(); 02722 02723 CONVERT_INT64(v); 02724 02725 // other cases 02726 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02727 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02728 02729 }
sc_signed.cpp の 2781 行で定義されています。
02782 { 02783 02784 if ((u.sgn == SC_ZERO) || (v == 0)) // case 1 02785 return sc_signed(); 02786 02787 CONVERT_INT64(v); 02788 02789 // other cases 02790 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02791 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02792 02793 }
sc_signed.cpp の 2813 行で定義されています。
02814 { 02815 02816 if ((u.sgn == SC_ZERO) || (v == 0)) // case 1 02817 return sc_signed(); 02818 02819 CONVERT_LONG(v); 02820 02821 // other cases 02822 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02823 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02824 02825 }
sc_signed.cpp の 2877 行で定義されています。
02878 { 02879 02880 if ((u.sgn == SC_ZERO) || (v == 0)) // case 1 02881 return sc_signed(); 02882 02883 CONVERT_LONG(v); 02884 02885 // other cases 02886 return and_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02887 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 02888 02889 }
sc_signed.cpp の 2733 行で定義されています。
02734 { 02735 02736 if ((u == 0) || (v.sgn == SC_ZERO)) // case 1 02737 return sc_signed(); 02738 02739 CONVERT_INT64(u); 02740 02741 // other cases 02742 return and_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02743 v.sgn, v.nbits, v.ndigits, v.digit); 02744 02745 }
sc_signed.cpp の 2797 行で定義されています。
02798 { 02799 02800 if ((u == 0) || (v.sgn == SC_ZERO)) // case 1 02801 return sc_signed(); 02802 02803 CONVERT_INT64(u); 02804 02805 // other cases 02806 return and_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 02807 v.sgn, v.nbits, v.ndigits, v.digit); 02808 02809 }
sc_signed.cpp の 2829 行で定義されています。
02830 { 02831 02832 if ((u == 0) || (v.sgn == SC_ZERO)) // case 1 02833 return sc_signed(); 02834 02835 CONVERT_LONG(u); 02836 02837 // other cases 02838 return and_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02839 v.sgn, v.nbits, v.ndigits, v.digit); 02840 02841 }
sc_signed.cpp の 2893 行で定義されています。
02894 { 02895 02896 if ((u == 0) || (v.sgn == SC_ZERO)) // case 1 02897 return sc_signed(); 02898 02899 CONVERT_LONG(u); 02900 02901 // other cases 02902 return and_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 02903 v.sgn, v.nbits, v.ndigits, v.digit); 02904 02905 }
sc_signed operator & | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator & | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator & | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator & | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator & | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator & | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator| | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 2924 行で定義されています。
02925 { 02926 02927 if (v.sgn == SC_ZERO) // case 1 02928 return sc_signed(u); 02929 02930 if (u.sgn == SC_ZERO) // case 2 02931 return sc_signed(v); 02932 02933 // other cases 02934 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02935 v.sgn, v.nbits, v.ndigits, v.digit); 02936 02937 }
sc_signed operator| | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2941 行で定義されています。
02942 { 02943 02944 if (v.sgn == SC_ZERO) // case 1 02945 return sc_signed(u); 02946 02947 if (u.sgn == SC_ZERO) // case 2 02948 return sc_signed(v); 02949 02950 // other cases 02951 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02952 v.sgn, v.nbits, v.ndigits, v.digit); 02953 02954 }
sc_signed operator| | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 3013 行で定義されています。
03014 { 03015 03016 if (v == 0) // case 1 03017 return sc_signed(u); 03018 03019 CONVERT_INT64(v); 03020 03021 if (u.sgn == SC_ZERO) // case 2 03022 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 03023 03024 // other cases 03025 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03026 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 03027 03028 }
sc_signed operator| | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 3127 行で定義されています。
03128 { 03129 03130 if (v == 0) // case 1 03131 return sc_signed(u); 03132 03133 CONVERT_LONG(v); 03134 03135 if (u.sgn == SC_ZERO) // case 2 03136 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 03137 03138 // other cases 03139 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03140 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 03141 03142 }
sc_signed operator| | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator| | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3032 行で定義されています。
03033 { 03034 03035 if (u == 0) 03036 return sc_signed(v); 03037 03038 CONVERT_INT64(u); 03039 03040 if (v.sgn == SC_ZERO) 03041 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 03042 03043 // other cases 03044 return or_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 03045 v.sgn, v.nbits, v.ndigits, v.digit); 03046 03047 }
sc_signed operator| | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3146 行で定義されています。
03147 { 03148 03149 if (u == 0) 03150 return sc_signed(v); 03151 03152 CONVERT_LONG(u); 03153 03154 if (v.sgn == SC_ZERO) 03155 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 03156 03157 // other cases 03158 return or_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 03159 v.sgn, v.nbits, v.ndigits, v.digit); 03160 03161 }
sc_signed operator| | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 2958 行で定義されています。
02959 { 02960 02961 if (v.sgn == SC_ZERO) // case 1 02962 return sc_signed(u); 02963 02964 if (u.sgn == SC_ZERO) // case 2 02965 return sc_signed(v); 02966 02967 // other cases 02968 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02969 v.sgn, v.nbits, v.ndigits, v.digit); 02970 02971 }
sc_signed.cpp の 2975 行で定義されています。
02976 { 02977 02978 if (v == 0) // case 1 02979 return sc_signed(u); 02980 02981 CONVERT_INT64(v); 02982 02983 if (u.sgn == SC_ZERO) // case 2 02984 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 02985 02986 // other cases 02987 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 02988 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 02989 02990 }
sc_signed.cpp の 3051 行で定義されています。
03052 { 03053 03054 if (v == 0) // case 1 03055 return sc_signed(u); 03056 03057 CONVERT_INT64(v); 03058 03059 if (u.sgn == SC_ZERO) // case 2 03060 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 03061 03062 // other cases 03063 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03064 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 03065 03066 }
sc_signed.cpp の 3089 行で定義されています。
03090 { 03091 03092 if (v == 0) // case 1 03093 return sc_signed(u); 03094 03095 CONVERT_LONG(v); 03096 03097 if (u.sgn == SC_ZERO) // case 2 03098 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 03099 03100 // other cases 03101 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03102 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 03103 03104 }
sc_signed.cpp の 3165 行で定義されています。
03166 { 03167 03168 if (v == 0) // case 1 03169 return sc_signed(u); 03170 03171 CONVERT_LONG(v); 03172 03173 if (u.sgn == SC_ZERO) // case 2 03174 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 03175 03176 // other cases 03177 return or_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03178 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 03179 03180 }
sc_signed.cpp の 2994 行で定義されています。
02995 { 02996 02997 if (u == 0) 02998 return sc_signed(v); 02999 03000 CONVERT_INT64(u); 03001 03002 if (v.sgn == SC_ZERO) 03003 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 03004 03005 // other cases 03006 return or_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 03007 v.sgn, v.nbits, v.ndigits, v.digit); 03008 03009 }
sc_signed.cpp の 3070 行で定義されています。
03071 { 03072 03073 if (u == 0) 03074 return sc_signed(v); 03075 03076 CONVERT_INT64(u); 03077 03078 if (v.sgn == SC_ZERO) 03079 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 03080 03081 // other cases 03082 return or_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 03083 v.sgn, v.nbits, v.ndigits, v.digit); 03084 03085 }
sc_signed.cpp の 3108 行で定義されています。
03109 { 03110 03111 if (u == 0) 03112 return sc_signed(v); 03113 03114 CONVERT_LONG(u); 03115 03116 if (v.sgn == SC_ZERO) 03117 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 03118 03119 // other cases 03120 return or_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 03121 v.sgn, v.nbits, v.ndigits, v.digit); 03122 03123 }
sc_signed.cpp の 3184 行で定義されています。
03185 { 03186 03187 if (u == 0) 03188 return sc_signed(v); 03189 03190 CONVERT_LONG(u); 03191 03192 if (v.sgn == SC_ZERO) 03193 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 03194 03195 // other cases 03196 return or_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 03197 v.sgn, v.nbits, v.ndigits, v.digit); 03198 03199 }
sc_signed operator| | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator| | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator| | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator| | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator| | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator| | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator^ | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 3219 行で定義されています。
03220 { 03221 03222 if (v.sgn == SC_ZERO) // case 1 03223 return sc_signed(u); 03224 03225 if (u.sgn == SC_ZERO) // case 2 03226 return sc_signed(v); 03227 03228 // other cases 03229 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03230 v.sgn, v.nbits, v.ndigits, v.digit); 03231 03232 }
sc_signed operator^ | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3236 行で定義されています。
03237 { 03238 03239 if (v.sgn == SC_ZERO) // case 1 03240 return sc_signed(u); 03241 03242 if (u.sgn == SC_ZERO) // case 2 03243 return sc_signed(v); 03244 03245 // other cases 03246 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03247 v.sgn, v.nbits, v.ndigits, v.digit); 03248 03249 }
sc_signed operator^ | ( | const sc_unsigned & | u, | |
int64 | v | |||
) | [friend] |
sc_signed.cpp の 3308 行で定義されています。
03309 { 03310 03311 if (v == 0) // case 1 03312 return sc_signed(u); 03313 03314 CONVERT_INT64(v); 03315 03316 if (u.sgn == SC_ZERO) // case 2 03317 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 03318 03319 // other cases 03320 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03321 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 03322 03323 }
sc_signed operator^ | ( | const sc_unsigned & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 3420 行で定義されています。
03421 { 03422 03423 if (v == 0) // case 1 03424 return sc_signed(u); 03425 03426 CONVERT_LONG(v); 03427 03428 if (u.sgn == SC_ZERO) // case 2 03429 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 03430 03431 // other cases 03432 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03433 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 03434 03435 }
sc_signed operator^ | ( | const sc_unsigned & | u, | |
int | v | |||
) | [friend] |
sc_signed operator^ | ( | int64 | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3327 行で定義されています。
03328 { 03329 03330 if (u == 0) 03331 return sc_signed(v); 03332 03333 CONVERT_INT64(u); 03334 03335 if (v.sgn == SC_ZERO) 03336 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 03337 03338 // other cases 03339 return xor_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 03340 v.sgn, v.nbits, v.ndigits, v.digit); 03341 03342 }
sc_signed operator^ | ( | long | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3439 行で定義されています。
03440 { 03441 03442 if (u == 0) 03443 return sc_signed(v); 03444 03445 CONVERT_LONG(u); 03446 03447 if (v.sgn == SC_ZERO) 03448 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 03449 03450 // other cases 03451 return xor_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 03452 v.sgn, v.nbits, v.ndigits, v.digit); 03453 03454 }
sc_signed operator^ | ( | int | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3253 行で定義されています。
03254 { 03255 03256 if (v.sgn == SC_ZERO) // case 1 03257 return sc_signed(u); 03258 03259 if (u.sgn == SC_ZERO) // case 2 03260 return sc_signed(v); 03261 03262 // other cases 03263 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03264 v.sgn, v.nbits, v.ndigits, v.digit); 03265 03266 }
sc_signed.cpp の 3270 行で定義されています。
03271 { 03272 03273 if (v == 0) // case 1 03274 return sc_signed(u); 03275 03276 CONVERT_INT64(v); 03277 03278 if (u.sgn == SC_ZERO) // case 2 03279 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 03280 03281 // other cases 03282 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03283 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 03284 03285 }
sc_signed.cpp の 3346 行で定義されています。
03347 { 03348 03349 if (v == 0) // case 1 03350 return sc_signed(u); 03351 03352 CONVERT_INT64(v); 03353 03354 if (u.sgn == SC_ZERO) // case 2 03355 return sc_signed(vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd, false); 03356 03357 // other cases 03358 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03359 vs, BITS_PER_UINT64, DIGITS_PER_UINT64, vd); 03360 03361 }
sc_signed.cpp の 3382 行で定義されています。
03383 { 03384 03385 if (v == 0) // case 1 03386 return sc_signed(u); 03387 03388 CONVERT_LONG(v); 03389 03390 if (u.sgn == SC_ZERO) // case 2 03391 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 03392 03393 // other cases 03394 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03395 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 03396 03397 }
sc_signed.cpp の 3458 行で定義されています。
03459 { 03460 03461 if (v == 0) // case 1 03462 return sc_signed(u); 03463 03464 CONVERT_LONG(v); 03465 03466 if (u.sgn == SC_ZERO) // case 2 03467 return sc_signed(vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd, false); 03468 03469 // other cases 03470 return xor_signed_friend(u.sgn, u.nbits, u.ndigits, u.digit, 03471 vs, BITS_PER_ULONG, DIGITS_PER_ULONG, vd); 03472 03473 }
sc_signed.cpp の 3289 行で定義されています。
03290 { 03291 03292 if (u == 0) 03293 return sc_signed(v); 03294 03295 CONVERT_INT64(u); 03296 03297 if (v.sgn == SC_ZERO) 03298 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 03299 03300 // other cases 03301 return xor_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 03302 v.sgn, v.nbits, v.ndigits, v.digit); 03303 03304 }
sc_signed.cpp の 3364 行で定義されています。
03365 { 03366 if (u == 0) 03367 return sc_signed(v); 03368 03369 CONVERT_INT64(u); 03370 03371 if (v.sgn == SC_ZERO) 03372 return sc_signed(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, false); 03373 03374 // other cases 03375 return xor_signed_friend(us, BITS_PER_UINT64, DIGITS_PER_UINT64, ud, 03376 v.sgn, v.nbits, v.ndigits, v.digit); 03377 03378 }
sc_signed.cpp の 3401 行で定義されています。
03402 { 03403 03404 if (u == 0) 03405 return sc_signed(v); 03406 03407 CONVERT_LONG(u); 03408 03409 if (v.sgn == SC_ZERO) 03410 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 03411 03412 // other cases 03413 return xor_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 03414 v.sgn, v.nbits, v.ndigits, v.digit); 03415 03416 }
sc_signed.cpp の 3476 行で定義されています。
03477 { 03478 if (u == 0) 03479 return sc_signed(v); 03480 03481 CONVERT_LONG(u); 03482 03483 if (v.sgn == SC_ZERO) 03484 return sc_signed(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, false); 03485 03486 // other cases 03487 return xor_signed_friend(us, BITS_PER_ULONG, DIGITS_PER_ULONG, ud, 03488 v.sgn, v.nbits, v.ndigits, v.digit); 03489 03490 }
sc_signed operator^ | ( | const sc_unsigned & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator^ | ( | const sc_int_base & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed operator^ | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator^ | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator^ | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator^ | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_unsigned operator<< | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator<< | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3508 行で定義されています。
03509 { 03510 if (v.sgn == SC_ZERO) 03511 return sc_signed(u); 03512 03513 return operator<<(u, v.to_ulong()); 03514 }
sc_signed operator<< | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator<< | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_unsigned operator>> | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed operator>> | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3525 行で定義されています。
03526 { 03527 03528 if (v.sgn == SC_ZERO) 03529 return sc_signed(u); 03530 03531 return operator>>(u, v.to_ulong()); 03532 03533 }
sc_signed operator>> | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
sc_signed operator>> | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
sc_signed operator- | ( | const sc_unsigned & | u | ) | [friend] |
bool operator== | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator== | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3567 行で定義されています。
03568 { 03569 03570 if (u.sgn != v.sgn) 03571 return false; 03572 03573 if (&u == &v) 03574 return true; 03575 03576 if (vec_skip_and_cmp(u.ndigits, u.digit, v.ndigits, v.digit) != 0) 03577 return false; 03578 03579 return true; 03580 03581 }
sc_signed.cpp の 3585 行で定義されています。
03586 { 03587 03588 CONVERT_INT64(v); 03589 03590 if (u.sgn != vs) 03591 return false; 03592 03593 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) != 0) 03594 return false; 03595 03596 return true; 03597 03598 }
sc_signed.cpp の 3619 行で定義されています。
03620 { 03621 03622 CONVERT_INT64(v); 03623 03624 if (u.sgn != vs) 03625 return false; 03626 03627 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) != 0) 03628 return false; 03629 03630 return true; 03631 03632 }
bool operator== | ( | const sc_signed & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 3653 行で定義されています。
03654 { 03655 03656 CONVERT_LONG(v); 03657 03658 if (u.sgn != vs) 03659 return false; 03660 03661 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) != 0) 03662 return false; 03663 03664 return true; 03665 03666 }
bool operator== | ( | const sc_signed & | u, | |
unsigned long | v | |||
) | [friend] |
sc_signed.cpp の 3687 行で定義されています。
03688 { 03689 03690 CONVERT_LONG(v); 03691 03692 if (u.sgn != vs) 03693 return false; 03694 03695 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) != 0) 03696 return false; 03697 03698 return true; 03699 03700 }
bool operator== | ( | const sc_signed & | u, | |
int | v | |||
) | [friend] |
bool operator== | ( | const sc_signed & | u, | |
unsigned int | v | |||
) | [friend] |
sc_signed.cpp の 3602 行で定義されています。
03603 { 03604 03605 CONVERT_INT64(u); 03606 03607 if (us != v.sgn) 03608 return false; 03609 03610 if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) != 0) 03611 return false; 03612 03613 return true; 03614 03615 }
sc_signed.cpp の 3636 行で定義されています。
03637 { 03638 03639 CONVERT_INT64(u); 03640 03641 if (us != v.sgn) 03642 return false; 03643 03644 if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) != 0) 03645 return false; 03646 03647 return true; 03648 03649 }
bool operator== | ( | long | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 3670 行で定義されています。
03671 { 03672 03673 CONVERT_LONG(u); 03674 03675 if (us != v.sgn) 03676 return false; 03677 03678 if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) != 0) 03679 return false; 03680 03681 return true; 03682 03683 }
bool operator== | ( | unsigned long | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 3704 行で定義されています。
03705 { 03706 03707 CONVERT_LONG(u); 03708 03709 if (us != v.sgn) 03710 return false; 03711 03712 if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) != 0) 03713 return false; 03714 03715 return true; 03716 03717 }
bool operator== | ( | int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator== | ( | unsigned int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator== | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
bool operator== | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
bool operator== | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator== | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator!= | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator!= | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
bool operator!= | ( | const sc_signed & | u, | |
long | v | |||
) | [friend] |
bool operator!= | ( | const sc_signed & | u, | |
unsigned long | v | |||
) | [friend] |
bool operator!= | ( | const sc_signed & | u, | |
int | v | |||
) | [friend] |
bool operator!= | ( | const sc_signed & | u, | |
unsigned int | v | |||
) | [friend] |
bool operator!= | ( | long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator!= | ( | unsigned long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator!= | ( | int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator!= | ( | unsigned int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator!= | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
bool operator!= | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
bool operator!= | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator!= | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator< | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator< | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
sc_signed.cpp の 3732 行で定義されています。
03733 { 03734 03735 if (u.sgn < v.sgn) 03736 return true; 03737 03738 if (u.sgn > v.sgn) 03739 return false; 03740 03741 // u.sgn == v.sgn 03742 03743 if (&u == &v) 03744 return false; 03745 03746 if (u.sgn == SC_POS) { 03747 03748 if (vec_skip_and_cmp(u.ndigits, u.digit, v.ndigits, v.digit) < 0) 03749 return true; 03750 03751 } 03752 else if (u.sgn == SC_NEG) { 03753 03754 if (vec_skip_and_cmp(u.ndigits, u.digit, v.ndigits, v.digit) > 0) 03755 return true; 03756 03757 } 03758 03759 return false; 03760 03761 }
sc_signed.cpp の 3765 行で定義されています。
03766 { 03767 03768 CONVERT_INT64(v); 03769 03770 if (u.sgn < vs) 03771 return true; 03772 03773 if (u.sgn > vs) 03774 return false; 03775 03776 // u.sgn == vs 03777 03778 if (vs == SC_POS) { 03779 03780 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) < 0) 03781 return true; 03782 03783 } 03784 else if (vs == SC_NEG) { 03785 03786 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) > 0) 03787 return true; 03788 03789 } 03790 03791 return false; 03792 03793 }
sc_signed.cpp の 3829 行で定義されています。
03830 { 03831 03832 CONVERT_INT64(v); 03833 03834 if (u.sgn < vs) 03835 return true; 03836 03837 if (u.sgn > vs) 03838 return false; 03839 03840 // u.sgn == vs 03841 03842 if (vs == SC_POS) { 03843 03844 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_INT64, vd) < 0) 03845 return true; 03846 03847 } 03848 03849 return false; 03850 03851 }
bool operator< | ( | const sc_signed & | u, | |
long | v | |||
) | [friend] |
sc_signed.cpp の 3881 行で定義されています。
03882 { 03883 03884 CONVERT_LONG(v); 03885 03886 if (u.sgn < vs) 03887 return true; 03888 03889 if (u.sgn > vs) 03890 return false; 03891 03892 // u.sgn == vs 03893 03894 if (vs == SC_POS) { 03895 03896 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) < 0) 03897 return true; 03898 03899 } 03900 else if (vs == SC_NEG) { 03901 03902 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) > 0) 03903 return true; 03904 03905 } 03906 03907 return false; 03908 03909 }
bool operator< | ( | const sc_signed & | u, | |
unsigned long | v | |||
) | [friend] |
sc_signed.cpp の 3943 行で定義されています。
03944 { 03945 CONVERT_LONG(v); 03946 03947 if (u.sgn < vs) 03948 return true; 03949 03950 if (u.sgn > vs) 03951 return false; 03952 03953 // u.sgn == vs 03954 03955 if (vs == SC_POS) { 03956 03957 if (vec_skip_and_cmp(u.ndigits, u.digit, DIGITS_PER_LONG, vd) < 0) 03958 return true; 03959 03960 } 03961 03962 return false; 03963 }
bool operator< | ( | const sc_signed & | u, | |
int | v | |||
) | [friend] |
bool operator< | ( | const sc_signed & | u, | |
unsigned int | v | |||
) | [friend] |
sc_signed.cpp の 3797 行で定義されています。
03798 { 03799 03800 CONVERT_INT64(u); 03801 03802 if (us < v.sgn) 03803 return true; 03804 03805 if (us > v.sgn) 03806 return false; 03807 03808 // us == v.sgn 03809 03810 if (us == SC_POS) { 03811 03812 if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) < 0) 03813 return true; 03814 03815 } 03816 else if (us == SC_NEG) { 03817 03818 if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) > 0) 03819 return true; 03820 03821 } 03822 03823 return false; 03824 03825 }
sc_signed.cpp の 3855 行で定義されています。
03856 { 03857 03858 CONVERT_INT64(u); 03859 03860 if (us < v.sgn) 03861 return true; 03862 03863 if (us > v.sgn) 03864 return false; 03865 03866 // us == v.sgn 03867 03868 if (us == SC_POS) { 03869 03870 if (vec_skip_and_cmp(DIGITS_PER_INT64, ud, v.ndigits, v.digit) < 0) 03871 return true; 03872 03873 } 03874 03875 return false; 03876 03877 }
bool operator< | ( | long | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 3913 行で定義されています。
03914 { 03915 CONVERT_LONG(u); 03916 03917 if (us < v.sgn) 03918 return true; 03919 03920 if (us > v.sgn) 03921 return false; 03922 03923 // us == v.sgn 03924 03925 if (us == SC_POS) { 03926 03927 if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) < 0) 03928 return true; 03929 03930 } 03931 else if (us == SC_NEG) { 03932 03933 if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) > 0) 03934 return true; 03935 03936 } 03937 03938 return false; 03939 }
bool operator< | ( | unsigned long | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed.cpp の 3967 行で定義されています。
03968 { 03969 CONVERT_LONG(u); 03970 03971 if (us < v.sgn) 03972 return true; 03973 03974 if (us > v.sgn) 03975 return false; 03976 03977 // us == v.sgn 03978 03979 if (us == SC_POS) { 03980 03981 if (vec_skip_and_cmp(DIGITS_PER_LONG, ud, v.ndigits, v.digit) < 0) 03982 return true; 03983 03984 } 03985 03986 return false; 03987 }
bool operator< | ( | int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator< | ( | unsigned int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator< | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
bool operator< | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
bool operator< | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator< | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator<= | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator<= | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
bool operator<= | ( | const sc_signed & | u, | |
long | v | |||
) | [friend] |
bool operator<= | ( | const sc_signed & | u, | |
unsigned long | v | |||
) | [friend] |
bool operator<= | ( | const sc_signed & | u, | |
int | v | |||
) | [friend] |
bool operator<= | ( | const sc_signed & | u, | |
unsigned int | v | |||
) | [friend] |
bool operator<= | ( | long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator<= | ( | unsigned long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator<= | ( | int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator<= | ( | unsigned int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator<= | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
bool operator<= | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
bool operator<= | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator<= | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator> | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator> | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
bool operator> | ( | const sc_signed & | u, | |
long | v | |||
) | [friend] |
bool operator> | ( | const sc_signed & | u, | |
unsigned long | v | |||
) | [friend] |
bool operator> | ( | const sc_signed & | u, | |
int | v | |||
) | [friend] |
bool operator> | ( | const sc_signed & | u, | |
unsigned int | v | |||
) | [friend] |
bool operator> | ( | long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator> | ( | unsigned long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator> | ( | int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator> | ( | unsigned int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator> | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
bool operator> | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
bool operator> | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator> | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator>= | ( | const sc_unsigned & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator>= | ( | const sc_signed & | u, | |
const sc_unsigned & | v | |||
) | [friend] |
bool operator>= | ( | const sc_signed & | u, | |
long | v | |||
) | [friend] |
bool operator>= | ( | const sc_signed & | u, | |
unsigned long | v | |||
) | [friend] |
bool operator>= | ( | const sc_signed & | u, | |
int | v | |||
) | [friend] |
bool operator>= | ( | const sc_signed & | u, | |
unsigned int | v | |||
) | [friend] |
bool operator>= | ( | long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator>= | ( | unsigned long | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator>= | ( | int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator>= | ( | unsigned int | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator>= | ( | const sc_signed & | u, | |
const sc_int_base & | v | |||
) | [friend] |
bool operator>= | ( | const sc_signed & | u, | |
const sc_uint_base & | v | |||
) | [friend] |
bool operator>= | ( | const sc_int_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
bool operator>= | ( | const sc_uint_base & | u, | |
const sc_signed & | v | |||
) | [friend] |
sc_signed add_signed_friend | ( | small_type | us, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
small_type | vs, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
sc_signed sub_signed_friend | ( | small_type | us, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
small_type | vs, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
sc_signed mul_signed_friend | ( | small_type | s, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
sc_signed div_signed_friend | ( | small_type | s, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
sc_signed mod_signed_friend | ( | small_type | us, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
sc_signed and_signed_friend | ( | small_type | us, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
small_type | vs, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
sc_signed or_signed_friend | ( | small_type | us, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
small_type | vs, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
sc_signed xor_signed_friend | ( | small_type | us, | |
int | unb, | |||
int | und, | |||
const sc_digit * | ud, | |||
small_type | vs, | |||
int | vnb, | |||
int | vnd, | |||
const sc_digit * | vd | |||
) | [friend] |
small_type sc_dt::sc_signed::sgn [private] |
sc_signed.h の 2148 行で定義されています。
int sc_dt::sc_signed::nbits [private] |
sc_signed.h の 2149 行で定義されています。
int sc_dt::sc_signed::ndigits [private] |
sc_signed.h の 2150 行で定義されています。
sc_digit* sc_dt::sc_signed::digit [private] |
sc_signed.h の 2155 行で定義されています。