Well well, I didn't know that.

It must have been after my time. When the York office was
experimenting with J for the engine: that I knew.


On Tue, Feb 22, 2011 at 11:22 PM, Henry Rich <[email protected]> wrote:
> There was an Adaytum Software that had as its CTO one Eric Iverson...
>
> Henry Rich
>
> On 2/22/2011 6:16 PM, Ian Clark wrote:
>> This problem has an intriguing history, even if we restrict it to the
>> task of inverting an Excel formula...
>>
>> Mathematicians will say (without putting their brains in gear) that an
>> expression defines a function, and that there's a vast literature on
>> inverses. Ergo, problem solved. (Mostly). Alas no one in Microsoft has
>> applied the available theory systematically to inverting formulas.
>> Although there is a function in trend analysis called hill-climbing.
>>
>> A planner in IBM Cosham called George Kunzle invented an Excel-like
>> grid which would actually invert any formula you could type into it.
>> Some of these formulae actually used IF/THEN/ELSE! Thus, you could
>> overtype the "formula cell" with a different value, and the inputs
>> would be adjusted to compute this value, instead of losing the
>> formula, which is what happens in today's Excel.
>>
>> Yes, the backfit wasn't always unique. But the package offered a
>> single solution, calculated on a "rational basis". In practice this
>> solves most requirements you'd care to place on it, which blows some
>> mathematicians' eyebrows off, who claim it isn't (generally) possible.
>>
>> The result was marketed as Adaytum Planning (AP) which swiftly became
>> popular in planning circles. The algorithm used to "invert" any
>> formula was called "break-back" and was proprietary. You could
>> implement a 10% cut across an enterprise by typing a 90% value into
>> the bottom right hand corner of an immensely complex balance sheet
>> and: hey presto: the cut broken down to fine detail. Since many
>> companies wanted to do just that, the recession benefitted Adaytum
>> just like a plague benefits an undertaker, and its value soared.
>>
>> Adaytum was eventually bought by Cognos Corp, with about 700% gain to
>> its (private) shareholders. However far more would have been made had
>> the company gone public, as it was all set to when the Internet Bubble
>> burst in 2000.
>>
>> Cognos has since been bought by IBM, which has thus re-purchased its
>> old (banished) Cinderella.
>>
>> I worked on the break-back algorithm (which was pretty klunky and
>> ad-hoc!), and offered Adaytum an alternative which I considered more
>> analytically rational (though not fully worked out theoretically).
>> Since this algorithm is my own I haven't seen any reason not to
>> popularise it, which I have done in TABULA:
>>     http://www.jsoftware.com/jwiki/IanClark/TABULA
>>
>> (There are still outstanding problems of a theoretical nature, I ought
>> to admit, so until I've solved them I'm not pushing it overmuch.)
>>
>> My method used Newton-Raphson, which is a bit of a cheat. However the
>> Kunzle algorithm precisely inverts each operator offered to the user
>> to compose a formula, and so corresponds more closely to algorithm
>> inversion as you postulate. It can do some pretty smart things,
>> including breaking-back multiple simultaneous changes.
>>
>> Many J primitives have "inverses" and these would seem to me a good
>> basis for re-implementing (rediscovering?) Kunzle's invention. I've
>> not had time to look closely into that, however.
>>
>> The story continues...
>>
>>
>>
>> On Mon, Feb 21, 2011 at 6:16 AM, Steven Taylor<[email protected]>  wrote:
>>> Hi,
>>>
>>> Just sharing a thought.
>>>
>>> I was flicking through this old text book "The Science Of Programming" by
>>> David Gries (1981), while thinking that it was one of the few I remembered
>>> -- it made an impression on me.
>>>
>>> Here's a quote: "Wouldn't it be nice to be able to run a program backwards
>>> or, better yet, to derive from one program P a second program P-1 that
>>> computes the inverse of P? That means that running followed by P-1 would be
>>> the same as not running any program at all! Also, if we had the result of
>>> executing P, but had lost the input, we could execute P-1 to determine that
>>> input. "
>>>
>>> -Steven
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to