Sam, it sounds like we should port test suites, too. -- Matthias
On Feb 25, 2009, at 10:11 AM, Jos Koot wrote:
Sorry, on plt-dev now. Below is my first trial of math-wrapper with
some tests. Would this come close to what you expect? Comments are
appreciated.
In the source text of scheme/math sinh and cosh are commented as
real sinh and real cosh, but as far as I can judge they work for
complex numbers too. The documentation of sinh and cosh does not
delimit the argument to be real. The wrapper allows complex arguments.
If you are satisfied, I am in for another simple assignment.
Jos
PS Matthias, thanks for your answer to my question.
; Typed Scheme wrapper for scheme/math
#lang typed-scheme
(define-type-alias N->N (Number -> Number))
(require/typed scheme/math
(pi Number)
(sqr N->N)
(sgn N->N)
(conjugate N->N)
(sinh N->N)
(cosh N->N))
(define: (rsgn (r : Number)) : Number
(unless (real? r) (raise-type-error 'sgn "real" r))
(sgn r))
(provide
pi
sqr
(rename-out (rsgn sgn))
conjugate
sinh
cosh)
#|
Should math not provide tanh?
(define: (tanh (z : Number)) : Number (* -i (tan (* +i z))))
(provide tanh)
|#
; Some simple tests on math-wrapper
#lang typed-scheme
(require "math-wrapper.ss")
(unless
(and
(= (sqr +i) -1)
(= (sqr -1) 1)
(= (sgn 0) 0)
(= (sgn -0.1) -1)
(< (magnitude (- (sinh -i) (* -i (sin 1)))) 1.e-10)
(< (magnitude (- (cosh -i) (cos 1))) 1.e-10)
(= (conjugate -i) +i)
(= pi 3.141592653589793)
(eq?
(call/cc
(lambda: ((cc : (Any -> Any)))
(define: (exit (x : Any)) : Any (cc 'ok))
(with-handlers ((void exit)) (sgn +i))))
'ok))
(error 'math-wrapper-test "check fails"))
----- Original Message -----
From: "Sam TH" <[email protected]>
To: "Jos Koot" <[email protected]>
Sent: Wednesday, February 25, 2009 2:23 PM
Subject: Re: [plt-dev] Re: [plt-scheme] Call for Participation:
Writing Typed Scheme wrapper modules
Jos -
Are you on the plt-dev list? If so, I'd prefer to do discussion
there.
Thanks,
sam th
On Wed, Feb 25, 2009 at 8:06 AM, Jos Koot <[email protected]>
wrote:
> In the typed-scheme reference I see base types Number and
Integer. I want a
> type for reals, because many numerical functions accept/return
reals but not
> complex numbers. Is this possible? How?
> Jos
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>
--
sam th
[email protected]
_________________________________________________
For list-related administrative tasks:
http://list.cs.brown.edu/mailman/listinfo/plt-dev