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

Re: Revised version of Level 1 text (draft)



John Pryce wrote:
Nate

Checking your quadratic convolution kernel example as best I can, I agree
that with xx=[1/5,1] you get h(xx) = ([-1/4,7/8],D3). The given h(x) has
continuous first derivative on the whole line, so D3 is telling the truth.

But suppose thanks to a typo, my h(x) is discontinuous: say, I mistakenly
write 9/4 for 9/8 in the formula. I STILL get decoration D3 on the answer
don't I? What is your D3 telling us? Or is the onus entirely on the
programmer to get the code right?

I've pondered that as well. These are my thoughts:

Two facts to keep in mind: a) the function h is piecewise-defined and b)
C(f,X) only tells us the truth (by definition) about the restriction of f to
X over those pieces. So careful scrutiny to the definitions I believe shows
that decoration D3 is still the truth. In other words, no claim is being
made by the decoration about the global continuity of h.

It might be nice if IEEE 1788 could act as a "math spell-checker" and make
stronger claims about the global continuity of h, but I'm not sure from an
implementability point of view that would be very realistic. So for better
or worse, if such global information is important to the programmer, I think
the onus is on him/her.




Another Q: does, say, [1,2]*Empty, when done with decorated intervals, get
decoration D3 or D4?

Lest I be ambiguous, let me give a careful response.

I'd suggest the decoration S(*,[1,2],Empty) of the multiplication operation
would get decoration D4, since the input to this (current) operation is
empty.

However, by "Theorem 1", the final decoration is actually the infimum (by
linear quality order) of a) the decoration S(*,[1,2],Empty) of the
multiplication operation and b) the decorations of the two operands.

So if we assume the bare intervals [1,2] and Empty are promoted to decorated
intervals ([1,2],D3) and (Empty,D4), respectively, then we would have:
   [1,2]*Empty
       =([1,2],D3)*(Empty,D4)    // promote bare intervals to decorated
intervals
       =([1,2]*Empty,inf(S(*,[1,2],Empty),D3,D4))
       =([1,2]*Empty,inf(D4,D3,D4))
       =([1,2]*Empty,D3)
       =(Empty,D3)
The meaning of this result could be interpreted according to the definitions
as: "[1,2]*Empty=(Empty,D3) is defined and continuous on an empty input
domain (because the bare interval portion of the result was empty), and the
empty input domian was the cartesian product of at least one independent
variable that was empty and at least one independent variable that was
nonempty".

Note that Empty*Empty would have instead given the result:
   Empty*Empty
       =(Empty,D4)*(Empty,D4)    // promote bare intervals to decorated
intervals
       =(Empty*Empty,inf(S(*,Empty,Empty),D4,D4))
       =(Empty*Empty,inf(D4,D4,D4))
       =(Empty*Empty,D4)
       =(Empty,D4)
The meaning of which could be interpreted as: "Empty*Empty=(Empty,D4) is
defined and continuous on an entirely empty input, i.e., all independent
variables were empty."

This would be in further contrast to an operation like:
   sqrt([-2,-1])=(Empty,D0)
which is simply "sqrt([-2,-1]) is everywhere undefined"; or
   sqrt([-2,-1])*Empty
       =(Empty,D0)*Empty
       =(Empty,D0)*(Empty,D4)    // promote bare Empty
       =(Empty*Empty,inf(S(*,Empty,Empty),D0,D4))
       =(Empty*Empty,inf(D4,D0,D4))
       =(Empty*Empty,D0)
       =(Empty,D0)
which is also simply "everywhere undefined".

I know this is different than FTDIA as presented in v3.01. But that does not
make me believe FTDIA as a concept is invalid; rather, my guess is that with
appropriate changes to the definitions, it could probably be shown there is
a new flavor or variant of FTDIA that remains valid.

That may or may not be an easy task. But if we can accomplish it, I believe
it would be a success for P1788, since we would then have all at the same
time a coherent mathematical theory that can also be realistically
implemented efficiently at the hardware level.

Nate



John

On 10 May 2011, at 06:58, Nate Hayes wrote:
In signal processing, a quadratic convolution kernel has the piecewise
definition:

  h(x) =    3/4-x^2           if |x| <= 1/2
              1/2*x^2-3/2*|x|+9/8         if 1/2 < |x| < 3/2
              0             otherwise

A valid interval extension h(xx) of h(x) is:

  h(xx) = u(xx) union v(xx) union w(xx)

where

  u(xx) = 3/4-(|xx| intersect [0,1/2])^2
  v(xx) = 1/2*(|xx| intersect [1/2,3/2])^2-3/2*(|xx| intersect
[1/2,3/2])+9/8
  w(xx) = 0*(|xx| intersect [3/2,Inf])

By the new definitions and appropriate application of "Theorem 1" and
"Theorem 8" in my Nov. 14 paper, if xx=[1/5,1] then

  u(xx) = ([1/2,3/4],D3)
  v(xx) = ([-1/4,7/8],D3)
  w(xx) = (Empty,D3)

and then likewise by "Theorem 8"

  h(xx) = ([-1/4,7/8],D3).