On 4 October 2017 at 20:44, oldk1331 <[email protected]> wrote: > On Thu, Oct 5, 2017 at 8:32 AM, Bill Page <[email protected]> wrote: >> On 4 October 2017 at 19:38, oldk1331 <[email protected]> wrote: >>> Waldek, Bill, yes, for correctness we need to distinguish >>> the inner domain and outer domain, and it's easy to >>> have a GENSYM() for each Maybe domain. >>> >>> But that will hurt performance. >>> >> >> Why will this hurt performance? > > Instead of a direct reference to a global symbol, it will > perform a look up (QREFELT $ 7). >
How does this compare to the cost of testing case "failed" in the old Union(R,"failed") representation? >>> I think current situation is a good compromise. We can >>> say in documentation that all instances of Maybe share >>> a common value of failed(), and nested usage of Maybe >>> is not recommended, Maybe should not be used as Rep >>> itself but can be part of Rep. Do you agree? >>> >> >> I value correctness much more than performance except in the most >> extreme and special cases. > > I would say Maybe is a special case, there are over 3700 occurrence > of "failed" alone in *.spad. > The number of occurrences is mostly irrelevant. The issue is how many times is this lookup performed in a given given benchmark situation. I would grant that the number of times is probably quite high in certain types of computation. But would the new representation really be slower than the old one? -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.
