12 #define DEFAULT_FORMAT "=> %.6g\n"
14 #define DEFAULT_MINFORM "%.6g"
15 char *_minform
= NULL
;
19 #define DEFAULT_PROMPT "=> "
24 void set_precision (int precision
)
26 _precision
= precision
;
34 void set_prompt (char *prompt
)
39 _prompt
= strdup (prompt
);
44 char buffer
[128] = {0};
45 sprintf (buffer
, "%s%%.%dg\n", _prompt
? _prompt
: DEFAULT_PROMPT
, _precision
);
49 _format
= strdup (buffer
);
50 sprintf (buffer
, "%%.%dg", _precision
);
54 _minform
= strdup (buffer
);
73 void set_base (int in
, int out
)
81 static char str
[16] = {0};
82 sprintf (str
, "%d/%d", _ibase
, _obase
);
91 /* multi base integer to ascii function */
93 char *mbitoa (unsigned long value
)
95 static char str
[8 * sizeof (long) + 1];
98 char buffer
[8 * sizeof (long) + 1] = {0};
101 char x
= value
% _obase
;
102 buffer
[size
++] = (x
> 9) ? 'a' + x
- 10 : '0' + x
;
104 } while (value
!= 0);
108 for (i
= 0; i
< size
; i
++) {
109 str
[i
] = buffer
[size
- i
- 1];
116 double print (double value
)
119 printf (_format
? _format
: DEFAULT_FORMAT
, value
);
121 printf ("%s%s\n", (_prompt
) ? _prompt
: DEFAULT_PROMPT
, mbitoa ((unsigned int)value
));
126 double printl (double value
)
129 printf (_minform
? _minform
: DEFAULT_MINFORM
, value
);
131 printf ("%s", mbitoa ((unsigned int)value
));
136 /* vim: set ts=4 sw=4 et: */