引入redis服务,支持自动化单元测试
大石头 编写于 2022-03-31 22:56:30
X
using System;
using NewLife.Data;

namespace NewLife.Algorithms
{
    /// <summary>
    /// 线性插值
    /// </summary>
    public class LinearInterpolation : IInterpolation
    {
        /// <summary>
        /// 插值处理
        /// </summary>
        /// <param name="data">数据</param>
        /// <param name="prev">上一个点索引</param>
        /// <param name="next">下一个点索引</param>
        /// <param name="current">当前点时间值</param>
        /// <returns></returns>
        public Double Process(TimePoint[] data, Int32 prev, Int32 next, Int64 current)
        {
            var dt = (data[next].Value - data[prev].Value) / (data[next].Time - data[prev].Time);
            return data[prev].Value + (current - data[prev].Time) * dt;
        }
    }
}