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
