RE: Re: Discrete interpolation attribute (was New version of DAVEfunc DTD 1.9b3)
The discrete option, as we originally intended it, was a nearest grid-point
option. The relevant code snippet from the Janus interpreter:
* allow for order 0 linear interpolation, i.e. take nearest discrete
* value on the grid.
*/
if ( 0 == functionIndependentVariableOrder_[ index ][ i ] ) {
if ( 0.5 >= frac[ i ] ) {
frac[ i ] = 0.0;
} else {
frac[ i ] = 1.0;
}
}
We only use discrete where the inputs are meant to be one of the breakpoints.
The "nearest" interpretation ensures we get the right answer if there is some
issue with a data precision-related error (though we would normally use integer
inputs anyway). However, I can also see the utility of a "threshhold" approach
as you have described (eg, ISA properties as a function of pressure altitude).
You could always shift the breakpoints to achieve the same thing, or use
MathML. I agree it needs to be clearly documented.
Regards, Rob
Rob Curtin
Ball Solutions Group
on contract to Air Vehicles Division,
Defence Science & Technology Organisation
Tel: +61 (0)3 9626 7730
Fax: +61 (0)3 9626 7705
[EMAIL PROTECTED]
-Original Message-
From: Giovanni A. Cignoni [mailto:[EMAIL PROTECTED]
Sent: Tuesday, 19 June 2007 10:17 PM
To: [email protected]
Subject: Re: Re: Discrete interpolation attribute (was New version of DAVEfunc
DTD 1.9b3)
> so the independent values state where the function changes value.
>
> Nearest-neighbor would put the transitions exactly between the
> independent break points.
So at the end is just truncation vs approximation, but being in sync with names
is anyway important :)
Ciao,
Giovanni.
IMPORTANT: This email remains the property of the Australian Defence
Organisation and is subject to the jurisdiction of section 70 of the CRIMES ACT
1914. If you have received this email in error, you are requested to contact
the sender and delete the email.
RE: Discrete interpolation attribute (was New version of DAVEfunc DTD 1.9b3)
I also agree that this is a good question. There are times when interrogating data where it is necessary to return either a truncated value, as you describe Bruce, or the nearest neighbour. Thus a single 'discrete' attribute may not have been the best suggestion. This is something we had overlooked in suggesting such an attribute. At the risk of fattening the dtd with unnecessary options, having attributes for both these cases would be useful. At present, the data tables I am currently using the 'discrete' attribute for are more akin to nearest-neighbour. Regards Geoff -Original Message- From: Bruce Jackson [mailto:[EMAIL PROTECTED] Sent: Tuesday, 19 June 2007 3:40 AM To: Giovanni A. Cignoni Cc: [email protected] Subject: Re: Discrete interpolation attribute (was New version of DAVEfunc DTD 1.9b3) On Jun 18, 2007, at 1:28 PM, Giovanni A. Cignoni wrote: >> The main change to the DTD is addition of 'discrete' as a supported >> interpolation method for tabular data, yielding a stair- step >> response from such a function. This came from a suggestion from >> Geoff Brian of Australia's DSTO. > > "Discrete" interpolation is the method also known as "nearest > neighbor"? > Being x in [a, b], f(x) is f(a) or f(b) depending on x being nearer to > a or b. Correct? > > Thanks in advance, ciao, > Giovanni Cignoni. > This is a good question, Giovanni. I see that we need to be much more rigorous in our definition of 'discrete' as it applies to these tables. I had assumed the interpretation would be as follows (I don't think this is 'nearest-neighbor')... In the case of a one-dimensional function, if the independentVarPts are defined as [a, b, c, d] and an arbitrary griddedTable points are defined as [8.5, 9.0, 9.5, 10.0] the function f(x) would be evaluated as shown below: f(x) ^ | 10.0 - |o || || 9.5 - | o--o | | | | 9.0 - | o--o | | | | 8.5 - | o--o | |--> X | | | | a b c d so the independent values state where the function changes value. Nearest-neighbor would put the transitions exactly between the independent break points. I'd appreciate any feedback on this topic, especially from Geoff Brian who is apparently making use of this 'extension' to DAVE-ML. -- Bruce IMPORTANT: This email remains the property of the Australian Defence Organisation and is subject to the jurisdiction of section 70 of the CRIMES ACT 1914. If you have received this email in error, you are requested to contact the sender and delete the email.
Re: Re: Discrete interpolation attribute (was New version of DAVEfunc DTD 1.9b3)
so the independent values state where the function changes value. Nearest-neighbor would put the transitions exactly between the independent break points. So at the end is just truncation vs approximation, but being in sync with names is anyway important :) Ciao, Giovanni.
Re: Discrete interpolation attribute (was New version of DAVEfunc DTD 1.9b3)
On Jun 18, 2007, at 1:28 PM, Giovanni A. Cignoni wrote: The main change to the DTD is addition of 'discrete' as a supported interpolation method for tabular data, yielding a stair- step response from such a function. This came from a suggestion from Geoff Brian of Australia's DSTO. "Discrete" interpolation is the method also known as "nearest neighbor"? Being x in [a, b], f(x) is f(a) or f(b) depending on x being nearer to a or b. Correct? Thanks in advance, ciao, Giovanni Cignoni. This is a good question, Giovanni. I see that we need to be much more rigorous in our definition of 'discrete' as it applies to these tables. I had assumed the interpretation would be as follows (I don't think this is 'nearest-neighbor')... In the case of a one-dimensional function, if the independentVarPts are defined as [a, b, c, d] and an arbitrary griddedTable points are defined as [8.5, 9.0, 9.5, 10.0] the function f(x) would be evaluated as shown below: f(x) ^ | 10.0 - |o || || 9.5 - | o--o | | | | 9.0 - | o--o | | | | 8.5 - | o--o | |--> X | | | | a b c d so the independent values state where the function changes value. Nearest-neighbor would put the transitions exactly between the independent break points. I'd appreciate any feedback on this topic, especially from Geoff Brian who is apparently making use of this 'extension' to DAVE-ML. -- Bruce
