On 2006-02-20 10:10:02 +0100, Ralf Wildenhues wrote: > Good question. I'd say that depends on documentation: if the interface > was documented to either provide a certain PRNG, or weaker, if it was > documented to provide deterministic series, then that would likely > change the library interface. If OTOH it was explicitly documented to > have an unstable or non-deterministic algorithm, then it would not > necessarily be a change of interface: the user should not have relied on > it then. A more extreme case would be if the library documented to > optionally make use of a real (non-pseudo) RNG with the same interface.
I agree. The problem is that in the current version, this is not documented; worse, the PRNG of another library is used (more precisely, this is MPFR 2.2.0, which uses the PRNG of GMP -- however the user could guess that since MPFR is based on GMP, and more or less an extension of GMP). Since it is not documented, I can see 2 cases: 1. The user thinks that since nothing is specified, anything can happen. 2. The user thinks that results should be reproducible (he can check that with MPFR 2.2.0) and assumes that this is a feature that must be kept with new MPFR versions (compatible with the current interface). Also, if his program uses the PRNG of GMP, he should get the same results (i.e. the MPFR version shouldn't affect his direct calls to the GMP random functions). Considering that the interface is different would be safer if there are users of case 2. More generally, I assume that a library that uses a PRNG of some external library (e.g. glibc with rand() or another library if a global state is used) must document it, since this can affect the calling program if this program uses the same PRNG. Regards, -- Vincent Lefèvre <[EMAIL PROTECTED]> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / SPACES project at LORIA _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool