public virtual void Explore(IQuantumBasis basis, string description)
        {
            textBox.Text = description + "\r\n";
            textBox.Text += basis.generateQuantumDebugger().FullDebug;

            Text += ": " + description;

            Show();
        }
        private double[] generateProbabilities(IQuantumState state, IQuantumBasis basis)
        {
            IQuantumStateDebugger stateDebugger = state.generateQuantumDebugger();
            IQuantumBasisDebugger basisDebugger = basis.generateQuantumDebugger();
            IComplexMatrix matrix = basisDebugger.getMatrix();
            IComplexMatrix vector = stateDebugger.getVectorInternal();
            IComplexMatrix limit = FactoryComplexMatrix.Operations.Multiplication(matrix, vector);
            // Si el vector "limit" esta normalizado,
            // la suma de todas sus componentes a la norma, deben dar 1
            // ==> probablidades
            IComplexMatrix normalized = FactoryComplexMatrix.Operations.Normalize(limit);
            IComplexNumber[] tempComplex = normalized.extractAsArray();
            int count = tempComplex.Length;
            double[] result = new double[count];
            for (int k = 0; k < count; k++)
            {
                result[k] = FactoryComplexNumber.Operations.PoweredNorm(tempComplex[k]);
            }

            if (Configuration.EffectiveLogEnabled)
            { LoggerFactory.Default.Log("Measurament Probabilities Distribution: " + ArrayTools.ExplodeArrayAsString(result)); }

            return result;

            //IQuantumStateDebugger debugger = state.generateQuantumDebugger();
            //IComplexMatrix vector = debugger.getVectorNormalized();
            //int count = vector.countTotalElements();
            //double[] result = new double[count];
            //IComplexNumber element;
            //for (int i = 0; i < count; i++)
            //{
            //    element = vector.getElement(i, 0);
            //    result[i] = FactoryComplexNumber.Operations.PoweredNorm(element);
            //}
            //DefaultLogger.Instance.Log("Measurament Probabilities Distribution: "+ArrayTools.ExplodeArrayAsString(result));
            //return result;
        }