public static IList <double> Difference(this IList <double> data, IMemoryManagement mm = null) { var count = data.Count; var res = mm?.GetArray <double>(count) ?? new double[count]; for (var i = 1; i < count; i++) { res[i] = data[i] - data[i - 1]; } return(res); }
// public static IList<double> Decompress(this ISecurity sec, IReadOnlyList<double> data, IMemoryManagement mm = null, // IReadOnlyList<double> increment = null) // { // return Decompress(sec.P) // } public static IList <double> Decompress <T>(IReadOnlyList <T> originalBars, Interval curInterval, IReadOnlyList <double> data, IReadOnlyList <double> increment, Interval dataInterval, IReadOnlyList <T> compressedBars = null, IMemoryManagement mm = null) where T : class, IBaseBar { if (originalBars == null) { throw new ArgumentNullException(nameof(originalBars)); } if (data == null) { throw new ArgumentNullException(nameof(data)); } var count = originalBars.Count; if (compressedBars == null) { compressedBars = BarUtils.CompressTo(originalBars, dataInterval, curInterval); } var newBars = mm?.GetArray <double>(count) ?? new double[count]; var dataIntervalShift = dataInterval.Shift; var shift = (dataIntervalShift - curInterval.Shift).Ticks; var step = curInterval.Shift.Ticks; var steps = dataIntervalShift.Ticks / step; var k = -1; var ticks = 0L; for (var i = 0; i < originalBars.Count; i++) { var bar = originalBars[i]; var t = bar.Ticks; while (t >= ticks + shift && k < data.Count - 1) { var index = Math.Min(++k + 1, compressedBars.Count - 1); ticks = compressedBars[index].Ticks; } var curStep = (ticks - t - shift) / step + 1; var ci = Math.Max(k, 0); newBars[i] = data[ci] - increment[ci] * ((double)curStep / steps + 2); } return(newBars); }
public bool Update_Tick() { PCSX2Check(); if (pcsx2Running) { if (m == null) { if (System.Environment.OSVersion.Platform == PlatformID.Unix || System.Environment.OSVersion.Platform == PlatformID.MacOSX) { m = new LinuxMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]); } else { m = new WindowsMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]); } } SetGameOffset(); } return(pcsx2Running && loggedIn); }
private void tmr_Attach_Tick(object sender, EventArgs e) { PCSX2Check_Tick(); if (pcsx2Running) { if (System.Environment.OSVersion.Platform == PlatformID.Unix || System.Environment.OSVersion.Platform == PlatformID.MacOSX) { m = new LinuxMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]); } else { m = new WindowsMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]); } SetGameOffset(); SetComboBoxesFromData(); tmr_Attach.Enabled = false; tmr_readMem.Enabled = true; } }