Re: Motion 42 (not 41): Decoration system, revised text
Nate, John
I wanted to come to a common agreement how to choose decorations on
intersect and convexhull, in order to be able to propagate decoratoins
for piecewise defined functions.
The recommendation, however, was faulty.
Let me try again.
(rule 1)
dec (a_da intersect b_db) = if (a disjoint b) then emp else min(da,db)
(rule 2)
dec (a_da convex_hull b_db) = if (a empty or b empty) then max(da,db)
else min(da,db)
Am 23.12.2012 15:15, schrieb Nathan T. Hayes:
John, Jurgen,
The idea to decorate intersection with max(dx,dy) and convexHull with
min(dx,dy) doesn't make any sense to me. Where does this idea come from, and
why would someone want to do this?
For example, if these *new* rules are applied to Example 2 in section
8.8.8 for
X=[-1,1],dx) it gives:
U = f1(intersect([-1,1],[-oo,-2]))
= f1((Empty,emp)) // check wording in section 8.8.4
= (Empty,emp)
V = (f2([-1,1]),dx)
W = f1(intersect([-1,1],[2,+oo]))
= (Empty,emp)
Despite the contradictory intermediate results, taking convexHull of U, V
and W and propagating the min decoration yields a nonempty interval with the
emp decoration:
(f1([-1,1]),emp)
This doesn't seem at all useful or correct to me. What am I missing?
that was my fault
see example 2 again with X=[0,4]
U = f1(intersect([0,4],[-oo,-2]))
= f1((Empty,emp)) // check wording in section 8.8.4
= (Empty,emp)
V = (f2([0,2]),dx)
=([-2,0], dx)
W = f1(intersect([0,4],[2,+oo]))
= f1([2,4],dx)
= sqrt([0,12],dx)
= ([0,sqrt(12)],dx)
The text of decoration systems has changed n the mean time due to former
discussions.
my comment are in angle brackets
An implementation may provide other versions of the operations that
compute a bare interval
result as above, and add a decoration suited to a particular
application. How this is done is
language- or implementation-defined.
In particular, to simplify defining functions piecewise, an
implementation may define:
intersectionDec(xdx, ydy) is as intersection(xdx, ydy), except that it
decorates the result with min(dx, dy).
<<<<<<<<<<<<
this produces Empty_dac, unless one specfies that use of newDec is
mandatory. IMO rule 1 is easier.
>>>>>>>>>
convexHullDec(xdx, ydy) is as convexHull(xdx, ydy), except that it decorates
the result with the tightest (in the containment order (16)) decoration
that contains both dx and dy.
<<<<<<<<<<<
do we need the contanment order for propagation ?
>>>>>>>>>>>>
A language may make these operations its default operations for
intersection and convexHull. If
it does so, its documentation shall provide a warning that misuse might
lead to violation of the
FTDIA.
Juergen
--
o Prof. Dr. Juergen Wolff von Gudenberg, Lehrstuhl fuer
Informatik II
/ \ Universitaet Wuerzburg, Am Hubland, D-97074 Wuerzburg
InfoII o Tel.: +49 931 / 31 86602
/ \ Uni E-Mail: wolff@xxxxxxxxxxxxxxxxxxxxxxxxxxx
o o Wuerzburg