mirror of
https://github.com/louisrubet/rpn
synced 2024-12-29 10:23:59 +01:00
#64: refactored constant.h
This commit is contained in:
parent
e10161e42b
commit
f0222643f4
5 changed files with 17 additions and 9 deletions
|
@ -1,25 +1,33 @@
|
||||||
|
// default values
|
||||||
|
//
|
||||||
|
|
||||||
// default mode and number of printed digits
|
// default mode and number of printed digits
|
||||||
//
|
//
|
||||||
#define DEFAULT_MODE number::std
|
#define DEFAULT_MODE number::std
|
||||||
#define DEFAULT_PRECISION 20
|
#define DEFAULT_PRECISION 20
|
||||||
|
#define MPFR_DEFAULT_FORMAT "%.20Rg"
|
||||||
|
|
||||||
// MPFR related constants
|
// MPFR related defaults
|
||||||
//
|
//
|
||||||
|
|
||||||
// rounding method
|
// rounding method
|
||||||
#define MPFR_DEF_RND MPFR_RNDN
|
#define MPFR_DEFAULT_RND MPFR_RNDN
|
||||||
|
|
||||||
// 128 bits significand precision
|
// 128 bits significand precision
|
||||||
#define MPFR_DEFAULT_PREC_BITS 128
|
#define MPFR_DEFAULT_PREC_BITS 128
|
||||||
|
|
||||||
// 128 bits significand storing length in bytes, result of mpfr_custom_get_size(128)
|
// 128 bits significand storing length in bytes, result of mpfr_custom_get_size(128)
|
||||||
#define MPFR_DEFAULT_STORING_LENGTH_BYTES 16
|
#define MPFR_DEFAULT_STORING_LENGTH_BYTES 16
|
||||||
|
|
||||||
|
// constants
|
||||||
|
//
|
||||||
|
|
||||||
// show formats
|
// show formats
|
||||||
#define MPFR_FORMAT_BEG "%."
|
#define MPFR_FORMAT_BEG "%."
|
||||||
#define MPFR_FORMAT_STD "Rg"
|
#define MPFR_FORMAT_STD "Rg"
|
||||||
#define MPFR_FORMAT_FIX "Rf"
|
#define MPFR_FORMAT_FIX "Rf"
|
||||||
#define MPFR_FORMAT_SCI "Re"
|
#define MPFR_FORMAT_SCI "Re"
|
||||||
#define MPFR_FORMAT_HEX "%Ra"
|
#define MPFR_FORMAT_HEX "%Ra"
|
||||||
#define MPFR_FORMAT "%.20Rg"
|
|
||||||
|
|
||||||
#define MPFR_RND_STRINGS { "nearest", "toward zero", "toward +inf", "toward -inf", "away from zero" }
|
#define MPFR_RND_STRINGS { "nearest", "toward zero", "toward +inf", "toward -inf", "away from zero" }
|
||||||
|
|
||||||
|
|
|
@ -340,7 +340,7 @@ static bool get_number(const string& entry, program& prog, string& remaining_ent
|
||||||
{
|
{
|
||||||
number* num = (number*)prog.allocate_back(number::calc_size(), cmd_number);
|
number* num = (number*)prog.allocate_back(number::calc_size(), cmd_number);
|
||||||
|
|
||||||
int mpfr_ret = mpfr_strtofr(num->_value.mpfr, entry.c_str(), &endptr, 0, MPFR_DEF_RND);
|
int mpfr_ret = mpfr_strtofr(num->_value.mpfr, entry.c_str(), &endptr, 0, MPFR_DEFAULT_RND);
|
||||||
if (endptr != NULL && endptr != entry.c_str())
|
if (endptr != NULL && endptr != entry.c_str())
|
||||||
{
|
{
|
||||||
// determine representation
|
// determine representation
|
||||||
|
|
|
@ -125,7 +125,7 @@ int rpn_next(branch& myobj)
|
||||||
}
|
}
|
||||||
|
|
||||||
// increment then test
|
// increment then test
|
||||||
mpfr_add_si(myobj.farg1->_value.mpfr, myobj.farg1->_value.mpfr, 1UL, MPFR_DEF_RND);
|
mpfr_add_si(myobj.farg1->_value.mpfr, myobj.farg1->_value.mpfr, 1UL, MPFR_DEFAULT_RND);
|
||||||
|
|
||||||
// for command: increment symbol too
|
// for command: increment symbol too
|
||||||
if (start_or_for->arg1 != -1)
|
if (start_or_for->arg1 != -1)
|
||||||
|
@ -181,7 +181,7 @@ int rpn_step(branch& myobj)
|
||||||
}
|
}
|
||||||
|
|
||||||
// increment then test
|
// increment then test
|
||||||
mpfr_add(myobj.farg1->_value.mpfr, myobj.farg1->_value.mpfr, step->_value.mpfr, MPFR_DEF_RND);
|
mpfr_add(myobj.farg1->_value.mpfr, myobj.farg1->_value.mpfr, step->_value.mpfr, MPFR_DEFAULT_RND);
|
||||||
|
|
||||||
// for command: increment symbol too
|
// for command: increment symbol too
|
||||||
if (start_or_for->arg1 != -1)
|
if (start_or_for->arg1 != -1)
|
||||||
|
|
|
@ -168,7 +168,7 @@ void round()
|
||||||
|
|
||||||
ostring* str = (ostring*)_stack->pop_back();
|
ostring* str = (ostring*)_stack->pop_back();
|
||||||
bool done = false;
|
bool done = false;
|
||||||
for(int rnd = (int)MPFR_DEF_RND; rnd <= (int)MPFR_RNDA; rnd++)
|
for(int rnd = (int)MPFR_DEFAULT_RND; rnd <= (int)MPFR_RNDA; rnd++)
|
||||||
{
|
{
|
||||||
if (string(s_mpfr_rnd_str[rnd]) == str->_value)
|
if (string(s_mpfr_rnd_str[rnd]) == str->_value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,11 +41,11 @@ extern "C" {
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
static string s_mpfr_printf_format = string(MPFR_FORMAT);
|
static string s_mpfr_printf_format = string(MPFR_DEFAULT_FORMAT);
|
||||||
static mpfr_prec_t s_mpfr_prec = MPFR_DEFAULT_PREC_BITS;
|
static mpfr_prec_t s_mpfr_prec = MPFR_DEFAULT_PREC_BITS;
|
||||||
static unsigned int s_mpfr_prec_bytes = MPFR_DEFAULT_STORING_LENGTH_BYTES;
|
static unsigned int s_mpfr_prec_bytes = MPFR_DEFAULT_STORING_LENGTH_BYTES;
|
||||||
|
|
||||||
static mpfr_rnd_t s_mpfr_rnd = MPFR_DEF_RND;
|
static mpfr_rnd_t s_mpfr_rnd = MPFR_DEFAULT_RND;
|
||||||
static const char* s_mpfr_rnd_str[5] = MPFR_RND_STRINGS;
|
static const char* s_mpfr_rnd_str[5] = MPFR_RND_STRINGS;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue