X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=sfpy%2Fposit.pyx;h=1725cc23f98139c0a6675c6bb86151d840c29880;hb=5a0ff777c022e816a5666272d9d6d9b327aed750;hp=fac8280b0faed279e6a5816f9720194f4347b978;hpb=2f4f4da48ac94f7d61109be9606df60a1d927694;p=sfpy.git diff --git a/sfpy/posit.pyx b/sfpy/posit.pyx index fac8280..1725cc2 100644 --- a/sfpy/posit.pyx +++ b/sfpy/posit.pyx @@ -69,6 +69,10 @@ cdef class Posit8: # convenience interface for use inside Python def __init__(self, value): + """Given an int, create a Posit8 from the bitpattern represented by + that int. Otherwise, given some value, create a Posit8 by rounding + float(value). + """ if isinstance(value, int): self._c_posit.v = value else: @@ -236,7 +240,7 @@ cdef class Posit8: cpdef to_quire(self): cdef cposit.quire8_t f - f = cposit.q8_clr(f) + f = cposit.q8Clr() f = cposit.q8_fdp_add(f, self._c_posit, _p8_one) return Quire8.from_c_quire(f) @@ -269,11 +273,15 @@ cdef class Quire8: # convenience interface for use inside Python def __init__(self, value): + """Given an int, create a Quire8 from the bitpattern represented by + that int. Otherwise, given some value, create a Quire8 by rounding + float(value) to a Posit8. + """ if isinstance(value, int): self._c_quire.v = value else: f = float(value) - self._c_quire = cposit.q8_clr(self._c_quire) + self._c_quire = cposit.q8Clr() self._c_quire = cposit.q8_fdp_add(self._c_quire, cposit.convertDoubleToP8(f), _p8_one) def __float__(self): @@ -309,7 +317,7 @@ cdef class Quire8: self._c_quire = cposit.q8_fdp_sub(self._c_quire, a1._c_posit, a2._c_posit) cpdef void iclr(self): - self._c_quire = cposit.q8_clr(self._c_quire) + self._c_quire = cposit.q8Clr() # conversion back to posit @@ -375,7 +383,7 @@ cpdef Posit32 p8_to_p32(Posit8 a1): cpdef Quire8 p8_to_q8(Posit8 a1): cdef cposit.quire8_t f - f = cposit.q8_clr(f) + f = cposit.q8Clr() f = cposit.q8_fdp_add(f, a1._c_posit, _p8_one) return Quire8.from_c_quire(f) @@ -428,6 +436,10 @@ cdef class Posit16: # convenience interface for use inside Python def __init__(self, value): + """Given an int, create a Posit16 from the bitpattern represented by + that int. Otherwise, given some value, create a Posit16 by rounding + float(value). + """ if isinstance(value, int): self._c_posit.v = value else: @@ -595,7 +607,7 @@ cdef class Posit16: cpdef to_quire(self): cdef cposit.quire16_t f - f = cposit.q16_clr(f) + f = cposit.q16Clr() f = cposit.q16_fdp_add(f, self._c_posit, _p16_one) return Quire16.from_c_quire(f) @@ -638,6 +650,10 @@ cdef class Quire16: # convenience interface for use inside Python def __init__(self, value): + """Given an int, create a Quire16 from the bitpattern represented by + that int. Otherwise, given some value, create a Quire16 by rounding + float(value) to a Posit16. + """ if isinstance(value, int): for idx in range(1, -1, -1): self._c_quire.v[idx] = value & 0xffffffffffffffff @@ -646,7 +662,7 @@ cdef class Quire16: raise OverflowError('value too large to fit in uint64_t[2]') else: f = float(value) - self._c_quire = cposit.q16_clr(self._c_quire) + self._c_quire = cposit.q16Clr() self._c_quire = cposit.q16_fdp_add(self._c_quire, cposit.convertDoubleToP16(f), _p16_one) def __float__(self): @@ -686,7 +702,7 @@ cdef class Quire16: self._c_quire = cposit.q16_fdp_sub(self._c_quire, a1._c_posit, a2._c_posit) cpdef void iclr(self): - self._c_quire = cposit.q16_clr(self._c_quire) + self._c_quire = cposit.q16Clr() # conversion back to posit @@ -752,7 +768,7 @@ cpdef Posit32 p16_to_p32(Posit16 a1): cpdef Quire16 p16_to_q16(Posit16 a1): cdef cposit.quire16_t f - f = cposit.q16_clr(f) + f = cposit.q16Clr() f = cposit.q16_fdp_add(f, a1._c_posit, _p16_one) return Quire16.from_c_quire(f) @@ -805,6 +821,10 @@ cdef class Posit32: # convenience interface for use inside Python def __init__(self, value): + """Given an int, create a Posit32 from the bitpattern represented by + that int. Otherwise, given some value, create a Posit32 by rounding + float(value). + """ if isinstance(value, int): self._c_posit.v = value else: @@ -972,7 +992,7 @@ cdef class Posit32: cpdef to_quire(self): cdef cposit.quire32_t f - f = cposit.q32_clr(f) + f = cposit.q32Clr() f = cposit.q32_fdp_add(f, self._c_posit, _p32_one) return Quire32.from_c_quire(f) @@ -1015,6 +1035,10 @@ cdef class Quire32: # convenience interface for use inside Python def __init__(self, value): + """Given an int, create a Quire32 from the bitpattern represented by + that int. Otherwise, given some value, create a Quire32 by rounding + float(value) to a Posit32. + """ if isinstance(value, int): for idx in range(7, -1, -1): self._c_quire.v[idx] = value & 0xffffffffffffffff @@ -1023,7 +1047,7 @@ cdef class Quire32: raise OverflowError('value too large to fit in uint64_t[8]') else: f = float(value) - self._c_quire = cposit.q32_clr(self._c_quire) + self._c_quire = cposit.q32Clr() self._c_quire = cposit.q32_fdp_add(self._c_quire, cposit.convertDoubleToP32(f), _p32_one) def __float__(self): @@ -1063,7 +1087,7 @@ cdef class Quire32: self._c_quire = cposit.q32_fdp_sub(self._c_quire, a1._c_posit, a2._c_posit) cpdef void iclr(self): - self._c_quire = cposit.q32_clr(self._c_quire) + self._c_quire = cposit.q32Clr() # conversion back to posit @@ -1129,7 +1153,7 @@ cpdef Posit16 p32_to_p16(Posit32 a1): cpdef Quire32 p32_to_q32(Posit32 a1): cdef cposit.quire32_t f - f = cposit.q32_clr(f) + f = cposit.q32Clr() f = cposit.q32_fdp_add(f, a1._c_posit, _p32_one) return Quire32.from_c_quire(f)