/// <summary>Creates a specific grid point curve factory. /// </summary> /// <typeparam name="TLabel">The type of the label.</typeparam> /// <param name="curveParametrization">The curve parametrization.</param> /// <returns>A factory for <see cref="IGridPointCurve<TLabel>"/> objects with respect to the desired interpolation and extrapolation approaches.</returns> public static IGridPointCurveFactory <TLabel> Create <TLabel>(GridPointCurve.Parametrization curveParametrization) where TLabel : IEquatable <TLabel> { return(new CurveFactory <TLabel>( () => GridPointCurve.Create <TLabel>(curveParametrization), curveParametrization, (gridPointCount, gridPointLabels, gridPointArguments, gridPointValues, gridPointArgumentStartIndex, gridPointValueStartIndex, gridPointArgumentIncrement, gridPointValueIncrement) => { return GridPointCurve.Create(curveParametrization, gridPointCount, gridPointLabels, gridPointArguments, gridPointValues, gridPointArgumentStartIndex, gridPointValueStartIndex, gridPointArgumentIncrement, gridPointValueIncrement); })); }
/// <summary>Initializes a new instance of the <see cref="StandardGridPointCurveNoLabels"/> class. /// </summary> /// <param name="curveParametrizationFactory">The curve parametrization factory.</param> /// <param name="curveParametrization">The curve parametrization.</param> /// <param name="capacity">The number of elements that the new grid point curve can initially store.</param> internal StandardGridPointCurveNoLabels(GridPointCurve.Parametrization curveParametrizationFactory, ICurveDataFitting curveParametrization, int capacity = 20) { m_GridPointArguments = new List<double>(capacity); m_GridPointValues = new List<double>(capacity); m_CurveBuilder = curveParametrization; // do not apply any truncation (extrapolation) approach: m_LeftExtrapolator = GridPointCurve.Extrapolator.None.First.Create(curveParametrization); m_RightExtrapolator = GridPointCurve.Extrapolator.None.Last.Create(curveParametrization); m_ReadOnlyGridPointValues = new ReadOnlyCollection<double>(m_GridPointValues); m_ReadOnlyGridPointArguments = new ReadOnlyCollection<double>(m_GridPointArguments); m_State = GridPointCurve.State.GridPointChanged; }
/// <summary>Initializes a new instance of the <see cref="Differentiable"/> class. /// </summary> /// <param name="curveParametrizationFactory">The curve parametrization factory.</param> /// <param name="curveParametrization">The curve parametrization.</param> /// <param name="capacity">The number of elements that the new grid point curve can initially store.</param> internal Differentiable(GridPointCurve.Parametrization curveParametrizationFactory, ICurveDataFitting curveParametrization, int capacity) : base(curveParametrizationFactory, curveParametrization, capacity) { }