diff --git a/AdvantageBenchmark/privateBuild/advantage.sln b/AdvantageBenchmark/privateBuild/advantage.sln index 91b39bc2b87..c8a39658898 100644 Binary files a/AdvantageBenchmark/privateBuild/advantage.sln and b/AdvantageBenchmark/privateBuild/advantage.sln differ diff --git a/AdvantageBenchmark/privateBuild/host.csproj b/AdvantageBenchmark/privateBuild/host.csproj index 9eac18bfca4..48baa69c3ba 100644 --- a/AdvantageBenchmark/privateBuild/host.csproj +++ b/AdvantageBenchmark/privateBuild/host.csproj @@ -9,7 +9,7 @@ - + diff --git a/Simulation.sln b/Simulation.sln index ef74245467b..ef30cc459c6 100644 --- a/Simulation.sln +++ b/Simulation.sln @@ -9,7 +9,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Quantum.Simulatio EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Quantum.Simulation.Common", "src\Simulation\Common\Microsoft.Quantum.Simulation.Common.csproj", "{8EC46ADB-7FAA-49EA-BA63-E7B32C4F4445}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Quantum.Simulators", "src\Simulation\Simulators.Core\Microsoft.Quantum.Simulators.csproj", "{72B7E75C-D305-45BD-929E-C86298AAA8DE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Quantum.Simulators", "src\Simulation\Simulators\Microsoft.Quantum.Simulators.csproj", "{72B7E75C-D305-45BD-929E-C86298AAA8DE}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime", "src\Simulation\QCTraceSimulator.Tests\Tests.Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.csproj", "{DD50D2D9-2765-449B-8C4B-835A428E160D}" EndProject diff --git a/bootstrap.ps1 b/bootstrap.ps1 index 2a74594cf2f..37f8301d0f4 100644 --- a/bootstrap.ps1 +++ b/bootstrap.ps1 @@ -7,7 +7,7 @@ Push-Location (Join-Path $PSScriptRoot "src/Simulation/CsharpGeneration") .\FindNuspecReferences.ps1 Pop-Location -Push-Location (Join-Path $PSScriptRoot "src/Simulation/Simulators.Core") +Push-Location (Join-Path $PSScriptRoot "src/Simulation/Simulators") .\FindNuspecReferences.ps1 Pop-Location diff --git a/build/manifest.ps1 b/build/manifest.ps1 index f8cb1ec7c07..782ee6c810e 100644 --- a/build/manifest.ps1 +++ b/build/manifest.ps1 @@ -29,9 +29,9 @@ ".\src\Simulation\Type1Core\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Type1.Core.dll", ".\src\Simulation\Type2Core\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Type2.Core.dll", ".\src\Simulation\QsharpFoundation\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.QSharp.Foundation.dll", - ".\src\Simulation\Simulators.Core\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulation.Common.dll", - ".\src\Simulation\Simulators.Core\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.dll", - ".\src\Simulation\Simulators.Core\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulators.dll", + ".\src\Simulation\Simulators\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulation.Common.dll", + ".\src\Simulation\Simulators\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.dll", + ".\src\Simulation\Simulators\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulators.dll", ".\src\Simulation\Simulators.Type1\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulators.Type1.dll", ".\src\Simulation\Simulators.Type2\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Simulators.Type2.dll", ".\src\Xunit\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Xunit.dll" diff --git a/build/pack.ps1 b/build/pack.ps1 index 283085f64ca..28e3c06deea 100644 --- a/build/pack.ps1 +++ b/build/pack.ps1 @@ -68,7 +68,7 @@ Pack-Dotnet '../src/Simulation/QSharpFoundation/Microsoft.Quantum.QSharp.Foundat Pack-Dotnet '../src/Simulation/QsharpCore/Microsoft.Quantum.QSharp.Core.csproj' Pack-Dotnet '../src/Simulation/Type1Core/Microsoft.Quantum.Type1.Core.csproj' Pack-Dotnet '../src/Simulation/Type2Core/Microsoft.Quantum.Type2.Core.csproj' -Pack-One '../src/Simulation/Simulators.Core/Microsoft.Quantum.Simulators.nuspec' +Pack-One '../src/Simulation/Simulators/Microsoft.Quantum.Simulators.nuspec' Pack-One '../src/Simulation/Simulators.Type1/Microsoft.Quantum.Simulators.Type1.nuspec' Pack-One '../src/Simulation/Simulators.Type2/Microsoft.Quantum.Simulators.Type2.nuspec' Pack-One '../src/Quantum.Development.Kit/Microsoft.Quantum.Development.Kit.nuspec' diff --git a/src/Azure/Azure.Quantum.Client/Exceptions/WorkspaceClientException.cs b/src/Azure/Azure.Quantum.Client/Exceptions/WorkspaceClientException.cs index 821e3a64bc2..ee1b7293182 100644 --- a/src/Azure/Azure.Quantum.Client/Exceptions/WorkspaceClientException.cs +++ b/src/Azure/Azure.Quantum.Client/Exceptions/WorkspaceClientException.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +using Microsoft.Azure.Quantum.Client.Models; using System; namespace Microsoft.Azure.Quantum.Exceptions @@ -67,9 +68,41 @@ public WorkspaceClientException( $"WorkspaceName: {workspaceName}{Environment.NewLine}" + $"BaseUri: {baseUri}{Environment.NewLine}" + $"JobId: {jobId}{Environment.NewLine}" + - (inner != null ? $"Inner Exception: {inner}" : string.Empty), + FormatInnerException(inner), inner) { } + + /// + /// Formats the contents of the inner exception in so it can be included in the + /// exception message and presented in an informative way. + /// + /// Inner exception that we want to include in the outer exception message. + /// + /// A string representing the contents of the inner exception. + /// + private static string FormatInnerException(Exception ex) + { + string formattedException = string.Empty; + if (ex != null) + { + formattedException += $"Server Error: {ex.Message}{Environment.NewLine}"; + + // Handle specific types of exceptions for additional data + if (ex is RestErrorException restErrorException) + { + formattedException += $"Error Code: {restErrorException?.Body?.Code}{Environment.NewLine}" + + $"Server message: {restErrorException?.Body?.Message}{Environment.NewLine}"; + + var headers = restErrorException?.Response?.Headers; + if (headers != null && headers.ContainsKey("x-ms-request-id")) + { + formattedException += $"Server Request Id: {headers["x-ms-request-id"]}{Environment.NewLine}"; + } + } + } + + return formattedException; + } } } diff --git a/src/Simulation/Common/Simulators.Impl.props b/src/Simulation/Common/Simulators.Impl.props index 07f50298499..0f0e4e4ed8a 100644 --- a/src/Simulation/Common/Simulators.Impl.props +++ b/src/Simulation/Common/Simulators.Impl.props @@ -21,7 +21,7 @@ - + diff --git a/src/Simulation/CsharpGeneration.Tests/Tests.CsharpGeneration.fsproj b/src/Simulation/CsharpGeneration.Tests/Tests.CsharpGeneration.fsproj index 4e83f9f6035..d5ee8e1add2 100644 --- a/src/Simulation/CsharpGeneration.Tests/Tests.CsharpGeneration.fsproj +++ b/src/Simulation/CsharpGeneration.Tests/Tests.CsharpGeneration.fsproj @@ -52,7 +52,7 @@ - + diff --git a/src/Simulation/EntryPointDriver/Microsoft.Quantum.EntryPointDriver.csproj b/src/Simulation/EntryPointDriver/Microsoft.Quantum.EntryPointDriver.csproj index e78cf42f721..3c13f0f8c65 100644 --- a/src/Simulation/EntryPointDriver/Microsoft.Quantum.EntryPointDriver.csproj +++ b/src/Simulation/EntryPointDriver/Microsoft.Quantum.EntryPointDriver.csproj @@ -26,7 +26,7 @@ - + diff --git a/src/Simulation/Native/src/external/fused.hpp b/src/Simulation/Native/src/external/fused.hpp index 2b170461e41..fdde401785f 100644 --- a/src/Simulation/Native/src/external/fused.hpp +++ b/src/Simulation/Native/src/external/fused.hpp @@ -145,7 +145,10 @@ class Fused if (envNT == NULL) { // If the user didn't force the number of threads, make an intelligent guess int nMaxThrds = std::thread::hardware_concurrency(); // Logical HW threads if (nMaxThrds > 4) nMaxThrds/= 2; // Assume we have hyperthreading (no consistent/concise way to do this) - if (wfnCapacity < 1u << 20) { + if (wfnCapacity < 1ul << 14) nMaxThrds = 1; + else if (wfnCapacity < 1ul << 16) nMaxThrds = 2; + else if (wfnCapacity < 1ul << 20) + { if (nMaxThrds > 8) nMaxThrds = 8; // Small problem, never use too many else if (nMaxThrds > 3) nMaxThrds = 3; // Small problem on a small machine } diff --git a/src/Simulation/QCTraceSimulator.Tests/Tests.Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.csproj b/src/Simulation/QCTraceSimulator.Tests/Tests.Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.csproj index 9b472054974..946f625dbd1 100644 --- a/src/Simulation/QCTraceSimulator.Tests/Tests.Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.csproj +++ b/src/Simulation/QCTraceSimulator.Tests/Tests.Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.csproj @@ -13,7 +13,7 @@ - + diff --git a/src/Simulation/QsharpCore/Arrays/Empty.cs b/src/Simulation/QsharpCore/Arrays/Empty.cs new file mode 100644 index 00000000000..7cb7448a393 --- /dev/null +++ b/src/Simulation/QsharpCore/Arrays/Empty.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using System; +using Microsoft.Quantum.Simulation.Core; + +namespace Microsoft.Quantum.Arrays +{ + public partial class EmptyArray<__TElement__> + { + public class Native : EmptyArray<__TElement__> + { + public Native(IOperationFactory m) : base(m) { } + public override Func> __Body__ => _ => + new QArray<__TElement__>(); + } + } + +} diff --git a/src/Simulation/QsharpCore/Arrays/Empty.qs b/src/Simulation/QsharpCore/Arrays/Empty.qs new file mode 100644 index 00000000000..0d586def7a2 --- /dev/null +++ b/src/Simulation/QsharpCore/Arrays/Empty.qs @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +namespace Microsoft.Quantum.Arrays { + + /// # Summary + /// Returns the empty array of a given type. + /// + /// # Type Parameters + /// ## 'TElement + /// The type of elements of the array. + /// + /// # Output + /// The empty array. + /// + /// # Example + /// ```Q# + /// let empty = EmptyArray(); + /// ``` + function EmptyArray<'TElement>() : 'TElement[] { + body intrinsic; + } + +} diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/AndLadder.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/AndLadder.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/AndLadder.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/AndLadder.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ApplyByIndex.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ApplyByIndex.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ApplyByIndex.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ApplyByIndex.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/CCX.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCX.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/CCX.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCX.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/CCZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/CCZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/CCminusIX.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCminusIX.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/CCminusIX.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCminusIX.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/CCminusIZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCminusIZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/CCminusIZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CCminusIZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/CZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/CZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/CZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledH.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledH.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledH.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledH.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledR.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledR.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledR.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledR.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledR1.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledR1.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledR1.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledR1.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledR1Frac.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledR1Frac.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledR1Frac.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledR1Frac.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledRFrac.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledRFrac.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledRFrac.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledRFrac.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledRZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledRZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledRZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledRZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledRZFrac.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledRZFrac.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledRZFrac.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledRZFrac.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledSWAP.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledSWAP.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledSWAP.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledSWAP.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledT.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledT.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledT.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledT.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledTPower.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledTPower.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledTPower.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledTPower.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledTS.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledTS.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ControlledTS.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ControlledTS.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ExpFracZZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ExpFracZZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ExpFracZZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ExpFracZZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ExpFracZZZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ExpFracZZZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ExpFracZZZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ExpFracZZZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ExpZZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ExpZZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ExpZZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ExpZZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/FailOn.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/FailOn.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/FailOn.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/FailOn.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/IndiciesOfNonIdentity.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/IndiciesOfNonIdentity.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/IndiciesOfNonIdentity.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/IndiciesOfNonIdentity.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Interface.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Interface.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Interface.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Interface.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/InternalOperations.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/InternalOperations.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/InternalOperations.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/InternalOperations.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Mod.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Mod.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Mod.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Mod.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiCX.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiCX.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiCX.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiCX.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiControlledFromOpAndSinglyCtrldOp.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiControlledFromOpAndSinglyCtrldOp.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiControlledFromOpAndSinglyCtrldOp.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiControlledFromOpAndSinglyCtrldOp.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiControlledMultiNot.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiControlledMultiNot.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiControlledMultiNot.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiControlledMultiNot.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiControlledU.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiControlledU.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiControlledU.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiControlledU.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiPauliFlip.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiPauliFlip.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/MultiPauliFlip.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/MultiPauliFlip.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/PauliArrayByIndex.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/PauliArrayByIndex.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/PauliArrayByIndex.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/PauliArrayByIndex.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/PauliXFlip.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/PauliXFlip.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/PauliXFlip.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/PauliXFlip.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/PauliZFlip.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/PauliZFlip.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/PauliZFlip.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/PauliZFlip.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.CCNOT.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.CCNOT.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.CCNOT.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.CCNOT.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.CNOT.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.CNOT.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.CNOT.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.CNOT.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Exp.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Exp.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Exp.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Exp.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.ExpFrac.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.ExpFrac.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.ExpFrac.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.ExpFrac.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.H.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.H.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.H.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.H.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.HY.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.HY.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.HY.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.HY.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.IsingXX.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.IsingXX.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.IsingXX.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.IsingXX.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.IsingYY.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.IsingYY.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.IsingYY.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.IsingYY.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.IsingZZ.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.IsingZZ.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.IsingZZ.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.IsingZZ.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.MultiX.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.MultiX.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.MultiX.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.MultiX.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.R.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.R.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.R.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.R.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.R1.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.R1.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.R1.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.R1.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.R1Frac.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.R1Frac.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.R1Frac.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.R1Frac.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.RFrac.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.RFrac.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.RFrac.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.RFrac.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Rx.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Rx.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Rx.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Rx.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Ry.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Ry.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Ry.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Ry.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Rz.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Rz.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Rz.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Rz.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.S.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.S.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.S.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.S.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.SWAP.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.SWAP.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.SWAP.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.SWAP.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.T.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.T.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.T.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.T.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.X.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.X.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.X.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.X.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Y.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Y.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Y.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Y.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Z.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Z.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/Primitive.Z.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/Primitive.Z.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Circuits/ReducedForm.qs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ReducedForm.qs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Circuits/ReducedForm.qs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Circuits/ReducedForm.qs diff --git a/src/Simulation/Simulators/QCTraceSimulator/InterfaceUtils.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/InterfaceUtils.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/InterfaceUtils.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/InterfaceUtils.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Checks.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Checks.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Checks.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Checks.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Diagnostics.Dump.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Diagnostics.Dump.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Diagnostics.Dump.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Diagnostics.Dump.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.CX.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.CX.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.CX.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.CX.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.Clifford.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.Clifford.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.Clifford.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.Clifford.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.ForceMeasure.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.ForceMeasure.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.ForceMeasure.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.ForceMeasure.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.R.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.R.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.R.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.R.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.RFrac.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.RFrac.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Interface.RFrac.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Interface.RFrac.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Allocate.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Allocate.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Allocate.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Allocate.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Assert.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Assert.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Assert.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Assert.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.AssertProb.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.AssertProb.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.AssertProb.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.AssertProb.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Borrow.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Borrow.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Borrow.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Borrow.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Measure.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Measure.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Measure.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Measure.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Release.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Release.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Release.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Release.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Return.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Return.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.Return.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.Return.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.random.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.random.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.Primitive.random.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.Primitive.random.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulator.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulator.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulatorImpl.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulatorImpl.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/QCTraceSimulatorImpl.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/QCTraceSimulatorImpl.cs diff --git a/src/Simulation/Simulators/QCTraceSimulator/Utils.cs b/src/Simulation/Simulators.Impl/QCTraceSimulator/Utils.cs similarity index 100% rename from src/Simulation/Simulators/QCTraceSimulator/Utils.cs rename to src/Simulation/Simulators.Impl/QCTraceSimulator/Utils.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Allocate.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Allocate.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Allocate.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Allocate.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Assert.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Assert.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Assert.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Assert.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/AssertProb.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/AssertProb.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/AssertProb.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/AssertProb.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Borrow.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Borrow.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Borrow.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Borrow.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/ClassicalControl.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/ClassicalControl.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/ClassicalControl.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/ClassicalControl.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Dump.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Dump.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Dump.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Dump.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Exp.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Exp.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Exp.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Exp.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/ExpFrac.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/ExpFrac.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/ExpFrac.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/ExpFrac.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/H.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/H.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/H.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/H.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/M.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/M.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/M.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/M.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Measure.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Measure.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Measure.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Measure.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/QuantumProcessorDispatcher.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/QuantumProcessorDispatcher.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/QuantumProcessorDispatcher.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/QuantumProcessorDispatcher.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/R.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/R.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/R.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/R.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/R1.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/R1.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/R1.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/R1.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/R1Frac.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/R1Frac.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/R1Frac.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/R1Frac.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/RFrac.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/RFrac.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/RFrac.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/RFrac.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Release.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Release.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Release.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Release.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Reset.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Reset.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Reset.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Reset.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Return.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Return.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Return.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Return.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/S.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/S.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/S.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/S.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/SWAP.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/SWAP.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/SWAP.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/SWAP.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/T.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/T.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/T.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/T.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/X.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/X.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/X.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/X.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Y.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Y.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Y.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Y.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/Z.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/Z.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/Z.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/Z.cs diff --git a/src/Simulation/Simulators/QuantumProcessor/random.cs b/src/Simulation/Simulators.Impl/QuantumProcessor/random.cs similarity index 100% rename from src/Simulation/Simulators/QuantumProcessor/random.cs rename to src/Simulation/Simulators.Impl/QuantumProcessor/random.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyControlledX.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyControlledX.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyControlledX.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyControlledX.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyControlledZ.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyControlledZ.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyControlledZ.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyControlledZ.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledH.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledH.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledH.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledH.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRx.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledRx.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRx.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledRx.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRy.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledRy.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRy.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledRy.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRz.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledRz.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledRz.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledRz.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledS.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledS.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledS.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledS.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledT.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledT.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledT.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledT.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledX.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledX.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledX.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledX.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledY.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledY.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledY.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledY.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledZ.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledZ.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/ApplyUncontrolledZ.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/ApplyUncontrolledZ.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Assert.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Assert.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Assert.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Assert.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/AssertProb.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/AssertProb.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/AssertProb.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/AssertProb.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Checks.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Checks.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Checks.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Checks.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Dump.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Dump.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Dump.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Dump.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Exp.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Exp.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Exp.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Exp.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Extensions.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Extensions.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Extensions.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Extensions.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/H.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/H.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/H.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/H.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/IsingXX.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/IsingXX.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/IsingXX.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/IsingXX.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/IsingYY.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/IsingYY.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/IsingYY.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/IsingYY.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/IsingZZ.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/IsingZZ.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/IsingZZ.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/IsingZZ.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/M.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/M.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/M.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/M.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Measure.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Measure.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Measure.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Measure.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/QuantumSimulator.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/QuantumSimulator.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/QuantumSimulator.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Qubit.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Qubit.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Qubit.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Qubit.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/QubitManager.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/QubitManager.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/QubitManager.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/QubitManager.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/R.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/R.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/R.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/R.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Reset.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Reset.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Reset.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Reset.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Rx.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Rx.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Rx.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Rx.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Ry.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Ry.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Ry.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Ry.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Rz.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Rz.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Rz.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Rz.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/S.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/S.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/S.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/S.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/SWAP.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/SWAP.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/SWAP.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/SWAP.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/SimulatorBase.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/SimulatorBase.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/SimulatorBase.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/StackTrace.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/StackTrace.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/StackTrace.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/StackTrace.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/StateDumper.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/StateDumper.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/StateDumper.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/StateDumper.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/T.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/T.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/T.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/T.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/X.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/X.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/X.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/X.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Y.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Y.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Y.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Y.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/Z.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/Z.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/Z.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/Z.cs diff --git a/src/Simulation/Simulators/QuantumSimulator/random.cs b/src/Simulation/Simulators.Impl/QuantumSimulator/random.cs similarity index 100% rename from src/Simulation/Simulators/QuantumSimulator/random.cs rename to src/Simulation/Simulators.Impl/QuantumSimulator/random.cs diff --git a/src/Simulation/Simulators/ResourcesEstimator/ResourcesEstimator.cs b/src/Simulation/Simulators.Impl/ResourcesEstimator/ResourcesEstimator.cs similarity index 99% rename from src/Simulation/Simulators/ResourcesEstimator/ResourcesEstimator.cs rename to src/Simulation/Simulators.Impl/ResourcesEstimator/ResourcesEstimator.cs index d08847898cf..4d8c9423626 100644 --- a/src/Simulation/Simulators/ResourcesEstimator/ResourcesEstimator.cs +++ b/src/Simulation/Simulators.Impl/ResourcesEstimator/ResourcesEstimator.cs @@ -123,7 +123,7 @@ public virtual DataTable Data var results = collector.Results.ToTable(); Debug.Assert(results.keyColumnNames.Length > 2 && results.keyColumnNames[2] == "Caller"); - var roots = results.rows.Where(r => r.KeyRow[2] == CallGraphEdge.CallGraphRootHashed); + var roots = results.rows.Where(r => r.KeyRow[2] == CallGraphEdge.CallGraphRootHashed); var s_idx = Array.FindIndex(results.statisticsNames, n => n == "Sum"); for (var m_idx = 0; m_idx < results.metricNames.Length; m_idx++) @@ -135,14 +135,14 @@ public virtual DataTable Data row["Metric"] = label; if (m_idx >= 0 && s_idx >= 0) - { - Double sum = 0; - Double max = 0; // all our metrics are positive + { + Double sum = 0; + Double max = 0; // all our metrics are positive foreach (var r in roots) - { - Double metric_value = r.DataRow[m_idx, s_idx]; - sum += metric_value; - max = System.Math.Max(max, metric_value); + { + Double metric_value = r.DataRow[m_idx, s_idx]; + sum += metric_value; + max = System.Math.Max(max, metric_value); } row["Sum"] = sum; row["Max"] = max; diff --git a/src/Simulation/Simulators/ToffoliSimulator/Assert.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Assert.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Assert.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Assert.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/AssertProb.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/AssertProb.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/AssertProb.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/AssertProb.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/Dump.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Dump.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Dump.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Dump.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/Exp.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Exp.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Exp.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Exp.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/ExpFrac.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/ExpFrac.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/ExpFrac.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/ExpFrac.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/Extensions.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Extensions.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Extensions.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Extensions.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/H.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/H.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/H.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/H.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/M.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/M.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/M.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/M.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/Measure.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Measure.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Measure.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Measure.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/R.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/R.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/R.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/R.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/RFrac.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/RFrac.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/RFrac.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/RFrac.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/Random.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Random.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Random.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Random.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/S.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/S.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/S.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/S.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/SWAP.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/SWAP.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/SWAP.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/SWAP.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/T.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/T.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/T.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/T.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/ToffoliSimulator.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/ToffoliSimulator.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/ToffoliSimulator.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/ToffoliSimulator.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/X.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/X.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/X.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/X.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/Y.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Y.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Y.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Y.cs diff --git a/src/Simulation/Simulators/ToffoliSimulator/Z.cs b/src/Simulation/Simulators.Impl/ToffoliSimulator/Z.cs similarity index 100% rename from src/Simulation/Simulators/ToffoliSimulator/Z.cs rename to src/Simulation/Simulators.Impl/ToffoliSimulator/Z.cs diff --git a/src/Simulation/Simulators.Tests/Circuits/Bug2212.qs b/src/Simulation/Simulators.Tests/Circuits/Bug2212.qs deleted file mode 100644 index 82ccb4bcfeb..00000000000 --- a/src/Simulation/Simulators.Tests/Circuits/Bug2212.qs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -namespace Bug2212 { - - function F<'T> (arg1 :'T , arg : Unit) : 'T { - return arg1; - } - - function RecursiveGeneric2<'T> (arg1 : (Unit -> 'T), arg2 : Int) : Int { - if ( arg2 <= 0 ) { - return arg2; - } else { - let _ = arg1(); - return RecursiveGeneric2<(Unit -> 'T)>(F(arg1,_),arg2 - 1); - } - } -} - -namespace Microsoft.Quantum.Simulation.Simulators.Tests.Circuits -{ - open Bug2212; - - operation Bug2212Test () : Unit - { - // Calling this function used to trigger a run time exception. - let x = RecursiveGeneric2(F(3,_), 10); - } -} diff --git a/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/Arrays/Tests.qs b/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/Arrays/Tests.qs new file mode 100644 index 00000000000..3bbc428984a --- /dev/null +++ b/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/Arrays/Tests.qs @@ -0,0 +1,22 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +namespace Microsoft.Quantum.Arrays { + open Microsoft.Quantum.Diagnostics; + + /// # Summary + /// Checks that empty arrays are indeed empty. + @Test("QuantumSimulator") + @Test("ToffoliSimulator") + function EmptyArraysAreEmpty() : Unit { + Fact( + Length(EmptyArray()) == 0, + "Empty array of type Int[] was not actually empty." + ); + Fact( + Length(EmptyArray<(Double, Pauli[])>()) == 0, + "Empty array of type (Double, Pauli[])[] was not actually empty." + ); + } + +} diff --git a/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/IntrinsicTests.csproj b/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/IntrinsicTests.csproj index 5bdb6ad7318..8a9529dffca 100644 --- a/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/IntrinsicTests.csproj +++ b/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/IntrinsicTests.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/Random/Tests.qs b/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/Random/Tests.qs index ab8416de9e6..aff82adbc8a 100644 --- a/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/Random/Tests.qs +++ b/src/Simulation/Simulators.Tests/TestProjects/IntrinsicTests/Random/Tests.qs @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + namespace Microsoft.Quantum.Tests { open Microsoft.Quantum.Intrinsic; open Microsoft.Quantum.Canon; diff --git a/src/Simulation/Simulators.Tests/TestProjects/UnitTests/UnitTests.csproj b/src/Simulation/Simulators.Tests/TestProjects/UnitTests/UnitTests.csproj index b5c5f7a6b8a..a612c54e272 100644 --- a/src/Simulation/Simulators.Tests/TestProjects/UnitTests/UnitTests.csproj +++ b/src/Simulation/Simulators.Tests/TestProjects/UnitTests/UnitTests.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Simulation/Simulators.Tests/Tests.Microsoft.Quantum.Simulators.csproj b/src/Simulation/Simulators.Tests/Tests.Microsoft.Quantum.Simulators.csproj index 9a97d67614a..f3c8285d222 100644 --- a/src/Simulation/Simulators.Tests/Tests.Microsoft.Quantum.Simulators.csproj +++ b/src/Simulation/Simulators.Tests/Tests.Microsoft.Quantum.Simulators.csproj @@ -9,7 +9,7 @@ - + false diff --git a/src/Simulation/Simulators.Core/.gitignore b/src/Simulation/Simulators/.gitignore similarity index 100% rename from src/Simulation/Simulators.Core/.gitignore rename to src/Simulation/Simulators/.gitignore diff --git a/src/Simulation/Simulators.Core/FindNuspecReferences.ps1 b/src/Simulation/Simulators/FindNuspecReferences.ps1 similarity index 100% rename from src/Simulation/Simulators.Core/FindNuspecReferences.ps1 rename to src/Simulation/Simulators/FindNuspecReferences.ps1 diff --git a/src/Simulation/Simulators.Core/Microsoft.Quantum.Simulators.csproj b/src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj similarity index 54% rename from src/Simulation/Simulators.Core/Microsoft.Quantum.Simulators.csproj rename to src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj index 8226d6b2192..e83aa0cac54 100644 --- a/src/Simulation/Simulators.Core/Microsoft.Quantum.Simulators.csproj +++ b/src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj @@ -3,11 +3,11 @@ - - - - - + + + + + diff --git a/src/Simulation/Simulators.Core/Microsoft.Quantum.Simulators.nuspec.template b/src/Simulation/Simulators/Microsoft.Quantum.Simulators.nuspec.template similarity index 64% rename from src/Simulation/Simulators.Core/Microsoft.Quantum.Simulators.nuspec.template rename to src/Simulation/Simulators/Microsoft.Quantum.Simulators.nuspec.template index 3335cefd51b..a6b1ee3819e 100644 --- a/src/Simulation/Simulators.Core/Microsoft.Quantum.Simulators.nuspec.template +++ b/src/Simulation/Simulators/Microsoft.Quantum.Simulators.nuspec.template @@ -20,12 +20,12 @@ - - - - - - + + + + + + diff --git a/src/Simulation/Simulators.Core/Properties/AssemblyInfo.cs b/src/Simulation/Simulators/Properties/AssemblyInfo.cs similarity index 100% rename from src/Simulation/Simulators.Core/Properties/AssemblyInfo.cs rename to src/Simulation/Simulators/Properties/AssemblyInfo.cs diff --git a/src/Simulation/TargetDefinitions/Decompositions/MResetY.qs b/src/Simulation/TargetDefinitions/Decompositions/MResetY.qs index 070a5db0d7f..cd2b5f9c549 100644 --- a/src/Simulation/TargetDefinitions/Decompositions/MResetY.qs +++ b/src/Simulation/TargetDefinitions/Decompositions/MResetY.qs @@ -26,7 +26,7 @@ namespace Microsoft.Quantum.Measurement { let result = Measure([PauliY], [target]); // We must return the qubit to the Z basis as well. - S(target); + Adjoint S(target); H(target); if (result == One) {