SS.Numerics 1.5.0
Adaptive BDF integration, directional ODE event localization, conditioned two-point boundary-value solves, robust nonlinear statuses, precision policies, roots, interpolation, quadrature, optimization, and diagnostics
Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0
No package dependencies declared.
Public API
Numerics.adaptiveBdfIntegrator
export function adaptiveBdfIntegrator(OdeSystem system, OdeEvent eventFunction, bool stopAtEvent, double[] initial, double startTime, double endTime, double initialStep, double absoluteTolerance, double relativeTolerance, int maximumSteps, int maximumNonlinearIterations)->BdfIntegrationResultParameters: system: OdeSystem, eventFunction: OdeEvent, stopAtEvent: bool, initial: double[], startTime: double, endTime: double, initialStep: double, absoluteTolerance: double, relativeTolerance: double, maximumSteps: int, maximumNonlinearIterations: int
Numerics.adaptiveOdeStep
export function adaptiveOdeStep(double[] highOrder, double[] lowOrder, double absoluteTolerance, double relativeTolerance) -> OdeStepResultParameters: highOrder: double[], lowOrder: double[], absoluteTolerance: double, relativeTolerance: double
Numerics.adaptiveSimpson
export function adaptiveSimpson(double[] nestedSamples, double spacing, double absoluteTolerance, double relativeTolerance) -> QuadratureResultParameters: nestedSamples: double[], spacing: double, absoluteTolerance: double, relativeTolerance: double
Numerics.assessPrecision
export function assessPrecision(PrecisionPolicy policy, double error, double referenceScale, int iterations)->PrecisionAssessmentParameters: policy: PrecisionPolicy, error: double, referenceScale: double, iterations: int
export record BdfIntegrationResult(public double finalTime, public double[] values, public int acceptedSteps, public int rejectedSteps, public int nonlinearIterations, public double errorEstimate, public double residualNorm, public bool converged, public string method, public string diagnostic)Parameters: finalTime: double, values: double[], acceptedSteps: int, rejectedSteps: int, nonlinearIterations: int, errorEstimate: double, residualNorm: double, converged: bool, method: string, diagnostic: string
export record BoundaryValueResult(public double[] coordinates, public double[] values, public double boundaryResidual, public double equationResidual, public double conditionIndicator, public bool converged, public string diagnostic)Parameters: coordinates: double[], values: double[], boundaryResidual: double, equationResidual: double, conditionIndicator: double, converged: bool, diagnostic: string
Numerics.bracketRoot
export function bracketRoot(ScalarFunction functionValue, double lower, double upper, double absoluteTolerance, double relativeTolerance, int maximumIterations) -> RootResultParameters: functionValue: ScalarFunction, lower: double, upper: double, absoluteTolerance: double, relativeTolerance: double, maximumIterations: int
Numerics.centralDerivative
export function centralDerivative(double before, double after, double spacing) -> doubleParameters: before: double, after: double, spacing: double
Numerics.convergence
export function convergence(double[] residuals, int iterations, double absoluteTolerance, double relativeTolerance, double reference) -> ConvergenceResultParameters: residuals: double[], iterations: int, absoluteTolerance: double, relativeTolerance: double, reference: double
export record ConvergenceResult(public double residual, public int iterations, public bool converged, public string diagnostic)Parameters: residual: double, iterations: int, converged: bool, diagnostic: string
export record CubicInterpolator(public double[] coordinates, public double[] values, public double[] slopes)Parameters: coordinates: double[], values: double[], slopes: double[]
Numerics.explicitEuler
export function explicitEuler(double initial, double[] rates, double step) -> double[]Parameters: initial: double, rates: double[], step: double
Numerics.gradientDescent
export function gradientDescent(double[] initial, double[][] gradients, double[] stepSizes, double gradientTolerance) -> OptimizationResultParameters: initial: double[], gradients: double[][], stepSizes: double[], gradientTolerance: double
Numerics.heatExplicitStep
export function heatExplicitStep(double[] previous, double diffusivity, double spacing, double timeStep, double leftValue, double rightValue) -> PdeSolutionParameters: previous: double[], diffusivity: double, spacing: double, timeStep: double, leftValue: double, rightValue: double
Numerics.incrementalNewton
export function incrementalNewton(ScalarResidualTangent model, double initialValue, double finalControl, int steps, double residualTolerance, double minimumTangent, int maximumIterations) -> IncrementalNewtonResultParameters: model: ScalarResidualTangent, initialValue: double, finalControl: double, steps: int, residualTolerance: double, minimumTangent: double, maximumIterations: int
export record IncrementalNewtonResult(public double value, public double residual, public int iterations, public double[] controls, public double[] values, public int[] iterationsPerStep, public bool converged, public string diagnostic)Parameters: value: double, residual: double, iterations: int, controls: double[], values: double[], iterationsPerStep: int[], converged: bool, diagnostic: string
export record IntegralEquationSolution(public double[] coordinates, public double[] values, public double residual, public bool converged, public string diagnostic)Parameters: coordinates: double[], values: double[], residual: double, converged: bool, diagnostic: string
Numerics.integrateAdaptive
export function integrateAdaptive(ScalarFunction integrand, double lower, double upper, double absoluteTolerance, double relativeTolerance, int maximumRefinements) -> QuadratureResultParameters: integrand: ScalarFunction, lower: double, upper: double, absoluteTolerance: double, relativeTolerance: double, maximumRefinements: int
Numerics.interpolate
export function interpolate(CubicInterpolator interpolation, double coordinate) -> doubleParameters: interpolation: CubicInterpolator, coordinate: double
Numerics.interpolationDerivative
export function interpolationDerivative(CubicInterpolator interpolation, double coordinate) -> doubleParameters: interpolation: CubicInterpolator, coordinate: double
export record LinearImplicitSolution(public double[] times, public double[] values, public double residual, public bool converged, public string diagnostic)Parameters: times: double[], values: double[], residual: double, converged: bool, diagnostic: string
Numerics.locateOdeEvents
export function locateOdeEvents(OdeEvent eventFunction, double[] times, double[][] states, string direction, bool terminal, double timeTolerance, int maximumIterations)->OdeEventLocationsParameters: eventFunction: OdeEvent, times: double[], states: double[][], direction: string, terminal: bool, timeTolerance: double, maximumIterations: int
export record NonlinearSolverStatus(public string status, public bool converged, public bool singular, public bool slow, public bool infeasible, public double residualNorm, public int iterations, public string diagnostic)Parameters: status: string, converged: bool, singular: bool, slow: bool, infeasible: bool, residualNorm: double, iterations: int, diagnostic: string
export record NonlinearSystemResult(public double[] values, public double residualNorm, public int iterations, public bool converged, public string diagnostic)Parameters: values: double[], residualNorm: double, iterations: int, converged: bool, diagnostic: string
Numerics.ObjectiveFunction
export interface ObjectiveFunctionNumerics.OdeEvent
export interface OdeEventexport record OdeEventLocations(public double[] times, public int[] intervalIndices, public int[] directions, public bool terminalEventOccurred, public int evaluations, public string diagnostic)Parameters: times: double[], intervalIndices: int[], directions: int[], terminalEventOccurred: bool, evaluations: int, diagnostic: string
Numerics.OdeSolution
export record OdeSolution(public double finalTime, public double[] values, public int acceptedSteps, public int rejectedSteps, public double errorEstimate, public bool converged, public string diagnostic)Parameters: finalTime: double, values: double[], acceptedSteps: int, rejectedSteps: int, errorEstimate: double, converged: bool, diagnostic: string
Numerics.OdeStepResult
export record OdeStepResult(public double[] values, public double errorEstimate, public bool accepted, public string diagnostic)Parameters: values: double[], errorEstimate: double, accepted: bool, diagnostic: string
Numerics.OdeSystem
export interface OdeSystemexport record OptimizationResult(public double[] point, public double value, public int iterations, public double gradientNorm, public bool converged, public string diagnostic)Parameters: point: double[], value: double, iterations: int, gradientNorm: double, converged: bool, diagnostic: string
Numerics.optimize
export function optimize(ObjectiveFunction objective, double[] initial, double initialStep, double gradientTolerance, int maximumIterations) -> OptimizationResultParameters: objective: ObjectiveFunction, initial: double[], initialStep: double, gradientTolerance: double, maximumIterations: int
Numerics.pchip
export function pchip(double[] coordinates, double[] values) -> CubicInterpolatorParameters: coordinates: double[], values: double[]
Numerics.PdeSolution
export record PdeSolution(public double[] coordinates, public double[] values, public double residual, public bool converged, public string diagnostic)Parameters: coordinates: double[], values: double[], residual: double, converged: bool, diagnostic: string
Numerics.policyTolerance
export function policyTolerance(PrecisionPolicy policy, double referenceScale)->doubleParameters: policy: PrecisionPolicy, referenceScale: double
export record PrecisionAssessment(public bool accepted, public double error, public double tolerance, public int iterations, public string scalarType, public string diagnostic)Parameters: accepted: bool, error: double, tolerance: double, iterations: int, scalarType: string, diagnostic: string
Numerics.precisionPolicy
export function precisionPolicy(string name, string scalarType, double absoluteTolerance, double relativeTolerance, int maximumIterations, bool deterministicReductions, bool allowPrecisionPromotion)->PrecisionPolicyParameters: name: string, scalarType: string, absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, deterministicReductions: bool, allowPrecisionPromotion: bool
Numerics.PrecisionPolicy
export record PrecisionPolicy(public string name, public string scalarType, public double absoluteTolerance, public double relativeTolerance, public int maximumIterations, public bool deterministicReductions, public bool allowPrecisionPromotion)Parameters: name: string, scalarType: string, absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, deterministicReductions: bool, allowPrecisionPromotion: bool
export record QuadratureResult(public double value, public double errorEstimate, public int intervals, public bool converged, public string diagnostic)Parameters: value: double, errorEstimate: double, intervals: int, converged: bool, diagnostic: string
Numerics.rk4Step
export function rk4Step(double[] state, double[] firstRate, double[] secondRate, double[] thirdRate, double[] fourthRate, double step) -> double[]Parameters: state: double[], firstRate: double[], secondRate: double[], thirdRate: double[], fourthRate: double[], step: double
export function robustNonlinearSystemStatus(NonlinearSystemResult result, double initialResidual, double infeasibilityThreshold, int slowIterationThreshold)->NonlinearSolverStatusParameters: result: NonlinearSystemResult, initialResidual: double, infeasibilityThreshold: double, slowIterationThreshold: int
Numerics.rootMeanSquare
export function rootMeanSquare(double[] residuals) -> doubleParameters: residuals: double[]
Numerics.RootResult
export record RootResult(public double root, public double residual, public double lower, public double upper, public int iterations, public bool converged, public string diagnostic)Parameters: root: double, residual: double, lower: double, upper: double, iterations: int, converged: bool, diagnostic: string
Numerics.sampledMinimum
export function sampledMinimum(double[] points, double[] values, double tolerance) -> OptimizationResultParameters: points: double[], values: double[], tolerance: double
Numerics.ScalarFunction
export interface ScalarFunctionNumerics.ScalarResidualTangent
export interface ScalarResidualTangentNumerics.scaledResidualNorm
export function scaledResidualNorm(double[] residuals, PrecisionPolicy policy, double referenceScale)->doubleParameters: residuals: double[], policy: PrecisionPolicy, referenceScale: double
Numerics.simpson
export function simpson(double[] samples, double spacing) -> doubleParameters: samples: double[], spacing: double
export function solveBoundaryValueProblem(double[] coordinates, double[] forcing, double leftValue, double rightValue, double minimumPivot, double conditionLimit)->BoundaryValueResultParameters: coordinates: double[], forcing: double[], leftValue: double, rightValue: double, minimumPivot: double, conditionLimit: double
Numerics.solveConstantFredholm
export function solveConstantFredholm(double forcing, double lambda, double lengthValue, int intervals) -> IntegralEquationSolutionParameters: forcing: double, lambda: double, lengthValue: double, intervals: int
Numerics.solveDenseNonlinear
export function solveDenseNonlinear(VectorFunction system, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations, double jacobianStep, double minimumPivot) -> NonlinearSystemResultParameters: system: VectorFunction, initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, jacobianStep: double, minimumPivot: double
Numerics.solveLinearImplicit
export function solveLinearImplicit(double lambda, double initial, double startTime, double step, int steps) -> LinearImplicitSolutionParameters: lambda: double, initial: double, startTime: double, step: double, steps: int
Numerics.solveOde
export function solveOde(OdeSystem system, double[] initial, double startTime, double endTime, double initialStep, double absoluteTolerance, double relativeTolerance, int maximumSteps) -> OdeSolutionParameters: system: OdeSystem, initial: double[], startTime: double, endTime: double, initialStep: double, absoluteTolerance: double, relativeTolerance: double, maximumSteps: int
Numerics.solvePoisson1D
export function solvePoisson1D(double[] source, double spacing, double leftValue, double rightValue) -> PdeSolutionParameters: source: double[], spacing: double, leftValue: double, rightValue: double
Numerics.solveStiffOde
export function solveStiffOde(OdeSystem system, OdeEvent eventFunction, bool stopAtEvent, double[] initial, double startTime, double endTime, double initialStep, double absoluteTolerance, double relativeTolerance, int maximumSteps, int maximumNewtonIterations) -> StiffOdeSolutionParameters: system: OdeSystem, eventFunction: OdeEvent, stopAtEvent: bool, initial: double[], startTime: double, endTime: double, initialStep: double, absoluteTolerance: double, relativeTolerance: double, maximumSteps: int, maximumNewtonIterations: int
Numerics.stableSum
export function stableSum(double[] values)->doubleParameters: values: double[]
export record StiffOdeSolution(public double finalTime, public double[] values, public int acceptedSteps, public int rejectedSteps, public int newtonIterations, public double errorEstimate, public double residualNorm, public bool eventOccurred, public double eventTime, public bool converged, public string diagnostic)Parameters: finalTime: double, values: double[], acceptedSteps: int, rejectedSteps: int, newtonIterations: int, errorEstimate: double, residualNorm: double, eventOccurred: bool, eventTime: double, converged: bool, diagnostic: string
Numerics.trapezoid
export function trapezoid(double[] samples, double spacing) -> doubleParameters: samples: double[], spacing: double
Numerics.trapezoidCoordinates
export function trapezoidCoordinates(double[] coordinates, double[] samples) -> doubleParameters: coordinates: double[], samples: double[]
Numerics.VectorFunction
export interface VectorFunctionNumerics.weightedQuadrature
export function weightedQuadrature(double[] samples, double[] weights, double scale) -> doubleParameters: samples: double[], weights: double[], scale: double
Documentation version
Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.