QNLP  v1.0
QNLP.proc.HammingDistance.HammingDistanceOverwriteAux Class Reference
Inheritance diagram for QNLP.proc.HammingDistance.HammingDistanceOverwriteAux:
Inheritance graph
Collaboration diagram for QNLP.proc.HammingDistance.HammingDistanceOverwriteAux:
Collaboration graph

Public Member Functions

def __init__ (self, num_bits, simulator)
 
def calc (self, reg_mem, reg_aux, pattern)
 
def calc (self)
 

Data Fields

 num_bits
 
 sim
 

Private Member Functions

def _encodePattern (self, reg_mem, reg_aux, pattern)
 
def _overwriteAux (self, reg_mem, reg_aux, pattern)
 

Detailed Description

Intermediate routine to overwrite the data in the aux register
with its Hamming dsiatnce to the data in the memory regsiter.

Definition at line 88 of file HammingDistance.py.

Constructor & Destructor Documentation

◆ __init__()

def QNLP.proc.HammingDistance.HammingDistanceOverwriteAux.__init__ (   self,
  num_bits,
  simulator 
)

Reimplemented from QNLP.proc.HammingDistance.HammingDistance.

Reimplemented in QNLP.proc.HammingDistance.HammingDistanceGroupRotate.

Definition at line 93 of file HammingDistance.py.

93  def __init__(self, num_bits, simulator):
94  super().__init__(num_bits,simulator)
95 

Member Function Documentation

◆ _encodePattern()

def QNLP.proc.HammingDistance.HammingDistanceOverwriteAux._encodePattern (   self,
  reg_mem,
  reg_aux,
  pattern 
)
private

Definition at line 96 of file HammingDistance.py.

96  def _encodePattern(self, reg_mem, reg_aux, pattern):
97  self.sim.encodeToRegister(pattern, reg_aux[0:-2], len(reg_mem))
98 

References QNLP.proc.HammingDistance.HammingDistance.sim.

Referenced by QNLP.proc.HammingDistance.HammingDistanceOverwriteAux.calc(), and QNLP.proc.HammingDistance.HammingDistanceGroupRotate.calc().

Here is the caller graph for this function:

◆ _overwriteAux()

def QNLP.proc.HammingDistance.HammingDistanceOverwriteAux._overwriteAux (   self,
  reg_mem,
  reg_aux,
  pattern 
)
private

Definition at line 99 of file HammingDistance.py.

99  def _overwriteAux(self, reg_mem, reg_aux, pattern):
100  for idx, val in enumerate(reg_mem):
101  self.sim.applyGateX(reg_aux[idx])
102  self.sim.applyGateCCX(reg_mem[idx], reg_aux[idx], reg_aux[-2])
103  self.sim.applyGateX(reg_aux[idx])
104  self.sim.applyGateCSwap(reg_mem[idx], reg_aux[idx], reg_aux[-2])
105 

References QNLP.proc.HammingDistance.HammingDistance.sim.

Referenced by QNLP.proc.HammingDistance.HammingDistanceOverwriteAux.calc(), and QNLP.proc.HammingDistance.HammingDistanceGroupRotate.calc().

Here is the caller graph for this function:

◆ calc() [1/2]

def QNLP.proc.HammingDistance.HammingDistance.calc (   self)
inherited

Definition at line 30 of file HammingDistance.py.

30  def calc(self):
31  pass
32 

◆ calc() [2/2]

def QNLP.proc.HammingDistance.HammingDistanceOverwriteAux.calc (   self,
  reg_mem,
  reg_aux,
  pattern 
)

Reimplemented in QNLP.proc.HammingDistance.HammingDistanceGroupRotate.

Definition at line 106 of file HammingDistance.py.

106  def calc(self, reg_mem, reg_aux, pattern):
107  self._encodePattern(reg_mem, reg_aux, pattern)
108  self._overwriteAux(reg_mem, reg_aux, pattern)

References QNLP.proc.HammingDistance.HammingDistanceOverwriteAux._encodePattern(), and QNLP.proc.HammingDistance.HammingDistanceOverwriteAux._overwriteAux().

Here is the call graph for this function:

Field Documentation

◆ num_bits

QNLP.proc.HammingDistance.HammingDistance.num_bits
inherited

◆ sim


The documentation for this class was generated from the following file: