public ActionResult Home(AnalysisParameters parameters) { if (ModelState.IsValid) { try { return(View("Result", new ContentProcessor().Process(parameters))); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.NameResolutionFailure) { ModelState.AddModelError("Content", "Provided host name can not be resolved"); } if (ex.Status == WebExceptionStatus.Timeout) { ModelState.AddModelError("Content", "No response was received during the time-out period for a request"); } } catch (UriFormatException) { ModelState.AddModelError("Content", "Please, insert a correct URI"); } catch (Exception ex) { ModelState.AddModelError("Content", ex.Message); } } return(View()); }
private AnalysisParameters getAnalysisParameters() { AnalysisParameters analysisParameters = new AnalysisParameters(); analysisParameters.Tuners = frequencySelectionControl.Tuners; analysisParameters.ScanningFrequency = frequencySelectionControl.SelectedFrequency; if (analysisParameters.ScanningFrequency as SatelliteFrequency != null) { SatelliteFrequency satelliteFrequency = (SatelliteFrequency)analysisParameters.ScanningFrequency; satelliteFrequency.SatelliteDish = new SatelliteDish(); satelliteFrequency.SatelliteDish.LNBLowBandFrequency = frequencySelectionControl.LNBLowBandFrequency; satelliteFrequency.SatelliteDish.LNBHighBandFrequency = frequencySelectionControl.LNBHighBandFrequency; satelliteFrequency.SatelliteDish.LNBSwitchFrequency = frequencySelectionControl.LNBSwitchFrequency; satelliteFrequency.SatelliteDish.DiseqcSwitch = frequencySelectionControl.DiseqcSwitch; } analysisParameters.UseSignalPresent = frequencySelectionControl.UseSignalPresent; analysisParameters.SwitchAfterPlay = frequencySelectionControl.SwitchAfterPlay; analysisParameters.RepeatDiseqc = frequencySelectionControl.RepeatDiseqc; analysisParameters.SignalLockTimeout = (int)nudSignalLockTimeout.Value; analysisParameters.DataCollectionTimeout = (int)nudDataCollectionTimeout.Value; analysisParameters.DumpFileName = tbDumpFile.Text; return(analysisParameters); }
public AnalysisResult Process(AnalysisParameters parameters) { AnalysisResult result = new AnalysisResult(); string textForAnalysis = parameters.Content; if (parameters.IsUrl) { HtmlDocument doc = new HtmlWeb().Load(parameters.Content); textForAnalysis = _contentParser.GetTextFromHtml(doc); if (parameters.IsAnalyzeMetaTags) { string metaTagsText = _contentParser.GetTextFromMetaTags(doc); if (!String.IsNullOrEmpty(metaTagsText)) { result.MetaTagsAnalysis = CalculateNumberOfOccurences(_contentParser.ParseText(metaTagsText)); } } if (parameters.IsCountExternalLinks) { result.ExternalLinksCount = _contentParser.CountExternalLinks(doc, new Uri(parameters.Content).Host); } } result.TextAnalysis = CalculateNumberOfOccurences(_contentParser.ParseText(textForAnalysis)); return(result); }
// Analysis public void SetAnalysisParameters(double[] wavelength, double wavelengthA, double wavelengthB, double bandA, double bandB, double wavelengthStart, double wavelengthEnd) { // New instance of analysis parameters class analysisParameters = new AnalysisParameters(); analysisParameters.MomentA = wavelengthStart; analysisParameters.MomentB = wavelengthEnd; analysisParameters.WavelengthA = wavelengthA; analysisParameters.WavelengthB = wavelengthB; analysisParameters.BandA = bandA; analysisParameters.BandB = bandB; // Pixel [index] double aLow = wavelengthA - (bandA / 2); double aHigh = wavelengthA + (bandA / 2); double bLow = wavelengthB - (bandB / 2); double bHigh = wavelengthB + (bandB / 2); analysisParameters.PixelA = convert2Pixel(wavelengthA, wavelength); analysisParameters.PixelA_Low = convert2Pixel(aLow, wavelength); analysisParameters.PixelA_High = convert2Pixel(aHigh, wavelength); analysisParameters.PixelB = convert2Pixel(wavelengthB, wavelength); analysisParameters.PixelB_Low = convert2Pixel(bLow, wavelength); analysisParameters.PixelB_High = convert2Pixel(bHigh, wavelength); analysisParameters.PixelA_Moment = convert2Pixel(analysisParameters.MomentA, wavelength); analysisParameters.PixelB_Moment = convert2Pixel(analysisParameters.MomentB, wavelength); }
/// <summary> /// Nullary constructor. /// </summary> public ProjectProperties() { AnalysisParams = new AnalysisParameters(); PlatformSymbolFileIdentifiers = new List <string>(); ExtensionScriptFileIdentifiers = new List <string>(); ProjectSyms = new SortedList <string, DefSymbol>(); }
/// <summary> /// Copy constructor. /// </summary> /// <param name="src">Object to clone.</param> public ProjectProperties(ProjectProperties src) : this() { CpuType = src.CpuType; IncludeUndocumentedInstr = src.IncludeUndocumentedInstr; EntryFlags = src.EntryFlags; AutoLabelStyle = src.AutoLabelStyle; AnalysisParams = new AnalysisParameters(src.AnalysisParams); // Clone PlatformSymbolFileIdentifiers foreach (string fileName in src.PlatformSymbolFileIdentifiers) { PlatformSymbolFileIdentifiers.Add(fileName); } // Clone ExtensionScriptFileIdentifiers foreach (string fileName in src.ExtensionScriptFileIdentifiers) { ExtensionScriptFileIdentifiers.Add(fileName); } // Clone ProjectSyms foreach (KeyValuePair <string, DefSymbol> kvp in src.ProjectSyms) { ProjectSyms[kvp.Key] = kvp.Value; } }
private void duStuff(ILoads rLoads, double mult, int i, ref ErrorInfo[] err, ref ICalculation calc) { ILoadCase lCase = rLoads.GetLoadCase(1, ItemAt.AtNo); AnalysisParameters param = new AnalysisParameters(); param.ModifyLoadingByFactor = true; param.LoadingFactor = mult; param.Method = AnalysisMethodType.SecondOrder; //Loads //lc.PrepareModification(); rLoads.PrepareModification(); try { lCase.SetAnalysisParameters(ref param); } finally { rLoads.FinishModification(); //lc.FinishModification(); lCase = null; } err = calc.Calculate(LoadingType.LoadCaseType, 1); if (err.Length == 0) { IResults res = calc.GetResultsInFeNodes(LoadingType.LoadCaseType, 1); MaximumResults max = res.GetMaximum(); Point3D point = max.Displacement; double value = Math.Sqrt(Math.Pow(point.X, 2) + Math.Pow(point.Y, 2) + Math.Pow(point.Z, 2)); chart1.Series["deflection"].Points.AddXY(i, value); } }
public AnalysisParameters(AnalysisParameters src) { AnalyzeUncategorizedData = src.AnalyzeUncategorizedData; DefaultTextScanMode = src.DefaultTextScanMode; MinCharsForString = src.MinCharsForString; SeekNearbyTargets = src.SeekNearbyTargets; SmartPlpHandling = src.SmartPlpHandling; }
public IActionResult LoadAnalyzeSettings(string settings) { var parameters = JsonConvert.DeserializeObject <AnalysisSettingsModel>(settings); AnalysisParameters.Parameters.AnalysisMethod = parameters.AnalysisMethod; AnalysisParameters.Parameters.ImportIds = parameters.ImportIds; AnalysisParameters.SetAdditionalArgs(parameters); ViewBag.Headers = AnalysisService.LoadImportHeaders(parameters.ImportIds); return(View()); }
private void cmdScan_Click(object sender, EventArgs e) { if (cmdScan.Text == "Stop Analysis") { Logger.Instance.Write("Stop analysis requested"); workerAnalyze.CancelAsync(); resetEvent.WaitOne(new TimeSpan(0, 0, 45)); cmdScan.Text = "Start Analysis"; lblScanning.Visible = false; pbarProgress.Visible = false; pbarProgress.Enabled = false; return; } if (!checkData()) { return; } analysisParameters = getAnalysisParameters(); if (analysisParameters.DumpFileName != null && analysisParameters.DumpFileName != string.Empty) { Logger.Instance.Write("Analysis started for file " + analysisParameters.DumpFileName); } else { Logger.Instance.Write("Analysis started for provider " + analysisParameters.ScanningFrequency.Provider.Name + " frequency " + analysisParameters.ScanningFrequency.ToString()); } cmdScan.Text = "Stop Analysis"; lblScanning.Text = "Scanning " + analysisParameters.ScanningFrequency.ToString(); lblScanning.Visible = true; pbarProgress.Visible = true; pbarProgress.Enabled = true; workerAnalyze = new BackgroundWorker(); workerAnalyze.WorkerSupportsCancellation = true; workerAnalyze.DoWork += new DoWorkEventHandler(doAnalysis); workerAnalyze.RunWorkerCompleted += new RunWorkerCompletedEventHandler(runWorkerCompleted); workerAnalyze.RunWorkerAsync(analysisParameters); }
static void Main(string[] args) { Console.WriteLine("Starting analysis."); var watch = Stopwatch.StartNew(); // Parse analysis arguments AnalysisParameters param = ParseInputArguments(args); // Read data files into Lists var spx = ReadFile <Index>(spxPriceDaily).OrderBy(x => x.Date); var vix = ReadFile <Vix>(vixDaily).OrderBy(x => x.Date); var vol = ReadFile <Volume>(volumeDaily).OrderBy(x => x.Date); // Make sure data files are starting at a common date if (spx.First().Date != vix.First().Date&& spx.First().Date != vol.First().Date&& spx.First().Date != vix.First().Date) { Console.WriteLine("ERROR: Start date of records do not match."); } // Calculate VROC for each data entry for (var i = 0; i < vol.Count(); i++) { if (i < param.VrocPeriod) { continue; } double vroc = GetVROC(vol, i, param.VrocPeriod); if (vroc > param.VrocThreshold) { Console.WriteLine("VROC at {0} on {1}", vroc, vol.ElementAt(i).Date); } } watch.Stop(); Console.WriteLine("Analysis complete. Total execution time: {0}ms", watch.ElapsedMilliseconds); Console.WriteLine("\nPress any key to exit."); Console.ReadKey(); }
public static AnalysisParameters ParseInputArguments(string[] args) { AnalysisParameters param = new AnalysisParameters(); // Get VROC period if (args.Length > 0) { param.VrocPeriod = Convert.ToInt32(args[0]); } // Get VROC threshold if (args.Length > 1) { param.VrocThreshold = Convert.ToDouble(args[1]); } Console.WriteLine("\nAnalysis parameters:"); Console.WriteLine("VROC period (in days) = {0}", param.VrocPeriod); Console.WriteLine("VROC threshold (percentage) = {0}\n", param.VrocThreshold); return(param); }
private double[,] ComputeCorrelationMatrix(List<double>[] ListValueDesc) { int NumDesc = ListValueDesc.Length; double[,] CorrelationMatrix = new double[NumDesc, NumDesc]; if (GlobalInfo.OptionsWindow.radioButtonMIC.Checked) { double[][] dataset1 = new double[NumDesc][]; string[] VarNames = new string[NumDesc]; for (int iDesc = 0; iDesc < NumDesc; iDesc++) { dataset1[iDesc] = new double[ListValueDesc[iDesc].Count]; Array.Copy(ListValueDesc[iDesc].ToArray(), dataset1[iDesc], ListValueDesc[iDesc].Count); VarNames[iDesc] = iDesc.ToString(); } data.Dataset data1 = new data.Dataset(dataset1, VarNames, 0); VarPairQueue Qu = new VarPairQueue(data1); for (int iDesc = 0; iDesc < NumDesc; iDesc++) for (int jDesc = 0; jDesc < NumDesc; jDesc++) { Qu.addPair(iDesc, jDesc); } Analysis ana = new Analysis(data1, Qu); AnalysisParameters param = new AnalysisParameters(); double resparam = param.commonValsThreshold; analysis.results.FullResult Full = new analysis.results.FullResult(); //List<analysis.results.BriefResult> Brief = new List<analysis.results.BriefResult>(); analysis.results.BriefResult Brief = new analysis.results.BriefResult(); java.lang.Class t = java.lang.Class.forName("analysis.results.BriefResult"); //java.lang.Class restype = null; ana.analyzePairs(t, param); // object o = (ana.varPairQueue().peek()); // ana.getClass(); // int resNum = ana.numResults(); analysis.results.Result[] res = ana.getSortedResults(); // double main = res[0].getMainScore(); for (int iDesc = 0; iDesc < NumDesc; iDesc++) for (int jDesc = 0; jDesc < NumDesc; jDesc++) { int X = int.Parse(res[jDesc + iDesc * NumDesc].getXVar()); int Y = int.Parse(res[jDesc + iDesc * NumDesc].getYVar()); CorrelationMatrix[X, Y] = res[jDesc + iDesc * NumDesc].getMainScore(); } } else { //return null; for (int iDesc = 0; iDesc < NumDesc; iDesc++) for (int jDesc = 0; jDesc < NumDesc; jDesc++) { try { if (GlobalInfo.OptionsWindow.radioButtonPearson.Checked) CorrelationMatrix[iDesc, jDesc] = (alglib.pearsoncorr2(ListValueDesc[iDesc].ToArray(), ListValueDesc[jDesc].ToArray())); else if (GlobalInfo.OptionsWindow.radioButtonSpearman.Checked) CorrelationMatrix[iDesc, jDesc] = (alglib.spearmancorr2(ListValueDesc[iDesc].ToArray(), ListValueDesc[jDesc].ToArray())); } catch { //Console.WriteLine("Input string is not a sequence of digits."); return null; } } } return CorrelationMatrix; }
public AnalysisParameters(AnalysisParameters src) { AnalyzeUncategorizedData = src.AnalyzeUncategorizedData; MinCharsForString = src.MinCharsForString; SeekNearbyTargets = src.SeekNearbyTargets; }
private AnalysisParameters getAnalysisParameters() { AnalysisParameters analysisParameters = new AnalysisParameters(); analysisParameters.Tuners = frequencySelectionControl.Tuners; analysisParameters.ScanningFrequency = frequencySelectionControl.SelectedFrequency; if (analysisParameters.ScanningFrequency as SatelliteFrequency != null) { SatelliteFrequency satelliteFrequency = (SatelliteFrequency)analysisParameters.ScanningFrequency; satelliteFrequency.SatelliteDish = new SatelliteDish(); satelliteFrequency.SatelliteDish.LNBLowBandFrequency = frequencySelectionControl.LNBLowBandFrequency; satelliteFrequency.SatelliteDish.LNBHighBandFrequency = frequencySelectionControl.LNBHighBandFrequency; satelliteFrequency.SatelliteDish.LNBSwitchFrequency = frequencySelectionControl.LNBSwitchFrequency; satelliteFrequency.SatelliteDish.DiseqcSwitch = frequencySelectionControl.DiseqcSwitch; } analysisParameters.UseSignalPresent = frequencySelectionControl.UseSignalPresent; analysisParameters.SwitchAfterPlay = frequencySelectionControl.SwitchAfterPlay; analysisParameters.RepeatDiseqc = frequencySelectionControl.RepeatDiseqc; analysisParameters.SignalLockTimeout = (int)nudSignalLockTimeout.Value; analysisParameters.DataCollectionTimeout = (int)nudDataCollectionTimeout.Value; analysisParameters.DumpFileName = tbDumpFile.Text; return (analysisParameters); }
private void getData(ISampleDataProvider dataProvider, AnalysisParameters analysisParameters, BackgroundWorker worker) { Logger.Instance.Write("Starting analysis"); analysisParameters.ScanningFrequency.CollectionType = CollectionType.MHEG5; FrequencyScanner frequencyScanner = new FrequencyScanner(dataProvider, worker); Collection<TVStation> stations = frequencyScanner.FindTVStations(); pidList = new Collection<PidSpec>(); dataProvider.ChangePidMapping(new int[] { -1 }); IntPtr memoryPointer = dataProvider.BufferAddress; int currentOffset = 0; byte[] buffer = new byte[188]; DateTime startTime = DateTime.Now; int packetCount = 0; int errorPackets = 0; int nullPackets = 0; while ((DateTime.Now - startTime).TotalSeconds < analysisParameters.DataCollectionTimeout && !worker.CancellationPending) { if (currentOffset >= dataProvider.BufferSpaceUsed) { Thread.Sleep(2000); if (currentOffset >= dataProvider.BufferSpaceUsed) { Logger.Instance.Write("Analysis resetting pid after " + packetCount + " packets (errors = " + errorPackets + " null = " + nullPackets + ")"); dataProvider.ChangePidMapping(new int[] { -1 }); currentOffset = 0; } } else { IntPtr currentPointer = new IntPtr(memoryPointer.ToInt64() + currentOffset + 136); Marshal.Copy(currentPointer, buffer, 0, 188); packetCount++; /*if (dumpCount < 10000) { Logger.Instance.Dump("atsc " + dumpCount, buffer, buffer.Length); dumpCount++; }*/ TransportPacket transportPacket = new TransportPacket(); try { transportPacket.Process(buffer); if (transportPacket.ErrorIndicator) errorPackets++; if (transportPacket.IsNullPacket) nullPackets++; if (!transportPacket.ErrorIndicator) { bool ignorePid = checkPid(transportPacket.PID, stations); if (!ignorePid) { PidSpec pidSpec = findPidSpec(pidList, transportPacket.PID); if (pidSpec == null) { pidSpec = new PidSpec(transportPacket.PID); addPid(pidList, new PidSpec(transportPacket.PID)); } pidSpec.ProcessPacket(buffer, transportPacket); } } else Logger.Instance.Write("Transport packet error in packet " + packetCount); } catch (ArgumentOutOfRangeException) { Logger.Instance.Write("Failed to parse packet " + packetCount); } currentOffset += buffer.Length; } } Logger.Instance.Write("Analysis completed: " + pidList.Count + " PID's loaded from " + packetCount + " packets"); }
private void cmdScan_Click(object sender, EventArgs e) { if (cmdScan.Text == "Stop Analysis") { Logger.Instance.Write("Stop analysis requested"); workerAnalyze.CancelAsync(); resetEvent.WaitOne(new TimeSpan(0, 0, 45)); cmdScan.Text = "Start Analysis"; lblScanning.Visible = false; pbarProgress.Visible = false; pbarProgress.Enabled = false; return; } if (!checkData()) return; analysisParameters = getAnalysisParameters(); if (analysisParameters.DumpFileName != null && analysisParameters.DumpFileName != string.Empty) Logger.Instance.Write("Analysis started for file " + analysisParameters.DumpFileName); else Logger.Instance.Write("Analysis started for provider " + analysisParameters.ScanningFrequency.Provider.Name + " frequency " + analysisParameters.ScanningFrequency.ToString()); cmdScan.Text = "Stop Analysis"; lblScanning.Text = "Scanning " + analysisParameters.ScanningFrequency.ToString(); lblScanning.Visible = true; pbarProgress.Visible = true; pbarProgress.Enabled = true; workerAnalyze = new BackgroundWorker(); workerAnalyze.WorkerSupportsCancellation = true; workerAnalyze.DoWork += new DoWorkEventHandler(doAnalysis); workerAnalyze.RunWorkerCompleted += new RunWorkerCompletedEventHandler(runWorkerCompleted); workerAnalyze.RunWorkerAsync(analysisParameters); }
private void getData(ISampleDataProvider dataProvider, AnalysisParameters analysisParameters, BackgroundWorker worker) { Logger.Instance.Write("Starting analysis"); analysisParameters.ScanningFrequency.CollectionType = CollectionType.MHEG5; FrequencyScanner frequencyScanner = new FrequencyScanner(dataProvider, worker); Collection <TVStation> stations = frequencyScanner.FindTVStations(); pidList = new Collection <PidSpec>(); dataProvider.ChangePidMapping(new int[] { -1 }); IntPtr memoryPointer = dataProvider.BufferAddress; int currentOffset = 0; byte[] buffer = new byte[188]; DateTime startTime = DateTime.Now; int packetCount = 0; int errorPackets = 0; int nullPackets = 0; while ((DateTime.Now - startTime).TotalSeconds < analysisParameters.DataCollectionTimeout && !worker.CancellationPending) { if (currentOffset >= dataProvider.BufferSpaceUsed) { Thread.Sleep(2000); if (currentOffset >= dataProvider.BufferSpaceUsed) { Logger.Instance.Write("Analysis resetting pid after " + packetCount + " packets (errors = " + errorPackets + " null = " + nullPackets + ")"); dataProvider.ChangePidMapping(new int[] { -1 }); currentOffset = 0; } } else { IntPtr currentPointer = new IntPtr(memoryPointer.ToInt64() + currentOffset + 136); Marshal.Copy(currentPointer, buffer, 0, 188); packetCount++; /*if (dumpCount < 10000) * { * Logger.Instance.Dump("atsc " + dumpCount, buffer, buffer.Length); * dumpCount++; * }*/ TransportPacket transportPacket = new TransportPacket(); try { transportPacket.Process(buffer); if (transportPacket.ErrorIndicator) { errorPackets++; } if (transportPacket.IsNullPacket) { nullPackets++; } if (!transportPacket.ErrorIndicator) { bool ignorePid = checkPid(transportPacket.PID, stations); if (!ignorePid) { PidSpec pidSpec = findPidSpec(pidList, transportPacket.PID); if (pidSpec == null) { pidSpec = new PidSpec(transportPacket.PID); addPid(pidList, new PidSpec(transportPacket.PID)); } pidSpec.ProcessPacket(buffer, transportPacket); } } else { Logger.Instance.Write("Transport packet error in packet " + packetCount); } } catch (ArgumentOutOfRangeException) { Logger.Instance.Write("Failed to parse packet " + packetCount); } currentOffset += buffer.Length; } } Logger.Instance.Write("Analysis completed: " + pidList.Count + " PID's loaded from " + packetCount + " packets"); }
private void doAnalysis(object sender, DoWorkEventArgs e) { AnalysisParameters analysisParameters = e.Argument as AnalysisParameters; pidList = null; TunerNodeType tunerNodeType; TuningSpec tuningSpec; SatelliteFrequency satelliteFrequency = analysisParameters.ScanningFrequency as SatelliteFrequency; if (satelliteFrequency != null) { tunerNodeType = TunerNodeType.Satellite; tuningSpec = new TuningSpec((Satellite)satelliteFrequency.Provider, satelliteFrequency); } else { TerrestrialFrequency terrestrialFrequency = analysisParameters.ScanningFrequency as TerrestrialFrequency; if (terrestrialFrequency != null) { tunerNodeType = TunerNodeType.Terrestrial; tuningSpec = new TuningSpec(terrestrialFrequency); } else { CableFrequency cableFrequency = analysisParameters.ScanningFrequency as CableFrequency; if (cableFrequency != null) { tunerNodeType = TunerNodeType.Cable; tuningSpec = new TuningSpec(cableFrequency); } else { AtscFrequency atscFrequency = analysisParameters.ScanningFrequency as AtscFrequency; if (atscFrequency != null) { if (atscFrequency.TunerType == TunerType.ATSC) { tunerNodeType = TunerNodeType.ATSC; } else { tunerNodeType = TunerNodeType.Cable; } tuningSpec = new TuningSpec(atscFrequency); } else { ClearQamFrequency clearQamFrequency = analysisParameters.ScanningFrequency as ClearQamFrequency; if (clearQamFrequency != null) { tunerNodeType = TunerNodeType.Cable; tuningSpec = new TuningSpec(clearQamFrequency); } else { ISDBSatelliteFrequency isdbSatelliteFrequency = analysisParameters.ScanningFrequency as ISDBSatelliteFrequency; if (isdbSatelliteFrequency != null) { tunerNodeType = TunerNodeType.ISDBS; tuningSpec = new TuningSpec((Satellite)satelliteFrequency.Provider, isdbSatelliteFrequency); } else { ISDBTerrestrialFrequency isdbTerrestrialFrequency = analysisParameters.ScanningFrequency as ISDBTerrestrialFrequency; if (isdbTerrestrialFrequency != null) { tunerNodeType = TunerNodeType.ISDBT; tuningSpec = new TuningSpec(isdbTerrestrialFrequency); } else { throw (new InvalidOperationException("Tuning frequency not recognized")); } } } } } } } Tuner currentTuner = null; bool finished = false; while (!finished) { if ((sender as BackgroundWorker).CancellationPending) { Logger.Instance.Write("Scan abandoned by user"); e.Cancel = true; resetEvent.Set(); return; } BDAGraph graph = BDAGraph.FindTuner(analysisParameters.Tuners, tunerNodeType, tuningSpec, currentTuner, analysisParameters.RepeatDiseqc, analysisParameters.SwitchAfterPlay); if (graph == null) { Logger.Instance.Write("<e> No tuner able to tune frequency " + analysisParameters.ScanningFrequency.ToString()); frequencySelectionControl.Invoke(new ShowMessage(showMessage), "No tuner able to tune frequency " + analysisParameters.ScanningFrequency.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); finished = true; } else { string tuneReply = checkTuning(graph, analysisParameters, sender as BackgroundWorker); if ((sender as BackgroundWorker).CancellationPending) { Logger.Instance.Write("Scan abandoned by user"); graph.Dispose(); e.Cancel = true; resetEvent.Set(); return; } if (tuneReply == null) { try { if (analysisParameters.DumpFileName == null || analysisParameters.DumpFileName == string.Empty) { getData(graph, analysisParameters, sender as BackgroundWorker); } else { SimulationDataProvider dataProvider = new SimulationDataProvider(analysisParameters.DumpFileName, graph.Frequency); string providerReply = dataProvider.Run(); if (providerReply != null) { Logger.Instance.Write("<e> Simulation Data Provider failed"); Logger.Instance.Write("<e> " + providerReply); frequencySelectionControl.Invoke(new ShowMessage(showMessage), "Simulation Data Provider failed." + Environment.NewLine + Environment.NewLine + providerReply, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { getData(dataProvider, analysisParameters, sender as BackgroundWorker); dataProvider.Stop(); } } } catch (IOException ex) { Logger.Instance.Write("<e> Failed to process dump file"); Logger.Instance.Write("<e> " + ex.Message); frequencySelectionControl.Invoke(new ShowMessage(showMessage), "Failed to process dump file." + Environment.NewLine + Environment.NewLine + ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error); } graph.Dispose(); finished = true; } else { Logger.Instance.Write("Failed to tune frequency " + analysisParameters.ScanningFrequency.ToString()); graph.Dispose(); currentTuner = graph.Tuner; } } } e.Cancel = true; resetEvent.Set(); }
static void Main(string[] args) { Console.WriteLine("Starting analysis"); var watch = Stopwatch.StartNew(); AnalysisParameters parameters = new AnalysisParameters(); // Read data files into Lists var spx = ReadFile <Index>(SpxPriceDaily).OrderBy(x => x.Date); var settlePrices = ReadFile <SettlePrices>(SpxSettlePrices).OrderBy(x => x.Date); int? expirationDay = null; Index expiration; Index expirationThursday = null; Index start = null; Index periodHigh = null; Index periodLow = null; bool foundFirstExpiration = false; bool foundExpiration = false; Index biggestMove = null; double biggestMoveAmount = 0; foreach (var day in spx) { if (DateTime.Compare(day.Date, parameters.StartDate) < 0) { continue; } if (day.Date.Day >= 1 && day.Date.Day <= 7) { // Reset foundExpiration flag during first week of the month foundExpiration = false; } if (expirationDay != null) { // Symbolizes first day after expiration start = day; expirationDay = null; periodHigh = day; periodLow = day; biggestMove = day; biggestMoveAmount = day.Close - day.Open; } else { if (periodHigh == null || day.High > periodHigh.High) { periodHigh = day; } if (periodLow == null || day.Low < periodLow.Low) { periodLow = day; } if (Math.Abs(day.Close - day.Open) > Math.Abs(biggestMoveAmount)) { biggestMove = day; biggestMoveAmount = day.Close - day.Open; } } // Capture the Thursday before the third Friday of the month (in case of holiday) if (day.Date.Day >= 14 && day.Date.Day <= 20) { if (day.Date.DayOfWeek == DayOfWeek.Thursday) { expirationThursday = day; } } // Try to find third Friday of the month (expiration day) if (day.Date.Day >= 15 && day.Date.Day <= 21) { if (day.Date.DayOfWeek == DayOfWeek.Friday) { foundExpiration = true; expiration = day; expirationDay = day.Date.Day; if (foundFirstExpiration) { double expirePrice = settlePrices.Single(x => x.Date == expiration.Date).SettlePrice; double spread = Math.Round(expirePrice - start.Open, 2); UpdateStats(spread); PrintIntervalStats(expiration, start, periodHigh, periodLow, biggestMove, expirePrice, biggestMoveAmount); } else { foundFirstExpiration = true; } } } // If we are passed the third week and still have not found the Friday expiration (it was a holiday), expiration was on the preceeding Thursday if (day.Date.Day > 21 && !foundExpiration) { if (expirationThursday == null) { Console.WriteLine("Error in data: Could not find Thursday or Friday expiration"); throw new Exception("Error in data: Could not find Thursday or Friday expiration"); } foundExpiration = true; expirationDay = day.Date.Day; if (foundFirstExpiration) { double expirePrice = settlePrices.Single(x => x.Date == expirationThursday.Date).SettlePrice; double spread = Math.Round(expirePrice - start.Open, 2); UpdateStats(spread); PrintIntervalStats(expirationThursday, start, periodHigh, periodLow, biggestMove, expirePrice, biggestMoveAmount); } else { foundFirstExpiration = true; } } } watch.Stop(); PrintFinalStats(); Console.WriteLine("Analysis complete. Total execution time: {0}ms", watch.ElapsedMilliseconds); Console.WriteLine("\nPress any key to exit"); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("Starting analysis"); var watch = Stopwatch.StartNew(); AnalysisParameters parameters = new AnalysisParameters(); // Read data files into Lists var spx = ReadFile <Index>(SpxPriceDaily).OrderBy(x => x.Date); var settlePrices = ReadFile <SettlePrices>(SpxSettlePrices).OrderBy(x => x.Date); Index expirationFriday; Index expirationThursday = null; Index start = null; Index periodHigh = null; Index periodLow = null; bool foundFirstExpiration = false; bool foundExpiration = false; Index biggestMove = null; double biggestMoveAmount = 0; // Monday open stats Index mondayOpen = null; Index m_periodHigh = null; Index m_periodLow = null; Index m_biggestMove = null; double m_biggestMoveAmount = 0; // Tuesday open stats Index tuesdayOpen = null; Index t_periodHigh = null; Index t_periodLow = null; Index t_biggestMove = null; double t_biggestMoveAmount = 0; foreach (var day in spx) { if (DateTime.Compare(day.Date, parameters.StartDate) < 0) { continue; } // Reset some flags during first week of the month if (day.Date.Day >= 1 && day.Date.Day <= 7) { foundExpiration = false; expirationThursday = null; mondayOpen = null; tuesdayOpen = null; } if (mondayOpen != null) { if (day.High > m_periodHigh.High) { m_periodHigh = day; } if (day.Low < m_periodLow.Low) { m_periodLow = day; } if (Math.Abs(day.Close - day.Open) > Math.Abs(m_biggestMoveAmount)) { m_biggestMove = day; m_biggestMoveAmount = day.Close - day.Open; } } if (day.Date.Day >= 11 && day.Date.Day <= 17) { if (day.Date.DayOfWeek == DayOfWeek.Monday) { mondayOpen = day; m_periodHigh = day; m_periodLow = day; m_biggestMove = day; m_biggestMoveAmount = day.Close - day.Open; } } if (tuesdayOpen != null) { if (day.High > t_periodHigh.High) { t_periodHigh = day; } if (day.Low < t_periodLow.Low) { t_periodLow = day; } if (Math.Abs(day.Close - day.Open) > Math.Abs(t_biggestMoveAmount)) { t_biggestMove = day; t_biggestMoveAmount = day.Close - day.Open; } } if (day.Date.Day >= 12 && day.Date.Day <= 18) { if (day.Date.DayOfWeek == DayOfWeek.Tuesday) { tuesdayOpen = day; t_periodHigh = day; t_periodLow = day; t_biggestMove = day; t_biggestMoveAmount = day.Close - day.Open; } } // Try to find third Friday of the month (expiration day) if (day.Date.Day >= 15 && day.Date.Day <= 21 && !foundExpiration) { if (expirationThursday != null && day.Date.DayOfWeek != DayOfWeek.Friday) { foundExpiration = true; if (foundFirstExpiration) { double expirePrice = settlePrices.Single(x => x.Date == expirationThursday.Date).SettlePrice; if (mondayOpen == null && tuesdayOpen == null) { throw new Exception("Error in data: Could not find Monday or Tuesday open"); } double spread = mondayOpen != null?Math.Round(expirePrice - mondayOpen.Open, 2) : Math.Round(expirePrice - tuesdayOpen.Open, 2); UpdateStats(spread); PrintIntervalStats(expirationThursday, mondayOpen ?? tuesdayOpen, mondayOpen != null ? m_periodHigh : t_periodHigh, mondayOpen != null ? m_periodLow : t_periodLow, mondayOpen != null ? m_biggestMove : t_biggestMove, expirePrice, mondayOpen != null ? m_biggestMoveAmount : t_biggestMoveAmount); } else { foundFirstExpiration = true; } mondayOpen = null; tuesdayOpen = null; } if (day.Date.DayOfWeek == DayOfWeek.Friday) { foundExpiration = true; expirationFriday = day; if (foundFirstExpiration) { double expirePrice = settlePrices.Single(x => x.Date == expirationFriday.Date).SettlePrice; if (mondayOpen == null && tuesdayOpen == null) { throw new Exception("Error in data: Could not find Monday or Tuesday open"); } double spread = mondayOpen != null?Math.Round(expirePrice - mondayOpen.Open, 2) : Math.Round(expirePrice - tuesdayOpen.Open, 2); UpdateStats(spread); PrintIntervalStats(expirationFriday, mondayOpen ?? tuesdayOpen, mondayOpen != null ? m_periodHigh : t_periodHigh, mondayOpen != null ? m_periodLow : t_periodLow, mondayOpen != null ? m_biggestMove : t_biggestMove, expirePrice, mondayOpen != null ? m_biggestMoveAmount : t_biggestMoveAmount); } else { foundFirstExpiration = true; } mondayOpen = null; tuesdayOpen = null; } } // Capture the Thursday before the third Friday of the month (in case of holiday) if (day.Date.Day >= 14 && day.Date.Day <= 20) { if (day.Date.DayOfWeek == DayOfWeek.Thursday) { expirationThursday = day; } } } watch.Stop(); PrintFinalStats(); Console.WriteLine("Analysis complete. Total execution time: {0}ms", watch.ElapsedMilliseconds); Console.WriteLine("\nPress any key to exit"); Console.ReadLine(); }
private string checkTuning(BDAGraph graph, AnalysisParameters analysisParameters, BackgroundWorker worker) { TimeSpan timeout = new TimeSpan(); bool done = false; bool locked = false; int frequencyRetries = 0; while (!done) { if (worker.CancellationPending) { Logger.Instance.Write("Analysis abandoned by user"); return(null); } locked = graph.SignalLocked; if (!locked) { int signalQuality = graph.SignalQuality; if (signalQuality > 0) { Logger.Instance.Write("Signal not locked but signal quality > 0"); locked = true; done = true; } else { if (!analysisParameters.UseSignalPresent) { Logger.Instance.Write("Signal not locked and signal quality not > 0"); Thread.Sleep(1000); timeout = timeout.Add(new TimeSpan(0, 0, 1)); done = (timeout.TotalSeconds == analysisParameters.SignalLockTimeout); } else { bool signalPresent = graph.SignalPresent; if (signalPresent) { Logger.Instance.Write("Signal present"); locked = true; done = true; } else { Logger.Instance.Write("Signal not present"); Thread.Sleep(1000); timeout = timeout.Add(new TimeSpan(0, 0, 1)); done = (timeout.TotalSeconds == analysisParameters.SignalLockTimeout); } } if (done) { done = (frequencyRetries == 2); if (done) { Logger.Instance.Write("<e> Failed to acquire signal"); } else { Logger.Instance.Write("Retrying frequency"); timeout = new TimeSpan(); frequencyRetries++; } } } } else { Logger.Instance.Write("Signal acquired: lock is " + graph.SignalLocked + " quality is " + graph.SignalQuality + " strength is " + graph.SignalStrength); done = true; } } if (locked) { return(null); } else { return("<e> The tuner failed to acquire a signal for frequency " + analysisParameters.ScanningFrequency.ToString()); } }
public void DisplayMINE(List<double>[] ListValueDesc) { int NumDesc = ListValueDesc.Length; double[,] CorrelationMatrix = new double[NumDesc, NumDesc]; double[][] dataset1 = new double[NumDesc][]; string[] VarNames = new string[NumDesc]; for (int iDesc = 0; iDesc < NumDesc; iDesc++) { dataset1[iDesc] = new double[ListValueDesc[iDesc].Count]; Array.Copy(ListValueDesc[iDesc].ToArray(), dataset1[iDesc], ListValueDesc[iDesc].Count); VarNames[iDesc] = iDesc.ToString(); } data.Dataset data1 = new data.Dataset(dataset1, VarNames, 0); VarPairQueue Qu = new VarPairQueue(data1); for (int iDesc = 0; iDesc < NumDesc; iDesc++) for (int jDesc = 0; jDesc < iDesc; jDesc++) { Qu.addPair(iDesc, jDesc); } Analysis ana = new Analysis(data1, Qu); AnalysisParameters param = new AnalysisParameters(); double resparam = param.commonValsThreshold; // analysis.results.FullResult Full = new analysis.results.FullResult(); //List<analysis.results.BriefResult> Brief = new List<analysis.results.BriefResult>(); //analysis.results.BriefResult Brief = new analysis.results.BriefResult(); java.lang.Class t = java.lang.Class.forName("analysis.results.BriefResult"); //java.lang.Class restype = null; ana.analyzePairs(t, param); // object o = (ana.varPairQueue().peek()); // ana.getClass(); // int resNum = ana.numResults(); analysis.results.Result[] res = ana.getSortedResults(); List<string[]> ListValues = new List<string[]>(); List<string> NameX = CompleteScreening.ListDescriptors.GetListNameActives(); List<bool> ListIscolor = new List<bool>(); for (int Idx = 0; Idx < res.Length; Idx++) { ListValues.Add(res[Idx].toString().Split(',')); ListValues[Idx][0] = NameX[int.Parse(ListValues[Idx][0])]; ListValues[Idx][1] = NameX[int.Parse(ListValues[Idx][1])]; } string[] ListNames = res[0].getHeader().Split(','); ListNames[0] = "Descriptor A"; ListNames[1] = "Descriptor B"; for (int NIdx = 0; NIdx < ListNames.Length; NIdx++) { if (NIdx == 0) ListIscolor.Add(false); else if (NIdx == 1) ListIscolor.Add(false); else ListIscolor.Add(true); } cDisplayTable DisplayForTable = new cDisplayTable("MINE Analysis results", ListNames, ListValues, GlobalInfo, true); }
public void Run() { // define names string[] VarNames = new string[Input.Count]; double[][] dataset = new double[Input.Count][]; int Idx = 0; foreach (var item in Input) { dataset[Idx] = new double[item.Count]; Array.Copy(item.ToArray(), dataset[Idx], item.Count); VarNames[Idx++] = item.Name; } //// define data data.Dataset data_Set = new data.Dataset(dataset, VarNames, 0); analysis.VarPairQueue Qu = new analysis.VarPairQueue(data_Set); for(int Idx_0=0;Idx_0<this.Input.Count;Idx_0++) for (int Idx_1 = 0; Idx_1 <= Idx_0; Idx_1++) Qu.addPair(Idx_1,Idx_0); Analysis ana = new Analysis(data_Set, Qu); AnalysisParameters param = new AnalysisParameters(); double resparam = param.commonValsThreshold; java.lang.Class t = java.lang.Class.forName("analysis.results.FullResult"); if(this.Is_BriefReport) t = java.lang.Class.forName("analysis.results.BriefResult"); ana.analyzePairs(t, param); analysis.results.Result[] res = ana.getSortedResults(); List<string[]> ListValues = new List<string[]>(); List<bool> ListIscolor = new List<bool>(); for (Idx = 0; Idx < res.Length; Idx++) { ListValues.Add(res[Idx].toString().Split(',')); } string[] ListNames = res[0].getHeader().Split(','); this.Output = new cListExtendedTable(); for (int IdxTest = 2; IdxTest < ListNames.Length; IdxTest++) // loop over all the different type of results { // remove useless informations if (ListNames[IdxTest] == "MI via KDE") continue; if (ListNames[IdxTest] == "Fisher") continue; if (ListNames[IdxTest] == "last value") continue; if (ListNames[IdxTest] == "MAS found at (X)") continue; if (ListNames[IdxTest] == "MAS found at (Y)") continue; if (ListNames[IdxTest] == "MICfound at (Y)") continue; double[,] TmpTable = new double[VarNames.Length, VarNames.Length]; for (int i = 0; i < res.Length; i++) // loop over the different pairs { string TmpName0 = res[i].getXVar(); string TmpName1 = res[i].getYVar(); int Idx_var0 = 0; int Idx_var1 = 0; for (Idx_var0 = 0; Idx_var0 < VarNames.Length; Idx_var0++) if(VarNames[Idx_var0]==TmpName0) break; for (Idx_var1 = 0; Idx_var1 < VarNames.Length; Idx_var1++) if (VarNames[Idx_var1] == TmpName1) break; double Value=0; double.TryParse(res[i].toString().Split(',')[IdxTest], out Value); TmpTable[Idx_var0, Idx_var1] = TmpTable[Idx_var1, Idx_var0] = Value; } cExtendedTable NewTable = new cExtendedTable(TmpTable); NewTable.ListRowNames = new List<string>(); for (int i = 0; i < VarNames.Length; i++) { NewTable.ListRowNames.Add(VarNames[i]); NewTable[i].Name = VarNames[i]; if (CurrentScreening != null) { int IdxDesc = cGlobalInfo.CurrentScreening.ListDescriptors.GetDescriptorIndex(NewTable[i].Name); if (IdxDesc > -1) { NewTable[i].Tag = cGlobalInfo.CurrentScreening.ListDescriptors[IdxDesc]; } } } NewTable.Name = ListNames[IdxTest]; this.Output.Add(NewTable); } }
private string checkTuning(BDAGraph graph, AnalysisParameters analysisParameters, BackgroundWorker worker) { TimeSpan timeout = new TimeSpan(); bool done = false; bool locked = false; int frequencyRetries = 0; while (!done) { if (worker.CancellationPending) { Logger.Instance.Write("Analysis abandoned by user"); return (null); } locked = graph.SignalLocked; if (!locked) { int signalQuality = graph.SignalQuality; if (signalQuality > 0) { Logger.Instance.Write("Signal not locked but signal quality > 0"); locked = true; done = true; } else { if (!analysisParameters.UseSignalPresent) { Logger.Instance.Write("Signal not locked and signal quality not > 0"); Thread.Sleep(1000); timeout = timeout.Add(new TimeSpan(0, 0, 1)); done = (timeout.TotalSeconds == analysisParameters.SignalLockTimeout); } else { bool signalPresent = graph.SignalPresent; if (signalPresent) { Logger.Instance.Write("Signal present"); locked = true; done = true; } else { Logger.Instance.Write("Signal not present"); Thread.Sleep(1000); timeout = timeout.Add(new TimeSpan(0, 0, 1)); done = (timeout.TotalSeconds == analysisParameters.SignalLockTimeout); } } if (done) { done = (frequencyRetries == 2); if (done) Logger.Instance.Write("<e> Failed to acquire signal"); else { Logger.Instance.Write("Retrying frequency"); timeout = new TimeSpan(); frequencyRetries++; } } } } else { Logger.Instance.Write("Signal acquired: lock is " + graph.SignalLocked + " quality is " + graph.SignalQuality + " strength is " + graph.SignalStrength); done = true; } } if (locked) return (null); else return ("<e> The tuner failed to acquire a signal for frequency " + analysisParameters.ScanningFrequency.ToString()); }