private void FrmMain_Load(object sender, EventArgs args) { gPane1 = zgGraph1.GraphPane; gPane2 = zgGraph2.GraphPane; gPane3 = zgGraph3.GraphPane; InitGraphPane(gPane1, "Log(n)^2 (n = Network Size)", "Total Bits Sent"); InitGraphPane(gPane2, "Log(n) (n = Network Size)", "Total Search Time (ms)"); InitGraphPane(gPane3, "Log(n) (n = Network Size)", "Avg. Space Per Node (bits)"); //InitGraphPane(gPane1, "Network Size", "Total Bits Sent"); //InitGraphPane(gPane2, "Network Size", "Total Search Time (ms)"); //InitGraphPane(gPane3, "Network Size", "Avg. Space Per Node (bits)"); curveMessages = gPane1.AddCurve("Total Bits Sent vs. Size of Network", null, Color.Blue, SymbolType.None); curveTime = gPane2.AddCurve("Total Search Time vs. Size of Network", null, Color.Red, SymbolType.None); curveMemory = gPane3.AddCurve("Total Memory vs. Size of Network", null, Color.Green, SymbolType.None); curveMessages.Line.Width = 1.6F; curveMessages.Line.IsAntiAlias = true; curveTime.Line.Width = 1.6F; curveTime.Line.IsAntiAlias = true; curveMemory.Line.Width = 1.6F; curveMemory.Line.IsAntiAlias = true; for (int i = 6; i < 11; i++) { var bn = new ButterflyNetwork <Image>(); // 842667722 n = (int)Math.Pow(2, i); int B = 3, C = 3, D = 3, T = 3; double a = 0.1, b = 6.5; //int n = (int)Math.Pow(2, i); //double e = 0.05; //double d = 0.9; //double a = 0.25; //double ap = 0.095; //double b = 1.001; //double g = 0.2; //int B = (int)Math.Round(1 / g * Math.Log(Math.E/e, Math.E)); //int C = (int)Math.Round(10 / 3 * (2 * Math.Log(2 * Math.E, Math.E)) / (d * (1 - g) * Math.Pow(1 - (2 * a), 2))); //int D = (int)Math.Round(b / (ap * (a - ap)) * (ap * Math.Log(b * Math.E / ap, Math.E) + (a - ap) * Math.Log(b * Math.E / (a - ap), Math.E) + 2/C)); //int T = (int)Math.Round(1 / (1 - d) * Math.Log(Math.E / e, Math.E)); bn.InitializationFinished += new ButterflyNetwork <Image> .InitializationHandler(bn_InitializationFinished); bn.SearchStarted += new ButterflyNetwork <Image> .SearchFinishedHandler(bn_SearchStarted); bn.SearchFinished += new ButterflyNetwork <Image> .SearchFinishedHandler(bn_SearchFinished); bn.InitializeNetwork(n, B, C, D, T, a, b); var images = new List <ImageDataItem>(); var filePaths = Directory.GetFiles(@"c:\images256"); foreach (var filePath in filePaths.Take(2)) { images.Add(new ImageDataItem(filePath)); } bn.StoreDataItems(images); var query = new ImageDataItem() { Title = Path.GetFileNameWithoutExtension(filePaths[0]) }; bn.Search(query, 8); bn.Run(); curveMessages.AddPoint(n, bn.SentSize * 8 / n); zgGraph1.RestoreScale(gPane1); } }
private void FrmMain_Load(object sender, EventArgs args) { gPane1 = zgGraph1.GraphPane; gPane2 = zgGraph2.GraphPane; gPane3 = zgGraph3.GraphPane; InitGraphPane(gPane1, "Log(n)^2 (n = Network Size)", "Total Bits Sent"); InitGraphPane(gPane2, "Log(n) (n = Network Size)", "Total Search Time (ms)"); InitGraphPane(gPane3, "Log(n) (n = Network Size)", "Avg. Space Per Node (bits)"); //InitGraphPane(gPane1, "Network Size", "Total Bits Sent"); //InitGraphPane(gPane2, "Network Size", "Total Search Time (ms)"); //InitGraphPane(gPane3, "Network Size", "Avg. Space Per Node (bits)"); curveMessages = gPane1.AddCurve("Total Bits Sent vs. Size of Network", null, Color.Blue, SymbolType.None); curveTime = gPane2.AddCurve("Total Search Time vs. Size of Network", null, Color.Red, SymbolType.None); curveMemory = gPane3.AddCurve("Total Memory vs. Size of Network", null, Color.Green, SymbolType.None); curveMessages.Line.Width = 1.6F; curveMessages.Line.IsAntiAlias = true; curveTime.Line.Width = 1.6F; curveTime.Line.IsAntiAlias = true; curveMemory.Line.Width = 1.6F; curveMemory.Line.IsAntiAlias = true; for (int i = 6; i < 11; i++) { var bn = new ButterflyNetwork<Image>(); // 842667722 n = (int)Math.Pow(2, i); int B = 3, C = 3, D = 3, T = 3; double a = 0.1, b = 6.5; //int n = (int)Math.Pow(2, i); //double e = 0.05; //double d = 0.9; //double a = 0.25; //double ap = 0.095; //double b = 1.001; //double g = 0.2; //int B = (int)Math.Round(1 / g * Math.Log(Math.E/e, Math.E)); //int C = (int)Math.Round(10 / 3 * (2 * Math.Log(2 * Math.E, Math.E)) / (d * (1 - g) * Math.Pow(1 - (2 * a), 2))); //int D = (int)Math.Round(b / (ap * (a - ap)) * (ap * Math.Log(b * Math.E / ap, Math.E) + (a - ap) * Math.Log(b * Math.E / (a - ap), Math.E) + 2/C)); //int T = (int)Math.Round(1 / (1 - d) * Math.Log(Math.E / e, Math.E)); bn.InitializationFinished += new ButterflyNetwork<Image>.InitializationHandler(bn_InitializationFinished); bn.SearchStarted += new ButterflyNetwork<Image>.SearchFinishedHandler(bn_SearchStarted); bn.SearchFinished += new ButterflyNetwork<Image>.SearchFinishedHandler(bn_SearchFinished); bn.InitializeNetwork(n, B, C, D, T, a, b); var images = new List<ImageDataItem>(); var filePaths = Directory.GetFiles(@"c:\images256"); foreach (var filePath in filePaths.Take(2)) { images.Add(new ImageDataItem(filePath)); } bn.StoreDataItems(images); var query = new ImageDataItem() { Title = Path.GetFileNameWithoutExtension(filePaths[0]) }; bn.Search(query, 8); bn.Run(); curveMessages.AddPoint(n, bn.SentSize * 8 / n); zgGraph1.RestoreScale(gPane1); } }