Hi Pedro,
Pedro Giffuni schrieb:
Hi Regina;
----- Messaggio originale -----
Da: Regina Henschel
A
Implementation of FDIST as defined in ODF1.2
The function FDIST (part 2, 6.18.22) calculates the left tail (integral from 0
to x). The function LEGACY.FDIST (part 2, 6.18.23) calculates the right tail
(integral from x to infinity). The current implemention of FDIST in AOO is
actually “LEGACY.FDIST”. The function FDIST in documents written with OOo2.x are
different from the function FDIST, which has to be implemented. I do not speak
of the UI names, but of the names in the file.
This sounds like FDIST = 1 - LEGACY.FDIST
It should be easy to "fix" and I think it should be done before 4.x.
No, that does not work. FDIST has a density and a cumulative kind, and
LEGACY.FDIST is only cumulative and -more important- calculating the
other tail of a distribution by "1-value" results in an accuracy disaster.
You have to calculate FDIST using the already existing Beta
-distribution. I have still the solutions, which I have considered, on
my PC, but the work is three years old. If you are interested, I can
sent you the files. I would have to work my way into it again.
The real problem is not the implementation of FDIST itself, but the
question whether we are now far away enough from ODF1.1 for an
incompatible change.
Remember, that ODF1.1 has no namespace for functions. When an
application only knowing ODF1.1 gets a file with function name "FDIST",
it cannot detect, that it is not the old right-tail version, but the new
left-tail version. The other way round an implementation in AOO has to
detect, that in an old document "FDIST" might be the right-tail version.
Current documents write the right-tail version already as LEGACY.FDIST
although the UI name is still FDIST. I would have to examine in
Bugzilla, when this has been introduced.
I have no solution for this problem.
BTW, I am considering doing something drastic there, like replacing all the
probablilty
distributions with with boost implementations. Would there be any good reason to
avoid such approach?
Such solution had been considered already, but at that time the BOOST
version, which was used in OOo, was too old. Now it might be possible,
but I cannot judge it and do not know how to do it actually. It is
surely nothing, that can be done till AOO4.0. You need someone to
implement it, preferably in a branch, and at least one other person with
knowledge in distributions to do QA. It should not be decided between
holidays, when a lot of persons are on vacation.
Kind regards
Regina