Skip to content

Commit

Permalink
Make PL segment formatting more accessible
Browse files Browse the repository at this point in the history
  • Loading branch information
DMRobertson committed Jan 17, 2018
1 parent a3be0c1 commit 7a9082d
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions thompson/homomorphism.py
Original file line number Diff line number Diff line change
Expand Up @@ -598,21 +598,25 @@ def __repr__(self):
self._append_output(rows, output)
return output.getvalue()

@classmethod
def pl_segment(cls, d1, d2, r1, r2):
gradient = (r2 - r1) / (d2 - d1)
intercept = r1 - gradient * d1
return {
"ystart": r1,
"yend": r2,
"xstart": d1,
"xend": d2,
"intercept": intercept,
"gradient": gradient,
}

def pl_segments(self):
segments = []
for d, r in zip(self.domain, self.range):
d1, d2 = d.as_interval()
r1, r2 = r.as_interval()
gradient = self.gradient(d, r)
intercept = r1 - gradient * d1
segments.append({
"ystart": r1,
"yend": r2,
"xstart": d1,
"xend": d2,
"intercept": intercept,
"gradient": self.gradient(d, r),
})
segments.append( self.pl_segment(d1, d2, r1, r2) )

i = 1
while i < len(segments):
Expand Down Expand Up @@ -646,7 +650,10 @@ def format_pl_segments(self, LaTeX=False, sfrac=False):
1/2 + 2 (t - 3/4 ) &\text{if\quad $ 3/4 \leq t < 1 $}
\end{cases}
"""
segments = self.pl_segments()
return self.format_pl_segments_directly( self.pl_segments(), LaTeX, sfrac)

@classmethod
def format_pl_segments_directly(cls, segments, LaTeX=False, sfrac=False):
ystarts = []
gradients = []
xstarts = []
Expand Down

0 comments on commit 7a9082d

Please sign in to comment.