예제 #1
0
 def _formatted(self, format_type, **kwargs):
     '''
     Override Operation._formatted when formatting a conjunction
     of relations as a total ordering.
     '''
     if self.get_style('as_total_ordering', 'False') == 'True':
         self._check_total_ordering_applicability()
         relations = self.operands.entries
         operands = [rel.lhs for rel in relations] + [relations[-1].rhs]
         formatted_operators = [
             rel.operator.formatted(format_type) if rel.get_style(
                 'direction', 'normal') == 'normal' else
             rel.__class__.reversed_operator_str(format_type)
             for rel in relations
         ]
         return Operation._formattedOperation(
             format_type,
             formatted_operators,
             operands,
             wrap_positions=self.wrap_positions(),
             justification=self.get_style('justification'),
             **kwargs)
     else:
         # Just use the default Operation._formatted method.
         return Operation._formatted(self, format_type, **kwargs)
예제 #2
0
 def formatted(self, formatType, fence=False):
     print("Entering Target.formatted().")  # for testing; delete later
     formattedGateOperation = self.target_gate.formatted(formatType,
                                                         fence=False)
     if formatType == 'latex':
         return r'\gate{' + formattedGateOperation + r'}'
     else:
         return Operation._formatted(self, formatType, fence)
예제 #3
0
 def formatted(self, formatType, fence=False, subFence=True):
     # Temporary hack to get quantum bra and ket products to display properly.
     # This should eventually be done differently because we shouldn't need to
     # know anything about the quantum application here.
     from proveit.physics.quantum import Bra, Ket, RegisterBra, RegisterKet
     if len(self.operands) == 2 and (isinstance(self.operands[0], Bra) or isinstance(self.operands[0], RegisterBra)) and (isinstance(self.operands[1], Ket) or isinstance(self.operands[1], RegisterKet)):
         return self.operands[0].formatted(formatType) + self.operands[1].formatted(formatType, no_lvert=True)
     # return Operation.formatted(self, formatType, fence, subFence)
     return Operation._formatted(self, formatType=formatType, fence=fence, subFence=subFence)
예제 #4
0
 def formatted(self, formatType, **kwargs):
     print("Entering Gate.formatted.")  # for testing; delete later
     print("  formatType = {}".format(
         formatType))  # for testing; delete later
     formattedGateOperation = (self.gate_operation.formatted(formatType,
                                                             fence=False))
     print("  formattedGateOperation = {}".format(
         formattedGateOperation))  # for testing; delete later
     if formatType == 'latex':
         print("    inside if formatType=latex block"
               )  # for testing; delete later
         return r'\gate{' + formattedGateOperation + r'}'
     else:
         return Operation._formatted(self, formatType)
예제 #5
0
 def formatted(self, formatType, fence=False):
     formattedState = self.state.formatted(formatType, fence=False)
     if formatType == 'latex':
         return r'\rstick{' + formattedState + r'} \qw'
     else:
         return Operation._formatted(self, formatType, fence)
예제 #6
0
 def formatted(self, format_type, fence=False):
     formatted_state = self.state.formatted(format_type, fence=False)
     if format_type == LATEX:
         return r'\rstick{' + formatted_state + r'} \qw'
     else:
         return Operation._formatted(self, format_type, fence)