RE: [office-comment] OpenFormula: Excel FLOOR Function

From
Dennis E. Hamilton <>
Date
2008-06-13T19:06:34+00:00
ID
DF2B9E5DD82C43D2AC23191D9ABCFEFC@Scampo
Thread
RE: [office-comment] OpenFormula: Excel FLOOR Function
David,

After I had ruminated a few hours on my remark, it occured to me that, as
useful as that identity is (and how thinking about it had me want a DELTA(x)
function too so I could easily tell when a number is too large to precisely
represent exact integers, among other things), it is definitely not useful
in an interchange situation, as you wisely point out.

In fact, a translation from OpenFormula that substituted -CEILING(-x) for
FLOOR(x) in going to OOXML (assuming there's really no FLOOR there) would
commit the venial sin of not preserving a formula as written as closely as
possible.  And of course, if that formula came back into OpenFormula, it is
not OK to translate -CEILING(-x) to FLOOR(x), for the same reason.  

This did leave me wondering about the general problem of round-tripping in
these cases, and how having formulas crammed into attribute values makes it
hard to provide mark-up that has a round-trip-supporting preservation
function (sort of like alternate renditions), along with a related problem,
disambiguating user-defined functions.

So, I agree with you, although it seemed to trigger some fruitful puzzling
on my part!

 - Dennis

PS: The nice thing about FLOOR(x) = -CEILING(-x) is that it is surely an
impeccable substitution, whereas computation of TAN(x) as SIN(x)/COS(x) has
a number of liabilities, though not so bad as power(x, n) = EXP(n*LOG(x)).
And I take your point.

-----Original Message-----
http://lists.oasis-open.org/archives/office-comment/200806/msg00041.html
From: David A. Wheeler [mailto:] 
Sent: Friday, June 13, 2008 09:07
To: 
Cc: 
Subject: Re: [office-comment] OpenFormula: Excel FLOOR Function

Dennis E. Hamilton:
> FLOOR(x) = -CEILING(-x)

True. What I _meant_ was that there was no built-in operation
to do the mathematical FLOOR operation. After all,

TAN(x) = SIN(x)/COS(x)

But people would rightly object if we only had SIN and COS.

We should try to make it _easy_ for users to express
common cases, using the functions they prefer to use.

--- David A. Wheeler

[ ... ]