Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On Sun, Dec 02, 2012 at 11:47:01AM +0000, tino wrote:

... looking at random.cxx it appears to use a MD5 hash to generate the
random bytes; initialization is via seconds/nanoseconds of current time
and thread-id.  since the cryptographic hash implementations in sal/rtl
don't look heavily optimized this is likely not be the fastest way to
generate random numbers, if that is a concern...

Speed is not my concern here (I guess parsing a cell is of an order of
magnitude slower?).

Speed has to be nearly always a concern in calc core. We don't parse the
cell formula for each evaluation. We have an intermediate format that is
extremely fast to evaluate and we have to be very careful that we are
not introducing more performance regressions. For a single cell this
seems not important but on a sheet with thousand of depending cells it
is quite important that a function is not slower than necessary.

My problem is with statistical properties, and
until somebody knows exactly what random.cxx does, I'd advice
against using it. I'm also no expert and I may well be wrong but an
MD5 based random number generator sounds a bit like a home made
generator where we don't even know if it's truly uniform distributed.

Well in most cases the statistical properties of a random function will
not matter in Libreoffice. I agree that it is different in Calc and
seeing that the rand() function in Windows is suboptimal we should think
about a solution for Calc's RANDOM function.


We should not implement them in rtl/math.hxx until there are more users
than calc's interpreter that need it. Lets not overcomplicate this stuff
as long as it is not necessary.

What about implementation in random.cxx and creating random.hxx so all
the random stuff is in one place?

Why do you want this abstraction? Following KISS I would just start
implementing the functions in ScInterpreter and extract commonly used
parts into an own method. If at some point other parts of Libreoffice
also need random functions with known statistical properties we can
still extract them.

Regards,
Markus

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.