NuSMV/code/nusmv/core/utils/bignumbers/numbersInt.h File Reference

#include <gmp.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <math.h>
#include <string.h>
#include "nusmv/core/utils/defs.h"

Go to the source code of this file.

Data Structures

struct  Gmp
 A GMP big number. More...
struct  QNumber
 A big number can either be a GMP big number or still be a long. More...

Defines

#define manual_set_buf_size   100
#define QNumber_NUM_BITS_NORMAL   (sizeof(long) * 8)
 QNumber class description.

Functions

void clean_mpz_pool (mpz_t *mpz_pool, size_t nr_to_clean)
GmpGmp_alloc (void)
void Gmp_free (Gmp *p)
void init_mpz_pool (mpz_t *mpz_pool, size_t nr_to_init)
QNumber QNumber_abs (const QNumber *n)
boolean QNumber_add_overflow (long *res, long lhs, long rhs)
QNumber QNumber_assign (mpz_t n, mpz_t d, int b)
boolean QNumber_big (const QNumber *self)
void QNumber_clean_gmp (QNumber *p)
int QNumber_cmp (const QNumber *a, const QNumber *b)
boolean QNumber_decompose (const QNumber *self, QNumber *z, QNumber *q)
boolean QNumber_div_overflow (long *res, long lhs, long rhs)
boolean QNumber_divides (const QNumber *self, const QNumber *other)
void QNumber_divmod (const QNumber *self, const QNumber *other, QNumber *q, QNumber *r)
boolean QNumber_fix_int_min (QNumber *self)
QNumber QNumber_floor (const QNumber *self)
QNumber QNumber_from_long (long n)
QNumber QNumber_from_mpq (mpq_t *n)
QNumber QNumber_from_nothing (void)
QNumber QNumber_from_other (const QNumber *other)
QNumber QNumber_from_two_longs (long n, long d)
QNumber QNumber_from_two_mpzs (mpz_t *n, mpz_t *d)
QNumber QNumber_gcd (const QNumber *a, const QNumber *b)
long QNumber_gcd_long (long a, long b)
long QNumber_gcd_nocache (long a, long b)
QNumber QNumber_get_den (const QNumber *self)
QNumber QNumber_get_num (const QNumber *self)
int QNumber_integer_from_string (char *str, char *error, int base, QNumber *target)
QNumber QNumber_inv (const QNumber *self)
boolean QNumber_is_int_big (const QNumber *self)
boolean QNumber_is_int_normal (const QNumber *self)
boolean QNumber_is_integer (const QNumber *self)
void QNumber_make_big (QNumber *self)
QNumber QNumber_make_number_from_unsigned_long_long (unsigned long long n)
boolean QNumber_mul_overflow (long *res, long lhs, long rhs)
QNumber QNumber_neg (const QNumber *self)
void QNumber_normalize (QNumber *self)
QNumber QNumber_operator_div (const QNumber *a, const QNumber *b)
boolean QNumber_operator_equals (const QNumber *n, const QNumber *r)
boolean QNumber_operator_less_than (const QNumber *n, const QNumber *r)
boolean QNumber_operator_less_than_both_big (const QNumber *n, const QNumber *r)
boolean QNumber_operator_less_than_both_small (const QNumber *n, const QNumber *r)
boolean QNumber_operator_less_than_n_small (const QNumber *n, const QNumber *r)
boolean QNumber_operator_less_than_or_equals (const QNumber *a, const QNumber *b)
boolean QNumber_operator_less_than_r_small (const QNumber *n, const QNumber *r)
QNumber QNumber_operator_minus (const QNumber *a, const QNumber *b)
boolean QNumber_operator_more_than (const QNumber *a, const QNumber *b)
boolean QNumber_operator_more_than_or_equals (const QNumber *a, const QNumber *b)
QNumber QNumber_operator_mul (const QNumber *a, const QNumber *b)
boolean QNumber_operator_not_equal (const QNumber *a, const QNumber *b)
QNumber QNumber_operator_plus (const QNumber *a, const QNumber *b)
QNumber QNumber_operator_unaray_minus (const QNumber *r)
char * QNumber_print_integer (const QNumber *n, int base)
void QNumber_self_addmul (QNumber *self, const QNumber *a, const QNumber *b)
void QNumber_self_decompose (const QNumber *self)
void QNumber_self_neg (QNumber *self)
boolean QNumber_self_to_int (const QNumber *self, int *out_value)
int QNumber_sgn (const QNumber *n)
boolean QNumber_sub_overflow (long *res, long lhs, long rhs)

Define Documentation

#define manual_set_buf_size   100
Todo:
Missing synopsis
Todo:
Missing description
#define QNumber_NUM_BITS_NORMAL   (sizeof(long) * 8)

QNumber class description.

Author:
Todo:
: Missing author

This file contains the class description of the files of the QNumber class which is the current implementation for NuSMV infinite numbers.

Todo:
Missing synopsis
Todo:
Missing description
Todo:
Missing synopsis
Todo:
Missing description

Function Documentation

void clean_mpz_pool ( mpz_t *  mpz_pool,
size_t  nr_to_clean 
)
Gmp* Gmp_alloc ( void   ) 
void Gmp_free ( Gmp p  ) 
void init_mpz_pool ( mpz_t *  mpz_pool,
size_t  nr_to_init 
)
QNumber QNumber_abs ( const QNumber n  ) 
boolean QNumber_add_overflow ( long *  res,
long  lhs,
long  rhs 
)
QNumber QNumber_assign ( mpz_t  n,
mpz_t  d,
int  b 
)
boolean QNumber_big ( const QNumber self  ) 
void QNumber_clean_gmp ( QNumber p  ) 
int QNumber_cmp ( const QNumber a,
const QNumber b 
)
boolean QNumber_decompose ( const QNumber self,
QNumber z,
QNumber q 
)
boolean QNumber_div_overflow ( long *  res,
long  lhs,
long  rhs 
)
boolean QNumber_divides ( const QNumber self,
const QNumber other 
)
void QNumber_divmod ( const QNumber self,
const QNumber other,
QNumber q,
QNumber r 
)
boolean QNumber_fix_int_min ( QNumber self  ) 
QNumber QNumber_floor ( const QNumber self  ) 
QNumber QNumber_from_long ( long  n  ) 
QNumber QNumber_from_mpq ( mpq_t *  n  ) 
QNumber QNumber_from_nothing ( void   ) 
QNumber QNumber_from_other ( const QNumber other  ) 
QNumber QNumber_from_two_longs ( long  n,
long  d 
)
QNumber QNumber_from_two_mpzs ( mpz_t *  n,
mpz_t *  d 
)
QNumber QNumber_gcd ( const QNumber a,
const QNumber b 
)
long QNumber_gcd_long ( long  a,
long  b 
)
long QNumber_gcd_nocache ( long  a,
long  b 
)

AutomaticStart

QNumber QNumber_get_den ( const QNumber self  ) 
QNumber QNumber_get_num ( const QNumber self  ) 
int QNumber_integer_from_string ( char *  str,
char *  error,
int  base,
QNumber target 
)
QNumber QNumber_inv ( const QNumber self  ) 
boolean QNumber_is_int_big ( const QNumber self  ) 
boolean QNumber_is_int_normal ( const QNumber self  ) 
boolean QNumber_is_integer ( const QNumber self  ) 
void QNumber_make_big ( QNumber self  ) 
QNumber QNumber_make_number_from_unsigned_long_long ( unsigned long long  n  ) 
boolean QNumber_mul_overflow ( long *  res,
long  lhs,
long  rhs 
)
QNumber QNumber_neg ( const QNumber self  ) 
void QNumber_normalize ( QNumber self  ) 
QNumber QNumber_operator_div ( const QNumber a,
const QNumber b 
)
boolean QNumber_operator_equals ( const QNumber n,
const QNumber r 
)
boolean QNumber_operator_less_than ( const QNumber n,
const QNumber r 
)
boolean QNumber_operator_less_than_both_big ( const QNumber n,
const QNumber r 
)
boolean QNumber_operator_less_than_both_small ( const QNumber n,
const QNumber r 
)
boolean QNumber_operator_less_than_n_small ( const QNumber n,
const QNumber r 
)
boolean QNumber_operator_less_than_or_equals ( const QNumber a,
const QNumber b 
)
boolean QNumber_operator_less_than_r_small ( const QNumber n,
const QNumber r 
)
QNumber QNumber_operator_minus ( const QNumber a,
const QNumber b 
)
boolean QNumber_operator_more_than ( const QNumber a,
const QNumber b 
)
boolean QNumber_operator_more_than_or_equals ( const QNumber a,
const QNumber b 
)
QNumber QNumber_operator_mul ( const QNumber a,
const QNumber b 
)
boolean QNumber_operator_not_equal ( const QNumber a,
const QNumber b 
)
QNumber QNumber_operator_plus ( const QNumber a,
const QNumber b 
)
QNumber QNumber_operator_unaray_minus ( const QNumber r  ) 
char* QNumber_print_integer ( const QNumber n,
int  base 
)
void QNumber_self_addmul ( QNumber self,
const QNumber a,
const QNumber b 
)
void QNumber_self_decompose ( const QNumber self  ) 
void QNumber_self_neg ( QNumber self  ) 
boolean QNumber_self_to_int ( const QNumber self,
int *  out_value 
)
int QNumber_sgn ( const QNumber n  ) 
boolean QNumber_sub_overflow ( long *  res,
long  lhs,
long  rhs 
)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 14 Oct 2015 for NuSMV Developers Manual by  doxygen 1.6.1