[PYTHON MATRIX-SIG] Coercion problems solved?
Perry A. Stoll
pas@xis.xerox.com
Mon, 10 Mar 1997 11:10:27 PST
On 8 Mar, Alan Watson wrote:
> import UserArray
> class array32(UserArray.UserArray):
> def __init__(self, sequence):
> UserArray.UserArray.__init__(self, sequence, typecode='f')
> def __coerce__(self,other):
> return (self, UserArray.UserArray(other, typecode='f'))
>
> This allows me to implement my own `principle of least
> surprise' for coercion, namely that array elements are always 32-bit
> floats.
Quick question: does anyone know a modern machine which doesn't have a
C float as 32 bits?
FWIW, the following small change guarantees that you will _always_ get a
32 bit float (provided one is available, of course ;):
import UserArray,Numeric
class array32(UserArray.UserArray):
def __init__(self, sequence):
UserArray.UserArray.__init__(self, sequence, typecode=Numeric.Float32)
def __coerce__(self,other):
return (self, UserArray.UserArray(other, typecode=Numeric.Float32))
These constants (defined in Precision.py) are mentioned in the docs
distributed with NumPy.
-Perry
_______________
MATRIX-SIG - SIG on Matrix Math for Python
send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org
_______________