diff --git a/src/Simulation/Common/IQuantumProcessor.cs b/src/Simulation/Common/IQuantumProcessor.cs index dd61aed3bdd..80d7187dc67 100644 --- a/src/Simulation/Common/IQuantumProcessor.cs +++ b/src/Simulation/Common/IQuantumProcessor.cs @@ -639,4 +639,26 @@ public interface IQuantumProcessor /// The message to be reported. void OnMessage(string msg); } + + /// + /// Represents a quantum processor that can return diagnostics to its host program. + /// + public interface IDiagnosticDataSource + { + /// + /// An event fired whenever a simulator has additional diagnostic data + /// available for display (e.g. state information, assertion details, + /// execution traces). + /// + public event Action? OnDisplayableDiagnostic; + + /// + /// Sends diagnostic data to any listening display handlers. + /// Display handlers may discard any unrecognized data, such that + /// no guarantee is made as to any particular action taken as a result + /// of calling this method. + /// + public void MaybeDisplayDiagnostic(object data); + } + } diff --git a/src/Simulation/Common/QuantumProcessorBase.cs b/src/Simulation/Common/QuantumProcessorBase.cs index 26783f7fdea..3457a6a95e6 100644 --- a/src/Simulation/Common/QuantumProcessorBase.cs +++ b/src/Simulation/Common/QuantumProcessorBase.cs @@ -1,6 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +#nullable enable + using System; using Microsoft.Quantum.Simulation.Core; using System.Diagnostics; @@ -12,174 +14,213 @@ namespace Microsoft.Quantum.Simulation.Common /// A class that implements IQuantumProcessor that does not do any logic, but is convenient to inherit from. /// It throws for most APIs. /// - public class QuantumProcessorBase : IQuantumProcessor + public class QuantumProcessorBase : IQuantumProcessor, IDiagnosticDataSource { + /// + public event Action? OnDisplayableDiagnostic = null; + + /// public virtual void X(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledX(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void Y(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledY(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void Z(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledZ(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void SWAP(Qubit qubit1, Qubit qubit2) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledSWAP(IQArray controls, Qubit qubit1, Qubit qubit2) { throw new UnsupportedOperationException(); } + /// public virtual void H(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledH(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void S(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledS(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void SAdjoint(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledSAdjoint(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void T(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledT(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void TAdjoint(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledTAdjoint(IQArray controls, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void R(Pauli axis, double theta, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledR(IQArray controls, Pauli axis, double theta, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void RFrac(Pauli axis, long numerator, long power, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledRFrac(IQArray controls, Pauli axis, long numerator, long power, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void R1(double theta, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledR1(IQArray controls, double theta, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void R1Frac(long numerator, long power, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledR1Frac(IQArray controls, long numerator, long power, Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual void Exp(IQArray paulis, double theta, IQArray qubits) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledExp(IQArray controls, IQArray paulis, double theta, IQArray qubits) { throw new UnsupportedOperationException(); } + /// public virtual void ExpFrac(IQArray paulis, long numerator, long power, IQArray qubits) { throw new UnsupportedOperationException(); } + /// public virtual void ControlledExpFrac(IQArray controls, IQArray paulis, long numerator, long power, IQArray qubits) { throw new UnsupportedOperationException(); } + /// public virtual Result M(Qubit qubit) { throw new UnsupportedOperationException(); } + /// public virtual Result Measure(IQArray bases, IQArray qubits) { throw new UnsupportedOperationException(); } + /// public virtual void Reset(Qubit qubit) { throw new UnsupportedOperationException(); } - public virtual long StartConditionalStatement(IQArray measurementResults, IQArray resultsValues) + /// + public virtual long StartConditionalStatement( + IQArray? measurementResults, IQArray? resultsValues + ) { if (measurementResults == null) { return 1; }; if (resultsValues == null) { return 1; }; @@ -199,6 +240,7 @@ public virtual long StartConditionalStatement(IQArray measurementResults return equal; } + /// public virtual long StartConditionalStatement(Result measurementResult, Result resultValue) { @@ -212,83 +254,106 @@ public virtual long StartConditionalStatement(Result measurementResult, Result r } } + /// public virtual bool RunThenClause(long statement) { return (statement != 0); } + /// public virtual bool RepeatThenClause(long statement) { return false; } + /// public virtual bool RunElseClause(long statement) { return (statement == 0); } + /// public virtual bool RepeatElseClause(long statement) { return false; } + /// public virtual void EndConditionalStatement(long id) { } + /// public virtual void Assert(IQArray bases, IQArray qubits, Result result, string msg) { } + /// public virtual void AssertProb(IQArray bases, IQArray qubits, double probabilityOfZero, string msg, double tol) { } + /// public virtual void OnOperationStart(ICallable operation, IApplyData arguments) { } + /// public virtual void OnOperationEnd(ICallable operation, IApplyData arguments) { } + /// public virtual void OnFail(System.Runtime.ExceptionServices.ExceptionDispatchInfo exceptionDispatchInfo) { } + /// public virtual void OnAllocateQubits(IQArray qubits) { } + /// public virtual void OnReleaseQubits(IQArray qubits) { } + /// public virtual void OnBorrowQubits(IQArray qubits, long allocatedForBorrowingCount) { } + /// public virtual void OnReturnQubits(IQArray qubits, long releasedOnReturnCount) { } + /// public virtual void OnDumpMachine(T location) { } + /// public virtual void OnDumpRegister(T location, IQArray qubits) { } + /// public virtual void OnMessage(string msg) { } + /// + public void MaybeDisplayDiagnostic(object data) + { + OnDisplayableDiagnostic?.Invoke(data); + } } /// - /// A class that implements exception to be thrown when Operation is not supported by a QuantumProcessor. + /// A class that implements an exception to be thrown + /// when a given operation is not supported by a QuantumProcessor. /// public class UnsupportedOperationException : PlatformNotSupportedException { diff --git a/src/Simulation/Common/SimulatorBase.cs b/src/Simulation/Common/SimulatorBase.cs index 41f566ea641..2ff97af7328 100644 --- a/src/Simulation/Common/SimulatorBase.cs +++ b/src/Simulation/Common/SimulatorBase.cs @@ -196,7 +196,7 @@ public void EnableExceptionPrinting() /// no guarantee is made as to any particular action taken as a result /// of calling this method. /// - protected void MaybeDisplayDiagnostic(object data) + public void MaybeDisplayDiagnostic(object data) { OnDisplayableDiagnostic?.Invoke(data); } diff --git a/src/Simulation/Simulators/QuantumProcessor/Allocate.cs b/src/Simulation/Simulators/QuantumProcessor/Allocate.cs index ea176410f61..0dfc39aa40f 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Allocate.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Allocate.cs @@ -5,7 +5,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherAllocate : Intrinsic.Allocate { diff --git a/src/Simulation/Simulators/QuantumProcessor/Assert.cs b/src/Simulation/Simulators/QuantumProcessor/Assert.cs index a0badd62007..430a657e32e 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Assert.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Assert.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherAssert : Microsoft.Quantum.Diagnostics.AssertMeasurement { diff --git a/src/Simulation/Simulators/QuantumProcessor/AssertProb.cs b/src/Simulation/Simulators/QuantumProcessor/AssertProb.cs index 9f4d87e085e..c1636d5aeb9 100644 --- a/src/Simulation/Simulators/QuantumProcessor/AssertProb.cs +++ b/src/Simulation/Simulators/QuantumProcessor/AssertProb.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherAssertProb : Microsoft.Quantum.Diagnostics.AssertMeasurementProbability { diff --git a/src/Simulation/Simulators/QuantumProcessor/Borrow.cs b/src/Simulation/Simulators/QuantumProcessor/Borrow.cs index d497549ccb9..09c6cff2437 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Borrow.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Borrow.cs @@ -5,7 +5,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherBorrow : Intrinsic.Borrow { diff --git a/src/Simulation/Simulators/QuantumProcessor/ClassicalControl.cs b/src/Simulation/Simulators/QuantumProcessor/ClassicalControl.cs index 506fb79ac3c..67ab028f9d5 100644 --- a/src/Simulation/Simulators/QuantumProcessor/ClassicalControl.cs +++ b/src/Simulation/Simulators/QuantumProcessor/ClassicalControl.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { private static void RunClause(ICallable op, OperationFunctor type, IQArray? ctrls) diff --git a/src/Simulation/Simulators/QuantumProcessor/Dump.cs b/src/Simulation/Simulators/QuantumProcessor/Dump.cs index a0b2ce227f7..fb497ed09cc 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Dump.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Dump.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherDumpMachine : Quantum.Diagnostics.DumpMachine { diff --git a/src/Simulation/Simulators/QuantumProcessor/Exp.cs b/src/Simulation/Simulators/QuantumProcessor/Exp.cs index d714d9d364d..85a77981108 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Exp.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Exp.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherExp : Quantum.Intrinsic.Exp { diff --git a/src/Simulation/Simulators/QuantumProcessor/ExpFrac.cs b/src/Simulation/Simulators/QuantumProcessor/ExpFrac.cs index 7f5438e00d7..17abff2402b 100644 --- a/src/Simulation/Simulators/QuantumProcessor/ExpFrac.cs +++ b/src/Simulation/Simulators/QuantumProcessor/ExpFrac.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherExpFrac : Quantum.Intrinsic.ExpFrac { diff --git a/src/Simulation/Simulators/QuantumProcessor/H.cs b/src/Simulation/Simulators/QuantumProcessor/H.cs index 9ded09a1739..480dc98afaa 100644 --- a/src/Simulation/Simulators/QuantumProcessor/H.cs +++ b/src/Simulation/Simulators/QuantumProcessor/H.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherH : Quantum.Intrinsic.H { diff --git a/src/Simulation/Simulators/QuantumProcessor/M.cs b/src/Simulation/Simulators/QuantumProcessor/M.cs index adf46ea18ef..32328af7cb7 100644 --- a/src/Simulation/Simulators/QuantumProcessor/M.cs +++ b/src/Simulation/Simulators/QuantumProcessor/M.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherM : Quantum.Intrinsic.M { diff --git a/src/Simulation/Simulators/QuantumProcessor/Measure.cs b/src/Simulation/Simulators/QuantumProcessor/Measure.cs index fe430df2e16..6d825b24c0d 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Measure.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Measure.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherMeasure : Quantum.Intrinsic.Measure { diff --git a/src/Simulation/Simulators/QuantumProcessor/QuantumProcessorDispatcher.cs b/src/Simulation/Simulators/QuantumProcessor/QuantumProcessorDispatcher.cs index fa530a28316..df945310b69 100644 --- a/src/Simulation/Simulators/QuantumProcessor/QuantumProcessorDispatcher.cs +++ b/src/Simulation/Simulators/QuantumProcessor/QuantumProcessorDispatcher.cs @@ -1,15 +1,22 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +#nullable enable + using System; using Microsoft.Quantum.Simulation.Common; namespace Microsoft.Quantum.Simulation.QuantumProcessor { + /// /// Dispatcher (Simulator) that redirects all the calls to a class implementing interface. /// - public partial class QuantumProcessorDispatcher : SimulatorBase + /// + /// Type of the implementation to be used by this dispatcher. + /// + public partial class QuantumProcessorDispatcher : SimulatorBase + where TProcessor: class, IQuantumProcessor { private const int PreallocatedQubitCount = 256; /// @@ -20,30 +27,66 @@ public partial class QuantumProcessorDispatcher : SimulatorBase public override string Name => "QuantumProcessorDispatcher"; /// - /// An instance of a class implementing interface that this simulator wraps. + /// An instance of a class implementing the interface that this simulator wraps. /// - public IQuantumProcessor QuantumProcessor + public TProcessor QuantumProcessor { get; private set; } /// - /// + /// Constructs a new dispatcher using a given implementation of the + /// interface. /// - /// An instance of a class implementing interface to be wrapped. If the parameter is null is used. - /// An instance of a class implementing interface. If the parameter is null is used. + /// + /// An instance of a class implementing interface to be used + /// by this dispatcher to implement the required intrinsic operations. + /// + /// + /// An instance of a class implementing interface. If the parameter is null is used. + /// /// A seed to be used by Q# Microsoft.Quantum.Intrinsic.Random operation. - public QuantumProcessorDispatcher(IQuantumProcessor? quantumProcessor = null, IQubitManager? qubitManager = null, int? randomSeed = null) + public QuantumProcessorDispatcher(TProcessor quantumProcessor, IQubitManager? qubitManager = null, int? randomSeed = null) : base(qubitManager ?? new QubitManagerTrackingScope(PreallocatedQubitCount, mayExtendCapacity:true, disableBorrowing:false)) { random = new System.Random(randomSeed == null ? DateTime.Now.Millisecond : randomSeed.Value); - QuantumProcessor = quantumProcessor ?? new QuantumProcessorBase(); + QuantumProcessor = quantumProcessor; OnOperationStart += QuantumProcessor.OnOperationStart; OnOperationEnd += QuantumProcessor.OnOperationEnd; OnFail += QuantumProcessor.OnFail; OnLog += QuantumProcessor.OnMessage; + + // If our quantum processor supports it, forward any diagnostic data that + // it produces to SimulatorBase. + if (quantumProcessor is IDiagnosticDataSource dataSource) + { + dataSource.OnDisplayableDiagnostic += MaybeDisplayDiagnostic; + } } } + + + /// + /// Dispatcher (Simulator) that redirects all the calls to a class implementing interface. + /// + public class QuantumProcessorDispatcher : QuantumProcessorDispatcher + { + /// + /// + /// + /// An instance of a class implementing interface to be wrapped. If the parameter is null is used. + /// An instance of a class implementing interface. If the parameter is null is used. + /// A seed to be used by Q# Microsoft.Quantum.Intrinsic.Random operation. + public QuantumProcessorDispatcher(IQuantumProcessor? quantumProcessor = null, IQubitManager? qubitManager = null, int? randomSeed = null) + : base( + quantumProcessor: quantumProcessor ?? new QuantumProcessorBase(), + qubitManager: qubitManager, + randomSeed: randomSeed + ) + { } + + } + } diff --git a/src/Simulation/Simulators/QuantumProcessor/R.cs b/src/Simulation/Simulators/QuantumProcessor/R.cs index 448aab417cf..c665359f121 100644 --- a/src/Simulation/Simulators/QuantumProcessor/R.cs +++ b/src/Simulation/Simulators/QuantumProcessor/R.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherR : Quantum.Intrinsic.R { diff --git a/src/Simulation/Simulators/QuantumProcessor/R1.cs b/src/Simulation/Simulators/QuantumProcessor/R1.cs index 65d3c8570ef..e51a50d495c 100644 --- a/src/Simulation/Simulators/QuantumProcessor/R1.cs +++ b/src/Simulation/Simulators/QuantumProcessor/R1.cs @@ -7,7 +7,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherR1 : Quantum.Intrinsic.R1 { diff --git a/src/Simulation/Simulators/QuantumProcessor/R1Frac.cs b/src/Simulation/Simulators/QuantumProcessor/R1Frac.cs index 60a07ff2cbe..f9ce11e4f72 100644 --- a/src/Simulation/Simulators/QuantumProcessor/R1Frac.cs +++ b/src/Simulation/Simulators/QuantumProcessor/R1Frac.cs @@ -8,7 +8,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherR1Frac : Quantum.Intrinsic.R1Frac { diff --git a/src/Simulation/Simulators/QuantumProcessor/RFrac.cs b/src/Simulation/Simulators/QuantumProcessor/RFrac.cs index 88d24466659..16811ecd4ba 100644 --- a/src/Simulation/Simulators/QuantumProcessor/RFrac.cs +++ b/src/Simulation/Simulators/QuantumProcessor/RFrac.cs @@ -8,7 +8,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherRFrac : Quantum.Intrinsic.RFrac { diff --git a/src/Simulation/Simulators/QuantumProcessor/Release.cs b/src/Simulation/Simulators/QuantumProcessor/Release.cs index 84424d3daa0..ba2351eeb7c 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Release.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Release.cs @@ -5,7 +5,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherRelease : Intrinsic.Release { diff --git a/src/Simulation/Simulators/QuantumProcessor/Reset.cs b/src/Simulation/Simulators/QuantumProcessor/Reset.cs index 4ebee59437a..c0c1462d195 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Reset.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Reset.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherReset : Quantum.Intrinsic.Reset { diff --git a/src/Simulation/Simulators/QuantumProcessor/Return.cs b/src/Simulation/Simulators/QuantumProcessor/Return.cs index 2a5277340fd..844d82d05b2 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Return.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Return.cs @@ -5,7 +5,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { using Microsoft.Quantum.Simulation.Core; - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherReturn : Intrinsic.Return { diff --git a/src/Simulation/Simulators/QuantumProcessor/S.cs b/src/Simulation/Simulators/QuantumProcessor/S.cs index c9081b09345..fcf03383b81 100644 --- a/src/Simulation/Simulators/QuantumProcessor/S.cs +++ b/src/Simulation/Simulators/QuantumProcessor/S.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherS : Quantum.Intrinsic.S { diff --git a/src/Simulation/Simulators/QuantumProcessor/SWAP.cs b/src/Simulation/Simulators/QuantumProcessor/SWAP.cs index 98fe3d1347e..a689cee9d37 100644 --- a/src/Simulation/Simulators/QuantumProcessor/SWAP.cs +++ b/src/Simulation/Simulators/QuantumProcessor/SWAP.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherSWAP : Quantum.Intrinsic.SWAP { diff --git a/src/Simulation/Simulators/QuantumProcessor/T.cs b/src/Simulation/Simulators/QuantumProcessor/T.cs index 440e82677bf..6b457a24fee 100644 --- a/src/Simulation/Simulators/QuantumProcessor/T.cs +++ b/src/Simulation/Simulators/QuantumProcessor/T.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherT : Quantum.Intrinsic.T { diff --git a/src/Simulation/Simulators/QuantumProcessor/X.cs b/src/Simulation/Simulators/QuantumProcessor/X.cs index e9e3c7b7b73..c0225bd45a3 100644 --- a/src/Simulation/Simulators/QuantumProcessor/X.cs +++ b/src/Simulation/Simulators/QuantumProcessor/X.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherX : Quantum.Intrinsic.X { diff --git a/src/Simulation/Simulators/QuantumProcessor/Y.cs b/src/Simulation/Simulators/QuantumProcessor/Y.cs index 271f6872750..98c08985023 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Y.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Y.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherY : Quantum.Intrinsic.Y { diff --git a/src/Simulation/Simulators/QuantumProcessor/Z.cs b/src/Simulation/Simulators/QuantumProcessor/Z.cs index e4fc24859ba..37b4f30c5e6 100644 --- a/src/Simulation/Simulators/QuantumProcessor/Z.cs +++ b/src/Simulation/Simulators/QuantumProcessor/Z.cs @@ -6,7 +6,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherZ : Quantum.Intrinsic.Z { diff --git a/src/Simulation/Simulators/QuantumProcessor/random.cs b/src/Simulation/Simulators/QuantumProcessor/random.cs index 0b0452c23c8..5d725bbc732 100644 --- a/src/Simulation/Simulators/QuantumProcessor/random.cs +++ b/src/Simulation/Simulators/QuantumProcessor/random.cs @@ -8,7 +8,7 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor { - public partial class QuantumProcessorDispatcher + public partial class QuantumProcessorDispatcher { public class QuantumProcessorDispatcherRandom : Quantum.Intrinsic.Random {