[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Single/Double precision equality
From: |
Ben Abbott |
Subject: |
Re: Single/Double precision equality |
Date: |
Sat, 27 Sep 2014 17:09:05 -0400 |
On Sep 27, 2014, at 1:41 PM, Daniel J Sebald <address@hidden> wrote:
> Maybe the easiest thing is to concede to arbitrariness and in the
> documentation add a third column, an "operator evaluation" column:
>
> Mixed Operation Evaluate Storage
> -------------------------------------------
> double OP single single single
> double OP integer double integer
> double OP char double double
> double OP logical double double
> single OP integer single integer
> single OP char single single
> single OP logical single single
I like this idea. I wrote a script and ran it in Matlab to allow for a quick
comparison ...
precedence
class ( double (0) + double (1)) -> double
class ( double (0) + single (1)) -> single
class ( double (0) + char (1)) -> double
class ( double (0) + logical (1)) -> double
class ( double (0) + int64 (1)) -> int64
class ( double (0) + uint64 (1)) -> uint64
class ( double (0) + int32 (1)) -> int32
class ( double (0) + uint32 (1)) -> uint32
class ( double (0) + int16 (1)) -> int16
class ( double (0) + uint16 (1)) -> uint16
class ( double (0) + int8 (1)) -> int8
class ( double (0) + uint8 (1)) -> uint8
class ( single (0) + double (1)) -> single
class ( single (0) + single (1)) -> single
class ( single (0) + char (1)) -> single
class ( single (0) + logical (1)) -> single
class ( single (0) + int64 (1)) -> error
class ( single (0) + uint64 (1)) -> error
class ( single (0) + int32 (1)) -> error
class ( single (0) + uint32 (1)) -> error
class ( single (0) + int16 (1)) -> error
class ( single (0) + uint16 (1)) -> error
class ( single (0) + int8 (1)) -> error
class ( single (0) + uint8 (1)) -> error
class ( char (0) + double (1)) -> double
class ( char (0) + single (1)) -> single
class ( char (0) + char (1)) -> double
class ( char (0) + logical (1)) -> double
class ( char (0) + int64 (1)) -> int64
class ( char (0) + uint64 (1)) -> uint64
class ( char (0) + int32 (1)) -> int32
class ( char (0) + uint32 (1)) -> uint32
class ( char (0) + int16 (1)) -> int16
class ( char (0) + uint16 (1)) -> uint16
class ( char (0) + int8 (1)) -> int8
class ( char (0) + uint8 (1)) -> uint8
class (logical (0) + double (1)) -> double
class (logical (0) + single (1)) -> single
class (logical (0) + char (1)) -> double
class (logical (0) + logical (1)) -> double
class (logical (0) + int64 (1)) -> error
class (logical (0) + uint64 (1)) -> error
class (logical (0) + int32 (1)) -> error
class (logical (0) + uint32 (1)) -> error
class (logical (0) + int16 (1)) -> error
class (logical (0) + uint16 (1)) -> error
class (logical (0) + int8 (1)) -> error
class (logical (0) + uint8 (1)) -> error
class ( int64 (0) + double (1)) -> int64
class ( int64 (0) + single (1)) -> error
class ( int64 (0) + char (1)) -> int64
class ( int64 (0) + logical (1)) -> error
class ( int64 (0) + int64 (1)) -> int64
class ( int64 (0) + uint64 (1)) -> error
class ( int64 (0) + int32 (1)) -> error
class ( int64 (0) + uint32 (1)) -> error
class ( int64 (0) + int16 (1)) -> error
class ( int64 (0) + uint16 (1)) -> error
class ( int64 (0) + int8 (1)) -> error
class ( int64 (0) + uint8 (1)) -> error
class ( uint64 (0) + double (1)) -> uint64
class ( uint64 (0) + single (1)) -> error
class ( uint64 (0) + char (1)) -> uint64
class ( uint64 (0) + logical (1)) -> error
class ( uint64 (0) + int64 (1)) -> error
class ( uint64 (0) + uint64 (1)) -> uint64
class ( uint64 (0) + int32 (1)) -> error
class ( uint64 (0) + uint32 (1)) -> error
class ( uint64 (0) + int16 (1)) -> error
class ( uint64 (0) + uint16 (1)) -> error
class ( uint64 (0) + int8 (1)) -> error
class ( uint64 (0) + uint8 (1)) -> error
class ( int32 (0) + double (1)) -> int32
class ( int32 (0) + single (1)) -> error
class ( int32 (0) + char (1)) -> int32
class ( int32 (0) + logical (1)) -> error
class ( int32 (0) + int64 (1)) -> error
class ( int32 (0) + uint64 (1)) -> error
class ( int32 (0) + int32 (1)) -> int32
class ( int32 (0) + uint32 (1)) -> error
class ( int32 (0) + int16 (1)) -> error
class ( int32 (0) + uint16 (1)) -> error
class ( int32 (0) + int8 (1)) -> error
class ( int32 (0) + uint8 (1)) -> error
class ( uint32 (0) + double (1)) -> uint32
class ( uint32 (0) + single (1)) -> error
class ( uint32 (0) + char (1)) -> uint32
class ( uint32 (0) + logical (1)) -> error
class ( uint32 (0) + int64 (1)) -> error
class ( uint32 (0) + uint64 (1)) -> error
class ( uint32 (0) + int32 (1)) -> error
class ( uint32 (0) + uint32 (1)) -> uint32
class ( uint32 (0) + int16 (1)) -> error
class ( uint32 (0) + uint16 (1)) -> error
class ( uint32 (0) + int8 (1)) -> error
class ( uint32 (0) + uint8 (1)) -> error
class ( int16 (0) + double (1)) -> int16
class ( int16 (0) + single (1)) -> error
class ( int16 (0) + char (1)) -> int16
class ( int16 (0) + logical (1)) -> error
class ( int16 (0) + int64 (1)) -> error
class ( int16 (0) + uint64 (1)) -> error
class ( int16 (0) + int32 (1)) -> error
class ( int16 (0) + uint32 (1)) -> error
class ( int16 (0) + int16 (1)) -> int16
class ( int16 (0) + uint16 (1)) -> error
class ( int16 (0) + int8 (1)) -> error
class ( int16 (0) + uint8 (1)) -> error
class ( uint16 (0) + double (1)) -> uint16
class ( uint16 (0) + single (1)) -> error
class ( uint16 (0) + char (1)) -> uint16
class ( uint16 (0) + logical (1)) -> error
class ( uint16 (0) + int64 (1)) -> error
class ( uint16 (0) + uint64 (1)) -> error
class ( uint16 (0) + int32 (1)) -> error
class ( uint16 (0) + uint32 (1)) -> error
class ( uint16 (0) + int16 (1)) -> error
class ( uint16 (0) + uint16 (1)) -> uint16
class ( uint16 (0) + int8 (1)) -> error
class ( uint16 (0) + uint8 (1)) -> error
class ( int8 (0) + double (1)) -> int8
class ( int8 (0) + single (1)) -> error
class ( int8 (0) + char (1)) -> int8
class ( int8 (0) + logical (1)) -> error
class ( int8 (0) + int64 (1)) -> error
class ( int8 (0) + uint64 (1)) -> error
class ( int8 (0) + int32 (1)) -> error
class ( int8 (0) + uint32 (1)) -> error
class ( int8 (0) + int16 (1)) -> error
class ( int8 (0) + uint16 (1)) -> error
class ( int8 (0) + int8 (1)) -> int8
class ( int8 (0) + uint8 (1)) -> error
class ( uint8 (0) + double (1)) -> uint8
class ( uint8 (0) + single (1)) -> error
class ( uint8 (0) + char (1)) -> uint8
class ( uint8 (0) + logical (1)) -> error
class ( uint8 (0) + int64 (1)) -> error
class ( uint8 (0) + uint64 (1)) -> error
class ( uint8 (0) + int32 (1)) -> error
class ( uint8 (0) + uint32 (1)) -> error
class ( uint8 (0) + int16 (1)) -> error
class ( uint8 (0) + uint16 (1)) -> error
class ( uint8 (0) + int8 (1)) -> error
class ( uint8 (0) + uint8 (1)) -> uint8
precedence.m
Description: Binary data
Ben