Extreme Optimization™: Complexity made simple.

Numerical Components
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
    • 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
    • Contact us
Introduction
Deployment Guide
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 Statistics Library User's GuideStatistics Library User's Guide
Expand ReferenceReference
  • Home
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Reference
    • Extreme.Mathematics Namespace
    • Extreme.Mathematics.Algorithms Namespace
    • Extreme.Mathematics.Calculus Namespace
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations Namespace
    • Extreme.Mathematics.Curves Namespace
    • Extreme.Mathematics.Curves.Nonlinear Namespace
    • Extreme.Mathematics.EquationSolvers Namespace
    • Extreme.Mathematics.Generic Namespace
    • Extreme.Mathematics.Generic.LinearAlgebra Namespace
    • Extreme.Mathematics.Generic.LinearAlgebra.Providers Namespace
    • Extreme.Mathematics.LinearAlgebra Namespace
    • Extreme.Mathematics.LinearAlgebra.Complex Namespace
    • Extreme.Mathematics.LinearAlgebra.Complex.Decompositions Namespace
    • Extreme.Mathematics.LinearAlgebra.IO Namespace
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers Namespace
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners Namespace
    • Extreme.Mathematics.LinearAlgebra.Providers Namespace
    • Extreme.Mathematics.LinearAlgebra.Sparse Namespace
    • Extreme.Mathematics.Optimization Namespace
    • Extreme.Mathematics.Optimization.LineSearches Namespace
    • Extreme.Mathematics.SignalProcessing Namespace
    • Extreme.Statistics Namespace
    • Extreme.Statistics.Distributions Namespace
    • Extreme.Statistics.IO Namespace
    • Extreme.Statistics.Multivariate Namespace
    • Extreme.Statistics.Random Namespace
    • Extreme.Statistics.Tests Namespace
    • Extreme.Statistics.TimeSeriesAnalysis Namespace
  • Extreme.Mathematics.Curves Namespace
    • ChebyshevBasis Class
    • ChebyshevSeries Class
    • Constant Class
    • CubicSpline Class
    • CubicSplineKind Enumeration
    • Curve Class
    • CurveFitter Class
    • FunctionBasis Class
    • GeneralCurve Class
    • GeneralFunctionBasis Class
    • Line Class
    • LinearCombination Class
    • LinearCurveFitter Class
    • LinearLeastSquaresMethod Enumeration
    • NonlinearCurve Class
    • NonlinearCurveFitter Class
    • ParameterCollection Class
    • PiecewiseConstantCurve Class
    • PiecewiseCurve Class
    • PiecewiseLinearCurve Class
    • Point Structure
    • Polynomial Class
    • PolynomialBase Class
    • PolynomialBasis Class
    • Quadratic Class
    • WeightFunctions Class
  • Curve Class
    • Members
    • Curve Constructor
    • Methods
    • Properties
Collapse image Expand Image Copy image CopyHover image
         




Curve Class

Members See Also 
Represents a curve in two-dimensional space.

Namespace: Extreme.Mathematics.Curves
Assembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 4.2.11333.0 (4.2.12253.0)

Syntax

C#
[SerializableAttribute]
public abstract class Curve : ICloneable
Visual Basic (Declaration)
<SerializableAttribute> _
Public MustInherit Class Curve _
	Implements ICloneable
Visual C++
[SerializableAttribute]
public ref class Curve abstract : ICloneable
F#
[<AbstractClassAttribute>]
[<SerializableAttribute>]
type Curve =  
    class
        interface ICloneable
    end

Remarks

The Curve class is the abstractMustInheritabstractabstract (MustInherit in Visual Basic) base class for classes that represent curves in two-dimensional space. It defines common properties and methods for all such classes. Derived classes provide implementations for specific types of curves.

The name 'Curve' was chosen as an alternative to 'Function', which is a reserved word in many languages.

The ValueAt(Double) method evaluates the curve at a specific point. SlopeAt(Double) evaluates the derivative, and Integral(Double, Double) evaluates the definite integral over a specified interval. If overridden by a descendant class, the GetDerivative()()()() method returns the Curve that is the derivative of the instance. The FindRoots()()()() method attempts to find all the roots or zeros of the curve.

A particular type of curve is defined by a set of parameters. These parameters can be set and retrieved through the Parameters property which is of type ParameterCollection. The number of such parameters is given by the Count property of the Parameters property.

Curve is an abstract base class and cannot be instantiated directly. The following derived classes have been defined:

ClassDescription
GeneralCurveA curve whose value and optionally its derivative is calculated using a function of one variable delegate.
ConstantA curve with a constant Y-value.
LineA straight line.
QuadraticA quadratic curve, or a polynomial of degree 2.
LinearCombinationA linear combination of an arbitrary set of curves.
PolynomialBaseAbstract base class for classes that implement different types of polynomials. Derives from LinearCombination.
PolynomialA polynomial. Derives from PolynomialBase.
ChebyshevSeriesA linear combination of Chebyshev polynomials. Derives from PolynomialBase.
CubicSplineA natural or clamped cubic spline. Derives from PiecewiseCurve.
NonlinearCurveA curve that is non-linear in its parameters and is suitable for non-linear curve fitting.

Notes to inheritors: When you derive from Curve, you must override the following member: ValueAt(Double). You should also override the following members: SlopeAt(Double), Integral(Double, Double), FindRoots()()()(), and GetDerivative()()()().

Inheritance Hierarchy

System..::..Object
  Extreme.Mathematics.Curves..::..Curve
    Extreme.Mathematics.Curves..::..GeneralCurve
    Extreme.Mathematics.Curves..::..LinearCombination
    Extreme.Mathematics.Curves..::..NonlinearCurve
    Extreme.Mathematics.Curves..::..PiecewiseCurve

See Also

Curve Members
Extreme.Mathematics.Curves Namespace

Send comments on this topic to support@extremeoptimization.com

Copyright (c) 2004-2011 ExoAnalytics Inc.

Copyright © 2003-2013, 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.