::tclinterp::interpolation¶
Commands¶
cubicSpline1d¶
Performs piecewise cubic spline interpolation.
cubicSpline1d -t values -y values -ti values ?-ibcbeg condition? ?-ibcend condition? ?-ybcbeg value? ?-ybcend value? ?-deriv? ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-deriv:Include first and second derivatives in the result dictionary.
-ibcbeg condition:Left boundary condition: quad, der1, der2, or notaknot; defaults to quad. Alias: -begflag.
-ibcend condition:Right boundary condition: quad, der1, der2, or notaknot; defaults to quad. Alias: -endflag.
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yiand, only with -deriv,yder1,yder2.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-t values:Strictly increasing sample positions; at least two values. Alias: -x.
-ti values:Evaluation positions; must not be empty. Alias: -xi.
-y values:Sample values; must have the same length as -t.
-ybcbeg value:Prescribed left endpoint derivative for der1 or der2; defaults to 0.0.
-ybcend value:Prescribed right endpoint derivative for der1 or der2; defaults to 0.0.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
The boundary condition quad makes the first or last interval quadratic. The conditions der1 and der2
prescribe the first or second endpoint derivative using -ybcbeg or -ybcend, respectively for the left or
right endpoint. The condition notaknot makes the third derivative continuous at the first or last
interior knot and requires at least four samples.
Return value
The interpolated values yi. With -deriv, returns a dictionary with yi, first derivatives
yder1, and second derivatives yder2. Each numeric array is a Tcl list with list output or an RBC vector name
with -output vector.
divDif1d¶
Performs divided-difference polynomial interpolation.
divDif1d -x values -y values -xi values ?-coeffs? ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-coeffs:Include the divided-difference coefficient array in the result dictionary.
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yiand, only with -coeffs,coeffs.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-x values:Distinct sample positions; at least one value.
-xi values:Evaluation positions; must not be empty.
-y values:Sample values; must have the same length as -x.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
The interpolated values yi. With -coeffs, returns a dictionary with yi and coeffs arrays.
Each numeric array is a Tcl list with list output or an RBC vector name with -output vector.
hermiteSpline1d¶
Performs cubic Hermite spline interpolation.
hermiteSpline1d -t values -y values -yp values -ti values ?-deriv? ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-deriv:Include first derivatives in the result dictionary.
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yiand, only with -deriv,yder1.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-t values:Strictly increasing sample positions; at least two values. Alias: -x.
-ti values:Evaluation positions; must not be empty. Alias: -xi.
-y values:Sample values; must have the same length as -t.
-yp values:First derivatives at the sample positions; same length as -t.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
The interpolated values yi. With -deriv, returns a dictionary with yi and first derivatives
yder1. Each numeric array is a Tcl list with list output or an RBC vector name with -output vector.
lagr1d¶
Performs Lagrange polynomial one-dimensional interpolation.
lagr1d -x values -y values -xi values ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yi.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-x values:Distinct sample positions; at least one value.
-xi values:Evaluation positions; must not be empty.
-y values:Sample values; must have the same length as -x.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
The interpolated values yi, as a Tcl list with list output or an RBC vector name with -output
vector.
least1d¶
Fits a least-squares polynomial.
least1d -x values -y values -xi values ?-w values? ?-nterms integer? ?-coeffs? ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-coeffs:Include polynomial coefficient arrays in the result dictionary.
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yi, and, only with -coeffs,coeffs.b,coeffs.c,coeffs.d.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-nterms integer:Number of polynomial terms; defaults to 3. Must be positive and no greater than the number of distinct sample positions.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-w values:Optional positive weights; same length as -x. Defaults to all ones.
-x values:Sample positions; at least one value.
-xi values:Evaluation positions; must not be empty.
-y values:Sample values; must have the same length as -x.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
The fitted values yi, or a dictionary containing yi when -coeffs is specified. With
-coeffs, the dictionary also contains coeffs, a nested dictionary with keys b, c, and d. Each
numeric array is a Tcl list with list output or an RBC vector name with -output vector.
least1dDer¶
Fits a least-squares polynomial and evaluates its first derivative.
least1dDer -x values -y values -xi values ?-w values? ?-nterms integer? ?-coeffs? ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-coeffs:Include polynomial coefficient arrays in the result dictionary.
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yi,yiDer, and, only with -coeffs,coeffs.b,coeffs.c,coeffs.d.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-nterms integer:Number of polynomial terms; defaults to 3. Must be positive and no greater than the number of distinct sample positions.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-w values:Optional positive weights; same length as -x. Defaults to all ones.
-x values:Sample positions; at least one value.
-xi values:Evaluation positions; must not be empty.
-y values:Sample values; must have the same length as -x.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
A dictionary with yi values and yiDer first derivatives. With -coeffs, the dictionary also
contains coeffs, a nested dictionary with keys b, c, and d. Each numeric array is a Tcl list with
list output or an RBC vector name with -output vector.
lin1d¶
Performs linear one-dimensional interpolation.
lin1d -x values -y values -xi values ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yi.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-x values:Strictly increasing sample positions; at least two values.
-xi values:Evaluation positions; must not be empty.
-y values:Sample values; must have the same length as -x.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
The interpolated values yi, as a Tcl list with list output or an RBC vector name with -output
vector.
near1d¶
Performs nearest-neighbor one-dimensional interpolation.
near1d -x values -y values -xi values ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yi.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-x values:Sample positions; at least one value.
-xi values:Evaluation positions; must not be empty.
-y values:Sample values; must have the same length as -x.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
The interpolated values yi, as a Tcl list with list output or an RBC vector name with -output
vector.
pchip1d¶
Performs piecewise cubic Hermite interpolation (PCHIP).
pchip1d -x values -f values -xe values ?-input list|vector? ?-output list|vector? ?-namespace name? ?-name name? ?-names dictionary? ?-ifexists error|replace?
Parameters
-f values:Sample values; same length as -x. Alias: -y.
-ifexists error|replace:Policy for existing destination vectors; uses the package default (initially error). With replace, an existing real vector is resized and overwritten.
-input list|vector:Input representation for all array arguments: Tcl lists or real RBC vector names. Defaults to the package setting (initially list).
-name name:Destination vector name for yi; requires -output vector. Omit it or use #auto to create an automatically named vector.
-names dictionary:Dictionary mapping output fields to destination vector names; requires -output vector. Valid fields:
yi.-namespace name:Destination namespace for vector output; relative to the caller, created with missing parents.
-output list|vector:Output representation for every numeric result array: Tcl list or RBC vector name. Defaults to the package setting (initially list); independent of -input.
-x values:Strictly increasing sample positions; at least two values.
-xe values:Evaluation positions; must not be empty. Alias: -xi.
Description
Every array argument marked values uses the representation selected by -input. Scalar options remain
ordinary Tcl numbers. Numeric inputs must be finite. RBC support must be enabled in the build to use
vectors.
Omitted -input, -output and -ifexists use ::tclinterp::configure defaults at call time. Explicit options take precedence. Input vector names resolve in the caller’s namespace. Output names use -namespace, or the caller’s namespace when omitted. Empty namespace names are rejected; -namespace requires -output vector. Fully qualified output names override this location; their parent namespace must already exist. Each unnamed output, including fields omitted from -names, uses RBC’s #auto mechanism in the selected namespace. A final #auto component also works in qualified names; auto without # is an ordinary name. Returned vector names are fully qualified.
Do not specify both -name and the yi entry of -names. Unknown output fields and duplicate destinations
are errors. The caller owns returned vectors and can release them with ::rbc::vector destroy
$vectorName.
Return value
The interpolated values yi, as a Tcl list with list output or an RBC vector name with -output
vector.
Copyright (c) George Yashin