unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* Suggested fix in numbers.c
@ 2002-12-28 23:25 Roland Orre
  2003-01-16  1:43 ` Thien-Thi Nguyen
  0 siblings, 1 reply; 3+ messages in thread
From: Roland Orre @ 2002-12-28 23:25 UTC (permalink / raw)


Below is my standard fix to numbers.c since I started using guile 95.
It allows for instance, which is my most common use, to let the user set
the float format to the C format string "%g" etc, by setting the routine
scm_user_idbl2str to a user specifed one. This to avoid excess in
decimals, for instance when looking at single float vectors, where it's
annoying to inspect a value and see e.g.
 #s(0.00519724749028683 0.00519724749028683 0.0 0.0 0.0 ...
Of course, today, general float outputs can be nicely handled by
specific formats strings in the output generation, which is also thread
safe as different threads can have different desires, but for general
purpose interaction and prototyping I find this fix to be very useful.

	Best regards
	Roland Orre


in numbers.c
#ifdef USER_FLOAT_FORMAT
  size_t
  scm_idbl2str (double f, char *a);

  size_t (*scm_user_idbl2str)(double f,char *a);

  #define idbl2str(f,a) scm_user_idbl2str(f,a)

  size_t
  scm_idbl2str (double f, char *a)
#else
static size_t
idbl2str (double f, char *a)
#endif

and in the init routine to make the fix transparent when no user
modules are loaded.

void
scm_init_numbers ()
{
#ifdef USER_FLOAT_FORMAT
  scm_user_idbl2str=scm_idbl2str;
#endif




_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-01-24 22:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-12-28 23:25 Suggested fix in numbers.c Roland Orre
2003-01-16  1:43 ` Thien-Thi Nguyen
2003-01-24 22:13   ` Roland Orre

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).