Beispiel #1
0
        public List <QubitValueResult> GetQubitResultStatesById(List <IbmJobMeasurmentResult> qubitValueResults, string ResultId)
        {
            var qubitValueResult = (from ms in qubitValueResults where ms.Id == ResultId select ms).FirstOrDefault();

            if (qubitValueResult == null)
            {
                return(new List <QubitValueResult>());
            }
            if (qubitValueResult.Qasms.Count == 0)
            {
                return(new List <QubitValueResult>());
            }
            ProgramParser _parser  = new ProgramParser();
            var           commands = _parser.GetSyntaxList(_parser.GetCommandList(qubitValueResult.Qasms[0].Qasm));
            List <Qubit>  Qubits   = new List <Qubit>();

            foreach (var cmd in commands)
            {
                Measurment casted_cmd = cmd.CommandType as Measurment;
                if (casted_cmd != null)
                {
                    int qubit_index;
                    if (int.TryParse(cmd.Args[1], out qubit_index))
                    {
                        Qubits.Add(new Qubit(null, qubit_index));
                    }
                }
            }
            return(IbmComputer.GetQubitResultStates(qubitValueResult, Qubits));
        }
Beispiel #2
0
        public List <QubitValueResult> GetQubitResultStates(IbmJobMeasurmentResult qubitValueResult)
        {
            if (qubitValueResult.Qasms.Count == 0)
            {
                return(new List <QubitValueResult>());
            }
            ProgramParser _parser  = new ProgramParser();
            var           commands = _parser.GetSyntaxList(_parser.GetCommandList(qubitValueResult.Qasms[0].Qasm));
            List <Qubit>  Qubits   = new List <Qubit>();

            foreach (var cmd in commands)
            {
                Measurment casted_cmd = cmd.CommandType as Measurment;
                if (casted_cmd != null)
                {
                    int qubit_index;
                    if (int.TryParse(cmd.Args[1], out qubit_index))
                    {
                        Qubits.Add(new Qubit(null, qubit_index));
                    }
                }
            }
            return(IbmComputer.GetQubitResultStates(qubitValueResult, Qubits));
        }