Click or drag to resize

AGI.Foundation.NumericalMethods Namespace

Contains general numerical algorithms.
Classes
  ClassDescription
Public classBulirschStoerIntegrator
An adaptive numerical integrator which uses successive subdivisions of the specified step size in order to measure the relative error in order to update the step size.

Note that the Tolerance will affect both how accurate the integrator will be as well as how small the step size will be to achieve the desired accuracy. Having a really small tolerance in relation to large dependent variables may not be best, since it may drive the step size to values near zero over the course of the integration when a higher tolerance will still yield accurate results.

Public classCovariance3By3SizeAndOrientationInterpolator
Interpolates Covariance3By3SizeAndOrientation information.
Public classCubicRealPolynomial
Represents a 3rd order polynomial function of one variable with only real coefficients.
Public classDelegateBasedConstraint
A SegmentPropagatorConstraint for use with TargetedSegmentListDifferentialCorrector where the constraint value is produced by a delegate that computes the value from the specified SegmentResults.
Public classDelegateBasedVariableT
A SegmentPropagatorVariable that uses a delegate to get and set the relevant values in a segment's configuration. All segments should be made with a helper method on the concrete SegmentDefinition to assist in the proper creation of one of these variables.
Public classDifferentialCorrectorStepResult
The results evaluated in one iteration of a MultivariableFunctionDifferentialSolver.
Public classDoubleExtremumFoundEventArgs
Holds details of the LocalExtremumFound event.
Public classDoubleExtremumIndicatedEventArgs
Holds details of the LocalExtremumIndicated event.
Public classDoubleFunctionDetails
Holds details of a function to be explored with DoubleFunctionExplorer.
Public classDoubleFunctionExplorer
Explores one or more functions where the independent variable is Double and the dependent variable is double, looking for one or more threshold crossings or local extrema. Interesting findings while exploring the function are reported via events. A supplied callback is used to determine how the function is sampled.
Public classDoubleFunctionSampledEventArgs
Holds details of the FunctionSampled event.
Public classDoubleFunctionSampling
Species how sampling of a function of Double should be performed.
Public classDoubleFunctionThresholdDetails
Details of a threshold of interest in DoubleFunctionExplorer.
Public classDoubleMotionInterpolator
Interpolates and extrapolates over Motions of double values.
Public classDoubleThresholdCrossingFoundEventArgs
Holds details of the ThresholdCrossingFound event.
Public classDoubleThresholdCrossingIndicatedEventArgs
Holds details of the ThresholdCrossingIndicated event.
Public classDurationExtremumFoundEventArgs
Holds details of the LocalExtremumFound event.
Public classDurationExtremumIndicatedEventArgs
Holds details of the LocalExtremumIndicated event.
Public classDurationFunctionDetails
Holds details of a function to be explored with DurationFunctionExplorer.
Public classDurationFunctionExplorer
Explores one or more functions where the independent variable is Duration and the dependent variable is double, looking for one or more threshold crossings or local extrema. Interesting findings while exploring the function are reported via events. A supplied callback is used to determine how the function is sampled.
Public classDurationFunctionSampledEventArgs
Holds details of the FunctionSampled event.
Public classDurationFunctionSampling
Species how sampling of a function of Duration should be performed.
Public classDurationFunctionThresholdDetails
Details of a threshold of interest in DurationFunctionExplorer.
Public classDurationThresholdCrossingFoundEventArgs
Holds details of the ThresholdCrossingFound event.
Public classDurationThresholdCrossingIndicatedEventArgs
Holds details of the ThresholdCrossingIndicated event.
Public classExtremeValueOfSegmentConstraint
This constraint will take the extreme value of a Scalar computed while propagating a SegmentPropagator. No interpolation will be done on the values of the Scalar.
Public classGaussJacksonIntegrator
A multi-step second order integrator based on the Gauss-Jackson integration algorithm, using a RungeKuttaFehlberg78Integrator to start the integration and a summed Adams first order integration algorithm.
Public classJulianDateExtremumFoundEventArgs
Holds details of the LocalExtremumFound event.
Public classJulianDateExtremumIndicatedEventArgs
Holds details of the LocalExtremumIndicated event.
Public classJulianDateFunctionDetails
Holds details of a function to be explored with JulianDateFunctionExplorer.
Public classJulianDateFunctionExplorer
Explores one or more functions where the independent variable is JulianDate and the dependent variable is double, looking for one or more threshold crossings or local extrema. Interesting findings while exploring the function are reported via events. A supplied callback is used to determine how the function is sampled.
Public classJulianDateFunctionSampledEventArgs
Holds details of the FunctionSampled event.
Public classJulianDateFunctionSampling
Species how sampling of a function of JulianDate should be performed.
Public classJulianDateFunctionThresholdDetails
Details of a threshold of interest in JulianDateFunctionExplorer.
Public classJulianDateThresholdCrossingFoundEventArgs
Holds details of the ThresholdCrossingFound event.
Public classJulianDateThresholdCrossingIndicatedEventArgs
Holds details of the ThresholdCrossingIndicated event.
Public classMultivariableFunctionDifferentialSolver
An intermediate base class for MultivariableFunctionSolvers that will solve a function by iteration towards a solution. In each iteration, the change of the variable values will be evaluated, applied to the previous variable values and repeated in the next iteration. An instance of a type derived from this will pass in values of Variables into a SolvableMultivariableFunction to drive them to satisfy this solver's constraints.
Public classMultivariableFunctionSolver
The abstract base class for MultivariableFunctionSolvers. An instance of a type derived from this will pass in values of Variables into a SolvableMultivariableFunction to drive them to satisfy this solver's constraints.
Public classMultivariableFunctionSolverIterationResults
The results of a single iteration of a MultivariableFunctionSolver. This includes the unperturbed run of the Function and all of the perturbed runs of the Function for one time through the MultivariableFunctionSolver.
Public classMultivariableFunctionSolverResults
A type storing the overall results of a MultivariableFunctionSolver. If requested, this type will store all the MultivariableFunctionSolverIterationResults from an entire run of a MultivariableFunctionSolver.
Public classNewtonRaphsonMultivariableFunctionSolver
A differential corrector for solving SolvableMultivariableFunctions. This uses the Newton-Raphson method for solving a function with multiple variables.
Public classNoScalingOnConstraint
The value in question is not scaled.
Public classNoScalingOnVariable
The value in question is not scaled.
Public classNumericalIntegrator
A numerical integrator which can be used to update a set of dependent variables over a given step of an independent variable by using a differential equation defining the derivatives.
Public classNumericallyComputedMultivariableFunctionDerivativeResults
The results of an evaluation of the derivative of a SolvableMultivariableFunction when that evaluation was done with a numerical algorithm.
Public classParameterizedDateVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a JulianDate used in the computation of some value within the segment propagators getting propagated.
Public classParameterizedDoubleVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a ValueDefinitionT used in the computation of some value within the segment propagators getting propagated where T is a double. For example, you can set the value of a threshold of a stopping condition to be the Value provided in this variable, which gets modified in the differential corrector.
Public classParameterizedDurationVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a Duration used in the computation of some value within the segment propagators getting propagated.
Public classParameterizedScalarVariable
A variable for use with TargetedSegmentListDifferentialCorrector that will change the value of a Scalar used in the computation of some value within the segment propagators getting propagated. For example, you can set the scalar density of the atmosphere to be the Value provided in this variable, which gets modified in the differential corrector.
Public classQuadraticRealPolynomial
Represents a 2nd order polynomial function of one variable with only real coefficients.
Public classQuarticRealPolynomial
Represents a 4th order polynomial function of one variable with only real coefficients.
Public classRealValuedScalarFunctionAdapterT
Public classReciprocalOfDesiredValueScalingOnConstraint
The value is scaled by the absolute value of the reciprocal of the desired value.
Public classReciprocalOfInitialValueScalingOnVariable
The value is scaled by the absolute value of the reciprocal of the initial value.
Public classReciprocalOfToleranceScalingOnConstraint
The value is scaled by the reciprocal of the absolute value of the tolerance.
Public classReciprocalOfToleranceScalingOnVariable
The value is scaled by the reciprocal of the absolute value of the tolerance.
Public classRotationalMotionInterpolator
Interpolates and extrapolates rotational motion with the rotation represented as a Quaternion and derivatives represented as rotation vectors.
Public classRungeKutta4Integrator
A fourth-order fixed step Runge-Kutta integrator.
Public classRungeKuttaCashKarp45Integrator
This is a fourth order Runge-Kutta algorithm with error control based on the work of Cash and Karp which can adapt the size of the integration step based on comparing the fifth order evaluation with the fourth order evaluation to produce an estimate of the numerical error produced by a given integration step.
Public classRungeKuttaFehlberg78Integrator
This is a seventh order Runge-Kutta algorithm with error control based on the work of Fehlberg which can adapt the size of the integration step based on comparing the eight order evaluation with the seventh order evaluation to produce an estimate of the numerical error produced by a given integration step.
Public classScalarAtEndOfNumericalSegmentConstraint
This constraint will take the final value from a SegmentResults and evaluate a Scalar at that time with that information. The type of the states being propagated must be NumericalPropagatorState.
Public classScalarAtEndOfSegmentConstraint
This constraint will take the initial or final value from a SegmentResults and evaluate a Scalar at that time with that information.
Public classScalarDifferenceOfSegmentConstraint
This constraint will take the initial and final values from a SegmentResults and evaluate the difference of a Scalar at those times.
Public classSegmentPropagatorConstraint
The base type for constraints for use with the MultivariableFunctionSolver. This is the definition of the evaluator.
Public classSegmentPropagatorConstraintEvaluator
The evaluator for SegmentPropagatorConstraint used in a MultivariableFunctionSolver. Instances of this type return some value computed from the SegmentListResults of all the results of propagation up to the end of the final segment in the SegmentListPropagator that has the MultivariableFunctionSolver that has this constraint.
Public classSegmentPropagatorVariable
The base type for variables for use with a MultivariableFunctionSolver that uses SegmentPropagators in computing its results. This is the definition of the evaluator.
Public classSegmentPropagatorVariableEvaluator
The evaluator for the SegmentPropagatorVariable that get used by a MultivariableFunctionSolver to modify some part of the configurations of the segments getting propagated in a SegmentList.
Public classSolvableMultivariableFunction
A function that can be solved for by a MultivariableFunctionSolver.
Public classSolvableMultivariableFunctionDerivativeResults
The results of an evaluation of the derivative of a SolvableMultivariableFunction.
Public classSolvableMultivariableFunctionEvaluationAndDerivativeResults
Contains the evaluated value and derivative results of a SolvableMultivariableFunctions .
Public classSolvableMultivariableFunctionResults
The result of SolvableMultivariableFunction. If your function computes more than just the values of the constraint, you will want to extend this type to store those other results.
Public classSolverConstraintScaling
Derived classes of this type specify the type of scaling applied to constraints in the numerical function solver.
Public classSolverConstraintSettings
The settings for a constraint used by a SolvableMultivariableFunction that gets solved by a MultivariableFunctionSolver.
Public classSolverFunctionDerivativeEvaluatedEventArgs
Public classSolverFunctionEvaluatedEventArgs
Public classSolverVariableScaling
Derived classes of this type specify the type of scaling applied to variables in the numerical function solver.
Public classSolverVariableSettings
The settings of a variable to use in a SolvableMultivariableFunction.
Public classSpecifiedValueScalingOnConstraint
The value is scaled by the specified factor.
Public classSpecifiedValueScalingOnVariable
The value is scaled by the specified factor.
Public classTargetedSegmentListDifferentialCorrector
When using the Segment Propagation Library, there will be times when you don't know exactly what a value should be set to. For example, it may be that you don't know when a StoppingCondition should stop, or where you satellite should start propagating from in an InitialStateSegmentT. This type provides a means to solve for such settings in your segments by using some sort of MultivariableFunctionSolver to drive the trajectory to a set of constraint values.
Public classTargetedSegmentListDifferentialCorrectorResults
The results that get returned from an evaluation of a TargetedSegmentListDifferentialCorrector.
Public classTargetedSegmentListFunction

The SolvableMultivariableFunctionthat can be used in a MultivariableFunctionSolver to solve for a specific trajectory based on variables and constraints.

Instances of this type are intended to be created on the fly at propagation time inside the TargetedSegmentListOperator that needs a function. As such, this will not dispose the items it is configured with.

Public classTargetedSegmentListFunctionResults
The results that get returned when a TargetedSegmentListFunction is run. This is the results of the function, not the TargetedSegmentList. It contains a SegmentListResults for the segments that it ran, and the configuration that was used for those segments.
Public classTimeIntervalFinder
Finds the time intervals during which a constraint on a function of time is satisfied. This is a convenient way to use the capabilities of JulianDateFunctionExplorer.
Public classTranslationalMotionInterpolator
Interpolates and extrapolates translational motion represented as Cartesian coordinates.
Delegates
  DelegateDescription
Public delegateDelegateBasedConstraintCallback
The delegate type used by the DelegateBasedConstraint. This must extract the value from the results to compare to the DesiredValue of the constraint in a TargetedSegmentListDifferentialCorrector.
Public delegateDoubleSampleSuggestionCallback
A callback that is invoked to determine the next Variable at which DoubleFunctionExplorer samples a function.
Public delegateDoubleSimpleFunction
A delegate that takes a Double and returns a double.
Public delegateDurationSampleSuggestionCallback
A callback that is invoked to determine the next duration at which DurationFunctionExplorer samples a function.
Public delegateDurationSimpleFunction
A delegate that takes a Duration and returns a double.
Public delegateJulianDateSampleSuggestionCallback
A callback that is invoked to determine the next date at which JulianDateFunctionExplorer samples a function.
Public delegateJulianDateSimpleFunction
A delegate that takes a JulianDate and returns a double.
Public delegateRealValuedScalarFunction
A univariate, real valued, scalar function of a variable of type double.
Public delegateRealValuedScalarFunctionT
A real valued, scalar function of a variable of type T. The function may be either univariate or multivariate, based on the dimensionality of T.
Public delegateSetVariableCallbackT
The setter delegate for the DelegateBasedVariableT. You will want to add the currentValue to the appropriate setting in the configurationToModify.
Enumerations
  EnumerationDescription
Public enumerationDerivativeMode
An enumeration indicating the mode in which to calculate derivatives. This is used by certain integrators to optimize performance by only computing "principal" derivatives at points in an algorithm where approximations can be made without much error while improving performance. "Perturbation" derivatives are then held constant instead of re-evaluating potentially expensive computations.
Public enumerationEndsOfSegment
Specifies if the initial state or final state of a segment should be considered. Note that initial and final mean the initial point that propagation started from and the final point propagated, not initial and final in a time sense.
Public enumerationExtremumType
Indicates whether an extremum is a minimum or a maximum.
Public enumerationFiniteDifferenceMethod
When numerically computing the derivative of a function, this will indicate if the finite difference method should be forward, backwards or central.
Public enumerationFunctionSegmentSlope
Indicates the slope of a segment of a function.
Public enumerationGaussJacksonCorrectionMode
Indicates whether to use the full derivative function when computing corrections or whether to use only "fast" derivatives when computing corrections. For more details on "fast" and "slow" derivatives, see DependentVariableDerivatives.
Public enumerationIntegrationSense
Indicates whether the integration proceeds with the independent variable increasing or decreasing.
Public enumerationInterpolationAlgorithmType
Indicates a type of interpolation algorithm to use when interpolating data.
Public enumerationKindOfStepSize
Indicates what kind of behavior the step size will have during integration.
Public enumerationScalarConstraintDifference
Specifies how the difference of the scalar in the ScalarDifferenceOfSegmentConstraint will be computed.
Public enumerationStepSizeInformation
Indicates the behavior of the size of an integration step produced by an integrator.