// Sets up variables for a call to Analyzer.ComputeMaximalNonzeroEquivalenceClassRepresentativesStartingAt (and possibly other methods) private static void DoSetup( QuiverWithPotential <int> qp, out QPAnalyzer analyzer, out TransformationRuleTreeNode <int> ruleTree, out QPAnalysisSettings settings) { analyzer = new QPAnalyzer(); var ruleCreator = new TransformationRuleTreeCreator(); ruleTree = ruleCreator.CreateTransformationRuleTree(qp); settings = CreateSettings(detectNonCancellativity: false); }
/// <inheritdoc/> public void Do() { if (!TryGetQP(out var qp, out var periods, out var fixedPoint)) { return; } var analyzer = new QPAnalyzer(); var settings = new QPAnalysisSettings( CancellativityTypes.WeakCancellativity, maxPathLength: -1, EarlyTerminationConditions.None); Console.WriteLine("Analyzing QP ..."); var results = analyzer.AnalyzeUtilizingPeriodicityConcurrently(qp, periods, settings); PrintResults(results); }