Ejemplo n.º 1
0
        /*
         * private void ResetDensityMatrixGrid()
         * {
         *  DensityMatrixBlock.Text = string.Empty;
         *  DensityMatrixGrid.Visibility = Visibility.Collapsed;
         * }
         *
         * private void ResetTransformedMatrixGrid()
         * {
         *  TransformedMatrixBlock.Text = string.Empty;
         *  TransformedMatrixGrid.Visibility = Visibility.Collapsed;
         * }
         *
         * private void ResetSingularResults()
         * {
         *  UMatrixBlock.Text = string.Empty;
         *  SigmaMatrixBlock.Text = string.Empty;
         *  VTMatrixBlock.Text = string.Empty;
         *  SingularValuesBlock.Text = string.Empty;
         *  SigmaRankBlock.Text = string.Empty;
         *  TraceNormBlock.Text = string.Empty;
         *  SvdDecompositionGrid.Visibility = Visibility.Collapsed;
         *  SingularValuesGrid.Visibility = Visibility.Collapsed;
         *  SigmaRankGrid.Visibility = Visibility.Collapsed;
         *  TraceNormGrid.Visibility = Visibility.Collapsed;
         * }
         *
         * private void ResetEigenValuesGrid()
         * {
         *  EigenvaluesBlock.Text = string.Empty;
         *  EigenvaluesGrid.Visibility = Visibility.Collapsed;
         * }
         */
        /*
         * private void SvdDisplay()
         * {
         *  SchmidtDecomposition svd = (SchmidtDecomposition)Criterion;
         *  UMatrixBlock.Text = svd.U.ToString(2);
         *  SigmaMatrixBlock.Text = svd.Sigma.ToString(2);
         *  VTMatrixBlock.Text = svd.VT.ToString(2);
         *  for (int i = 0; i < svd.SingularValues.Length; i++)
         *      SingularValuesBlock.Text += svd.SingularValues[i].Real.ToString("n2") + " ";
         *  SigmaRankBlock.Text = svd.SigmaRank.ToString();;
         *  TraceNormBlock.Text = svd.TraceNorm.ToString("n2");
         *  SvdDecompositionGrid.Visibility = Visibility.Visible;
         *  SingularValuesGrid.Visibility = Visibility.Visible;
         *  SigmaRankGrid.Visibility = Visibility.Visible;
         *  TraceNormGrid.Visibility = Visibility.Visible;
         * }
         */

        /*
         * private void CCNRDisplay()
         * {
         * if(State != null) { DensityMatrixBlock.Text = StateOperator.FromQuantumState(State).ToString(2); }
         * ComputableCrossNormCriterion ccnr = (ComputableCrossNormCriterion)Criterion;
         * TransformedMatrixBlock.Text = ccnr.EvaluatedMatrix.ToString(2);
         * TransformedMatrixGrid.Visibility = Visibility.Visible;
         * UMatrixBlock.Text = ccnr.U.ToString(2);
         * SigmaMatrixBlock.Text = ccnr.Sigma.ToString(2);
         * VTMatrixBlock.Text = ccnr.VT.ToString(2);
         * for(int i = 0; i < ccnr.SingularValues.Length; i++)
         *  SingularValuesBlock.Text += ccnr.SingularValues[i].Real.ToString("n2") + " ";
         * SigmaRankBlock.Text = ccnr.SigmaRank.ToString(); ;
         * TraceNormBlock.Text = ccnr.TraceNorm.ToString("n2");
         * SvdDecompositionGrid.Visibility = Visibility.Visible;
         * SingularValuesGrid.Visibility = Visibility.Visible;
         * SigmaRankGrid.Visibility = Visibility.Visible;
         * TraceNormGrid.Visibility = Visibility.Visible;
         * }
         */

        /*
         * private void PPTDisplay()
         * {
         * PPTCriterion ppt = (PPTCriterion)Criterion;
         * if(State != null) { DensityMatrixBlock.Text = StateOperator.FromQuantumState(State).ToString(2); }
         * TransformedMatrixBlock.Text = ppt.StateOperator.ToString(2);
         * TransformedMatrixGrid.Visibility = Visibility.Visible;
         * string text = "";
         * for(int i = 0; i < ppt.Eigenvalues.Length; i++)
         * {
         *  text += ppt.Eigenvalues[i].Real.ToString("n2");
         *  if(i < ppt.Eigenvalues.Length - 1)
         *      text += ", ";
         * }
         * EigenvaluesBlock.Text = text;
         * EigenvaluesGrid.Visibility = Visibility.Visible;
         * }
         */
        private void EvaluateCriterion(object sender, RoutedEventArgs e)
        {
            ErrorMessage.Visibility = Visibility.Collapsed;
            bool validState;

            if (Qubits.IsEnabled)
            {
                validState = CreateStateFromDefinition();
            }
            else
            {
                validState = true;
            }
            if (validState)
            {
                ResetResults();
                ResultsDisplay.Visibility = Visibility.Visible;
                if (DensityMatrix.IsChecked == true)
                {
                    ResultsDisplay.DisplayResults(StateOperator, Bipartition);
                }
                else if (StateMatrix.IsChecked == true)
                {
                    ResultsDisplay.DisplayResults(State, Bipartition);
                }
            }
        }
 public void DisplayResults(SearchResults results)
 {
     if (mDisplayingProgress)
     {
         mDisplayingProgress = false;
         ResultsParent.SetActive(true);
         ProgressParent.SetActive(false);
     }
     ProgressParent.SetActive(false);
     ResultsParent.SetActive(true);
     DefaultDisplay.DisplayResults(results.DefaultSolution);
     OptimizedDisplay.DisplayResults(results.OptimizedSolution,
                                     results.NumLeafsCreated, results.NumSolutionsFound, results.NumSolutionsFound / (float)results.NumLeafsCreated);
 }