public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { Relation[] relations = PerseusUtils.GetRelationsNumFilter(param, out string errString, out int[] colInds, out bool and); if (errString != null) { processInfo.ErrString = errString; return; } double[][] rows = GetRows(mdata, colInds); List <int> valids = new List <int>(); List <int> notvalids = new List <int>(); for (int i = 0; i < rows.Length; i++) { bool valid = PerseusUtils.IsValidRowNumFilter(rows[i], relations, and); if (!valid) { notvalids.Add(i); } } if (param.GetParam <int>("Filter mode").Value == 2) { supplTables = new[] { PerseusPluginUtils.CreateSupplTabSplit(mdata, notvalids.ToArray()) }; } PerseusPluginUtils.FilterRowsNew(mdata, param, GetValids(mdata, colInds, relations, and)); }
public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { Relation[] relations = PerseusUtils.GetRelationsNumFilter(param, out string errString, out int[] colInds, out bool and); if (errString != null) { processInfo.ErrString = errString; return; } PerseusPluginUtils.FilterRows(mdata, param, GetValids(mdata, colInds, relations, and)); }