From 425d3aa5b806879b85c6fc3ee1a9eb2a27ef668c Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Thu, 16 Jan 2025 11:55:44 -0500 Subject: [PATCH] Restrict types related to acos/asin. Related to racket/typed-racket#1428. --- math-lib/math/private/matrix/matrix-basic.rkt | 4 +--- math-lib/math/private/matrix/matrix-operator-norm.rkt | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/math-lib/math/private/matrix/matrix-basic.rkt b/math-lib/math/private/matrix/matrix-basic.rkt index 1723e21..273595c 100644 --- a/math-lib/math/private/matrix/matrix-basic.rkt +++ b/math-lib/math/private/matrix/matrix-basic.rkt @@ -312,9 +312,7 @@ (define (matrix-cos-angle M N) (/ (matrix-dot M N) (* (matrix-2norm M) (matrix-2norm N)))) -(: matrix-angle (case-> ((Matrix Flonum) (Matrix Flonum) -> Flonum) - ((Matrix Real) (Matrix Real) -> Real) - ((Matrix Float-Complex) (Matrix Float-Complex) -> Float-Complex) +(: matrix-angle (case-> ((Matrix Float-Complex) (Matrix Float-Complex) -> Float-Complex) ((Matrix Number) (Matrix Number) -> Number))) (define (matrix-angle M N) (acos (matrix-cos-angle M N))) diff --git a/math-lib/math/private/matrix/matrix-operator-norm.rkt b/math-lib/math/private/matrix/matrix-operator-norm.rkt index d6e9d7c..0c0f11e 100644 --- a/math-lib/math/private/matrix/matrix-operator-norm.rkt +++ b/math-lib/math/private/matrix/matrix-operator-norm.rkt @@ -79,9 +79,7 @@ See "How to Measure Errors" in the LAPACK manual for more details: ;(matrix-min-singular-value (matrix* (matrix-hermitian M) R)) (error 'unimplemented)) -(: matrix-basis-angle (case-> ((Matrix Flonum) (Matrix Flonum) -> Flonum) - ((Matrix Real) (Matrix Real) -> Real) - ((Matrix Float-Complex) (Matrix Float-Complex) -> Float-Complex) +(: matrix-basis-angle (case-> ((Matrix Float-Complex) (Matrix Float-Complex) -> Float-Complex) ((Matrix Number) (Matrix Number) -> Number))) ;; Returns the angle between the two subspaces spanned by the two given sets of column vectors (define (matrix-basis-angle M R)