Skip to content
OFFICIAL SS DOCUMENTATION

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
API 1.5.0
MIT
source

Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0

No package dependencies declared.

Public API

Public signature
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)->BdfIntegrationResult

Parameters: system: OdeSystem, eventFunction: OdeEvent, stopAtEvent: bool, initial: double[], startTime: double, endTime: double, initialStep: double, absoluteTolerance: double, relativeTolerance: double, maximumSteps: int, maximumNonlinearIterations: int


Public signature
export function adaptiveOdeStep(double[] highOrder, double[] lowOrder, double absoluteTolerance, double relativeTolerance) -> OdeStepResult

Parameters: highOrder: double[], lowOrder: double[], absoluteTolerance: double, relativeTolerance: double


Public signature
export function adaptiveSimpson(double[] nestedSamples, double spacing, double absoluteTolerance, double relativeTolerance) -> QuadratureResult

Parameters: nestedSamples: double[], spacing: double, absoluteTolerance: double, relativeTolerance: double


Public signature
export function assessPrecision(PrecisionPolicy policy, double error, double referenceScale, int iterations)->PrecisionAssessment

Parameters: policy: PrecisionPolicy, error: double, referenceScale: double, iterations: int


Public signature
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


Public signature
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


Public signature
export function bracketRoot(ScalarFunction functionValue, double lower, double upper, double absoluteTolerance, double relativeTolerance, int maximumIterations) -> RootResult

Parameters: functionValue: ScalarFunction, lower: double, upper: double, absoluteTolerance: double, relativeTolerance: double, maximumIterations: int


Public signature
export function centralDerivative(double before, double after, double spacing) -> double

Parameters: before: double, after: double, spacing: double


Public signature
export function convergence(double[] residuals, int iterations, double absoluteTolerance, double relativeTolerance, double reference) -> ConvergenceResult

Parameters: residuals: double[], iterations: int, absoluteTolerance: double, relativeTolerance: double, reference: double


Public signature
export record ConvergenceResult(public double residual, public int iterations, public bool converged, public string diagnostic)

Parameters: residual: double, iterations: int, converged: bool, diagnostic: string


Public signature
export record CubicInterpolator(public double[] coordinates, public double[] values, public double[] slopes)

Parameters: coordinates: double[], values: double[], slopes: double[]


Public signature
export function explicitEuler(double initial, double[] rates, double step) -> double[]

Parameters: initial: double, rates: double[], step: double


Public signature
export function gradientDescent(double[] initial, double[][] gradients, double[] stepSizes, double gradientTolerance) -> OptimizationResult

Parameters: initial: double[], gradients: double[][], stepSizes: double[], gradientTolerance: double


Public signature
export function heatExplicitStep(double[] previous, double diffusivity, double spacing, double timeStep, double leftValue, double rightValue) -> PdeSolution

Parameters: previous: double[], diffusivity: double, spacing: double, timeStep: double, leftValue: double, rightValue: double


Public signature
export function incrementalNewton(ScalarResidualTangent model, double initialValue, double finalControl, int steps, double residualTolerance, double minimumTangent, int maximumIterations) -> IncrementalNewtonResult

Parameters: model: ScalarResidualTangent, initialValue: double, finalControl: double, steps: int, residualTolerance: double, minimumTangent: double, maximumIterations: int


Public signature
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


Public signature
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


Public signature
export function integrateAdaptive(ScalarFunction integrand, double lower, double upper, double absoluteTolerance, double relativeTolerance, int maximumRefinements) -> QuadratureResult

Parameters: integrand: ScalarFunction, lower: double, upper: double, absoluteTolerance: double, relativeTolerance: double, maximumRefinements: int


Public signature
export function interpolate(CubicInterpolator interpolation, double coordinate) -> double

Parameters: interpolation: CubicInterpolator, coordinate: double


Public signature
export function interpolationDerivative(CubicInterpolator interpolation, double coordinate) -> double

Parameters: interpolation: CubicInterpolator, coordinate: double


Public signature
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


Public signature
export function locateOdeEvents(OdeEvent eventFunction, double[] times, double[][] states, string direction, bool terminal, double timeTolerance, int maximumIterations)->OdeEventLocations

Parameters: eventFunction: OdeEvent, times: double[], states: double[][], direction: string, terminal: bool, timeTolerance: double, maximumIterations: int


Public signature
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


Public signature
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


Public signature
export interface ObjectiveFunction

Public signature
export interface OdeEvent

Public signature
export 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


Public signature
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


Public signature
export record OdeStepResult(public double[] values, public double errorEstimate, public bool accepted, public string diagnostic)

Parameters: values: double[], errorEstimate: double, accepted: bool, diagnostic: string


Public signature
export interface OdeSystem

Public signature
export 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


Public signature
export function optimize(ObjectiveFunction objective, double[] initial, double initialStep, double gradientTolerance, int maximumIterations) -> OptimizationResult

Parameters: objective: ObjectiveFunction, initial: double[], initialStep: double, gradientTolerance: double, maximumIterations: int


Public signature
export function pchip(double[] coordinates, double[] values) -> CubicInterpolator

Parameters: coordinates: double[], values: double[]


Public signature
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


Public signature
export function policyTolerance(PrecisionPolicy policy, double referenceScale)->double

Parameters: policy: PrecisionPolicy, referenceScale: double


Public signature
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


Public signature
export function precisionPolicy(string name, string scalarType, double absoluteTolerance, double relativeTolerance, int maximumIterations, bool deterministicReductions, bool allowPrecisionPromotion)->PrecisionPolicy

Parameters: name: string, scalarType: string, absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, deterministicReductions: bool, allowPrecisionPromotion: bool


Public signature
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


Public signature
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


Public signature
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


Public signature
export function robustNonlinearSystemStatus(NonlinearSystemResult result, double initialResidual, double infeasibilityThreshold, int slowIterationThreshold)->NonlinearSolverStatus

Parameters: result: NonlinearSystemResult, initialResidual: double, infeasibilityThreshold: double, slowIterationThreshold: int


Public signature
export function rootMeanSquare(double[] residuals) -> double

Parameters: residuals: double[]


Public signature
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


Public signature
export function sampledMinimum(double[] points, double[] values, double tolerance) -> OptimizationResult

Parameters: points: double[], values: double[], tolerance: double


Public signature
export interface ScalarFunction

Public signature
export interface ScalarResidualTangent

Public signature
export function scaledResidualNorm(double[] residuals, PrecisionPolicy policy, double referenceScale)->double

Parameters: residuals: double[], policy: PrecisionPolicy, referenceScale: double


Public signature
export function simpson(double[] samples, double spacing) -> double

Parameters: samples: double[], spacing: double


Public signature
export function solveBoundaryValueProblem(double[] coordinates, double[] forcing, double leftValue, double rightValue, double minimumPivot, double conditionLimit)->BoundaryValueResult

Parameters: coordinates: double[], forcing: double[], leftValue: double, rightValue: double, minimumPivot: double, conditionLimit: double


Public signature
export function solveConstantFredholm(double forcing, double lambda, double lengthValue, int intervals) -> IntegralEquationSolution

Parameters: forcing: double, lambda: double, lengthValue: double, intervals: int


Public signature
export function solveDenseNonlinear(VectorFunction system, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations, double jacobianStep, double minimumPivot) -> NonlinearSystemResult

Parameters: system: VectorFunction, initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, jacobianStep: double, minimumPivot: double


Public signature
export function solveLinearImplicit(double lambda, double initial, double startTime, double step, int steps) -> LinearImplicitSolution

Parameters: lambda: double, initial: double, startTime: double, step: double, steps: int


Public signature
export function solveOde(OdeSystem system, double[] initial, double startTime, double endTime, double initialStep, double absoluteTolerance, double relativeTolerance, int maximumSteps) -> OdeSolution

Parameters: system: OdeSystem, initial: double[], startTime: double, endTime: double, initialStep: double, absoluteTolerance: double, relativeTolerance: double, maximumSteps: int


Public signature
export function solvePoisson1D(double[] source, double spacing, double leftValue, double rightValue) -> PdeSolution

Parameters: source: double[], spacing: double, leftValue: double, rightValue: double


Public signature
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) -> StiffOdeSolution

Parameters: system: OdeSystem, eventFunction: OdeEvent, stopAtEvent: bool, initial: double[], startTime: double, endTime: double, initialStep: double, absoluteTolerance: double, relativeTolerance: double, maximumSteps: int, maximumNewtonIterations: int


Public signature
export function stableSum(double[] values)->double

Parameters: values: double[]


Public signature
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


Public signature
export function trapezoid(double[] samples, double spacing) -> double

Parameters: samples: double[], spacing: double


Public signature
export function trapezoidCoordinates(double[] coordinates, double[] samples) -> double

Parameters: coordinates: double[], samples: double[]


Public signature
export interface VectorFunction

Public signature
export function weightedQuadrature(double[] samples, double[] weights, double scale) -> double

Parameters: 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.