Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/QirRuntime/test/QIR-static/qsharp/main.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

// Currently, compiling to QIR has to suppress C# generation but then we need to provide Main function ourselves.
namespace CompilerWorkaround
{
class Program
{
static void Main(string[] args)
{
}
}
}
8 changes: 7 additions & 1 deletion src/QirRuntime/test/QIR-static/qsharp/qir-gen.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129370-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<QirGeneration>True</QirGeneration>
<CSharpGeneration>false</CSharpGeneration>
<IncludeQSharpCorePackages>false</IncludeQSharpCorePackages>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\..\Simulation\QSharpCore\Microsoft.Quantum.QSharp.Core.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

<ItemGroup>
<PackageReference Update="FSharp.Core" Version="4.7.0" />
<PackageReference Include="Microsoft.Quantum.Compiler" Version="0.15.210222819-alpha" />
<PackageReference Include="Microsoft.Quantum.Compiler" Version="0.15.2102129527-alpha" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\Common\AssemblyCommon.props" />
<Import Project="..\Common\Simulators.Dev.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">
<Import Project="..\TargetDefinitions\TargetPackages\QSharpCore.Package.props" />

<PropertyGroup>
Expand Down
64 changes: 48 additions & 16 deletions src/Simulation/QSharpFoundation/ClassicalControl.qs
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,36 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor.Extensions //ToDo: updat
}

operation ApplyIfElseIntrinsicA(measurementResult : Result, onResultZeroOp : (Unit => Unit is Adj) , onResultOneOp : (Unit => Unit is Adj)) : Unit is Adj {
body intrinsic;
adjoint intrinsic;
body (...) {
ApplyIfElseIntrinsic(measurementResult, onResultZeroOp, onResultOneOp);
}
adjoint (...) {
ApplyIfElseIntrinsic(measurementResult, Adjoint onResultZeroOp, Adjoint onResultOneOp);
}
}

operation ApplyIfElseIntrinsicC(measurementResult : Result, onResultZeroOp : (Unit => Unit is Ctl) , onResultOneOp : (Unit => Unit is Ctl)) : Unit is Ctl {
body intrinsic;
controlled intrinsic;
body (...) {
ApplyIfElseIntrinsic(measurementResult, onResultZeroOp, onResultOneOp);
}
controlled (ctls, ...) {
ApplyIfElseIntrinsic(measurementResult, Controlled onResultZeroOp(ctls, _), Controlled onResultOneOp(ctls, _));
}
}

operation ApplyIfElseIntrinsicCA(measurementResult : Result, onResultZeroOp : (Unit => Unit is Ctl + Adj) , onResultOneOp : (Unit => Unit is Ctl + Adj)) : Unit is Ctl + Adj {
body intrinsic;
adjoint intrinsic;
controlled intrinsic;
controlled adjoint intrinsic;
body (...) {
ApplyIfElseIntrinsic(measurementResult, onResultZeroOp, onResultOneOp);
}
adjoint (...) {
ApplyIfElseIntrinsic(measurementResult, Adjoint onResultZeroOp, Adjoint onResultOneOp);
}
controlled (ctls, ...) {
ApplyIfElseIntrinsic(measurementResult, Controlled onResultZeroOp(ctls, _), Controlled onResultOneOp(ctls, _));
}
controlled adjoint (ctls, ...) {
ApplyIfElseIntrinsic(measurementResult, Controlled Adjoint onResultZeroOp(ctls, _), Controlled Adjoint onResultOneOp(ctls, _));
}
}


Expand All @@ -52,20 +68,36 @@ namespace Microsoft.Quantum.Simulation.QuantumProcessor.Extensions //ToDo: updat
}

operation ApplyConditionallyIntrinsicA(measurementResults : Result[], resultsValues : Result[], onEqualOp : (Unit => Unit is Adj) , onNonEqualOp : (Unit => Unit is Adj)) : Unit is Adj {
body intrinsic;
adjoint intrinsic;
body (...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, onEqualOp, onNonEqualOp);
}
adjoint (...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, Adjoint onEqualOp, Adjoint onNonEqualOp);
}
}

operation ApplyConditionallyIntrinsicC(measurementResults : Result[], resultsValues : Result[], onEqualOp : (Unit => Unit is Ctl) , onNonEqualOp : (Unit => Unit is Ctl)) : Unit is Ctl {
body intrinsic;
controlled intrinsic;
body (...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, onEqualOp, onNonEqualOp);
}
controlled (ctls, ...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, Controlled onEqualOp(ctls, _), Controlled onNonEqualOp(ctls, _));
}
}

operation ApplyConditionallyIntrinsicCA(measurementResults : Result[], resultsValues : Result[], onEqualOp : (Unit => Unit is Ctl + Adj) , onNonEqualOp : (Unit => Unit is Ctl + Adj)) : Unit is Ctl + Adj {
body intrinsic;
adjoint intrinsic;
controlled intrinsic;
controlled adjoint intrinsic;
body (...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, onEqualOp, onNonEqualOp);
}
adjoint (...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, Adjoint onEqualOp, Adjoint onNonEqualOp);
}
controlled (ctls, ...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, Controlled onEqualOp(ctls, _), Controlled onNonEqualOp(ctls, _));
}
controlled adjoint (ctls, ...) {
ApplyConditionallyIntrinsic(measurementResults, resultsValues, Controlled Adjoint onEqualOp(ctls, _), Controlled Adjoint onNonEqualOp(ctls, _));
}
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\Common\AssemblyCommon.props" />
<Import Project="..\Common\DebugSymbols.props" />
Expand All @@ -8,6 +8,7 @@
<QSharpDocsGeneration>true</QSharpDocsGeneration>
<CSharpGeneration>false</CSharpGeneration> <!-- we will provide our own -->
<IncludeQSharpCorePackages>false</IncludeQSharpCorePackages>
<QscVerbosity>D</QscVerbosity>
</PropertyGroup>

<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<CSharpGeneration>false</CSharpGeneration>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\Common\Simulators.Test.props" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\Common\Simulators.Test.props" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222819-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\Common\Simulators.Test.props" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2101126940">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\Common\Simulators.Test.props" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\Common\AssemblyCommon.props" />
<Import Project="..\Common\DebugSymbols.props" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\TargetDefinitions\TargetPackages\Type1.Package.props" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.210222838-alpha">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\TargetDefinitions\TargetPackages\Type2.Package.props" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2101126940">
<Project Sdk="Microsoft.Quantum.Sdk/0.15.2102129527-alpha">

<Import Project="..\TargetDefinitions\TargetPackages\Type3.Package.props" />

Expand Down