[m-dev.] Tabling methods

Fergus Henderson fjh at cs.mu.OZ.AU
Mon Mar 16 21:48:28 AEDT 1998


On 16-Mar-1998, Oliver Hutchison <ohutch at students.cs.mu.oz.au> wrote:
> On Fri, 13 Mar 1998, Fergus Henderson wrote:
> > Actually, come to think of it, it would probably be better to make
> > `memo' imply loop checking by default; that is, to spell
> > the second one `memo' and the third `memo_without_loop_check'.
> > We don't want to encourage people to use the
> > slightly-more-efficient-but-less-safe method by default,
> > and that is what they will do if it is fewer characters to type.
> > The default should be slightly-less-efficient-but-safe, and the
> > slightly-more-efficient-but-less-safe method should be used
> > only if you're really trying to squeeze out that last drop of
> > performance.
> > 
> 
> Ok. We have :
> 	`loop_check'
> 	`memo'
> 	`memo_without_loop_check'
> 	`minimal_model'
> 
> I will go and do it. But should I disable the loop check in the
> `memo_without_loop_check' case if there is no speed penalty?

No.

But I suppose that means the name is pretty misleading.
Off-hand I can't think of any great alternatives
(`fast_memo' sprang to mind, but that's equally misleading.)

> The only case
> where I can see a way of gaining a recordable speed bonus is model_det
> with one output argument and one or two builtin type input arguments, even
> then I suspect any gain would be marginal. All we are saving is one 1 word
> heap allocation and one test for the first call to the subgoal and then
> one de-reference for each subsequent call to the subgoal.
> 
> I really favour loosing the `memo_without_loop_check' case.

OK, you've convinced me.

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3        |     -- the last words of T. S. Garp.



More information about the developers mailing list