Mike,
You're right to point out that there operations like derivative are not
really applicable to every behavior, even of differentiable type.
Though desirable, it's not possible to capture all domain restrictions
purely via the type system. In general, it's probably not possible
even to detect these out-of-domain cases, even at run time.
Explicit functions of continuous time often, however, do allow much
more analyzability w.r.t. error bounds for functions like derivative
and integral.
As for determining zeros of functions, interval and affine analysis are
techniques that have been applied successfully. Again, there are
limits to generality.
Sorry for the terse reply. Off to San Diego...
- Conal
----------
| From: Mike Wray <[email protected]>
| To: <[email protected]>
| Cc: Todd Knoblock
| Subject: Some ActiveVRML patholoies
| Date: Monday, December 11, 1995 2:22PM
|
| The ActiveVRML definition allows functions of time to be defined,
| but it is silent about how these functions are sampled.
| The following gives some examples of the possible pathology.
|
| [ Syntactic note: I've used `predicate' to make a boolean
| into an event, as described on p. 16 of the ess. manual.
| The Microsoft examples don't bother with this however. ]
|
| Never mind Newton-Raphson, we can use ActiveVRML to find roots!
| Given an arbitrary function f find t such that f(t)=0 and apply g to it:
|
| root(f,g) = snapshot(time, predicate( f(time) = 0)) => g ;
|
| Derivative of a non-differentiable function:
|
| jump = 0 until predicate(time=1) => 1;
| something = derivative(jump);
|
| Infinitely fast oscillator (nowhere differentiable):
|
| osc = 0 until predicate(true) => 1 until predicate(true) => osc;
| something = derivative(osc);
|
| What do the ActiveVRML team have to say about time sampling?
| Are integrals and derviatives determined numerically (if so how),
| or analytically? How do you handle non-differentiability?
|
| The Microsoft ActiveVRML examples don't stick exactly to the
| syntax in the Reference manual. Is this just version trouble?
|
| Mike Wray ([email protected])
|