#include <cmath>
#include <limits>
#include "sysc/datatypes/bit/sc_bit_ids.h"
#include "sysc/datatypes/int/sc_int_ids.h"
#include "sysc/datatypes/int/sc_nbdefs.h"
#include "sysc/utils/sc_report.h"
Go to the source code of this file.
Namespaces | |
namespace | sc_dt |
Functions | |
sc_numrep | sc_dt::sc_io_base (systemc_ostream &, sc_numrep) |
bool | sc_dt::sc_io_show_base (systemc_ostream &) |
const std::string | sc_dt::to_string (sc_numrep) |
systemc_ostream & | sc_dt::operator<< (systemc_ostream &os, sc_numrep numrep) |
void | sc_dt::is_valid_base (sc_numrep base) |
small_type | sc_dt::fsm_move (char c, small_type &b, small_type &s, small_type &state) |
void | sc_dt::parse_binary_bits (const char *src_p, int dst_n, sc_digit *data_p, sc_digit *ctrl_p=0) |
void | sc_dt::parse_hex_bits (const char *src_p, int dst_n, sc_digit *data_p, sc_digit *ctrl_p=0) |
const char * | sc_dt::get_base_and_sign (const char *v, small_type &base, small_type &sign) |
small_type | sc_dt::vec_from_str (int unb, int und, sc_digit *u, const char *v, sc_numrep base=SC_NOBASE) |
void | sc_dt::vec_add (int ulen, const sc_digit *u, int vlen, const sc_digit *v, sc_digit *w) |
void | sc_dt::vec_add_on (int ulen, sc_digit *u, int vlen, const sc_digit *v) |
void | sc_dt::vec_add_on2 (int ulen, sc_digit *u, int vlen, const sc_digit *v) |
void | sc_dt::vec_add_small (int ulen, const sc_digit *u, sc_digit v, sc_digit *w) |
void | sc_dt::vec_add_small_on (int ulen, sc_digit *u, sc_digit v) |
void | sc_dt::vec_sub (int ulen, const sc_digit *u, int vlen, const sc_digit *v, sc_digit *w) |
void | sc_dt::vec_sub_on (int ulen, sc_digit *u, int vlen, const sc_digit *v) |
void | sc_dt::vec_sub_on2 (int ulen, sc_digit *u, int vlen, const sc_digit *v) |
void | sc_dt::vec_sub_small (int ulen, const sc_digit *u, sc_digit v, sc_digit *w) |
void | sc_dt::vec_sub_small_on (int ulen, sc_digit *u, sc_digit v) |
void | sc_dt::vec_mul (int ulen, const sc_digit *u, int vlen, const sc_digit *v, sc_digit *w) |
void | sc_dt::vec_mul_small (int ulen, const sc_digit *u, sc_digit v, sc_digit *w) |
void | sc_dt::vec_mul_small_on (int ulen, sc_digit *u, sc_digit v) |
void | sc_dt::vec_div_large (int ulen, const sc_digit *u, int vlen, const sc_digit *v, sc_digit *w) |
void | sc_dt::vec_div_small (int ulen, const sc_digit *u, sc_digit v, sc_digit *w) |
void | sc_dt::vec_rem_large (int ulen, const sc_digit *u, int vlen, const sc_digit *v, sc_digit *w) |
sc_digit | sc_dt::vec_rem_small (int ulen, const sc_digit *u, sc_digit v) |
sc_digit | sc_dt::vec_rem_on_small (int ulen, sc_digit *u, sc_digit v) |
int | sc_dt::vec_to_char (int ulen, const sc_digit *u, int vlen, uchar *v) |
void | sc_dt::vec_from_char (int ulen, const uchar *u, int vlen, sc_digit *v) |
void | sc_dt::vec_shift_left (int ulen, sc_digit *u, int nsl) |
void | sc_dt::vec_shift_right (int vlen, sc_digit *u, int nsr, sc_digit fill=0) |
void | sc_dt::vec_reverse (int unb, int und, sc_digit *ud, int l, int r=0) |
sc_digit | sc_dt::low_half (sc_digit d) |
sc_digit | sc_dt::high_half (sc_digit d) |
sc_digit | sc_dt::high_half_masked (sc_digit d) |
sc_digit | sc_dt::concat (sc_digit h, sc_digit l) |
sc_digit | sc_dt::one_and_ones (int n) |
sc_digit | sc_dt::one_and_zeros (int n) |
int | sc_dt::digit_ord (int i) |
int | sc_dt::bit_ord (int i) |
int | sc_dt::vec_cmp (int ulen, const sc_digit *u, int vlen, const sc_digit *v) |
int | sc_dt::vec_find_first_nonzero (int ulen, const sc_digit *u) |
int | sc_dt::vec_skip_leading_zeros (int ulen, const sc_digit *u) |
int | sc_dt::vec_skip_and_cmp (int ulen, const sc_digit *u, int vlen, const sc_digit *v) |
void | sc_dt::vec_zero (int from, int ulen, sc_digit *u) |
void | sc_dt::vec_zero (int ulen, sc_digit *u) |
void | sc_dt::vec_copy (int n, sc_digit *u, const sc_digit *v) |
void | sc_dt::vec_copy_and_zero (int ulen, sc_digit *u, int vlen, const sc_digit *v) |
void | sc_dt::vec_complement (int ulen, sc_digit *u) |
template<class Type > | |
void | sc_dt::from_uint (int ulen, sc_digit *u, Type v) |
template<class Type > | |
small_type | sc_dt::get_sign (Type &u) |
small_type | sc_dt::mul_signs (small_type us, small_type vs) |
template<class Type > | |
void | sc_dt::div_by_zero (Type s) |
small_type | sc_dt::check_for_zero (small_type s, int ulen, const sc_digit *u) |
bool | sc_dt::check_for_zero (int ulen, const sc_digit *u) |
small_type | sc_dt::make_zero (int nd, sc_digit *d) |
void | sc_dt::trim (small_type added, int nb, int nd, sc_digit *d) |
void | sc_dt::convert_SM_to_2C_trimmed (small_type added, small_type s, int nb, int nd, sc_digit *d) |
void | sc_dt::convert_SM_to_2C (small_type s, int nd, sc_digit *d) |
void | sc_dt::trim_signed (int nb, int nd, sc_digit *d) |
small_type | sc_dt::convert_signed_2C_to_SM (int nb, int nd, sc_digit *d) |
small_type | sc_dt::convert_signed_SM_to_2C_to_SM (small_type s, int nb, int nd, sc_digit *d) |
void | sc_dt::convert_signed_SM_to_2C_trimmed (small_type s, int nb, int nd, sc_digit *d) |
void | sc_dt::convert_signed_SM_to_2C (small_type s, int nd, sc_digit *d) |
void | sc_dt::trim_unsigned (int nb, int nd, sc_digit *d) |
small_type | sc_dt::convert_unsigned_2C_to_SM (int nb, int nd, sc_digit *d) |
small_type | sc_dt::convert_unsigned_SM_to_2C_to_SM (small_type s, int nb, int nd, sc_digit *d) |
void | sc_dt::convert_unsigned_SM_to_2C_trimmed (small_type s, int nb, int nd, sc_digit *d) |
void | sc_dt::convert_unsigned_SM_to_2C (small_type s, int nd, sc_digit *d) |
void | sc_dt::copy_digits_signed (small_type &us, int unb, int und, sc_digit *ud, int vnb, int vnd, const sc_digit *vd) |
void | sc_dt::copy_digits_unsigned (small_type &us, int unb, int und, sc_digit *ud, int, int vnd, const sc_digit *vd) |
void | sc_dt::safe_set (int i, bool v, sc_digit *d) |
bool | sc_dt::is_nan (double v) |
bool | sc_dt::is_inf (double v) |
void | sc_dt::is_bad_double (double v) |