This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Source for ticket #389

cc


    

changetime

2012-07-15 04:27:46

component

WG1 - Core

description

No Scheme standard prescribes how complex numbers interoperate with exactness.  Different implementations provide inexact complex numbers only, exact and inexact complex numbers, and mixed-exactness complex numbers (see ComplexRepresentations for who provides what).

Mixed-exactness complex numbers, however, are problematic.  As a whole they must be treated as inexact, and R7RS-draft already says so.  However, in implementations where 1.0+2i, 1+2.0i, and 1.0+2.0i are distinct in the sense of `eqv?`, they are all = and have the same exactness.  This means that their behavior is different under arithmetic operations that treat the real and imaginary parts separately, which seems counter-intuitive.  The Common Lisp Hyperspec does not permit mixed-exactness complex numbers; CLISP provides them as an extension.

The five implementations in the test suite that provide mixed-exactness complex numbers are MIT, Gambit, Chibi, Mosh, STklos.

id

389

keywords


    

milestone


    

owner

alexshinn

priority

major

reporter

cowan

resolution

duplicate

severity


    

status

closed

summary

Ban mixed-exactness complex numbers

time

2012-05-07 07:23:28

type

defect

Changes

Change at time 2012-07-15 04:27:46

author

cowan

field

comment

newvalue

Subsumed under #460, because by R5RS rules `(eqv? 1.0+2i 1.0+2.0i)` returns `#t`, because the argument are `=` and have the same exactness, namely inexact), but by R6RS rules it returns `#f`, since the arguments return different values to the standard arithmetic procedure `imag-part`.

oldvalue

2

raw-time

1342301266256301

ticket

389

time

2012-07-15 04:27:46

Change at time 2012-07-15 04:27:46

author

cowan

field

resolution

newvalue

duplicate

oldvalue


    

raw-time

1342301266256301

ticket

389

time

2012-07-15 04:27:46

Change at time 2012-07-15 04:27:46

author

cowan

field

status

newvalue

closed

oldvalue

new

raw-time

1342301266256301

ticket

389

time

2012-07-15 04:27:46

Change at time 2012-05-07 07:29:25

author

cowan

field

comment

newvalue


    

oldvalue

1

raw-time

1336350565389909

ticket

389

time

2012-05-07 07:29:25

Change at time 2012-05-07 07:29:25

author

cowan

field

description

newvalue

No Scheme standard prescribes how complex numbers interoperate with exactness.  Different implementations provide inexact complex numbers only, exact and inexact complex numbers, and mixed-exactness complex numbers (see ComplexRepresentations for who provides what).

Mixed-exactness complex numbers, however, are problematic.  As a whole they must be treated as inexact, and R7RS-draft already says so.  However, in implementations where 1.0+2i, 1+2.0i, and 1.0+2.0i are distinct in the sense of `eqv?`, they are all = and have the same exactness.  This means that their behavior is different under arithmetic operations that treat the real and imaginary parts separately, which seems counter-intuitive.  The Common Lisp Hyperspec does not permit mixed-exactness complex numbers; CLISP provides them as an extension.

The five implementations in the test suite that provide mixed-exactness complex numbers are MIT, Gambit, Chibi, Mosh, STklos.

oldvalue

No Scheme standard prescribes how complex numbers interoperate with exactness.  Different implementations provide inexact complex numbers only, exact and inexact complex numbers, and mixed-exactness complex numbers (see ComplexImplementations for who provides what).

Mixed-exactness complex numbers, however, are problematic.  As a whole they must be treated as inexact, and R7RS-draft already says so.  However, in implementations where 1.0+2i, 1+2.0i, and 1.0+2.0i are distinct in the sense of `eqv?`, they are all = and have the same exactness.  This means that their behavior is different under arithmetic operations that treat the real and imaginary parts separately, which seems counter-intuitive.  The Common Lisp Hyperspec does not permit mixed-exactness complex numbers; CLISP provides them as an extension.

The five implementations in the test suite that provide mixed-exactness complex numbers are MIT, Gambit, Chibi, Mosh, STklos.

raw-time

1336350565389909

ticket

389

time

2012-05-07 07:29:25