Beispiel #1
0
 public void Add(SimpleRow newRow)
 {
     if (isLeafNode)
     {
         if (CanAddElementToPage())
         {
             elements.Add(newRow);
         }
         else
         {
             SplitPage(newRow);
         }
         return;
     }
     var hash = CalculateHashForElement(newRow);
     children[hash].Add(newRow);
 }
Beispiel #2
0
        protected override bool CheckIfAnySubsetIsGenerator(SimpleRow row)
        {
            var subsets = GetSubsets(row.Transaction);
            foreach (var subset in subsets)
            {
                var support = 0;
                var description = GetDescription(subset);
                if (eachResults.ContainsKey(description))
                {
                    var value = eachResults[description];
                    support = value.RelationComplied + value.RelationNotComplied;
                }

                if (support == row.RelationComplied + row.RelationNotComplied)
                    return true;
            }

            return false;
        }
Beispiel #3
0
 private int CalculateHashForElement(SimpleRow newRow)
 {
     return newRow.Transaction[depth]%firstNumber;
 }
Beispiel #4
0
 private void SplitPage(SimpleRow newRow)
 {
     isLeafNode = false;
     InitializeChildren();
     elements.Add(newRow);
     foreach (var simpleRow in elements)
     {
         int hash = CalculateHashForElement(simpleRow);
         children[hash].Add(simpleRow);
     }
     elements = null;
 }
Beispiel #5
0
 protected virtual void OnAddNode(SimpleRow row)
 {
 }
Beispiel #6
0
 protected virtual bool CheckIfAnySubsetIsGenerator(SimpleRow row)
 {
     return false;
 }
Beispiel #7
0
 private void IncrementCounters(SimpleRow row, Row transaction)
 {
     if (transaction.Value == Relation.Complied)
     {
         row.RelationComplied += 1;
     }
     else
     {
         row.RelationNotComplied += 1;
     }
 }
Beispiel #8
0
 protected override void OnAddNode(SimpleRow row)
 {
     var description = GetDescription(row.Transaction);
     eachResults.Add(description, row);
 }