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)
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)
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)
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)
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)