Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Constructors & decorations



Dan & P1788

On 23 Feb 2010, at 12:17, Dan Zuras Intervals wrote:
> John Pryce had written:
>> I believe not. I think the intention of Motion 8 is that once
>> an interval is set notValid, _all_ its other attributes become
>> meaningless. It has fallen into a black hole. So a V- interval
>> is essentially the same as NaI. It follows that all query-functions
>> on it should give results of maximum meaninglessness:
>> - Its other decorations should be D0 C0 B0.
>> - Its lower & upper bounds, midpoint, radius etc., should all return NaN.
> 
> 	So it seems that you are reserving the interpretation
> 	of 'Valid' things to those things which are imported
> 	into intervals from other arithmetics.  Constructors,
> 	converters, & the like.

Yes.

> 	Does that not seem like a particularly narrow use for
> 	a decoration?  Would not 'Defined' do as well?

The Motion 8.02 document says on p3:
> -- inv is the decoration of an interval created by an invalid
> conversion
> ...
> we may have ...
> (X,ok) \union (Empty,inv) = (X,inv)
> as an unambiguous version of X \union NaI = NaI.

This seems to me to agree with my interpretation.

'Defined' has a quite different and specific purpose, to do with the applicability of fixed-point theorems.

> ...	I say this because decoration bits might end up being
> 	expensive things some day.  If we are successful &
> 	intervals find their way into hardware, decoration bits
> 	will become state bits.  They will have interlocks &
> 	busses devoted to them.  They will be saved on context
> 	switch.  They will become involved in issues of
> 	parallelism & cache coherency.  We should make sure
> 	they are useful.

I am not a hardware guy so maybe I have the wrong end of the stick. But didn't Nate argue for decorations, in contrast to global flags, precisely on the grounds that
- they are fast because they are attached to the individual data item, hence
- they don't need to be in state bits
- they don't need interlocks or busses
- they are NOT part of a context switch
- they don't affect parallelism & cache coherency more than any other kind of data

Regards

John