Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Mathematics.Algorithms
    • AlgorithmHelper Class
    • ConvergenceException Class
    • ConvergenceMode Enumeration
    • ConvergenceTest(T) Class
    • ConvergenceTestCollection(T) Class
    • ConvergenceTestQuantifier Enumeration
    • IterativeAlgorithm Class
    • ManagedIterativeAlgorithm Class
    • ManagedIterativeAlgorithm(T) Class
    • ManagedIterativeAlgorithm(T, TError, TReport) Class
    • OptimizationGoal Enumeration
    • SimpleConvergenceTest Class
    • SimpleConvergenceTest(T) Class
    • VectorConvergenceErrorMeasure Enumeration
    • VectorConvergenceNorm Enumeration
    • VectorConvergenceTest Class
    • VectorConvergenceTest(T) Class
  • ManagedIterativeAlgorithm(T, TError, TReport) Class
    • ManagedIterativeAlgorithm(T, TError, TReport) Constructor
    • Properties
    • Methods
    • Fields

ManagedIterativeAlgorithmT, TError, TReport Class

Extreme Optimization Numerical Libraries for .NET Professional
Represents an implementation of an iterative algorithm that uses a managed driver routine.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.AlgorithmsManagedIterativeAlgorithmT, TError, TReport
    Extreme.Mathematics.AlgorithmsManagedIterativeAlgorithmT
    Extreme.Mathematics.LinearAlgebra.IterativeSolversIterativeSparseSolverT
    Extreme.Mathematics.OptimizationMultidimensionalOptimizer

Namespace:  Extreme.Mathematics.Algorithms
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
public abstract class ManagedIterativeAlgorithm<T, TError, TReport> : IParallelized
where TReport : new(), SolutionReport<T, TError>
Public MustInherit Class ManagedIterativeAlgorithm(Of T, TError, TReport As {New, SolutionReport(Of T, TError)})
	Implements IParallelized
generic<typename T, typename TError, typename TReport>
where TReport : gcnew(), SolutionReport<T, TError>
public ref class ManagedIterativeAlgorithm abstract : IParallelized
[<AbstractClassAttribute>]
type ManagedIterativeAlgorithm<'T, 'TError, 'TReport when 'TReport : new() and SolutionReport<'T, 'TError>> =  
    class
        interface IParallelized
    end

Type Parameters

T
TError
TReport

The ManagedIterativeAlgorithmT, TError, TReport type exposes the following members.

Constructors

  NameDescription
Protected methodManagedIterativeAlgorithmT, TError, TReport
Constructs a new managed iterative algorithm object.
Top
Properties

  NameDescription
Public propertyConvergenceTests
Gets the collection of convergence tests for the algorithm.
Public propertyEstimatedError
Gets a value indicating the size of the absolute error of the result.
Public propertyEvaluationsNeeded
Gets the number of evaluations needed to execute the algorithm.
Protected propertyEvaluationsRemaining
Gets the number of evaluations still available.
Public propertyHasSharedDegreeOfParallelism
Indicates whether the degree of parallelism is a property that is shared across instances.
Public propertyIterationsNeeded
Gets the number of iterations needed by the algorithm to reach the desired accuracy.
Protected propertyIterationsRemaining
Gets the number of iterations remaining.
Public propertyMaxDegreeOfParallelism
Gets or sets the maximum degree of parallelism enabled by this instance.
Public propertyMaxEvaluations
Gets or sets the maximum number of evaluations during the calculation.
Public propertyMaxIterations
Gets or sets the maximum number of iterations to use when approximating the roots of the target function.
Public propertyMinIterations
Gets or sets the minimum iterations that have to be performed.
Public propertyParallelOptions
Gets or sets the configuration for the parallel behavior of the algorithm.
Public propertyResult
Gets the result of an algorithm after it has executed.
Public propertySolutionReport
Gets the result of an algorithm after it has executed.
Public propertyStatus
Gets the AlgorithmStatus following an execution of the algorithm.
Public propertyThrowExceptionOnFailure
Gets or sets a value indicating whether to throw an exception when the algorithm fails to converge.
Top
Methods

  NameDescription
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodIncrementEvaluations
Increments the number of evaluations by one.
Protected methodIncrementEvaluations(Int32)
Increments the number of evaluations by the specified amount.
Protected methodIterate
Performs one iteration of the algorithm.
Protected methodIterated
Performs tasks after the iteration is completed, but before the status of the algorithm is finalized.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodOnConvergence
Performs any tasks after the main algorithm has converged.
Protected methodOnFailure
Performs any tasks after the main algorithm has failed to converge.
Protected methodOnInit
Performs initialization before the first iteration.
Protected methodReportFailure
Records the results of an algorithm in case it fails.
Protected methodReportResult
Records the results of an algorithm.
Protected methodReportSuccess
Records the results of a algorithm that converged successfully.
Protected methodResetEvaluations
Resets the number of evaluations to zero.
Protected methodRestart
Prepares the algorithm to be run again with possibly different inputs.
Protected methodRun
Runs the algorithm.
Protected methodRun(ParallelOptions)
Runs the algorithm using the specified parallelization options.
Protected methodSetResult
Sets the results of an algorithm's execution.
Protected methodTestConvergence
Checks whether the algorithm has converged.
Protected methodThreadSafeIncrementEvaluations
Increments the number of evaluations by one.
Protected methodThreadSafeIncrementEvaluations(Int32)
Increments the number of evaluations by the specified amount.
Protected methodThrowConvergenceException
Interprets the AlgorithmStatus and throws the appropriate exception.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Fields

  NameDescription
Public fieldStatic memberDefaultConvergenceCriterion
Gets the default convergence criterion.
Public fieldStatic memberDefaultTolerance
Gets the default absolute and relative tolerance.
Top
Remarks

Use ManagedIterativeAlgorithm as the base class for classes that implement iterative algorithms.

Note to inheritors: You must override the following methods: Iterate, TestConvergence. You may also override OnInit and OnConvergence.

See Also

Reference

Extreme.Mathematics.Algorithms Namespace

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.