Curve Class

Represents a curve in two-dimensional space.


Namespace: Extreme.Mathematics.Curves
Assembly: Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.23
public abstract class Curve : ICloneable
Object  →  Curve


The Curve class is the abstract 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 a vector. The number of such parameters is given by the Length property of the Parameters property.

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

GeneralCurveA curve whose value and optionally its derivative is calculated using a function of one variable delegate.
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().


Curve Constructs a new curve with the specified number of parameters.


Parameters Gets the collection of parameters that determine the shape of this Curve.


Clone Constructs an exact copy of this instance.
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
FindRoots Gets the set of X-coordinates where the curve crosses the X-axis.
GetCurveFitter Returns a CurveFitter object that can be used to fit the curve to data.
GetDerivative Returns a Curve that represents the derivative of this Curve.
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Integral Gets the definite integral of the curve between the specified X-coordinates.
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
OnParameterChanged Called after a Curve parameter has been changed.
OnParameterChanging Called before the value of a curve parameter is changed.
SetParameter Sets a curve parameter to the specified value.
SlopeAt Gets the slope of the curve at the specified X-coordinate.
Solve Finds the x value where the curve reaches the specified y value.
TangentAt Gets the tangent line to the curve at the specified X-coordinate.
ToStringReturns a string that represents the current object.
(Inherited from Object)
ValueAt Gets the Y-value of the curve at the specified X-coordinate.

See Also