internal PatternTree GetPatternAtDepth(string ptPreorderString, Depth depth) { if (DepthBasedFrequentPts.ContainsKey(depth) && DepthBasedFrequentPts[depth].ContainsKey(ptPreorderString)) { return(DepthBasedFrequentPts[depth][ptPreorderString]); } return(null); }
internal void SetDepth(Depth maxDepth) { MaxDepth = maxDepth; for (var i = 0; i < MaxDepth; i++) { DepthBasedFrequentPts.Add(i, new Dictionary <string, PatternTree>()); } }
internal PatternTree[] GetPotentialMaximalAtDepth(Depth depth) { if (DepthBasedFrequentPts.ContainsKey(depth)) { return(DepthBasedFrequentPts[depth].Values.Where(pt => pt.HasSuperFrequentPattern == YesNoUnknown.Unknown).ToArray()); } return(new PatternTree[] { }); }
internal PatternTree[] GetCombinableAtDepth(Depth depth) { var rDi = new List <PatternTree>(); if (DepthBasedFrequentPts.ContainsKey(depth)) { rDi.AddRange(DepthBasedFrequentPts[depth].Values.Where(pt => pt.AbleToCombine && pt.SingleChild)); } return(rDi.ToArray()); }
internal PatternTree[] GetClosedAndMaximalUnknownAtDepth(Depth depth) { if (DepthBasedFrequentPts.ContainsKey(depth)) { return(DepthBasedFrequentPts[depth].Values.Where( pt => pt.IsClosed == YesNoUnknown.Unknown || pt.IsMaximal == YesNoUnknown.Unknown).ToArray()); } return(new PatternTree[] { }); }
/// <summary> /// Get the set of frequent patterns, in which, everyone has at least one /// occurrence at the specified depth. /// </summary> /// <param name="depth">Specified depth.</param> /// <returns></returns> internal List <PatternTree> GetToBeConnectedAtDepth(Depth depth) { var cDi = new List <PatternTree>(); if (DepthBasedFrequentPts.ContainsKey(depth)) { cDi.AddRange(from v in DepthBasedFrequentPts[depth] where v.Value.AbleToBeConnected select v.Value); } return(cDi); }
internal PatternTree[] GetToBeConnectableAtDepth(Depth depth) { var fDi = new List <PatternTree>(); if (DepthBasedFrequentPts.ContainsKey(depth)) { fDi.AddRange(DepthBasedFrequentPts[depth].Values.Where(pt => pt.AbleToBeConnected)); } return(fDi.ToArray()); }
/// <summary> /// Get the set of frequent patterns, in which, everyone has at least one /// occurrence at the specified depth. /// </summary> /// <param name="depth">Specified depth.</param> /// <returns></returns> internal List <PatternTree> GetFrequentsAtDepth(Depth depth) { var fDi = new List <PatternTree>(); if (DepthBasedFrequentPts.ContainsKey(depth)) { fDi.AddRange(from fpt in DepthBasedFrequentPts[depth] select fpt.Value); } return(fDi); }
/// <summary> /// Get the set of frequent patterns, in which, everyone has at least one /// occurrence at the specified depth and has fanout of 1. /// </summary> /// <param name="depth">Specified depth.</param> /// <returns></returns> internal List <PatternTree> GetFanout1FrequentsAtDepth(Depth depth) { var rDi = new List <PatternTree>(); if (DepthBasedFrequentPts.ContainsKey(depth)) { rDi.AddRange(from fpt in DepthBasedFrequentPts[depth] where fpt.Value.SingleChild select fpt.Value); } return(rDi); }