Skip to content

Commit c08e1a4

Browse files
committed
Fix types of asin and acos.
These can produce complex results for flonum inputs. Closes #1423.
1 parent eaabae2 commit c08e1a4

2 files changed

Lines changed: 4 additions & 10 deletions

File tree

typed-racket-lib/typed-racket/base-env/base-env-numeric.rkt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1739,12 +1739,10 @@
17391739
-FloatComplex -SingleFlonumComplex -InexactComplex N)))]
17401740
[acos (from-cases (-One . -> . -Zero)
17411741
(map unop
1742-
(list -Flonum -SingleFlonum -InexactReal -Real
1743-
-FloatComplex -SingleFlonumComplex -InexactComplex N)))]
1742+
(list -FloatComplex -SingleFlonumComplex -InexactComplex N)))]
17441743
[asin (from-cases (-Zero . -> . -One)
17451744
(map unop
1746-
(list -Flonum -SingleFlonum -InexactReal -Real
1747-
-FloatComplex -SingleFlonumComplex -InexactComplex N)))]
1745+
(list -FloatComplex -SingleFlonumComplex -InexactComplex N)))]
17481746
[atan (from-cases
17491747
(map unop (list -Zero -Flonum -SingleFlonum -InexactReal -Real
17501748
-FloatComplex -SingleFlonumComplex -InexactComplex N))

typed-racket-test/external/succeed/define-new-subtype.rkt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#lang typed/racket/base
22

33
(provide Radians Degrees radians degrees
4-
sin cos tan asin acos atan
4+
sin cos tan atan
55
degrees->radians radians->degrees
66
)
77

@@ -16,11 +16,7 @@
1616
(define (sin x) (rkt:sin x))
1717
(define (cos x) (rkt:sin x))
1818
(define (tan x) (rkt:tan x))
19-
(: asin : Real -> Radians)
20-
(: acos : Real -> Radians)
2119
(: atan : Real -> Radians)
22-
(define (asin x) (radians (rkt:asin x)))
23-
(define (acos x) (radians (rkt:acos x)))
2420
(define (atan x) (radians (rkt:atan x)))
2521

2622
(: degrees->radians : Degrees -> Radians)
@@ -41,5 +37,5 @@
4137
(map degrees->radians angles))
4238

4339
(void
44-
(sin (asin 1/2))
40+
(sin (atan 1/2))
4541
)

0 commit comments

Comments
 (0)