| class Celsius2Fahrenheit(Component):
@property
def signature(self):
return Signature({
"c": Out(Q(self.qc[0], self.qc[1])),
"f": In(Q(self.qf[0], self.qf[1]))
})
def __init__(self, *, qc, qf, muln=5):
self.qc = qc
self.qf = qf
self.muln = muln
super().__init__()
def elaborate(self, plat):
m = Module()
## 1.8 not representable. 1.78125 will have to be close enough.
#mul_factor = C(9*2**self.muln // 5) # Q1.{self.muln}
#add_factor = C(32 << (self.qc[1] + self.muln)) # Q6.{self.qn + self.muln}
## Technically we get a Q{self.qm + 1}.{self.qn + self.muln} after mul,
## so truncate the extra decimal.
## Overflow prob won't happen.
#extra_bits = self.qc[1] + self.muln - self.qf[1]
#intermediate = (mul_factor * self.c) + add_factor
#m.d.comb += self.f.eq(intermediate >> extra_bits)
m.d.comb += self.f.eq(self.c * Q(1, self.muln).const(1.8) + 32)
return m
if __name__ == "__main__":
c2f = Celsius2Fahrenheit(qc=(8, 3), qf=(10, 3), muln=15)
if len(sys.argv) > 1 and sys.argv[1] == "sim":
sim = Simulator(c2f)
def proc():
for i in range(-2**(c2f.qc[0] + c2f.qc[1] - 1),
2**(c2f.qc[0] + c2f.qc[1] - 1)):
yield c2f.c.as_value().eq(i)
yield Settle()
print((yield c2f.c.as_value()) / 2**c2f.qc[1],
(yield c2f.f.as_value()) / 2**c2f.qf[1])
sim.add_process(proc)
sim.run()
else:
print(convert(c2f))
'''
$ ./test_am_fp.py sim
-128.0 -198.375
-127.875 -198.125
-127.75 -198.0
-127.625 -197.75
-127.5 -197.5
-127.375 -197.25
-127.25 -197.0
-127.125 -196.875
-127.0 -196.625
-126.875 -196.375
-126.75 -196.125
-126.625 -195.875
-126.5 -195.75
-126.375 -195.5
-126.25 -195.25
-126.125 -195.0
-126.0 -194.75
-125.875 -194.625
-125.75 -194.375
-125.625 -194.125
-125.5 -193.875
-125.375 -193.625
-125.25 -193.5
-125.125 -193.25
-125.0 -193.0
-124.875 -192.75
-124.75 -192.5
-124.625 -192.375
-124.5 -192.125
-124.375 -191.875
-124.25 -191.625
-124.125 -191.375
-124.0 -191.25
-123.875 -191.0
-123.75 -190.75
-123.625 -190.5
-123.5 -190.25
-123.375 -190.125
-123.25 -189.875
-123.125 -189.625
-123.0 -189.375
-122.875 -189.125
-122.75 -189.0
-122.625 -188.75
-122.5 -188.5
-122.375 -188.25
-122.25 -188.0
-122.125 -187.875
-122.0 -187.625
-121.875 -187.375
-121.75 -187.125
-121.625 -186.875
-121.5 -186.75
-121.375 -186.5
-121.25 -186.25
-121.125 -186.0
-121.0 -185.75
-120.875 -185.625
-120.75 -185.375
-120.625 -185.125
-120.5 -184.875
-120.375 -184.625
-120.25 -184.5
-120.125 -184.25
-120.0 -184.0
-119.875 -183.75
-119.75 -183.5
-119.625 -183.375
-119.5 -183.125
-119.375 -182.875
-119.25 -182.625
-119.125 -182.375
-119.0 -182.25
-118.875 -182.0
-118.75 -181.75
-118.625 -181.5
-118.5 -181.25
-118.375 -181.125
-118.25 -180.875
-118.125 -180.625
-118.0 -180.375
-117.875 -180.125
-117.75 -180.0
-117.625 -179.75
-117.5 -179.5
-117.375 -179.25
-117.25 -179.0
-117.125 -178.875
-117.0 -178.625
-116.875 -178.375
-116.75 -178.125
-116.625 -177.875
-116.5 -177.75
-116.375 -177.5
-116.25 -177.25
-116.125 -177.0
-116.0 -176.75
-115.875 -176.625
-115.75 -176.375
-115.625 -176.125
-115.5 -175.875
-115.375 -175.625
-115.25 -175.5
-115.125 -175.25
-115.0 -175.0
-114.875 -174.75
-114.75 -174.5
-114.625 -174.375
-114.5 -174.125
-114.375 -173.875
-114.25 -173.625
-114.125 -173.375
-114.0 -173.25
-113.875 -173.0
-113.75 -172.75
-113.625 -172.5
-113.5 -172.25
-113.375 -172.125
-113.25 -171.875
-113.125 -171.625
-113.0 -171.375
-112.875 -171.125
-112.75 -171.0
-112.625 -170.75
-112.5 -170.5
-112.375 -170.25
-112.25 -170.0
-112.125 -169.875
-112.0 -169.625
-111.875 -169.375
-111.75 -169.125
-111.625 -168.875
-111.5 -168.75
-111.375 -168.5
-111.25 -168.25
-111.125 -168.0
-111.0 -167.75
-110.875 -167.625
-110.75 -167.375
-110.625 -167.125
-110.5 -166.875
-110.375 -166.625
-110.25 -166.5
-110.125 -166.25
-110.0 -166.0
-109.875 -165.75
-109.75 -165.5
-109.625 -165.375
-109.5 -165.125
-109.375 -164.875
-109.25 -164.625
-109.125 -164.375
-109.0 -164.25
-108.875 -164.0
-108.75 -163.75
-108.625 -163.5
-108.5 -163.25
-108.375 -163.125
-108.25 -162.875
-108.125 -162.625
-108.0 -162.375
-107.875 -162.125
-107.75 -162.0
-107.625 -161.75
-107.5 -161.5
-107.375 -161.25
-107.25 -161.0
-107.125 -160.875
-107.0 -160.625
-106.875 -160.375
-106.75 -160.125
-106.625 -159.875
-106.5 -159.75
-106.375 -159.5
-106.25 -159.25
-106.125 -159.0
-106.0 -158.75
-105.875 -158.625
-105.75 -158.375
-105.625 -158.125
-105.5 -157.875
-105.375 -157.625
-105.25 -157.5
-105.125 -157.25
-105.0 -157.0
-104.875 -156.75
-104.75 -156.5
-104.625 -156.375
-104.5 -156.125
-104.375 -155.875
-104.25 -155.625
-104.125 -155.375
-104.0 -155.25
-103.875 -155.0
-103.75 -154.75
-103.625 -154.5
-103.5 -154.25
-103.375 -154.125
-103.25 -153.875
-103.125 -153.625
-103.0 -153.375
-102.875 -153.125
-102.75 -153.0
-102.625 -152.75
-102.5 -152.5
-102.375 -152.25
-102.25 -152.0
-102.125 -151.875
-102.0 -151.625
-101.875 -151.375
-101.75 -151.125
-101.625 -150.875
-101.5 -150.75
-101.375 -150.5
-101.25 -150.25
-101.125 -150.0
-101.0 -149.75
-100.875 -149.625
-100.75 -149.375
-100.625 -149.125
-100.5 -148.875
-100.375 -148.625
-100.25 -148.5
-100.125 -148.25
-100.0 -148.0
-99.875 -147.75
-99.75 -147.5
-99.625 -147.375
-99.5 -147.125
-99.375 -146.875
-99.25 -146.625
-99.125 -146.375
-99.0 -146.25
-98.875 -146.0
-98.75 -145.75
-98.625 -145.5
-98.5 -145.25
-98.375 -145.125
-98.25 -144.875
-98.125 -144.625
-98.0 -144.375
-97.875 -144.125
-97.75 -144.0
-97.625 -143.75
-97.5 -143.5
-97.375 -143.25
-97.25 -143.0
-97.125 -142.875
-97.0 -142.625
-96.875 -142.375
-96.75 -142.125
-96.625 -141.875
-96.5 -141.75
-96.375 -141.5
-96.25 -141.25
-96.125 -141.0
-96.0 -140.75
-95.875 -140.625
-95.75 -140.375
-95.625 -140.125
-95.5 -139.875
-95.375 -139.625
-95.25 -139.5
-95.125 -139.25
-95.0 -139.0
-94.875 -138.75
-94.75 -138.5
-94.625 -138.375
-94.5 -138.125
-94.375 -137.875
-94.25 -137.625
-94.125 -137.375
-94.0 -137.25
-93.875 -137.0
-93.75 -136.75
-93.625 -136.5
-93.5 -136.25
-93.375 -136.125
-93.25 -135.875
-93.125 -135.625
-93.0 -135.375
-92.875 -135.125
-92.75 -135.0
-92.625 -134.75
-92.5 -134.5
-92.375 -134.25
-92.25 -134.0
-92.125 -133.875
-92.0 -133.625
-91.875 -133.375
-91.75 -133.125
-91.625 -132.875
-91.5 -132.75
-91.375 -132.5
-91.25 -132.25
-91.125 -132.0
-91.0 -131.75
-90.875 -131.625
-90.75 -131.375
-90.625 -131.125
-90.5 -130.875
-90.375 -130.625
-90.25 -130.5
-90.125 -130.25
-90.0 -130.0
-89.875 -129.75
-89.75 -129.5
-89.625 -129.375
-89.5 -129.125
-89.375 -128.875
-89.25 -128.625
-89.125 -128.375
-89.0 -128.25
-88.875 -128.0
-88.75 -127.75
-88.625 -127.5
-88.5 -127.25
-88.375 -127.125
-88.25 -126.875
-88.125 -126.625
-88.0 -126.375
-87.875 -126.125
-87.75 -126.0
-87.625 -125.75
-87.5 -125.5
-87.375 -125.25
-87.25 -125.0
-87.125 -124.875
-87.0 -124.625
-86.875 -124.375
-86.75 -124.125
-86.625 -123.875
-86.5 -123.75
-86.375 -123.5
-86.25 -123.25
-86.125 -123.0
-86.0 -122.75
-85.875 -122.625
-85.75 -122.375
-85.625 -122.125
-85.5 -121.875
-85.375 -121.625
-85.25 -121.5
-85.125 -121.25
-85.0 -121.0
-84.875 -120.75
-84.75 -120.5
-84.625 -120.375
-84.5 -120.125
-84.375 -119.875
-84.25 -119.625
-84.125 -119.375
-84.0 -119.25
-83.875 -119.0
-83.75 -118.75
-83.625 -118.5
-83.5 -118.25
-83.375 -118.125
-83.25 -117.875
-83.125 -117.625
-83.0 -117.375
-82.875 -117.125
-82.75 -117.0
-82.625 -116.75
-82.5 -116.5
-82.375 -116.25
-82.25 -116.0
-82.125 -115.875
-82.0 -115.625
-81.875 -115.375
-81.75 -115.125
-81.625 -114.875
-81.5 -114.75
-81.375 -114.5
-81.25 -114.25
-81.125 -114.0
-81.0 -113.75
-80.875 -113.625
-80.75 -113.375
-80.625 -113.125
-80.5 -112.875
-80.375 -112.625
-80.25 -112.5
-80.125 -112.25
-80.0 -112.0
-79.875 -111.75
-79.75 -111.5
-79.625 -111.375
-79.5 -111.125
-79.375 -110.875
-79.25 -110.625
-79.125 -110.375
-79.0 -110.25
-78.875 -110.0
-78.75 -109.75
-78.625 -109.5
-78.5 -109.25
-78.375 -109.125
-78.25 -108.875
-78.125 -108.625
-78.0 -108.375
-77.875 -108.125
-77.75 -108.0
-77.625 -107.75
-77.5 -107.5
-77.375 -107.25
-77.25 -107.0
-77.125 -106.875
-77.0 -106.625
-76.875 -106.375
-76.75 -106.125
-76.625 -105.875
-76.5 -105.75
-76.375 -105.5
-76.25 -105.25
-76.125 -105.0
-76.0 -104.75
-75.875 -104.625
-75.75 -104.375
-75.625 -104.125
-75.5 -103.875
-75.375 -103.625
-75.25 -103.5
-75.125 -103.25
-75.0 -103.0
-74.875 -102.75
-74.75 -102.5
-74.625 -102.375
-74.5 -102.125
-74.375 -101.875
-74.25 -101.625
-74.125 -101.375
-74.0 -101.25
-73.875 -101.0
-73.75 -100.75
-73.625 -100.5
-73.5 -100.25
-73.375 -100.125
-73.25 -99.875
-73.125 -99.625
-73.0 -99.375
-72.875 -99.125
-72.75 -99.0
-72.625 -98.75
-72.5 -98.5
-72.375 -98.25
-72.25 -98.0
-72.125 -97.875
-72.0 -97.625
-71.875 -97.375
-71.75 -97.125
-71.625 -96.875
-71.5 -96.75
-71.375 -96.5
-71.25 -96.25
-71.125 -96.0
-71.0 -95.75
-70.875 -95.625
-70.75 -95.375
-70.625 -95.125
-70.5 -94.875
-70.375 -94.625
-70.25 -94.5
-70.125 -94.25
-70.0 -94.0
-69.875 -93.75
-69.75 -93.5
-69.625 -93.375
-69.5 -93.125
-69.375 -92.875
-69.25 -92.625
-69.125 -92.375
-69.0 -92.25
-68.875 -92.0
-68.75 -91.75
-68.625 -91.5
-68.5 -91.25
-68.375 -91.125
-68.25 -90.875
-68.125 -90.625
-68.0 -90.375
-67.875 -90.125
-67.75 -90.0
-67.625 -89.75
-67.5 -89.5
-67.375 -89.25
-67.25 -89.0
-67.125 -88.875
-67.0 -88.625
-66.875 -88.375
-66.75 -88.125
-66.625 -87.875
-66.5 -87.75
-66.375 -87.5
-66.25 -87.25
-66.125 -87.0
-66.0 -86.75
-65.875 -86.625
-65.75 -86.375
-65.625 -86.125
-65.5 -85.875
-65.375 -85.625
-65.25 -85.5
-65.125 -85.25
-65.0 -85.0
-64.875 -84.75
-64.75 -84.5
-64.625 -84.375
-64.5 -84.125
-64.375 -83.875
-64.25 -83.625
-64.125 -83.375
-64.0 -83.25
-63.875 -83.0
-63.75 -82.75
-63.625 -82.5
-63.5 -82.25
-63.375 -82.125
-63.25 -81.875
-63.125 -81.625
-63.0 -81.375
-62.875 -81.125
-62.75 -81.0
-62.625 -80.75
-62.5 -80.5
-62.375 -80.25
-62.25 -80.0
-62.125 -79.875
-62.0 -79.625
-61.875 -79.375
-61.75 -79.125
-61.625 -78.875
-61.5 -78.75
-61.375 -78.5
-61.25 -78.25
-61.125 -78.0
-61.0 -77.75
-60.875 -77.625
-60.75 -77.375
-60.625 -77.125
-60.5 -76.875
-60.375 -76.625
-60.25 -76.5
-60.125 -76.25
-60.0 -76.0
-59.875 -75.75
-59.75 -75.5
-59.625 -75.375
-59.5 -75.125
-59.375 -74.875
-59.25 -74.625
-59.125 -74.375
-59.0 -74.25
-58.875 -74.0
-58.75 -73.75
-58.625 -73.5
-58.5 -73.25
-58.375 -73.125
-58.25 -72.875
-58.125 -72.625
-58.0 -72.375
-57.875 -72.125
-57.75 -72.0
-57.625 -71.75
-57.5 -71.5
-57.375 -71.25
-57.25 -71.0
-57.125 -70.875
-57.0 -70.625
-56.875 -70.375
-56.75 -70.125
-56.625 -69.875
-56.5 -69.75
-56.375 -69.5
-56.25 -69.25
-56.125 -69.0
-56.0 -68.75
-55.875 -68.625
-55.75 -68.375
-55.625 -68.125
-55.5 -67.875
-55.375 -67.625
-55.25 -67.5
-55.125 -67.25
-55.0 -67.0
-54.875 -66.75
-54.75 -66.5
-54.625 -66.375
-54.5 -66.125
-54.375 -65.875
-54.25 -65.625
-54.125 -65.375
-54.0 -65.25
-53.875 -65.0
-53.75 -64.75
-53.625 -64.5
-53.5 -64.25
-53.375 -64.125
-53.25 -63.875
-53.125 -63.625
-53.0 -63.375
-52.875 -63.125
-52.75 -63.0
-52.625 -62.75
-52.5 -62.5
-52.375 -62.25
-52.25 -62.0
-52.125 -61.875
-52.0 -61.625
-51.875 -61.375
-51.75 -61.125
-51.625 -60.875
-51.5 -60.75
-51.375 -60.5
-51.25 -60.25
-51.125 -60.0
-51.0 -59.75
-50.875 -59.625
-50.75 -59.375
-50.625 -59.125
-50.5 -58.875
-50.375 -58.625
-50.25 -58.5
-50.125 -58.25
-50.0 -58.0
-49.875 -57.75
-49.75 -57.5
-49.625 -57.375
-49.5 -57.125
-49.375 -56.875
-49.25 -56.625
-49.125 -56.375
-49.0 -56.25
-48.875 -56.0
-48.75 -55.75
-48.625 -55.5
-48.5 -55.25
-48.375 -55.125
-48.25 -54.875
-48.125 -54.625
-48.0 -54.375
-47.875 -54.125
-47.75 -54.0
-47.625 -53.75
-47.5 -53.5
-47.375 -53.25
-47.25 -53.0
-47.125 -52.875
-47.0 -52.625
-46.875 -52.375
-46.75 -52.125
-46.625 -51.875
-46.5 -51.75
-46.375 -51.5
-46.25 -51.25
-46.125 -51.0
-46.0 -50.75
-45.875 -50.625
-45.75 -50.375
-45.625 -50.125
-45.5 -49.875
-45.375 -49.625
-45.25 -49.5
-45.125 -49.25
-45.0 -49.0
-44.875 -48.75
-44.75 -48.5
-44.625 -48.375
-44.5 -48.125
-44.375 -47.875
-44.25 -47.625
-44.125 -47.375
-44.0 -47.25
-43.875 -47.0
-43.75 -46.75
-43.625 -46.5
-43.5 -46.25
-43.375 -46.125
-43.25 -45.875
-43.125 -45.625
-43.0 -45.375
-42.875 -45.125
-42.75 -45.0
-42.625 -44.75
-42.5 -44.5
-42.375 -44.25
-42.25 -44.0
-42.125 -43.875
-42.0 -43.625
-41.875 -43.375
-41.75 -43.125
-41.625 -42.875
-41.5 -42.75
-41.375 -42.5
-41.25 -42.25
-41.125 -42.0
-41.0 -41.75
-40.875 -41.625
-40.75 -41.375
-40.625 -41.125
-40.5 -40.875
-40.375 -40.625
-40.25 -40.5
-40.125 -40.25
-40.0 -40.0
-39.875 -39.75
-39.75 -39.5
-39.625 -39.375
-39.5 -39.125
-39.375 -38.875
-39.25 -38.625
-39.125 -38.375
-39.0 -38.25
-38.875 -38.0
-38.75 -37.75
-38.625 -37.5
-38.5 -37.25
-38.375 -37.125
-38.25 -36.875
-38.125 -36.625
-38.0 -36.375
-37.875 -36.125
-37.75 -36.0
-37.625 -35.75
-37.5 -35.5
-37.375 -35.25
-37.25 -35.0
-37.125 -34.875
-37.0 -34.625
-36.875 -34.375
-36.75 -34.125
-36.625 -33.875
-36.5 -33.75
-36.375 -33.5
-36.25 -33.25
-36.125 -33.0
-36.0 -32.75
-35.875 -32.625
-35.75 -32.375
-35.625 -32.125
-35.5 -31.875
-35.375 -31.625
-35.25 -31.5
-35.125 -31.25
-35.0 -31.0
-34.875 -30.75
-34.75 -30.5
-34.625 -30.375
-34.5 -30.125
-34.375 -29.875
-34.25 -29.625
-34.125 -29.375
-34.0 -29.25
-33.875 -29.0
-33.75 -28.75
-33.625 -28.5
-33.5 -28.25
-33.375 -28.125
-33.25 -27.875
-33.125 -27.625
-33.0 -27.375
-32.875 -27.125
-32.75 -27.0
-32.625 -26.75
-32.5 -26.5
-32.375 -26.25
-32.25 -26.0
-32.125 -25.875
-32.0 -25.625
-31.875 -25.375
-31.75 -25.125
-31.625 -24.875
-31.5 -24.75
-31.375 -24.5
-31.25 -24.25
-31.125 -24.0
-31.0 -23.75
-30.875 -23.625
-30.75 -23.375
-30.625 -23.125
-30.5 -22.875
-30.375 -22.625
-30.25 -22.5
-30.125 -22.25
-30.0 -22.0
-29.875 -21.75
-29.75 -21.5
-29.625 -21.375
-29.5 -21.125
-29.375 -20.875
-29.25 -20.625
-29.125 -20.375
-29.0 -20.25
-28.875 -20.0
-28.75 -19.75
-28.625 -19.5
-28.5 -19.25
-28.375 -19.125
-28.25 -18.875
-28.125 -18.625
-28.0 -18.375
-27.875 -18.125
-27.75 -18.0
-27.625 -17.75
-27.5 -17.5
-27.375 -17.25
-27.25 -17.0
-27.125 -16.875
-27.0 -16.625
-26.875 -16.375
-26.75 -16.125
-26.625 -15.875
-26.5 -15.75
-26.375 -15.5
-26.25 -15.25
-26.125 -15.0
-26.0 -14.75
-25.875 -14.625
-25.75 -14.375
-25.625 -14.125
-25.5 -13.875
-25.375 -13.625
-25.25 -13.5
-25.125 -13.25
-25.0 -13.0
-24.875 -12.75
-24.75 -12.5
-24.625 -12.375
-24.5 -12.125
-24.375 -11.875
-24.25 -11.625
-24.125 -11.375
-24.0 -11.25
-23.875 -11.0
-23.75 -10.75
-23.625 -10.5
-23.5 -10.25
-23.375 -10.125
-23.25 -9.875
-23.125 -9.625
-23.0 -9.375
-22.875 -9.125
-22.75 -9.0
-22.625 -8.75
-22.5 -8.5
-22.375 -8.25
-22.25 -8.0
-22.125 -7.875
-22.0 -7.625
-21.875 -7.375
-21.75 -7.125
-21.625 -6.875
-21.5 -6.75
-21.375 -6.5
-21.25 -6.25
-21.125 -6.0
-21.0 -5.75
-20.875 -5.625
-20.75 -5.375
-20.625 -5.125
-20.5 -4.875
-20.375 -4.625
-20.25 -4.5
-20.125 -4.25
-20.0 -4.0
-19.875 -3.75
-19.75 -3.5
-19.625 -3.375
-19.5 -3.125
-19.375 -2.875
-19.25 -2.625
-19.125 -2.375
-19.0 -2.25
-18.875 -2.0
-18.75 -1.75
-18.625 -1.5
-18.5 -1.25
-18.375 -1.125
-18.25 -0.875
-18.125 -0.625
-18.0 -0.375
-17.875 -0.125
-17.75 0.0
-17.625 0.25
-17.5 0.5
-17.375 0.75
-17.25 1.0
-17.125 1.125
-17.0 1.375
-16.875 1.625
-16.75 1.875
-16.625 2.125
-16.5 2.25
-16.375 2.5
-16.25 2.75
-16.125 3.0
-16.0 3.25
-15.875 3.375
-15.75 3.625
-15.625 3.875
-15.5 4.125
-15.375 4.375
-15.25 4.5
-15.125 4.75
-15.0 5.0
-14.875 5.25
-14.75 5.5
-14.625 5.625
-14.5 5.875
-14.375 6.125
-14.25 6.375
-14.125 6.625
-14.0 6.75
-13.875 7.0
-13.75 7.25
-13.625 7.5
-13.5 7.75
-13.375 7.875
-13.25 8.125
-13.125 8.375
-13.0 8.625
-12.875 8.875
-12.75 9.0
-12.625 9.25
-12.5 9.5
-12.375 9.75
-12.25 10.0
-12.125 10.125
-12.0 10.375
-11.875 10.625
-11.75 10.875
-11.625 11.125
-11.5 11.25
-11.375 11.5
-11.25 11.75
-11.125 12.0
-11.0 12.25
-10.875 12.375
-10.75 12.625
-10.625 12.875
-10.5 13.125
-10.375 13.375
-10.25 13.5
-10.125 13.75
-10.0 14.0
-9.875 14.25
-9.75 14.5
-9.625 14.625
-9.5 14.875
-9.375 15.125
-9.25 15.375
-9.125 15.625
-9.0 15.75
-8.875 16.0
-8.75 16.25
-8.625 16.5
-8.5 16.75
-8.375 16.875
-8.25 17.125
-8.125 17.375
-8.0 17.625
-7.875 17.875
-7.75 18.0
-7.625 18.25
-7.5 18.5
-7.375 18.75
-7.25 19.0
-7.125 19.125
-7.0 19.375
-6.875 19.625
-6.75 19.875
-6.625 20.125
-6.5 20.25
-6.375 20.5
-6.25 20.75
-6.125 21.0
-6.0 21.25
-5.875 21.375
-5.75 21.625
-5.625 21.875
-5.5 22.125
-5.375 22.375
-5.25 22.5
-5.125 22.75
-5.0 23.0
-4.875 23.25
-4.75 23.5
-4.625 23.625
-4.5 23.875
-4.375 24.125
-4.25 24.375
-4.125 24.625
-4.0 24.75
-3.875 25.0
-3.75 25.25
-3.625 25.5
-3.5 25.75
-3.375 25.875
-3.25 26.125
-3.125 26.375
-3.0 26.625
-2.875 26.875
-2.75 27.0
-2.625 27.25
-2.5 27.5
-2.375 27.75
-2.25 28.0
-2.125 28.125
-2.0 28.375
-1.875 28.625
-1.75 28.875
-1.625 29.125
-1.5 29.25
-1.375 29.5
-1.25 29.75
-1.125 30.0
-1.0 30.25
-0.875 30.375
-0.75 30.625
-0.625 30.875
-0.5 31.125
-0.375 31.375
-0.25 31.5
-0.125 31.75
0.0 32.0
0.125 32.25
0.25 32.5
0.375 32.625
0.5 32.875
0.625 33.125
0.75 33.375
0.875 33.625
1.0 33.75
1.125 34.0
1.25 34.25
1.375 34.5
1.5 34.75
1.625 34.875
1.75 35.125
1.875 35.375
2.0 35.625
2.125 35.875
2.25 36.0
2.375 36.25
2.5 36.5
2.625 36.75
2.75 37.0
2.875 37.125
3.0 37.375
3.125 37.625
3.25 37.875
3.375 38.125
3.5 38.25
3.625 38.5
3.75 38.75
3.875 39.0
4.0 39.25
4.125 39.375
4.25 39.625
4.375 39.875
4.5 40.125
4.625 40.375
4.75 40.5
4.875 40.75
5.0 41.0
5.125 41.25
5.25 41.5
5.375 41.625
5.5 41.875
5.625 42.125
5.75 42.375
5.875 42.625
6.0 42.75
6.125 43.0
6.25 43.25
6.375 43.5
6.5 43.75
6.625 43.875
6.75 44.125
6.875 44.375
7.0 44.625
7.125 44.875
7.25 45.0
7.375 45.25
7.5 45.5
7.625 45.75
7.75 46.0
7.875 46.125
8.0 46.375
8.125 46.625
8.25 46.875
8.375 47.125
8.5 47.25
8.625 47.5
8.75 47.75
8.875 48.0
9.0 48.25
9.125 48.375
9.25 48.625
9.375 48.875
9.5 49.125
9.625 49.375
9.75 49.5
9.875 49.75
10.0 50.0
10.125 50.25
10.25 50.5
10.375 50.625
10.5 50.875
10.625 51.125
10.75 51.375
10.875 51.625
11.0 51.75
11.125 52.0
11.25 52.25
11.375 52.5
11.5 52.75
11.625 52.875
11.75 53.125
11.875 53.375
12.0 53.625
12.125 53.875
12.25 54.0
12.375 54.25
12.5 54.5
12.625 54.75
12.75 55.0
12.875 55.125
13.0 55.375
13.125 55.625
13.25 55.875
13.375 56.125
13.5 56.25
13.625 56.5
13.75 56.75
13.875 57.0
14.0 57.25
14.125 57.375
14.25 57.625
14.375 57.875
14.5 58.125
14.625 58.375
14.75 58.5
14.875 58.75
15.0 59.0
15.125 59.25
15.25 59.5
15.375 59.625
15.5 59.875
15.625 60.125
15.75 60.375
15.875 60.625
16.0 60.75
16.125 61.0
16.25 61.25
16.375 61.5
16.5 61.75
16.625 61.875
16.75 62.125
16.875 62.375
17.0 62.625
17.125 62.875
17.25 63.0
17.375 63.25
17.5 63.5
17.625 63.75
17.75 64.0
17.875 64.125
18.0 64.375
18.125 64.625
18.25 64.875
18.375 65.125
18.5 65.25
18.625 65.5
18.75 65.75
18.875 66.0
19.0 66.25
19.125 66.375
19.25 66.625
19.375 66.875
19.5 67.125
19.625 67.375
19.75 67.5
19.875 67.75
20.0 68.0
20.125 68.25
20.25 68.5
20.375 68.625
20.5 68.875
20.625 69.125
20.75 69.375
20.875 69.625
21.0 69.75
21.125 70.0
21.25 70.25
21.375 70.5
21.5 70.75
21.625 70.875
21.75 71.125
21.875 71.375
22.0 71.625
22.125 71.875
22.25 72.0
22.375 72.25
22.5 72.5
22.625 72.75
22.75 73.0
22.875 73.125
23.0 73.375
23.125 73.625
23.25 73.875
23.375 74.125
23.5 74.25
23.625 74.5
23.75 74.75
23.875 75.0
24.0 75.25
24.125 75.375
24.25 75.625
24.375 75.875
24.5 76.125
24.625 76.375
24.75 76.5
24.875 76.75
25.0 77.0
25.125 77.25
25.25 77.5
25.375 77.625
25.5 77.875
25.625 78.125
25.75 78.375
25.875 78.625
26.0 78.75
26.125 79.0
26.25 79.25
26.375 79.5
26.5 79.75
26.625 79.875
26.75 80.125
26.875 80.375
27.0 80.625
27.125 80.875
27.25 81.0
27.375 81.25
27.5 81.5
27.625 81.75
27.75 82.0
27.875 82.125
28.0 82.375
28.125 82.625
28.25 82.875
28.375 83.125
28.5 83.25
28.625 83.5
28.75 83.75
28.875 84.0
29.0 84.25
29.125 84.375
29.25 84.625
29.375 84.875
29.5 85.125
29.625 85.375
29.75 85.5
29.875 85.75
30.0 86.0
30.125 86.25
30.25 86.5
30.375 86.625
30.5 86.875
30.625 87.125
30.75 87.375
30.875 87.625
31.0 87.75
31.125 88.0
31.25 88.25
31.375 88.5
31.5 88.75
31.625 88.875
31.75 89.125
31.875 89.375
32.0 89.625
32.125 89.875
32.25 90.0
32.375 90.25
32.5 90.5
32.625 90.75
32.75 91.0
32.875 91.125
33.0 91.375
33.125 91.625
33.25 91.875
33.375 92.125
33.5 92.25
33.625 92.5
33.75 92.75
33.875 93.0
34.0 93.25
34.125 93.375
34.25 93.625
34.375 93.875
34.5 94.125
34.625 94.375
34.75 94.5
34.875 94.75
35.0 95.0
35.125 95.25
35.25 95.5
35.375 95.625
35.5 95.875
35.625 96.125
35.75 96.375
35.875 96.625
36.0 96.75
36.125 97.0
36.25 97.25
36.375 97.5
36.5 97.75
36.625 97.875
36.75 98.125
36.875 98.375
37.0 98.625
37.125 98.875
37.25 99.0
37.375 99.25
37.5 99.5
37.625 99.75
37.75 100.0
37.875 100.125
38.0 100.375
38.125 100.625
38.25 100.875
38.375 101.125
38.5 101.25
38.625 101.5
38.75 101.75
38.875 102.0
39.0 102.25
39.125 102.375
39.25 102.625
39.375 102.875
39.5 103.125
39.625 103.375
39.75 103.5
39.875 103.75
40.0 104.0
40.125 104.25
40.25 104.5
40.375 104.625
40.5 104.875
40.625 105.125
40.75 105.375
40.875 105.625
41.0 105.75
41.125 106.0
41.25 106.25
41.375 106.5
41.5 106.75
41.625 106.875
41.75 107.125
41.875 107.375
42.0 107.625
42.125 107.875
42.25 108.0
42.375 108.25
42.5 108.5
42.625 108.75
42.75 109.0
42.875 109.125
43.0 109.375
43.125 109.625
43.25 109.875
43.375 110.125
43.5 110.25
43.625 110.5
43.75 110.75
43.875 111.0
44.0 111.25
44.125 111.375
44.25 111.625
44.375 111.875
44.5 112.125
44.625 112.375
44.75 112.5
44.875 112.75
45.0 113.0
45.125 113.25
45.25 113.5
45.375 113.625
45.5 113.875
45.625 114.125
45.75 114.375
45.875 114.625
46.0 114.75
46.125 115.0
46.25 115.25
46.375 115.5
46.5 115.75
46.625 115.875
46.75 116.125
46.875 116.375
47.0 116.625
47.125 116.875
47.25 117.0
47.375 117.25
47.5 117.5
47.625 117.75
47.75 118.0
47.875 118.125
48.0 118.375
48.125 118.625
48.25 118.875
48.375 119.125
48.5 119.25
48.625 119.5
48.75 119.75
48.875 120.0
49.0 120.25
49.125 120.375
49.25 120.625
49.375 120.875
49.5 121.125
49.625 121.375
49.75 121.5
49.875 121.75
50.0 122.0
50.125 122.25
50.25 122.5
50.375 122.625
50.5 122.875
50.625 123.125
50.75 123.375
50.875 123.625
51.0 123.75
51.125 124.0
51.25 124.25
51.375 124.5
51.5 124.75
51.625 124.875
51.75 125.125
51.875 125.375
52.0 125.625
52.125 125.875
52.25 126.0
52.375 126.25
52.5 126.5
52.625 126.75
52.75 127.0
52.875 127.125
53.0 127.375
53.125 127.625
53.25 127.875
53.375 128.125
53.5 128.25
53.625 128.5
53.75 128.75
53.875 129.0
54.0 129.25
54.125 129.375
54.25 129.625
54.375 129.875
54.5 130.125
54.625 130.375
54.75 130.5
54.875 130.75
55.0 131.0
55.125 131.25
55.25 131.5
55.375 131.625
55.5 131.875
55.625 132.125
55.75 132.375
55.875 132.625
56.0 132.75
56.125 133.0
56.25 133.25
56.375 133.5
56.5 133.75
56.625 133.875
56.75 134.125
56.875 134.375
57.0 134.625
57.125 134.875
57.25 135.0
57.375 135.25
57.5 135.5
57.625 135.75
57.75 136.0
57.875 136.125
58.0 136.375
58.125 136.625
58.25 136.875
58.375 137.125
58.5 137.25
58.625 137.5
58.75 137.75
58.875 138.0
59.0 138.25
59.125 138.375
59.25 138.625
59.375 138.875
59.5 139.125
59.625 139.375
59.75 139.5
59.875 139.75
60.0 140.0
60.125 140.25
60.25 140.5
60.375 140.625
60.5 140.875
60.625 141.125
60.75 141.375
60.875 141.625
61.0 141.75
61.125 142.0
61.25 142.25
61.375 142.5
61.5 142.75
61.625 142.875
61.75 143.125
61.875 143.375
62.0 143.625
62.125 143.875
62.25 144.0
62.375 144.25
62.5 144.5
62.625 144.75
62.75 145.0
62.875 145.125
63.0 145.375
63.125 145.625
63.25 145.875
63.375 146.125
63.5 146.25
63.625 146.5
63.75 146.75
63.875 147.0
64.0 147.25
64.125 147.375
64.25 147.625
64.375 147.875
64.5 148.125
64.625 148.375
64.75 148.5
64.875 148.75
65.0 149.0
65.125 149.25
65.25 149.5
65.375 149.625
65.5 149.875
65.625 150.125
65.75 150.375
65.875 150.625
66.0 150.75
66.125 151.0
66.25 151.25
66.375 151.5
66.5 151.75
66.625 151.875
66.75 152.125
66.875 152.375
67.0 152.625
67.125 152.875
67.25 153.0
67.375 153.25
67.5 153.5
67.625 153.75
67.75 154.0
67.875 154.125
68.0 154.375
68.125 154.625
68.25 154.875
68.375 155.125
68.5 155.25
68.625 155.5
68.75 155.75
68.875 156.0
69.0 156.25
69.125 156.375
69.25 156.625
69.375 156.875
69.5 157.125
69.625 157.375
69.75 157.5
69.875 157.75
70.0 158.0
70.125 158.25
70.25 158.5
70.375 158.625
70.5 158.875
70.625 159.125
70.75 159.375
70.875 159.625
71.0 159.75
71.125 160.0
71.25 160.25
71.375 160.5
71.5 160.75
71.625 160.875
71.75 161.125
71.875 161.375
72.0 161.625
72.125 161.875
72.25 162.0
72.375 162.25
72.5 162.5
72.625 162.75
72.75 163.0
72.875 163.125
73.0 163.375
73.125 163.625
73.25 163.875
73.375 164.125
73.5 164.25
73.625 164.5
73.75 164.75
73.875 165.0
74.0 165.25
74.125 165.375
74.25 165.625
74.375 165.875
74.5 166.125
74.625 166.375
74.75 166.5
74.875 166.75
75.0 167.0
75.125 167.25
75.25 167.5
75.375 167.625
75.5 167.875
75.625 168.125
75.75 168.375
75.875 168.625
76.0 168.75
76.125 169.0
76.25 169.25
76.375 169.5
76.5 169.75
76.625 169.875
76.75 170.125
76.875 170.375
77.0 170.625
77.125 170.875
77.25 171.0
77.375 171.25
77.5 171.5
77.625 171.75
77.75 172.0
77.875 172.125
78.0 172.375
78.125 172.625
78.25 172.875
78.375 173.125
78.5 173.25
78.625 173.5
78.75 173.75
78.875 174.0
79.0 174.25
79.125 174.375
79.25 174.625
79.375 174.875
79.5 175.125
79.625 175.375
79.75 175.5
79.875 175.75
80.0 176.0
80.125 176.25
80.25 176.5
80.375 176.625
80.5 176.875
80.625 177.125
80.75 177.375
80.875 177.625
81.0 177.75
81.125 178.0
81.25 178.25
81.375 178.5
81.5 178.75
81.625 178.875
81.75 179.125
81.875 179.375
82.0 179.625
82.125 179.875
82.25 180.0
82.375 180.25
82.5 180.5
82.625 180.75
82.75 181.0
82.875 181.125
83.0 181.375
83.125 181.625
83.25 181.875
83.375 182.125
83.5 182.25
83.625 182.5
83.75 182.75
83.875 183.0
84.0 183.25
84.125 183.375
84.25 183.625
84.375 183.875
84.5 184.125
84.625 184.375
84.75 184.5
84.875 184.75
85.0 185.0
85.125 185.25
85.25 185.5
85.375 185.625
85.5 185.875
85.625 186.125
85.75 186.375
85.875 186.625
86.0 186.75
86.125 187.0
86.25 187.25
86.375 187.5
86.5 187.75
86.625 187.875
86.75 188.125
86.875 188.375
87.0 188.625
87.125 188.875
87.25 189.0
87.375 189.25
87.5 189.5
87.625 189.75
87.75 190.0
87.875 190.125
88.0 190.375
88.125 190.625
88.25 190.875
88.375 191.125
88.5 191.25
88.625 191.5
88.75 191.75
88.875 192.0
89.0 192.25
89.125 192.375
89.25 192.625
89.375 192.875
89.5 193.125
89.625 193.375
89.75 193.5
89.875 193.75
90.0 194.0
90.125 194.25
90.25 194.5
90.375 194.625
90.5 194.875
90.625 195.125
90.75 195.375
90.875 195.625
91.0 195.75
91.125 196.0
91.25 196.25
91.375 196.5
91.5 196.75
91.625 196.875
91.75 197.125
91.875 197.375
92.0 197.625
92.125 197.875
92.25 198.0
92.375 198.25
92.5 198.5
92.625 198.75
92.75 199.0
92.875 199.125
93.0 199.375
93.125 199.625
93.25 199.875
93.375 200.125
93.5 200.25
93.625 200.5
93.75 200.75
93.875 201.0
94.0 201.25
94.125 201.375
94.25 201.625
94.375 201.875
94.5 202.125
94.625 202.375
94.75 202.5
94.875 202.75
95.0 203.0
95.125 203.25
95.25 203.5
95.375 203.625
95.5 203.875
95.625 204.125
95.75 204.375
95.875 204.625
96.0 204.75
96.125 205.0
96.25 205.25
96.375 205.5
96.5 205.75
96.625 205.875
96.75 206.125
96.875 206.375
97.0 206.625
97.125 206.875
97.25 207.0
97.375 207.25
97.5 207.5
97.625 207.75
97.75 208.0
97.875 208.125
98.0 208.375
98.125 208.625
98.25 208.875
98.375 209.125
98.5 209.25
98.625 209.5
98.75 209.75
98.875 210.0
99.0 210.25
99.125 210.375
99.25 210.625
99.375 210.875
99.5 211.125
99.625 211.375
99.75 211.5
99.875 211.75
100.0 212.0
100.125 212.25
100.25 212.5
100.375 212.625
100.5 212.875
100.625 213.125
100.75 213.375
100.875 213.625
101.0 213.75
101.125 214.0
101.25 214.25
101.375 214.5
101.5 214.75
101.625 214.875
101.75 215.125
101.875 215.375
102.0 215.625
102.125 215.875
102.25 216.0
102.375 216.25
102.5 216.5
102.625 216.75
102.75 217.0
102.875 217.125
103.0 217.375
103.125 217.625
103.25 217.875
103.375 218.125
103.5 218.25
103.625 218.5
103.75 218.75
103.875 219.0
104.0 219.25
104.125 219.375
104.25 219.625
104.375 219.875
104.5 220.125
104.625 220.375
104.75 220.5
104.875 220.75
105.0 221.0
105.125 221.25
105.25 221.5
105.375 221.625
105.5 221.875
105.625 222.125
105.75 222.375
105.875 222.625
106.0 222.75
106.125 223.0
106.25 223.25
106.375 223.5
106.5 223.75
106.625 223.875
106.75 224.125
106.875 224.375
107.0 224.625
107.125 224.875
107.25 225.0
107.375 225.25
107.5 225.5
107.625 225.75
107.75 226.0
107.875 226.125
108.0 226.375
108.125 226.625
108.25 226.875
108.375 227.125
108.5 227.25
108.625 227.5
108.75 227.75
108.875 228.0
109.0 228.25
109.125 228.375
109.25 228.625
109.375 228.875
109.5 229.125
109.625 229.375
109.75 229.5
109.875 229.75
110.0 230.0
110.125 230.25
110.25 230.5
110.375 230.625
110.5 230.875
110.625 231.125
110.75 231.375
110.875 231.625
111.0 231.75
111.125 232.0
111.25 232.25
111.375 232.5
111.5 232.75
111.625 232.875
111.75 233.125
111.875 233.375
112.0 233.625
112.125 233.875
112.25 234.0
112.375 234.25
112.5 234.5
112.625 234.75
112.75 235.0
112.875 235.125
113.0 235.375
113.125 235.625
113.25 235.875
113.375 236.125
113.5 236.25
113.625 236.5
113.75 236.75
113.875 237.0
114.0 237.25
114.125 237.375
114.25 237.625
114.375 237.875
114.5 238.125
114.625 238.375
114.75 238.5
114.875 238.75
115.0 239.0
115.125 239.25
115.25 239.5
115.375 239.625
115.5 239.875
115.625 240.125
115.75 240.375
115.875 240.625
116.0 240.75
116.125 241.0
116.25 241.25
116.375 241.5
116.5 241.75
116.625 241.875
116.75 242.125
116.875 242.375
117.0 242.625
117.125 242.875
117.25 243.0
117.375 243.25
117.5 243.5
117.625 243.75
117.75 244.0
117.875 244.125
118.0 244.375
118.125 244.625
118.25 244.875
118.375 245.125
118.5 245.25
118.625 245.5
118.75 245.75
118.875 246.0
119.0 246.25
119.125 246.375
119.25 246.625
119.375 246.875
119.5 247.125
119.625 247.375
119.75 247.5
119.875 247.75
120.0 248.0
120.125 248.25
120.25 248.5
120.375 248.625
120.5 248.875
120.625 249.125
120.75 249.375
120.875 249.625
121.0 249.75
121.125 250.0
121.25 250.25
121.375 250.5
121.5 250.75
121.625 250.875
121.75 251.125
121.875 251.375
122.0 251.625
122.125 251.875
122.25 252.0
122.375 252.25
122.5 252.5
122.625 252.75
122.75 253.0
122.875 253.125
123.0 253.375
123.125 253.625
123.25 253.875
123.375 254.125
123.5 254.25
123.625 254.5
123.75 254.75
123.875 255.0
124.0 255.25
124.125 255.375
124.25 255.625
124.375 255.875
124.5 256.125
124.625 256.375
124.75 256.5
124.875 256.75
125.0 257.0
125.125 257.25
125.25 257.5
125.375 257.625
125.5 257.875
125.625 258.125
125.75 258.375
125.875 258.625
126.0 258.75
126.125 259.0
126.25 259.25
126.375 259.5
126.5 259.75
126.625 259.875
126.75 260.125
126.875 260.375
127.0 260.625
127.125 260.875
127.25 261.0
127.375 261.25
127.5 261.5
127.625 261.75
127.75 262.0
127.875 262.125
'''
|