コード例 #1
0
ファイル: group_sum.py プロジェクト: PyProveIt/Prove-It
 def _formatted(self, format_type, **kwargs):
     from proveit.numbers import Interval
     # MUST BE UPDATED TO DEAL WITH 'joining' NESTED LEVELS
     fence = kwargs['fence'] if 'fence' in kwargs else False
     if isinstance(self.domain, Interval):
         lower = self.domain.lower_bound.formatted(format_type)
         upper = self.domain.upper_bound.formatted(format_type)
         formatted_inner = self.operator.formatted(
             format_type) + r'_{' + self.index.formatted(
                 format_type) + '=' + lower + r'}' + r'^{' + upper + r'} '
         explicit_ivars = list(self.explicit_instance_vars())
         has_explicit_ivars = (len(explicit_ivars) > 0)
         explicit_conds = list(self.explicit_conditions())
         has_explicit_conds = (len(explicit_conds) > 0)
         if has_explicit_conds:
             if has_explicit_ivars:
                 formatted_inner += " | "
             formatted_inner += ', '.join(
                 condition.formatted(format_type)
                 for condition in explicit_conds)
         formatted_inner += self.summand.formatted(format_type, fence=True)
         return maybe_fenced(format_type, formatted_inner, fence=fence)
     else:
         return OperationOverInstances._formatted(self,
                                                  format_type,
                                                  fence=fence)
コード例 #2
0
ファイル: sum.py プロジェクト: PyProveIt/Prove-It
 def _formatted(self, format_type, **kwargs):
     # MUST BE UPDATED TO DEAL WITH 'joining' NESTED LEVELS
     fence = kwargs['fence'] if 'fence' in kwargs else False
     explicit_conds = self.explicit_conditions()
     if isinstance(self.domain, Interval) and len(explicit_conds) == 0:
         formatted_operator = self.operator.formatted(format_type)
         formatted_index = self.index.formatted(format_type)
         formatted_lower = self.domain.lower_bound.formatted(format_type)
         formatted_upper = self.domain.upper_bound.formatted(format_type)
         formatted_summand = self.summand.formatted(format_type, fence=True)
         formatted_inner = "%s_{%s = %s}^{%s} %s" % (
             formatted_operator, formatted_index, formatted_lower,
             formatted_upper, formatted_summand)
         return maybe_fenced(format_type, formatted_inner, fence=fence)
     else:
         return OperationOverInstances._formatted(self,
                                                  format_type,
                                                  fence=fence)
コード例 #3
0
ファイル: sum.py プロジェクト: rmmilewi/Prove-It
 def _formatted(self, formatType, **kwargs):
     # MUST BE UPDATED TO DEAL WITH 'joining' NESTED LEVELS
     fence = kwargs['fence'] if 'fence' in kwargs else False
     if isinstance(self.domain,Interval):
         lower = self.domain.lowerBound.formatted(formatType)
         upper = self.domain.upperBound.formatted(formatType)
         formattedInner = self.operator.formatted(formatType)+r'_{'+self.index.formatted(formatType)+'='+lower+r'}'+r'^{'+upper+r'} '
         explicitIvars = list(self.explicitInstanceVars())
         hasExplicitIvars = (len(explicitIvars) > 0)
         explicitConds = list(self.explicitConditions())
         hasExplicitConds = (len(explicitConds) > 0)
         if hasExplicitConds:
             if hasExplicitIvars: 
                 formattedInner += " | "
             formattedInner += ', '.join(condition.formatted(formatType) for condition in explicitConds) 
         formattedInner += self.summand.formatted(formatType, fence=fence) 
         return maybeFenced(formatType, formattedInner, fence=fence)
     else:
         return OperationOverInstances._formatted(self, formatType, fence)
コード例 #4
0
ファイル: integrate.py プロジェクト: PyProveIt/Prove-It
    def _formatted(self, format_type, **kwargs):
        # ACTUALLY, notice that the open-interval versions
        # probably lead to incorrect upper/lower bounds on the
        # formatted integrals. For example, an integral over the
        # open half-open interval (0, 1] would need to be formatted
        # or expressed as a limit as 'a' approaches 0 from the right
        # of the integral from 0 to 1.
        fence = kwargs['fence'] if 'fence' in kwargs else False
        if (isinstance(self.domain,IntervalCC) or
            isinstance(self.domain,IntervalCO) or
            isinstance(self.domain,IntervalOC) or
            isinstance(self.domain,IntervalOO)):

            lower = self.domain.lower_bound.formatted(format_type)
            upper = self.domain.upper_bound.formatted(format_type)
            formatted_inner = (
                    self.operator.formatted(format_type) +
                    r'_{' + lower + r'}' + r'^{' + upper + r'} ')
            explicit_ivars = list(self.explicit_instance_vars())
            has_explicit_ivars = (len(explicit_ivars) > 0)
            explicit_conds = list(self.explicit_conditions())
            has_explicit_conds = (len(explicit_conds) > 0)
            if has_explicit_conds:
                if has_explicit_ivars:
                    formatted_inner += " | "
                formatted_inner += ', '.join(condition.formatted(format_type)
                                             for condition in explicit_conds)
            formatted_inner += (
                    self.integrand.formatted(format_type, fence=fence) +
                    r'\,d' + self.index.formatted(format_type))

            # old/previous
            # return (self.operator.formatted(format_type) +
            #         r'_{' + lower + r'}' + r'^{' + upper + r'}' +
            #         self.integrand.formatted(format_type, fence=fence) +
            #         'd' + self.index.formatted(format_type))
            
            return maybe_fenced(format_type, formatted_inner, fence=fence)
        else:
            return OperationOverInstances._formatted(self, format_type,
                                                     fence=fence)
コード例 #5
0
 def _formatted(self, formatType, **kwargs):
     fence = kwargs['fence'] if 'fence' in kwargs else False
     if isinstance(self.domain, Interval):
         lower = self.domain.lowerBound.formatted(formatType)
         upper = self.domain.upperBound.formatted(formatType)
         formattedInner = self.operator.formatted(
             formatType) + r'_{' + self.index.formatted(
                 formatType) + '=' + lower + r'}' + r'^{' + upper + r'} '
         implicitIvars = self.implicitInstanceVars(formatType)
         hasExplicitIvars = (len(implicitIvars) < len(self.instanceVars))
         implicitConditions = self.implicitConditions(formatType)
         hasExplicitConditions = self.hasCondition() and (
             len(implicitConditions) < len(self.conditions))
         if hasExplicitConditions:
             if hasExplicitIvars:
                 formattedInner += " | "
             formattedInner += ', '.join(
                 condition.formatted(formatType)
                 for condition in self.conditions
                 if condition not in implicitConditions)
         formattedInner += self.summand.formatted(formatType, fence=fence)
         return maybeFenced(formatType, formattedInner, fence=fence)
     else:
         return OperationOverInstances._formatted(self, formatType, fence)