# FunctionBasis Class

Serves as an abstract base class for collections of functions.

## Definition

Namespace: Extreme.Mathematics.Curves
Assembly: Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.23
C#
public abstract class FunctionBasis
Inheritance
Object  →  FunctionBasis
Derived

## Remarks

A FunctionBasis represents a collection of real functions of one real variable. The LinearCombination class implements a Curve that is a linear combination of basis functions in a FunctionBasis.

A function basis is particularly useful for representing a class of functions where the cost of evaluating a series of functions is much less than that of evaluating the functions individually. For example, to evaluate all powers up to degree 10 requires up to 55 multiplications, where only 10 multiplications are required if they are evaluated as a group.

The ValuesAt(Double) and FillValues(Double, DenseVector<Double>) methods evaluate all basis functions for a given value or set of values. The DerivativesAt(Double) and FillDerivatives(Double, DenseVector<Double>) methods evaluate the derivative of all basis functions for a given value or set of values. Derived classes provide optimized implementations of these methods for specific classes of curves.

The curves in a function basis can be combined into a LinearCombination curve using the GetFunction(Vector<Double>) method. The [o:LeastSquaresFit] methods calculate the LinearCombination that is the least squares fit to a set of data points using curves from the function basis.

This is an abstract base class. The following classes derive from FunctionBasis:

ClassBasis functions
GeneralFunctionBasisArbitrary user-defined functions.
PolynomialBasisPolynomials up to a specified degree.
ChebyshevBasisChebyshev polynomials over a specified interval up to a specified degree.

Notes to inheritors: When you derive from FunctionBasis, you must override the following members: ValuesAt(Double), DerivativesAt(Double), Length, Item[Int32].

Notes to inheritors:When you inherit from FunctionBasis, you must override the following methods and properties: FillValues(Double, DenseVector<Double>). You should override FillDerivatives(Double, DenseVector<Double>) and Item[Int32].

## Constructors

 FunctionBasis Constructs a new FunctionBasis with the specified number of basis functions.

## Properties

 Item Gets an element of the collection as a function of one variable. Length Gets the number of items in this FunctionBasis.

## Methods

 DerivativesAt Evaluates the derivatives of the member functions of this FunctionBasis at a specified value. Equals Determines whether the specified object is equal to the current object.(Inherited from Object) FillDerivatives(Double, DenseVector) Fills a vector with the derivatives of the member functions at a specified value. FillDerivatives(Vector, DenseMatrix) Fills the rows of a DenseMatrix with the values of the member functions of a FunctionBasis evaluated for each element in a Vector. FillValues(Double, DenseVector) Fills a dense vector with the values of the member functions of a FunctionBasis at a specified value. FillValues(Vector, DenseMatrix) Fills the rows of a DenseMatrix with the values of the member functions of a FunctionBasis evaluated for each element in a Vector. Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object) GetFunction(Double[]) Constructs a new LinearCombination from the functions in this instance. Obsolete. GetFunction(Vector) Constructs a new LinearCombination from the functions in this instance. GetHashCode Serves as the default hash function.(Inherited from Object) GetType Gets the Type of the current instance.(Inherited from Object) LeastSquaresFit(Vector, Vector) Gets the least squares fit of target data in terms of the components of the FunctionBasis. LeastSquaresFit(Double[], Double[], Double[]) Gets the least squares fit of target data in terms of the components of the FunctionBasis. LeastSquaresFit(Double[], Double[], Int32) Gets the least squares fit of target data in terms of the components of the FunctionBasis. LeastSquaresFit(Vector, Vector, Vector) Gets the least squares fit of target data in terms of the components of the FunctionBasis. MemberwiseClone Creates a shallow copy of the current Object.(Inherited from Object) ToString Returns a string that represents the current object.(Inherited from Object) ValuesAt Evaluates the member functions of this FunctionBasis at a specified value.