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) {