31#ifndef SC_BIGUINT_INLINES_H
32#define SC_BIGUINT_INLINES_H
47inline const sc_biguint<W>&
107 *to_p++ = from >> 32;
122 if (
sizeof(from) > 4 ) {
124 *to_p++ = (
int64)from >> 32;
130 else if ( HOD > 0 ) {
157 *to_p++ = from >> 32;
172 if (
sizeof(from) > 4 ) {
174 *to_p++ = (
uint64)from >> 32;
180 else if ( HOD > 1 ) {
204 return *
this = (
int64)from;
211 return *
this = (
uint64)from;
220 for (
int digit_i = 0; digit_i <= HOD; ++digit_i ) {
221 carry += ~digit[digit_i];
222 result.
digit[digit_i] = carry;
233 for (
int digit_i = 0; digit_i <= HOD; ++digit_i ) {
234 result.
digit[digit_i] = ~digit[digit_i];
483 result.
digit[0] = digit[0] >> v;
487 tmp = (tmp << 32) | digit[0];
489 result.
digit[0] = tmp;
490 if ( result.
nbits > 32 ) {
491 result.
digit[1] = (tmp >> 32);
void vector_fill(const sc_digit fill, const int to_hod, sc_digit *to_p)
bool vector_and_reduce(const int bits_n, const sc_digit *target_p)
unsigned long long uint64
void vector_extract(const sc_digit *source_p, sc_digit *destination_p, const int high_bit, const int low_bit)
void vector_copy(const int from_n, const sc_digit *from_p, const int to_n, sc_digit *to_p)
bool vector_xor_reduce(const int bits_n, const sc_digit *target_p)
bool vector_or_reduce(const int bits_n, const sc_digit *target_p)
void vector_shift_left(const int from_digits_n, const sc_digit *from_p, const int to_digits_n, sc_digit *to_p, const int shift_n)
void vector_shift_right(const int target_n, sc_digit *target_p, int bits_n, const sc_digit fill)
const sc_digit * get_digits() const
const sc_biguint< W > & operator-=(const sc_signed &v)
const sc_unsigned operator>>(int v) const
const sc_biguint< W > & operator%=(const sc_signed &v)
const sc_biguint< W > & operator|=(const sc_signed &v)
const sc_biguint< W > & operator>>=(int v)
const sc_biguint< W > & operator&=(const sc_signed &v)
const sc_digit * get_digits() const
const sc_biguint< W > & operator=(const sc_biguint< W > &v)
const sc_biguint< W > & operator/=(const sc_signed &v)
const sc_biguint< W > & operator<<=(int v)
const sc_bigint< W+1 > operator-()
const sc_biguint< W > & operator+=(const sc_signed &v)
const sc_unsigned operator<<(int v) const
sc_unsigned & sc_unsigned_proxy()
const sc_biguint< W > & operator*=(const sc_signed &v)
const sc_bigint< W+1 > operator~()
const sc_biguint< W > & operator^=(const sc_signed &v)
sc_digit * get_digits() const
sc_digit * get_digits() const