量子コンピータ開発環境(Quantum Development Kit)でのMicrosoft.Quantum.Simulation.Core


1.まえがき

 Microsoft量子コンピータ開発環境(Quantum Development Kit)を利用して量子コンピータプログラミングを検証しています。
 その中のMicrosoft.Quantum.Simulation.Coreについて記します。

2.Microsoft.Quantum.Simulation.Core

 public abstract class AbstractOperation
  コンストラクター
  public AbstractOperation(Microsoft.Quantum.Simulation.Core.IOperationFactory)
  ファンクション
  public virtual GetQubits() 戻り値:System.Collections.Generic.List>
  public abstract Dependencies{ get; } 戻り値:System.Type[]
  public Factory{ get; } 戻り値:Microsoft.Quantum.Simulation.Core.IOperationFactory
  public static readonly _ 戻り値:Microsoft.Quantum.Simulation.Core.MissingParameter
 public abstract class Adjointable : Microsoft.Quantum.Simulation.Core.Operation
  コンストラクター
  public Adjointable(Microsoft.Quantum.Simulation.Core.IOperationFactory m)
 public class AdjointedOperation : Microsoft.Quantum.Simulation.Core.Unitary
  コンストラクター
  public AdjointedOperation(Microsoft.Quantum.Simulation.Core.Operation op)
  ファンクション
  public override GetQubits() 戻り値:System.Collections.Generic.List>
  public override ToString() 戻り値:string
  public override AdjointBody{ get; } 戻り値:System.Func
  プロパティ
  public BaseOp{ get; } 戻り値:Microsoft.Quantum.Simulation.Core.Operation
  public override Body{ get; } 戻り値:System.Func
  public override ControlledAdjointBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, I), Microsoft.Quantum.Simulation.Core.QVoid>
  public override ControlledBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, I), Microsoft.Quantum.Simulation.Core.QVoid>
  public override Dependencies { get; } 戻り値:System.Type[]
 public abstract class Controllable: Microsoft.Quantum.Simulation.Core.Operation
  コンストラクター
  public Controllable(Microsoft.Quantum.Simulation.Core.IOperationFactory m)
 public class ControlledOperation : Microsoft.Quantum.Simulation.Core.Unitary<(Microsoft.Quantum.Simulation.Core.QArray, I)>
  コンストラクター
  public ControlledOperation(Microsoft.Quantum.Simulation.Core.Operation op)
  ファンクション
  public override GetQubits() 戻り値:System.Collections.Generic.List>
  プロパティ
  public override AdjointBody { get; } 戻り値:System.Func
  public BaseOp { get; } 戻り値:Microsoft.Quantum.Simulation.Core.Operation
  public override Body { get; } 戻り値:System.Func
  public override ControlledAdjointBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, I), Microsoft.Quantum.Simulation.Core.QVoid>
  public override ControlledBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, I), Microsoft.Quantum.Simulation.Core.QVoid>
  public override Dependencies { get; } 戻り値:System.Type[]
 public class ExecutionFailException: System.Exception
  コンストラクター
  public ExecutionFailException(string message)
 public static class Extensions
  ファンクション
  public static GetQubits(this object value) 戻り値:System.Collections.Generic.List>
  public static IAdjointableType(this System.Type t) 戻り値:System.Type
  public static ICallableType(this System.Type t) 戻り値:System.Type
  public static IControllableType(System.Type t) 戻り値:System.Type
  public static IUnitatryType(this System.Type t) 戻り値:System.Type
  public static JoinArrays(this System.Collections.Generic.List> arrays) 戻り値:Microsoft.Quantum.Simulation.Core.QArray
  public static Pow(this double x, double y) 戻り値:double
  public static ToBool(this Microsoft.Quantum.Simulation.Core.Result r) 戻り値:bool
  public static ToResult(this bool b) 戻り値:Microsoft.Quantum.Simulation.Core.Result
 public class GenericAdjoint: Microsoft.Quantum.Simulation.Core.GenericOperation
  コンストラクター
  public GenericAdjoint(Microsoft.Quantum.Simulation.Core.GenericOperation parent)
  ファンクション
  public override CreateOperation() 戻り値:Microsoft.Quantum.Simulation.Core.ICallable
 public class GenericControlled : Microsoft.Quantum.Simulation.Core.GenericOperation
  コンストラクター
  public GenericControlled(Microsoft.Quantum.Simulation.Core.GenericOperation parent)
  ファンクション
  public override CreateOperation() 戻り値:Microsoft.Quantum.Simulation.Core.ICallable
 public class GenericOperation : Microsoft.Quantum.Simulation.Core.AbstractOperation
  コンストラクター
  public GenericOperation(Microsoft.Quantum.Simulation.Core.GenericOperation parent)
  public GenericOperation(Microsoft.Quantum.Simulation.Core.IOperationFactory m, System.Type baseOp)
  ファンクション
  public virtual CreateOperation() 戻り値:Microsoft.Quantum.Simulation.Core.ICallable
  public virtual FindClosedType() 戻り値:System.Type
  public Partial(object partialTuple) 戻り値:Microsoft.Quantum.Simulation.Core.GenericPartial
  public virtual Resolve(System.Type original, System.Type resolved, System.Type[] typeArgs)
  プロパティ
  public Adjoint { get; } 戻り値:Microsoft.Quantum.Simulation.Core.GenericAdjoint
  public BaseOp { get; } 戻り値:System.Type
  public Controlled { get; } 戻り値:Microsoft.Quantum.Simulation.Core.GenericControlled
  public override Dependencies { get; } 戻り値:System.Type[]
  public Parent { get; } 戻り値:Microsoft.Quantum.Simulation.Core.GenericOperation
 public class GenericPartial : Microsoft.Quantum.Simulation.Core.GenericOperation
  コンストラクター
  public GenericPartial(Microsoft.Quantum.Simulation.Core.GenericOperation parent, object partialValues)   public GenericPartial(Microsoft.Quantum.Simulation.Core.IOperationFactory m, System.Type baseOp, object partialValues)   ファンクション
  public static Combine(System.Type[] partial, System.Collections.Generic.Stack args) 戻り値:System.Collections.Generic.IEnumerable
  public override CreateOperation() 戻り値:Microsoft.Quantum.Simulation.Core.ICallable
  public IdentifyBaseArgsType

() 戻り値:System.Type
  public static TupleType(System.Type[] fields) 戻り値:System.Type
  プロパティ
  public Values { get; } 戻り値:object
 public class MissingParameter
  コンストラクター
  public MissingParameter(System.Type type)
  ファンクション
  public static _ 戻り値:Microsoft.Quantum.Simulation.Core.MissingParameter
  プロパティ
  public Type { get; } 戻り値:System.Type
 public abstract class Operation: Microsoft.Quantum.Simulation.Core.AbstractOperation
  コンストラクター
  public Operation(Microsoft.Quantum.Simulation.Core.IOperationFactory m)
  ファンクション
  public Apply(I args) 戻り値:O
  public static FindPartialType(System.Type original, object partial) 戻り値:System.Type
  public Partial(object partialTuple) 戻り値:object
  プロパティ
  protected Adjoint { get; } 戻り値:Microsoft.Quantum.Simulation.Core.AdjointedOperation
  public virtual AdjointBody { get; } 戻り値:System.Func
  public abstract Body { get; } 戻り値:System.Func
  protected Controlled { get; } 戻り値:Microsoft.Quantum.Simulation.Core.ControlledOperation
  public virtual ControlledAdjointBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, I), Microsoft.Quantum.Simulation.Core.QVoid>
  public virtual ControlledBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, I), Microsoft.Quantum.Simulation.Core.QVoid>
 public class PartialApplication : Microsoft.Quantum.Simulation.Core.Operation
  コンストラクター
  public PartialApplication(Microsoft.Quantum.Simulation.Core.Operation op, object partialTuple)
  public PartialApplication(Microsoft.Quantum.Simulation.Core.Operation op, System.Func mapper)
  ファンクション
  public override GetQubits() 戻り値:System.Collections.Generic.List>
  public override ToString() 戻り値:string
  プロパティ
  public override AdjointBody { get; } 戻り値:System.Func
  public BaseOp { get; } 戻り値:Microsoft.Quantum.Simulation.Core.Operation
  public override Body { get; } 戻り値:System.Func
  public override ControlledAdjointBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, P), Microsoft.Quantum.Simulation.Core.QVoid>
  public override ControlledBody { get; } 戻り値:System.Func<(Microsoft.Quantum.Simulation.Core.QArray, P), Microsoft.Quantum.Simulation.Core.QVoid>
  public override Dependencies { get; } 戻り値:System.Type[]
  public Mapper { get; } 戻り値:System.Func
 public class PartialCapturedQubits
  コンストラクター
  public PartialCapturedQubits(Microsoft.Quantum.Simulation.Core.IQubitsContainer baseContainer, System.Func mapper)
  ファンクション
  public GetQubits() 戻り値:System.Collections.Generic.List>
 public static class PartialMapper
  ファンクション
  public static BuildStack(A[] content) 戻り値:System.Collections.Generic.Stack
  public static BuildTuple(object[] fields) 戻り値:object
  public static CastTuple(System.Type targetType, object value) 戻り値:object
  public static Combine(object[] partial, System.Collections.Generic.Stack args)) 戻り値:System.Collections.Generic.IEnumerable
  public static Create(object partial) 戻り値:System.Func
  public static GetTupleValues(object arg) 戻り値:object[]
  プロパティ
  public static readonly TupleTypes 戻り値:System.Type[]
 public class PartialUnitary: Microsoft.Quantum.Simulation.Core.PartialApplication
  コンストラクター
  public PartialUnitary(Microsoft.Quantum.Simulation.Core.Operation op, object partialTuple)
  public PartialUnitary(Microsoft.Quantum.Simulation.Core.Operation op, System.Func mapper)
 public class QArray : System.Collections.Generic.List
  コンストラクター
  public QArray()
  public QArray(long capacity)
  public QArray(System.Collections.Generic.IEnumerable collection)
  ファンクション
  public Slice(Microsoft.Quantum.Simulation.Core.Range range) 戻り値:Microsoft.Quantum.Simulation.Core.QArray
  public override ToString() 戻り値:string
  public static implicit operator(Microsoft.Quantum.Simulation.Core.QArray arg) 戻り値:Microsoft.Quantum.Simulation.Core.QArray   public static operator +(Microsoft.Quantum.Simulation.Core.QArray arr1, Microsoft.Quantum.Simulation.Core.QArray arr2) 戻り値:Microsoft.Quantum.Simulation.Core.QArray   プロパティ
  public Length { get; } 戻り値:long
  public this[long index] { get; set; } 戻り値:T
 public abstract class Qubit
  コンストラクター
  public Qubit(int id)
  ファンクション
  public Equals(Microsoft.Quantum.Simulation.Core.Qubit q1, Microsoft.Quantum.Simulation.Core.Qubit q2) 戻り値:bool
  public GetHashCode(Microsoft.Quantum.Simulation.Core.Qubit q) 戻り値:int
  public GetQubits() 戻り値:System.Collections.Generic.List>
  プロパティ
  public Id { get; } 戻り値:int
 public sealed class QVoid
  プロパティ
  public static readonly Instance 戻り値:Microsoft.Quantum.Simulation.Core.QVoid
 public class Range
  コンストラクター
  public Range(long start, long end)
  public Range(long start, long step, long end)
  ファンクション
  public GetEnumerator() 戻り値:System.Collections.Generic.IEnumerator
  public override ToString() 戻り値:string
  プロパティ
  public End { get; } 戻り値:long
  public Start { get; } 戻り値:long
  public Step { get; } 戻り値:long
 public abstract class Unitary: Microsoft.Quantum.Simulation.Core.Operation
  コンストラクター
  public Unitary(Microsoft.Quantum.Simulation.Core.IOperationFactory m)
 public enum OperationFunctor
  Adjoint
  Body
  Controlled
  ControlledAdjoint
 public enum Pauli
  PauliI
  PauliX
  PauliY
  PauliZ
 public enum Result
  One
  Zero
 public interface IAdjointable
  ファンクション
  Partial(object values) 戻り値:Microsoft.Quantum.Simulation.Core.IAdjointable
  プロパティ
  Adjoint { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IAdjointable
 public interface IAdjointable
  プロパティ
  Adjoint { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IAdjointable
 public interface ICallable
  ファンクション
  Apply(object args)
  Apply(object args) 戻り値:O
  Partial(object partialTuple) 戻り値:Microsoft.Quantum.Simulation.Core.ICallable
 public interface ICallable
  Apply(I args) 戻り値:O
 public interface IControllable
  ファンクション
  Partial(object values) 戻り値:Microsoft.Quantum.Simulation.Core.IControllable
  プロパティ
  Controlled { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IControllable
 public interface IControllable
  プロパティ
  Controlled { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IControllable<(Microsoft.Quantum.Simulation.Core.QArray, I)>
 public interface IOperationFactory
  ファンクション
  EndOperation(string operationName, Microsoft.Quantum.Simulation.Core.OperationFunctor functor, object resultValue)
  Get() 戻り値:I
  Run(I args) 戻り値:System.Threading.Tasks.Task
  StartOperation(string operationName, Microsoft.Quantum.Simulation.Core.OperationFunctor functor, object inputValue)
  プロパティ
  Name { get; } 戻り値:string
 public interface IQubitsContainer
  ファンクション
  GetQubits() 戻り値:System.Collections.Generic.List>
 public interface IUnitary
  ファンクション
  Partial(object partialTuple) 戻り値:Microsoft.Quantum.Simulation.Core.IUnitary
  プロパティ
  Adjoint { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IUnitary
  Controlled { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IUnitary
 public interface IUnitary
  プロパティ
  Adjoint { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IUnitary
  Controlled { get; } 戻り値:Microsoft.Quantum.Simulation.Core.IUnitary<(Microsoft.Quantum.Simulation.Core.QArray, I)>

3.その他

   本解釈はRVMXでの解釈で、間違いが含まれているかもしれません。
   現在、編集中です。

4.関連リンク

   -1.量子コンピータへのRVMXの取り組みと展望について
   -2.RVMXでの量子コンピーュータの原理について
   -3.Microsoft.Quantumよりの参照クラス

(有)RVMX