ScientificErrorAnalysis - Maple Programming Help

Home : Support : Online Help : Science and Engineering : Scientific Error Analysis : Commands : ScientificErrorAnalysis/AddStructure

ScientificErrorAnalysis

 add the interface of a new quantity-with-error structure

 Calling Sequence AddStructure( struct, val_proc, uncer_proc, ident_proc, opts )

Parameters

 struct - type; type of the new quantity-with-error structure val_proc - procedure; returns the central value of a quantity-with-error of type struct uncer_proc - procedure; returns the absolute uncertainty of a quantity-with-error of type struct ident_proc - procedure; returns an identifier of a quantity-with-error of type struct opts - (optional) equation of the form check= true or false; allows overwrite of existing interface

Description

 • The AddStructure( struct, val_proc, uncer_proc, ident_proc ) command adds the interface of a new quantity-with-error structure to the ScientificErrorAnalysis package for the current session.  The interface is defined by a maple type and three procedures.
 • The struct argument specifies the maple type of the quantity-with-error structure.
 • The val_proc argument is a procedure that, when applied to any quantity-with-error of type struct, returns the central value of the quantity-with-error.
 • The uncer_proc argument is a procedure that, when applied to any quantity-with-error of type struct, returns the absolute uncertainty of the quantity-with-error.
 • The ident_proc argument is a procedure that, when applied to any quantity-with-error of type struct, returns an identifier that represents the quantity-with-error.
 For a quantity-with-error without functional dependence, the identifier must be a simple maple object, distinct from all other identifiers of quantities-with-error of the same structure.  ScientificErrorAnalysis uses these identifiers to maintain a table of correlations between quantities-with-error. See SetCorrelation and combine/errors for more information.
 For a quantity-with-error with functional dependence, the identifier must be an algebraic expression containing one or more quantities-with-error of the same structure.  The identifier defines the object's functional dependence, which ScientificErrorAnalysis uses to calculate the variance or covariances with other quantities-with-error.  See Variance, Covariance, and combine/errors for more information.
 • If check=true, the type of the new structure cannot be the same as that of an existing structure.  The default value of check is true. If check=false, the type of the new structure can be the same as that of an existing structure, in which case the existing interface is overwritten.
 It is recommended that you do not overwrite the predefined interfaces.
 • The AddStructure routine was used to define the interface to the Quantity(...) objects of ScientificErrorAnalysis.
 • The AddStructure routine was also used to define the interface to two other quantity-with-error structures, the Constant(...) and Element(...) objects of the ScientificConstants package. In the case of the Constant(...) objects, the interface communicates the functional dependence of any derived Constants to ScientificErrorAnalysis.

Examples

Toy example.

 > $\mathrm{with}\left(\mathrm{ScientificErrorAnalysis}\right):$
 > $\mathrm{AddStructure}\left('\mathrm{specfunc}'\left('\mathrm{anything}',F\right),x→\mathrm{op}\left(1,x\right),x→\mathrm{op}\left(2,x\right),x→\mathrm{op}\left(3,x\right)\right)$
 > $\mathrm{o1}≔F\left(10.0,1.0,1\right)$
 ${\mathrm{o1}}{:=}{F}{}\left({10.0}{,}{1.0}{,}{1}\right)$ (1)
 > $\left(\mathrm{evalf},\mathrm{GetError}\right)\left(\mathrm{o1}\right)$
 ${F}{}\left({10.0}{,}{1.0}{,}{1}\right){,}{1.0}$ (2)
 > $\mathrm{o2}≔F\left(20.0,3.0,2\right)$
 ${\mathrm{o2}}{:=}{F}{}\left({20.0}{,}{3.0}{,}{2}\right)$ (3)
 > $\mathrm{combine}\left(\mathrm{o1}\mathrm{o2},'\mathrm{errors}'\right)$
 ${\mathrm{Quantity}}{}\left({200.00}{,}{36.05551275}\right)$ (4)
 > $\mathrm{SetCorrelation}\left(\mathrm{o1},\mathrm{o2},0.1\right)$
 > $\mathrm{combine}\left(\mathrm{o1}\mathrm{o2},'\mathrm{errors}'\right)$
 ${\mathrm{Quantity}}{}\left({200.00}{,}{37.68288736}\right)$ (5)