Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# Copyright 2019-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 

2# 

3# Licensed under the Apache License, Version 2.0 (the "License"). You 

4# may not use this file except in compliance with the License. A copy of 

5# the License is located at 

6# 

7# http://aws.amazon.com/apache2.0/ 

8# 

9# or in the "license" file accompanying this file. This file is 

10# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 

11# ANY KIND, either express or implied. See the License for the specific 

12# language governing permissions and limitations under the License. 

13 

14from abc import ABC, abstractmethod 

15 

16 

17class Operator(ABC): 

18 """A quantum operator is the abstract definition of an operation for a quantum device.""" 

19 

20 @property 

21 @abstractmethod 

22 def name(self) -> str: 

23 """str: The operator name.""" 

24 

25 @abstractmethod 

26 def to_ir(self, *args, **kwargs): 

27 """ 

28 Converts the operator into the canonical intermediate representation. 

29 If the operator is passed in a request, this method is called before it is passed. 

30 

31 Args: 

32 target (QubitSet): Target qubits that the operator is applied to. 

33 """