You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

EVALUATE# returns a TeLiTab containing a subset (derived) of two Telitab sets normalised on the axis distribution of first Telitab

Syntax

EVALUATE#(Mode%, Telitab1$, Telitab2$, InpVar1$[:Label1$], ..., InpVarn$[:Labeln$])

Arguments

  • Mode% controls the interpolation method by which to normalise data from Telitab2$ according to the distribution ofInpVar1$ in Telitab1$
  1. Mode% = 1 -> discrete interpolation
  2. Mode% = 2 -> linear interpolation
  3. Mode% = 3 -> double quadratic interpolation
  4. Mode% = 4 -> spline interpolation
  5. Mode% = 5 -> least square approximation
  • Telitab1$ is a string expression containing/returning the first Telitab set
  • Telitab2$ is a string expression containing/returning the second Telitab set
  • InpVar1$ is the name of the axis parameter for which to normalise data in Telitab2$, or an expression on the basis of parameters present in the sets, e.g. "Rtot*Vs".
  • If an expression is provided, a parameter Label1$ should be provided, eg. "Rtot*Vs":"PE".
    So, InpVar1$/Label1$ will be the first parameter in the returned Telitab result. Got to QuaestorSyntax why you have to place parameters between quotes or not.
  • InpVar2$[:Label2$] is the name of the first (normalised) parameter or expression:Label. If InpVar2$ is present in both Telitab1$ and Telitab2$, the values from Telitab1$ are preferred. If you want to use the same parameter (e.g. "Power") from Telitab1$ and Telitab2$ for computing e.g. the difference and name that e.g. "Dpow", you can realise that by placing an underscore _ before the parameter by which you address the parameter in Telitab2$, so like this: "Power-_Power":"Dpow"
  • InpVar1$ to InpVarn$[:Labeln$] will be included in the resulting Telitab set. 

Remarks

  1. The EVALUATE# function can be used to carry out operations on one or two TeLiTab sets.
  2. If you use parameters of which the values are not given in either one of the input TeLiTab sets, the system will search their value in the current case of the solution. If not available, '-999999' will be returned in the returned TeLiTab set.
  3. Telitab2$ may be empty ("NullString"). In that case, the data in Telitab1$ is used in the evaluation and creation of the result TeLiTab set.
  4. It is not allowed within a single EVALUATE#() function to add new parameters and use them immediately in an expression within the same call. If you want to do so, it can be done by nesting EVALUATE#() functions.
  5. You are allowed to use standard functions of Quaestor as well as defined parameters available in the solution.
  6. You are not allowed to provide ranges to other than the first InpVar$:Label$ combination in the EVALUATE#() expression.
  7. If an argument in the EVALUATE# function is between (), its value is used in the evaluation but not included in its resulting TeLiTab set.

Examples

Example 1

The expression

EVALUATE#(3, TEXTITEM$(1), TEXTITEM$(2), "V", "P-_P":"DeltaP")

containining the following data in its data slot:

 

 

returns:

Example 2

Let Telitab1$ contain the dataset:

and Telitab2$ contain the dataset:

 

RTot in kN, V in knots.

We can compare these two speed/resistance curves on the basis of speed in m/s as follows:

EVALUATE#(3, Telitab1$, Telitab2$, "V*0.51444":"Vs", "RTot/_RTot":"ResRatio", "RTot*V*0.51444":"PE1", "_RTot*V*0.51444":"PE2")

returns (values rounded):

Example 3

Create a dataset on an equidistant axis "V" on the basis of an axis definition in Teltab1$ and a non-equidistant set V-RTot in Telitab2$.

Let Telitab1$ contain:

Let Telitab2$ contain:

The expression:

EVALUATE#(3, Telitab1$, Telitab2$, "V", "RTot")

returns (values rounded):

Example 4

If Telitab1$="NullString" (and if Telitab2$="NullString" as in this example), you can pass table information in the firstInpVar$:Label$ combination, e.g.:

EVALUATE#(3,"NullString", "NullString", "2(1)6":"X", "X^2":"Y")

returns:

This construction allows you to provide the equidistant range of a table to be normalised as in example 5.

 

Example 5

If Telitab1$="NullString" and if Telitab2$ contains a table to be normalised:

you can pass table information in the first InpVar$:Label$ combination, e.g.:

EVALUATE#(3, "NullString", Telitab2$, "12(1)22":"V", "RTot")

returns (values rounded):

Example 6

If an argument in the EVALUATE# function is between (), its value is used in the evaluation but not included in its resultingTeLiTab set.

In the example below, EVALUATE# is used to generate a table containing R, v1, v2, v3, v4, DIAM en MCAM based on GEOTABLE$ and an additional operations on content in GEOTABLE$ using the DQUAD function and the parameters DIAM, MCAM and CMAXTDIST#. However, in the result we do not want to have the values of CMAXTDIST#.

We can achieve this without, for instance, having to filter out this data using the UNFOLD# function by writing the expression as follows:

EVALUATE#(2, GEOMTABLE$, "Nullstring", "R", "v1":"v1" ,"v2":"v2" ,"v3":"v3", "DQUAD(CMAXTDIST#,2,'RADIUS','Yradius',R/(0.5*DIAM),1)":"v4", DIAM, MCAM, (CMAXTDIST#))

  • No labels