# Grasshopper2.Types.Functions namespace

Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

## Interfaces

- [IPolynomial](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.ipolynomial.md): Interface for functions which self-identify as a type of polynomial.

## Enums

- [FitKind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.fitkind.md): Enumerates the function shapes which can be fitted through a set of samples.
- [FitMetric](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.fitmetric.md): Enumerates the error metrics which fitting can seek to minimise.
- [FitTrimming](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.fittrimming.md): Enumerates the mechanisms for discarding poorly fitted samples between fitting rounds.

## Classes

- [Function](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function.md): Base level class for mathematical functions in the form y = f(x), representing a mapping from individual 64-bit double precision values onto individual 64-bit double precision values. Do not inherit from this class if you wish to create a new function unless you need an absolutely minimal implementation to start with. Consider instead deriving from [FunctionWithCaching](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching.md).
- [FunctionA](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functiona.md): Implementation of FunctionWithCaching which exposes one scalar argument.
- [FunctionAB](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionab.md): Implementation of FunctionWithCaching which exposes two scalar arguments.
- [FunctionABC](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionabc.md): Implementation of FunctionWithCaching which exposes three scalar arguments.
- [FunctionABCD](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionabcd.md): Implementation of FunctionWithCaching which exposes four scalar arguments.
- [FunctionABCDE](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionabcde.md): Implementation of FunctionWithCaching which exposes five scalar arguments.
- [FunctionF<T1>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionf-1.md): Abstract base function for unary operations. That is, a function which requires 1 other function as input.
- [FunctionFG<T1, T2>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionfg-2.md): Abstract base function for binary operations. That is, functions which require two other functions as operands.
- [FunctionFGH<T1, T2, T3>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionfgh-3.md): Abstract base function for ternary operations. That is, function which require 3 other functions as inputs.
- [FunctionFGHJ<T1, T2, T3, T4>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionfghj-4.md): Abstract base function for quarternary operations. That is, function which require 4 other functions as inputs.
- [FunctionFitter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionfitter.md): Provides fitting of standard function shapes through arbitrary (x,y) samples.
- [FunctionSampler](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionsampler.md): A utility class for creating a visual sampling of a function.
- [FunctionWithCaching](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.functionwithcaching.md): Useful abstract class for creating your own functions. This class extends the [Function](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.function.md) abstract class by providing caching for derivative and indefinite integral functions. Note that it does *not* cache results for evaluations. If you want that level of caching, you must build it yourself.
- [IdentityFunction](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.identityfunction.md): A function which acts as a stand-in for identity mapping.
- [IndefiniteIntegral](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.indefiniteintegral.md): A trapezoidal approximation of a function as a stand-in for an unknown indefinite integral. This approximation is only defined on positive values of x, if you wish to approximate a negative domain you must use an inverted evaluation function, and the absolute values of evaluation parameters.
- [Pole](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.functions.pole.md): Represents a function pole, where the y-value goes off to infinity or becomes undefined in some other way.
