;; ;; S7 tests ;; ;; These tests are from "s7" (v1.105, 6 Feb 2012), which can be found at ;; https://ccrma.stanford.edu/software/snd/snd/s7.html and downloaded at ;; ftp://ccrma-ftp.stanford.edu/pub/Lisp/s7.tar.gz ;; ;; License: Unclear ;; According to the LICENSE file it's MIT/ISC-like, but could also ;; be (L)GPL due to used code, or Artistic License because that's how ;; it's categorized in the Sourceforce Trove. In the past the official ;; license on the main code has cycled between these as well. ;; ;; Don't worry, these tests are _not_ inextricably bound with "numbers", ;; in fact they're not built or installed when you install the egg at all. ;; They aren't even used in the default test run because these tests are ;; so big they take very long to run and *ages* to compile. That is, if ;; they don't cause the compiler to eat up all your memory! ;; ;;; sources include ;;; clisp test suite ;;; sbcl test suite ;;; Paul Dietz's CL test suite ;;; R Kelsey, W Clinger, and J Rees r5rs.html (and r6rs.html) ;;; A Jaffer's r4rstest.scm (the inspiration for this...) ;;; guile test suite ;;; gauche test suite ;;; sacla test suite ;;; Kent Dybvig's "The Scheme Programming Language" ;;; Brad Lucier (who also pointed out many bugs) ;;; GSL tests ;;; Abramowitz and Stegun, "Handbook of Mathematical Functions" ;;; Weisstein, "Encyclopedia of Mathematics" ;;; the arprec package of David Bailey et al ;;; Maxima, William Schelter et al ;;; H Cohen, "A Course in Computational Algebraic Number Theory" ;;; N Higham, "Accuracy and Stability of Numerical Algorithms" ;;; various mailing lists and websites (see individual cases below) ;; ;; Some modifications were made to allow it to be used with the "test" ;; egg for Chicken, most notably changing the (test ..) calls to (s7-test ..) (use numbers test srfi-1 ports) (test-begin "s7 numbers test") (define 64-bits? (##sys#fudge 3)) (current-test-comparator (lambda (exp act) (or (equal? exp act) (if (or (and (cplxnum? exp) (number? act)) (and (cplxnum? act) (number? exp))) (and (< (abs (real-part (- exp act))) (current-test-epsilon)) (< (abs (imag-part (- exp act))) (current-test-epsilon))) (and (number? exp) (inexact? exp) (< (abs (- 1 (abs (if (zero? act) (+ 1 exp) (/ exp act))))) (current-test-epsilon))))))) (define-syntax s7-test (er-macro-transformer (lambda (e r c) ;(display tst) (newline) (let ((tst (cadr e)) (expected (caddr e))) (if (equal? expected '(quote error)) ; A bit hacky ;) `(,(r 'test-error) ,(->string `',tst) ,tst) ;; (eval ',tst) works here, but eval-string is problematic ;; `(ok? ',tst (lambda () (eval-string (format #f "~S" ',tst))) ,expected)) `(,(r 'test) ,(->string `',tst) ,expected ,tst)))))) (define pi 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930382) (define (op-error op result expected) (if (and (real? result) (real? expected)) (/ (abs (- result expected)) (max 1.0 (abs expected))) (case op ((acosh) (/ (magnitude (- (cosh result) (cosh expected))) (max 0.001 (magnitude (cosh expected))))) ((asin) (/ (min (magnitude (- (sin result) (sin expected))) (magnitude (- result expected))) (max 0.001 (* 10 (magnitude (sin expected)))))) ((acos) (/ (min (magnitude (- (cos result) (cos expected))) (magnitude (- result expected))) (max 0.001 (magnitude (cos expected))))) ((asinh) (/ (magnitude (- (sinh result) (sinh expected))) (max 0.001 (magnitude (sinh expected))))) ((atanh) (/ (min (magnitude (- (tanh result) (tanh expected))) (magnitude (- result expected))) (max 0.001 (magnitude (tanh expected))))) ((atan) (/ (min (magnitude (- (tan result) (tan expected))) (magnitude (- result expected))) (max 0.001 (magnitude (tan expected))))) ((cosh) (/ (min (magnitude (- result expected)) (magnitude (- result (- expected)))) (max 0.001 (magnitude expected)))) (else (/ (magnitude (- result expected)) (max 0.001 (magnitude expected))))))) ;;; relative error (/ (abs (- x res) (abs x))) (define error-12 1e-12) (define error-6 1e-6) ;; s7's nan? and infinite? predicates accept any object, not just numbers (define (s7-nan? obj) (and (number? obj) (nan? obj))) (define (s7-infinite? obj) (and (number? obj) (infinite? obj))) (define ash arithmetic-shift) (define logior bitwise-ior) (define logxor bitwise-xor) (define logand bitwise-and) (define lognot bitwise-not) (define (logbit? n b) (if (negative? b) (error "negative bit index") (not (zero? (bitwise-and (ash n b) 1))))) (define (s7-log a b) (let ((res (/ (log a) (log b)))) (if (integer? res) (inexact->exact res) res))) (define (number-ok? tst result expected) (if (not (eq? result expected)) (if (or (and (not (number? expected)) (not (eq? result expected))) (and (s7-nan? expected) (not (s7-nan? result))) (and (s7-nan? result) (not (s7-nan? expected))) (and (number? expected) (or (not (number? result)) (s7-nan? result))) (and (rational? expected) (rational? result) (not (= result expected))) (and (or (rational? expected) (rational? result)) (real? expected) (real? result) (> (abs (- result expected)) error-12)) (and (pair? tst) (> (op-error (car tst) result expected) error-6))) (begin (format #f "~A got ~A~Abut expected ~A~%" tst result (if (and (rational? result) (not (rational? expected))) (format #f " (~A) " (* 1.0 result)) " ") expected) (if (and (not (number? expected)) (not (eq? result expected))) (format #f ", (eq? ~A ~A) -> #f" result expected) (if (and (number? expected) (or (not (number? result)) (s7-nan? result))) (begin (if (not (number? result)) (format #f ", (number? ~A) but not (number? ~A)" expected result) (format #f ", (number? ~A) but (nan? ~A)" expected result))) (if (and (rational? expected) (rational? result) (not (= result expected))) (format #f ", exact results but not (= ~A ~A): ~A" expected result (= result expected)) (if (and (or (rational? expected) (rational? result)) (real? expected) (real? result) (> (abs (- result expected)) error-12)) (format #f ", rational results but diff > ~A: ~A" error-12 (abs (- result expected))) (if (and (pair? tst) (< (op-error (car tst) result expected) error-6)) (let ((n result)) (format #f ", result not internally consistent") (if (and (integer? n) (or (not (= (denominator n) 1)) (not (= n (numerator n))) (not (zero? (imag-part n))) (not (= (floor n) (ceiling n) (truncate n) (round n) n)) (not (= n (real-part n))))) (format #f ", ~A integer but den: ~A, num: ~A, imag: ~A, real: ~A, floors: ~A ~A ~A ~A" n (denominator n) (numerator n) (imag-part n) (real-part n) (floor n) (ceiling n) (truncate n) (round n)) (if (and (rational? n) (not (integer? n)) (or (not (zero? (imag-part n))) (= (denominator n) 1) (= (denominator n) 0) (not (= n (real-part n))) (not (= n (/ (numerator n) (denominator n)))))) (format #f ", ~A ratio but imag: ~A, den: ~A, real: ~A, ~A/~A=~A" n (imag-part n) (denominator n) (real-part n) (numerator n) (denominator n) (* 1.0 (/ (numerator n) (denominator n)))) (if (and (real? n) (not (rational? n)) (or (not (zero? (imag-part n))) (not (= n (real-part n))))) (format #f ", ~A real but rational: ~A, imag: ~A, real: ~A" n (rational? n) (imag-part n) (real-part n)) (format #f ", ~A complex but real? ~A, imag: ~A, ~A+~A=~A" n (real? n) (imag-part n) (real-part n) (imag-part n) (+ (real-part n) (* 0+i (imag-part n))))))))))))))))) (define (nok? otst ola oexp) (let ((result (handle-exceptions exn 'error (ola)))) (number-ok? otst result oexp))) (define-syntax num-test (syntax-rules () ((_ tst expected) (s7-test tst expected)))) #; (define-syntax num-test (syntax-rules () ((_ tst expected) ;(display tst) (newline) (s7-test (nok? 'tst (lambda () tst) expected) expected)))) (define-syntax num-test-1 (syntax-rules () ((_ proc val tst expected) (let ((result (handle-exceptions exn 'error tst))) (test-assert (sprintf "(~A ~A) => ~A" 'proc val expected) (number-ok? (proc val) result expected)))))) (define-syntax num-test-2 (syntax-rules () ((_ proc val1 val2 tst expected) (let ((result (handle-exceptions exn 'error tst))) (test-assert (sprintf "(~A ~A ~A) => ~A" 'proc val1 val2 expected) (number-ok? (proc val1 val2) result expected)))))) (define-syntax reinvert (lambda (e r c) (let ((n (cadr e)) (op1 (caddr e)) (op2 (cadddr e)) (arg (car (cddddr e)))) (let ((body `(,op2 (,op1 ,arg)))) (do ((i 1 (+ i 1))) ((= i n)) (set! body `(,op2 (,op1 ,body)))) body)))) (define-syntax recompose (er-macro-transformer (lambda (e r c) (let ((n (cadr e)) (op (caddr e)) (arg (cadddr e))) (define (recompose-1 n) (if (= n 1) `(,op ,arg) `(,op ,(recompose-1 (- n 1))))) (recompose-1 n))))) (test-begin "eqv?") (s7-test (eqv? most-positive-fixnum most-positive-fixnum) #t) (s7-test (eqv? most-positive-fixnum most-negative-fixnum) #f) (s7-test (eqv? 9223372036854775807 9223372036854775806) #f) (s7-test (eqv? 9223372036854775807 -9223372036854775808) #f) (s7-test (eqv? -9223372036854775808 -9223372036854775808) #t) (s7-test (eqv? 123456789/2 123456789/2) #t) (s7-test (eqv? 123456789/2 123456787/2) #f) (s7-test (eqv? -123456789/2 -123456789/2) #t) (s7-test (eqv? 2/123456789 2/123456789) #t) (s7-test (eqv? -2/123456789 -2/123456789) #t) (s7-test (eqv? 2147483647/2147483646 2147483647/2147483646) #t) (s7-test (eqv? 3/4 12/16) #t) (s7-test (eqv? 1/1 1) #t) (s7-test (eqv? 312689/99532 833719/265381) #f) (s7-test (let ((x 3.141)) (eqv? x x)) #t) (s7-test (let ((x 1+i)) (eqv? x x)) #t) (s7-test (let* ((x 3.141) (y x)) (eqv? x y)) #t) (s7-test (let* ((x 1+i) (y x)) (eqv? x y)) #t) (s7-test (let* ((x 3/4) (y x)) (eqv? x y)) #t) (s7-test (eqv? 1.0 1.0) #t) (s7-test (eqv? 0.6 0.6) #t) (s7-test (eqv? 0.6 0.60) #t) (s7-test (eqv? 1+i 1+i) #t) (s7-test (eqv? -3.14 -3.14) #t) (s7-test (eqv? 1e2 1e2) #t) (s7-test (eqv? #i3/5 #i3/5) #t) (s7-test (eqv? #e0.6 #e0.6) #t) (s7-test (eqv? 1 1.0) #f) (s7-test (eqv? 1/2 0.5) #f) (s7-test (eqv? 1 1/1) #t) (s7-test (eqv? 0.5 5e-1) #t) ;; s7 interprets 1/0 as #i1/0, and infinity is not eqv? to itself ;(s7-test (eqv? 1/0 1/0) #f) ;(s7-test (let ((+nan.0 1/0)) (eqv? +nan.0 +nan.0)) #f) (s7-test (eqv? +nan.0 +nan.0) #f) ;; Not really right, but okay (define bignum string->number) (s7-test (eqv? (bignum "1+i") (bignum "1+i")) #t) (s7-test (eqv? (bignum "1+i") 1+i) #t) (s7-test (eqv? 1+i (bignum "1+i")) #t) (test-end "eqv?") (test-begin "equal?") (s7-test (equal? most-positive-fixnum most-positive-fixnum) #t) (s7-test (equal? most-positive-fixnum most-negative-fixnum) #f) (s7-test (equal? pi pi) #t) (s7-test (equal? 9223372036854775807 9223372036854775806) #f) (s7-test (equal? 9223372036854775807 -9223372036854775808) #f) (s7-test (equal? -9223372036854775808 -9223372036854775808) #t) (s7-test (equal? 123456789/2 123456789/2) #t) (s7-test (equal? 123456789/2 123456787/2) #f) (s7-test (equal? -123456789/2 -123456789/2) #t) (s7-test (equal? 2/123456789 2/123456789) #t) (s7-test (equal? -2/123456789 -2/123456789) #t) (s7-test (equal? 2147483647/2147483646 2147483647/2147483646) #t) (s7-test (equal? 3/4 12/16) #t) (s7-test (equal? 1/1 1) #t) (s7-test (equal? 312689/99532 833719/265381) #f) (s7-test (let ((x 3.141)) (equal? x x)) #t) (s7-test (let ((x 1+i)) (equal? x x)) #t) (s7-test (let* ((x 3.141) (y x)) (equal? x y)) #t) (s7-test (let* ((x 1+i) (y x)) (equal? x y)) #t) (s7-test (let* ((x 3/4) (y x)) (equal? x y)) #t) (s7-test (equal? '(+ '1) '(+ 1)) #f) ; !? ;(s7-test (equal? '(1/0) '(1/0)) #f) ;(s7-test (equal? '1/0 '1/0) #f) ;(s7-test (let ((+nan.0 1/0)) (equal? '(+nan.0) '(+nan.0))) #t) ;(s7-test (let ((+nan.0 1/0)) (equal? (list +nan.0) (list +nan.0))) #f) ;;; in the 1st case we're looking at the symbol, not its value ;(s7-test (let ((+nan.0 1/0)) (equal? (vector +nan.0) (vector +nan.0))) #f) ;(s7-test (let ((+nan.0 1/0)) (equal? #(1/0) #(1/0))) #f) ;;; This is the symbol |+nan.0|, s7 doesn't have literal nan syntax ;(s7-test (equal? '(+nan.0) '(+nan.0)) #t) (s7-test (equal? (list +nan.0) (list +nan.0)) #f) ;;; in the 1st case we're looking at the symbol, not its value (s7-test (equal? (vector +nan.0) (vector +nan.0)) #f) ;(s7-test (equal? #(1/0) #(1/0)) #f) (s7-test (let ((x 3.141)) (equal? x x)) #t) (s7-test (equal? 3 3) #t) (s7-test (equal? 3 3.0) #f) (s7-test (equal? 3.0 3.0) #t) (s7-test (equal? 3-4i 3-4i) #t) (s7-test (equal? (recompose 32 list '(1)) (recompose 32 list (list 1))) #t) (s7-test (equal? (recompose 100 list '(1)) (recompose 100 list (list 1))) #t) (s7-test (equal? (recompose 32 vector 1) (recompose 32 vector 1)) #t) (s7-test (equal? (reinvert 32 list vector 1) (reinvert 32 list vector 1)) #t) (s7-test (equal? (recompose 32 (lambda (a) (cons 1 a)) '()) (recompose 32 (lambda (a) (cons 1 a)) '())) #t) (s7-test (equal? (recompose 32 (lambda (a) (list 1 a)) '()) (recompose 32 (lambda (a) (list 1 a)) '())) #t) ;; so (eq? 3/4 3/4) is #f, (eqv? 3/4 3/4) is #t, ;; (eqv? #(1) #(1)) is #f, (equal? #(1) #(1)) is #t ;; (equal? 3 3.0) is #f, (= 3 3.0) is #t ;; in s7 ;; (eq? 0.0 0.0) is #t, ;; (eq? 2.0 2.0) is #f (s7-test (equal? .0 0.) #t) (s7-test (equal? (list "hi" (integer->char 65) 1 'a-symbol (make-vector 3) (list) (cons 1 2) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void)) (list "hi" (integer->char 65) 1 'a-symbol (make-vector 3) (list) (cons 1 2) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void))) #t) (s7-test (equal? (vector "hi" (integer->char 65) 1 'a-symbol (make-vector 3) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void)) (vector "hi" (integer->char 65) 1 'a-symbol (make-vector 3) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void))) #t) (s7-test (equal? (make-string 3) (make-string 3)) #t) (s7-test (equal? (make-list 3) (make-list 3)) #t) (s7-test (equal? (make-vector 3) (make-vector 3)) #t) (s7-test (equal? (current-input-port) (current-input-port)) #t) (s7-test (equal? (current-input-port) (current-output-port)) #f) (test-end "equal?") (test-begin "morally-equal (converted to test's equal check)") (test (list "hi" (integer->char 65) 1 'a-symbol (make-vector 3) (list) (cons 1 2) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void)) (list "hi" (integer->char 65) 1 'a-symbol (make-vector 3) (list) (cons 1 2) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void))) (test (vector "hi" (integer->char 65) 1 'a-symbol (make-vector 3) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void)) (vector "hi" (integer->char 65) 1 'a-symbol (make-vector 3) abs #;quasiquote 3 3/4 1.0+1.0i #\f (if #f #f) #!eof (void))) (test (make-string 3) (make-string 3)) (test (make-list 3) (make-list 3)) (test (make-vector 3) (make-vector 3)) ;(test (make-random-state 100) (make-random-state 100)) (test (current-input-port) (current-input-port)) ;(test-not (current-input-port) (current-output-port) #f) ;(test-not *stdin* *stderr* #f) (test-end "morally-equal (converted to test's equal check)") (test-begin "format/string->number") #| (s7-test (string->number (format #f "~A" -1)) -1) (s7-test (string->number (format #f "~S" -1)) -1) ;(s7-test (string->number (format #f "~F" -1)) -1) ;(s7-test (string->number (format #f "~D" -1)) -1) ;(s7-test (string->number (format #f "~G" -1)) -1) ;(s7-test (string->number (format #f "~E" -1)) -1) (s7-test (string->number (format #f "~B" -1)) -1) (s7-test (string->number (format #f "~X" -1)) -1) (s7-test (string->number (format #f "~O" -1)) -1) (num-test (string->number (format #f "~A" 1.5)) 1.5) (num-test (string->number (format #f "~S" 1.5)) 1.5) ;(num-test (string->number (format #f "~F" 1.5)) 1.5) ;(num-test (string->number (format #f "~D" 1.5)) 1.5) ;(num-test (string->number (format #f "~G" 1.5)) 1.5) ;(num-test (string->number (format #f "~E" 1.5)) 1.5) (num-test (string->number (format #f "~B" 1.5)) 1.1) (num-test (string->number (format #f "~X" 1.5)) 1.8) (num-test (string->number (format #f "~O" 1.5)) 1.4) (num-test (string->number (format #f "~A" 1+1i)) 1+1i) (num-test (string->number (format #f "~S" 1+1i)) 1+1i) ;(num-test (string->number (format #f "~F" 1+1i)) 1+1i) ;(num-test (string->number (format #f "~D" 1+1i)) 1+1i) ;(num-test (string->number (format #f "~G" 1+1i)) 1+1i) ;(num-test (string->number (format #f "~E" 1+1i)) 1+1i) (num-test (string->number (format #f "~B" 1+1i)) 1+1i) (num-test (string->number (format #f "~X" 1+1i)) 1+1i) (num-test (string->number (format #f "~O" 1+1i)) 1+1i) (s7-test (string->number (format #f "~A" 3/4)) 3/4) (s7-test (string->number (format #f "~S" 3/4)) 3/4) ;(s7-test (string->number (format #f "~F" 3/4)) 3/4) ;(s7-test (string->number (format #f "~D" 3/4)) 3/4) ;(s7-test (string->number (format #f "~G" 3/4)) 3/4) ;(s7-test (string->number (format #f "~E" 3/4)) 3/4) (s7-test (string->number (format #f "~B" 3/4)) 11/100) (s7-test (string->number (format #f "~X" 3/4)) 3/4) (s7-test (string->number (format #f "~O" 3/4)) 3/4) (num-test (string->number (format #f "~A" 0+1i)) 0+1i) (num-test (string->number (format #f "~S" 0+1i)) 0+1i) ;(num-test (string->number (format #f "~F" 0+1i)) 0+1i) ;(num-test (string->number (format #f "~D" 0+1i)) 0+1i) ;(num-test (string->number (format #f "~G" 0+1i)) 0+1i) ;(num-test (string->number (format #f "~E" 0+1i)) 0+1i) (num-test (string->number (format #f "~B" 0+1i)) 0+1i) (num-test (string->number (format #f "~X" 0+1i)) 0+1i) (num-test (string->number (format #f "~O" 0+1i)) 0+1i) ;(s7-test (format "~G" 1e10) "1e+10") ;(s7-test (format "~F" 1e10) "10000000000.000000") ;(s7-test (format "~E" 1e10) "1.000000e+10") (s7-test (format "~A" 1e10) "10000000000.0") ;(s7-test (format "~D" 1e10) "1.000000e+10") |# (test-end "format/string->number") (test-begin "miscellaneous amusements") (s7-test ((and abs) -1) 1) (s7-test ((values (lambda hi '#()))) '#()) (s7-test (((((lambda () (lambda () (lambda () (lambda () 1)))))))) 1) (s7-test ((do ((i 0 (+ i 1))) ((= i 1) (lambda () 3)))) 3) (s7-test (+ (+) (*)) 1) ;; GCD with no args returns 0, not 1 and (modulo 1 0) is an error (bug in s7?) ;(s7-test (modulo (lcm) (gcd)) 1) (s7-test (modulo (lcm) (gcd)) 'error) (s7-test (max (+) (*)) 1) (s7-test (min (gcd) (lcm)) 0) (s7-test (substring (string-append) (+)) "") (s7-test (ash (*) (+)) 1) (s7-test (> (*) (+)) #t) (s7-test ((or #f lcm)) 1) (s7-test ((or #f lcm) 2 3) 6) ;(s7-test ((or apply) lcm) 1) (s7-test ((or apply) lcm '()) 1) (s7-test (- ((or *))) -1) (s7-test ((car (list lcm))) 1) (s7-test ((or (cond (lcm)))) 1) (s7-test ((cond (asin floor *))) 1) ;(s7-test (logior (#(1 #\a (3)) 0) (truncate 1.5)) 1) (s7-test (logior (vector-ref '#(1 #\a (3)) 0) (truncate 1.5)) 1) (s7-test (real? (*)) #t) (s7-test (- (lcm)) -1) (s7-test (* (*)) 1) (s7-test (+ (+) (+ (+)) (+ (+ (+)))) 0) (s7-test (+(*(+))(*)(+(+)(+)(*))) 2) (num-test (+(-(*).(+1))(*(+).(-1))(*(+).(-10))(*(-(+)0)1.)(-(+)(*).01)(*(-(+)).01)(-(+)(*)1.0)(-(*(+))1.0)(*(-(+))1.0)(-(+(*)1).0))-2.01) (num-test (+(-(*).(+1.0))(*(+).(-1.0))(-(+)1.(*)0.)(-(*(+)0.)1.)(-(+(*)1.)0.)(+(-(*)0.)1.))1.0) ;; float comparison so can't use direct '=' here ;; We have no hyperbolic sine function, let alone its inverse ;(s7-test (nan? (asinh (cos (real-part (log 0.0))))) #t) (num-test(cos(sin(log(tan(*))))) 0.90951841537482) ;(num-test (asinh (- 9223372036854775807)) -44.361419555836) ;; This is a bignum, which we can't really do asin on without losing precision... ;(num-test (imag-part (asin -9223372036854775808)) 44.361419555836) ;; proof that these exponents should be disallowed (num-test (string->number "1l1") 10.0) ;; The 'l' triggers inexact reading, but s7 supports only inexact compnums ;(num-test (string->number "1l1+1l1i") 10+10i) ;(num-test (string->number "1l11+11l1i") 100000000000+110i) (num-test (string->number "1l1+1l1i") 10.0+10.0i) (num-test (string->number "1l11+11l1i") 100000000000.0+110.0i) (num-test (string->number "#d1d1") 10.0) (num-test (string->number "#d0001d0001") 10.0) (num-test (apply * (map (lambda (r) (sin (* pi (/ r 130)))) (list 1 67 69 73 81 97))) (/ 1.0 64)) (num-test (max 0(+)(-(*))1) 1) (s7-test (cond ((apply < '(1 2)))) #t) ;; This could be an error, if *only* zero-arg procs are accepted as thunks (pedantically correct) ;(s7-test (dynamic-wind lcm gcd *) 'error) (s7-test (dynamic-wind lcm gcd *) 0) (s7-test (case 0 ((> 0 1) 32)) 32) (s7-test (char-downcase (char-downcase #\newline)) #\newline) (s7-test (cond (0 (define (x) 3) (x))) 3) (s7-test (let ((x (lambda () 3))) (if (define (x) 4) (x) 0)) 4) (s7-test (and (define (x) 4) (+ (x) 1)) 5) (s7-test (do ((x (lambda () 3) (lambda () 4))) ((= (x) 4) (define (x) 5) (x))) 5) (s7-test (begin (if (define (x) 3) (define (x) 4) (define (x) 5)) (x)) 4) (test-end "miscellaneous amusements") (test-begin "CLisms -> numbers test") (define (lognor n1 n2) (lognot (logior n1 n2))) (define (logeqv . ints) (lognot (apply logxor ints))) (define-constant boole-clr 0) (define-constant boole-set 1) (define-constant boole-1 2) (define-constant boole-2 3) (define-constant boole-c1 4) (define-constant boole-c2 5) (define-constant boole-and 6) (define-constant boole-ior 7) (define-constant boole-xor 8) (define-constant boole-eqv 9) (define-constant boole-nand 10) (define-constant boole-nor 11) (define-constant boole-andc1 12) (define-constant boole-andc2 13) (define-constant boole-orc1 14) (define-constant boole-orc2 15) (define (boole op int1 int2) (cond ((= op boole-clr) 0) ((= op boole-set) -1) ;; all ones -- "always 1" is misleading ((= op boole-1) int1) ((= op boole-2) int2) ((= op boole-c1) (lognot int1)) ((= op boole-c2) (lognot int2)) ((= op boole-and) (logand int1 int2)) ((= op boole-ior) (logior int1 int2)) ((= op boole-xor) (logxor int1 int2)) ((= op boole-eqv) (logeqv int1 int2)) ((= op boole-nand) (lognot (logand int1 int2))) ((= op boole-nor) (lognot (logior int1 int2))) ((= op boole-andc1) (logand (lognot int1) int2)) ((= op boole-andc2) (logand int1 (lognot int2))) ((= op boole-orc1) (logior (lognot int1) int2)) ((= op boole-orc2) (logior int1 (lognot int2))))) (let ((boole-n-vector (vector boole-clr boole-and boole-andc1 boole-2 boole-andc2 boole-1 boole-xor boole-ior boole-nor boole-eqv boole-c1 boole-orc1 boole-c2 boole-orc2 boole-nand boole-set))) (do ((n 0 (+ n 1))) ((= n 16)) (if (not (= n (logand (boole (vector-ref boole-n-vector n) #b0101 #b0011) #b1111))) (format #t "~A: ~A ~A~%" n (vector-ref boole-n-vector n) (logand (boole (vector-ref boole-n-vector n) #b0101 #b0011) #b1111)))) (let ((lst '())) (do ((n #b0000 (+ n 1))) ((> n #b1111)) (set! lst (cons (boole (vector-ref boole-n-vector n) 5 3) lst))) (if (not (equal? (reverse lst) (list 0 1 2 3 4 5 6 7 -8 -7 -6 -5 -4 -3 -2 -1))) (format #t ";boole: ~A~%" (reverse lst))))) (define-syntax psetq (lambda (e r c) (let ((pairs (cdr e))) (let ((vals '()) (vars '())) (do ((var-val pairs (cddr var-val))) ((null? var-val)) (let ((interval (gensym))) (set! vals (cons (list interval (cadr var-val)) vals)) (set! vars (cons (list 'set! (car var-val) interval) vars)))) `(let ,(reverse vals) ,@vars))))) (define some any) (define (notevery p . l) (apply any (complement p) l)) (define (notany p . l) (apply every (complement p) l)) (define (nth n l) (if (< n (length l)) (list-ref l n) '())) (define-syntax enum (er-macro-transformer (lambda (e r c) (let ((args (cdr e))) `(begin ,@(let ((names '())) (do ((arg args (cdr arg)) (i 0 (+ i 1))) ((null? arg) names) (set! names (cons `(define ,(car arg) ,i) names))))))))) (define conjugate conj) (define (complexp l) (and (complex? l) (not (real? l)))) ;; from Rick (define (byte siz pos) ;; cache size, position and mask. (list siz pos (ash (- (ash 1 siz) 1) pos))) (define (byte-size bytespec) (car bytespec)) (define (byte-position bytespec) (cadr bytespec)) (define (byte-mask bytespec) (caddr bytespec)) (define (ldb bytespec integer) (ash (logand integer (byte-mask bytespec)) (- (byte-position bytespec)))) (define (dpb integer bytespec into) (logior (ash (logand integer (- (ash 1 (byte-size bytespec)) 1)) (byte-position bytespec)) (logand into (lognot (byte-mask bytespec))))) (define (ldb-test byte int) (not (zero? (ldb byte int)))) (define (mask-field byte int) (logand int (dpb -1 byte 0))) (define (deposit-field byte spec int) (logior (logand byte (byte-mask spec)) (logand int (lognot (byte-mask spec))))) (define (scale-float x k) (* x (expt 2.0 k))) (define (cl-abs x) (if (not (zero? (imag-part x))) (magnitude x) (abs x))) (define isqrt exact-integer-sqrt) (define (/= . args) (if (null? (cdr args)) #t (if (member (car args) (cdr args)) #f (apply /= (cdr args))))) (s7-test (some zero? '(1 2 3)) #f) (s7-test (some zero? '(1 0 3)) #t) (s7-test (some (lambda args (apply > args)) '(1 2 3) '(2 3 4)) #f) (s7-test (some (lambda args (apply > args)) '(1 2 3) '(2 3 1)) #t) (s7-test (some (lambda (a) (and (positive? a) a)) '(0 -3 1 2)) 1) (s7-test (notany zero? '(1 2 3)) #t) (s7-test (notany zero? '(1 0 3)) #f) (s7-test (notany (lambda args (apply > args)) '(1 2 3) '(2 3 4)) #t) (s7-test (notany (lambda args (apply > args)) '(1 2 3) '(2 3 1)) #f) (s7-test (notany (lambda (a) (and (positive? a) a)) '(0 -3 1 2)) #f) (s7-test (every zero? '(1 2 3)) #f) (s7-test (every zero? '(0 0)) #t) (s7-test (every (lambda args (apply < args)) '(1 2 3) '(2 3 4)) #t) (s7-test (every (lambda args (apply < args)) '(1 2 3) '(2 3 1)) #f) (s7-test (notevery zero? '(1 2 3)) #t) (s7-test (notevery zero? '(0 0)) #f) (s7-test (notevery (lambda args (apply < args)) '(1 2 3) '(2 3 4)) #f) (s7-test (notevery (lambda args (apply < args)) '(1 2 3) '(2 3 1)) #t) (s7-test ((complement >) 1 2 3) #t) (s7-test (cl-abs -1) 1) (s7-test (cl-abs 1.0) 1.0) (s7-test (cl-abs 1+i) (magnitude 1+i)) (s7-test (signum 3) 1) (s7-test (signum 0) 0) (s7-test (signum -3) -1) (s7-test (signum 3.0) 1.0) (s7-test (isqrt 12) 3) (s7-test (/= 0 0) #f) (s7-test (/= 1 2 3) #t) (s7-test (/= 3 45 3) #f) (s7-test (zero? 0) #t) (s7-test (zero? 1) #f) (s7-test (negative? -1) #t) (s7-test (negative? 1) #f) (s7-test (positive? 1) #t) (s7-test (positive? -1) #f) (s7-test (odd? 3) #t) (s7-test (odd? 4) #f) (s7-test (even? 3) #f) (s7-test (even? 4) #t) (s7-test (conjugate 1+i) 1-i) (s7-test (conjugate 3.7) 3.7) (s7-test (ldb (byte 8 8) #x123) 1) (s7-test (ldb (byte 8 0) #x123) #x23) (s7-test (ldb (byte 4 4) #x123) 2) (s7-test (ldb (byte 1 4) #x123) 0) (s7-test (ldb (byte 1 5) #x123) 1) (s7-test (ldb (byte 16 16) -1) 65535) (s7-test (ldb (byte 12 18) #x12345678) 1165) (s7-test (dpb 1 (byte 8 0) #x100) #x101) (s7-test (dpb #x22 (byte 8 1) #x100) #x44) ;! (s7-test (dpb #x22 (byte 8 8) #x100) #x2200) ; not #x2300 (s7-test (dpb #x1001 (byte 16 0) -1) -61439) (s7-test (dpb #x1 (byte 8 8) #xffffff) #xff01ff) (s7-test (dpb #x1 (byte 8 16) #xffffff) #x1ffff) (s7-test (dpb #x1 (byte 8 16) #xffffffff) #xff01ffff) (s7-test (dpb -1 (byte 8 0) 0) 255) (s7-test (dpb -1 (byte 8 2) 0) 1020) (s7-test (dpb 0 (byte 16 16) #xffffffff) 65535) (s7-test (mask-field (byte 8 8) #xfffffff) #xff00) (s7-test (mask-field (byte 1 8) #xfffffff) #x100) (s7-test (ldb-test (byte 1 8) #xfffffff) #t) (s7-test (ldb-test (byte 1 8) #x10ff) #f) (s7-test (deposit-field #xabcdef (byte 8 8) 0) #xcd00) (s7-test (deposit-field #xabcdef (byte 8 4) 0) #xde0) (s7-test (deposit-field #xabcdef (byte 8 8) #xffffffff) #xffffcdff) (s7-test (real? 1) #t) (s7-test (real? 3.14) #t) (s7-test (real? 1.0+i) #f) (s7-test (complexp 1) #f) (s7-test (complexp 1.0+i) #t) (s7-test (flonum? 1) #f) (s7-test (flonum? 3.14) #t) (s7-test (rational? 1) #t) ;; CL says this isn't a rational number ;(s7-test (rational? 1.12) #f) (s7-test (rational? 1.12) #t) (s7-test (rational? 3/4) #t) (s7-test (rational? "hiho") #f) (s7-test (integer? "hiho") #f) (s7-test (integer? 3.14) #f) (s7-test (integer? 3) #t) (s7-test (number? 3) #t) (s7-test (number? "hiho") #f) (s7-test (let*-values (((x) (values 1))) x) 1) (s7-test (let*-values ((x (values 1))) x) '(1)) (s7-test (let*-values (((x) (values 1)) ((y) (values 2))) (list x y)) '(1 2)) (s7-test (let*-values (((x) (values 1)) ((y) (values (+ x 1)))) (list x y)) '(1 2)) (s7-test (let () (enum one two three) (list one two three)) '(0 1 2)) (test-end "CLisms -> numbers test") ;;; -------------------------------------------------------------------------------- ;;; NUMBERS ;;; -------------------------------------------------------------------------------- (test-begin "numbers") (define nan.0 (string->number "+nan.0")) (if (not (nan? nan.0)) (format #t ";(string->number \"nan.0\") returned ~A~%" nan.0)) (if (infinite? nan.0) (format #t ";nan.0 is infinite?~%")) (if (not (infinite? +inf.0)) (format #t ";(string->number \"+inf.0\") returned ~A~%" +inf.0)) (if (nan? +inf.0) (format #t ";+inf.0 is NaN?~%")) (if (not (infinite? -inf.0)) (format #t ";(string->number \"-inf.0\") returned ~A~%" -inf.0)) (if (nan? -inf.0) (format #t ";-inf.0 is NaN?~%")) (define-constant inf.0 +inf.0) (s7-test (equal? +inf.0 inf.0) #t) (s7-test (equal? +inf.0 -inf.0) #f) (s7-test (equal? nan.0 inf.0) #f) (s7-test (= nan.0 nan.0) #f) (s7-test (equal? inf.0 nan.0) #f) ; (s7-test (equal? nan.0 nan.0) (eqv? nan.0 nan.0)) ; these are confusing: (equal? 0/0 0/0) is a different case (test-end "numbers") ;;; -------------------------------------------------------------------------------- ;;; number? ;;; -------------------------------------------------------------------------------- ;;; (synonym for complex?) <- in s7, at least (test-begin "number?") (s7-test (number? -) #f) (s7-test (number? +) #f) (s7-test (number? 12) #t) (s7-test (number? 3) #t ) (s7-test (number? (expt 2 130)) #t) (s7-test (number? 5/3+7.2i) #t) (s7-test (number? #f) #f) (s7-test (number? (cons 1 2)) #f) (s7-test (number? 2.5-.5i) #t) (s7-test (number? most-negative-fixnum) #t) (s7-test (number? 1e-308) #t) (s7-test (number? 1e308) #t) (s7-test (number? 0+0i) #t) (s7-test (number? (log 0.0)) #t) (s7-test (number? (real-part (log 0.0))) #t) (s7-test (number? '-1-i) #t) (s7-test (number? -1.797693134862315699999999999999999999998E308) #t) (s7-test (number? -2.225073858507201399999999999999999999996E-308) #t) (s7-test (number? -9223372036854775808) #t) (s7-test (number? 1.110223024625156799999999999999999999997E-16) #t) (s7-test (number? 9223372036854775807) #t) (s7-test (number? +inf.0) #t) (s7-test (number? -inf.0) #t) (s7-test (number? nan.0) #t) (s7-test (number? +inf.0+inf.0i) #t) (s7-test (number? +nan.0+nan.0i) #t) (s7-test (number? 0+inf.0i) #t) (s7-test (number? 0+nan.0i) #t) (s7-test (number? pi) #t) (s7-test (number? #i0/0) #t) (for-each (lambda (n) (let ((nb (handle-exceptions exn 'error (number? n)))) (if (not nb) (format #t ";(number? ~A) -> #f?~%" n)))) (list '1e311 '1e-311 '0e311 '2.1e40000)) (s7-test (number? 1234567891234567890/1234567) #t) (s7-test (number? 9223372036854775808) #t) (s7-test (number? 9223372036854775808.1) #t) (s7-test (number? 9223372036854775808.1+1.5i) #t) (s7-test (number? 9223372036854775808/3) #t) (s7-test (number?) 'error) (s7-test (number? 1 2) 'error) (for-each (lambda (op opname) (for-each (lambda (arg) (if (op arg) (format #t ";(~A ~A) -> #t?~%" op arg))) (list "hi" '() (integer->char 65) #f #t '(1 2) 'a-symbol (cons 1 2) (make-vector 3) abs #!eof '(1 2 3) #\newline (lambda (a) (+ a 1)) (void)))) (list number? complex? real? rational? integer?) (list 'number? 'complex? 'real? 'rational? 'integer?)) (test-end "number?") ;;; -------------------------------------------------------------------------------- ;;; complex? ;;; -------------------------------------------------------------------------------- (test-begin "complex?") (s7-test (complex? 1/2) #t) (s7-test (complex? 2) #t) (s7-test (complex? (sqrt 2)) #t) (s7-test (complex? 1.0) #t) (s7-test (complex? 1+i) #t) (s7-test (complex? most-negative-fixnum) #t) (s7-test (complex? #i1/0) #t) ; nan is complex?? I guess so -- it's a "real"... (s7-test (complex? (log 0.0)) #t) (s7-test (complex? #i0/0) #t) (s7-test (complex? #i1+0/0i) #t) (s7-test (complex? -1.797693134862315699999999999999999999998E308) #t) (s7-test (complex? -2.225073858507201399999999999999999999996E-308) #t) (s7-test (complex? -9223372036854775808) #t) (s7-test (complex? 1.110223024625156799999999999999999999997E-16) #t) (s7-test (complex? 9223372036854775807) #t) (s7-test (complex? 3) #t ) (s7-test (complex? +inf.0) #t) (s7-test (complex? -inf.0) #t) (s7-test (complex? nan.0) #t) ; this should be #f (s7-test (complex? pi) #t) (for-each (lambda (arg) (if (not (complex? arg)) (format #t ";(complex? ~A) -> #f?~%" arg))) (list 1 1.0 1.0+0.5i 1/2)) (s7-test (complex? 1234567891234567890/1234567) #t) (s7-test (complex? 9223372036854775808) #t) (s7-test (complex? 9223372036854775808.1) #t) (s7-test (complex? 9223372036854775808.1+1.5i) #t) (s7-test (complex? 0+92233720368547758081.0i) #t) (s7-test (complex? 9223372036854775808/3) #t) (s7-test (complex?) 'error) (s7-test (complex? 1 2) 'error) (test-end "complex?") ;;; -------------------------------------------------------------------------------- ;;; real? ;;; -------------------------------------------------------------------------------- (test-begin "real?") (s7-test (real? 1) #t) (s7-test (real? most-negative-fixnum) #t) (s7-test (real? 1/2) #t) (s7-test (real? 1.0) #t) (s7-test (real? (+ 1+i 1-i)) #t) (s7-test (real? (- 1+i 1+i)) #t) (s7-test (real? (+ 1+i -1-i)) #t) (s7-test (real? (/ 1+i 1+i)) #t) (s7-test (real? (* 0+i 0+i)) #t) (s7-test (real? (magnitude 1+i)) #t) (s7-test (real? (string->number "1+0i")) #t) (s7-test (real? (make-rectangular 1 0)) #t) (s7-test (real? (make-rectangular 0 0)) #t) (s7-test (real? (make-rectangular 1 0.0)) #t) (s7-test (real? (make-rectangular 0.0 -0.0)) #t) (s7-test (real? (make-polar 0 0)) #t) (s7-test (real? (make-polar 1 0)) #t) (s7-test (real? (angle 1+i)) #t) (s7-test (real? (real-part 1+i)) #t) (s7-test (real? (imag-part 1+i)) #t) (s7-test (real? (expt 0+i 0+i)) #t) ;(s7-test (real? (log 0)) #f) ;(s7-test (real? (real-part (log 0))) #t) (s7-test (real? (real-part (log 0.0))) #t) (s7-test (real? +inf.0) #t) (s7-test (real? -inf.0) #t) (s7-test (real? nan.0) #t) ; see below (s7-test (real? pi) #t) (s7-test (real? 0+i) #f) (s7-test (real? 1.0-0.1i) #f) (s7-test (real? (sqrt 2)) #t) (s7-test (real? 1+i) #f) (s7-test (real? 1e9-0i) #t) (s7-test (real? 0+0i) #t) (s7-test (real? 1.0+0i) #t) (s7-test (real? 1.0+0.0i) #t) (s7-test (real? 1+0.0i) #t) (s7-test (real? 1-0.0i) #t) (s7-test (real? 1+0i) #t) (s7-test (real? -0+1e22i) #f) (s7-test (real? -0+1e-22i) #f) (s7-test (real? 0+1e-322i) #f) (s7-test (real? #i1+0/0i) #f) ; bignum direct 1+0/0i -> 1.0 (s7-test (real? 1.0000000000000000000000000000+0.0000000000000000000000000000i) #t) (s7-test (real? 1.0+0.0000000000000000000000000000i) #t) (s7-test (real? 1.0000000000000000000000000000+0.0i) #t) (s7-test (real? 1.0000000000000000000000000000+0e10i) #t) (s7-test (real? 1.0+0.0000000000000000000000000000e10i) #t) (s7-test (real? 1.0000000000000000000000000000+0.0e10i) #t) (s7-test (real? 0+00000000000000000000000000000000/123456789012345678901234567890i) #t) (s7-test (real? -1.797693134862315699999999999999999999998E308) #t) (s7-test (real? -2.225073858507201399999999999999999999996E-308) #t) (s7-test (real? -9223372036854775808) #t) (s7-test (real? 1.110223024625156799999999999999999999997E-16) #t) (s7-test (real? 9223372036854775807) #t) ;; This is read as 0.0+0.0i because it's so incredibly small ;(s7-test (real? 9.92209574402351949043519108941671096176E-1726-4.788930572030484370393069119625570107346E-1726i) #f) (s7-test (real? 1234567891234567890/1234567) #t) (s7-test (real? 9223372036854775808) #t) (s7-test (real? 9223372036854775808.1) #t) (s7-test (real? 9223372036854775808.1+1.5i) #f) (s7-test (real? 9223372036854775808/3) #t) (s7-test (real?) 'error) (s7-test (real? 1 2) 'error) (s7-test (real? (real-part (log 0.0))) #t) ; -inf (s7-test (real? (/ (real-part (log 0.0)) (real-part (log 0.0)))) #t) ; nan -- I think this should be #f ; Exact log of 0 is a complex number with infinity as real component in s7 ;(s7-test (real? (real-part (log 0))) #t) (test-end "real?") ;;; -------------------------------------------------------------------------------- ;;; rational? ;;; -------------------------------------------------------------------------------- ;; s7 defines rational? as ratnum? (test-begin "rational?") (s7-test (rational? 3) #t) (s7-test (rational? 1/2) #t) (s7-test (rational? 2) #t) (s7-test (rational? (sqrt 2)) #t) (s7-test (rational? 1.0) #t) (s7-test (rational? 1+i) #f) (s7-test (rational? most-negative-fixnum) #t) (s7-test (rational? #i0/0) #f) ; I like this (s7-test (rational? #i1/0) #f) (s7-test (rational? (/ 1 2)) #t) (s7-test (rational? (/ -4 4)) #t) (s7-test (rational? (/ 1.0 2)) #t) (s7-test (rational? 1/2+i) #f) (s7-test (rational? -1.797693134862315699999999999999999999998E308) #t) (s7-test (rational? -2.225073858507201399999999999999999999996E-308) #t) (s7-test (rational? -9223372036854775808) #t) (s7-test (rational? 1.110223024625156799999999999999999999997E-16) #t) (s7-test (rational? 9223372036854775807) #t) (s7-test (rational? +inf.0) #f) (s7-test (rational? -inf.0) #f) (s7-test (rational? nan.0) #f) (s7-test (rational? pi) #t) (s7-test (rational? 9223372036854775806/9223372036854775807) #t) ; More s7 strangeness; compnums are always inexact, inexacts are never rational ;(s7-test (rational? 1+0i) #f) ; ?? ;(s7-test (rational? 1+0.0i) #f) ; ?? see integer? (s7-test (rational? 1+0i) #t) (s7-test (rational? 1+0.0i) #t) (s7-test (rational? 1234567891234567890/1234567) #t) (s7-test (rational? 9223372036854775808) #t) (s7-test (rational? 9223372036854775808.1+1.5i) #f) (s7-test (rational? 9223372036854775808.1) #t) (s7-test (rational? 9223372036854775808/3) #t) (s7-test (rational?) 'error) (s7-test (rational? 1 2) 'error) (test-end "rational?") ;;; -------------------------------------------------------------------------------- ;;; integer? ;;; -------------------------------------------------------------------------------- ;; s7 treats all flonums as non-integral (test-begin "integer?") (s7-test (integer? 0.0) #t) (s7-test (integer? 3) #t) (s7-test (integer? 1/2) #f) (s7-test (integer? 1/1) #t) (s7-test (integer? 2) #t) (s7-test (integer? (sqrt 2)) #f) (s7-test (integer? 1.0) #t) (s7-test (integer? 1+i) #f) (s7-test (integer? most-negative-fixnum) #t) (s7-test (integer? 250076005727/500083) #t) (s7-test (integer? 1+0i) #t) (s7-test (integer? #i0/0) #f) (s7-test (integer? #i1/0) #f) (s7-test (integer? #e.1e010) #t) (s7-test (integer? (/ 2 1)) #t) (s7-test (integer? (/ 2 1.0)) #t) (s7-test (integer? -1.797693134862315699999999999999999999998E308) #t) (s7-test (integer? -2.225073858507201399999999999999999999996E-308) #f) (s7-test (integer? -9223372036854775808) #t) (s7-test (integer? 1.110223024625156799999999999999999999997E-16) #f) (s7-test (integer? 9223372036854775807) #t) (s7-test (integer? (expt 2.3 54)) #t) ;; Unrepresentable flonum ;(s7-test (integer? 10000000000000000.5) #f) (s7-test (integer? (expt 2 54)) #t) (s7-test (integer? (expt 2.0 54)) #t) (s7-test (integer? most-positive-fixnum) #t) (s7-test (integer? (/ most-positive-fixnum most-positive-fixnum)) #t) (s7-test (integer? +inf.0) #f) (s7-test (integer? -inf.0) #f) (s7-test (integer? nan.0) #f) (s7-test (integer? pi) #f) (s7-test (integer? 9223372036854775806/9223372036854775807) #f) (s7-test (integer? 1+0.0i) #t) (s7-test (integer? 1234567891234567890/1234567) #f) (s7-test (integer? 9223372036854775808) #t) ;; Unrepresentable flonum ;(s7-test (integer? 9223372036854775808.1) #f) (s7-test (integer? 9223372036854775808.1+1.5i) #f) (s7-test (integer? 9223372036854775808/3) #f) (s7-test (integer? 9223372036854775808/9223372036854775808) #t) (s7-test (integer? 21345678912345678912345678913456789123456789123456789) #t) (s7-test (integer?) 'error) (s7-test (integer? 1 2) 'error) (test-end "integer?") ;;; -------------------------------------------------------------------------------- ;;; infinite? ;;; -------------------------------------------------------------------------------- ;;; (define (infinite? x) (and (number? x) (or (= x inf.0) (= x -inf.0)))) but this misses complex cases (test-begin "infinite?") ;;; ;;; a number can be both NaN and infinite...: (s7-test (nan? (make-rectangular #i0/0 (real-part (log 0.0)))) #t) (s7-test (infinite? (make-rectangular #i0/0 (real-part (log 0.0)))) #t) ;;; maybe we should restrict nan? and infinite? to reals? (s7-test (infinite? 0) #f) (s7-test (infinite? 1.0) #f) (s7-test (infinite? 1/2) #f) (s7-test (infinite? 1+i) #f) (s7-test (infinite? most-positive-fixnum) #f) (s7-test (infinite? +inf.0) #t) (s7-test (infinite? -inf.0) #t) (s7-test (infinite? nan.0) #f) (s7-test (infinite? pi) #f) ;(s7-test (infinite? (imag-part (sinh (log 0.0)))) #t) (s7-test (infinite? (make-rectangular -inf.0 inf.0)) #t) (s7-test (infinite? (+ (make-rectangular 1 inf.0))) #t) (s7-test (infinite? most-negative-fixnum) #f) (s7-test (infinite? -1.797693134862315699999999999999999999998E308) #f) (s7-test (infinite? -2.225073858507201399999999999999999999996E-308) #f) (s7-test (infinite? (real-part +inf.0+inf.0i)) #t) (s7-test (infinite? (real-part 0+inf.0i)) #f) (s7-test (infinite? (imag-part +inf.0+inf.0i)) #t) (s7-test (infinite? (imag-part 0+inf.0i)) #t) (s7-test (infinite? (imag-part (make-rectangular 0.0 (real-part (log 0.0))))) #t) (s7-test (infinite? (real-part (make-rectangular 0.0 (real-part (log 0.0))))) #f) (s7-test (infinite? (make-rectangular 0.0 (real-part (log 0.0)))) #t) (s7-test (infinite? (real-part (make-rectangular (real-part (log 0.0)) 1.0))) #t) (s7-test (infinite? (imag-part (make-rectangular (real-part (log 0.0)) 1.0))) #f) (s7-test (infinite? (make-rectangular (real-part (log 0.0)) 1.0)) #t) (s7-test (infinite? (imag-part (make-rectangular (real-part (log 0.0)) (real-part (log 0.0))))) #t) (s7-test (infinite? (real-part (make-rectangular (real-part (log 0.0)) (real-part (log 0.0))))) #t) (s7-test (infinite? (make-rectangular (real-part (log 0.0)) (real-part (log 0.0)))) #t) ;(s7-test (infinite? (sin 1+1e10i)) #t) (s7-test (infinite? (log (string->number "0.0"))) #t) ;; Unrepresentable flonums ;(s7-test (infinite? 1e310) #f) ;(s7-test (infinite? 1e400) #f) ;(s7-test (infinite? 1.695681258519314941339000000000000000003E707) #f) (s7-test (infinite? 7151305879464824441563197685/828567267217721441067369971) #f) (s7-test (infinite?) 'error) (s7-test (infinite? 1 2) 'error) (test-end "infinite?") ;;; -------------------------------------------------------------------------------- ;;; nan? ;;; -------------------------------------------------------------------------------- ;;; (define (nan? x) (and (number? x) (not (= x x)))) (test-begin "nan?") (s7-test (nan? +inf.0) #f) (s7-test (nan? -inf.0) #f) (s7-test (nan? nan.0) #t) (s7-test (nan? pi) #f) (s7-test (nan? (imag-part #i0+0/0i)) #t) ;(s7-test (nan? (imag-part (sinh #i0+0/0i))) #t) ;(s7-test (nan? (imag-part (sinh #i1-0/0i))) #t) ;; two-argument log ;(s7-test (nan? (log 10 #i0/0)) #t) (s7-test (nan? (/ (log 10) (log #i0/0))) #t) (s7-test (nan? (* 0 inf.0)) #t) (s7-test (nan? (real-part +nan.0+nan.0i)) #t) (s7-test (nan? (imag-part +nan.0+nan.0i)) #t) (s7-test (nan? (real-part 0+nan.0i)) #f) (s7-test (nan? (imag-part 0+nan.0i)) #t) (s7-test (nan? 7151305879464824441563197685/828567267217721441067369971) #f) (s7-test (nan? 1624540914719833702142058941.4) #f) (s7-test (nan?) 'error) (s7-test (nan? 1 2) 'error) (test-end "nan?") (test-begin "common operators on inf/nan values") (s7-test (* 1e12000 1e12000) inf.0) (s7-test (< 0 inf.0 nan.0) #f) (s7-test (<= 0 inf.0 nan.0) #f) (s7-test (<= 1 nan.0) #f) (s7-test (<= nan.0 1) #f) (s7-test (<= nan.0 inf.0) #f) (s7-test (<= nan.0 nan.0) #f) (s7-test (> inf.0 0 nan.0) #f) (s7-test (>= inf.0 0 nan.0) #f) (s7-test (>= 1 nan.0) #f) (s7-test (>= nan.0 1) #f) (s7-test (>= nan.0 inf.0) #f) (s7-test (>= nan.0 nan.0) #f) ; Also valid: (s7-test (floor inf.0) 'error) (s7-test (floor +inf.0) +inf.0) (s7-test (floor -inf.0) -inf.0) (s7-test (nan? (floor +nan.0)) #t) (s7-test (inexact->exact (make-rectangular 1 inf.0)) 'error) (s7-test (nan? (expt 0 nan.0)) #t) ;; TODO (POSIX behaviour, do we need to enforce this?): ;;(s7-test (nan? (expt 1 nan.0)) #f) ; Broken on NetBSD (s7-test (nan? (expt nan.0 inf.0)) #t) (s7-test (nan? (expt nan.0 nan.0)) #t) (s7-test (rationalize 1e19) 'error) ; Also valid: (s7-test (round inf.0) 'error) (s7-test (round +inf.0) +inf.0) (s7-test (round -inf.0) -inf.0) (s7-test (nan? (round +nan.0)) #t) ; Also valid: (s7-test (truncate inf.0) 'error) (s7-test (truncate +inf.0) +inf.0) (s7-test (truncate -inf.0) -inf.0) (s7-test (nan? (truncate +nan.0)) #t) (num-test (/ -1 -inf.0 -9223372036854775808) 0.0) (num-test (angle -inf.0) pi) (num-test (angle inf.0) 0.0) (num-test (atan inf.0) 1.5707963267949) ;(num-test (atanh inf.0) 0+1.5707963267949i) ;(num-test (tanh -inf.0) -1.0) ;(num-test (tanh inf.0) 1.0) (s7-test (* -inf.0 inf.0) -inf.0) (s7-test (* inf.0) inf.0) (s7-test (+ 0 inf.0) inf.0) (s7-test (+ inf.0) inf.0) (s7-test (- -inf.0 inf.0) -inf.0) (s7-test (- 0 inf.0) -inf.0) (s7-test (- inf.0) -inf.0) (s7-test (/ 0 inf.0) 0.0) (s7-test (/ inf.0) 0.0) (s7-test (/ nan.0 0) 'error) (s7-test (< -inf.0 0.0) #t) (s7-test (< -inf.0 inf.0) #t) (s7-test (< -inf.0 inf.0) #t) (s7-test (< 0 inf.0 -inf.0) #f) (s7-test (< 0 inf.0) #t) (s7-test (< inf.0 -inf.0) #f) (s7-test (< nan.0 inf.0) #f) (s7-test (< nan.0 nan.0) #f) (s7-test (<= -inf.0 0.0 inf.0 inf.0) #t) (s7-test (<= -inf.0 inf.0) #t) (s7-test (<= 0 inf.0 -inf.0) #f) (s7-test (<= 0 inf.0) #t) (s7-test (= (* (+ inf.0 inf.0) -inf.0) -inf.0) #t) (s7-test (= (* -3.4 -inf.0) inf.0) #t) (s7-test (= (* -inf.0 -inf.0) inf.0) #t) (s7-test (= (* inf.0 -inf.0) -inf.0) #t) (s7-test (= (* inf.0 inf.0) inf.0) #t) (s7-test (= (+ 1 inf.0) inf.0) #t) (s7-test (= (+ inf.0 inf.0) inf.0) #t) (s7-test (= (- -inf.0) inf.0) #t) (s7-test (= (- 0.0 inf.0) -inf.0) #t) (s7-test (= (- inf.0) -inf.0) #t) (s7-test (= (/ 0.0 inf.0) 0.0) #t) (s7-test (= (abs -inf.0) inf.0) #t) (s7-test (= (abs inf.0) inf.0) #t) (s7-test (= (exp -inf.0) 0.0) #t) (s7-test (= (exp inf.0) inf.0) #t) (s7-test (= (exp most-negative-fixnum) 0.0) #t) (s7-test (= (exp most-positive-fixnum) inf.0) #t) (s7-test (= (expt -inf.0 0) 1.0) #t) (s7-test (= (expt 0.0 inf.0) 0.0) #t) ;; TODO: ;(s7-test (= (expt 1 -inf.0) 1.0) #t) ; Broken on NetBSD ;(s7-test (= (expt 1 +inf.0) 1.0) #t) ; Broken on NetBSD (uncomment later) (s7-test (= (expt 2 -inf.0) 0.0) #t) (s7-test (= (expt inf.0 0) 1.0) #t) (s7-test (= (log inf.0) inf.0) #t) (s7-test (= (magnitude -inf.0) inf.0) #t) (s7-test (= (magnitude inf.0) inf.0) #t) ;; This seems wrong ;(s7-test (= (make-polar +inf.0 0) +inf.0) #t) (s7-test (= (make-rectangular 0 inf.0) (sqrt -inf.0)) #t) ; (sqrt -inf.0) -> 0+inf.0i ! (s7-test (= (make-rectangular inf.0 0) inf.0) #t) (s7-test (= (max -inf.0 inf.0) inf.0) #t) (s7-test (= (min -inf.0 inf.0) -inf.0) #t) (s7-test (= (sqrt inf.0) inf.0) #t) (s7-test (infinite? (imag-part (sqrt -inf.0))) #t) (s7-test (= -inf.0 -inf.0) #t) (s7-test (= -inf.0 inf.0) #f) (s7-test (= -inf.0 inf.0) #f) (s7-test (= 0 inf.0 -inf.0) #f) (s7-test (= 0 inf.0) #f) (s7-test (= 0.0 nan.0) #f) (s7-test (= inf.0 0.0) #f) (s7-test (= inf.0 inf.0) #t) (s7-test (= inf.0 most-positive-fixnum) #f) (s7-test (= inf.0 nan.0) #f) (s7-test (nan? (real-part +nan.0+nan.0i)) #t) (s7-test (= nan.0 inf.0) #f) (s7-test (nan? +nan.0+nan.0i) #t) (s7-test (nan? nan.0) #t) (s7-test (> -inf.0 inf.0) #f) (s7-test (> 0 inf.0 -inf.0) #f) (s7-test (> 0 inf.0) #f) (s7-test (> inf.0 0.0) #t) (s7-test (> inf.0 1.0e308) #t) (s7-test (> inf.0 most-positive-fixnum) #t) (s7-test (> nan.0 inf.0) #f) (s7-test (> nan.0 nan.0) #f) (s7-test (>= -inf.0 inf.0) #f) (s7-test (>= 0 inf.0) #f) (s7-test (>= inf.0 -inf.0 0.0) #f) (s7-test (abs inf.0) inf.0) ;(s7-test (acosh inf.0) inf.0) (s7-test (angle inf.0) 0.0) (s7-test (ash -inf.0 inf.0) 'error) (s7-test (ash nan.0 inf.0) 'error) (s7-test (ash nan.0 nan.0) 'error) ;(s7-test (asinh inf.0) inf.0) ; Also valid: (s7-test (ceiling inf.0) 'error) (s7-test (ceiling +inf.0) +inf.0) ; Also valid: (s7-test (ceiling nan.0) 'error) (s7-test (nan? (ceiling +nan.0)) #t) (s7-test (complex? +nan.0+nan.0i) #t) ;(s7-test (cosh inf.0) inf.0) (s7-test (even? inf.0) 'error) (s7-test (exact? (make-rectangular 1 inf.0)) #f) (s7-test (exp inf.0) inf.0) (s7-test (expt nan.0) 'error) ; Also valid: (s7-test (floor inf.0) 'error) (s7-test (floor +inf.0) +inf.0) ; Also valid: (s7-test (floor nan.0) 'error) (s7-test (nan? (floor nan.0)) #t) (s7-test (gcd -inf.0 inf.0) 'error) (s7-test (gcd nan.0 inf.0) 'error) (s7-test (gcd nan.0 nan.0) 'error) (s7-test (imag-part (make-rectangular 1 inf.0)) inf.0) (s7-test (imag-part nan.0) 0.0) (s7-test (inexact? (make-rectangular 1 inf.0)) #t) (s7-test (infinite? 1 2) 'error) (s7-test (infinite?) 'error) (s7-test (lcm -inf.0 inf.0) 'error) (s7-test (lcm nan.0 inf.0) 'error) (s7-test (lcm nan.0 nan.0) 'error) (s7-test (lcm nan.0) 'error) ; two-argument log ;(s7-test (log 8.0 inf.0) 0.0) (s7-test (/ (log 8.0) (log inf.0)) 0.0) (s7-test (log inf.0) inf.0) (s7-test (logand -inf.0 inf.0) 'error) (s7-test (logand nan.0 inf.0) 'error) (s7-test (logand nan.0 nan.0) 'error) (s7-test (logior -inf.0 inf.0) 'error) (s7-test (logior nan.0 inf.0) 'error) (s7-test (logior nan.0 nan.0) 'error) (s7-test (lognot -inf.0) 'error) (s7-test (lognot nan.0) 'error) (s7-test (logbit? -inf.0 inf.0) 'error) (s7-test (logbit? nan.0 inf.0) 'error) (s7-test (logbit? nan.0 nan.0) 'error) (s7-test (logxor -inf.0 inf.0) 'error) (s7-test (logxor nan.0 inf.0) 'error) (s7-test (logxor nan.0 nan.0) 'error) (s7-test (magnitude inf.0) inf.0) (s7-test (make-random-state inf.0) 'error) (s7-test (make-random-state nan.0) 'error) (s7-test (max -inf.0 inf.0) inf.0) (s7-test (max 0 inf.0 -inf.0) inf.0) (s7-test (max 0 inf.0) inf.0) (s7-test (max inf.0) inf.0) (s7-test (min -inf.0 inf.0) -inf.0) (s7-test (min 0 inf.0 -inf.0) -inf.0) (s7-test (min 0 inf.0) 0.0) (s7-test (min inf.0) inf.0) (s7-test (nan? (* 0 nan.0)) #t) (s7-test (nan? (+ +inf.0 -inf.0 +inf.0)) #t) (s7-test (nan? (- -inf.0 -inf.0)) #t) (s7-test (nan? (- inf.0 inf.0)) #t) (s7-test (nan? (- nan.0 nan.0)) #t) (s7-test (nan? (- nan.0)) #t) (s7-test (nan? (* 0 (log 0.0))) #t) (s7-test (nan? (/ -1 nan.0 -inf.0)) #t) (s7-test (nan? (/ -inf.0 -inf.0)) #t) (s7-test (nan? (/ 0 nan.0)) #t) ;(s7-test (nan? (/ 0 (log 0))) #t) ;why not just 0.0? (s7-test (nan? (/ inf.0 -inf.0)) #t) (s7-test (nan? (/ inf.0 inf.0)) #t) (s7-test (nan? (/ inf.0 nan.0)) #t) (s7-test (nan? (/ nan.0 inf.0)) #t) (s7-test (nan? (/ nan.0 nan.0)) #t) (s7-test (nan? (/ nan.0)) #t) (s7-test (nan? (abs nan.0)) #t) ;(s7-test (nan? (acos inf.0)) #t) (s7-test (nan? (angle nan.0)) #t) ;(s7-test (nan? (asin inf.0)) #t) (s7-test (nan? (asin nan.0)) #t) (s7-test (nan? (exp nan.0)) #t) (s7-test (nan? (imag-part (make-rectangular 0 nan.0))) #t) (s7-test (nan? (imag-part +nan.0+nan.0i)) #t) (s7-test (nan? (imag-part +nan.0+nan.0i)) #t) ; two-argument log ;(s7-test (nan? (log 8.0 nan.0)) #t) ;(s7-test (nan? (log nan.0 nan.0)) #t) (s7-test (nan? (/ (log 8.0) (log nan.0))) #t) (s7-test (nan? (/ (log nan.0) (log nan.0))) #t) (s7-test (nan? (magnitude +nan.0+nan.0i)) #t) (s7-test (nan? (magnitude nan.0)) #t) (s7-test (nan? (make-polar -inf.0 inf.0)) #t) (s7-test (nan? (make-polar nan.0 0)) #t) (s7-test (nan? (make-rectangular nan.0 0)) #t) ; These don't really matter and are not nailed down by any of the reports ;(s7-test (nan? (max 0 +inf.0 +nan.0)) #t) ;(s7-test (nan? (max 1 +nan.0)) #t) ;(s7-test (nan? (min 0 +inf.0 nan.0)) #t) ;(s7-test (nan? (min 1 +nan.0)) #t) ;(s7-test (nan? (modulo 1 +inf.0)) #t) ;(s7-test (nan? (modulo 1 +nan.0)) #t) ;(s7-test (nan? (modulo +inf.0 1)) #t) ;(s7-test (nan? (modulo +nan.0 1)) #t) ; our random wants integers ;(s7-test (nan? (random nan.0)) #t) (s7-test (nan? (real-part (exp +nan.0+nan.0i))) #t) (s7-test (nan? (real-part (log +nan.0+nan.0i))) #t) (s7-test (nan? (real-part (log nan.0))) #t) (s7-test (nan? (real-part (make-rectangular -inf.0 0))) #f) (s7-test (nan? (real-part (sqrt nan.0))) #t) (s7-test (nan? (real-part +nan.0+nan.0i)) #t) (s7-test (nan? (sin -inf.0)) #t) (s7-test (nan? (sin inf.0)) #t) (s7-test (nan? (sin nan.0)) #t) (s7-test (nan? (string->number "+nan.0")) #t) (s7-test (nan? -inf.0) #f) (s7-test (nan? 1 2) 'error) (s7-test (nan? inf.0) #f) (s7-test (nan? most-negative-fixnum) #f) (s7-test (nan? most-positive-fixnum) #f) (s7-test (nan?) 'error) (s7-test (negative? (/ (real-part (log 0.0)) (real-part (log 0.0)))) #f) ; and yet it prints as -nan.0 (s7-test (number? +nan.0+nan.0i) #t) (s7-test (quotient 1 nan.0) 'error) (s7-test (quotient nan.0 1) 'error) (s7-test (random nan.0 inf.0) 'error) (s7-test (rationalize -inf.0) 'error) (s7-test (rationalize 0.5 inf.0) 0.0) (s7-test (rationalize 178978.5 -inf.0) 0.0) ; XXX TODO What should this return? ;(s7-test (rationalize 178987.5 +nan.0) 'error) (s7-test (rationalize 198797.5 inf.0) 0.0) (s7-test (rationalize inf.0) 'error) (s7-test (rationalize inf.0) 'error) ; XXX TODO What should this return? ;(s7-test (rationalize nan.0 nan.0) 'error) (s7-test (rationalize nan.0) 'error) (s7-test (rationalize nan.0) 'error) (s7-test (real-part (make-rectangular 1 inf.0)) 1.0) (s7-test (real? +nan.0+nan.0i) #f) (s7-test (remainder 1 nan.0) 'error) (s7-test (remainder nan.0 1) 'error) (s7-test (round +inf.0) +inf.0) (s7-test (round -inf.0) -inf.0) (s7-test (nan? (round +nan.0)) #t) ;(s7-test (sinh inf.0) inf.0) (s7-test (sqrt inf.0) inf.0) ;(s7-test (tanh inf.0) 1.0) (s7-test (truncate +inf.0) +inf.0) (s7-test (truncate -inf.0) -inf.0) (s7-test (nan? (truncate +nan.0)) #t) (s7-test (zero? (make-rectangular 1 inf.0)) #f) (s7-test (zero? (real-part (make-rectangular 0 -inf.0))) #t) (s7-test (zero? #i0/0) #f) (s7-test (zero? inf.0) #f) (s7-test (zero? nan.0) #f) ;; (s7-test (nan? (angle nan.0)) #t) ;; but (* 0 (expt 10 310)) -> -nan if not GMP -- is this a bug? ;;(atanh -inf.0) 0+1.5707963267949i ;;(s7-test (/ 0 inf.0 -inf.0) 0.0) ;;(s7-test (= (expt 1 +nan.0+nan.0i) 1) #t) ; or maybe NaN? ;;(s7-test (= (expt 1 nan.0) 1) #t) ;;(s7-test (= (expt 2 inf.0) inf.0) #t) ;;(s7-test (= (expt inf.0 -inf.0) 0.0) #t) ;;(s7-test (= (expt inf.0 inf.0) inf.0) #t) ;;(s7-test (= (expt nan.0 0) 1.0) #t) ;hmmm ;;(s7-test (= (expt nan.0 nan.0) 0) #t) ;;(s7-test (>= 0 inf.0 -inf.0) #t) ;;(s7-test (angle (make-rectangular 1 inf.0)) 1.5707963267949) ;;(s7-test (atanh (make-rectangular 1 inf.0)) -0+1.5707963267949i) ;;(s7-test (nan? (atan -inf.0 inf.0)) #t) ; ?? ;;(s7-test (nan? (expt 0 inf.0)) #t) ;;(s7-test (nan? (quotient -inf.0 inf.0)) #t) ;;(s7-test (nan? (quotient 1 nan.0)) #t) ;;(s7-test (nan? (quotient nan.0 1)) #t) ;;(s7-test (nan? (quotient nan.0 inf.0)) #t) ;;(s7-test (nan? (quotient nan.0 nan.0)) #t) ;;(s7-test (tan (make-rectangular 1 inf.0)) 0+1i) ;;(log nan.0 0) (log 0 inf.0) (log 0 -inf.0) (for-each (lambda (x) (s7-test (s7-infinite? x) #f) (s7-test (s7-nan? x) #f)) (list #\a "hi" #f '#(1 2) '() '(1 . 2) 'hi abs #!eof (void))) (for-each (lambda (n) (s7-test (s7-infinite? n) #f) (s7-test (s7-nan? n) #f)) (list 0.0 -0.0 .1 1+i 0-i 1/10)) (for-each (lambda (op) (s7-test (number? (op inf.0)) #t) (s7-test (number? (op -inf.0)) #t) (s7-test (number? (op nan.0)) #t)) (list magnitude abs exp angle sin cos tan #;sinh #;cosh #;tanh atan sqrt log #;asinh #;acosh #;atanh acos asin real-part imag-part exact->inexact)) (for-each (lambda (op) ;; Error is also valid for these (s7-test (op inf.0) +inf.0) (s7-test (op -inf.0) -inf.0) (s7-test (nan? (op nan.0)) #t)) (list floor ceiling truncate round)) (for-each (lambda (op) (s7-test (number? (op inf.0 inf.0)) #t) (s7-test (number? (op nan.0 -inf.0)) #t)) (list + - * / expt make-rectangular make-polar)) (for-each (lambda (op) (s7-test (boolean? (op inf.0)) #t) (s7-test (boolean? (op nan.0)) #t) (s7-test (op) 'error)) (list number? integer? real? complex? rational? zero? positive? negative? inexact? exact?)) (for-each (lambda (op) (s7-test (boolean? (op inf.0 -inf.0)) #t) (s7-test (boolean? (op nan.0 -inf.0)) #t)) (list = < > <= >=)) (for-each (lambda (op) (test-error (format #f "(~A +inf.0)" op) (op +inf.0)) (test-error (format #f "(~A +nan.0)" op) (op +nan.0))) (list even? odd? numerator denominator lcm gcd inexact->exact logior logxor logand lognot logbit? ash integer-length)) (let ((d1 1e-312) (d2 1e-316) (d3 1e-320)) (if (not (zero? d3)) (begin (s7-test (= d1 d2 d3) #f) (s7-test (< d1 d2 d3) #f) (s7-test (> d1 d2 d3) #t) ;; s7 difference with r5: rationalize returns a ratio ;; and our inexact->exact doesn't return 0 ;(s7-test (rationalize d1) 0) ;(s7-test (rationalize d3) 0) ;(s7-test (rationalize (- d1)) 0) (s7-test (not (= d2 (* 2 d1))) #t) (num-test (string->number (number->string d1)) d1) (s7-test (< (sin d3) (sin d2) (sin d1)) #t) (s7-test (< (log d3) (log d2) (log d1)) #t) (s7-test (< (abs d3) (abs d2) (abs d1)) #t) (s7-test (< (sqrt d3) (sqrt d2) (sqrt d1)) #t) (s7-test (<= (exp d3) (exp d2) (exp d3)) #t) ; all might be 1.0 ))) (test-end "common operators on inf/nan values") ;;; -------------------------------------------------------------------------------- ;;; zero? ;;; -------------------------------------------------------------------------------- (test-begin "zero?") (s7-test (zero? 0) #t ) (s7-test (zero? 0/1) #t ) (s7-test (zero? -0) #t ) (s7-test (zero? -0.0) #t ) (s7-test (zero? 0.0) #t ) (s7-test (zero? 1) #f ) (s7-test (zero? -1) #f ) (s7-test (zero? -100) #f ) (s7-test (zero? -0/4) #t) (s7-test (zero? 0+0i) #t) (s7-test (zero?) 'error) (s7-test (zero? "hi") 'error) (s7-test (zero? 1.0+23.0i 1.0+23.0i) 'error) (s7-test (zero? 0+i) #f) (s7-test (zero? 0-0i) #t) (s7-test (zero? 0.0-0.0i) #t) (s7-test (zero? +0.0) #t) (s7-test (zero? 1e-20) #f) (s7-test (zero? -1.797693134862315699999999999999999999998E308) #f) (s7-test (zero? -2.225073858507201399999999999999999999996E-308) #f) (s7-test (zero? -9223372036854775808) #f) (s7-test (zero? 1.110223024625156799999999999999999999997E-16) #f) (s7-test (zero? 9223372036854775807) #f) (s7-test (zero? +inf.0) #f) (s7-test (zero? -inf.0) #f) (s7-test (zero? nan.0) #f) (s7-test (zero? pi) #f) (s7-test (zero? -1/9223372036854775807) #f) (s7-test (zero? 1/2) #f) (s7-test (zero? 0-i) #f) (s7-test (zero? 0.00001) #f) (s7-test (zero? most-negative-fixnum) #f) (s7-test (zero? most-positive-fixnum) #f) (s7-test (zero? 18446744073709551616) #f) (s7-test (zero? (* 0 most-positive-fixnum most-positive-fixnum)) #t) (s7-test (zero? (* 0.0 most-positive-fixnum most-positive-fixnum)) #t) (s7-test (zero? (* most-positive-fixnum most-negative-fixnum 0)) #t) (s7-test (zero? (* most-positive-fixnum most-negative-fixnum 0.0)) #t) (s7-test (zero? 1000000000000000000000000000000000) #f) (s7-test (zero? 000000000000000000000000000000000) #t) ;; Unrepresentable epsilon ;(s7-test (zero? (- (expt 2.3 54) (floor (expt 2.3 54)))) #f) ;; Unrepresentable flonums ;(s7-test (zero? 1e-600) #f) ;(s7-test (zero? 9.92209574402351949043519108941671096176E-1726) #f) (s7-test (zero? 12345678901234567890) #f) (s7-test (zero? 9223372036854775808) #f) (s7-test (zero? 9223372036854775808.1) #f) (s7-test (zero? 9223372036854775808.1+1.5i) #f) (s7-test (zero? 9223372036854775808/3) #f) (s7-test (zero?) 'error) (s7-test (zero? 1 2) 'error) (test-end "zero?") ;;; -------------------------------------------------------------------------------- ;;; positive? ;;; -------------------------------------------------------------------------------- (test-begin "positive?") (s7-test (positive? 4/3) #t ) (s7-test (positive? 4) #t ) (s7-test (positive? -4) #f ) (s7-test (positive? -4/3) #f ) (s7-test (positive? 0) #f ) (s7-test (positive? 0.0) #f ) (s7-test (positive? -0) #f ) (s7-test (positive? 1-0.0i) #t) (s7-test (positive? 1.0) #t) (s7-test (positive? -1.797693134862315699999999999999999999998E308) #f) (s7-test (positive? -2.225073858507201399999999999999999999996E-308) #f) (s7-test (positive? -9223372036854775808) #f) (s7-test (positive? 1.110223024625156799999999999999999999997E-16) #t) (s7-test (positive? 9223372036854775807) #t) (s7-test (positive? most-negative-fixnum) #f) (s7-test (positive? most-positive-fixnum) #t) (s7-test (positive? +inf.0) #t) (s7-test (positive? -inf.0) #f) (s7-test (positive? nan.0) #f) (s7-test (positive? 1000000000000000000000000000000000) #t) (s7-test (positive? -1000000000000000000000000000000000) #f) (for-each (lambda (n) (if (not (positive? n)) (format #t ";(positive? ~A) -> #f?~%") n)) (list 1 123 123456123 1.4 0.001 1/2 124124124.2)) (for-each (lambda (n) (if (positive? n) (format #t ";(positive? ~A) -> #t?~%" n))) (list -1 -123 -123456123 -3/2 -0.00001 -1.4 -123124124.1)) ; Unrepresentable flonum ;(s7-test (positive? 9.92209574402351949043519108941671096176E-1726) #t) (s7-test (positive? 12345678901234567890) #t) (s7-test (positive? -12345678901234567890) #f) (s7-test (positive? 9223372036854775808) #t) (s7-test (positive? 9223372036854775808.1) #t) (s7-test (positive? 9223372036854775808/3) #t) (s7-test (positive? (/ most-positive-fixnum most-negative-fixnum)) #f) (s7-test (positive? 0+92233720368547758081.0i) 'error) (s7-test (positive? 1.23+1.0i) 'error) (s7-test (positive? 1.23 1.23) 'error) (s7-test (positive?) 'error) (s7-test (positive? 1 2) 'error) (test-end "positive?") ;;; -------------------------------------------------------------------------------- ;;; negative? ;;; -------------------------------------------------------------------------------- (test-begin "negative?") (s7-test (negative? 4) #f ) (s7-test (negative? 4/3) #f ) (s7-test (negative? -4) #t ) (s7-test (negative? -4/3) #t ) (s7-test (negative? -0/4) #f) (s7-test (negative? 0) #f ) (s7-test (negative? -0) #f ) (s7-test (negative? 0.0) #f ) (s7-test (negative? -0.0) #f ) (s7-test (negative? (expt -0.0 1)) #f) (s7-test (negative? (/ -0.0 1.0)) #f) (s7-test (negative? (* -0.0 1.0)) #f) (s7-test (negative?) 'error) (s7-test (negative? 1-0i) #f) (s7-test (negative? -1.797693134862315699999999999999999999998E308) #t) (s7-test (negative? -2.225073858507201399999999999999999999996E-308) #t) (s7-test (negative? -9223372036854775808) #t) (s7-test (negative? 1.110223024625156799999999999999999999997E-16) #f) (s7-test (negative? 9223372036854775807) #f) (s7-test (negative? most-negative-fixnum) #t) (s7-test (negative? most-positive-fixnum) #f) (s7-test (negative? +inf.0) #f) (s7-test (negative? -inf.0) #t) (s7-test (negative? nan.0) #f) (s7-test (negative? 1000000000000000000000000000000000) #f) (s7-test (negative? -1000000000000000000000000000000000) #t) (s7-test (negative? most-negative-fixnum) #t) (s7-test (negative? most-positive-fixnum) #f) (for-each (lambda (n) (if (negative? n) (format #t ";(negative? ~A) -> #t?~%" n))) (list 1 123 123456123 1.4 0.001 1/2 12341243124.2)) (for-each (lambda (n) (if (not (negative? n)) (format #t ";(negative? ~A) -> #f?~%" n))) (list -1 -123 -123456123 -2/3 -0.00001 -1.4 -123124124.1)) ;; Unrepresentable flonum ;(s7-test (negative? -9.92209574402351949043519108941671096176E-1726) #t) (s7-test (negative? 12345678901234567890) #f) (s7-test (negative? -12345678901234567890) #t) (s7-test (negative? 9223372036854775808) #f) (s7-test (negative? 9223372036854775808.1) #f) (s7-test (negative? 9223372036854775808/3) #f) (s7-test (negative? 0+92233720368547758081.0i) 'error) (s7-test (negative? -1-i) 'error) (s7-test (negative? 1.23+1.0i) 'error) (s7-test (negative? 1.23 1.23) 'error) (s7-test (negative?) 'error) (s7-test (negative? 1 2) 'error) (test-end "negative?") ;;; -------------------------------------------------------------------------------- ;;; odd? ;;; -------------------------------------------------------------------------------- (test-begin "odd?") (s7-test (odd? 3) #t ) (s7-test (odd? 2) #f ) (s7-test (odd? -4) #f ) (s7-test (odd? -1) #t ) (s7-test (odd? 0) #f) (s7-test (odd? -0) #f) (s7-test (odd? -9223372036854775808) #f) (s7-test (odd? 9223372036854775807) #t) (s7-test (odd? most-positive-fixnum) #t) (s7-test (odd? most-negative-fixnum) #f) (s7-test (odd? -2147483647) #t) (s7-test (odd? -2147483648) #f) (s7-test (odd? -2147483649) #t) (s7-test (odd? 2147483647) #t) (s7-test (odd? 2147483648) #f) (s7-test (odd? 2147483649) #t) (for-each (lambda (n) (if (odd? n) (format #t ";(odd? ~A) -> #t?~%" n))) (list 0 2 1234 -4 -10000002 1000000006)) (for-each (lambda (n) (if (not (odd? n)) (format #t ";(odd? ~A) -> #f?~%" n))) (list 1 -1 31 50001 543321)) (s7-test (odd? 12345678901234567891) #t) (s7-test (odd? 12345678901234567890) #f) (s7-test (odd? -1231234567891234567891) #t) (s7-test (odd? -1231234567891234567891) #t) (s7-test (odd? -1239223372036854775808) #f) (s7-test (odd? -9223372036854775808) #f) (s7-test (odd? 1231234567891234567891) #t) (s7-test (odd? 1234567891234567891) #t) (s7-test (odd? 1239223372036854775808) #f) (s7-test (odd? 9223372036854775808) #f) (s7-test (odd? 9223372036854775808/9223372036854775807) 'error) (s7-test (odd? 0+92233720368547758081.0i) 'error) (s7-test (odd?) 'error) (s7-test (odd? 1.23) 'error) ;; We test for integerness, don't care about inexactness ;(s7-test (odd? 1.0) 'error) (s7-test (odd? 1.0) #t) (s7-test (odd? 1+i) 'error) (s7-test (odd? 123 123) 'error) (s7-test (odd? inf.0) 'error) (s7-test (odd? nan.0) 'error) (s7-test (odd? 1/2) 'error) (test-end "odd?") ;;; -------------------------------------------------------------------------------- ;;; even? ;;; -------------------------------------------------------------------------------- (test-begin "even?") (s7-test (even? 3) #f ) (s7-test (even? 2) #t ) (s7-test (even? -4) #t ) (s7-test (even? -1) #f ) (s7-test (even? -0) #t) (s7-test (even? -9223372036854775808) #t) (s7-test (even? 9223372036854775807) #f) (s7-test (even? most-positive-fixnum) #f) (s7-test (even? most-negative-fixnum) #t) (s7-test (even? -2147483647) #f) (s7-test (even? -2147483648) #t) (s7-test (even? -2147483649) #f) (s7-test (even? 2147483647) #f) (s7-test (even? 2147483648) #t) (s7-test (even? 2147483649) #f) (for-each (lambda (n) (if (not (even? n)) (format #t ";(even? ~A) -> #f?~%" n))) (list 0 2 1234 -4 -10000002 1000000006)) (for-each (lambda (n) (if (even? n) (format #t ";(even? ~A) -> #t?~%" n))) (list 1 -1 31 50001 543321)) (let ((top-exp 60)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (+ 2 (inexact->exact (expt 2 i)))) (val2 (- val1 1)) (ev1 (even? val1)) (ov1 (odd? val1)) (ev2 (even? val2)) (ov2 (odd? val2))) (if (not ev1) (begin (set! happy #f) (display "not (even? ") (display val1) (display ")?") (newline))) (if ev2 (begin (set! happy #f) (display "(even? ") (display val2) (display ")?") (newline))) (if ov1 (begin (set! happy #f) (display "(odd? ") (display val1) (display ")?") (newline))) (if (not ov2) (begin (set! happy #f) (display "not (odd? ") (display val2) (display ")?") (newline))))))) (s7-test (even? 12345678901234567890) #t) (s7-test (even? 12345678901234567891) #f) (s7-test (even? -1231234567891234567891) #f) (s7-test (even? -1234567891234567891) #f) (s7-test (even? -1239223372036854775808) #t) (s7-test (even? -9223372036854775808) #t) (s7-test (even? 1231234567891234567891) #f) (s7-test (even? 1234567891234567891) #f) (s7-test (even? 1239223372036854775808) #t) (s7-test (even? 9223372036854775808) #t) (s7-test (even? 9223372036854775808/9223372036854775807) 'error) (s7-test (even? 0+92233720368547758081.0i) 'error) (s7-test (even?) 'error) (s7-test (even? 1.23) 'error) ;; We test for integerness, don't care about inexactness ;(s7-test (even? 1.0) 'error) (s7-test (even? 1.0) #f) (s7-test (even? 123 123) 'error) (s7-test (even? 1+i) 'error) (s7-test (even? 1+0i) #f) (s7-test (even? inf.0) 'error) (s7-test (even? nan.0) 'error) (s7-test (even? 1/2) 'error) (test-end "even?") ;;; -------------------------------------------------------------------------------- ;;; exact? ;;; -------------------------------------------------------------------------------- (test-begin "exact?") (s7-test (exact? #i1/0) #f) (s7-test (exact? '0/1) #t) (s7-test (exact? (/ 1 2)) #t) (s7-test (exact? -0) #t) (s7-test (exact? -1.797693134862315699999999999999999999998E308) #f) (s7-test (exact? -2.225073858507201399999999999999999999996E-308) #f) (s7-test (exact? -9223372036854775808) #t) (s7-test (exact? #i0/0) #f) (s7-test (exact? 0/1) #t) (s7-test (exact? 1.0) #f) (s7-test (exact? 1.110223024625156799999999999999999999997E-16) #f) (s7-test (exact? 1.5+0.123i) #f) (s7-test (exact? 1/2) #t) (s7-test (exact? 3) #t ) (s7-test (exact? 3.123) #f) (s7-test (exact? 9223372036854775807) #t) (s7-test (exact? most-positive-fixnum) #t) (s7-test (exact? pi) #f) (s7-test (exact? +inf.0) #f) (s7-test (exact? -inf.0) #f) (s7-test (exact? nan.0) #f) (s7-test (exact? (imag-part 1+0i)) #t) (s7-test (exact? (imag-part 1+0.0i)) #f) (s7-test (exact? (imag-part 1+1i)) #t) (s7-test (exact? 12345678901234567890) #t) (s7-test (exact? 9223372036854775808.1) #f) (s7-test (exact? 9223372036854775808) #t) (s7-test (exact? 9223372036854775808/3) #t) (s7-test (exact? 9223372036854775808.1+1.0i) #f) (s7-test (exact?) 'error) (s7-test (exact? "hi") 'error) (s7-test (exact? 1.0+23.0i 1.0+23.0i) 'error) (test-end "exact?") ;;; -------------------------------------------------------------------------------- ;;; inexact? ;;; -------------------------------------------------------------------------------- (test-begin "inexact?") (s7-test (inexact? -1) #f) (s7-test (inexact? -1.797693134862315699999999999999999999998E308) #t) (s7-test (inexact? -2.225073858507201399999999999999999999996E-308) #t) (s7-test (inexact? -9223372036854775808) #f) (s7-test (inexact? 1.0) #t) (s7-test (inexact? 1.110223024625156799999999999999999999997E-16) #t) (s7-test (inexact? 1.5+0.123i) #t) (s7-test (inexact? 1/2) #f) (s7-test (inexact? 3) #f) (s7-test (inexact? 3.123) #t) (s7-test (inexact? 9223372036854775807) #f) (s7-test (inexact? +inf.0) #t) (s7-test (inexact? -inf.0) #t) (s7-test (inexact? nan.0) #t) (s7-test (inexact? 12345678901234567890) #f) (s7-test (inexact? 9223372036854775808.1) #t) (s7-test (inexact? 9223372036854775808) #f) (s7-test (inexact? 9223372036854775808/3) #f) (s7-test (inexact? 9223372036854775808.1+1.0i) #t) (s7-test (inexact? "hi") 'error) (s7-test (inexact? 1.0+23.0i 1.0+23.0i) 'error) (s7-test (inexact?) 'error) (test-end "inexact?") ;;; -------------------------------------------------------------------------------- ;;; exact->inexact ;;; -------------------------------------------------------------------------------- (test-begin "exact->inexact") (num-test (exact->inexact 0+1.5i) 0+1.5i) (num-test (exact->inexact 1) 1.0) (num-test (exact->inexact 1.0) 1.0) (num-test (exact->inexact 3/2) 1.5) (num-test (exact->inexact -3/2) -1.5) (s7-test (infinite? (exact->inexact inf.0)) #t) (s7-test (nan? (exact->inexact nan.0)) #t) (num-test (exact->inexact 17/12) 1.416666666666666666666666666666666666665E0) (num-test (exact->inexact 41/29) 1.413793103448275862068965517241379310344E0) (num-test (exact->inexact 99/70) 1.414285714285714285714285714285714285714E0) (num-test (exact->inexact 577/408) 1.414215686274509803921568627450980392157E0) (num-test (exact->inexact 1393/985) 1.414213197969543147208121827411167512692E0) (num-test (exact->inexact 3363/2378) 1.414213624894869638351555929352396972245E0) (num-test (exact->inexact 19601/13860) 1.414213564213564213564213564213564213564E0) (num-test (exact->inexact 47321/33461) 1.414213562057320462628134245838438779476E0) (num-test (exact->inexact 114243/80782) 1.414213562427273402490653858532841474586E0) (num-test (exact->inexact 275807/195025) 1.414213562363799512882963722599666709396E0) (num-test (exact->inexact 1607521/1136689) 1.414213562372821413772808569450394962913E0) (num-test (exact->inexact 3880899/2744210) 1.414213562373141997150363856993451667326E0) (num-test (exact->inexact 9369319/6625109) 1.414213562373086993738518113437831739826E0) (num-test (exact->inexact 54608393/38613965) 1.414213562373094811682768138418315757008E0) (num-test (exact->inexact 131836323/93222358) 1.414213562373095089484863706193743779791E0) (num-test (exact->inexact 318281039/225058681) 1.414213562373095041821559418096829599746E0) (num-test (exact->inexact 1855077841/1311738121) 1.414213562373095048596212902163571413046E0) (num-test (exact->inexact 4478554083/3166815962) 1.414213562373095048836942801793292211529E0) (num-test (exact->inexact -1.797693134862315699999999999999999999998E308) -1.797693134862315699999999999999999999998E308) (num-test (exact->inexact -2.225073858507201399999999999999999999996E-308) -2.225073858507201399999999999999999999996E-308) (num-test (exact->inexact -9223372036854775808) -9.223372036854775808E18) (num-test (exact->inexact 1.110223024625156799999999999999999999997E-16) 1.110223024625156799999999999999999999997E-16) (num-test (exact->inexact 9223372036854775807) 9.223372036854775807E18) (num-test (exact->inexact 9007199254740991) 9.007199254740991E15) (s7-test (= (exact->inexact 9007199254740992) (exact->inexact 9007199254740991)) #f) ;; Unrepresentable flonums ;(num-test (truncate (exact->inexact most-positive-fixnum)) 9223372036854775807) ;(s7-test (= (exact->inexact 9007199254740993) (exact->inexact 9007199254740992)) #f) (num-test (exact->inexact 73786976294838206464) (expt 2.0 66)) (num-test (exact->inexact (string->number "0+1.5i")) 0+1.5i) ;(s7-test (< (abs (- (expt 2 66.5) (exact->inexact 19459393535087060477929284/186481))) 1e-9) #t) ;(s7-test (< (abs (- (exact->inexact -186198177976134811212136169603791619/103863) (- (expt 2 100.5)))) 1e-9) #t) (s7-test (exact->inexact "hi") 'error) (s7-test (exact->inexact 1.0+23.0i 1.0+23.0i) 'error) (s7-test (exact->inexact) 'error) (test-end "exact->inexact") ;;; -------------------------------------------------------------------------------- ;;; inexact->exact ;;; -------------------------------------------------------------------------------- (test-begin "inexact->exact") (num-test (inexact->exact 0.0) 0) (num-test (inexact->exact 1) 1) (num-test (inexact->exact 1.0) 1) (num-test (inexact->exact 1.5) 3/2) (s7-test (inexact->exact most-negative-fixnum) most-negative-fixnum) (num-test (inexact->exact 1.0000000000000000000000000000+0.0000000000000000000000000000i) 1) (num-test (inexact->exact 1.0+0.0000000000000000000000000000i) 1) (num-test (inexact->exact 1.0000000000000000000000000000+0.0i) 1) (num-test (inexact->exact 1.0000000000000000000000000000+0e10i) 1) (num-test (inexact->exact 1.0+0.0000000000000000000000000000e10i) 1) (num-test (inexact->exact 1.0000000000000000000000000000+0.0e10i) 1) ;; This seems to be an assumption about flonum size? ;(num-test (inexact->exact -2.225073858507201399999999999999999999996E-308) 0) (num-test (inexact->exact -9223372036854775808) -9223372036854775808) ;; This seems to be an assumption about flonum size? ;(num-test (inexact->exact 1.110223024625156799999999999999999999997E-16) 0) (num-test (inexact->exact 9223372036854775807) 9223372036854775807) (num-test (inexact->exact -2305843009213693952/4611686018427387903) -2305843009213693952/4611686018427387903) ;(num-test (inexact->exact 9007199254740995.0) 9007199254740995) ;this can't work in the non-gmp case -- see s7.c under BIGNUM_PLUS ;#e4611686018427388404.0 -> 4611686018427387904 (num-test (inexact->exact .1e20) 10000000000000000000) (num-test (inexact->exact 1e19) 10000000000000000000) (num-test (inexact->exact 1e20) 100000000000000000000) ;; Unrepresentable flonums ;(num-test (inexact->exact 9007199254740995.0) 9007199254740995) ;(num-test (inexact->exact 4611686018427388404.0) 4611686018427388404) (num-test #e9007199254740995.0 9007199254740995) (num-test #e4611686018427388404.0 4611686018427388404) (s7-test (inexact->exact (string->number "0+1.5i")) 0+3/2i) (s7-test (inexact->exact inf.0) 'error) (s7-test (inexact->exact nan.0) 'error) (s7-test (inexact->exact "hi") 'error) ; We have exact compnums (s7-test (inexact->exact #i0+1.5i) 0+3/2i) (s7-test (inexact->exact #i1+i) 1+i) (s7-test (inexact->exact 1.0+23.0i 1.0+23.0i) 'error) (s7-test (inexact->exact) 'error) (test-end "inexact->exact") ;;; -------------------------------------------------------------------------------- ;;; numerator ;;; -------------------------------------------------------------------------------- (test-begin "numerator") (num-test (numerator (/ 8 -6)) -4) (num-test (numerator -1/10) -1) (num-test (numerator -1/1234000000) -1) (num-test (numerator -1/2) -1) (num-test (numerator -1/362880) -1) (num-test (numerator -10/1) -10) (num-test (numerator -10/1234) -5) (num-test (numerator -10/3) -10) (num-test (numerator -10/500029) -10) (num-test (numerator -1234/10) -617) (num-test (numerator -1234/1234000000) -1) (num-test (numerator -1234/2) -617) (num-test (numerator -1234/362880) -617) (num-test (numerator -1234000000/1) -1234000000) (num-test (numerator -1234000000/1234) -1000000) (num-test (numerator -1234000000/3) -1234000000) (num-test (numerator -1234000000/500029) -1234000000) (num-test (numerator -2/1) -2) (num-test (numerator -2/1234) -1) (num-test (numerator -2/3) -2) (num-test (numerator -2/500029) -2) (num-test (numerator -2/6) -1) (num-test (numerator -3/10) -3) (num-test (numerator -3/1234000000) -3) (num-test (numerator -3/2) -3) (num-test (numerator -3/362880) -1) (num-test (numerator -362880/1) -362880) (num-test (numerator -362880/1234) -181440) (num-test (numerator -362880/3) -120960) (num-test (numerator -362880/500029) -362880) (num-test (numerator -500029/10) -500029) (num-test (numerator -500029/1234000000) -500029) (num-test (numerator -500029/2) -500029) (num-test (numerator -500029/362880) -500029) (num-test (numerator 0/1) 0) (num-test (numerator 0/10) 0) (num-test (numerator 0/1234) 0) (num-test (numerator 0/1234000000) 0) (num-test (numerator 0/2) 0) (num-test (numerator 0/3) 0) (num-test (numerator 0/362880) 0) (num-test (numerator 0/500029) 0) (num-test (numerator 1) 1) (num-test (numerator 1/1) 1) (num-test (numerator 1/1234) 1) (num-test (numerator 1/3) 1) (num-test (numerator 1/500029) 1) (num-test (numerator 10/10) 1) (num-test (numerator 10/1234000000) 1) (num-test (numerator 10/2) 5) (num-test (numerator 10/362880) 1) (num-test (numerator 12/6000996) 1) (num-test (numerator 1234/1) 1234) (num-test (numerator 1234/1234) 1) (num-test (numerator 1234/3) 1234) (num-test (numerator 1234/500029) 1234) (num-test (numerator 1234000000/10) 123400000) (num-test (numerator 1234000000/1234000000) 1) (num-test (numerator 1234000000/2) 617000000) (num-test (numerator 1234000000/362880) 1928125) (num-test (numerator 2/10) 1) (num-test (numerator 2/1234000000) 1) (num-test (numerator 2/2) 1) (num-test (numerator 2/3) 2) (num-test (numerator 2/362880) 1) (num-test (numerator 2/4) 1) (num-test (numerator 3/1) 3) (num-test (numerator 3/1234) 3) (num-test (numerator 3/3) 1) (num-test (numerator 3/500029) 3) (num-test (numerator 362880/10) 36288) (num-test (numerator 362880/1234000000) 567) (num-test (numerator 362880/2) 181440) (num-test (numerator 362880/362880) 1) (num-test (numerator 5/2) 5) (num-test (numerator 500029/1) 500029) (num-test (numerator 500029/1234) 500029) (num-test (numerator 500029/3) 500029) (num-test (numerator 500029/500029) 1) (num-test (numerator -9223372036854775808) -9223372036854775808) (num-test (numerator 9223372036854775807) 9223372036854775807) (num-test (numerator (/ 2 -1)) -2) (num-test (numerator (/ most-positive-fixnum 2)) most-positive-fixnum) (num-test (numerator (/ most-negative-fixnum 3)) most-negative-fixnum) (num-test (numerator (/ most-negative-fixnum most-positive-fixnum)) most-negative-fixnum) (num-test (numerator 1195068768795265792518361315725116351898245581/48889032896862784894921) 24444516448431392447461) (num-test (numerator 24444516448431392447461/1195068768795265792518361315725116351898245581) 1) (num-test (numerator -46116860184273879035/27670116110564327424) -46116860184273879035) (num-test (numerator (/ 9223372036854775808 -9223372036854775807)) -9223372036854775808) (num-test (numerator 1234567891234567890/1234567) 1234567891234567890) (num-test (numerator 9223372036854775808/9223372036854775807) 9223372036854775808) (s7-test (numerator 0+92233720368547758081.0i) 'error) ; Not just guile, so do we :) (s7-test (numerator 0.0) 0.0) ; guile thinks this is ok ; Kind of inconsistent, don't you think? We could just return ; the numerator of the exact value, changed to be inexact... (s7-test (numerator 0.1) 'error) (s7-test (numerator 1.23 1.23) 'error) (s7-test (numerator 1.23+1.0i) 'error) (s7-test (numerator) 'error) (s7-test (numerator inf.0) 'error) (s7-test (numerator nan.0) 'error) (s7-test (numerator "hi") 'error) (s7-test (numerator 1+i) 'error) (s7-test (numerator 2.3+0.5i) 'error) (test-end "numerator") ;;; -------------------------------------------------------------------------------- ;;; denominator ;;; -------------------------------------------------------------------------------- (test-begin "denominator") (num-test (denominator (/ 8 -6)) 3) (num-test (denominator -1/10) 10) (num-test (denominator -1/1234000000) 1234000000) (num-test (denominator -1/2) 2) (num-test (denominator -1/362880) 362880) (num-test (denominator -10/1) 1) (num-test (denominator -10/1234) 617) (num-test (denominator -10/3) 3) (num-test (denominator -10/500029) 500029) (num-test (denominator -1234/10) 5) (num-test (denominator -1234/1234000000) 1000000) (num-test (denominator -1234/2) 1) (num-test (denominator -1234/362880) 181440) (num-test (denominator -1234000000/1) 1) (num-test (denominator -1234000000/1234) 1) (num-test (denominator -1234000000/3) 3) (num-test (denominator -1234000000/500029) 500029) (num-test (denominator -2/1) 1) (num-test (denominator -2/1234) 617) (num-test (denominator -2/3) 3) (num-test (denominator -2/500029) 500029) (num-test (denominator -2/6) 3) (num-test (denominator -3/10) 10) (num-test (denominator -3/1234000000) 1234000000) (num-test (denominator -3/2) 2) (num-test (denominator -3/362880) 120960) (num-test (denominator -362880/1) 1) (num-test (denominator -362880/1234) 617) (num-test (denominator -362880/3) 1) (num-test (denominator -362880/500029) 500029) (num-test (denominator -500029/10) 10) (num-test (denominator -500029/1234000000) 1234000000) (num-test (denominator -500029/2) 2) (num-test (denominator -500029/362880) 362880) (num-test (denominator 0/1) 1) (num-test (denominator 0/10) 1) (num-test (denominator 0/1234) 1) (num-test (denominator 0/1234000000) 1) (num-test (denominator 0/2) 1) (num-test (denominator 0/3) 1) (num-test (denominator 0/362880) 1) (num-test (denominator 0/500029) 1) (num-test (denominator 1) 1) (num-test (denominator 1/1) 1) (num-test (denominator 1/1234) 1234) (num-test (denominator 1/3) 3) (num-test (denominator 1/500029) 500029) (num-test (denominator 10/10) 1) (num-test (denominator 10/1234000000) 123400000) (num-test (denominator 10/2) 1) (num-test (denominator 10/362880) 36288) (num-test (denominator 12/6000996) 500083) (num-test (denominator 1234/1) 1) (num-test (denominator 1234/1234) 1) (num-test (denominator 1234/3) 3) (num-test (denominator 1234/500029) 500029) (num-test (denominator 1234000000/10) 1) (num-test (denominator 1234000000/1234000000) 1) (num-test (denominator 1234000000/2) 1) (num-test (denominator 1234000000/362880) 567) (num-test (denominator 2/10) 5) (num-test (denominator 2/1234000000) 617000000) (num-test (denominator 2/2) 1) (num-test (denominator 2/3) 3) (num-test (denominator 2/362880) 181440) (num-test (denominator 2/4) 2) (num-test (denominator 3/1) 1) (num-test (denominator 3/1234) 1234) (num-test (denominator 3/3) 1) (num-test (denominator 3/500029) 500029) (num-test (denominator 362880/10) 1) (num-test (denominator 362880/1234000000) 1928125) (num-test (denominator 362880/2) 1) (num-test (denominator 362880/362880) 1) (num-test (denominator 5/2) 2) (num-test (denominator 500029/1) 1) (num-test (denominator 500029/1234) 1234) (num-test (denominator 500029/3) 3) (num-test (denominator 500029/500029) 1) (num-test (denominator -9223372036854775808) 1) (num-test (denominator 9223372036854775807) 1) (num-test (denominator (/ 2 -1)) 1) (num-test (denominator (/ 1 most-positive-fixnum)) most-positive-fixnum) (num-test (denominator (/ most-negative-fixnum most-positive-fixnum)) most-positive-fixnum) (num-test (denominator 1195068768795265792518361315725116351898245581/48889032896862784894921) 1) (num-test (denominator 24444516448431392447461/1195068768795265792518361315725116351898245581) 48889032896862784894921) (num-test (denominator -46116860184273879035/27670116110564327424) 27670116110564327424) (num-test (denominator (/ 9223372036854775808 -9223372036854775807)) 9223372036854775807) (num-test (denominator 1234567891234567890/1234567) 1234567) (num-test (denominator 9223372036854775808/9223372036854775807) 9223372036854775807) (s7-test (denominator 0+92233720368547758081.0i) 'error) ;; The denominator of exact 0 is defined as 1 by R5RS, and we accept ;; inexact integers. So it makes sense to return 1.0 there too. ;; This could change ;(s7-test (denominator 0.0) 'error) (s7-test (denominator 0.0) 1.0) (s7-test (denominator 1.23 1.23) 'error) (s7-test (denominator 1.23+1.0i) 'error) (s7-test (denominator) 'error) (s7-test (denominator inf.0) 'error) (s7-test (denominator nan.0) 'error) (s7-test (denominator "hi") 'error) (s7-test (denominator 1+i) 'error) (s7-test (denominator 2.3+0.5i) 'error) (test-end "denominator") ;;; -------------------------------------------------------------------------------- ;;; real-part ;;; -------------------------------------------------------------------------------- (test-begin "real-part") (num-test (real-part -0.0+0.00000001i) 0.0) (num-test (real-part -0.0+1234.0i) 0.0) (num-test (real-part -0.0-3.14159265358979i) 0.0) (num-test (real-part -0.00000001+1.0i) -0.00000001) (num-test (real-part -0.00000001+1234000000.0i) -0.00000001) (num-test (real-part -0.00000001-0.0i) -0.00000001) (num-test (real-part -0.00000001-2.71828182845905i) -0.00000001) (num-test (real-part -1.0+3.14159265358979i) -1.0) (num-test (real-part -1.0-0.00000001i) -1.0) (num-test (real-part -1.0-1234.0i) -1.0) (num-test (real-part -1234.0+1.0i) -1234.0) (num-test (real-part -1234.0+1234000000.0i) -1234.0) (num-test (real-part -1234.0-0.0i) -1234.0) (num-test (real-part -1234.0-2.71828182845905i) -1234.0) (num-test (real-part -1234000000.0+3.14159265358979i) -1234000000.0) (num-test (real-part -1234000000.0-0.00000001i) -1234000000.0) (num-test (real-part -1234000000.0-1234.0i) -1234000000.0) (num-test (real-part -2.71828182845905+0.00000001i) -2.71828182845905) (num-test (real-part -2.71828182845905+1234.0i) -2.71828182845905) (num-test (real-part -2.71828182845905-3.14159265358979i) -2.71828182845905) (num-test (real-part -3.14159265358979+0.0i) -3.14159265358979) (num-test (real-part -3.14159265358979+2.71828182845905i) -3.14159265358979) (num-test (real-part -3.14159265358979-1.0i) -3.14159265358979) (num-test (real-part -3.14159265358979-1234000000.0i) -3.14159265358979) (num-test (real-part 0.0+0.0i) 0.0) (num-test (real-part 0.0+2.71828182845905i) 0.0) (num-test (real-part 0.0-1.0i) 0.0) (num-test (real-part 0.0-1234000000.0i) 0.0) (num-test (real-part 0.00000001+0.00000001i) 0.00000001) (num-test (real-part 0.00000001+1234.0i) 0.00000001) (num-test (real-part 0.00000001-3.14159265358979i) 0.00000001) (num-test (real-part 1) 1) (num-test (real-part 1.0+1.0i) 1.0) (num-test (real-part 1.0+1234000000.0i) 1.0) (num-test (real-part 1.0-0.0i) 1.0) (num-test (real-part 1.0-2.71828182845905i) 1.0) (num-test (real-part 1.4+0.0i) 1.4) (num-test (real-part 1234.0+0.00000001i) 1234.0) (num-test (real-part 1234.0+1234.0i) 1234.0) (num-test (real-part 1234.0-3.14159265358979i) 1234.0) (num-test (real-part 1234000000.0+1.0i) 1234000000.0) (num-test (real-part 1234000000.0+1234000000.0i) 1234000000.0) (num-test (real-part 1234000000.0-0.0i) 1234000000.0) (num-test (real-part 1234000000.0-2.71828182845905i) 1234000000.0) (num-test (real-part 2.0) 2.0) (num-test (real-part 2.71828182845905+0.0i) 2.71828182845905) (num-test (real-part 2.71828182845905+2.71828182845905i) 2.71828182845905) (num-test (real-part 2.71828182845905-1.0i) 2.71828182845905) (num-test (real-part 2.71828182845905-1234000000.0i) 2.71828182845905) (num-test (real-part 2/3) 2/3) (num-test (real-part 3.14159265358979+3.14159265358979i) 3.14159265358979) (num-test (real-part 3.14159265358979-0.00000001i) 3.14159265358979) (num-test (real-part 3.14159265358979-1234.0i) 3.14159265358979) (num-test (real-part 3/4+1/2i) 3/4) (num-test (real-part 5) 5) (num-test (real-part -1.797693134862315699999999999999999999998E308) -1.797693134862315699999999999999999999998E308) (num-test (real-part -2.225073858507201399999999999999999999996E-308) -2.225073858507201399999999999999999999996E-308) (num-test (real-part -9223372036854775808) -9223372036854775808) (num-test (real-part 1.110223024625156799999999999999999999997E-16) 1.110223024625156799999999999999999999997E-16) (num-test (real-part 9223372036854775807) 9223372036854775807) (s7-test (real-part inf.0) inf.0) (num-test (real-part (+ 2 0.0+1/0i)) 2.0) (num-test (real-part 0+1e400i) 0.0) ;(num-test (real-part 0+9223372036854775808.0i) 0.0) (num-test (real-part 0+9223372036854775808i) 0) ;(num-test (real-part 1.5+9223372036854775808.0i) 1.5) (num-test (real-part 3/2+9223372036854775808i) 3/2) ;(num-test (real-part 9223372036854775808.0) 9223372036854775808.0) (num-test (real-part 9223372036854775808) 9223372036854775808) ;(num-test (real-part 9223372036854775808.0+1.5i) 9.223372036854775808E18) (num-test (real-part 9223372036854775808+3/2i) 9223372036854775808) ; We support exact complex values (s7-test (denominator (real-part 3/4+1/2i)) 4) (num-test (denominator (real-part 01/100)) 100) (s7-test (real-part "hi") 'error) (s7-test (real-part 1.0+23.0i 1.0+23.0i) 'error) (s7-test (real-part) 'error) (test-end "real-part") ;;; -------------------------------------------------------------------------------- ;;; imag-part ;;; -------------------------------------------------------------------------------- (test-begin "imag-part") (num-test (imag-part -0.0+0.00000001i) 0.00000001) (num-test (imag-part -0.0+1234.0i) 1234.0) (num-test (imag-part -0.0-3.14159265358979i) -3.14159265358979) (num-test (imag-part -0.00000001+1.0i) 1.0) (num-test (imag-part -0.00000001+1234000000.0i) 1234000000.0) (num-test (imag-part -0.00000001-0.0i) 0.0) (num-test (imag-part -0.00000001-2.71828182845905i) -2.71828182845905) (num-test (imag-part -1.0+3.14159265358979i) 3.14159265358979) (num-test (imag-part -1.0-0.00000001i) -0.00000001) (num-test (imag-part -1.0-1234.0i) -1234.0) (num-test (imag-part -1234.0+1.0i) 1.0) (num-test (imag-part -1234.0+1234000000.0i) 1234000000.0) (num-test (imag-part -1234.0-0.0i) 0.0) (num-test (imag-part -1234.0-2.71828182845905i) -2.71828182845905) (num-test (imag-part -1234000000.0+3.14159265358979i) 3.14159265358979) (num-test (imag-part -1234000000.0-0.00000001i) -0.00000001) (num-test (imag-part -1234000000.0-1234.0i) -1234.0) (num-test (imag-part -2.0) 0.0) (num-test (imag-part -2.71828182845905+0.00000001i) 0.00000001) (num-test (imag-part -2.71828182845905+1234.0i) 1234.0) (num-test (imag-part -2.71828182845905-3.14159265358979i) -3.14159265358979) (num-test (imag-part -3.14159265358979+0.0i) 0.0) (num-test (imag-part -3.14159265358979+2.71828182845905i) 2.71828182845905) (num-test (imag-part -3.14159265358979-1.0i) -1.0) (num-test (imag-part -3.14159265358979-1234000000.0i) -1234000000.0) (num-test (imag-part 0+i) 1.0) (num-test (imag-part 0.0+0.0i) 0.0) (num-test (imag-part 0.0+2.71828182845905i) 2.71828182845905) (num-test (imag-part 0.0-1.0i) -1.0) (num-test (imag-part 0.0-1234000000.0i) -1234000000.0) (num-test (imag-part 0.00000001+0.00000001i) 0.00000001) (num-test (imag-part 0.00000001+1234.0i) 1234.0) (num-test (imag-part 0.00000001-3.14159265358979i) -3.14159265358979) (num-test (imag-part 1) 0.0) (num-test (imag-part 1+i) 1.0) (num-test (imag-part 1-i) -1.0) (num-test (imag-part 1.0+1.0i) 1.0) (num-test (imag-part 1.0+1234000000.0i) 1234000000.0) (num-test (imag-part 1.0-0.0i) 0.0) (num-test (imag-part 1.0-2.71828182845905i) -2.71828182845905) (num-test (imag-part 1.4+0.0i) 0.0) (num-test (imag-part 1234.0+0.00000001i) 0.00000001) (num-test (imag-part 1234.0+1234.0i) 1234.0) (num-test (imag-part 1234.0-3.14159265358979i) -3.14159265358979) (num-test (imag-part 1234000000.0+1.0i) 1.0) (num-test (imag-part 1234000000.0+1234000000.0i) 1234000000.0) (num-test (imag-part 1234000000.0-0.0i) 0.0) (num-test (imag-part 1234000000.0-2.71828182845905i) -2.71828182845905) (num-test (imag-part 2.71828182845905+0.0i) 0.0) (num-test (imag-part 2.71828182845905+2.71828182845905i) 2.71828182845905) (num-test (imag-part 2.71828182845905-1.0i) -1.0) (num-test (imag-part 2.71828182845905-1234000000.0i) -1234000000.0) (num-test (imag-part 2/3) 0.0) (num-test (imag-part 3.14159265358979+3.14159265358979i) 3.14159265358979) (num-test (imag-part 3.14159265358979-0.00000001i) -0.00000001) (num-test (imag-part 3.14159265358979-1234.0i) -1234.0) (num-test (imag-part 5) 0.0) (num-test (imag-part -1.797693134862315699999999999999999999998E308) 0.0) (num-test (imag-part -2.225073858507201399999999999999999999996E-308) 0.0) (num-test (imag-part -9223372036854775808) 0) (num-test (imag-part 1.110223024625156799999999999999999999997E-16) 0.0) (num-test (imag-part 9223372036854775807) 0) (s7-test (imag-part inf.0) 0.0) (num-test (imag-part (+ 2 0.0+1/0i)) inf.0) (num-test (imag-part #i0/0+0i) 0.0) (num-test (imag-part 0+1e400i) 1e400) ;(num-test (imag-part 0+9223372036854775808.0i) 9223372036854775808.0) (num-test (imag-part 0+9223372036854775808i) 9223372036854775808) ;(num-test (imag-part 1.5+9223372036854775808.0i) 9.223372036854775808E18) (num-test (imag-part 3/2+9223372036854775808i) 9223372036854775808) ;(num-test (imag-part 9223372036854775808.0) 0) (num-test (imag-part 9223372036854775808) 0) (num-test (imag-part 9223372036854775808.0+1.5i) 1.5) (s7-test (imag-part "hi") 'error) (s7-test (imag-part 1.0+23.0i 1.0+23.0i) 'error) (s7-test (imag-part) 'error) (test-end "imag-part") ;;; -------------------------------------------------------------------------------- ;;; make-rectangular ;;; -------------------------------------------------------------------------------- (test-begin "make-rectangular") ;; Remember that s7 doesn't allow exact values in its complex numbers... (num-test (make-rectangular -0 -1) -0-1i) (num-test (make-rectangular -0 -10) -0-10i) (num-test (make-rectangular -0 -1234) -0-1234i) (num-test (make-rectangular -0 -1234000000) -0-1234000000i) (num-test (make-rectangular -0 -2) -0-2i) (num-test (make-rectangular -0 -3) -0-3i) (num-test (make-rectangular -0 -362880) -0-362880i) (num-test (make-rectangular -0 -500029) -0-500029i) (num-test (make-rectangular -0 1) -0+1i) (num-test (make-rectangular -0 10) -0+10i) (num-test (make-rectangular -0 1234) -0+1234i) (num-test (make-rectangular -0 1234000000) -0+1234000000i) (num-test (make-rectangular -0 2) -0+2i) (num-test (make-rectangular -0 3) -0+3i) (num-test (make-rectangular -0 362880) -0+362880i) (num-test (make-rectangular -0 500029) -0+500029i) (num-test (make-rectangular -0.0 -0.00000001) -0.0-0.00000001i) (num-test (make-rectangular -0.0 -1.0) -0.0-1.0i) (num-test (make-rectangular -0.0 -1234.0) -0.0-1234.0i) (num-test (make-rectangular -0.0 -1234000000.0) -0.0-1234000000.0i) (num-test (make-rectangular -0.0 -2.71828182845905) -0.0-2.71828182845905i) (num-test (make-rectangular -0.0 -3.14159265358979) -0.0-3.14159265358979i) (num-test (make-rectangular -0.0 0.00000001) -0.0+0.00000001i) (num-test (make-rectangular -0.0 1.0) -0.0+1.0i) (num-test (make-rectangular -0.0 1234.0) -0.0+1234.0i) (num-test (make-rectangular -0.0 1234000000.0) -0.0+1234000000.0i) (num-test (make-rectangular -0.0 2.71828182845905) -0.0+2.71828182845905i) (num-test (make-rectangular -0.0 pi) -0.0+3.14159265358979i) (num-test (make-rectangular -0.00000001 -0.00000001) -0.00000001-0.00000001i) (num-test (make-rectangular -0.00000001 -1.0) -0.00000001-1.0i) (num-test (make-rectangular -0.00000001 -1234.0) -0.00000001-1234.0i) (num-test (make-rectangular -0.00000001 -1234000000.0) -0.00000001-1234000000.0i) (num-test (make-rectangular -0.00000001 -2.71828182845905) -0.00000001-2.71828182845905i) (num-test (make-rectangular -0.00000001 -3.14159265358979) -0.00000001-3.14159265358979i) (num-test (make-rectangular -0.00000001 0.00000001) -0.00000001+0.00000001i) (num-test (make-rectangular -0.00000001 1.0) -0.00000001+1.0i) (num-test (make-rectangular -0.00000001 1234.0) -0.00000001+1234.0i) (num-test (make-rectangular -0.00000001 1234000000.0) -0.00000001+1234000000.0i) (num-test (make-rectangular -0.00000001 2.71828182845905) -0.00000001+2.71828182845905i) (num-test (make-rectangular -0.00000001 pi) -0.00000001+3.14159265358979i) (num-test (make-rectangular -1 -1) -1-1i) (num-test (make-rectangular -1 -10) -1-10i) (num-test (make-rectangular -1 -1234) -1-1234i) (num-test (make-rectangular -1 -1234000000) -1-1234000000i) (num-test (make-rectangular -1 -2) -1-2i) (num-test (make-rectangular -1 -3) -1-3i) (num-test (make-rectangular -1 -362880) -1-362880i) (num-test (make-rectangular -1 -500029) -1-500029i) (num-test (make-rectangular -1 1) -1+1i) (num-test (make-rectangular -1 10) -1+10i) (num-test (make-rectangular -1 1234) -1+1234i) (num-test (make-rectangular -1 1234000000) -1+1234000000i) (num-test (make-rectangular -1 2) -1+2i) (num-test (make-rectangular -1 3) -1+3i) (num-test (make-rectangular -1 362880) -1+362880i) (num-test (make-rectangular -1 500029) -1+500029i) (num-test (make-rectangular -1.0 -0.00000001) -1.0-0.00000001i) (num-test (make-rectangular -1.0 -1.0) -1.0-1.0i) (num-test (make-rectangular -1.0 -1234.0) -1.0-1234.0i) (num-test (make-rectangular -1.0 -1234000000.0) -1.0-1234000000.0i) (num-test (make-rectangular -1.0 -2.71828182845905) -1.0-2.71828182845905i) (num-test (make-rectangular -1.0 -3.14159265358979) -1.0-3.14159265358979i) (num-test (make-rectangular -1.0 0.00000001) -1.0+0.00000001i) (num-test (make-rectangular -1.0 1.0) -1.0+1.0i) (num-test (make-rectangular -1.0 1234.0) -1.0+1234.0i) (num-test (make-rectangular -1.0 1234000000.0) -1.0+1234000000.0i) (num-test (make-rectangular -1.0 2.71828182845905) -1.0+2.71828182845905i) (num-test (make-rectangular -1.0 pi) -1.0+3.14159265358979i) (num-test (make-rectangular -10 -1) -10-1i) (num-test (make-rectangular -10 -10) -10-10i) (num-test (make-rectangular -10 -1234) -10-1234i) (num-test (make-rectangular -10 -1234000000) -10-1234000000i) (num-test (make-rectangular -10 -2) -10-2i) (num-test (make-rectangular -10 -3) -10-3i) (num-test (make-rectangular -10 -362880) -10-362880i) (num-test (make-rectangular -10 -500029) -10-500029i) (num-test (make-rectangular -10 1) -10+1i) (num-test (make-rectangular -10 10) -10+10i) (num-test (make-rectangular -10 1234) -10+1234i) (num-test (make-rectangular -10 1234000000) -10+1234000000i) (num-test (make-rectangular -10 2) -10+2i) (num-test (make-rectangular -10 3) -10+3i) (num-test (make-rectangular -10 362880) -10+362880i) (num-test (make-rectangular -10 500029) -10+500029i) (num-test (make-rectangular -1234 -1) -1234-1i) (num-test (make-rectangular -1234 -10) -1234-10i) (num-test (make-rectangular -1234 -1234) -1234-1234i) (num-test (make-rectangular -1234 -1234000000) -1234-1234000000i) (num-test (make-rectangular -1234 -2) -1234-2i) (num-test (make-rectangular -1234 -3) -1234-3i) (num-test (make-rectangular -1234 -362880) -1234-362880i) (num-test (make-rectangular -1234 -500029) -1234-500029i) (num-test (make-rectangular -1234 1) -1234+1i) (num-test (make-rectangular -1234 10) -1234+10i) (num-test (make-rectangular -1234 1234) -1234+1234i) (num-test (make-rectangular -1234 1234000000) -1234+1234000000i) (num-test (make-rectangular -1234 2) -1234+2i) (num-test (make-rectangular -1234 3) -1234+3i) (num-test (make-rectangular -1234 362880) -1234+362880i) (num-test (make-rectangular -1234 500029) -1234+500029i) (num-test (make-rectangular -1234.0 -0.00000001) -1234.0-0.00000001i) (num-test (make-rectangular -1234.0 -1.0) -1234.0-1.0i) (num-test (make-rectangular -1234.0 -1234.0) -1234.0-1234.0i) (num-test (make-rectangular -1234.0 -1234000000.0) -1234.0-1234000000.0i) (num-test (make-rectangular -1234.0 -2.71828182845905) -1234.0-2.71828182845905i) (num-test (make-rectangular -1234.0 -3.14159265358979) -1234.0-3.14159265358979i) (num-test (make-rectangular -1234.0 0.00000001) -1234.0+0.00000001i) (num-test (make-rectangular -1234.0 1.0) -1234.0+1.0i) (num-test (make-rectangular -1234.0 1234.0) -1234.0+1234.0i) (num-test (make-rectangular -1234.0 1234000000.0) -1234.0+1234000000.0i) (num-test (make-rectangular -1234.0 2.71828182845905) -1234.0+2.71828182845905i) (num-test (make-rectangular -1234.0 pi) -1234.0+3.14159265358979i) (num-test (make-rectangular -1234000000 -1) -1234000000-1i) (num-test (make-rectangular -1234000000 -10) -1234000000-10i) (num-test (make-rectangular -1234000000 -1234) -1234000000-1234i) (num-test (make-rectangular -1234000000 -1234000000) -1234000000-1234000000i) (num-test (make-rectangular -1234000000 -2) -1234000000-2i) (num-test (make-rectangular -1234000000 -3) -1234000000-3i) (num-test (make-rectangular -1234000000 -362880) -1234000000-362880i) (num-test (make-rectangular -1234000000 -500029) -1234000000-500029i) (num-test (make-rectangular -1234000000 1) -1234000000+1i) (num-test (make-rectangular -1234000000 10) -1234000000+10i) (num-test (make-rectangular -1234000000 1234) -1234000000+1234i) (num-test (make-rectangular -1234000000 1234000000) -1234000000+1234000000i) (num-test (make-rectangular -1234000000 2) -1234000000+2i) (num-test (make-rectangular -1234000000 3) -1234000000+3i) (num-test (make-rectangular -1234000000 362880) -1234000000+362880i) (num-test (make-rectangular -1234000000 500029) -1234000000+500029i) (num-test (make-rectangular -1234000000 -00000001) -1234000000-00000001i) (num-test (make-rectangular -1234000000 -1) -1234000000-1i) (num-test (make-rectangular -1234000000 -1234) -1234000000-1234i) (num-test (make-rectangular -1234000000 -1234000000) -1234000000-1234000000i) (num-test (make-rectangular -1234000000 -2.71828182845905) -1234000000-2.71828182845905i) (num-test (make-rectangular -1234000000 -3.14159265358979) -1234000000-3.14159265358979i) (num-test (make-rectangular -1234000000 00000001) -1234000000+00000001i) (num-test (make-rectangular -1234000000 1) -1234000000+1i) (num-test (make-rectangular -1234000000 1234) -1234000000+1234i) (num-test (make-rectangular -1234000000 1234000000) -1234000000+1234000000i) (num-test (make-rectangular -1234000000 2.71828182845905) -1234000000+2.71828182845905i) (num-test (make-rectangular -1234000000 pi) -1234000000+3.14159265358979i) (num-test (make-rectangular -2 -1) -2-1i) (num-test (make-rectangular -2 -10) -2-10i) (num-test (make-rectangular -2 -1234) -2-1234i) (num-test (make-rectangular -2 -1234000000) -2-1234000000i) (num-test (make-rectangular -2 -2) -2-2i) (num-test (make-rectangular -2 -3) -2-3i) (num-test (make-rectangular -2 -362880) -2-362880i) (num-test (make-rectangular -2 -500029) -2-500029i) (num-test (make-rectangular -2 1) -2+1i) (num-test (make-rectangular -2 10) -2+10i) (num-test (make-rectangular -2 1234) -2+1234i) (num-test (make-rectangular -2 1234000000) -2+1234000000i) (num-test (make-rectangular -2 2) -2+2i) (num-test (make-rectangular -2 3) -2+3i) (num-test (make-rectangular -2 362880) -2+362880i) (num-test (make-rectangular -2 500029) -2+500029i) (num-test (make-rectangular -2.71828182845905 -0.00000001) -2.71828182845905-0.00000001i) (num-test (make-rectangular -2.71828182845905 -1.0) -2.71828182845905-1.0i) (num-test (make-rectangular -2.71828182845905 -1234.0) -2.71828182845905-1234.0i) (num-test (make-rectangular -2.71828182845905 -1234000000.0) -2.71828182845905-1234000000.0i) (num-test (make-rectangular -2.71828182845905 -2.71828182845905) -2.71828182845905-2.71828182845905i) (num-test (make-rectangular -2.71828182845905 -3.14159265358979) -2.71828182845905-3.14159265358979i) (num-test (make-rectangular -2.71828182845905 0.00000001) -2.71828182845905+0.00000001i) (num-test (make-rectangular -2.71828182845905 1.0) -2.71828182845905+1.0i) (num-test (make-rectangular -2.71828182845905 1234.0) -2.71828182845905+1234.0i) (num-test (make-rectangular -2.71828182845905 1234000000.0) -2.71828182845905+1234000000.0i) (num-test (make-rectangular -2.71828182845905 2.71828182845905) -2.71828182845905+2.71828182845905i) (num-test (make-rectangular -2.71828182845905 pi) -2.71828182845905+3.14159265358979i) (num-test (make-rectangular -3 -1) -3-1i) (num-test (make-rectangular -3 -10) -3-10i) (num-test (make-rectangular -3 -1234) -3-1234i) (num-test (make-rectangular -3 -1234000000) -3-1234000000i) (num-test (make-rectangular -3 -2) -3-2i) (num-test (make-rectangular -3 -3) -3-3i) (num-test (make-rectangular -3 -362880) -3-362880i) (num-test (make-rectangular -3 -500029) -3-500029i) (num-test (make-rectangular -3 1) -3+1i) (num-test (make-rectangular -3 10) -3+10i) (num-test (make-rectangular -3 1234) -3+1234i) (num-test (make-rectangular -3 1234000000) -3+1234000000i) (num-test (make-rectangular -3 2) -3+2i) (num-test (make-rectangular -3 3) -3+3i) (num-test (make-rectangular -3 362880) -3+362880i) (num-test (make-rectangular -3 500029) -3+500029i) (num-test (make-rectangular -3.14159265358979 -0.00000001) -3.14159265358979-0.00000001i) (num-test (make-rectangular -3.14159265358979 -1.0) -3.14159265358979-1.0i) (num-test (make-rectangular -3.14159265358979 -1234.0) -3.14159265358979-1234.0i) (num-test (make-rectangular -3.14159265358979 -1234000000.0) -3.14159265358979-1234000000.0i) (num-test (make-rectangular -3.14159265358979 -2.71828182845905) -3.14159265358979-2.71828182845905i) (num-test (make-rectangular -3.14159265358979 -3.14159265358979) -3.14159265358979-3.14159265358979i) (num-test (make-rectangular -3.14159265358979 0.00000001) -3.14159265358979+0.00000001i) (num-test (make-rectangular -3.14159265358979 1.0) -3.14159265358979+1.0i) (num-test (make-rectangular -3.14159265358979 1234.0) -3.14159265358979+1234.0i) (num-test (make-rectangular -3.14159265358979 1234000000.0) -3.14159265358979+1234000000.0i) (num-test (make-rectangular -3.14159265358979 2.71828182845905) -3.14159265358979+2.71828182845905i) (num-test (make-rectangular -3.14159265358979 pi) -3.14159265358979+3.14159265358979i) (num-test (make-rectangular -362880 -1) -362880-1i) (num-test (make-rectangular -362880 -10) -362880-10i) (num-test (make-rectangular -362880 -1234) -362880-1234i) (num-test (make-rectangular -362880 -1234000000) -362880-1234000000i) (num-test (make-rectangular -362880 -2) -362880-2i) (num-test (make-rectangular -362880 -3) -362880-3i) (num-test (make-rectangular -362880 -362880) -362880-362880i) (num-test (make-rectangular -362880 -500029) -362880-500029i) (num-test (make-rectangular -362880 1) -362880+1i) (num-test (make-rectangular -362880 10) -362880+10i) (num-test (make-rectangular -362880 1234) -362880+1234i) (num-test (make-rectangular -362880 1234000000) -362880+1234000000i) (num-test (make-rectangular -362880 2) -362880+2i) (num-test (make-rectangular -362880 3) -362880+3i) (num-test (make-rectangular -362880 362880) -362880+362880i) (num-test (make-rectangular -362880 500029) -362880+500029i) (num-test (make-rectangular -500029 -1) -500029-1i) (num-test (make-rectangular -500029 -10) -500029-10i) (num-test (make-rectangular -500029 -1234) -500029-1234i) (num-test (make-rectangular -500029 -1234000000) -500029-1234000000i) (num-test (make-rectangular -500029 -2) -500029-2i) (num-test (make-rectangular -500029 -3) -500029-3i) (num-test (make-rectangular -500029 -362880) -500029-362880i) (num-test (make-rectangular -500029 -500029) -500029-500029i) (num-test (make-rectangular -500029 1) -500029+1i) (num-test (make-rectangular -500029 10) -500029+10i) (num-test (make-rectangular -500029 1234) -500029+1234i) (num-test (make-rectangular -500029 1234000000) -500029+1234000000i) (num-test (make-rectangular -500029 2) -500029+2i) (num-test (make-rectangular -500029 3) -500029+3i) (num-test (make-rectangular -500029 362880) -500029+362880i) (num-test (make-rectangular -500029 500029) -500029+500029i) (num-test (make-rectangular 0 -1) 0-1i) (num-test (make-rectangular 0 -10) 0-10i) (num-test (make-rectangular 0 -1234) 0-1234i) (num-test (make-rectangular 0 -1234000000) 0-1234000000i) (num-test (make-rectangular 0 -2) 0-2i) (num-test (make-rectangular 0 -3) 0-3i) (num-test (make-rectangular 0 -362880) 0-362880i) (num-test (make-rectangular 0 -500029) 0-500029i) (num-test (make-rectangular 0 0) 0) (num-test (make-rectangular 0 1) 0+1i) (num-test (make-rectangular 0 10) 0+10i) (num-test (make-rectangular 0 1234) 0+1234i) (num-test (make-rectangular 0 1234000000) 0+1234000000i) (num-test (make-rectangular 0 2) 0+2i) (num-test (make-rectangular 0 3) 0+3i) (num-test (make-rectangular 0 362880) 0+362880i) (num-test (make-rectangular 0 500029) 0+500029i) (num-test (make-rectangular 0.0 -0.00000001) 0.0-0.00000001i) (num-test (make-rectangular 0.0 -1.0) 0.0-1.0i) (num-test (make-rectangular 0.0 -1234.0) 0.0-1234.0i) (num-test (make-rectangular 0.0 -1234000000.0) 0.0-1234000000.0i) (num-test (make-rectangular 0.0 -2.71828182845905) 0.0-2.71828182845905i) (num-test (make-rectangular 0.0 -3.14159265358979) 0.0-3.14159265358979i) (num-test (make-rectangular 0.0 0.0) 0.0) (num-test (make-rectangular 0.0 0.00000001) 0.0+0.00000001i) (num-test (make-rectangular 0.0 1.0) 0.0+1.0i) (num-test (make-rectangular 0.0 1234.0) 0.0+1234.0i) (num-test (make-rectangular 0.0 1234000000.0) 0.0+1234000000.0i) (num-test (make-rectangular 0.0 2.71828182845905) 0.0+2.71828182845905i) (num-test (make-rectangular 0.0 pi) 0.0+3.14159265358979i) (num-test (make-rectangular 0.00000001 -0.00000001) 0.00000001-0.00000001i) (num-test (make-rectangular 0.00000001 -1.0) 0.00000001-1.0i) (num-test (make-rectangular 0.00000001 -1234.0) 0.00000001-1234.0i) (num-test (make-rectangular 0.00000001 -1234000000.0) 0.00000001-1234000000.0i) (num-test (make-rectangular 0.00000001 -2.71828182845905) 0.00000001-2.71828182845905i) (num-test (make-rectangular 0.00000001 -3.14159265358979) 0.00000001-3.14159265358979i) (num-test (make-rectangular 0.00000001 0.00000001) 0.00000001+0.00000001i) (num-test (make-rectangular 0.00000001 1.0) 0.00000001+1.0i) (num-test (make-rectangular 0.00000001 1234.0) 0.00000001+1234.0i) (num-test (make-rectangular 0.00000001 1234000000.0) 0.00000001+1234000000.0i) (num-test (make-rectangular 0.00000001 2.71828182845905) 0.00000001+2.71828182845905i) (num-test (make-rectangular 0.00000001 pi) 0.00000001+3.14159265358979i) (num-test (make-rectangular 1 -1) 1-1i) (num-test (make-rectangular 1 -10) 1-10i) (num-test (make-rectangular 1 -1234) 1-1234i) (num-test (make-rectangular 1 -1234000000) 1-1234000000i) (num-test (make-rectangular 1 -2) 1-2i) (num-test (make-rectangular 1 -3) 1-3i) (num-test (make-rectangular 1 -362880) 1-362880i) (num-test (make-rectangular 1 -500029) 1-500029i) (num-test (make-rectangular 1 1) 1+1i) (num-test (make-rectangular 1 10) 1+10i) (num-test (make-rectangular 1 1234) 1+1234i) (num-test (make-rectangular 1 1234000000) 1+1234000000i) (num-test (make-rectangular 1 2) 1+2i) (num-test (make-rectangular 1 3) 1+3i) (num-test (make-rectangular 1 362880) 1+362880i) (num-test (make-rectangular 1 500029) 1+500029i) (num-test (make-rectangular 1.0 -0.00000001) 1.0-0.00000001i) (num-test (make-rectangular 1.0 -1.0) 1.0-1.0i) (num-test (make-rectangular 1.0 -1234.0) 1.0-1234.0i) (num-test (make-rectangular 1.0 -1234000000.0) 1.0-1234000000.0i) (num-test (make-rectangular 1.0 -2.71828182845905) 1.0-2.71828182845905i) (num-test (make-rectangular 1.0 -3.14159265358979) 1.0-3.14159265358979i) (num-test (make-rectangular 1.0 0.00000001) 1.0+0.00000001i) (num-test (make-rectangular 1.0 1.0) 1.0+1.0i) (num-test (make-rectangular 1.0 1234.0) 1.0+1234.0i) (num-test (make-rectangular 1.0 1234000000.0) 1.0+1234000000.0i) (num-test (make-rectangular 1.0 2.71828182845905) 1.0+2.71828182845905i) (num-test (make-rectangular 1.0 pi) 1.0+3.14159265358979i) (num-test (make-rectangular 10 -1) 10-1i) (num-test (make-rectangular 10 -10) 10-10i) (num-test (make-rectangular 10 -1234) 10-1234i) (num-test (make-rectangular 10 -1234000000) 10-1234000000i) (num-test (make-rectangular 10 -2) 10-2i) (num-test (make-rectangular 10 -3) 10-3i) (num-test (make-rectangular 10 -362880) 10-362880i) (num-test (make-rectangular 10 -500029) 10-500029i) (num-test (make-rectangular 10 1) 10+1i) (num-test (make-rectangular 10 10) 10+10i) (num-test (make-rectangular 10 1234) 10+1234i) (num-test (make-rectangular 10 1234000000) 10+1234000000i) (num-test (make-rectangular 10 2) 10+2i) (num-test (make-rectangular 10 3) 10+3i) (num-test (make-rectangular 10 362880) 10+362880i) (num-test (make-rectangular 10 500029) 10+500029i) (num-test (make-rectangular 1234 -1) 1234-1i) (num-test (make-rectangular 1234 -10) 1234-10i) (num-test (make-rectangular 1234 -1234) 1234-1234i) (num-test (make-rectangular 1234 -1234000000) 1234-1234000000i) (num-test (make-rectangular 1234 -2) 1234-2i) (num-test (make-rectangular 1234 -3) 1234-3i) (num-test (make-rectangular 1234 -362880) 1234-362880i) (num-test (make-rectangular 1234 -500029) 1234-500029i) (num-test (make-rectangular 1234 1) 1234+1i) (num-test (make-rectangular 1234 10) 1234+10i) (num-test (make-rectangular 1234 1234) 1234+1234i) (num-test (make-rectangular 1234 1234000000) 1234+1234000000i) (num-test (make-rectangular 1234 2) 1234+2i) (num-test (make-rectangular 1234 3) 1234+3i) (num-test (make-rectangular 1234 362880) 1234+362880i) (num-test (make-rectangular 1234 500029) 1234+500029i) (num-test (make-rectangular 1234.0 -0.00000001) 1234.0-0.00000001i) (num-test (make-rectangular 1234.0 -1.0) 1234.0-1.0i) (num-test (make-rectangular 1234.0 -1234.0) 1234.0-1234.0i) (num-test (make-rectangular 1234.0 -1234000000.0) 1234.0-1234000000.0i) (num-test (make-rectangular 1234.0 -2.71828182845905) 1234.0-2.71828182845905i) (num-test (make-rectangular 1234.0 -3.14159265358979) 1234.0-3.14159265358979i) (num-test (make-rectangular 1234.0 0.00000001) 1234.0+0.00000001i) (num-test (make-rectangular 1234.0 1.0) 1234.0+1.0i) (num-test (make-rectangular 1234.0 1234.0) 1234.0+1234.0i) (num-test (make-rectangular 1234.0 1234000000.0) 1234.0+1234000000.0i) (num-test (make-rectangular 1234.0 2.71828182845905) 1234.0+2.71828182845905i) (num-test (make-rectangular 1234.0 pi) 1234.0+3.14159265358979i) (num-test (make-rectangular 1234000000 -1) 1234000000-1i) (num-test (make-rectangular 1234000000 -10) 1234000000-10i) (num-test (make-rectangular 1234000000 -1234) 1234000000-1234i) (num-test (make-rectangular 1234000000 -1234000000) 1234000000-1234000000i) (num-test (make-rectangular 1234000000 -2) 1234000000-2i) (num-test (make-rectangular 1234000000 -3) 1234000000-3i) (num-test (make-rectangular 1234000000 -362880) 1234000000-362880i) (num-test (make-rectangular 1234000000 -500029) 1234000000-500029i) (num-test (make-rectangular 1234000000 1) 1234000000+1i) (num-test (make-rectangular 1234000000 10) 1234000000+10i) (num-test (make-rectangular 1234000000 1234) 1234000000+1234i) (num-test (make-rectangular 1234000000 1234000000) 1234000000+1234000000i) (num-test (make-rectangular 1234000000 2) 1234000000+2i) (num-test (make-rectangular 1234000000 3) 1234000000+3i) (num-test (make-rectangular 1234000000 362880) 1234000000+362880i) (num-test (make-rectangular 1234000000 500029) 1234000000+500029i) (num-test (make-rectangular 1234000000.0 -0.00000001) 1234000000.0-0.00000001i) (num-test (make-rectangular 1234000000.0 -1.0) 1234000000.0-1.0i) (num-test (make-rectangular 1234000000.0 -1234.0) 1234000000.0-1234.0i) (num-test (make-rectangular 1234000000.0 -1234000000.0) 1234000000.0-1234000000.0i) (num-test (make-rectangular 1234000000.0 -2.71828182845905) 1234000000.0-2.71828182845905i) (num-test (make-rectangular 1234000000.0 -3.14159265358979) 1234000000.0-3.14159265358979i) (num-test (make-rectangular 1234000000.0 0.00000001) 1234000000.0+0.00000001i) (num-test (make-rectangular 1234000000.0 1.0) 1234000000.0+1.0i) (num-test (make-rectangular 1234000000.0 1234.0) 1234000000.0+1234.0i) (num-test (make-rectangular 1234000000.0 1234000000.0) 1234000000.0+1234000000.0i) (num-test (make-rectangular 1234000000.0 2.71828182845905) 1234000000.0+2.71828182845905i) (num-test (make-rectangular 1234000000.0 pi) 1234000000.0+3.14159265358979i) (num-test (make-rectangular 2 -1) 2-1i) (num-test (make-rectangular 2 -10) 2-10i) (num-test (make-rectangular 2 -1234) 2-1234i) (num-test (make-rectangular 2 -1234000000) 2-1234000000i) (num-test (make-rectangular 2 -2) 2-2i) (num-test (make-rectangular 2 -3) 2-3i) (num-test (make-rectangular 2 -362880) 2-362880i) (num-test (make-rectangular 2 -500029) 2-500029i) (num-test (make-rectangular 2 1) 2+1i) (num-test (make-rectangular 2 10) 2+10i) (num-test (make-rectangular 2 1234) 2+1234i) (num-test (make-rectangular 2 1234000000) 2+1234000000i) (num-test (make-rectangular 2 2) 2+2i) (num-test (make-rectangular 2 3) 2+3i) (num-test (make-rectangular 2 362880) 2+362880i) (num-test (make-rectangular 2 500029) 2+500029i) (num-test (make-rectangular 2.71828182845905 -0.00000001) 2.71828182845905-0.00000001i) (num-test (make-rectangular 2.71828182845905 -1.0) 2.71828182845905-1.0i) (num-test (make-rectangular 2.71828182845905 -1234.0) 2.71828182845905-1234.0i) (num-test (make-rectangular 2.71828182845905 -1234000000.0) 2.71828182845905-1234000000.0i) (num-test (make-rectangular 2.71828182845905 -2.71828182845905) 2.71828182845905-2.71828182845905i) (num-test (make-rectangular 2.71828182845905 -3.14159265358979) 2.71828182845905-3.14159265358979i) (num-test (make-rectangular 2.71828182845905 0.00000001) 2.71828182845905+0.00000001i) (num-test (make-rectangular 2.71828182845905 1.0) 2.71828182845905+1.0i) (num-test (make-rectangular 2.71828182845905 1234.0) 2.71828182845905+1234.0i) (num-test (make-rectangular 2.71828182845905 1234000000.0) 2.71828182845905+1234000000.0i) (num-test (make-rectangular 2.71828182845905 2.71828182845905) 2.71828182845905+2.71828182845905i) (num-test (make-rectangular 2.71828182845905 pi) 2.71828182845905+3.14159265358979i) (num-test (make-rectangular 3 -1) 3-1i) (num-test (make-rectangular 3 -10) 3-10i) (num-test (make-rectangular 3 -1234) 3-1234i) (num-test (make-rectangular 3 -1234000000) 3-1234000000i) (num-test (make-rectangular 3 -2) 3-2i) (num-test (make-rectangular 3 -3) 3-3i) (num-test (make-rectangular 3 -362880) 3-362880i) (num-test (make-rectangular 3 -500029) 3-500029i) (num-test (make-rectangular 3 1) 3+1i) (num-test (make-rectangular 3 10) 3+10i) (num-test (make-rectangular 3 1234) 3+1234i) (num-test (make-rectangular 3 1234000000) 3+1234000000i) (num-test (make-rectangular 3 2) 3+2i) (num-test (make-rectangular 3 3) 3+3i) (num-test (make-rectangular 3 362880) 3+362880i) (num-test (make-rectangular 3 500029) 3+500029i) (num-test (make-rectangular 3.14159265358979 -0.00000001) 3.14159265358979-0.00000001i) (num-test (make-rectangular 3.14159265358979 -1.0) 3.14159265358979-1.0i) (num-test (make-rectangular 3.14159265358979 -1234.0) 3.14159265358979-1234.0i) (num-test (make-rectangular 3.14159265358979 -1234000000.0) 3.14159265358979-1234000000.0i) (num-test (make-rectangular 3.14159265358979 -2.71828182845905) 3.14159265358979-2.71828182845905i) (num-test (make-rectangular 3.14159265358979 -3.14159265358979) 3.14159265358979-3.14159265358979i) (num-test (make-rectangular 3.14159265358979 0.00000001) 3.14159265358979+0.00000001i) (num-test (make-rectangular 3.14159265358979 1.0) 3.14159265358979+1.0i) (num-test (make-rectangular 3.14159265358979 1234.0) 3.14159265358979+1234.0i) (num-test (make-rectangular 3.14159265358979 1234000000.0) 3.14159265358979+1234000000.0i) (num-test (make-rectangular 3.14159265358979 2.71828182845905) 3.14159265358979+2.71828182845905i) (num-test (make-rectangular 3.14159265358979 pi) 3.14159265358979+3.14159265358979i) (num-test (make-rectangular 362880 -1) 362880-1i) (num-test (make-rectangular 362880 -10) 362880-10i) (num-test (make-rectangular 362880 -1234) 362880-1234i) (num-test (make-rectangular 362880 -1234000000) 362880-1234000000i) (num-test (make-rectangular 362880 -2) 362880-2i) (num-test (make-rectangular 362880 -3) 362880-3i) (num-test (make-rectangular 362880 -362880) 362880-362880i) (num-test (make-rectangular 362880 -500029) 362880-500029i) (num-test (make-rectangular 362880 1) 362880+1i) (num-test (make-rectangular 362880 10) 362880+10i) (num-test (make-rectangular 362880 1234) 362880+1234i) (num-test (make-rectangular 362880 1234000000) 362880+1234000000i) (num-test (make-rectangular 362880 2) 362880+2i) (num-test (make-rectangular 362880 3) 362880+3i) (num-test (make-rectangular 362880 362880) 362880+362880i) (num-test (make-rectangular 362880 500029) 362880+500029i) (num-test (make-rectangular 500029 -1) 500029-1i) (num-test (make-rectangular 500029 -10) 500029-10i) (num-test (make-rectangular 500029 -1234) 500029-1234i) (num-test (make-rectangular 500029 -1234000000) 500029-1234000000i) (num-test (make-rectangular 500029 -2) 500029-2i) (num-test (make-rectangular 500029 -3) 500029-3i) (num-test (make-rectangular 500029 -362880) 500029-362880i) (num-test (make-rectangular 500029 -500029) 500029-500029i) (num-test (make-rectangular 500029 1) 500029+1i) (num-test (make-rectangular 500029 10) 500029+10i) (num-test (make-rectangular 500029 1234) 500029+1234i) (num-test (make-rectangular 500029 1234000000) 500029+1234000000i) (num-test (make-rectangular 500029 2) 500029+2i) (num-test (make-rectangular 500029 3) 500029+3i) (num-test (make-rectangular 500029 362880) 500029+362880i) (num-test (make-rectangular 500029 500029) 500029+500029i) (num-test (make-rectangular 1/2 0) 1/2) (num-test (make-rectangular 1/2 1/2) 1/2+1/2i) (num-test (make-rectangular 0 1/2) 0+1/2i) (s7-test (nan? (make-rectangular nan.0 nan.0)) #t) (s7-test (nan? (make-rectangular nan.0 inf.0)) #t) (s7-test (nan? (make-rectangular (string->number "#i0/0") 0)) #t) (s7-test (nan? (make-rectangular 0 (string->number "#i0/0"))) #t) ;(num-test (make-rectangular 0 (* 2 most-positive-fixnum)) 0.0+1.8446744073709551614E19i) ;(num-test (- (make-rectangular 2e20 (* 2 most-positive-fixnum)) 0+1.8446744073709551614E19i) 2e20) ;(num-test (- (make-rectangular #e2e20 (* 2 most-positive-fixnum)) #e0+1.8446744073709551614E19i) #e2e20) ;(num-test (imag-part (make-rectangular 1.0 1180591620717411303424/717897987691852588770249)) 1.644511672909387396372163624382128338027E-3) ;(s7-test (make-rectangular 0.0 0+92233720368547758081.0i) 'error) (s7-test (make-rectangular 0 0+0/0i) 'error) (s7-test (make-rectangular 0+0/0i 0) 'error) (s7-test (make-rectangular 1.23 1.23 1.23) 'error) (s7-test (make-rectangular 1.23) 'error) (s7-test (make-rectangular 1.23+1.0i 1.23+1.0i) 'error) (s7-test (make-rectangular) 'error) (s7-test (make-rectangular 1.0 1.0+0.1i) 'error) (s7-test (make-rectangular 1.0+0.1i 1.0) 'error) (for-each (lambda (x) (s7-test (make-rectangular x 0-i) 'error)) (list 0 1 1/2 1.0 0.0 0+i)) (for-each (lambda (x) (s7-test (make-rectangular 0-i x) 'error)) (list 0 1 pi (- pi) 1/2 0.0 1.0 0+i)) (test-end "make-rectangular") ;;; -------------------------------------------------------------------------------- ;;; make-polar ;;; -------------------------------------------------------------------------------- (test-begin "make-polar") ;; s7 does pass exact values even though it can't represent compnums exactly (num-test (make-polar -0 -1) 0.0) (num-test (make-polar -0 -10) 0.0) (num-test (make-polar -0 -1234) 0.0) (num-test (make-polar -0 -1234000000) 0.0) (num-test (make-polar -0 -2) 0.0) (num-test (make-polar -0 -3) 0.0) (num-test (make-polar -0 -362880) 0.0) (num-test (make-polar -0 -500029) 0.0) (num-test (make-polar -0 1) 0.0) (num-test (make-polar -0 10) 0.0) (num-test (make-polar -0 1234) 0.0) (num-test (make-polar -0 1234000000) 0.0) (num-test (make-polar -0 2) 0.0) (num-test (make-polar -0 3) 0.0) (num-test (make-polar -0 362880) 0.0) (num-test (make-polar -0 500029) 0.0) (num-test (make-polar -0.0 -0.00000001) 0.0) (num-test (make-polar -0.0 -1.0) 0.0) (num-test (make-polar -0.0 -1234.0) 0.0) (num-test (make-polar -0.0 -1234000000.0) 0.0) (num-test (make-polar -0.0 -2.71828182845905) 0.0) (num-test (make-polar -0.0 -3.14159265358979) 0.0) (num-test (make-polar -0.0 0.00000001) 0.0) (num-test (make-polar -0.0 1.0) 0.0) (num-test (make-polar -0.0 1234.0) 0.0) (num-test (make-polar -0.0 1234000000.0) 0.0) (num-test (make-polar -0.0 2.71828182845905) 0.0) (num-test (make-polar -0.0 pi) 0.0) (num-test (make-polar -0.00000001 -0.00000001) -0.00000001+1e-16i) (num-test (make-polar -0.00000001 -1.0) -0.00000000540302+0.00000000841471i) (num-test (make-polar -0.00000001 -1234.0) 0.00000000798551+0.00000000601928i) (num-test (make-polar -0.00000001 -1234000000.0) -0.00000000158909-0.00000000987293i) (num-test (make-polar -0.00000001 -2.71828182845905) 0.00000000911734+0.00000000410781i) (num-test (make-polar -0.00000001 (- pi)) 0.00000001) (num-test (make-polar -0.00000001 0.00000001) -0.00000001-1e-16i) (num-test (make-polar -0.00000001 1.0) -0.00000000540302-0.00000000841471i) (num-test (make-polar -0.00000001 1234.0) 0.00000000798551-0.00000000601928i) (num-test (make-polar -0.00000001 1234000000.0) -0.00000000158909+0.00000000987293i) (num-test (make-polar -0.00000001 2.71828182845905) 0.00000000911734-0.00000000410781i) (num-test (make-polar -0.00000001 pi) 0.00000001-0.0i) (num-test (make-polar -1 -1) -0.54030230586814+0.84147098480790i) (num-test (make-polar -1 -10) 0.83907152907645-0.54402111088937i) (num-test (make-polar -1 -1234) 0.79855062358758+0.60192765476250i) (num-test (make-polar -1 -1234000000) -0.15890913095152-0.98729321283003i) (num-test (make-polar -1 -2) 0.41614683654714+0.90929742682568i) (num-test (make-polar -1 -3) 0.98999249660045+0.14112000805987i) (num-test (make-polar -1 -362880) -0.60918079547638+0.79303137291204i) (num-test (make-polar -1 -500029) -0.85414905629947+0.52002825848479i) (num-test (make-polar -1 1) -0.54030230586814-0.84147098480790i) (num-test (make-polar -1 10) 0.83907152907645+0.54402111088937i) (num-test (make-polar -1 1234) 0.79855062358758-0.60192765476250i) (num-test (make-polar -1 1234000000) -0.15890913095152+0.98729321283003i) (num-test (make-polar -1 2) 0.41614683654714-0.90929742682568i) (num-test (make-polar -1 3) 0.98999249660045-0.14112000805987i) (num-test (make-polar -1 362880) -0.60918079547638-0.79303137291204i) (num-test (make-polar -1 500029) -0.85414905629947-0.52002825848479i) (num-test (make-polar -1.0 -0.00000001) -1.0+0.00000001i) (num-test (make-polar -1.0 -1.0) -0.54030230586814+0.84147098480790i) (num-test (make-polar -1.0 -1234.0) 0.79855062358758+0.60192765476250i) (num-test (make-polar -1.0 -1234000000.0) -0.15890913095152-0.98729321283003i) (num-test (make-polar -1.0 -2.71828182845905) 0.91173391478697+0.41078129050291i) (num-test (make-polar -1.0 (- pi)) 1.0) (num-test (make-polar -1.0 0.00000001) -1.0-0.00000001i) (num-test (make-polar -1.0 1.0) -0.54030230586814-0.84147098480790i) (num-test (make-polar -1.0 1234.0) 0.79855062358758-0.60192765476250i) (num-test (make-polar -1.0 1234000000.0) -0.15890913095152+0.98729321283003i) (num-test (make-polar -1.0 2.71828182845905) 0.91173391478697-0.41078129050291i) (num-test (make-polar -1.0 pi) 1.0-0.0i) (num-test (make-polar -10 -1) -5.40302305868140+8.41470984807897i) (num-test (make-polar -10 -10) 8.39071529076452-5.44021110889370i) (num-test (make-polar -10 -1234) 7.98550623587584+6.01927654762497i) (num-test (make-polar -10 -1234000000) -1.58909130951517-9.87293212830025i) (num-test (make-polar -10 -2) 4.16146836547142+9.09297426825682i) (num-test (make-polar -10 -3) 9.89992496600445+1.41120008059867i) (num-test (make-polar -10 -362880) -6.09180795476385+7.93031372912042i) (num-test (make-polar -10 -500029) -8.54149056299473+5.20028258484786i) (num-test (make-polar -10 1) -5.40302305868140-8.41470984807897i) (num-test (make-polar -10 10) 8.39071529076452+5.44021110889370i) (num-test (make-polar -10 1234) 7.98550623587584-6.01927654762497i) (num-test (make-polar -10 1234000000) -1.58909130951517+9.87293212830025i) (num-test (make-polar -10 2) 4.16146836547142-9.09297426825682i) (num-test (make-polar -10 3) 9.89992496600445-1.41120008059867i) (num-test (make-polar -10 362880) -6.09180795476385-7.93031372912042i) (num-test (make-polar -10 500029) -8.54149056299473-5.20028258484786i) (num-test (make-polar -1234 -1) -666.73304544128450+1038.37519525294420i) (num-test (make-polar -1234 -10) 1035.41426688034221-671.32205083748227i) (num-test (make-polar -1234 -1234) 985.41146950707912+742.77872597692169i) (num-test (make-polar -1234 -1234000000) -196.09386759417183-1218.31982463225131i) (num-test (make-polar -1234 -2) 513.52519629917379+1122.07302470289119i) (num-test (make-polar -1234 -3) 1221.65074080494969+174.14208994587614i) (num-test (make-polar -1234 -362880) -751.72910161785899+978.60071417346035i) (num-test (make-polar -1234 -500029) -1054.01993547355005+641.71487097022577i) (num-test (make-polar -1234 1) -666.73304544128450-1038.37519525294420i) (num-test (make-polar -1234 10) 1035.41426688034221+671.32205083748227i) (num-test (make-polar -1234 1234) 985.41146950707912-742.77872597692169i) (num-test (make-polar -1234 1234000000) -196.09386759417183+1218.31982463225131i) (num-test (make-polar -1234 2) 513.52519629917379-1122.07302470289119i) (num-test (make-polar -1234 3) 1221.65074080494969-174.14208994587614i) (num-test (make-polar -1234 362880) -751.72910161785899-978.60071417346035i) (num-test (make-polar -1234 500029) -1054.01993547355005-641.71487097022577i) (num-test (make-polar -1234.0 -0.00000001) -1234.0+0.00001234000000i) (num-test (make-polar -1234.0 -1.0) -666.73304544128450+1038.37519525294420i) (num-test (make-polar -1234.0 -1234.0) 985.41146950707912+742.77872597692169i) (num-test (make-polar -1234.0 -1234000000.0) -196.09386759417183-1218.31982463225131i) (num-test (make-polar -1234.0 -2.71828182845905) 1125.07965084711486+506.90411248058950i) (num-test (make-polar -1234.0 (- pi)) 1234.0+0.00000000000015i) (num-test (make-polar -1234.0 0.00000001) -1234.0-0.00001234000000i) (num-test (make-polar -1234.0 1.0) -666.73304544128450-1038.37519525294420i) (num-test (make-polar -1234.0 1234.0) 985.41146950707912-742.77872597692169i) (num-test (make-polar -1234.0 1234000000.0) -196.09386759417183+1218.31982463225131i) (num-test (make-polar -1234.0 2.71828182845905) 1125.07965084711486-506.90411248058950i) (num-test (make-polar -1234.0 pi) 1234.0-0.00000000000015i) (num-test (make-polar -1234000000 -1) -666733045.44128441810608+1038375195.25294423103333i) (num-test (make-polar -1234000000 -10) 1035414266.88034236431122-671322050.83748233318329i) (num-test (make-polar -1234000000 -1234) 985411469.50707900524139+742778725.97692167758942i) (num-test (make-polar -1234000000 -1234000000) -196093867.59417182207108-1218319824.63225126266479i) (num-test (make-polar -1234000000 -2) 513525196.29917371273041+1122073024.70289111137390i) (num-test (make-polar -1234000000 -3) 1221650740.80494976043701+174142089.94587615132332i) (num-test (make-polar -1234000000 -362880) -751729101.61785900592804+978600714.17346036434174i) (num-test (make-polar -1234000000 -500029) -1054019935.47354996204376+641714870.97022569179535i) (num-test (make-polar -1234000000 1) -666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar -1234000000 10) 1035414266.88034236431122+671322050.83748233318329i) (num-test (make-polar -1234000000 1234) 985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar -1234000000 1234000000) -196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar -1234000000 2) 513525196.29917371273041-1122073024.70289111137390i) (num-test (make-polar -1234000000 3) 1221650740.80494976043701-174142089.94587615132332i) (num-test (make-polar -1234000000 362880) -751729101.61785900592804-978600714.17346036434174i) (num-test (make-polar -1234000000 500029) -1054019935.47354996204376-641714870.97022569179535i) (num-test (make-polar -1234000000.0 -0.00000001) -1234000000.0+12.34000000000000i) (num-test (make-polar -1234000000.0 -1.0) -666733045.44128441810608+1038375195.25294423103333i) (num-test (make-polar -1234000000.0 -1234.0) 985411469.50707900524139+742778725.97692167758942i) (num-test (make-polar -1234000000.0 -1234000000.0) -196093867.59417182207108-1218319824.63225126266479i) (num-test (make-polar -1234000000.0 -2.71828182845905) 1125079650.84711480140686+506904112.48058950901031i) (num-test (make-polar -1234000000.0 (- pi)) 1234000000.0+0.00000015111642i) (num-test (make-polar -1234000000.0 0.00000001) -1234000000.0-12.34000000000000i) (num-test (make-polar -1234000000.0 1.0) -666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar -1234000000.0 1234.0) 985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar -1234000000.0 1234000000.0) -196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar -1234000000.0 2.71828182845905) 1125079650.84711480140686-506904112.48058950901031i) (num-test (make-polar -1234000000.0 pi) 1234000000.0-0.00000015111642i) (num-test (make-polar -2 -1) -1.08060461173628+1.68294196961579i) (num-test (make-polar -2 -10) 1.67814305815290-1.08804222177874i) (num-test (make-polar -2 -1234) 1.59710124717517+1.20385530952499i) (num-test (make-polar -2 -1234000000) -0.31781826190303-1.97458642566005i) (num-test (make-polar -2 -2) 0.83229367309428+1.81859485365136i) (num-test (make-polar -2 -3) 1.97998499320089+0.28224001611973i) (num-test (make-polar -2 -362880) -1.21836159095277+1.58606274582408i) (num-test (make-polar -2 -500029) -1.70829811259895+1.04005651696957i) (num-test (make-polar -2 1) -1.08060461173628-1.68294196961579i) (num-test (make-polar -2 10) 1.67814305815290+1.08804222177874i) (num-test (make-polar -2 1234) 1.59710124717517-1.20385530952499i) (num-test (make-polar -2 1234000000) -0.31781826190303+1.97458642566005i) (num-test (make-polar -2 2) 0.83229367309428-1.81859485365136i) (num-test (make-polar -2 3) 1.97998499320089-0.28224001611973i) (num-test (make-polar -2 362880) -1.21836159095277-1.58606274582408i) (num-test (make-polar -2 500029) -1.70829811259895-1.04005651696957i) (num-test (make-polar -2.71828182845905 -0.00000001) -2.71828182845905+0.00000002718282i) (num-test (make-polar -2.71828182845905 -1.0) -1.46869393991589+2.28735528717884i) (num-test (make-polar -2.71828182845905 -1234.0) 2.17068564920277+1.63620900598787i) (num-test (make-polar -2.71828182845905 -1234000000.0) -0.43195980304173-2.68374119979681i) (num-test (make-polar -2.71828182845905 -2.71828182845905) 2.47834973295523+1.11661931744501i) (num-test (make-polar -2.71828182845905 -3.14159265358979) 2.71828182845905) (num-test (make-polar -2.71828182845905 0.00000001) -2.71828182845905-0.00000002718282i) (num-test (make-polar -2.71828182845905 1.0) -1.46869393991589-2.28735528717884i) (num-test (make-polar -2.71828182845905 1234.0) 2.17068564920277-1.63620900598787i) (num-test (make-polar -2.71828182845905 1234000000.0) -0.43195980304173+2.68374119979681i) (num-test (make-polar -2.71828182845905 2.71828182845905) 2.47834973295523-1.11661931744501i) (num-test (make-polar -2.71828182845905 pi) 2.71828182845905-0.0i) (num-test (make-polar -3 -1) -1.62090691760442+2.52441295442369i) (num-test (make-polar -3 -10) 2.51721458722936-1.63206333266811i) (num-test (make-polar -3 -1234) 2.39565187076275+1.80578296428749i) (num-test (make-polar -3 -1234000000) -0.47672739285455-2.96187963849008i) (num-test (make-polar -3 -2) 1.24844050964143+2.72789228047704i) (num-test (make-polar -3 -3) 2.96997748980134+0.42336002417960i) (num-test (make-polar -3 -362880) -1.82754238642915+2.37909411873613i) (num-test (make-polar -3 -500029) -2.56244716889842+1.56008477545436i) (num-test (make-polar -3 1) -1.62090691760442-2.52441295442369i) (num-test (make-polar -3 10) 2.51721458722936+1.63206333266811i) (num-test (make-polar -3 1234) 2.39565187076275-1.80578296428749i) (num-test (make-polar -3 1234000000) -0.47672739285455+2.96187963849008i) (num-test (make-polar -3 2) 1.24844050964143-2.72789228047704i) (num-test (make-polar -3 3) 2.96997748980134-0.42336002417960i) (num-test (make-polar -3 362880) -1.82754238642915-2.37909411873613i) (num-test (make-polar -3 500029) -2.56244716889842-1.56008477545436i) (num-test (make-polar -3.14159265358979 -0.00000001) -3.14159265358979+0.00000003141593i) (num-test (make-polar -3.14159265358979 -1.0) -1.69740975483297+2.64355906408146i) (num-test (make-polar -3.14159265358979 -1234.0) 2.50872077258230+1.89101149819439i) (num-test (make-polar -3.14159265358979 -1234000000.0) -0.49922775838562-3.10167310436587i) (num-test (make-polar -3.14159265358979 -2.71828182845905) 2.86429656872339+1.29050748447607i) (num-test (make-polar -3.14159265358979 -3.14159265358979) 3.14159265358979) (num-test (make-polar -3.14159265358979 0.00000001) -3.14159265358979-0.00000003141593i) (num-test (make-polar -3.14159265358979 1.0) -1.69740975483297-2.64355906408146i) (num-test (make-polar -3.14159265358979 1234.0) 2.50872077258230-1.89101149819439i) (num-test (make-polar -3.14159265358979 1234000000.0) -0.49922775838562+3.10167310436587i) (num-test (make-polar -3.14159265358979 2.71828182845905) 2.86429656872339-1.29050748447607i) (num-test (make-polar -3.14159265358979 pi) 3.14159265358979-0.0i) (num-test (make-polar -362880 -1) -196064.90075343055651+305352.99096708948491i) (num-test (make-polar -362880 -10) 304482.27647126308875-197414.38071953449980i) (num-test (make-polar -362880 -1234) 289778.05028746259632+218427.50736021503690i) (num-test (make-polar -362880 -1234000000) -57664.94543968644575-358268.96107175957877i) (num-test (make-polar -362880 -2) 151011.36404622704140+329965.85024650336709i) (num-test (make-polar -362880 -3) 359248.47716636961559+51209.62852476461558i) (num-test (make-polar -362880 -362880) -221059.52706247055903+287775.22460232191952i) (num-test (make-polar -362880 -500029) -309953.60954995284555+188707.85443895909702i) (num-test (make-polar -362880 1) -196064.90075343055651-305352.99096708948491i) (num-test (make-polar -362880 10) 304482.27647126308875+197414.38071953449980i) (num-test (make-polar -362880 1234) 289778.05028746259632-218427.50736021503690i) (num-test (make-polar -362880 1234000000) -57664.94543968644575+358268.96107175957877i) (num-test (make-polar -362880 2) 151011.36404622704140-329965.85024650336709i) (num-test (make-polar -362880 3) 359248.47716636961559-51209.62852476461558i) (num-test (make-polar -362880 362880) -221059.52706247055903-287775.22460232191952i) (num-test (make-polar -362880 500029) -309953.60954995284555-188707.85443895909702i) (num-test (make-polar -500029 -1) -270166.82170094008325+420759.89506250765407i) (num-test (make-polar -500029 -10) 419560.09761256945785-272026.33205690066097i) (num-test (make-polar -500029 -1234) 399298.46976187621476+300981.28328323678579i) (num-test (make-polar -500029 -1234000000) -79459.17384055603179-493675.23791818472091i) (num-test (make-polar -500029 -2) 208085.48653183106217+454675.08303821878508i) (num-test (make-polar -500029 -3) 495024.95808262412902+70564.09651016735006i) (num-test (make-polar -500029 -362880) -304608.06398126127897+396538.68436583562288i) (num-test (make-polar -500029 -500029) -427099.29847236932255+260029.21006188896718i) (num-test (make-polar -500029 1) -270166.82170094008325-420759.89506250765407i) (num-test (make-polar -500029 10) 419560.09761256945785+272026.33205690066097i) (num-test (make-polar -500029 1234) 399298.46976187621476-300981.28328323678579i) (num-test (make-polar -500029 1234000000) -79459.17384055603179+493675.23791818472091i) (num-test (make-polar -500029 2) 208085.48653183106217-454675.08303821878508i) (num-test (make-polar -500029 3) 495024.95808262412902-70564.09651016735006i) (num-test (make-polar -500029 362880) -304608.06398126127897-396538.68436583562288i) (num-test (make-polar -500029 500029) -427099.29847236932255-260029.21006188896718i) (num-test (make-polar 0 -1) 0.0) (num-test (make-polar 0 -10) 0.0) (num-test (make-polar 0 -1234) 0.0) (num-test (make-polar 0 -1234000000) 0.0) (num-test (make-polar 0 -2) 0.0) (num-test (make-polar 0 -3) 0.0) (num-test (make-polar 0 -362880) 0.0) (num-test (make-polar 0 -500029) 0.0) (num-test (make-polar 0 0) 0.0) (num-test (make-polar 0 1) 0.0) (num-test (make-polar 0 10) 0.0) (num-test (make-polar 0 1234) 0.0) (num-test (make-polar 0 1234000000) 0.0) (num-test (make-polar 0 2) 0.0) (num-test (make-polar 0 3) 0.0) (num-test (make-polar 0 362880) 0.0) (num-test (make-polar 0 500029) 0.0) (num-test (make-polar 0 922337203685477) 0.0) (num-test (make-polar 0 1/922337203685477) 0.0) (num-test (make-polar 0.0 -0.00000001) 0.0) (num-test (make-polar 0.0 -1.0) 0.0) (num-test (make-polar 0.0 -1234.0) 0.0) (num-test (make-polar 0.0 -1234000000.0) 0.0) (num-test (make-polar 0.0 -2.71828182845905) 0.0) (num-test (make-polar 0.0 -3.14159265358979) 0.0) (num-test (make-polar 0.0 0.0) 0.0) (num-test (make-polar 0.0 0.00000001) 0.0) (num-test (make-polar 0.0 1.0) 0.0) (num-test (make-polar 0.0 1234.0) 0.0) (num-test (make-polar 0.0 1234000000.0) 0.0) (num-test (make-polar 0.0 2.71828182845905) 0.0) (num-test (make-polar 0.0 pi) 0.0) (num-test (make-polar 0.00000001 -0.00000001) 0.00000001-1e-16i) (num-test (make-polar 0.00000001 -1.0) 0.00000000540302-0.00000000841471i) (num-test (make-polar 0.00000001 -1234.0) -0.00000000798551-0.00000000601928i) (num-test (make-polar 0.00000001 -1234000000.0) 0.00000000158909+0.00000000987293i) (num-test (make-polar 0.00000001 -2.71828182845905) -0.00000000911734-0.00000000410781i) (num-test (make-polar 0.00000001 -3.14159265358979) -0.00000001-0.0i) (num-test (make-polar 0.00000001 0.00000001) 0.00000001+1e-16i) (num-test (make-polar 0.00000001 1.0) 0.00000000540302+0.00000000841471i) (num-test (make-polar 0.00000001 1234.0) -0.00000000798551+0.00000000601928i) (num-test (make-polar 0.00000001 1234000000.0) 0.00000000158909-0.00000000987293i) (num-test (make-polar 0.00000001 2.71828182845905) -0.00000000911734+0.00000000410781i) (num-test (make-polar 0.00000001 pi) -0.00000001) (num-test (make-polar 1 -1) 0.54030230586814-0.84147098480790i) (num-test (make-polar 1 -10) -0.83907152907645+0.54402111088937i) (num-test (make-polar 1 -1234) -0.79855062358758-0.60192765476250i) (num-test (make-polar 1 -1234000000) 0.15890913095152+0.98729321283003i) (num-test (make-polar 1 -2) -0.41614683654714-0.90929742682568i) (num-test (make-polar 1 -3) -0.98999249660045-0.14112000805987i) (num-test (make-polar 1 -362880) 0.60918079547638-0.79303137291204i) (num-test (make-polar 1 -500029) 0.85414905629947-0.52002825848479i) (num-test (make-polar 1 1) 0.54030230586814+0.84147098480790i) (num-test (make-polar 1 10) -0.83907152907645-0.54402111088937i) (num-test (make-polar 1 1234) -0.79855062358758+0.60192765476250i) (num-test (make-polar 1 1234000000) 0.15890913095152-0.98729321283003i) (num-test (make-polar 1 2) -0.41614683654714+0.90929742682568i) (num-test (make-polar 1 3) -0.98999249660045+0.14112000805987i) (num-test (make-polar 1 362880) 0.60918079547638+0.79303137291204i) (num-test (make-polar 1 500029) 0.85414905629947+0.52002825848479i) (num-test (make-polar 1.0 -0.00000001) 1.0-0.00000001i) (num-test (make-polar 1.0 -1.0) 0.54030230586814-0.84147098480790i) (num-test (make-polar 1.0 -1234.0) -0.79855062358758-0.60192765476250i) (num-test (make-polar 1.0 -1234000000.0) 0.15890913095152+0.98729321283003i) (num-test (make-polar 1.0 -2.71828182845905) -0.91173391478697-0.41078129050291i) (num-test (make-polar 1.0 -3.14159265358979) -1.0-0.0i) (num-test (make-polar 1.0 0.00000001) 1.0+0.00000001i) (num-test (make-polar 1.0 1.0) 0.54030230586814+0.84147098480790i) (num-test (make-polar 1.0 1234.0) -0.79855062358758+0.60192765476250i) (num-test (make-polar 1.0 1234000000.0) 0.15890913095152-0.98729321283003i) (num-test (make-polar 1.0 2.71828182845905) -0.91173391478697+0.41078129050291i) (num-test (make-polar 1.0 pi) -1.0) (num-test (make-polar 10 -1) 5.40302305868140-8.41470984807897i) (num-test (make-polar 10 -10) -8.39071529076452+5.44021110889370i) (num-test (make-polar 10 -1234) -7.98550623587584-6.01927654762497i) (num-test (make-polar 10 -1234000000) 1.58909130951517+9.87293212830025i) (num-test (make-polar 10 -2) -4.16146836547142-9.09297426825682i) (num-test (make-polar 10 -3) -9.89992496600445-1.41120008059867i) (num-test (make-polar 10 -362880) 6.09180795476385-7.93031372912042i) (num-test (make-polar 10 -500029) 8.54149056299473-5.20028258484786i) (num-test (make-polar 10 1) 5.40302305868140+8.41470984807897i) (num-test (make-polar 10 10) -8.39071529076452-5.44021110889370i) (num-test (make-polar 10 1234) -7.98550623587584+6.01927654762497i) (num-test (make-polar 10 1234000000) 1.58909130951517-9.87293212830025i) (num-test (make-polar 10 2) -4.16146836547142+9.09297426825682i) (num-test (make-polar 10 3) -9.89992496600445+1.41120008059867i) (num-test (make-polar 10 362880) 6.09180795476385+7.93031372912042i) (num-test (make-polar 10 500029) 8.54149056299473+5.20028258484786i) (num-test (make-polar 1234 -1) 666.73304544128450-1038.37519525294420i) (num-test (make-polar 1234 -10) -1035.41426688034221+671.32205083748227i) (num-test (make-polar 1234 -1234) -985.41146950707912-742.77872597692169i) (num-test (make-polar 1234 -1234000000) 196.09386759417183+1218.31982463225131i) (num-test (make-polar 1234 -2) -513.52519629917379-1122.07302470289119i) (num-test (make-polar 1234 -3) -1221.65074080494969-174.14208994587614i) (num-test (make-polar 1234 -362880) 751.72910161785899-978.60071417346035i) (num-test (make-polar 1234 -500029) 1054.01993547355005-641.71487097022577i) (num-test (make-polar 1234 1) 666.73304544128450+1038.37519525294420i) (num-test (make-polar 1234 10) -1035.41426688034221-671.32205083748227i) (num-test (make-polar 1234 1234) -985.41146950707912+742.77872597692169i) (num-test (make-polar 1234 1234000000) 196.09386759417183-1218.31982463225131i) (num-test (make-polar 1234 2) -513.52519629917379+1122.07302470289119i) (num-test (make-polar 1234 3) -1221.65074080494969+174.14208994587614i) (num-test (make-polar 1234 362880) 751.72910161785899+978.60071417346035i) (num-test (make-polar 1234 500029) 1054.01993547355005+641.71487097022577i) (num-test (make-polar 1234.0 -0.00000001) 1234.0-0.00001234000000i) (num-test (make-polar 1234.0 -1.0) 666.73304544128450-1038.37519525294420i) (num-test (make-polar 1234.0 -1234.0) -985.41146950707912-742.77872597692169i) (num-test (make-polar 1234.0 -1234000000.0) 196.09386759417183+1218.31982463225131i) (num-test (make-polar 1234.0 -2.71828182845905) -1125.07965084711486-506.90411248058950i) (num-test (make-polar 1234.0 -3.14159265358979) -1234.0-0.00000000000015i) (num-test (make-polar 1234.0 0.00000001) 1234.0+0.00001234000000i) (num-test (make-polar 1234.0 1.0) 666.73304544128450+1038.37519525294420i) (num-test (make-polar 1234.0 1234.0) -985.41146950707912+742.77872597692169i) (num-test (make-polar 1234.0 1234000000.0) 196.09386759417183-1218.31982463225131i) (num-test (make-polar 1234.0 2.71828182845905) -1125.07965084711486+506.90411248058950i) (num-test (make-polar 1234.0 pi) -1234.0+0.00000000000015i) (num-test (make-polar 1234000000 -1) 666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar 1234000000 -10) -1035414266.88034236431122+671322050.83748233318329i) (num-test (make-polar 1234000000 -1234) -985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar 1234000000 -1234000000) 196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar 1234000000 -2) -513525196.29917371273041-1122073024.70289111137390i) (num-test (make-polar 1234000000 -3) -1221650740.80494976043701-174142089.94587615132332i) (num-test (make-polar 1234000000 -362880) 751729101.61785900592804-978600714.17346036434174i) (num-test (make-polar 1234000000 -500029) 1054019935.47354996204376-641714870.97022569179535i) (num-test (make-polar 1234000000 1) 666733045.44128441810608+1038375195.25294423103333i) (num-test (make-polar 1234000000 10) -1035414266.88034236431122-671322050.83748233318329i) (num-test (make-polar 1234000000 1234) -985411469.50707900524139+742778725.97692167758942i) (num-test (make-polar 1234000000 1234000000) 196093867.59417182207108-1218319824.63225126266479i) (num-test (make-polar 1234000000 2) -513525196.29917371273041+1122073024.70289111137390i) (num-test (make-polar 1234000000 3) -1221650740.80494976043701+174142089.94587615132332i) (num-test (make-polar 1234000000 362880) 751729101.61785900592804+978600714.17346036434174i) (num-test (make-polar 1234000000 500029) 1054019935.47354996204376+641714870.97022569179535i) (num-test (make-polar 1234000000.0 -0.00000001) 1234000000.0-12.34000000000000i) (num-test (make-polar 1234000000.0 -1.0) 666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar 1234000000.0 -1234.0) -985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar 1234000000.0 -1234000000.0) 196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar 1234000000.0 -2.71828182845905) -1125079650.84711480140686-506904112.48058950901031i) (num-test (make-polar 1234000000.0 -3.14159265358979) -1234000000.0-0.00000015111642i) (num-test (make-polar 1234000000.0 0.00000001) 1234000000.0+12.34000000000000i) (num-test (make-polar 1234000000.0 1.0) 666733045.44128441810608+1038375195.25294423103333i) (num-test (make-polar 1234000000.0 1234.0) -985411469.50707900524139+742778725.97692167758942i) (num-test (make-polar 1234000000.0 1234000000.0) 196093867.59417182207108-1218319824.63225126266479i) (num-test (make-polar 1234000000.0 2.71828182845905) -1125079650.84711480140686+506904112.48058950901031i) (num-test (make-polar 1234000000.0 pi) -1234000000.0+0.00000015111642i) (num-test (make-polar 2 -1) 1.08060461173628-1.68294196961579i) (num-test (make-polar 2 -10) -1.67814305815290+1.08804222177874i) (num-test (make-polar 2 -1234) -1.59710124717517-1.20385530952499i) (num-test (make-polar 2 -1234000000) 0.31781826190303+1.97458642566005i) (num-test (make-polar 2 -2) -0.83229367309428-1.81859485365136i) (num-test (make-polar 2 -3) -1.97998499320089-0.28224001611973i) (num-test (make-polar 2 -362880) 1.21836159095277-1.58606274582408i) (num-test (make-polar 2 -500029) 1.70829811259895-1.04005651696957i) (num-test (make-polar 2 1) 1.08060461173628+1.68294196961579i) (num-test (make-polar 2 10) -1.67814305815290-1.08804222177874i) (num-test (make-polar 2 1234) -1.59710124717517+1.20385530952499i) (num-test (make-polar 2 1234000000) 0.31781826190303-1.97458642566005i) (num-test (make-polar 2 2) -0.83229367309428+1.81859485365136i) (num-test (make-polar 2 3) -1.97998499320089+0.28224001611973i) (num-test (make-polar 2 362880) 1.21836159095277+1.58606274582408i) (num-test (make-polar 2 500029) 1.70829811259895+1.04005651696957i) (num-test (make-polar 2.71828182845905 -0.00000001) 2.71828182845905-0.00000002718282i) (num-test (make-polar 2.71828182845905 -1.0) 1.46869393991589-2.28735528717884i) (num-test (make-polar 2.71828182845905 -1234.0) -2.17068564920277-1.63620900598787i) (num-test (make-polar 2.71828182845905 -1234000000.0) 0.43195980304173+2.68374119979681i) (num-test (make-polar 2.71828182845905 -2.71828182845905) -2.47834973295523-1.11661931744501i) (num-test (make-polar 2.71828182845905 -3.14159265358979) -2.71828182845905-0.0i) (num-test (make-polar 2.71828182845905 0.00000001) 2.71828182845905+0.00000002718282i) (num-test (make-polar 2.71828182845905 1.0) 1.46869393991589+2.28735528717884i) (num-test (make-polar 2.71828182845905 1234.0) -2.17068564920277+1.63620900598787i) (num-test (make-polar 2.71828182845905 1234000000.0) 0.43195980304173-2.68374119979681i) (num-test (make-polar 2.71828182845905 2.71828182845905) -2.47834973295523+1.11661931744501i) (num-test (make-polar 2.71828182845905 pi) -2.71828182845905) (num-test (make-polar 3 -1) 1.62090691760442-2.52441295442369i) (num-test (make-polar 3 -10) -2.51721458722936+1.63206333266811i) (num-test (make-polar 3 -1234) -2.39565187076275-1.80578296428749i) (num-test (make-polar 3 -1234000000) 0.47672739285455+2.96187963849008i) (num-test (make-polar 3 -2) -1.24844050964143-2.72789228047704i) (num-test (make-polar 3 -3) -2.96997748980134-0.42336002417960i) (num-test (make-polar 3 -362880) 1.82754238642915-2.37909411873613i) (num-test (make-polar 3 -500029) 2.56244716889842-1.56008477545436i) (num-test (make-polar 3 1) 1.62090691760442+2.52441295442369i) (num-test (make-polar 3 10) -2.51721458722936-1.63206333266811i) (num-test (make-polar 3 1234) -2.39565187076275+1.80578296428749i) (num-test (make-polar 3 1234000000) 0.47672739285455-2.96187963849008i) (num-test (make-polar 3 2) -1.24844050964143+2.72789228047704i) (num-test (make-polar 3 3) -2.96997748980134+0.42336002417960i) (num-test (make-polar 3 362880) 1.82754238642915+2.37909411873613i) (num-test (make-polar 3 500029) 2.56244716889842+1.56008477545436i) (num-test (make-polar 3.14159265358979 -0.00000001) 3.14159265358979-0.00000003141593i) (num-test (make-polar 3.14159265358979 -1.0) 1.69740975483297-2.64355906408146i) (num-test (make-polar 3.14159265358979 -1234.0) -2.50872077258230-1.89101149819439i) (num-test (make-polar 3.14159265358979 -1234000000.0) 0.49922775838562+3.10167310436587i) (num-test (make-polar 3.14159265358979 -2.71828182845905) -2.86429656872339-1.29050748447607i) (num-test (make-polar 3.14159265358979 -3.14159265358979) -3.14159265358979-0.0i) (num-test (make-polar 3.14159265358979 0.00000001) 3.14159265358979+0.00000003141593i) (num-test (make-polar 3.14159265358979 1.0) 1.69740975483297+2.64355906408146i) (num-test (make-polar 3.14159265358979 1234.0) -2.50872077258230+1.89101149819439i) (num-test (make-polar 3.14159265358979 1234000000.0) 0.49922775838562-3.10167310436587i) (num-test (make-polar 3.14159265358979 2.71828182845905) -2.86429656872339+1.29050748447607i) (num-test (make-polar 3.14159265358979 pi) -3.14159265358979) (num-test (make-polar 362880 -1) 196064.90075343055651-305352.99096708948491i) (num-test (make-polar 362880 -10) -304482.27647126308875+197414.38071953449980i) (num-test (make-polar 362880 -1234) -289778.05028746259632-218427.50736021503690i) (num-test (make-polar 362880 -1234000000) 57664.94543968644575+358268.96107175957877i) (num-test (make-polar 362880 -2) -151011.36404622704140-329965.85024650336709i) (num-test (make-polar 362880 -3) -359248.47716636961559-51209.62852476461558i) (num-test (make-polar 362880 -362880) 221059.52706247055903-287775.22460232191952i) (num-test (make-polar 362880 -500029) 309953.60954995284555-188707.85443895909702i) (num-test (make-polar 362880 1) 196064.90075343055651+305352.99096708948491i) (num-test (make-polar 362880 10) -304482.27647126308875-197414.38071953449980i) (num-test (make-polar 362880 1234) -289778.05028746259632+218427.50736021503690i) (num-test (make-polar 362880 1234000000) 57664.94543968644575-358268.96107175957877i) (num-test (make-polar 362880 2) -151011.36404622704140+329965.85024650336709i) (num-test (make-polar 362880 3) -359248.47716636961559+51209.62852476461558i) (num-test (make-polar 362880 362880) 221059.52706247055903+287775.22460232191952i) (num-test (make-polar 362880 500029) 309953.60954995284555+188707.85443895909702i) (num-test (make-polar 500029 -1) 270166.82170094008325-420759.89506250765407i) (num-test (make-polar 500029 -10) -419560.09761256945785+272026.33205690066097i) (num-test (make-polar 500029 -1234) -399298.46976187621476-300981.28328323678579i) (num-test (make-polar 500029 -1234000000) 79459.17384055603179+493675.23791818472091i) (num-test (make-polar 500029 -2) -208085.48653183106217-454675.08303821878508i) (num-test (make-polar 500029 -3) -495024.95808262412902-70564.09651016735006i) (num-test (make-polar 500029 -362880) 304608.06398126127897-396538.68436583562288i) (num-test (make-polar 500029 -500029) 427099.29847236932255-260029.21006188896718i) (num-test (make-polar 500029 1) 270166.82170094008325+420759.89506250765407i) (num-test (make-polar 500029 10) -419560.09761256945785-272026.33205690066097i) (num-test (make-polar 500029 1234) -399298.46976187621476+300981.28328323678579i) (num-test (make-polar 500029 1234000000) 79459.17384055603179-493675.23791818472091i) (num-test (make-polar 500029 2) -208085.48653183106217+454675.08303821878508i) (num-test (make-polar 500029 3) -495024.95808262412902+70564.09651016735006i) (num-test (make-polar 500029 362880) 304608.06398126127897+396538.68436583562288i) (num-test (make-polar 500029 500029) 427099.29847236932255+260029.21006188896718i) (num-test (angle (make-polar 1.0 4.0)) (- 4 (* 2 pi))) (num-test (make-polar 1/2 0) 0.5) (num-test (make-polar 1/2 pi) -0.5) (num-test (make-polar 1 0) 1.0) (num-test (make-polar 1 1/2) 0.87758256189037+0.4794255386042i) (num-test (make-polar 0 1/2) 0.0) (s7-test (nan? (make-polar 0 #i0/0)) #t) (s7-test (nan? (make-polar nan.0 nan.0)) #t) (num-test (make-polar 1.0 (* 200 pi)) 1.0) (num-test (make-polar 1.0 (* 2000000 pi)) 1.0) (num-test (make-polar 1.0 (* 2000000000 pi)) 1.0) (s7-test (nan? (make-polar (string->number "#i0/0") 0)) #t) (s7-test (nan? (make-polar 0 (string->number "#i0/0"))) #t) (num-test (make-polar (string->number "1.0") (string->number "0.0")) 1.0) (num-test (make-polar 1000000000000000000000000.0 0.0) 1e24) ;; Flonum limits? ;(num-test (make-polar 1000000000000000000000000.0 pi) -1e24) (num-test (angle (make-polar 1000000000000000000000000.0 4.0)) (- 4 (* 2 pi))) ;(num-test (make-polar 1000000000000000000000000.0 4.0) -6.536436208636119146391681830977503814246E23-7.568024953079282513726390945118290941345E23i) ;(num-test (make-polar 1000000000000000000000000.0 -4.0) -6.536436208636119146391681830977503814246E23+7.568024953079282513726390945118290941345E23i) (num-test (magnitude (make-polar 1e24 (* 1e19 pi))) 1e24) (num-test (magnitude (make-polar 100000000000000000000000000000000000000.0 (* 1.5 pi))) 1e38) (num-test (magnitude (make-polar 100000000000000000000000000000000000000.0 .01)) 1e38) ; Flonum limits? ;(num-test (angle (make-polar 100000000000000000000000000000000000000.0 (* 100 pi))) 0.0) (s7-test (make-polar 0.0 0+92233720368547758081.0i) 'error) (s7-test (make-polar 0 0+0/0i) 'error) (s7-test (make-polar 0+0/0i 0) 'error) (s7-test (make-polar 1.23 1.23 1.23) 'error) (s7-test (make-polar 1.23) 'error) (s7-test (make-polar 1.23+1.0i 1.23+1.0i) 'error) (s7-test (make-polar) 'error) (s7-test (make-polar 1.0 1.0+0.1i) 'error) (s7-test (make-polar 1.0+0.1i 0.0) 'error) (for-each (lambda (x) (s7-test (make-polar x 0-i) 'error)) (list 0 1 1/2 1.0 0.0 0+i)) (for-each (lambda (x) (s7-test (make-polar 0-i x) 'error)) (list 0 1 1/2 pi (- pi) 0.0 1.0 0+i)) (test-end "make-polar") ;;; -------------------------------------------------------------------------------- ;;; abs ;;; -------------------------------------------------------------------------------- (test-begin "abs") (num-test (abs -0) 0) (num-test (abs -0.0) 0.0) (num-test (abs -0.00000001) 0.00000001) (num-test (abs -0/1) 0/1) (num-test (abs -0/10) 0/10) (num-test (abs -0/1234) 0/1234) (num-test (abs -0/1234000000) 0/1234000000) (num-test (abs -0/2) 0/2) (num-test (abs -0/3) 0/3) (num-test (abs -0/362880) 0/362880) (num-test (abs -0/500029) 0/500029) (num-test (abs -1) 1) (num-test (abs -1.0) 1.0) (num-test (abs -1/1) 1/1) (num-test (abs -1/10) 1/10) (num-test (abs -1/1234) 1/1234) (num-test (abs -1/1234000000) 1/1234000000) (num-test (abs -1/2) 1/2) (num-test (abs -1/3) 1/3) (num-test (abs -1/362880) 1/362880) (num-test (abs -1/500029) 1/500029) (num-test (abs -1/9223372036854775807) 1/9223372036854775807) (num-test (abs -10) 10) (num-test (abs -10/1) 10/1) (num-test (abs -10/10) 10/10) (num-test (abs -10/1234) 10/1234) (num-test (abs -10/1234000000) 10/1234000000) (num-test (abs -10/2) 10/2) (num-test (abs -10/3) 10/3) (num-test (abs -10/362880) 10/362880) (num-test (abs -10/500029) 10/500029) (num-test (abs -1234) 1234) (num-test (abs -1234.0) 1234.0) (num-test (abs -1234/1) 1234/1) (num-test (abs -1234/10) 1234/10) (num-test (abs -1234/1234) 1234/1234) (num-test (abs -1234/1234000000) 1234/1234000000) (num-test (abs -1234/2) 1234/2) (num-test (abs -1234/3) 1234/3) (num-test (abs -1234/362880) 1234/362880) (num-test (abs -1234/500029) 1234/500029) (num-test (abs -1234000000) 1234000000) (num-test (abs -1234000000.0) 1234000000.0) (num-test (abs -1234000000/1) 1234000000/1) (num-test (abs -1234000000/10) 1234000000/10) (num-test (abs -1234000000/1234) 1234000000/1234) (num-test (abs -1234000000/1234000000) 1234000000/1234000000) (num-test (abs -1234000000/2) 1234000000/2) (num-test (abs -1234000000/3) 1234000000/3) (num-test (abs -1234000000/362880) 1234000000/362880) (num-test (abs -1234000000/500029) 1234000000/500029) (num-test (abs -123456789) 123456789) (num-test (abs -1234567890) 1234567890) (num-test (abs -2) 2) (num-test (abs -2.71828182845905) 2.71828182845905) (num-test (abs -2/1) 2/1) (num-test (abs -2/10) 2/10) (num-test (abs -2/1234) 2/1234) (num-test (abs -2/1234000000) 2/1234000000) (num-test (abs -2/2) 2/2) (num-test (abs -2/3) 2/3) (num-test (abs -2/362880) 2/362880) (num-test (abs -2/500029) 2/500029) (num-test (abs -3) 3) (num-test (abs -3.14159265358979) pi) (num-test (abs -3/1) 3/1) (num-test (abs -3/10) 3/10) (num-test (abs -3/1234) 3/1234) (num-test (abs -3/1234000000) 3/1234000000) (num-test (abs -3/2) 3/2) (num-test (abs -3/3) 3/3) (num-test (abs -3/362880) 3/362880) (num-test (abs -3/500029) 3/500029) (num-test (abs -362880) 362880) (num-test (abs -362880/1) 362880/1) (num-test (abs -362880/10) 362880/10) (num-test (abs -362880/1234) 362880/1234) (num-test (abs -362880/1234000000) 362880/1234000000) (num-test (abs -362880/2) 362880/2) (num-test (abs -362880/3) 362880/3) (num-test (abs -362880/362880) 362880/362880) (num-test (abs -362880/500029) 362880/500029) (num-test (abs -500029) 500029) (num-test (abs -500029/1) 500029/1) (num-test (abs -500029/10) 500029/10) (num-test (abs -500029/1234) 500029/1234) (num-test (abs -500029/1234000000) 500029/1234000000) (num-test (abs -500029/2) 500029/2) (num-test (abs -500029/3) 500029/3) (num-test (abs -500029/362880) 500029/362880) (num-test (abs -500029/500029) 500029/500029) (num-test (abs -6) 6) (num-test (abs -7) 7) (num-test (abs 0) 0) (num-test (abs 0.0) 0.0) (num-test (abs 0.00000001) 0.00000001) (num-test (abs 0/1) 0/1) (num-test (abs 0/10) 0/10) (num-test (abs 0/1234) 0/1234) (num-test (abs 0/1234000000) 0/1234000000) (num-test (abs 0/2) 0/2) (num-test (abs 0/3) 0/3) (num-test (abs 0/362880) 0/362880) (num-test (abs 0/500029) 0/500029) (num-test (abs 1) 1) (num-test (abs 1.0) 1.0) (num-test (abs 1/1) 1/1) (num-test (abs 1/10) 1/10) (num-test (abs 1/1234) 1/1234) (num-test (abs 1/1234000000) 1/1234000000) (num-test (abs 1/2) 1/2) (num-test (abs 1/3) 1/3) (num-test (abs 1/362880) 1/362880) (num-test (abs 1/500029) 1/500029) (num-test (abs 10) 10) (num-test (abs 10/1) 10/1) (num-test (abs 10/10) 10/10) (num-test (abs 10/1234) 10/1234) (num-test (abs 10/1234000000) 10/1234000000) (num-test (abs 10/2) 10/2) (num-test (abs 10/3) 10/3) (num-test (abs 10/362880) 10/362880) (num-test (abs 10/500029) 10/500029) (num-test (abs 1234) 1234) (num-test (abs 1234.0) 1234.0) (num-test (abs 1234/1) 1234/1) (num-test (abs 1234/10) 1234/10) (num-test (abs 1234/1234) 1234/1234) (num-test (abs 1234/1234000000) 1234/1234000000) (num-test (abs 1234/2) 1234/2) (num-test (abs 1234/3) 1234/3) (num-test (abs 1234/362880) 1234/362880) (num-test (abs 1234/500029) 1234/500029) (num-test (abs 1234000000) 1234000000) (num-test (abs 1234000000.0) 1234000000.0) (num-test (abs 1234000000/1) 1234000000/1) (num-test (abs 1234000000/10) 1234000000/10) (num-test (abs 1234000000/1234) 1234000000/1234) (num-test (abs 1234000000/1234000000) 1234000000/1234000000) (num-test (abs 1234000000/2) 1234000000/2) (num-test (abs 1234000000/3) 1234000000/3) (num-test (abs 1234000000/362880) 1234000000/362880) (num-test (abs 1234000000/500029) 1234000000/500029) (num-test (abs 2) 2) (num-test (abs 2.71828182845905) 2.71828182845905) (num-test (abs 2/1) 2/1) (num-test (abs 2/10) 2/10) (num-test (abs 2/1234) 2/1234) (num-test (abs 2/1234000000) 2/1234000000) (num-test (abs 2/2) 2/2) (num-test (abs 2/3) 2/3) (num-test (abs 2/362880) 2/362880) (num-test (abs 2/500029) 2/500029) (num-test (abs 3) 3) (num-test (abs 3/1) 3/1) (num-test (abs 3/10) 3/10) (num-test (abs 3/1234) 3/1234) (num-test (abs 3/1234000000) 3/1234000000) (num-test (abs 3/2) 3/2) (num-test (abs 3/3) 3/3) (num-test (abs 3/362880) 3/362880) (num-test (abs 3/500029) 3/500029) (num-test (abs 362880) 362880) (num-test (abs 362880/1) 362880/1) (num-test (abs 362880/10) 362880/10) (num-test (abs 362880/1234) 362880/1234) (num-test (abs 362880/1234000000) 362880/1234000000) (num-test (abs 362880/2) 362880/2) (num-test (abs 362880/3) 362880/3) (num-test (abs 362880/362880) 362880/362880) (num-test (abs 362880/500029) 362880/500029) (num-test (abs 500029) 500029) (num-test (abs 500029/1) 500029/1) (num-test (abs 500029/10) 500029/10) (num-test (abs 500029/1234) 500029/1234) (num-test (abs 500029/1234000000) 500029/1234000000) (num-test (abs 500029/2) 500029/2) (num-test (abs 500029/3) 500029/3) (num-test (abs 500029/362880) 500029/362880) (num-test (abs 500029/500029) 500029/500029) (num-test (abs 6) 6) (num-test (abs 7) 7) (num-test (abs pi) pi) (num-test (abs -2.225073858507201399999999999999999999996E-308) 2.225073858507201399999999999999999999996E-308) (num-test (abs -9223372036854775808) 9223372036854775808) (num-test (abs 1.110223024625156799999999999999999999997E-16) 1.110223024625156799999999999999999999997E-16) (num-test (abs 9223372036854775807) 9223372036854775807) (s7-test (= (abs (+ most-negative-fixnum 1)) most-positive-fixnum) #t) (s7-test (abs most-positive-fixnum) most-positive-fixnum) (num-test (abs -922337203685477580) 922337203685477580) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 abs num (abs num) val))) (list (list 0 0) (list 1 1) (list 2 2) (list 3 3) (list -1 1) (list -2 2) (list -3 3) (list 9223372036854775807 9223372036854775807) (list 1/2 1/2) (list 1/3 1/3) (list -1/2 1/2) (list -1/3 1/3) (list 1/9223372036854775807 1/9223372036854775807) (list 0.0 0.0) (list 1.0 1.0) (list 2.0 2.0) (list -2.0 2.0) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309) (list 1e+16 1e+16) )) (num-test (abs -1e310) 1e310) (num-test (abs -.1e310) 1e309) (num-test (abs -.00001e309) 1e304) (num-test (abs -.1e-400) 1.000000000000000000000000000000000000001E-401) (num-test (abs -1.797693134862315699999999999999999999998E308) 1.797693134862315699999999999999999999998E308) (num-test (abs -12345678901234567890) 12345678901234567890) (num-test (abs 12345678901234567890) 12345678901234567890) (num-test (abs 9223372036854775808.0) 9223372036854775808.0) (num-test (abs -9223372036854775808.0) 9223372036854775808.0) (num-test (abs 9223372036854775808/3) 9223372036854775808/3) (num-test (abs -9223372036854775808/3) 9223372036854775808/3) (num-test (abs 9223372036854775808) 9223372036854775808) (num-test (abs -9223372036854775808) 9223372036854775808) (num-test (abs 1231234567891234567895/4924938271564938271564) 1231234567891234567895/4924938271564938271564) (num-test (abs -1231234567891234567895/4924938271564938271564) 1231234567891234567895/4924938271564938271564) (num-test (abs 5/4924938271564938271564) 5/4924938271564938271564) (num-test (abs -5/4924938271564938271564) 5/4924938271564938271564) ;(num-test (abs 1231234567891234567895.4924938271564938271564) 1231234567891234567895.4924938271564938271564) ;(num-test (abs -1231234567891234567895.4924938271564938271564) 1231234567891234567895.4924938271564938271564) ;(s7-test (< (abs (- 217307123869033896670383722255101771944951615456222473725950809456844385078286527901170732595082536915607499776643486838126400154358628745576030002134993982282420557293291331398770482226850626076965834765751024210059623687394545134173058036837172944503241193618487196846261991269480351798163386073355597133702428176134419602160051931823812274538708325328119629419660293102211559158897247464223430070715316610068188075169995173607390273159413073729599663002285391560133032803005324145809498542320942319/69171005865679080805116192745197553936743146778127491628445014149228719516632195993428601364184241694325570308897501794466504355763015991674090032275753543906386364041957503000266249940077862458146827521257517440768326138892186263673940157476537922438310169667984623997354774657585797547359740040386280140433453254961653602051204994301868729700341678413408419088335979860854285428030584998257285624659397393914631805389952520897186723117920856639645035858695810847480593484518166856238091362466500961 pi)) 1e-30) #t) ;(s7-test (< (abs (- 86506249226122124054607019515040072569389309675677090446756879032293209564976057920114008345082990143050895371432654098617595803586181179031736344131661104245709204440599410618785461104070923873664766537405043170624321277708803595336768044461421851475181966244993926088957647640608814315524675779027527947452743019231877030652479460288601395608061537360792381908211008391170537372395545350366754911899795085297260398105485029514527793853213999006311528934617756311568188335120606938078206683552323219/31823870623143321794788842272907994994917601540780651644441590671647399038540853367332145707942720183928541015066510539504636213034857780420049324239395126123695561521079512763516656025946557452382852551302156382716241918690232497805575429042492016743374932252325803315778289435501557305339709678335435100310171257145989526559485407857600325792028152511795618358674583299689136950642929744615564346477399823659926550178426308547711386364571735861738189405232059295317994009776897697526162381026548407 (exp 1.0))) 1e-10) #t) ;(s7-test (< (abs (- 394372834342725903069943709807632345074473102456264/125532772013612015195543173729505082616186012726141 pi)) 1e-100) #t) ;(s7-test (< (abs (- 37263594917349868210957473113622483286895975031882232950275573404793068492510874215659862655765029385/11861370656940517106115970314230542917832783292279765360251185207749769595904108589726721941267812387 pi)) 1e-200) #t) ;(s7-test (< (abs (- 9723120205746844213570925835953968530586731050832362731080980958991370971563630998369876152193644009314571826202389376113741653418445346223192649145551112347805140423409409719828584948506325652698166338315337526327656688617124164275819596889301942895/3094965286042593318538169915190725425595617454610327314732861344227207817775353866654459841280603529756895813991351842180977260125352058245398197717632118060786828996125027995519815695529226138848308047979443033939320415958110104195587441744710374021 pi)) 1e-500) #t) ;(s7-test (< (abs (- 217307123869033896670383722255101771944951615456222473725950809456844385078286527901170732595082536915607499776643486838126400154358628745576030002134993982282420557293291331398770482226850626076965834765751024210059623687394545134173058036837172944503241193618487196846261991269480351798163386073355597133702428176134419602160051931823812274538708325328119629419660293102211559158897247464223430070715316610068188075169995173607390273159413073729599663002285391560133032803005324145809498542320942319/69171005865679080805116192745197553936743146778127491628445014149228719516632195993428601364184241694325570308897501794466504355763015991674090032275753543906386364041957503000266249940077862458146827521257517440768326138892186263673940157476537922438310169667984623997354774657585797547359740040386280140433453254961653602051204994301868729700341678413408419088335979860854285428030584998257285624659397393914631805389952520897186723117920856639645035858695810847480593484518166856238091362466500961 pi)) 1e-1000) #t) ;(s7-test (< (abs (- 86506249226122124054607019515040072569389309675677090446756879032293209564976057920114008345082990143050895371432654098617595803586181179031736344131661104245709204440599410618785461104070923873664766537405043170624321277708803595336768044461421851475181966244993926088957647640608814315524675779027527947452743019231877030652479460288601395608061537360792381908211008391170537372395545350366754911899795085297260398105485029514527793853213999006311528934617756311568188335120606938078206683552323219/31823870623143321794788842272907994994917601540780651644441590671647399038540853367332145707942720183928541015066510539504636213034857780420049324239395126123695561521079512763516656025946557452382852551302156382716241918690232497805575429042492016743374932252325803315778289435501557305339709678335435100310171257145989526559485407857600325792028152511795618358674583299689136950642929744615564346477399823659926550178426308547711386364571735861738189405232059295317994009776897697526162381026548407 (exp (bignum "1.0")))) 1e-1000) #t) (s7-test (abs 0+0i) 0.0) (s7-test (abs 1.23 1.23) 'error) (s7-test (abs 1.23+1.0i) 'error) (s7-test (abs) 'error) (s7-test (infinite? (abs #i1/0)) #t) (s7-test (positive? (abs (real-part (log 0.0)))) #t) (s7-test (abs 1.0+0.1i) 'error) (test-end "abs") ;;; -------------------------------------------------------------------------------- ;;; magnitude ;;; -------------------------------------------------------------------------------- (test-begin "magnitude") (num-test (magnitude (make-rectangular (expt 2 62) (expt 2 62))) 6.521908912666391106174785903126254184439E18) (num-test (magnitude -0) 0) (num-test (magnitude -0.0) 0.0) (num-test (magnitude -0.0+0.00000001i) 0.00000001) (num-test (magnitude -0.0+1.0i) 1.0) (num-test (magnitude -0.0+1234.0i) 1234.0) (num-test (magnitude -0.0+1234000000.0i) 1234000000.0) (num-test (magnitude -0.0+2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.0+3.14159265358979i) 3.14159265358979) (num-test (magnitude -0.0-0.00000001i) 0.00000001) (num-test (magnitude -0.0-1.0i) 1.0) (num-test (magnitude -0.0-1234.0i) 1234.0) (num-test (magnitude -0.0-1234000000.0i) 1234000000.0) (num-test (magnitude -0.0-2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.0-3.14159265358979i) 3.14159265358979) (num-test (magnitude -0.00000001) 0.00000001) (num-test (magnitude -0.00000001+0.00000001i) 0.00000001414214) (num-test (magnitude -0.00000001+1.0i) 1.0) (num-test (magnitude -0.00000001+1234.0i) 1234.0) (num-test (magnitude -0.00000001+1234000000.0i) 1234000000.0) (num-test (magnitude -0.00000001+2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.00000001+3.14159265358979i) pi) (num-test (magnitude -0.00000001-0.00000001i) 0.00000001414214) (num-test (magnitude -0.00000001-1.0i) 1.0) (num-test (magnitude -0.00000001-1234.0i) 1234.0) (num-test (magnitude -0.00000001-1234000000.0i) 1234000000.0) (num-test (magnitude -0.00000001-2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.00000001-3.14159265358979i) pi) (num-test (magnitude -0/1) 0/1) (num-test (magnitude -0/10) 0/10) (num-test (magnitude -0/1234) 0/1234) (num-test (magnitude -0/1234000000) 0/1234000000) (num-test (magnitude -0/2) 0/2) (num-test (magnitude -0/3) 0/3) (num-test (magnitude -0/362880) 0/362880) (num-test (magnitude -0/500029) 0/500029) (num-test (magnitude -1) 1) (num-test (magnitude -1.0) 1.0) (num-test (magnitude -1.0+0.00000001i) 1.0) (num-test (magnitude -1.0+1.0i) 1.41421356237310) (num-test (magnitude -1.0+1234.0i) 1234.00040518631931) (num-test (magnitude -1.0+1234000000.0i) 1234000000.0) (num-test (magnitude -1.0+2.71828182845905i) 2.89638673159001) (num-test (magnitude -1.0+3.14159265358979i) 3.29690830947562) (num-test (magnitude -1.0-0.00000001i) 1.0) (num-test (magnitude -1.0-1.0i) 1.41421356237310) (num-test (magnitude -1.0-1234.0i) 1234.00040518631931) (num-test (magnitude -1.0-1234000000.0i) 1234000000.0) (num-test (magnitude -1.0-2.71828182845905i) 2.89638673159001) (num-test (magnitude -1.0-3.14159265358979i) 3.29690830947562) (num-test (magnitude -1.0e+00+0.0e+00i) 1e0) (num-test (magnitude -1.0e+00+1.0e+00i) 1.4142135623730950488e0) (num-test (magnitude -1.0e+00+1.19209289550781250e-07i) 1.0000000000000071054e0) (num-test (magnitude -1.0e+00+2.0e+00i) 2.2360679774997896964e0) (num-test (magnitude -1.0e+00+5.0e-01i) 1.1180339887498948482e0) (num-test (magnitude -1.0e+00+8.3886080e+06i) 8.3886080000000596046e6) (num-test (magnitude -1.0e+00-1.0e+00i) 1.4142135623730950488e0) (num-test (magnitude -1.0e+00-1.19209289550781250e-07i) 1.0000000000000071054e0) (num-test (magnitude -1.0e+00-2.0e+00i) 2.2360679774997896964e0) (num-test (magnitude -1.0e+00-5.0e-01i) 1.1180339887498948482e0) (num-test (magnitude -1.0e+00-8.3886080e+06i) 8.3886080000000596046e6) (num-test (magnitude -1.19209289550781250e-07+0.0e+00i) 1.1920928955078125e-7) (num-test (magnitude -1.19209289550781250e-07+1.0e+00i) 1.0000000000000071054e0) (num-test (magnitude -1.19209289550781250e-07+1.19209289550781250e-07i) 1.6858739404357612715e-7) (num-test (magnitude -1.19209289550781250e-07+2.0e+00i) 2.0000000000000035527e0) (num-test (magnitude -1.19209289550781250e-07+5.0e-01i) 5.0000000000001421085e-1) (num-test (magnitude -1.19209289550781250e-07+8.3886080e+06i) 8.3886080e6) (num-test (magnitude -1.19209289550781250e-07-1.0e+00i) 1.0000000000000071054e0) (num-test (magnitude -1.19209289550781250e-07-1.19209289550781250e-07i) 1.6858739404357612715e-7) (num-test (magnitude -1.19209289550781250e-07-2.0e+00i) 2.0000000000000035527e0) (num-test (magnitude -1.19209289550781250e-07-5.0e-01i) 5.0000000000001421085e-1) (num-test (magnitude -1.19209289550781250e-07-8.3886080e+06i) 8.3886080e6) (num-test (magnitude -1/1) 1/1) (num-test (magnitude -1/10) 1/10) (num-test (magnitude -1/1234) 1/1234) (num-test (magnitude -1/1234000000) 1/1234000000) (num-test (magnitude -1/2) 1/2) (num-test (magnitude -1/3) 1/3) (num-test (magnitude -1/362880) 1/362880) (num-test (magnitude -1/500029) 1/500029) (num-test (magnitude -10) 10) (num-test (magnitude -10/1) 10/1) (num-test (magnitude -10/10) 10/10) (num-test (magnitude -10/1234) 10/1234) (num-test (magnitude -10/1234000000) 10/1234000000) (num-test (magnitude -10/2) 10/2) (num-test (magnitude -10/3) 10/3) (num-test (magnitude -10/362880) 10/362880) (num-test (magnitude -10/500029) 10/500029) (num-test (magnitude -1234) 1234) (num-test (magnitude -1234.0) 1234.0) (num-test (magnitude -1234.0+0.00000001i) 1234.0) (num-test (magnitude -1234.0+1.0i) 1234.00040518631931) (num-test (magnitude -1234.0+1234.0i) 1745.13953596839929) (num-test (magnitude -1234.0+1234000000.0i) 1234000000.00061702728271) (num-test (magnitude -1234.0+2.71828182845905i) 1234.00299394130275) (num-test (magnitude -1234.0+3.14159265358979i) 1234.00399902285608) (num-test (magnitude -1234.0-0.00000001i) 1234.0) (num-test (magnitude -1234.0-1.0i) 1234.00040518631931) (num-test (magnitude -1234.0-1234.0i) 1745.13953596839929) (num-test (magnitude -1234.0-1234000000.0i) 1234000000.00061702728271) (num-test (magnitude -1234.0-2.71828182845905i) 1234.00299394130275) (num-test (magnitude -1234.0-3.14159265358979i) 1234.00399902285608) (num-test (magnitude -1234/1) 1234/1) (num-test (magnitude -1234/10) 1234/10) (num-test (magnitude -1234/1234) 1234/1234) (num-test (magnitude -1234/1234000000) 1234/1234000000) (num-test (magnitude -1234/2) 1234/2) (num-test (magnitude -1234/3) 1234/3) (num-test (magnitude -1234/362880) 1234/362880) (num-test (magnitude -1234/500029) 1234/500029) (num-test (magnitude -1234000000) 1234000000) (num-test (magnitude -1234000000.0) 1234000000.0) (num-test (magnitude -1234000000.0+0.00000001i) 1234000000.0) (num-test (magnitude -1234000000.0+1.0i) 1234000000.0) (num-test (magnitude -1234000000.0+1234.0i) 1234000000.00061702728271) (num-test (magnitude -1234000000.0+1234000000.0i) 1745139535.96839928627014) (num-test (magnitude -1234000000.0+2.71828182845905i) 1234000000.0) (num-test (magnitude -1234000000.0+3.14159265358979i) 1234000000.0) (num-test (magnitude -1234000000.0-0.00000001i) 1234000000.0) (num-test (magnitude -1234000000.0-1.0i) 1234000000.0) (num-test (magnitude -1234000000.0-1234.0i) 1234000000.00061702728271) (num-test (magnitude -1234000000.0-1234000000.0i) 1745139535.96839928627014) (num-test (magnitude -1234000000.0-2.71828182845905i) 1.23400000000000000299394493473690280451E9) (num-test (magnitude -1234000000.0-3.14159265358979i) 1.234000000000000003999029335935712420981E9) (num-test (magnitude -1234000000/1) 1234000000/1) (num-test (magnitude -1234000000/10) 1234000000/10) (num-test (magnitude -1234000000/1234) 1234000000/1234) (num-test (magnitude -1234000000/1234000000) 1234000000/1234000000) (num-test (magnitude -1234000000/2) 1234000000/2) (num-test (magnitude -1234000000/3) 1234000000/3) (num-test (magnitude -1234000000/362880) 1234000000/362880) (num-test (magnitude -1234000000/500029) 1234000000/500029) (num-test (magnitude -2) 2) (num-test (magnitude -2.0e+00+0.0e+00i) 2e0) (num-test (magnitude -2.0e+00+1.0e+00i) 2.2360679774997896964e0) (num-test (magnitude -2.0e+00+1.19209289550781250e-07i) 2.0000000000000035527e0) (num-test (magnitude -2.0e+00+2.0e+00i) 2.8284271247461900976e0) (num-test (magnitude -2.0e+00+5.0e-01i) 2.0615528128088302749e0) (num-test (magnitude -2.0e+00+8.3886080e+06i) 8.3886080000002384186e6) (num-test (magnitude -2.0e+00-1.0e+00i) 2.2360679774997896964e0) (num-test (magnitude -2.0e+00-1.19209289550781250e-07i) 2.0000000000000035527e0) (num-test (magnitude -2.0e+00-2.0e+00i) 2.8284271247461900976e0) (num-test (magnitude -2.0e+00-5.0e-01i) 2.0615528128088302749e0) (num-test (magnitude -2.0e+00-8.3886080e+06i) 8.3886080000002384186e6) (num-test (magnitude -2.71828182845905) 2.71828182845905) (num-test (magnitude -2.71828182845905+0.00000001i) 2.71828182845905) (num-test (magnitude -2.71828182845905+1.0i) 2.89638673159001) (num-test (magnitude -2.71828182845905+1234.0i) 1234.00299394130275) (num-test (magnitude -2.71828182845905+1234000000.0i) 1234000000.0) (num-test (magnitude -2.71828182845905+2.71828182845905i) 3.84423102815912) (num-test (magnitude -2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude -2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude -2.71828182845905-0.00000001i) 2.71828182845905) (num-test (magnitude -2.71828182845905-1.0i) 2.89638673159001) (num-test (magnitude -2.71828182845905-1234.0i) 1234.00299394130275) (num-test (magnitude -2.71828182845905-1234000000.0i) 1234000000.0) (num-test (magnitude -2.71828182845905-2.71828182845905i) 3.84423102815912) (num-test (magnitude -2.71828182845905-3.14159265358979i) 4.15435440231331) (num-test (magnitude -2/1) 2/1) (num-test (magnitude -2/10) 2/10) (num-test (magnitude -2/1234) 2/1234) (num-test (magnitude -2/1234000000) 2/1234000000) (num-test (magnitude -2/2) 2/2) (num-test (magnitude -2/3) 2/3) (num-test (magnitude -2/362880) 2/362880) (num-test (magnitude -2/500029) 2/500029) (num-test (magnitude -3) 3) (num-test (magnitude -3.14159265358979) pi) (num-test (magnitude -3.14159265358979+0.00000001i) pi) (num-test (magnitude -3.14159265358979+1.0i) 3.29690830947562) (num-test (magnitude -3.14159265358979+1234.0i) 1234.00399902285608) (num-test (magnitude -3.14159265358979+1234000000.0i) 1234000000.0) (num-test (magnitude -3.14159265358979+2.71828182845905i) 4.15435440231331) (num-test (magnitude -3.14159265358979+3.14159265358979i) 4.44288293815837) (num-test (magnitude -3.14159265358979-0.00000001i) pi) (num-test (magnitude -3.14159265358979-1.0i) 3.29690830947562) (num-test (magnitude -3.14159265358979-1234.0i) 1234.00399902285608) (num-test (magnitude -3.14159265358979-1234000000.0i) 1234000000.0) (num-test (magnitude -3.14159265358979-2.71828182845905i) 4.15435440231331) (num-test (magnitude -3.14159265358979-3.14159265358979i) 4.44288293815837) (num-test (magnitude -3/1) 3/1) (num-test (magnitude -3/10) 3/10) (num-test (magnitude -3/1234) 3/1234) (num-test (magnitude -3/1234000000) 3/1234000000) (num-test (magnitude -3/2) 3/2) (num-test (magnitude -3/3) 3/3) (num-test (magnitude -3/362880) 3/362880) (num-test (magnitude -3/500029) 3/500029) (num-test (magnitude -362880) 362880) (num-test (magnitude -362880/1) 362880/1) (num-test (magnitude -362880/10) 362880/10) (num-test (magnitude -362880/1234) 362880/1234) (num-test (magnitude -362880/1234000000) 362880/1234000000) (num-test (magnitude -362880/2) 362880/2) (num-test (magnitude -362880/3) 362880/3) (num-test (magnitude -362880/362880) 362880/362880) (num-test (magnitude -362880/500029) 362880/500029) (num-test (magnitude -5.0e-01+0.0e+00i) 5e-1) (num-test (magnitude -5.0e-01+1.0e+00i) 1.1180339887498948482e0) (num-test (magnitude -5.0e-01+1.19209289550781250e-07i) 5.0000000000001421085e-1) (num-test (magnitude -5.0e-01+2.0e+00i) 2.0615528128088302749e0) (num-test (magnitude -5.0e-01+5.0e-01i) 7.0710678118654752440e-1) (num-test (magnitude -5.0e-01+8.3886080e+06i) 8.3886080000000149012e6) (num-test (magnitude -5.0e-01-1.0e+00i) 1.1180339887498948482e0) (num-test (magnitude -5.0e-01-1.19209289550781250e-07i) 5.0000000000001421085e-1) (num-test (magnitude -5.0e-01-2.0e+00i) 2.0615528128088302749e0) (num-test (magnitude -5.0e-01-5.0e-01i) 7.0710678118654752440e-1) (num-test (magnitude -5.0e-01-8.3886080e+06i) 8.3886080000000149012e6) (num-test (magnitude -500029) 500029) (num-test (magnitude -500029/1) 500029/1) (num-test (magnitude -500029/10) 500029/10) (num-test (magnitude -500029/1234) 500029/1234) (num-test (magnitude -500029/1234000000) 500029/1234000000) (num-test (magnitude -500029/2) 500029/2) (num-test (magnitude -500029/3) 500029/3) (num-test (magnitude -500029/362880) 500029/362880) (num-test (magnitude -500029/500029) 500029/500029) (num-test (magnitude -8.3886080e+06+0.0e+00i) 8.388608e6) (num-test (magnitude -8.3886080e+06+1.0e+00i) 8.3886080000000596046e6) (num-test (magnitude -8.3886080e+06+1.19209289550781250e-07i) 8.3886080e6) (num-test (magnitude -8.3886080e+06+2.0e+00i) 8.3886080000002384186e6) (num-test (magnitude -8.3886080e+06+5.0e-01i) 8.3886080000000149012e6) (num-test (magnitude -8.3886080e+06+8.3886080e+06i) 1.1863283203031444111e7) (num-test (magnitude -8.3886080e+06-1.0e+00i) 8.3886080000000596046e6) (num-test (magnitude -8.3886080e+06-1.19209289550781250e-07i) 8.3886080e6) (num-test (magnitude -8.3886080e+06-2.0e+00i) 8.3886080000002384186e6) (num-test (magnitude -8.3886080e+06-5.0e-01i) 8.3886080000000149012e6) (num-test (magnitude -8.3886080e+06-8.3886080e+06i) 1.1863283203031444111e7) (num-test (magnitude .1e-18-.1e-18i) 1.4142135623731e-19) (num-test (magnitude #e.1e200+.1e200i) +inf.0) (num-test (magnitude 0) 0) (num-test (magnitude 0.0) 0.0) (num-test (magnitude 0.0+0.00000001i) 0.00000001) (num-test (magnitude 0.0+0.00000001i) 0.00000001) (num-test (magnitude 0.0+1.0i) 1.0) (num-test (magnitude 0.0+1234.0i) 1234.0) (num-test (magnitude 0.0+1234000000.0i) 1234000000.0) (num-test (magnitude 0.0+2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.0+3.14159265358979i) 3.14159265358979) (num-test (magnitude 0.0-0.00000001i) 0.00000001) (num-test (magnitude 0.0-1.0i) 1.0) (num-test (magnitude 0.0-1234.0i) 1234.0) (num-test (magnitude 0.0-1234000000.0i) 1234000000.0) (num-test (magnitude 0.0-2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.0-3.14159265358979i) 3.14159265358979) (num-test (magnitude 0.00000001) 0.00000001) (num-test (magnitude 0.00000001+0.00000001i) 0.00000001414214) (num-test (magnitude 0.00000001+1.0i) 1.0) (num-test (magnitude 0.00000001+1234.0i) 1234.0) (num-test (magnitude 0.00000001+1234000000.0i) 1234000000.0) (num-test (magnitude 0.00000001+2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.00000001+3.14159265358979i) pi) (num-test (magnitude 0.00000001-0.00000001i) 0.00000001414214) (num-test (magnitude 0.00000001-1.0i) 1.0) (num-test (magnitude 0.00000001-1234.0i) 1234.0) (num-test (magnitude 0.00000001-1234000000.0i) 1234000000.0) (num-test (magnitude 0.00000001-2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.00000001-3.14159265358979i) pi) (num-test (magnitude 0.0e+00+0.0e+00i) 0e0) (num-test (magnitude 0.0e+00+1.0e+00i) 1e0) (num-test (magnitude 0.0e+00+1.19209289550781250e-07i) 1.1920928955078125e-7) (num-test (magnitude 0.0e+00+2.0e+00i) 2e0) (num-test (magnitude 0.0e+00+5.0e-01i) 5e-1) (num-test (magnitude 0.0e+00+8.3886080e+06i) 8.388608e6) (num-test (magnitude 0.0e+00-1.0e+00i) 1e0) (num-test (magnitude 0.0e+00-1.19209289550781250e-07i) 1.1920928955078125e-7) (num-test (magnitude 0.0e+00-2.0e+00i) 2e0) (num-test (magnitude 0.0e+00-5.0e-01i) 5e-1) (num-test (magnitude 0.0e+00-8.3886080e+06i) 8.388608e6) (num-test (magnitude 0/1) 0/1) (num-test (magnitude 0/10) 0/10) (num-test (magnitude 0/1234) 0/1234) (num-test (magnitude 0/1234000000) 0/1234000000) (num-test (magnitude 0/2) 0/2) (num-test (magnitude 0/3) 0/3) (num-test (magnitude 0/362880) 0/362880) (num-test (magnitude 0/500029) 0/500029) (num-test (magnitude 1) 1) (num-test (magnitude 1.0) 1.0) (num-test (magnitude 1.0+0.00000001i) 1.0) (num-test (magnitude 1.0+1.0i) 1.41421356237310) (num-test (magnitude 1.0+1.0i) 1.41421356237310) (num-test (magnitude 1.0+1234.0i) 1234.00040518631931) (num-test (magnitude 1.0+1234000000.0i) 1234000000.0) (num-test (magnitude 1.0+2.71828182845905i) 2.89638673159001) (num-test (magnitude 1.0+3.14159265358979i) 3.29690830947562) (num-test (magnitude 1.0-0.00000001i) 1.0) (num-test (magnitude 1.0-1.0i) 1.41421356237310) (num-test (magnitude 1.0-1234.0i) 1234.00040518631931) (num-test (magnitude 1.0-1234000000.0i) 1234000000.0) (num-test (magnitude 1.0-2.71828182845905i) 2.89638673159001) (num-test (magnitude 1.0-3.14159265358979i) 3.29690830947562) (num-test (magnitude 1.0e+00+0.0e+00i) 1e0) (num-test (magnitude 1.0e+00+1.0e+00i) 1.4142135623730950488e0) (num-test (magnitude 1.0e+00+1.19209289550781250e-07i) 1.0000000000000071054e0) (num-test (magnitude 1.0e+00+2.0e+00i) 2.2360679774997896964e0) (num-test (magnitude 1.0e+00+5.0e-01i) 1.1180339887498948482e0) (num-test (magnitude 1.0e+00+8.3886080e+06i) 8.3886080000000596046e6) (num-test (magnitude 1.0e+00-1.0e+00i) 1.4142135623730950488e0) (num-test (magnitude 1.0e+00-1.19209289550781250e-07i) 1.0000000000000071054e0) (num-test (magnitude 1.0e+00-2.0e+00i) 2.2360679774997896964e0) (num-test (magnitude 1.0e+00-5.0e-01i) 1.1180339887498948482e0) (num-test (magnitude 1.0e+00-8.3886080e+06i) 8.3886080000000596046e6) (num-test (magnitude 1.19209289550781250e-07+0.0e+00i) 1.1920928955078125e-7) (num-test (magnitude 1.19209289550781250e-07+1.0e+00i) 1.0000000000000071054e0) (num-test (magnitude 1.19209289550781250e-07+1.19209289550781250e-07i) 1.6858739404357612715e-7) (num-test (magnitude 1.19209289550781250e-07+2.0e+00i) 2.0000000000000035527e0) (num-test (magnitude 1.19209289550781250e-07+5.0e-01i) 5.0000000000001421085e-1) (num-test (magnitude 1.19209289550781250e-07+8.3886080e+06i) 8.3886080e6) (num-test (magnitude 1.19209289550781250e-07-1.0e+00i) 1.0000000000000071054e0) (num-test (magnitude 1.19209289550781250e-07-1.19209289550781250e-07i) 1.6858739404357612715e-7) (num-test (magnitude 1.19209289550781250e-07-2.0e+00i) 2.0000000000000035527e0) (num-test (magnitude 1.19209289550781250e-07-5.0e-01i) 5.0000000000001421085e-1) (num-test (magnitude 1.19209289550781250e-07-8.3886080e+06i) 8.3886080e6) (num-test (magnitude 1/1) 1/1) (num-test (magnitude 1/10) 1/10) (num-test (magnitude 1/1234) 1/1234) (num-test (magnitude 1/1234000000) 1/1234000000) (num-test (magnitude 1/2) 1/2) (num-test (magnitude 1/3) 1/3) (num-test (magnitude 1/362880) 1/362880) (num-test (magnitude 1/500029) 1/500029) (num-test (magnitude 10) 10) (num-test (magnitude 10/1) 10/1) (num-test (magnitude 10/10) 10/10) (num-test (magnitude 10/1234) 10/1234) (num-test (magnitude 10/1234000000) 10/1234000000) (num-test (magnitude 10/2) 10/2) (num-test (magnitude 10/3) 10/3) (num-test (magnitude 10/362880) 10/362880) (num-test (magnitude 10/500029) 10/500029) (num-test (magnitude 1234) 1234) (num-test (magnitude 1234.0) 1234.0) (num-test (magnitude 1234.0+0.00000001i) 1234.0) (num-test (magnitude 1234.0+1.0i) 1234.00040518631931) (num-test (magnitude 1234.0+1234.0i) 1745.13953596839929) (num-test (magnitude 1234.0+1234000000.0i) 1234000000.00061702728271) (num-test (magnitude 1234.0+2.71828182845905i) 1234.00299394130275) (num-test (magnitude 1234.0+3.14159265358979i) 1234.00399902285608) (num-test (magnitude 1234.0-0.00000001i) 1234.0) (num-test (magnitude 1234.0-1.0i) 1234.00040518631931) (num-test (magnitude 1234.0-1234.0i) 1745.13953596839929) (num-test (magnitude 1234.0-1234000000.0i) 1234000000.00061702728271) (num-test (magnitude 1234.0-2.71828182845905i) 1234.00299394130275) (num-test (magnitude 1234.0-3.14159265358979i) 1234.00399902285608) (num-test (magnitude 1234/1) 1234/1) (num-test (magnitude 1234/10) 1234/10) (num-test (magnitude 1234/1234) 1234/1234) (num-test (magnitude 1234/1234000000) 1234/1234000000) (num-test (magnitude 1234/2) 1234/2) (num-test (magnitude 1234/3) 1234/3) (num-test (magnitude 1234/362880) 1234/362880) (num-test (magnitude 1234/500029) 1234/500029) (num-test (magnitude 1234000000) 1234000000) (num-test (magnitude 1234000000.0) 1234000000.0) (num-test (magnitude 1234000000.0+0.00000001i) 1234000000.0) (num-test (magnitude 1234000000.0+1.0i) 1234000000.0) (num-test (magnitude 1234000000.0+1234.0i) 1234000000.00061702728271) (num-test (magnitude 1234000000.0+1234000000.0i) 1745139535.96839928627014) (num-test (magnitude 1234000000.0+2.71828182845905i) 1234000000.0) (num-test (magnitude 1234000000.0-0.00000001i) 1234000000.0) (num-test (magnitude 1234000000.0-1.0i) 1234000000.0) (num-test (magnitude 1234000000.0-1234.0i) 1234000000.00061702728271) (num-test (magnitude 1234000000.0-1234000000.0i) 1745139535.96839928627014) (num-test (magnitude 1234000000.0-2.71828182845905i) 1234000000.0) (num-test (magnitude 1234000000.0-3.14159265358979i) 1234000000.0) (num-test (magnitude 1234000000/1) 1234000000/1) (num-test (magnitude 1234000000/10) 1234000000/10) (num-test (magnitude 1234000000/1234) 1234000000/1234) (num-test (magnitude 1234000000/1234000000) 1234000000/1234000000) (num-test (magnitude 1234000000/2) 1234000000/2) (num-test (magnitude 1234000000/3) 1234000000/3) (num-test (magnitude 1234000000/362880) 1234000000/362880) (num-test (magnitude 1234000000/500029) 1234000000/500029) (num-test (magnitude 1e18+1e18i) 1.414213562373095048801688724209698078569E18) (num-test (magnitude 2) 2) (num-test (magnitude 2.0e+00+0.0e+00i) 2e0) (num-test (magnitude 2.0e+00+1.0e+00i) 2.2360679774997896964e0) (num-test (magnitude 2.0e+00+1.19209289550781250e-07i) 2.0000000000000035527e0) (num-test (magnitude 2.0e+00+2.0e+00i) 2.8284271247461900976e0) (num-test (magnitude 2.0e+00+5.0e-01i) 2.0615528128088302749e0) (num-test (magnitude 2.0e+00+8.3886080e+06i) 8.3886080000002384186e6) (num-test (magnitude 2.0e+00-1.0e+00i) 2.2360679774997896964e0) (num-test (magnitude 2.0e+00-1.19209289550781250e-07i) 2.0000000000000035527e0) (num-test (magnitude 2.0e+00-2.0e+00i) 2.8284271247461900976e0) (num-test (magnitude 2.0e+00-5.0e-01i) 2.0615528128088302749e0) (num-test (magnitude 2.0e+00-8.3886080e+06i) 8.3886080000002384186e6) (num-test (magnitude 2.71828182845905) 2.71828182845905) (num-test (magnitude 2.71828182845905+0.00000001i) 2.71828182845905) (num-test (magnitude 2.71828182845905+1.0i) 2.89638673159001) (num-test (magnitude 2.71828182845905+1234.0i) 1234.00299394130275) (num-test (magnitude 2.71828182845905+1234000000.0i) 1234000000.0) (num-test (magnitude 2.71828182845905+2.71828182845905i) 3.84423102815912) (num-test (magnitude 2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude 2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude 2.71828182845905-0.00000001i) 2.71828182845905) (num-test (magnitude 2.71828182845905-1.0i) 2.89638673159001) (num-test (magnitude 2.71828182845905-1234.0i) 1234.00299394130275) (num-test (magnitude 2.71828182845905-1234000000.0i) 1234000000.0) (num-test (magnitude 2.71828182845905-2.71828182845905i) 3.84423102815912) (num-test (magnitude 2.71828182845905-3.14159265358979i) 4.15435440231331) (num-test (magnitude 2/1) 2/1) (num-test (magnitude 2/10) 2/10) (num-test (magnitude 2/1234) 2/1234) (num-test (magnitude 2/1234000000) 2/1234000000) (num-test (magnitude 2/2) 2/2) (num-test (magnitude 2/3) 2/3) (num-test (magnitude 2/362880) 2/362880) (num-test (magnitude 2/500029) 2/500029) (num-test (magnitude 3) 3) (num-test (magnitude 3.14159265358979+0.00000001i) pi) (num-test (magnitude 3.14159265358979+1.0i) 3.29690830947562) (num-test (magnitude 3.14159265358979+1234.0i) 1234.00399902285608) (num-test (magnitude 3.14159265358979+1234000000.0i) 1234000000.0) (num-test (magnitude 3.14159265358979+2.71828182845905i) 4.15435440231331) (num-test (magnitude 3.14159265358979+3.14159265358979i) 4.44288293815837) (num-test (magnitude 3.14159265358979-0.00000001i) pi) (num-test (magnitude 3.14159265358979-1.0i) 3.29690830947562) (num-test (magnitude 3.14159265358979-1234.0i) 1234.00399902285608) (num-test (magnitude 3.14159265358979-1234000000.0i) 1234000000.0) (num-test (magnitude 3.14159265358979-2.71828182845905i) 4.15435440231331) (num-test (magnitude 3.14159265358979-3.14159265358979i) 4.44288293815837) (num-test (magnitude 3/1) 3/1) (num-test (magnitude 3/10) 3/10) (num-test (magnitude 3/1234) 3/1234) (num-test (magnitude 3/1234000000) 3/1234000000) (num-test (magnitude 3/2) 3/2) (num-test (magnitude 3/3) 3/3) (num-test (magnitude 3/362880) 3/362880) (num-test (magnitude 3/500029) 3/500029) (num-test (magnitude 362880) 362880) (num-test (magnitude 362880/1) 362880/1) (num-test (magnitude 362880/10) 362880/10) (num-test (magnitude 362880/1234) 362880/1234) (num-test (magnitude 362880/1234000000) 362880/1234000000) (num-test (magnitude 362880/2) 362880/2) (num-test (magnitude 362880/3) 362880/3) (num-test (magnitude 362880/362880) 362880/362880) (num-test (magnitude 362880/500029) 362880/500029) (num-test (magnitude 5.0e-01+0.0e+00i) 5e-1) (num-test (magnitude 5.0e-01+1.0e+00i) 1.1180339887498948482e0) (num-test (magnitude 5.0e-01+1.19209289550781250e-07i) 5.0000000000001421085e-1) (num-test (magnitude 5.0e-01+2.0e+00i) 2.0615528128088302749e0) (num-test (magnitude 5.0e-01+5.0e-01i) 7.0710678118654752440e-1) (num-test (magnitude 5.0e-01+8.3886080e+06i) 8.3886080000000149012e6) (num-test (magnitude 5.0e-01-1.0e+00i) 1.1180339887498948482e0) (num-test (magnitude 5.0e-01-1.19209289550781250e-07i) 5.0000000000001421085e-1) (num-test (magnitude 5.0e-01-2.0e+00i) 2.0615528128088302749e0) (num-test (magnitude 5.0e-01-5.0e-01i) 7.0710678118654752440e-1) (num-test (magnitude 5.0e-01-8.3886080e+06i) 8.3886080000000149012e6) (num-test (magnitude 500029) 500029) (num-test (magnitude 500029/1) 500029/1) (num-test (magnitude 500029/10) 500029/10) (num-test (magnitude 500029/1234) 500029/1234) (num-test (magnitude 500029/1234000000) 500029/1234000000) (num-test (magnitude 500029/2) 500029/2) (num-test (magnitude 500029/3) 500029/3) (num-test (magnitude 500029/362880) 500029/362880) (num-test (magnitude 500029/500029) 500029/500029) (num-test (magnitude 8.3886080e+06+0.0e+00i) 8.388608e6) (num-test (magnitude 8.3886080e+06+1.0e+00i) 8.3886080000000596046e6) (num-test (magnitude 8.3886080e+06+1.19209289550781250e-07i) 8.3886080e6) (num-test (magnitude 8.3886080e+06+2.0e+00i) 8.3886080000002384186e6) (num-test (magnitude 8.3886080e+06+5.0e-01i) 8.3886080000000149012e6) (num-test (magnitude 8.3886080e+06+8.3886080e+06i) 1.1863283203031444111e7) (num-test (magnitude 8.3886080e+06-1.0e+00i) 8.3886080000000596046e6) (num-test (magnitude 8.3886080e+06-1.19209289550781250e-07i) 8.3886080e6) (num-test (magnitude 8.3886080e+06-2.0e+00i) 8.3886080000002384186e6) (num-test (magnitude 8.3886080e+06-5.0e-01i) 8.3886080000000149012e6) (num-test (magnitude 8.3886080e+06-8.3886080e+06i) 1.1863283203031444111e7) (num-test (magnitude most-positive-fixnum) most-positive-fixnum) (num-test (magnitude pi) pi) (num-test (magnitude -2.225073858507201399999999999999999999996E-308) 2.225073858507201399999999999999999999996E-308) (num-test (magnitude -9223372036854775808) 9223372036854775808) (num-test (magnitude 1.110223024625156799999999999999999999997E-16) 1.110223024625156799999999999999999999997E-16) (num-test (magnitude 9223372036854775807) 9223372036854775807) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 magnitude num (magnitude num) val))) (list (list 0 0) (list 1 1) (list 2 2) (list 3 3) (list -1 1) (list -2 2) (list -3 3) (list 9223372036854775807 9223372036854775807) (list 1/2 1/2) (list 1/3 1/3) (list -1/2 1/2) (list -1/3 1/3) (list 1/9223372036854775807 1/9223372036854775807) (list 0.0 0.0) (list 1.0 1.0) (list 2.0 2.0) (list -2.0 2.0) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309) (list 1e+16 1e+16) (list 0+1i 1.0) (list 0+2i 2.0) (list 0-1i 1.0) (list 1+1i 1.4142135623731) (list 1-1i 1.4142135623731) (list -1+1i 1.4142135623731) (list -1-1i 1.4142135623731) (list 0.1+0.1i 0.14142135623731) (list 1e+16+1e+16i 1.4142135623731e+16) (list 1e-16+1e-16i 1.4142135623731e-16) )) (num-test (magnitude (make-rectangular (expt 2 63) (expt 2 63))) 1.304381782533278221234957180625250836888E19) (num-test (magnitude 1e400+1e400i) 1.414213562373095048801688724209698078569E400) (num-test (magnitude .1e400+.1e400i) 1.41421356237309504880168872420969807857E399) ;; Overflow ;(num-test (magnitude .001e310+.001e310i) 1.414213562373095048801688724209698078572E307) (num-test (magnitude .001e310+.001e310i) +inf.0) (num-test (magnitude 1e-310+1e-310i) 1.414213562373095048801688724209698078569E-310) (num-test (magnitude 1e-400+1e-400i) 1.414213562373095048801688724209698078568E-400) (num-test (magnitude -1.797693134862315699999999999999999999998E308) 1.797693134862315699999999999999999999998E308) (num-test (magnitude 9223372036854775808.1) 9223372036854775808.1) (num-test (magnitude 9223372036854775808) 9223372036854775808) (num-test (magnitude 9223372036854775808/3) 9223372036854775808/3) (num-test (magnitude 9223372036854775808.1+1.0e19i) 1.360406526484765934746566522678055771386E19) (num-test (magnitude 1.0e19+9223372036854775808.1i) 1.360406526484765934746566522678055771386E19) (num-test (magnitude 14142135623730950488.0168872420969+14142135623730950488.0168872420969i) 1.9999999999999999999999999999999885751772054578776001965575456E19) (s7-test (magnitude "hi") 'error) (s7-test (magnitude 1.0+23.0i 1.0+23.0i) 'error) (s7-test (magnitude) 'error) (test-end "magnitude") ;;; -------------------------------------------------------------------------------- ;;; angle ;;; -------------------------------------------------------------------------------- (test-begin "angle") (num-test (angle (make-polar 1.0 (+ pi .0001))) (- .0001 pi)) (num-test (angle (make-polar 1.0 (- pi .0001))) (- pi .0001)) (num-test (angle -0) 0.0) (num-test (angle -0.0+0.00000001i) 1.57079632679490) (num-test (angle -0.0+1.0i) 1.57079632679490) (num-test (angle -0.0+1234.0i) 1.57079632679490) (num-test (angle -0.0+1234000000.0i) 1.57079632679490) (num-test (angle -0.0+2.71828182845905i) 1.57079632679490) (num-test (angle -0.0+3.14159265358979i) 1.57079632679490) (num-test (angle -0.0-0.00000001i) -1.57079632679490) (num-test (angle -0.0-1.0i) -1.57079632679490) (num-test (angle -0.0-1234.0i) -1.57079632679490) (num-test (angle -0.0-1234000000.0i) -1.57079632679490) (num-test (angle -0.0-2.71828182845905i) -1.57079632679490) (num-test (angle -0.0-3.14159265358979i) -1.57079632679490) (num-test (angle -0.00000001) pi) (num-test (angle -0.00000001+0.00000001i) 2.35619449019234) (num-test (angle -0.00000001+1.0i) 1.57079633679490) (num-test (angle -0.00000001+1234.0i) 1.57079632680300) (num-test (angle -0.00000001+1234000000.0i) 1.57079632679490) (num-test (angle -0.00000001+2.71828182845905i) 1.57079633047369) (num-test (angle -0.00000001+3.14159265358979i) 1.57079632997800) (num-test (angle -0.00000001-0.00000001i) -2.35619449019234) (num-test (angle -0.00000001-1.0i) -1.57079633679490) (num-test (angle -0.00000001-1234.0i) -1.57079632680300) (num-test (angle -0.00000001-1234000000.0i) -1.57079632679490) (num-test (angle -0.00000001-2.71828182845905i) -1.57079633047369) (num-test (angle -0.00000001-3.14159265358979i) -1.57079632997800) (num-test (angle -1) pi) (num-test (angle -1.0) pi) (num-test (angle -1.0+0.00000001i) 3.14159264358979) (num-test (angle -1.0+1.0i) 2.35619449019234) (num-test (angle -1.0+1234.0i) 1.57160669938898) (num-test (angle -1.0+1234000000.0i) 1.57079632760527) (num-test (angle -1.0+2.71828182845905i) 1.92330974857252) (num-test (angle -1.0+3.14159265358979i) 1.87896539791088) (num-test (angle -1.0-0.00000001i) -3.14159264358979) (num-test (angle -1.0-1.0i) -2.35619449019234) (num-test (angle -1.0-1234.0i) -1.57160669938898) (num-test (angle -1.0-1234000000.0i) -1.57079632760527) (num-test (angle -1.0-2.71828182845905i) -1.92330974857252) (num-test (angle -1.0-3.14159265358979i) -1.87896539791088) (num-test (angle -1.0e+00+0.0e+00i) 3.1415926535897932385e0) (num-test (angle -1.0e+00+1.0e+00i) 2.3561944901923449288e0) (num-test (angle -1.0e+00+1.19209289550781250e-07i) 3.1415925343805036877e0) (num-test (angle -1.0e+00+2.0e+00i) 2.0344439357957027354e0) (num-test (angle -1.0e+00+5.0e-01i) 2.6779450445889871222e0) (num-test (angle -1.0e+00+8.3886080e+06i) 1.570796446004186170e0) (num-test (angle -1.0e+00-1.0e+00i) -2.3561944901923449288e0) (num-test (angle -1.0e+00-1.19209289550781250e-07i) -3.1415925343805036877e0) (num-test (angle -1.0e+00-2.0e+00i) -2.0344439357957027354e0) (num-test (angle -1.0e+00-5.0e-01i) -2.6779450445889871222e0) (num-test (angle -1.0e+00-8.3886080e+06i) -1.570796446004186170e0) (num-test (angle -1.19209289550781250e-07+0.0e+00i) 3.1415926535897932385e0) (num-test (angle -1.19209289550781250e-07+1.0e+00i) 1.570796446004186170e0) (num-test (angle -1.19209289550781250e-07+1.19209289550781250e-07i) 2.3561944901923449288e0) (num-test (angle -1.19209289550781250e-07+2.0e+00i) 1.5707963863995413946e0) (num-test (angle -1.19209289550781250e-07+5.0e-01i) 1.5707965652134757208e0) (num-test (angle -1.19209289550781250e-07+8.3886080e+06i) 1.5707963267949108301e0) (num-test (angle -1.19209289550781250e-07-1.0e+00i) -1.570796446004186170e0) (num-test (angle -1.19209289550781250e-07-1.19209289550781250e-07i) -2.3561944901923449288e0) (num-test (angle -1.19209289550781250e-07-2.0e+00i) -1.5707963863995413946e0) (num-test (angle -1.19209289550781250e-07-5.0e-01i) -1.5707965652134757208e0) (num-test (angle -1.19209289550781250e-07-8.3886080e+06i) -1.5707963267949108301e0) (num-test (angle -1/1) pi) (num-test (angle -1/10) pi) (num-test (angle -1/1234) pi) (num-test (angle -1/1234000000) pi) (num-test (angle -1/2) pi) (num-test (angle -1/3) pi) (num-test (angle -1/362880) pi) (num-test (angle -1/500029) pi) (num-test (angle -10) pi) (num-test (angle -10/1) pi) (num-test (angle -10/10) pi) (num-test (angle -10/1234) pi) (num-test (angle -10/1234000000) pi) (num-test (angle -10/2) pi) (num-test (angle -10/3) pi) (num-test (angle -10/362880) pi) (num-test (angle -10/500029) pi) (num-test (angle -1234) pi) (num-test (angle -1234.0) pi) (num-test (angle -1234.0+0.00000001i) 3.14159265358169) (num-test (angle -1234.0+1.0i) 3.14078228099571) (num-test (angle -1234.0+1234.0i) 2.35619449019234) (num-test (angle -1234.0+1234000000.0i) 1.57079732679490) (num-test (angle -1234.0+2.71828182845905i) 3.13938983557381) (num-test (angle -1234.0+3.14159265358979i) 3.13904679794449) (num-test (angle -1234.0-0.00000001i) -3.14159265358169) (num-test (angle -1234.0-1.0i) -3.14078228099571) (num-test (angle -1234.0-1234.0i) -2.35619449019234) (num-test (angle -1234.0-1234000000.0i) -1.57079732679490) (num-test (angle -1234.0-2.71828182845905i) -3.13938983557381) (num-test (angle -1234.0-3.14159265358979i) -3.13904679794449) (num-test (angle -1234/1) pi) (num-test (angle -1234/10) pi) (num-test (angle -1234/1234) pi) (num-test (angle -1234/1234000000) pi) (num-test (angle -1234/2) pi) (num-test (angle -1234/3) pi) (num-test (angle -1234/362880) pi) (num-test (angle -1234/500029) pi) (num-test (angle -1234000000) pi) (num-test (angle -1234000000.0) pi) (num-test (angle -1234000000.0+0.00000001i) pi) (num-test (angle -1234000000.0+1.0i) 3.14159265277942) (num-test (angle -1234000000.0+1234.0i) 3.14159165358979) (num-test (angle -1234000000.0+1234000000.0i) 2.35619449019234) (num-test (angle -1234000000.0+2.71828182845905i) 3.14159265138697) (num-test (angle -1234000000.0+3.14159265358979i) 3.14159265104393) (num-test (angle -1234000000.0-0.00000001i) -3.14159265358979) (num-test (angle -1234000000.0-1.0i) -3.14159265277942) (num-test (angle -1234000000.0-1234.0i) -3.14159165358979) (num-test (angle -1234000000.0-1234000000.0i) -2.35619449019234) (num-test (angle -1234000000.0-2.71828182845905i) -3.14159265138697) (num-test (angle -1234000000.0-3.14159265358979i) -3.14159265104393) (num-test (angle -1234000000/1) pi) (num-test (angle -1234000000/10) pi) (num-test (angle -1234000000/1234) pi) (num-test (angle -1234000000/1234000000) pi) (num-test (angle -1234000000/2) pi) (num-test (angle -1234000000/3) pi) (num-test (angle -1234000000/362880) pi) (num-test (angle -1234000000/500029) pi) (num-test (angle -2) pi) (num-test (angle -2.0e+00+0.0e+00i) 3.1415926535897932385e0) (num-test (angle -2.0e+00+1.0e+00i) 2.6779450445889871222e0) (num-test (angle -2.0e+00+1.19209289550781250e-07i) 3.1415925939851484631e0) (num-test (angle -2.0e+00+2.0e+00i) 2.3561944901923449288e0) (num-test (angle -2.0e+00+5.0e-01i) 2.8966139904629290843e0) (num-test (angle -2.0e+00+8.3886080e+06i) 1.5707965652134757208e0) (num-test (angle -2.0e+00-1.0e+00i) -2.6779450445889871222e0) (num-test (angle -2.0e+00-1.19209289550781250e-07i) -3.1415925939851484631e0) (num-test (angle -2.0e+00-2.0e+00i) -2.3561944901923449288e0) (num-test (angle -2.0e+00-5.0e-01i) -2.8966139904629290843e0) (num-test (angle -2.0e+00-8.3886080e+06i) -1.5707965652134757208e0) (num-test (angle -2.225073858507201399999999999999999999996E-308) 3.141592653589793238462643383279502884195E0) (num-test (angle -2.71828182845905) pi) (num-test (angle -2.71828182845905+0.00000001i) 3.14159264991100) (num-test (angle -2.71828182845905+1.0i) 2.78907923181217) (num-test (angle -2.71828182845905+1234.0i) 1.57299914481088) (num-test (angle -2.71828182845905+1234000000.0i) 1.57079632899772) (num-test (angle -2.71828182845905+2.71828182845905i) 2.35619449019234) (num-test (angle -2.71828182845905+3.14159265358979i) 2.28408086723395) (num-test (angle -2.71828182845905-0.00000001i) -3.14159264991100) (num-test (angle -2.71828182845905-1.0i) -2.78907923181217) (num-test (angle -2.71828182845905-1234.0i) -1.57299914481088) (num-test (angle -2.71828182845905-1234000000.0i) -1.57079632899772) (num-test (angle -2.71828182845905-2.71828182845905i) -2.35619449019234) (num-test (angle -2.71828182845905-3.14159265358979i) -2.28408086723395) (num-test (angle -2/1) pi) (num-test (angle -2/10) pi) (num-test (angle -2/1234) pi) (num-test (angle -2/1234000000) pi) (num-test (angle -2/2) pi) (num-test (angle -2/3) pi) (num-test (angle -2/362880) pi) (num-test (angle -2/500029) pi) (num-test (angle -3) pi) (num-test (angle -3.14159265358979) pi) (num-test (angle -3.14159265358979+0.00000001i) 3.14159265040669) (num-test (angle -3.14159265358979+1.0i) 2.83342358247381) (num-test (angle -3.14159265358979+1234.0i) 1.57334218244020) (num-test (angle -3.14159265358979+1234000000.0i) 1.57079632934076) (num-test (angle -3.14159265358979+2.71828182845905i) 2.42830811315074) (num-test (angle -3.14159265358979+3.14159265358979i) 2.35619449019234) (num-test (angle -3.14159265358979-0.00000001i) -3.14159265040669) (num-test (angle -3.14159265358979-1.0i) -2.83342358247381) (num-test (angle -3.14159265358979-1234.0i) -1.57334218244020) (num-test (angle -3.14159265358979-1234000000.0i) -1.57079632934076) (num-test (angle -3.14159265358979-2.71828182845905i) -2.42830811315074) (num-test (angle -3.14159265358979-3.14159265358979i) -2.35619449019234) (num-test (angle -3/1) pi) (num-test (angle -3/10) pi) (num-test (angle -3/1234) pi) (num-test (angle -3/1234000000) pi) (num-test (angle -3/2) pi) (num-test (angle -3/3) pi) (num-test (angle -3/362880) pi) (num-test (angle -3/500029) pi) (num-test (angle -362880) pi) (num-test (angle -362880/1) pi) (num-test (angle -362880/10) pi) (num-test (angle -362880/1234) pi) (num-test (angle -362880/1234000000) pi) (num-test (angle -362880/2) pi) (num-test (angle -362880/3) pi) (num-test (angle -362880/362880) pi) (num-test (angle -362880/500029) pi) (num-test (angle -5.0e-01+0.0e+00i) 3.1415926535897932385e0) (num-test (angle -5.0e-01+1.0e+00i) 2.0344439357957027354e0) (num-test (angle -5.0e-01+1.19209289550781250e-07i) 3.1415924151712141369e0) (num-test (angle -5.0e-01+2.0e+00i) 1.8157749899217607734e0) (num-test (angle -5.0e-01+5.0e-01i) 2.3561944901923449288e0) (num-test (angle -5.0e-01+8.3886080e+06i) 1.5707963863995413946e0) (num-test (angle -5.0e-01-1.0e+00i) -2.0344439357957027354e0) (num-test (angle -5.0e-01-1.19209289550781250e-07i) -3.1415924151712141369e0) (num-test (angle -5.0e-01-2.0e+00i) -1.8157749899217607734e0) (num-test (angle -5.0e-01-5.0e-01i) -2.3561944901923449288e0) (num-test (angle -5.0e-01-8.3886080e+06i) -1.5707963863995413946e0) (num-test (angle -500029) pi) (num-test (angle -500029/1) pi) (num-test (angle -500029/10) pi) (num-test (angle -500029/1234) pi) (num-test (angle -500029/1234000000) pi) (num-test (angle -500029/2) pi) (num-test (angle -500029/3) pi) (num-test (angle -500029/362880) pi) (num-test (angle -500029/500029) pi) (num-test (angle -8.3886080e+06+0.0e+00i) 3.1415926535897932385e0) (num-test (angle -8.3886080e+06+1.0e+00i) 3.1415925343805036877e0) (num-test (angle -8.3886080e+06+1.19209289550781250e-07i) 3.1415926535897790276e0) (num-test (angle -8.3886080e+06+2.0e+00i) 3.1415924151712141369e0) (num-test (angle -8.3886080e+06+5.0e-01i) 3.1415925939851484631e0) (num-test (angle -8.3886080e+06+8.3886080e+06i) 2.3561944901923449288e0) (num-test (angle -8.3886080e+06-1.0e+00i) -3.1415925343805036877e0) (num-test (angle -8.3886080e+06-1.19209289550781250e-07i) -3.1415926535897790276e0) (num-test (angle -8.3886080e+06-2.0e+00i) -3.1415924151712141369e0) (num-test (angle -8.3886080e+06-5.0e-01i) -3.1415925939851484631e0) (num-test (angle -8.3886080e+06-8.3886080e+06i) -2.3561944901923449288e0) (num-test (angle -9223372036854775808) 3.141592653589793238462643383279502884195E0) (num-test (angle 0) 0.0) (num-test (angle 0.0) 0.0) (num-test (angle 0.0+0.00000001i) 1.57079632679490) (num-test (angle 0.0+1.0i) 1.57079632679490) (num-test (angle 0.0+1234.0i) 1.57079632679490) (num-test (angle 0.0+1234000000.0i) 1.57079632679490) (num-test (angle 0.0+2.71828182845905i) 1.57079632679490) (num-test (angle 0.0+3.14159265358979i) 1.57079632679490) (num-test (angle 0.0-0.00000001i) -1.57079632679490) (num-test (angle 0.0-1.0i) -1.57079632679490) (num-test (angle 0.0-1234.0i) -1.57079632679490) (num-test (angle 0.0-1234000000.0i) -1.57079632679490) (num-test (angle 0.0-2.71828182845905i) -1.57079632679490) (num-test (angle 0.0-3.14159265358979i) -1.57079632679490) (num-test (angle 0.00000001) 0.0) (num-test (angle 0.00000001+0.00000001i) 0.78539816339745) (num-test (angle 0.00000001+1.0i) 1.57079631679490) (num-test (angle 0.00000001+1234.0i) 1.57079632678679) (num-test (angle 0.00000001+1234000000.0i) 1.57079632679490) (num-test (angle 0.00000001+2.71828182845905i) 1.57079632311610) (num-test (angle 0.00000001+3.14159265358979i) 1.57079632361180) (num-test (angle 0.00000001-0.00000001i) -0.78539816339745) (num-test (angle 0.00000001-1.0i) -1.57079631679490) (num-test (angle 0.00000001-1234.0i) -1.57079632678679) (num-test (angle 0.00000001-1234000000.0i) -1.57079632679490) (num-test (angle 0.00000001-2.71828182845905i) -1.57079632311610) (num-test (angle 0.00000001-3.14159265358979i) -1.57079632361180) (num-test (angle 0.0e+00+0.0e+00i) 0e0) (num-test (angle 0.0e+00+1.0e+00i) 1.5707963267948966192e0) (num-test (angle 0.0e+00+1.19209289550781250e-07i) 1.5707963267948966192e0) (num-test (angle 0.0e+00+2.0e+00i) 1.5707963267948966192e0) (num-test (angle 0.0e+00+5.0e-01i) 1.5707963267948966192e0) (num-test (angle 0.0e+00+8.3886080e+06i) 1.5707963267948966192e0) (num-test (angle 0.0e+00-1.0e+00i) -1.5707963267948966192e0) (num-test (angle 0.0e+00-1.19209289550781250e-07i) -1.5707963267948966192e0) (num-test (angle 0.0e+00-2.0e+00i) -1.5707963267948966192e0) (num-test (angle 0.0e+00-5.0e-01i) -1.5707963267948966192e0) (num-test (angle 0.0e+00-8.3886080e+06i) -1.5707963267948966192e0) (num-test (angle 1) 0.0) (num-test (angle 1.0) 0.0) (num-test (angle 1.0+0.00000001i) 0.00000001) (num-test (angle 1.0+1.0i) 0.78539816339745) (num-test (angle 1.0+1234.0i) 1.56998595420081) (num-test (angle 1.0+1234000000.0i) 1.57079632598452) (num-test (angle 1.0+2.71828182845905i) 1.21828290501728) (num-test (angle 1.0+3.14159265358979i) 1.26262725567891) (num-test (angle 1.0-0.00000001i) -0.00000001) (num-test (angle 1.0-1.0i) -0.78539816339745) (num-test (angle 1.0-1234.0i) -1.56998595420081) (num-test (angle 1.0-1234000000.0i) -1.57079632598452) (num-test (angle 1.0-2.71828182845905i) -1.21828290501728) (num-test (angle 1.0-3.14159265358979i) -1.26262725567891) (num-test (angle 1.0e+00+0.0e+00i) 0e0) (num-test (angle 1.0e+00+1.0e+00i) 7.8539816339744830962e-1) (num-test (angle 1.0e+00+1.19209289550781250e-07i) 1.1920928955078068531e-7) (num-test (angle 1.0e+00+2.0e+00i) 1.1071487177940905030e0) (num-test (angle 1.0e+00+5.0e-01i) 4.6364760900080611621e-1) (num-test (angle 1.0e+00+8.3886080e+06i) 1.5707962075856070685e0) (num-test (angle 1.0e+00-1.0e+00i) -7.8539816339744830962e-1) (num-test (angle 1.0e+00-1.19209289550781250e-07i) -1.1920928955078068531e-7) (num-test (angle 1.0e+00-2.0e+00i) -1.1071487177940905030e0) (num-test (angle 1.0e+00-5.0e-01i) -4.6364760900080611621e-1) (num-test (angle 1.0e+00-8.3886080e+06i) -1.5707962075856070685e0) (num-test (angle 1.110223024625156799999999999999999999997E-16) 0.0) (num-test (angle 1.19209289550781250e-07+0.0e+00i) 0e0) (num-test (angle 1.19209289550781250e-07+1.0e+00i) 1.5707962075856070685e0) (num-test (angle 1.19209289550781250e-07+1.19209289550781250e-07i) 7.8539816339744830962e-1) (num-test (angle 1.19209289550781250e-07+2.0e+00i) 1.5707962671902518438e0) (num-test (angle 1.19209289550781250e-07+5.0e-01i) 1.5707960883763175177e0) (num-test (angle 1.19209289550781250e-07+8.3886080e+06i) 1.5707963267948824084e0) (num-test (angle 1.19209289550781250e-07-1.0e+00i) -1.5707962075856070685e0) (num-test (angle 1.19209289550781250e-07-1.19209289550781250e-07i) -7.8539816339744830962e-1) (num-test (angle 1.19209289550781250e-07-2.0e+00i) -1.5707962671902518438e0) (num-test (angle 1.19209289550781250e-07-5.0e-01i) -1.5707960883763175177e0) (num-test (angle 1.19209289550781250e-07-8.3886080e+06i) -1.5707963267948824084e0) (num-test (angle 1/1) 0.0) (num-test (angle 1/10) 0.0) (num-test (angle 1/1234) 0.0) (num-test (angle 1/1234000000) 0.0) (num-test (angle 1/2) 0.0) (num-test (angle 1/3) 0.0) (num-test (angle 1/362880) 0.0) (num-test (angle 1/500029) 0.0) (num-test (angle 10) 0.0) (num-test (angle 10/1) 0.0) (num-test (angle 10/10) 0.0) (num-test (angle 10/1234) 0.0) (num-test (angle 10/1234000000) 0.0) (num-test (angle 10/2) 0.0) (num-test (angle 10/3) 0.0) (num-test (angle 10/362880) 0.0) (num-test (angle 10/500029) 0.0) (num-test (angle 1234) 0.0) (num-test (angle 1234.0) 0.0) ;; Flonum preciseness issue. Not wrong(?) ;(num-test (angle 1234.0+0.00000001i) 0.00000000000810) (num-test (angle 1234.0+1.0i) 0.00081037259408) (num-test (angle 1234.0+1234.0i) 0.78539816339745) (num-test (angle 1234.0+1234000000.0i) 1.57079532679490) (num-test (angle 1234.0+2.71828182845905i) 0.00220281801598) (num-test (angle 1234.0+3.14159265358979i) 0.00254585564530) ;; Same as above ;(num-test (angle 1234.0-0.00000001i) -0.00000000000810) (num-test (angle 1234.0-1.0i) -0.00081037259408) (num-test (angle 1234.0-1234.0i) -0.78539816339745) (num-test (angle 1234.0-1234000000.0i) -1.57079532679490) (num-test (angle 1234.0-2.71828182845905i) -0.00220281801598) (num-test (angle 1234.0-3.14159265358979i) -0.00254585564530) (num-test (angle 1234/1) 0.0) (num-test (angle 1234/10) 0.0) (num-test (angle 1234/1234) 0.0) (num-test (angle 1234/1234000000) 0.0) (num-test (angle 1234/2) 0.0) (num-test (angle 1234/3) 0.0) (num-test (angle 1234/362880) 0.0) (num-test (angle 1234/500029) 0.0) (num-test (angle 1234000000) 0.0) (num-test (angle 1234000000.0) 0.0) ;; Flonum preciseness issue ;(num-test (angle 1234000000.0+0.00000001i) 0.0) (num-test (angle 1234000000.0+1.0i) 0.00000000081037) (num-test (angle 1234000000.0+1234.0i) 0.00000100000000) (num-test (angle 1234000000.0+1234000000.0i) 0.78539816339745) (num-test (angle 1234000000.0+2.71828182845905i) 0.00000000220282) (num-test (angle 1234000000.0+3.14159265358979i) 0.00000000254586) ;; Flonum preciseness issue ;(num-test (angle 1234000000.0-0.00000001i) 0.0) (num-test (angle 1234000000.0-1.0i) -0.00000000081037) (num-test (angle 1234000000.0-1234.0i) -0.00000100000000) (num-test (angle 1234000000.0-1234000000.0i) -0.78539816339745) (num-test (angle 1234000000.0-2.71828182845905i) -0.00000000220282) (num-test (angle 1234000000.0-3.14159265358979i) -0.00000000254586) (num-test (angle 1234000000/1) 0.0) (num-test (angle 1234000000/10) 0.0) (num-test (angle 1234000000/1234) 0.0) (num-test (angle 1234000000/1234000000) 0.0) (num-test (angle 1234000000/2) 0.0) (num-test (angle 1234000000/3) 0.0) (num-test (angle 1234000000/362880) 0.0) (num-test (angle 1234000000/500029) 0.0) (num-test (angle 2) 0.0) (num-test (angle 2.0e+00+0.0e+00i) 0e0) (num-test (angle 2.0e+00+1.0e+00i) 4.6364760900080611621e-1) (num-test (angle 2.0e+00+1.19209289550781250e-07i) 5.9604644775390554414e-8) (num-test (angle 2.0e+00+2.0e+00i) 7.8539816339744830962e-1) (num-test (angle 2.0e+00+5.0e-01i) 2.4497866312686415417e-1) (num-test (angle 2.0e+00+8.3886080e+06i) 1.5707960883763175177e0) (num-test (angle 2.0e+00-1.0e+00i) -4.6364760900080611621e-1) (num-test (angle 2.0e+00-1.19209289550781250e-07i) -5.9604644775390554414e-8) (num-test (angle 2.0e+00-2.0e+00i) -7.8539816339744830962e-1) (num-test (angle 2.0e+00-5.0e-01i) -2.4497866312686415417e-1) (num-test (angle 2.0e+00-8.3886080e+06i) -1.5707960883763175177e0) (num-test (angle 2.71828182845905) 0.0) (num-test (angle 2.71828182845905+0.00000001i) 0.00000000367879) (num-test (angle 2.71828182845905+1.0i) 0.35251342177762) (num-test (angle 2.71828182845905+1234.0i) 1.56859350877892) (num-test (angle 2.71828182845905+1234000000.0i) 1.57079632459208) (num-test (angle 2.71828182845905+2.71828182845905i) 0.78539816339745) (num-test (angle 2.71828182845905+3.14159265358979i) 0.85751178635585) (num-test (angle 2.71828182845905-0.00000001i) -0.00000000367879) (num-test (angle 2.71828182845905-1.0i) -0.35251342177762) (num-test (angle 2.71828182845905-1234.0i) -1.56859350877892) (num-test (angle 2.71828182845905-1234000000.0i) -1.57079632459208) (num-test (angle 2.71828182845905-2.71828182845905i) -0.78539816339745) (num-test (angle 2.71828182845905-3.14159265358979i) -0.85751178635585) (num-test (angle 2/1) 0.0) (num-test (angle 2/10) 0.0) (num-test (angle 2/1234) 0.0) (num-test (angle 2/1234000000) 0.0) (num-test (angle 2/2) 0.0) (num-test (angle 2/3) 0.0) (num-test (angle 2/362880) 0.0) (num-test (angle 2/500029) 0.0) (num-test (angle 3) 0.0) (num-test (angle 3.14159265358979+0.00000001i) 0.00000000318310) (num-test (angle 3.14159265358979+1.0i) 0.30816907111598) (num-test (angle 3.14159265358979+1234.0i) 1.56825047114960) (num-test (angle 3.14159265358979+1234000000.0i) 1.57079632424904) (num-test (angle 3.14159265358979+2.71828182845905i) 0.71328454043905) (num-test (angle 3.14159265358979+3.14159265358979i) 0.78539816339745) (num-test (angle 3.14159265358979-0.00000001i) -0.00000000318310) (num-test (angle 3.14159265358979-1.0i) -0.30816907111598) (num-test (angle 3.14159265358979-1234.0i) -1.56825047114960) (num-test (angle 3.14159265358979-1234000000.0i) -1.57079632424904) (num-test (angle 3.14159265358979-2.71828182845905i) -0.71328454043905) (num-test (angle 3.14159265358979-3.14159265358979i) -0.78539816339745) (num-test (angle 3/1) 0.0) (num-test (angle 3/10) 0.0) (num-test (angle 3/1234) 0.0) (num-test (angle 3/1234000000) 0.0) (num-test (angle 3/2) 0.0) (num-test (angle 3/3) 0.0) (num-test (angle 3/362880) 0.0) (num-test (angle 3/500029) 0.0) (num-test (angle 362880) 0.0) (num-test (angle 362880/1) 0.0) (num-test (angle 362880/10) 0.0) (num-test (angle 362880/1234) 0.0) (num-test (angle 362880/1234000000) 0.0) (num-test (angle 362880/2) 0.0) (num-test (angle 362880/3) 0.0) (num-test (angle 362880/362880) 0.0) (num-test (angle 362880/500029) 0.0) (num-test (angle 5.0e-01+0.0e+00i) 0.0) (num-test (angle 5.0e-01+1.0e+00i) 1.1071487177940905030e0) (num-test (angle 5.0e-01+1.19209289550781250e-07i) 2.3841857910155798249e-7) (num-test (angle 5.0e-01+2.0e+00i) 1.3258176636680324651e0) (num-test (angle 5.0e-01+5.0e-01i) 7.8539816339744830962e-1) (num-test (angle 5.0e-01+8.3886080e+06i) 1.5707962671902518438e0) (num-test (angle 5.0e-01-1.0e+00i) -1.1071487177940905030e0) (num-test (angle 5.0e-01-1.19209289550781250e-07i) -2.3841857910155798249e-7) (num-test (angle 5.0e-01-2.0e+00i) -1.3258176636680324651e0) (num-test (angle 5.0e-01-5.0e-01i) -7.8539816339744830962e-1) (num-test (angle 5.0e-01-8.3886080e+06i) -1.5707962671902518438e0) (num-test (angle 500029) 0.0) (num-test (angle 500029/1) 0.0) (num-test (angle 500029/10) 0.0) (num-test (angle 500029/1234) 0.0) (num-test (angle 500029/1234000000) 0.0) (num-test (angle 500029/2) 0.0) (num-test (angle 500029/3) 0.0) (num-test (angle 500029/362880) 0.0) (num-test (angle 500029/500029) 0.0) (num-test (angle 8.3886080e+06+0.0e+00i) 0e0) (num-test (angle 8.3886080e+06+1.0e+00i) 1.1920928955078068531e-7) (num-test (angle 8.3886080e+06+1.19209289550781250e-07i) 1.4210854715202003717e-14) (num-test (angle 8.3886080e+06+2.0e+00i) 2.3841857910155798249e-7) (num-test (angle 8.3886080e+06+5.0e-01i) 5.9604644775390554414e-8) (num-test (angle 8.3886080e+06+8.3886080e+06i) 7.8539816339744830962e-1) (num-test (angle 8.3886080e+06-1.0e+00i) -1.1920928955078068531e-7) (num-test (angle 8.3886080e+06-1.19209289550781250e-07i) -1.4210854715202003717e-14) (num-test (angle 8.3886080e+06-2.0e+00i) -2.3841857910155798249e-7) (num-test (angle 8.3886080e+06-5.0e-01i) -5.9604644775390554414e-8) (num-test (angle 8.3886080e+06-8.3886080e+06i) -7.8539816339744830962e-1) (num-test (angle 9223372036854775807) 0.0) (num-test (angle pi) 0.0) (num-test (angle -1.797693134862315699999999999999999999998E308) 3.141592653589793238462643383279502884195E0) (num-test (angle (make-rectangular 1.0 1.0)) (angle (make-rectangular (expt 2 70) (expt 2 70)))) (num-test (angle (make-polar 1000000000000000000000000.0 (* .1 pi))) (* .1 pi)) (s7-test (angle) 'error) (s7-test (angle "hi") 'error) (s7-test (angle 1.0+23.0i 1.0+23.0i) 'error) (test-end "angle") ;;; -------------------------------------------------------------------------------- ;;; integer-length ;;; -------------------------------------------------------------------------------- (test-begin "integer-length") (num-test (integer-length 0) 0) (num-test (integer-length 1) 1) (num-test (integer-length 2) 2) (num-test (integer-length 3) 2) (num-test (integer-length 4) 3) (num-test (integer-length 7) 3) (num-test (integer-length 8) 4) (num-test (integer-length 21) 5) (num-test (integer-length 215) 8) (num-test (integer-length 12341234) 24) (num-test (integer-length -1) 0) (num-test (integer-length -2) 1) (num-test (integer-length -3) 2) (num-test (integer-length -4) 2) (num-test (integer-length -7) 3) (num-test (integer-length -8) 3) (num-test (integer-length -9) 4) (num-test (integer-length -21) 5) (num-test (integer-length -215) 8) (num-test (integer-length -12341234) 24) (num-test (integer-length 127) 7) (num-test (integer-length 128) 8) (num-test (integer-length 129) 8) (num-test (integer-length -127) 7) (num-test (integer-length -128) 7) (num-test (integer-length -129) 8) (num-test (integer-length most-positive-fixnum) (if 64-bits? 62 30)) (num-test (integer-length most-negative-fixnum) (if 64-bits? 62 30)) (num-test (integer-length -9223372036854775808) 63) (num-test (integer-length 9223372036854775807) 63) (s7-test (integer-length) 'error) (s7-test (integer-length 1 2) 'error) (s7-test (integer-length 1/2) 'error) (s7-test (integer-length 1.2) 'error) (s7-test (integer-length 1+2i) 'error) (s7-test (integer-length #i1/0) 'error) (s7-test (integer-length (log 0.0)) 'error) (s7-test (integer-length (string->number "100000000000000000000000000000000000")) (ceiling (/ (log (string->number "100000000000000000000000000000000000")) (log 2)))) (num-test (integer-length (+ (expt 2 48) (expt 2 46))) 49) (num-test (integer-length (ash 1 64)) 65) (num-test (integer-length 9223372036854775808) 64) (num-test (integer-length (* 4 most-positive-fixnum)) (if 64-bits? 64 32)) (num-test (integer-length (* most-positive-fixnum most-positive-fixnum)) (if 64-bits? 124 60)) (s7-test (integer-length 0+92233720368547758081.0i) 'error) ; Equally valid to give an error (s7-test (integer-length 92233720368547758081.0) 67) (test-end "integer-length") ;;; -------------------------------------------------------------------------------- ;;; lognot ;;; -------------------------------------------------------------------------------- (test-begin "lognot (bitwise-not)") (for-each (lambda (op) (for-each (lambda (arg) (let ((val (handle-exceptions exn 'error (op arg)))) (if (not (equal? val 'error)) (format #t ";(~A ~A) -> ~A?~%" op arg val)))) (list "hi" '() '(1 2) #f (integer->char 65) 'a-symbol (make-vector 3) 3.14 3/4 3.1+i abs #\f (lambda (a) (+ a 1))))) (list logior logand lognot logxor logbit? ash integer-length)) (for-each (lambda (op) (for-each (lambda (arg) (let ((val (handle-exceptions exn 'error (op 1 arg)))) (if (not (equal? val 'error)) (format #t ";(~A ~A) -> ~A?~%" op arg val)))) (list "hi" '() '(1 2) #f (integer->char 65) 'a-symbol (make-vector 3) 3.14 -1/2 1+i abs #\f (lambda (a) (+ a 1))))) (list logior logand logxor lognot logbit?)) (num-test (lognot 0) -1) (num-test (lognot -1) 0) (num-test (lognot 1) -2) (num-test (lognot #b101) -6) (num-test (lognot -6) #b101) (num-test (lognot 12341234) -12341235) (num-test (lognot #b-101) 4) (num-test (lognot (+ 1 (lognot 1000))) 999) (num-test (lognot #e10e011) -1000000000001) (num-test (lognot -9223372036854775808) 9223372036854775807) (num-test (lognot 9223372036854775807) -9223372036854775808) (num-test (lognot most-positive-fixnum) most-negative-fixnum) (s7-test (lognot 9223372036854775808) -9223372036854775809) (s7-test (lognot 618970019642690137449562111) (- (expt 2 89))) (num-test (lognot (+ (expt 2 48) (expt 2 46))) -351843720888321) (s7-test (lognot 0+92233720368547758081.0i) 'error) ; Equally valid: an error ;; Note that this is a cutoff point: the double gets truncated ;; at read-time. Maybe this is a bad test (s7-test (lognot 92233720368547758081.0) -92233720368547758081) (s7-test (lognot) 'error) ; Equally valid: an error (s7-test (lognot 1.0) -2) (s7-test (lognot 1+i) 'error) (s7-test (lognot 1/2) 'error) (s7-test (lognot #f) 'error) (s7-test (lognot 1/1) -2) (test-end "lognot (bitwise-not)") ;;; -------------------------------------------------------------------------------- ;;; logior ;;; -------------------------------------------------------------------------------- (test-begin "logior (bitwise-ior)") (num-test (logior 0 1) 1) (num-test (logior #b101 #b10001) 21) (num-test (logior 1 3 6) 7) (num-test (logior -6 1) -5) (num-test (logior -6 3) -5) (num-test (logior #b1 #b11 #b111 #b1111) #b1111) (num-test (logior -1 0 -1 -1) -1) (num-test (logior 3 3 3 3) 3) (num-test (logior 1) 1) (num-test (logior -1) -1) (num-test (logior 12341234 10001111) 12378103) (num-test (logior 1 2 4 8) 15) (num-test (logior 0 1/1) 1) (num-test (logior 1/1 0) 1) (num-test (logior -1 1 0) -1) (num-test (logior 1 2 3 4) 7) (num-test (logior 1 3 5 7) 7) (num-test (logior -9223372036854775808 -9223372036854775808) -9223372036854775808) (num-test (logior -9223372036854775808 9223372036854775807 -9223372036854775808) -1) (num-test (logior 9223372036854775807 -9223372036854775808) -1) (num-test (logior 9223372036854775807 9223372036854775807) 9223372036854775807) (num-test (logior) 0) (s7-test (logior (expt 2 63) (expt 2 75)) (+ (expt 2 63) (expt 2 75))) (num-test (logior (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 351843720888320) (s7-test (logior 0+92233720368547758081.0i) 'error) ; Equally valid: an error ;; Note that here too we are looking at a truncated double (s7-test (logior 92233720368547758081.0) 92233720368547758080) ; Equally valid: an error (s7-test (logior 0 1.0) 1) (s7-test (logior 0 1/2) 'error) ; Equally valid: an error (s7-test (logior 1.0 0) 1) (s7-test (logior 1/2 0) 'error) (s7-test (logior 1+i) 'error) (s7-test (logior -1 #\a) 'error) (s7-test (logior -1 "hi") 'error) (s7-test (logior #f "hi") 'error) (test-end "logior (bitwise-ior)") ;;; -------------------------------------------------------------------------------- ;;; logand ;;; -------------------------------------------------------------------------------- (test-begin "logand (bitwise-and)") (num-test (logand 0 1) 0) (num-test (logand 0 -1) 0) (num-test (logand #b101 #b10001) 1) (num-test (logand 1 3 6) 0) (num-test (logand -1 3 6) 2) (num-test (logand -6 1) 0) (num-test (logand -6 3) 2) (num-test (logand #b1 #b11 #b111 #b1111) #b1) (num-test (logand -1 0 -1 -1) 0) (num-test (logand 3 3 3 3) 3) (num-test (logand 0) 0) (num-test (logand -1) -1) (num-test (logand 12341234 10001111) 9964242) (num-test (logand -1 1) 1) (num-test (logand -1 -1) -1) (num-test (logand 1 -1) 1) (num-test (logand 1 1) 1) (num-test (logand 16 31) 16) (num-test (logand 0 1/1) 0) (num-test (logand 1/1 0) 0) (num-test (logand 1 -1 -1) 1) (num-test (logand 1 2 3 4) 0) (num-test (logand 1 3 5 7) 1) (num-test (logand -9223372036854775808 -1) -9223372036854775808) (num-test (logand -9223372036854775808 -9223372036854775808) -9223372036854775808) (num-test (logand -9223372036854775808 1) 0) (num-test (logand -9223372036854775808 9223372036854775807 -9223372036854775808) 0) (num-test (logand 9223372036854775807 -1) 9223372036854775807) (num-test (logand 9223372036854775807 -9223372036854775808) 0) (num-test (logand 9223372036854775807 1) 1) (num-test (logand 9223372036854775807 9223372036854775807) 9223372036854775807) (num-test (logand) -1) (s7-test (logand 9223372036854775808 -9223372036854775809) 0) (s7-test (logand 618970019642690137449562111 (expt 2 88)) (expt 2 88)) (num-test (logand (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 281474976710656) (s7-test (logand 0+92233720368547758081.0i) 'error) ;; Equally valid: an error. Here too it's a truncated double (s7-test (logand 92233720368547758081.0) 92233720368547758080) ; Equally valid: an error (s7-test (logand 0 1.0) 0) (s7-test (logand 1+i) 'error) (s7-test (logand 0 1/2) 'error) ; Equally valid: an error (s7-test (logand 1.0 0) 0) (s7-test (logand 1/2 0) 'error) (s7-test (logand 0 #\a) 'error) (s7-test (logand 0 "hi") 'error) (s7-test (logand #f '()) 'error) (test-end "logand (bitwise-and)") ;;; -------------------------------------------------------------------------------- ;;; logxor ;;; -------------------------------------------------------------------------------- (test-begin "logxor (bitwise-xor)") (num-test (logxor 0 1) 1) (num-test (logxor #b101 #b10001) 20) (num-test (logxor 1 3 6) 4) (num-test (logxor -6 1) -5) (num-test (logxor -6 3) -7) (num-test (logxor #b1 #b11 #b111 #b1111) #b1010) (num-test (logxor 12341234 10001111) 2413861) (num-test (logxor 1 3 7 15) 10) (num-test (logxor 0 1/1) 1) (num-test (logxor 1/1 0) 1) (num-test (logxor 0 1 -1) -2) (num-test (logxor -1 -1 -1) -1) ;; to get the bits that are on in just 1 argument? (logxor (logxor a b c) (logand a b c)) (num-test (logxor 1 2 3 4) 4) (num-test (logxor 1 3 5 7) 0) (num-test (logxor -1 most-positive-fixnum) most-negative-fixnum) (num-test (logxor most-negative-fixnum most-positive-fixnum) -1) (num-test (logxor -100 -100 -100) -100) (num-test (logxor -100 -100 -100 -1) 99) (num-test (logxor -100 -100 -100 -1 -1) -100) (num-test (logxor 4/2 11/11) 3) (num-test (logxor -9223372036854775808 -9223372036854775808) 0) (num-test (logxor -9223372036854775808 9223372036854775807 -9223372036854775808) 9223372036854775807) (num-test (logxor 9223372036854775807 -9223372036854775808) -1) (num-test (logxor 9223372036854775807 9223372036854775807) 0) (num-test (logxor) 0) (s7-test (logxor 37788155234994016485376 (+ (expt 2 63) 1)) (+ 1 (expt 2 75))) (num-test (logxor (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 70368744177664) (s7-test (logxor 0+92233720368547758081.0i) 'error) ; Equally valid: an error. Note that this is a truncated double (s7-test (logxor 92233720368547758081.0) 92233720368547758080) ; Equally valid: an error (s7-test (logxor 0 1.0) 1) (s7-test (logxor 0 1/2) 'error) ; Equally valid: an error (s7-test (logxor 1.0 0) 1) (s7-test (logxor 1/2 0) 'error) (test-end "logxor (bitwise-xor)") (test-begin "log-n-of") (let ((top-checked-bit 64)) (define (log-none-of . ints) ; bits on in none of ints (lognot (apply logior ints))) (define (log-all-of . ints) ; bits on in all of ints (apply logand ints)) (define (log-any-of . ints) ; bits on in at least 1 of ints (apply logior ints)) (define (log-1-of . ints) ; bits on in exactly 1 of ints (let ((len (length ints))) (cond ((= len 0) 0) ((= len 1) (car ints)) ((= len 2) (apply logxor ints)) ((= len 3) (logxor (apply logxor ints) (apply logand ints))) (#t (do ((iors '()) (i 0 (+ i 1))) ((= i len) (apply logior iors)) (let ((cur (list-ref ints i))) (set! (list-ref ints i) 0) (set! iors (cons (logand cur (lognot (apply logior ints))) iors)) (set! (list-ref ints i) cur))))))) (s7-test (log-1-of 1 1) 0) (s7-test (log-1-of 1 2) 3) (s7-test (log-1-of 1 2 2) 1) (s7-test (log-1-of 1 2 2 1) 0) (s7-test (log-1-of 1 2 3 4 8 9) 4) (s7-test (log-1-of -1 1 2 3) -4) (s7-test (log-1-of 1 2 3 5) 4) (s7-test (log-1-of -6 -31 -19 -9) 0) (s7-test (log-1-of -45 -15 -7 -3) 6) (s7-test (log-1-of -1 most-positive-fixnum -1) 0) (s7-test (log-1-of -1 most-negative-fixnum -1) 0) (s7-test (log-1-of 1 most-negative-fixnum 1) most-negative-fixnum) (s7-test (log-1-of 31 11 27 -38) -60) (s7-test (log-1-of -254) #b-11111110) ; (-254) (s7-test (log-1-of 406 26 439 -361 -133 -480 312) #b1000000) ; (64) (s7-test (log-1-of 47 110) #b1000001) ; (65) (s7-test (log-1-of) 0) (s7-test (log-1-of -52 108 97 48) #b-1101111) ; (-111) (s7-test (log-1-of -113 -391 -129 -58 -374 -297 -498) #b0) ; (0) (s7-test (log-1-of -251 138 418 494 -300 -224) #b10001) ; (17) (s7-test (log-1-of 385 364 372) #b10011001) ; (153) (s7-test (log-1-of -221 -56 173) #b1000110) ; (70) (s7-test (log-1-of 31 -309 244 -478 396 -352 162 -479 -500) #b100000000) ; (256) (s7-test (log-1-of -152 495 80 -403 -439 387) #b10000) ; (16) (s7-test (log-1-of 115 71 110 568 10 382 124 378 23) #b1000000000) ; (512) (s7-test (log-1-of 766 332 285 280 489 229) #b1000000010) ; (514) (s7-test (log-1-of 424 935) #b1000001111) ; (527) (s7-test (log-1-of 788 268 388) #b1010011000) ; (664) (s7-test (log-1-of 389 237 398 530) #b1001110000) ; (624) (s7-test (log-1-of 554 550 215 44 892 668) #b100000001) ; (257) (s7-test (log-1-of 562 171 772 480 6 211 542 678) #b0) ; (0) (do ((i 0 (+ i 1))) ((= i 10)) (let ((len (+ 1 (random 10))) (ints '())) (do ((k 0 (+ k 1))) ((= k len)) (set! ints (cons (- (random 1000) 500) ints))) (let ((result (apply log-1-of ints))) ;;(format #t "(s7-test (log-1-of ~{~D~^ ~}) #b~B) ; (~D)~%" ints result result) (do ((b 0 (+ b 1))) ((= b top-checked-bit)) (let ((counts 0)) (for-each (lambda (int) (if (not (zero? (logand int (ash 1 b)))) (set! counts (+ counts 1)))) ints) (if (not (zero? (logand result (ash 1 b)))) (if (not (= counts 1)) (format #t ";(log-1-of ~{~D~^ ~}) -> ~A, [#b~B, counts: ~D but we're on]~%" ints result (ash 1 b) counts)) (if (= counts 1) (format #t ";(log-1-of ~{~D~^ ~}) -> ~A, [#b~B, counts = 1 but we're off]~%" ints result (ash 1 b))))))))) (define (log-n-1-of . ints) ; bits on in exactly n-1 of ints (let ((len (length ints))) (cond ((= len 0) 0) ((= len 1) 0) ((= len 2) (apply logxor ints)) ((= len 3) (logand (lognot (apply logxor ints)) (apply logior ints))) (#t (do ((iors '()) (i 0 (+ i 1))) ((= i len) (apply logior iors)) (let ((cur (list-ref ints i))) (set! (list-ref ints i) -1) (set! iors (cons (logand (lognot cur) (apply logand ints)) iors)) (set! (list-ref ints i) cur))))))) (s7-test (log-n-1-of 1 1) 0) (s7-test (log-n-1-of 1 2) 3) (s7-test (log-n-1-of 1 2 2) 2) (s7-test (log-n-1-of 1 2 2 3) 2) (s7-test (log-n-1-of -336 -225 275) #b-11111101) ; (-253) (s7-test (log-n-1-of -35 32 -17 -310 256 -360 171 -370) #b0) ; (0) (s7-test (log-n-1-of 311 237) #b111011010) ; (474) (s7-test (log-n-1-of 32 348 -340 147) #b0) ; (0) (s7-test (log-n-1-of -334 -267 -478 -93 239 423 18 496) #b100000) ; (32) (s7-test (log-n-1-of -347 149 135 107 -436) #b101) ; (5) (s7-test (log-n-1-of -181 406 480 390 207 13 0) #b0) ; (0) (s7-test (log-n-1-of 348) #b0) ; (0) (s7-test (log-n-1-of -498 226) #b-100010100) ; (-276) (s7-test (log-n-1-of 259 -171 146 -344 63 -240 290 -418) #b0) ; (0) (s7-test (log-n-1-of 86 -74 61 -138 215 -277 358) #b110) ; (6) (s7-test (log-n-1-of -144 425 -356 -341 211 -390) #b0) ; (0) (s7-test (log-n-1-of -223 390 195 265) #b100000001) ; (257) (s7-test (log-n-1-of 103 263 -92 -7) #b100100101) ; (293) (s7-test (log-n-1-of -78 -199 68 218 -98 -464 307 301) #b0) ; (0) (s7-test (log-n-1-of -355 258 -134 -371 211) #b0) ; (0) (s7-test (log-n-1-of -222 -39 408 -50 -207 58) #b100000000) ; (256) (s7-test (log-n-1-of 66 93 484) #b100) ; (4) (s7-test (log-n-1-of 36 -384 3 49 359 -284 -284 -133 268) #b0) ; (0) (s7-test (log-n-1-of -339 -50 243 -159 -159) #b-110011111) ; (-415) (s7-test (log-n-1-of 154 -260 -219 400 -196 -236 421 -277 375 -67) #b0) ; (0) (s7-test (log-n-1-of 45 112) #b1011101) ; (93) (s7-test (log-n-1-of -493 131 48 45 311 197 491 -86 164) #b0) ; (0) (s7-test (log-n-1-of 371 -75 -107 -348 -9 7 -129) #b101) ; (5) (s7-test (log-n-1-of 349 -219 -160) #b-110011011) ; (-411) (s7-test (log-n-1-of 412 456 407 -13 352 467 327 147) #b100000000) ; (256) (s7-test (log-n-1-of 133 -133 -471 -284 -58 -266) #b-1000000000) ; (-512) (s7-test (log-n-1-of 43 -339 22 150 49 259) #b0) ; (0) (s7-test (log-n-1-of 258 -138 185 400 -476 -312 69 380) #b0) ; (0) (s7-test (log-n-1-of 260 -85 -208 -21) #b-111100000) ; (-480) (s7-test (log-n-1-of -294 177 -78) #b-111011110) ; (-478) (s7-test (log-n-1-of -40 81 445 -300) #b11000000) ; (192) (s7-test (log-n-1-of -325 -393 411 -441 -221 -43 -231 -283 -223) #b-1000000000) ; (-512) (s7-test (log-n-1-of 18 -36 -351 -160 211 412) #b0) ; (0) (do ((i 0 (+ i 1))) ((= i 10)) (let ((len (+ 1 (random 10))) (ints '())) (do ((k 0 (+ k 1))) ((= k len)) (set! ints (cons (- (random 1000) 500) ints))) (let ((result (apply log-n-1-of ints))) ;;(format #t "(s7-test (log-n-1-of ~{~D~^ ~}) #b~B) ; (~D)~%" ints result result) (do ((b 0 (+ b 1))) ((= b top-checked-bit)) (let ((counts 0)) (for-each (lambda (int) (if (not (zero? (logand int (ash 1 b)))) (set! counts (+ counts 1)))) ints) (if (not (zero? (logand result (ash 1 b)))) (if (not (= counts (- len 1))) (format #t ";(log-n-1-of ~{~D~^ ~}) -> ~A, [#b~B, counts: ~D but we're on]~%" ints result (ash 1 b) counts)) (if (and (> len 1) (= counts (- len 1))) (format #t ";(log-n-1-of ~{~D~^ ~}) -> ~A, [#b~B, counts: ~D but we're off]~%" ints result (ash 1 b) counts)))))))) (define (log-n-of n . ints) ; bits on in exactly n of ints (let ((len (length ints))) (cond ((= len 0) (if (= n 0) -1 0)) ((= n 0) (apply log-none-of ints)) ((= n len) (apply log-all-of ints)) ((> n len) 0) ((= n 1) (apply log-1-of ints)) ((= n (- len 1)) (apply log-n-1-of ints)) ;; now n is between 2 and len-2, and len is 3 or more ;; I think it would be less inefficient here to choose either this or the n-1 case based on n<=len/2 (#t (do ((1s '()) (prev ints) (i 0 (+ i 1))) ((= i len) (apply logior 1s)) (let ((cur (list-ref ints i))) (if (= i 0) (set! 1s (cons (logand cur (apply log-n-of (- n 1) (cdr ints))) 1s)) (let* ((mid (cdr prev)) (nxt (if (= i (- len 1)) '() (cdr mid)))) (set! (cdr prev) nxt) (set! 1s (cons (logand cur (apply log-n-of (- n 1) ints)) 1s)) (set! (cdr prev) mid) (set! prev mid))))))))) (s7-test (log-n-of 1) 0) (s7-test (log-n-of 0) -1) (s7-test (log-n-of 0 -2) 1) (s7-test (log-n-of 0 92 -451 317 -269 -300 245 461 -64) #b0) (s7-test (log-n-of 0 287) #b-100100000) ; (-288) (s7-test (log-n-of 0 -180 441 -487) #b10) ; (2) (s7-test (log-n-of 0 274 150) #b-110010111) ; (-407) (s7-test (log-n-of 0 140 -307 8 216 -392 8 -486 147 -469) #b100000000) ; (256) (s7-test (log-n-of 1 1 1) 0) (s7-test (log-n-of 1 1 2) 3) (s7-test (log-n-of 2 1 2) 0) (s7-test (log-n-of 2 2 2) 2) (s7-test (log-n-of 2 2 2 2) 0) (s7-test (log-n-of 3 2 2 2) 2) (s7-test (log-n-of 3 2 2 3) 2) (s7-test (log-n-of 3 2 1 3 3) 3) (s7-test (log-n-of 1 158 172 -4 432 147 497 -236 85 -454 -447) #b0) ; (0) (s7-test (log-n-of 1 377 -232 295) #b-110111010) ; (-442) (s7-test (log-n-of 1 -110) #b-1101110) ; (-110) (s7-test (log-n-of 1 304 -36 64 -140 -165 -85) #b0) ; (0) (s7-test (log-n-of 1 226 -135 -392 55 -358 260 -447) #b0) ; (0) (s7-test (log-n-of 1 -241 454 178 107 312) #b-1000000000) ; (-512) (s7-test (log-n-of 1 -122 419 -121) #b100000) ; (32) (s7-test (log-n-of 1 378 -233 -332 -308) #b1) ; (1) (s7-test (log-n-of 1 -381 44 -99 -161 338) #b100000) ; (32) (s7-test (log-n-of 2 6 -45 331 339 156 207 -308) #b-1000000000) ; (-512) (s7-test (log-n-of 2 -483) #b0) ; (0) (s7-test (log-n-of 2 -113 75 465 -434 -164 291) #b10010000) ; (144) (s7-test (log-n-of 2 -95 -314 187 40) #b-111110101) ; (-501) (s7-test (log-n-of 2 126 -254) #b10) ; (2) (s7-test (log-n-of 2 -228) #b0) ; (0) (s7-test (log-n-of 2 -472 163 6 -185 -208 -481 -60 -331 479) #b0) ; (0) (s7-test (log-n-of 2 357 -468 490 -423 33) #b-11111100) ; (-252) (s7-test (log-n-of 2 13 343 -276 148 -425 -116 361 -305 344 -361) #b100000) ; (32) (s7-test (log-n-of 2 -79) #b0) ; (0) (s7-test (log-n-of 3 268 134 46 -207 414) #b100001010) ; (266) (s7-test (log-n-of 3 455 -138 58 -225 -250) #b-111110000) ; (-496) (s7-test (log-n-of 3 -267 154 -217 468 -455 43 307 364) #b-101000000) ; (-320) (s7-test (log-n-of 3 14 197 65 -327 -86 -438) #b-100111101) ; (-317) (s7-test (log-n-of 3 229 452 434 -75 -405 440 -420 40) #b-111111111) ; (-511) (s7-test (log-n-of 3 -24 -450 437 -467 -487 -479 14 394 -433 53) #b110000000) ; (384) (s7-test (log-n-of 3 474 442 303 -203 -59) #b10111111) ; (191) (s7-test (log-n-of 3 -401 104 66) #b1000000) ; (64) (s7-test (log-n-of 3 -129 79 215 -272 -259) #b-101010110) ; (-342) (s7-test (log-n-of 3 -139 36 -489 352 -364 498 -11) #b10000001) ; (129) (s7-test (log-n-of 4 23) #b0) ; (0) (s7-test (log-n-of 4 407 225 417 269 -174 181 -332) #b100110100) ; (308) (s7-test (log-n-of 4 439 480 -278 168 189) #b0) ; (0) (s7-test (log-n-of 4 -206 295) #b0) ; (0) (s7-test (log-n-of 4 -260 24 -320) #b0) ; (0) (s7-test (log-n-of 4 354 -463 -66 137 -364) #b0) ; (0) (s7-test (log-n-of 4 -117 -68 -343 -285) #b-110000000) ; (-384) (s7-test (log-n-of 4 -206 -449 118 -211 -125 391 232) #b-11111011) ; (-251) (s7-test (log-n-of 4 -164 -499 -291 325 -143 -268 135 103) #b10000) ; (16) (do ((i 0 (+ i 1))) ((= i 10)) (let ((len (+ 1 (random 10))) (ints '()) (n (random 5))) (do ((k 0 (+ k 1))) ((= k len)) (set! ints (cons (- (random 1000) 500) ints))) (let ((result (apply log-n-of n ints))) ;;(format #t "(s7-test (log-n-of ~D ~{~D~^ ~}) #b~B) ; (~D)~%" n ints result result) (do ((b 0 (+ b 1))) ((= b top-checked-bit)) (let ((counts 0)) (for-each (lambda (int) (if (not (zero? (logand int (ash 1 b)))) (set! counts (+ counts 1)))) ints) (if (not (zero? (logand result (ash 1 b)))) (if (not (= counts n)) (format #t ";(log-n-of ~D ~{~D~^ ~}) -> ~A, [#b~B, counts: ~D but we're on]~%" n ints result (ash 1 b) counts)) (if (and (> len 1) (= counts n)) (format #t ";(log-n-of ~D ~{~D~^ ~}) -> ~A, [#b~B, counts: ~D but we're off]~%" n ints result (ash 1 b) counts)))))))) (define (simple-log-n-of n . ints) ; bits on in exactly n of ints (let ((len (length ints))) (cond ((= len 0) (if (= n 0) -1 0)) ((= n 0) (lognot (apply logior ints))) ((= n len) (apply logand ints)) ((> n len) 0) (#t (do ((1s 0) (prev ints) (i 0 (+ i 1))) ((= i len) 1s) (let ((cur (list-ref ints i))) (if (= i 0) (set! 1s (logior 1s (logand cur (apply simple-log-n-of (- n 1) (cdr ints))))) (let* ((mid (cdr prev)) (nxt (if (= i (- len 1)) '() (cdr mid)))) (set! (cdr prev) nxt) (set! 1s (logior 1s (logand cur (apply simple-log-n-of (- n 1) ints)))) (set! (cdr prev) mid) (set! prev mid))))))))) (num-test (simple-log-n-of 1 0 0 -1 0) -1) (num-test (simple-log-n-of 1 0 -1 -1 0) 0) (num-test (simple-log-n-of 2 0 -1 -1 0) -1) (num-test (simple-log-n-of 2 0 -1 -1 -1) 0) (num-test (simple-log-n-of 3 0 -1 -1 -1) -1) (num-test (simple-log-n-of 4 0 -1 -1 -1) 0) (do ((i 0 (+ i 1))) ((= i 10)) (let ((len (+ 1 (random 10))) (ints '()) (n (random 5))) (do ((k 0 (+ k 1))) ((= k len)) (set! ints (cons (- (random 1000) 500) ints))) (let ((result (apply simple-log-n-of n ints))) (do ((b 0 (+ b 1))) ((= b top-checked-bit)) (let ((counts 0)) (for-each (lambda (int) (if (not (zero? (logand int (ash 1 b)))) (set! counts (+ counts 1)))) ints) (if (not (zero? (logand result (ash 1 b)))) (if (not (= counts n)) (format #t ";(simple-log-n-of ~D ~{~D~^ ~}) -> ~A, [#b~B, counts: ~D but we're on]~%" n ints result (ash 1 b) counts)) (if (and (> len 1) (= counts n)) (format #t ";(simple-log-n-of ~D ~{~D~^ ~}) -> ~A, [#b~B, counts: ~D but we're off]~%" n ints result (ash 1 b) counts))))))))) (test-end "log-n-of") ;;; Disabled until we actually provide this instead of the lazy shim at the top #| ;;; -------------------------------------------------------------------------------- ;;; logbit? ;;; -------------------------------------------------------------------------------- (test-begin "logbit?") (s7-test (logbit? 0 1) #f) (s7-test (logbit? 0 0) #f) (s7-test (logbit? 0 -1) 'error) (s7-test (logbit? #b101 1) #f) (s7-test (logbit? #b101 0) #t) (s7-test (logbit? 1 3 6) 'error) (s7-test (logbit? -1 3) #t) (s7-test (logbit? -1 0) #t) (s7-test (logbit? -6 0) #f) (s7-test (logbit? -6 3) #t) (s7-test (logbit? 4 1) #f) (s7-test (logbit? 1 1) #f) (s7-test (logbit? 1 0) #t) (s7-test (logbit? -9223372036854775808 1) #f) (s7-test (logbit? most-positive-fixnum 31) #t) (s7-test (logbit? most-positive-fixnum 68) #f) (s7-test (logbit? most-positive-fixnum 63) #f) (s7-test (logbit? most-positive-fixnum 62) #t) (s7-test (logbit? (ash 1 12) 12) #t) (s7-test (logbit? (ash 1 12) 11) #f) (s7-test (logbit? (ash 1 32) 32) #t) (s7-test (logbit? (ash 1 31) 31) #t) (s7-test (logbit? (ash 1 31) 30) #f) (s7-test (logbit? (ash 1 31) 32) #f) (s7-test (logbit? (ash 1 32) 31) #f) (s7-test (logbit? (ash 1 62) 62) #t) (s7-test (logbit? (ash 1 62) 61) #f) (s7-test (logbit? -1 most-negative-fixnum) 'error) (s7-test (logbit? most-negative-fixnum 63) #t) (s7-test (logbit? most-negative-fixnum 62) #f) (s7-test (logbit? -31 63) #t) (s7-test (logbit? 1 most-positive-fixnum) #f) (s7-test (logbit? 0 most-positive-fixnum) #f) (s7-test (logbit? -1 most-positive-fixnum) #t) (s7-test (logbit? -1 64) #t) (s7-test (logbit? 1 64) #f) (s7-test (logbit? (ash 1 64) 64) #t) (s7-test (logbit? (ash 1 64) 63) #f) ;; Should be true always, I guess (s7-test (logbit? most-negative-fixnum 63) #t) (s7-test (logbit? (bignum "-1") 64) #t) (s7-test (logbit? 0 1.0) 'error) (s7-test (logbit? 1+i) 'error) (s7-test (logbit? 1+i 0) 'error) (s7-test (logbit? 0 1/2) 'error) (s7-test (logbit? 1.0 0) 'error) (s7-test (logbit? 1/2 0) 'error) (s7-test (logbit? 0 #\a) 'error) (s7-test (logbit? 0 "hi") 'error) (s7-test (logbit? #f '()) 'error) (s7-test (logbit?) 'error) (s7-test (logbit? 0) 'error) (do ((i 0 (+ i 1))) ((= i 100)) (let ((x (random most-positive-fixnum)) ; or most-negative-fixnum (index (random 63))) (let ((on? (logbit? x index)) (ash? (not (zero? (logand x (ash 1 index)))))) (if (not (eq? on? ash?)) (format #t "(logbit? ~A ~A): ~A ~A~%" x index on? ash?))))) (test-end "logbit?") |# ;;; -------------------------------------------------------------------------------- ;;; ash ;;; -------------------------------------------------------------------------------- (test-begin "ash (arithmetic-shift)") (num-test (ash #b-1100 -2) -3) (num-test (ash #b-1100 2) -48) (num-test (ash (ash 1 31) -31) 1) (num-test (ash (expt 2 30) (- (expt 2 30))) 0) (num-test (ash -0 -10) 0) (num-test (ash -1 -12) -1) (num-test (ash -1 -3) -1) (num-test (ash -1 -8) -1) (num-test (ash -1 0) -1) (num-test (ash -1 30) -1073741824) (num-test (ash -1 8) -256) (num-test (ash -129876 -1026) -1) (num-test (ash -2 -3) -1) (num-test (ash -3 -3) -1) (num-test (ash -3 3) -24) (num-test (ash -31 -100) -1) (num-test (ash -31 -20) -1) (num-test (ash -31 -60) -1) (num-test (ash -31 -70) -1) (num-test (ash -31 most-negative-fixnum) -1) (when 64-bits? (num-test (ash 0 (expt 2 32)) 0)) (num-test (ash 0 -10) 0) (num-test (ash 0 0) 0) (num-test (ash 0 1) 0) (num-test (ash 0 100) 0) (when 64-bits? (num-test (ash 1 (- (expt 2 31))) 0)) (when 64-bits? (num-test (ash 1 (- (expt 2 32))) 0)) (num-test (ash 1 -1) 0) (num-test (ash 1 -100) 0) (num-test (ash 1 10) 1024) (num-test (ash 1 31) 2147483648) (num-test (ash 1 32) 4294967296) (num-test (ash 1/1 10) 1024) (num-test (ash 1024 -8) 4) (num-test (ash 123 0) 123) (num-test (ash 1234 -6) 19) (num-test (ash 1234 6) 78976) (num-test (ash 12341234 -16) 188) (num-test (ash 12341234 6) 789838976) (num-test (ash 2 -1) 1) (num-test (ash 2 -2) 0) (s7-test (> (ash 1 30) 1) #t) (s7-test (> (ash 1 62) 1) #t) (s7-test (ash most-positive-fixnum (if 64-bits? -61 -29)) 1) (s7-test (ash (ash most-negative-fixnum -2) 2) most-negative-fixnum) (do ((i 0 (+ i 1))) ((= i 15)) (s7-test (= (expt (ash 1 i) 2) (ash 1 (* 2 i)) (expt 2 (* 2 i)) (* (- (expt 2 i)) (- (ash 1 i))) (ash 2 (- (* i 2) 1))) #t)) (num-test (ash 1 48) 281474976710656) (num-test (ash 281474976710656 -48) 1) (num-test (ash -100000000000000000000000000000000 -100) -79) ;; (floor (/ -100000000000000000000000000000000 (expt 2 100))) = -79 (num-test (ash -100000000000000000000000000000000 -200) -1) (num-test (ash 1 63) 9223372036854775808) (num-test (ash 1 64) 18446744073709551616) (num-test (ash 1 100) 1267650600228229401496703205376) (num-test (ash 18446744073709551616 -63) 2) (num-test (ash 1267650600228229401496703205376 -100) 1) (s7-test (ash 1 89) (expt 2 89)) (s7-test (ash 1 0+92233720368547758081.0i) 'error) ;(s7-test (ash 1 92233720368547758081.0) 'error) (s7-test (ash 0+92233720368547758081.0i -1) 'error) ;(s7-test (ash 92233720368547758081.0 1) 'error) (num-test (ash 9223372036854775807 1) 18446744073709551614) (num-test (ash -9223372036854775807 1) -18446744073709551614) ;; XXX: Maybe we should cap the maximum shift value? ;(s7-test (ash 1 (expt 2 32)) 'error) (s7-test (ash) 'error) (s7-test (ash 1) 'error) (s7-test (ash 1 2 3) 'error) (for-each (lambda (arg) (s7-test (ash 1 arg) 'error) (s7-test (ash arg 1) 'error)) (list #\a #f '#(1 2 3) #;3.14 2/3 1.5+0.3i 1+i '() 'hi abs "hi" '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) (test-end "ash (arithmetic-shift)") (test-begin "some other bit stuff") (let () ;; fails if x=0: (define (2^n? x) (zero? (logand x (- x 1)))) (define (2^n? x) (and (not (zero? x)) (zero? (logand x (- x 1))))) (define (2^n-1? x) (zero? (logand x (+ x 1)))) (define (x+y x y) (- x (lognot y) 1)) (define (0? x) (negative? (logand (lognot x) (- x 1)))) (define (<=0? x) (negative? (logior x (- x 1)))) (define (>=0? x) (negative? (lognot x))) (define (>0? x) (negative? (logand (- x) (lognot x)))) (define-syntax <=> (syntax-rules () ((<=> x y) (begin (set! x (logxor x y)) (set! y (logxor y x)) (set! x (logxor x y)))))) (s7-test (2^n? 32) #t) (s7-test (2^n? 0) #f) (s7-test (2^n? 2305843009213693952) #t) (s7-test (2^n? 2305843009213693950) #f) (s7-test (2^n? 17) #f) (s7-test (2^n? 1) #t) (s7-test (2^n-1? 31) #t) (s7-test (2^n-1? 32) #f) (s7-test (2^n-1? 18014398509481985) #f) (s7-test (2^n-1? 18014398509481983) #t) (s7-test (x+y 41 3) 44) (s7-test (0? 0) #t) (s7-test (0? 123) #f) (s7-test (<=0? 0) #t) (s7-test (<=0? -2) #t) (s7-test (<=0? 2) #f) (s7-test (>=0? -1) #f) (s7-test (>0? 1) #t) (s7-test (let ((x 1) (y 321)) (<=> x y) (list x y)) (list 321 1)) ) (let () (define (bit-reverse int) ;; from "Hacker's Delight" Henry Warren p101, but 64 bit (let ((x int)) (set! x (logior (ash (logand x #x5555555555555555) 1) (ash (logand x #xAAAAAAAAAAAAAAAA) -1))) (set! x (logior (ash (logand x #x3333333333333333) 2) (ash (logand x #xCCCCCCCCCCCCCCCC) -2))) (set! x (logior (ash (logand x #x0F0F0F0F0F0F0F0F) 4) (ash (logand x #xF0F0F0F0F0F0F0F0) -4))) (set! x (logior (ash (logand x #x00FF00FF00FF00FF) 8) (ash (logand x #xFF00FF00FF00FF00) -8))) (set! x (logior (ash (logand x #x0000FFFF0000FFFF) 16) (ash (logand x #xFFFF0000FFFF0000) -16))) (logior (ash (logand x #x00000000FFFFFFFF) 32) (ash (logand x #xFFFFFFFF00000000) -32)))) (let ((x (ash (bit-reverse #x01234566) -32))) (num-test x 1721943168))) (test-end "some other bit stuff") ;;; -------------------------------------------------------------------------------- ;;; truncate ;;; -------------------------------------------------------------------------------- (test-begin "truncate") (num-test (truncate (- (+ 1 -1/123400000))) 0) (num-test (truncate (- 1 1/123400000)) 0) (num-test (truncate (/ (- most-positive-fixnum 1) most-positive-fixnum)) 0) (num-test (truncate (/ -1 most-positive-fixnum)) 0) (num-test (truncate (/ 1 most-positive-fixnum)) 0) (num-test (truncate (/ most-negative-fixnum most-positive-fixnum)) -1) (num-test (truncate (/ most-positive-fixnum (- most-positive-fixnum 1))) 1) (num-test (truncate -0) 0) (num-test (truncate -0.0) 0.0) (num-test (truncate -0.1) 0.0) (num-test (truncate -0.9) 0.0) (num-test (truncate -1) -1) (num-test (truncate -1.1) -1.0) (num-test (truncate -1.9) -1.0) (num-test (truncate -1/10) 0) (num-test (truncate -1/123400000) 0) (num-test (truncate -1/2) 0) (num-test (truncate -100/3) -33) (num-test (truncate -11/10) -1) (num-test (truncate -17/2) -8) (num-test (truncate -19/10) -1) (num-test (truncate -2.225073858507201399999999999999999999996E-308) 0.0) (num-test (truncate -2/3) 0) (num-test (truncate -200/3) -66) (num-test (truncate -3/2) -1) (num-test (truncate -9/10) 0) (num-test (truncate -9223372036854775808) -9223372036854775808) (num-test (truncate 0) 0) (num-test (truncate 0.0) 0.0) (num-test (truncate 0.1) 0.0) (num-test (truncate 0.9) 0.0) (num-test (truncate 1) 1) (num-test (truncate 1.1) 1.0) (num-test (truncate 1.110223024625156799999999999999999999997E-16) 0.0) (num-test (truncate 1.9) 1.0) (num-test (truncate 1/10) 0) (num-test (truncate 1/123400000) 0) (num-test (truncate 1/2) 0) (num-test (truncate 100/3) 33) (num-test (truncate 11/10) 1) (num-test (truncate 17.3) 17.0) (num-test (truncate 19) 19) (num-test (truncate 19/10) 1) (num-test (truncate 2.4) 2.0) (num-test (truncate 2.5) 2.0) (num-test (truncate 2.6) 2.0) (num-test (truncate 2/3) 0) (num-test (truncate 200/3) 66) (num-test (truncate 3/2) 1) (num-test (truncate 9/10) 0) (num-test (truncate 9223372036854775807) 9223372036854775807) (num-test (truncate most-negative-fixnum) most-negative-fixnum) (num-test (truncate most-positive-fixnum) most-positive-fixnum) (num-test (truncate 1+0i) 1) (num-test (truncate 8388608.9999999995) 8388608.0) (num-test (truncate -8388609.0000000005) -8388609.0) (num-test (truncate -8388609.9999999995) -8388609.0) (s7-test (= (truncate (* 111738283365989051/177100989030047175 1.0)) (truncate 130441933147714940/206745572560704147)) #t) (s7-test (= (truncate (* 114243/80782 114243/80782 1.0)) (truncate (* 275807/195025 275807/195025))) #f) (s7-test (= (truncate (* 131836323/93222358 131836323/93222358 1.0)) (truncate (* 318281039/225058681 318281039/225058681))) #f) (s7-test (= (truncate (* 1393/985 1393/985 1.0)) (truncate (* 3363/2378 3363/2378))) #f) (s7-test (= (truncate (* 1607521/1136689 1607521/1136689 1.0)) (truncate (* 3880899/2744210 3880899/2744210))) #f) (s7-test (= (truncate (* 19601/13860 19601/13860 1.0)) (truncate (* 47321/33461 47321/33461))) #f) (s7-test (= (truncate (* 275807/195025 275807/195025 1.0)) (truncate (* 1607521/1136689 1607521/1136689))) #t) (s7-test (= (truncate (* 3363/2378 3363/2378 1.0)) (truncate (* 19601/13860 19601/13860))) #t) (s7-test (= (truncate (* 3880899/2744210 3880899/2744210 1.0)) (truncate (* 9369319/6625109 9369319/6625109))) #f) (s7-test (= (truncate (* 47321/33461 47321/33461 1.0)) (truncate (* 114243/80782 114243/80782))) #f) (s7-test (= (truncate (* 54608393/38613965 54608393/38613965 1.0)) (truncate (* 131836323/93222358 131836323/93222358))) #f) (s7-test (= (truncate (* 9369319/6625109 9369319/6625109 1.0)) (truncate (* 54608393/38613965 54608393/38613965))) #t) (num-test (truncate (+ (expt 2 62) 512)) 4611686018427388416) (num-test (truncate (+ (expt 2 62) 513)) 4611686018427388417) (num-test (truncate (exact->inexact most-negative-fixnum)) (exact->inexact most-negative-fixnum)) (s7-test (truncate (exact->inexact most-positive-fixnum)) (exact->inexact most-positive-fixnum)) (num-test (truncate #e1e19) 10000000000000000000) (num-test (truncate #e1e32) 100000000000000000000000000000000) (num-test (truncate #e-1e19) -10000000000000000000) (num-test (truncate #e-1e32) -100000000000000000000000000000000) (num-test (truncate 100000000000000000000000000000000/3) 33333333333333333333333333333333) (num-test (truncate -100000000000000000000000000000000/3) -33333333333333333333333333333333) (num-test (truncate 200000000000000000000000000000000/3) 66666666666666666666666666666666) (num-test (truncate -200000000000000000000000000000000/3) -66666666666666666666666666666666) (s7-test (truncate) 'error) (s7-test (truncate 1.23+1.0i) 'error) (test-end "truncate") ;;; -------------------------------------------------------------------------------- ;;; floor ;;; -------------------------------------------------------------------------------- (test-begin "floor") (num-test (floor (+ 1 (expt 2 30))) 1073741825) (num-test (floor (- (+ 1 -1/123400000))) -1) (num-test (floor (- 1 1/123400000)) 0) (num-test (floor (/ (- most-positive-fixnum 1) most-positive-fixnum)) 0) (num-test (floor (/ -1 most-positive-fixnum)) -1) (num-test (floor (/ 1 most-positive-fixnum)) 0) (num-test (floor (/ most-negative-fixnum most-positive-fixnum)) -2) (num-test (floor -0) 0) (num-test (floor -0.0) 0.0) (num-test (floor -0.1) -1.0) (num-test (floor -0.9) -1.0) (num-test (floor -1) -1) (num-test (floor -1.1) -2.0) (num-test (floor -1.9) -2.0) (num-test (floor -1/10) -1) (num-test (floor -1/123400000) -1) (num-test (floor -1/2) -1) (num-test (floor -100/3) -34) (num-test (floor -11/10) -2) (num-test (floor -17/2) -9) (num-test (floor -19/10) -2) (num-test (floor -2.225073858507201399999999999999999999996E-308) -1.0) (num-test (floor -2/3) -1) (num-test (floor -200/3) -67) (num-test (floor -3/2) -2) (num-test (floor -9/10) -1) (num-test (floor -9223372036854775808) -9223372036854775808) (num-test (floor 0) 0) (num-test (floor 0.0) 0.0) (num-test (floor 0.1) 0.0) (num-test (floor 0.9) 0.0) (num-test (floor 1) 1) (num-test (floor 1.0-00.i) 1.0) (num-test (floor 1.1) 1.0) (num-test (floor 1.110223024625156799999999999999999999997E-16) 0.0) (num-test (floor 1.9) 1.0) (num-test (floor 1/10) 0) (num-test (floor 1/123400000) 0) (num-test (floor 1/2) 0) (num-test (floor 100/3) 33) (num-test (floor 11/10) 1) (num-test (floor 17.3) 17.0) (num-test (floor 19) 19) (num-test (floor 19/10) 1) (num-test (floor 2.5) 2.0) (num-test (floor 2.6) 2.0) (num-test (floor 2/3) 0) (num-test (floor 200/3) 66) (num-test (floor 3/2) 1) (num-test (floor 9/10) 0) (num-test (floor 9223372036854775807) 9223372036854775807) (num-test (floor most-negative-fixnum) most-negative-fixnum) (num-test (floor most-positive-fixnum) most-positive-fixnum) (num-test (floor (+ 0.7 8388608.0)) 8388608.0) (num-test (floor 8388608.9999999995) 8388608.0) (num-test (floor 8388607.9999999995) 8388607.0) (num-test (floor 8388608.0000000005) 8388608.0) (num-test (floor 9007199254740992.95) 9007199254740992.0) (num-test (floor 9007199254740990.95) 9007199254740990.0) (num-test (floor 9007199254740993.95) 9007199254740993.0) (num-test (floor (+ 0.995 (expt 2.0 46))) 70368744177664.0) (num-test (floor (+ 0.9995 (expt 2.0 45))) 35184372088832.0) (s7-test (= (floor (* 111738283365989051/177100989030047175 1.0)) (floor 130441933147714940/206745572560704147)) #t) (s7-test (= (floor (* 114243/80782 114243/80782 1.0)) (floor (* 275807/195025 275807/195025))) #f) (s7-test (= (floor (* 131836323/93222358 131836323/93222358 1.0)) (floor (* 318281039/225058681 318281039/225058681))) #f) (s7-test (= (floor (* 1393/985 1393/985 1.0)) (floor (* 3363/2378 3363/2378))) #f) (s7-test (= (floor (* 1607521/1136689 1607521/1136689 1.0)) (floor (* 3880899/2744210 3880899/2744210))) #f) (s7-test (= (floor (* 19601/13860 19601/13860 1.0)) (floor (* 47321/33461 47321/33461))) #f) (s7-test (= (floor (* 275807/195025 275807/195025 1.0)) (floor (* 1607521/1136689 1607521/1136689))) #t) (s7-test (= (floor (* 3363/2378 3363/2378 1.0)) (floor (* 19601/13860 19601/13860))) #t) (s7-test (= (floor (* 3880899/2744210 3880899/2744210 1.0)) (floor (* 9369319/6625109 9369319/6625109))) #f) (s7-test (= (floor (* 47321/33461 47321/33461 1.0)) (floor (* 114243/80782 114243/80782))) #f) (s7-test (= (floor (* 54608393/38613965 54608393/38613965 1.0)) (floor (* 131836323/93222358 131836323/93222358))) #f) (s7-test (= (floor (* 9369319/6625109 9369319/6625109 1.0)) (floor (* 54608393/38613965 54608393/38613965))) #t) (num-test (floor (+ (expt 2.0 62) 512)) 4611686018427388416.0) (num-test (floor (+ (expt 2.0 62) 513)) 4611686018427388417.0) (num-test (floor (exact->inexact most-negative-fixnum)) (exact->inexact most-negative-fixnum)) (s7-test (floor (exact->inexact most-positive-fixnum)) (exact->inexact most-positive-fixnum)) (num-test (floor #e1e19) 10000000000000000000) (num-test (floor #e1e32) 100000000000000000000000000000000) (num-test (floor #e-1e19) -10000000000000000000) (num-test (floor #e-1e32) -100000000000000000000000000000000) (num-test (floor 100000000000000000000000000000000/3) 33333333333333333333333333333333) (num-test (floor -100000000000000000000000000000000/3) -33333333333333333333333333333334) (num-test (floor 200000000000000000000000000000000/3) 66666666666666666666666666666666) (num-test (floor -200000000000000000000000000000000/3) -66666666666666666666666666666667) (s7-test (floor) 'error) (s7-test (floor 1.23+1.0i) 'error) (s7-test (floor 1.23 1.23) 'error) (test-end "floor") ;;; -------------------------------------------------------------------------------- ;;; ceiling ;;; -------------------------------------------------------------------------------- (test-begin "ceiling") (num-test (ceiling #e-01-0i ) -1) (num-test (ceiling (- (+ 1 -1/123400000))) 0) (num-test (ceiling (- 1 1/123400000)) 1) (num-test (ceiling (/ (- most-positive-fixnum 1) most-positive-fixnum)) 1) (num-test (ceiling (/ -1 most-positive-fixnum)) 0) (num-test (ceiling (/ 1 most-positive-fixnum)) 1) (num-test (ceiling (/ most-negative-fixnum most-positive-fixnum)) -1) (num-test (ceiling (/ most-positive-fixnum (- most-positive-fixnum 1))) 2) (num-test (ceiling -.0001) 0.0) (num-test (ceiling -0) 0) (num-test (ceiling -0.0) 0.0) (num-test (ceiling -0.1) 0.0) (num-test (ceiling -0.9) 0.0) (num-test (ceiling -1) -1) (num-test (ceiling -1.1) -1.0) (num-test (ceiling -1.9) -1.0) (num-test (ceiling -1/10) 0) (num-test (ceiling -1/123400000) 0) (num-test (ceiling -1/2) 0) (num-test (ceiling -100/3) -33) (num-test (ceiling -11/10) -1) (num-test (ceiling -17/2) -8) (num-test (ceiling -19/10) -1) (num-test (ceiling -2.225073858507201399999999999999999999996E-308) 0.0) (num-test (ceiling -2/3) 0) (num-test (ceiling -200/3) -66) (num-test (ceiling -2147483647.8) -2147483647.0) (num-test (ceiling -3/2) -1) (num-test (ceiling -9/10) 0) (num-test (ceiling -9223372036854775808) -9223372036854775808) (num-test (ceiling .0001) 1.0) (num-test (ceiling 0) 0) (num-test (ceiling 0.0) 0.0) (num-test (ceiling 0.1) 1.0) (num-test (ceiling 0.9) 1.0) (num-test (ceiling 1) 1) (num-test (ceiling 1.01e-123) 1.0) (num-test (ceiling 1.1) 2.0) (num-test (ceiling 1.110223024625156799999999999999999999997E-16) 1.0) (num-test (ceiling 1.9) 2.0) (num-test (ceiling 1/10) 1) (num-test (ceiling 1/123400000) 1) (num-test (ceiling 1/2) 1) (num-test (ceiling 100/3) 34) (num-test (ceiling 11/10) 2) (num-test (ceiling 17.3) 18.0) (num-test (ceiling 19) 19) (num-test (ceiling 19/10) 2) (num-test (ceiling 2.4) 3.0) (num-test (ceiling 2.5) 3.0) (num-test (ceiling 2.6) 3.0) (num-test (ceiling 2/3) 1) (num-test (ceiling 200/3) 67) (num-test (ceiling 2147483646.8) 2147483647.0) (num-test (ceiling 3/2) 2) (num-test (ceiling 9/10) 1) (num-test (ceiling 9223372036854775807) 9223372036854775807) (num-test (ceiling most-negative-fixnum) most-negative-fixnum) (num-test (ceiling most-positive-fixnum) most-positive-fixnum) (num-test (ceiling 8922337203685477.9) 8922337203685478.0) ;;; but unfortunately (ceiling 9223372036854775806.9) => -9223372036854775808 ;;; (ceiling 922337203685477580.9) => 922337203685477632 ;;; (ceiling 9223372036854770.9) => 9223372036854770 ;;; etc (num-test (ceiling 8388608.0000000005) 8388609.0) (num-test (ceiling 8388609.0000000005) 8388610.0) (num-test (ceiling 8388607.9999999995) 8388608.0) (num-test (ceiling 9223372036854775806.9) 9223372036854775807.0) (s7-test (= (ceiling (* 111738283365989051/177100989030047175 1.0)) (ceiling 130441933147714940/206745572560704147)) #t) (s7-test (= (ceiling (* 114243/80782 114243/80782 1.0)) (ceiling (* 275807/195025 275807/195025))) #f) (s7-test (= (ceiling (* 1393/985 1393/985 1.0)) (ceiling (* 3363/2378 3363/2378))) #f) (s7-test (= (ceiling (* 1607521/1136689 1607521/1136689 1.0)) (ceiling (* 3880899/2744210 3880899/2744210))) #f) (s7-test (= (ceiling (* 19601/13860 19601/13860 1.0)) (ceiling (* 47321/33461 47321/33461))) #f) (s7-test (= (ceiling (* 275807/195025 275807/195025 1.0)) (ceiling (* 1607521/1136689 1607521/1136689))) #t) (s7-test (= (ceiling (* 318281039/225058681 318281039/225058681 1.0)) (ceiling (* 1855077841/1311738121 1855077841/1311738121))) #t) (s7-test (= (ceiling (* 3363/2378 3363/2378 1.0)) (ceiling (* 19601/13860 19601/13860))) #t) (s7-test (= (ceiling (* 3880899/2744210 3880899/2744210 1.0)) (ceiling (* 9369319/6625109 9369319/6625109))) #f) (s7-test (= (ceiling (* 47321/33461 47321/33461 1.0)) (ceiling (* 114243/80782 114243/80782))) #f) (s7-test (= (ceiling (* 54608393/38613965 54608393/38613965 1.0)) (ceiling (* 131836323/93222358 131836323/93222358))) #f) (s7-test (= (ceiling (* 9369319/6625109 9369319/6625109 1.0)) (ceiling (* 54608393/38613965 54608393/38613965))) #t) (num-test (ceiling (+ (expt 2.0 62) 512)) 4611686018427388416.0) (num-test (ceiling (+ (expt 2.0 62) 513)) 4611686018427388417.0) (num-test (ceiling (exact->inexact most-negative-fixnum)) (exact->inexact most-negative-fixnum)) (s7-test (ceiling (exact->inexact most-positive-fixnum)) (exact->inexact most-positive-fixnum)) (num-test (ceiling 123456789012345678901234567890.1) 123456789012345678901234567891.0) (num-test (ceiling -123456789012345678901234567890.1) -123456789012345678901234567890.0) (num-test (ceiling 9223372036854775806.7) 9223372036854775807.0) (num-test (ceiling -9223372036854775807.9) -9223372036854775807.0) (num-test (ceiling #e-1e19) -10000000000000000000) (num-test (ceiling #e-1e32) -100000000000000000000000000000000) (num-test (ceiling 100000000000000000000000000000000/3) 33333333333333333333333333333334) (num-test (ceiling -100000000000000000000000000000000/3) -33333333333333333333333333333333) (num-test (ceiling 200000000000000000000000000000000/3) 66666666666666666666666666666667) (num-test (ceiling -200000000000000000000000000000000/3) -66666666666666666666666666666666) (s7-test (ceiling) 'error) (s7-test (ceiling 1.23+1.0i) 'error) (s7-test (ceiling 1.23 1.23) 'error) (test-end "ceiling") ;;; -------------------------------------------------------------------------------- ;;; round ;;; -------------------------------------------------------------------------------- (test-begin "round") (num-test (round (- (+ 1 -1/123400000))) -1) (num-test (round (- 1 1/123400000)) 1) (num-test (round (/ (- most-positive-fixnum 1) most-positive-fixnum)) 1) (num-test (round (/ -1 most-positive-fixnum)) 0) (num-test (round (/ 1 most-positive-fixnum)) 0) (num-test (round (/ most-negative-fixnum most-positive-fixnum)) -1) (num-test (round -0) 0) (num-test (round -0.0) 0.0) (num-test (round -0.1) 0.0) (num-test (round -0.9) -1.0) (num-test (round -1) -1) (num-test (round -1.1) -1.0) (num-test (round -1.9) -2.0) (num-test (round -1/10) 0) (num-test (round -1/123400000) 0) (num-test (round -1/2) 0) (num-test (round -100/3) -33) (num-test (round -11/10) -1) (num-test (round -17/2) -8) (num-test (round -19/10) -2) (num-test (round -2.225073858507201399999999999999999999996E-308) 0.0) (num-test (round -2/3) -1) (num-test (round -200/3) -67) (num-test (round -3/2) -2) (num-test (round -9/10) -1) (num-test (round -9223372036854775808) -9223372036854775808) (num-test (round 0) 0) (num-test (round 0.0) 0.0) (num-test (round 0.1) 0.0) (num-test (round 0.9) 1.0) (num-test (round 1) 1) (num-test (round 1.1) 1.0) (num-test (round 1.110223024625156799999999999999999999997E-16) 0.0) (num-test (round 1.9) 2.0) (num-test (round 1/10) 0) (num-test (round 1/123400000) 0) (num-test (round 1/2) 0) (num-test (round 100/3) 33) (num-test (round 11/10) 1) (num-test (round 17.3) 17.0) (num-test (round 19) 19) (num-test (round 19/10) 2) (num-test (round 2.4) 2.0) (num-test (round 2.5) 2.0) (num-test (round 2.5) 2.0) (num-test (round 2.6) 3.0) (num-test (round 2/3) 1) (num-test (round 200/3) 67) (num-test (round 3.5) 4.0) (num-test (round 3/2) 2) (num-test (round 9/10) 1) (num-test (round 9223372036854775807) 9223372036854775807) (num-test (round most-negative-fixnum) most-negative-fixnum) (num-test (round most-positive-fixnum) most-positive-fixnum) (num-test (round (+ 8388608 .1)) 8388608.0) (num-test (round (+ 8388608 .9)) 8388609.0) (num-test (round (- 8388608 .1)) 8388608.0) (num-test (round (- 8388608 .9)) 8388607.0) (num-test (round 9007199254740990.501) 9007199254740991.0) (num-test (round 9007199254740990.499) 9007199254740990.0) (num-test (round 9007199254740992.51) 9007199254740993.0) (num-test (round 9007199254740993.99) 9007199254740994.0) (s7-test (= (round (* 111738283365989051/177100989030047175 1.0)) (round 130441933147714940/206745572560704147)) #t) (s7-test (= (round (* 114243/80782 114243/80782 1.0)) (round (* 275807/195025 275807/195025))) #t) (s7-test (= (round (* 131836323/93222358 131836323/93222358 1.0)) (round (* 318281039/225058681 318281039/225058681))) #t) (s7-test (= (round (* 1393/985 1393/985 1.0)) (round (* 3363/2378 3363/2378))) #t) (s7-test (= (round (* 1607521/1136689 1607521/1136689 1.0)) (round (* 3880899/2744210 3880899/2744210))) #t) (s7-test (= (round (* 1855077841/1311738121 1855077841/1311738121 1.0)) (round (* 4478554083/3166815962 4478554083/3166815962))) #t) (s7-test (= (round (* 19601/13860 19601/13860 1.0)) (round (* 47321/33461 47321/33461))) #t) (s7-test (= (round (* 275807/195025 275807/195025 1.0)) (round (* 1607521/1136689 1607521/1136689))) #t) (s7-test (= (round (* 318281039/225058681 318281039/225058681 1.0)) (round (* 1855077841/1311738121 1855077841/1311738121))) #t) (s7-test (= (round (* 3363/2378 3363/2378 1.0)) (round (* 19601/13860 19601/13860))) #t) (s7-test (= (round (* 3880899/2744210 3880899/2744210 1.0)) (round (* 9369319/6625109 9369319/6625109))) #t) (s7-test (= (round (* 47321/33461 47321/33461 1.0)) (round (* 114243/80782 114243/80782))) #t) (s7-test (= (round (* 54608393/38613965 54608393/38613965 1.0)) (round (* 131836323/93222358 131836323/93222358))) #t) (s7-test (= (round (* 9369319/6625109 9369319/6625109 1.0)) (round (* 54608393/38613965 54608393/38613965))) #t) (s7-test (round 1.23 1.23) 'error) (s7-test (round 1.23+1.0i) 'error) (s7-test (round) 'error) (num-test (round 400000000000000000/800000000000000001) 0) (num-test (round 400000000000000000/799999999999999999) 1) (num-test (round (+ (expt 2.0 62) 512)) 4611686018427388416.0) (num-test (round (+ (expt 2.0 62) 513)) 4611686018427388417.0) (num-test (round (exact->inexact most-negative-fixnum)) (exact->inexact most-negative-fixnum)) (s7-test (round (exact->inexact most-positive-fixnum)) (exact->inexact most-positive-fixnum)) (num-test (round #e-1e19) -10000000000000000000) (num-test (round #e-1e32) -100000000000000000000000000000000) (num-test (round 100000000000000000000000000000000/3) 33333333333333333333333333333333) (num-test (round -100000000000000000000000000000000/3) -33333333333333333333333333333333) (num-test (round 200000000000000000000000000000000/3) 66666666666666666666666666666667) (num-test (round -200000000000000000000000000000000/3) -66666666666666666666666666666667) (test-end "round") (test-begin "some other tests for floor, round and ceiling") (s7-test (equal? (let ((vals '())) (do ((k 1/3 (+ k 1/3))) ((> k 2) (reverse vals)) (set! vals (cons (round k) vals)))) (list 0 1 1 1 2 2)) #t) (s7-test (equal? (let ((vals '())) (do ((k 1/3 (+ k 1/3))) ((> k 2) (reverse vals)) (set! vals (cons (round (- k)) vals)))) (list 0 -1 -1 -1 -2 -2)) #t) (s7-test (equal? (let ((vals '())) (do ((k 1/2 (+ k 1/2))) ((> k 3) (reverse vals)) (set! vals (cons (round k) vals)))) (list 0 1 2 2 2 3)) #t) (s7-test (equal? (let ((vals '())) (do ((k 1/2 (+ k 1/2))) ((> k 3) (reverse vals)) (set! vals (cons (round (- k)) vals)))) (list 0 -1 -2 -2 -2 -3)) #t) (let ((top-exp 150)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (/ (- (expt 2 i) 1) 2)) (val2 (expt 2 (- i 1))) (fv (floor val1)) (rv (round val1)) (cv (ceiling val1)) (tv (truncate val1))) (if (not (= fv (- val2 1))) (begin (set! happy #f) (format #t ";(floor ~S) = ~S?~%" val1 fv))) (if (not (= cv val2)) (begin (set! happy #f) (format #t ";(ceiling ~S) = ~S?~%" val1 cv))) (if (not (= tv (- val2 1))) (begin (set! happy #f) (format #t ";(truncate ~S) = ~S?~%" val1 tv))) (if (not (= rv val2)) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv))))) (test-assert happy)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (/ (+ (expt 2 i) 1) 2)) (val2 (expt 2 (- i 1))) (fv (floor val1)) (rv (round val1)) (cv (ceiling val1)) (tv (truncate val1))) (if (not (= fv val2)) (begin (set! happy #f) (format #t ";(floor ~S) = ~S?~%" val1 fv))) (if (not (= cv (+ val2 1))) (begin (set! happy #f) (format #t ";(ceiling ~S) = ~S?~%" val1 cv))) (if (not (= tv val2)) (begin (set! happy #f) (format #t ";(truncate ~S) = ~S?~%" val1 tv))) (if (not (= rv val2)) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv))))) (test-assert happy)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (expt 2 i)) (val2 (- val1 1))) (if (= (floor val1) (floor val2)) (begin (set! happy #f) (format #t ";(floor ~S) = (floor ~S)?~%" val1 val2))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (format #t ";(ceiling ~S) = (ceiling ~S)?~%" val1 val2))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (format #t ";(truncate ~S) = (truncate ~S)?~%" val1 val2))) (if (= (round val1) (round val2)) (begin (set! happy #f) (format #t ";(round ~S) = (round ~S)?~%" val1 val2))))) (test-assert happy)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (/ (- (expt 2 i) 1) 2)) (val2 (/ (- (expt 2 i) 3) 2))) (if (= (floor val1) (floor val2)) (begin (set! happy #f) (format #t ";(floor ~S) = (floor ~S)?~%" val1 val2))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (format #t ";(ceiling ~S) = (ceiling ~S)?~%" val1 val2))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (format #t ";(truncate ~S) = (truncate ~S)?~%" val1 val2))) (if (= (round val1) (round val2)) (begin (set! happy #f) (format #t ";(round ~S) = (round ~S)?~%" val1 val2))))) (test-assert happy)) (let ((happy #t) (off-by 1/3)) (do ((i 2 (+ i 1))) ((or (not happy) (>= i top-exp))) (let* ((val1 (/ (expt 2 i) 3)) (fv (floor val1)) (cv (ceiling val1)) (tv (truncate val1)) (rv (round val1))) (if (not (= fv (- val1 off-by))) (begin (set! happy #f) (format #t ";(floor ~S) = ~S?~%" val1 fv))) (if (not (= cv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (format #t ";(ceiling ~S) = ~S?~%" val1 cv))) (if (not (= tv (- val1 off-by))) (begin (set! happy #f) (format #t ";(truncate ~S) = ~S?~%" val1 tv))) (if (= off-by 1/3) (if (not (= rv (- val1 off-by))) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv))) (if (not (= rv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv)))) (if (= off-by 1/3) (set! off-by 2/3) (set! off-by 1/3)))) (test-assert happy)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (- (/ (- (expt 2 i) 1) 2))) (val2 (- (expt 2 (- i 1)))) (fv (floor val1)) (rv (round val1)) (cv (ceiling val1)) (tv (truncate val1))) (if (not (= fv val2)) (begin (set! happy #f) (format #t ";(floor ~S) = ~S?~%" val1 fv))) (if (not (= cv (+ val2 1))) (begin (set! happy #f) (format #t ";(ceiling ~S) = ~S?~%" val1 cv))) (if (not (= tv (+ val2 1))) (begin (set! happy #f) (format #t ";(truncate ~S) = ~S?~%" val1 tv))) (if (not (= rv val2)) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv))))) (test-assert happy)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (- (/ (+ (expt 2 i) 1) 2))) (val2 (- (expt 2 (- i 1)))) (fv (floor val1)) (rv (round val1)) (cv (ceiling val1)) (tv (truncate val1))) (if (not (= fv (- val2 1))) (begin (set! happy #f) (format #t ";(floor ~S) = ~S?~%" val1 fv))) (if (not (= cv val2)) (begin (set! happy #f) (format #t ";(ceiling ~S) = ~S?~%" val1 cv))) (if (not (= tv val2)) (begin (set! happy #f) (format #t ";(truncate ~S) = ~S?~%" val1 tv))) (if (not (= rv val2)) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv))))) (test-assert happy)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (- (expt 2 i))) (val2 (+ val1 1))) (if (= (floor val1) (floor val2)) (begin (set! happy #f) (format #t ";(floor ~S) = (floor ~S)?~%" val1 val2))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (format #t ";(ceiling ~S) = (ceiling ~S)?~%" val1 val2))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (format #t ";(truncate ~S) = (truncate ~S)?~%" val1 val2))) (if (= (round val1) (round val2)) (begin (set! happy #f) (format #t ";(round ~S) = (round ~S)?~%" val1 val2))))) (test-assert happy)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (- (/ (- (expt 2 i) 1) 2))) (val2 (- (/ (- (expt 2 i) 3) 2)))) (if (= (floor val1) (floor val2)) (begin (set! happy #f) (format #t ";(floor ~S) = (floor ~S)?~%" val1 val2))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (format #t ";(ceiling ~S) = (ceiling ~S)?~%" val1 val2))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (format #t ";(truncate ~S) = (truncate ~S)?~%" val1 val2))) (if (= (round val1) (round val2)) (begin (set! happy #f) (format #t ";(round ~S) = (round ~S)?~%" val1 val2))))) (test-assert happy)) (let ((happy #t) (off-by 2/3)) (do ((i 2 (+ i 1))) ((or (not happy) (>= i top-exp))) (let* ((val1 (- (/ (expt 2 i) 3))) (fv (floor val1)) (cv (ceiling val1)) (tv (truncate val1)) (rv (round val1))) (if (not (= fv (- val1 off-by))) (begin (set! happy #f) (format #t ";(floor ~S) = ~S?~%" val1 fv))) (if (not (= cv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (format #t ";(ceiling ~S) = ~S?~%" val1 cv))) (if (not (= tv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (format #t ";(truncate ~S) = ~S?~%" val1 tv))) (if (= off-by 1/3) (if (not (= rv (- val1 off-by))) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv))) (if (not (= rv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (format #t ";(round ~S) = ~S?~%" val1 rv)))) (if (= off-by 1/3) (set! off-by 2/3) (set! off-by 1/3)))) (test-assert happy))) (test-end "some other tests for floor, round and ceiling") ;;; -------------------------------------------------------------------------------- ;;; modulo ;;; -------------------------------------------------------------------------------- ;;; (modulo x 0) -> x? I seem to be getting errors instead; maxima returns x and refers to Section 3.4, of "Concrete Mathematics," by Graham, Knuth, and Patashnik ;;; (mod x 1.0) = sawtooth (test-begin "modulo") ;; Not standards-compliant, must be an integer ;(num-test (modulo -0.5 -1) -0.5) (s7-test (modulo -0.5 -1) 'error) (num-test (modulo -1 -1) 0) (num-test (modulo -1 -10) -1) (num-test (modulo -1 -1234) -1) (num-test (modulo -1 -1234000000) -1) (num-test (modulo -1 -2) -1) (num-test (modulo -1 -3) -1) (num-test (modulo -1 -362880) -1) (num-test (modulo -1 -500029) -1) (num-test (modulo -1 1) 0) (num-test (modulo -1 10) 9) (num-test (modulo -1 1234) 1233) (num-test (modulo -1 1234000000) 1233999999) (num-test (modulo -1 2) 1) (num-test (modulo -1 3) 2) (num-test (modulo -1 362880) 362879) (num-test (modulo -1 500029) 500028) ;; Not standards-compliant, must be an integer ;(num-test (modulo -1.5 -2) -1.5) ;(num-test (modulo -1.5 2) 0.5) (s7-test (modulo -1.5 -2) 'error) (s7-test (modulo -1.5 2) 'error) (num-test (modulo -10 -1) 0) (num-test (modulo -10 -10) 0) (num-test (modulo -10 -1234) -10) (num-test (modulo -10 -1234000000) -10) (num-test (modulo -10 -2) 0) (num-test (modulo -10 -3) -1) (num-test (modulo -10 -362880) -10) (num-test (modulo -10 -500029) -10) (num-test (modulo -10 1) 0) (num-test (modulo -10 10) 0) (num-test (modulo -10 1234) 1224) (num-test (modulo -10 1234000000) 1233999990) (num-test (modulo -10 2) 0) (num-test (modulo -10 3) 2) (num-test (modulo -10 362880) 362870) (num-test (modulo -10 500029) 500019) (num-test (modulo -1234 -1) 0) (num-test (modulo -1234 -10) -4) (num-test (modulo -1234 -1234) 0) (num-test (modulo -1234 -1234000000) -1234) (num-test (modulo -1234 -2) 0) (num-test (modulo -1234 -3) -1) (num-test (modulo -1234 -362880) -1234) (num-test (modulo -1234 -500029) -1234) (num-test (modulo -1234 1) 0) (num-test (modulo -1234 10) 6) (num-test (modulo -1234 1234) 0) (num-test (modulo -1234 1234000000) 1233998766) (num-test (modulo -1234 2) 0) (num-test (modulo -1234 3) 2) (num-test (modulo -1234 362880) 361646) (num-test (modulo -1234 500029) 498795) (num-test (modulo -1234000000 -1) 0) (num-test (modulo -1234000000 -10) 0) (num-test (modulo -1234000000 -1234) 0) (num-test (modulo -1234000000 -1234000000) 0) (num-test (modulo -1234000000 -2) 0) (num-test (modulo -1234000000 -3) -1) (num-test (modulo -1234000000 -362880) -208000) (num-test (modulo -1234000000 -500029) -428457) (num-test (modulo -1234000000 1) 0) (num-test (modulo -1234000000 10) 0) (num-test (modulo -1234000000 1234) 0) (num-test (modulo -1234000000 1234000000) 0) (num-test (modulo -1234000000 2) 0) (num-test (modulo -1234000000 3) 2) (num-test (modulo -1234000000 362880) 154880) (num-test (modulo -1234000000 500029) 71572) (num-test (modulo -13 -4) -1) (num-test (modulo -13 4) 3) (num-test (modulo -13 4) 3) (num-test (modulo -2 -1) 0) (num-test (modulo -2 -10) -2) (num-test (modulo -2 -1234) -2) (num-test (modulo -2 -1234000000) -2) (num-test (modulo -2 -2) 0) (num-test (modulo -2 -3) -2) (num-test (modulo -2 -362880) -2) (num-test (modulo -2 -500029) -2) (num-test (modulo -2 1) 0) (num-test (modulo -2 10) 8) (num-test (modulo -2 1234) 1232) (num-test (modulo -2 1234000000) 1233999998) (num-test (modulo -2 2) 0) (num-test (modulo -2 3) 1) (num-test (modulo -2 362880) 362878) (num-test (modulo -2 500029) 500027) (num-test (modulo -3 -1) 0) (num-test (modulo -3 -10) -3) (num-test (modulo -3 -1234) -3) (num-test (modulo -3 -1234000000) -3) (num-test (modulo -3 -2) -1) (num-test (modulo -3 -3) 0) (num-test (modulo -3 -362880) -3) (num-test (modulo -3 -500029) -3) (num-test (modulo -3 1) 0) (num-test (modulo -3 1) 0) (num-test (modulo -3 10) 7) (num-test (modulo -3 1234) 1231) (num-test (modulo -3 1234000000) 1233999997) (num-test (modulo -3 2) 1) (num-test (modulo -3 3) 0) (num-test (modulo -3 362880) 362877) (num-test (modulo -3 500029) 500026) ;; Not standards-compliant, must be an integer ;(num-test (modulo -3.1 -2.0) -1.1) ;(num-test (modulo -3.1 2.0) 0.9) ; parallels (modulo -3 2) -> 1 ;(num-test (modulo -3.1 2.5) 1.9) ;(num-test (modulo -3.5 1.5) 1.0) (s7-test (modulo -3.1 -2.0) 'error) (s7-test (modulo -3.1 2.0) 'error) ; parallels (modulo -3 2) -> 1 (s7-test (modulo -3.1 2.5) 'error) (s7-test (modulo -3.5 1.5) 'error) (num-test (modulo -362880 -1) 0) (num-test (modulo -362880 -10) 0) (num-test (modulo -362880 -1234) -84) (num-test (modulo -362880 -1234000000) -362880) (num-test (modulo -362880 -2) 0) (num-test (modulo -362880 -3) 0) (num-test (modulo -362880 -362880) 0) (num-test (modulo -362880 -500029) -362880) (num-test (modulo -362880 1) 0) (num-test (modulo -362880 10) 0) (num-test (modulo -362880 1234) 1150) (num-test (modulo -362880 1234000000) 1233637120) (num-test (modulo -362880 2) 0) (num-test (modulo -362880 3) 0) (num-test (modulo -362880 362880) 0) (num-test (modulo -362880 500029) 137149) (num-test (modulo -500029 -1) 0) (num-test (modulo -500029 -10) -9) (num-test (modulo -500029 -1234) -259) (num-test (modulo -500029 -1234000000) -500029) (num-test (modulo -500029 -2) -1) (num-test (modulo -500029 -3) -1) (num-test (modulo -500029 -362880) -137149) (num-test (modulo -500029 -500029) 0) (num-test (modulo -500029 1) 0) (num-test (modulo -500029 10) 1) (num-test (modulo -500029 1234) 975) (num-test (modulo -500029 1234000000) 1233499971) (num-test (modulo -500029 2) 1) (num-test (modulo -500029 3) 2) (num-test (modulo -500029 362880) 225731) (num-test (modulo -500029 500029) 0) (num-test (modulo 0 -1) 0) (num-test (modulo 0 -1) 0) (num-test (modulo 0 -10) 0) (num-test (modulo 0 -10) 0) (num-test (modulo 0 -1234) 0) (num-test (modulo 0 -1234) 0) (num-test (modulo 0 -1234000000) 0) (num-test (modulo 0 -1234000000) 0) (num-test (modulo 0 -2) 0) (num-test (modulo 0 -2) 0) (num-test (modulo 0 -3) 0) (num-test (modulo 0 -3) 0) (num-test (modulo 0 -362880) 0) (num-test (modulo 0 -362880) 0) (num-test (modulo 0 -500029) 0) (num-test (modulo 0 -500029) 0) (num-test (modulo 0 -86400) 0) (num-test (modulo 0 1) 0) (num-test (modulo 0 1) 0) (num-test (modulo 0 10) 0) (num-test (modulo 0 10) 0) (num-test (modulo 0 1234) 0) (num-test (modulo 0 1234) 0) (num-test (modulo 0 1234000000) 0) (num-test (modulo 0 1234000000) 0) (num-test (modulo 0 2) 0) (num-test (modulo 0 2) 0) (num-test (modulo 0 3) 0) (num-test (modulo 0 3) 0) (num-test (modulo 0 362880) 0) (num-test (modulo 0 362880) 0) (num-test (modulo 0 500029) 0) (num-test (modulo 0 500029) 0) (num-test (modulo 0 86400) 0) ;; Not standards-compliant, must be an integer ;(num-test (modulo 0.5 -2) -1.5) ;(num-test (modulo 0.5 -2.0) -1.5) ;(num-test (modulo 0.5 2.0) 0.5) (s7-test (modulo 0.5 -2) 'error) (s7-test (modulo 0.5 -2.0) 'error) (s7-test (modulo 0.5 2.0) 'error) (num-test (modulo 1 -1) 0) (num-test (modulo 1 -10) -9) (num-test (modulo 1 -1234) -1233) (num-test (modulo 1 -1234000000) -1233999999) (num-test (modulo 1 -2) -1) (num-test (modulo 1 -3) -2) (num-test (modulo 1 -362880) -362879) (num-test (modulo 1 -4) -3) (num-test (modulo 1 -500029) -500028) (num-test (modulo 1 1) 0) (num-test (modulo 1 10) 1) (num-test (modulo 1 1234) 1) (num-test (modulo 1 1234000000) 1) (num-test (modulo 1 2) 1) (num-test (modulo 1 3) 1) (num-test (modulo 1 362880) 1) (num-test (modulo 1 500029) 1) (num-test (modulo 10 -1) 0) (num-test (modulo 10 -10) 0) (num-test (modulo 10 -1234) -1224) (num-test (modulo 10 -1234000000) -1233999990) (num-test (modulo 10 -2) 0) (num-test (modulo 10 -3) -2) (num-test (modulo 10 -362880) -362870) (num-test (modulo 10 -500029) -500019) (num-test (modulo 10 1) 0) (num-test (modulo 10 10) 0) (num-test (modulo 10 1234) 10) (num-test (modulo 10 1234000000) 10) (num-test (modulo 10 2) 0) (num-test (modulo 10 3) 1) (num-test (modulo 10 362880) 10) (num-test (modulo 10 500029) 10) (num-test (modulo 1234 -1) 0) (num-test (modulo 1234 -10) -6) (num-test (modulo 1234 -1234) 0) (num-test (modulo 1234 -1234000000) -1233998766) (num-test (modulo 1234 -2) 0) (num-test (modulo 1234 -3) -2) (num-test (modulo 1234 -362880) -361646) (num-test (modulo 1234 -500029) -498795) (num-test (modulo 1234 1) 0) (num-test (modulo 1234 10) 4) (num-test (modulo 1234 1234) 0) (num-test (modulo 1234 1234000000) 1234) (num-test (modulo 1234 2) 0) (num-test (modulo 1234 3) 1) (num-test (modulo 1234 362880) 1234) (num-test (modulo 1234 500029) 1234) (num-test (modulo 1234000000 -1) 0) (num-test (modulo 1234000000 -10) 0) (num-test (modulo 1234000000 -1234) 0) (num-test (modulo 1234000000 -1234000000) 0) (num-test (modulo 1234000000 -2) 0) (num-test (modulo 1234000000 -3) -2) (num-test (modulo 1234000000 -362880) -154880) (num-test (modulo 1234000000 -500029) -71572) (num-test (modulo 1234000000 1) 0) (num-test (modulo 1234000000 10) 0) (num-test (modulo 1234000000 1234) 0) (num-test (modulo 1234000000 1234000000) 0) (num-test (modulo 1234000000 2) 0) (num-test (modulo 1234000000 3) 1) (num-test (modulo 1234000000 362880) 208000) (num-test (modulo 1234000000 500029) 428457) (num-test (modulo 13 -4) -3) (num-test (modulo 13 4) 1) (num-test (modulo 13 4) 1) ;; Not standards-compliant, must be an integer ;(num-test (modulo 19439282 4409.5) 2206.0) (s7-test (modulo 19439282 4409.5) 'error) (num-test (modulo 2 -1) 0) (num-test (modulo 2 -10) -8) (num-test (modulo 2 -1234) -1232) (num-test (modulo 2 -1234000000) -1233999998) (num-test (modulo 2 -2) 0) (num-test (modulo 2 -3) -1) (num-test (modulo 2 -362880) -362878) (num-test (modulo 2 -500029) -500027) (num-test (modulo 2 1) 0) (num-test (modulo 2 10) 2) (num-test (modulo 2 1234) 2) (num-test (modulo 2 1234000000) 2) (num-test (modulo 2 2) 0) (num-test (modulo 2 3) 2) (num-test (modulo 2 362880) 2) (num-test (modulo 2 500029) 2) (num-test (modulo 3 -1) 0) (num-test (modulo 3 -1) 0) (num-test (modulo 3 -10) -7) (num-test (modulo 3 -1234) -1231) (num-test (modulo 3 -1234000000) -1233999997) (num-test (modulo 3 -2) -1) (num-test (modulo 3 -3) 0) (num-test (modulo 3 -362880) -362877) (num-test (modulo 3 -500029) -500026) (num-test (modulo 3 1) 0) (num-test (modulo 3 1) 0) (num-test (modulo 3 10) 3) (num-test (modulo 3 1234) 3) (num-test (modulo 3 1234000000) 3) (num-test (modulo 3 2) 1) ;; Not standards-compliant, must be an integer ;(num-test (modulo 3 2.5) 0.5) (s7-test (modulo 3 2.5) 'error) (num-test (modulo 3 3) 0) (num-test (modulo 3 362880) 3) (num-test (modulo 3 500029) 3) ;; Not standards-compliant, must be an integer ;(num-test (modulo 3.1 -2.0) -0.9) ;(num-test (modulo 3.1 2) 1.1) ;(num-test (modulo 3.1 2.0) 1.1) ;(num-test (modulo 3.5 1.5) 0.5) (s7-test (modulo 3.1 -2.0) 'error) (s7-test (modulo 3.1 2) 'error) (s7-test (modulo 3.1 2.0) 'error) (s7-test (modulo 3.5 1.5) 'error) (num-test (modulo 362880 -1) 0) (num-test (modulo 362880 -10) 0) (num-test (modulo 362880 -1234) -1150) (num-test (modulo 362880 -1234000000) -1233637120) (num-test (modulo 362880 -2) 0) (num-test (modulo 362880 -3) 0) (num-test (modulo 362880 -362880) 0) (num-test (modulo 362880 -500029) -137149) (num-test (modulo 362880 1) 0) (num-test (modulo 362880 10) 0) (num-test (modulo 362880 1234) 84) (num-test (modulo 362880 1234000000) 362880) (num-test (modulo 362880 2) 0) (num-test (modulo 362880 3) 0) (num-test (modulo 362880 362880) 0) (num-test (modulo 362880 500029) 362880) (num-test (modulo 500029 -1) 0) (num-test (modulo 500029 -10) -1) (num-test (modulo 500029 -1234) -975) (num-test (modulo 500029 -1234000000) -1233499971) (num-test (modulo 500029 -2) -1) (num-test (modulo 500029 -3) -2) (num-test (modulo 500029 -362880) -225731) (num-test (modulo 500029 -500029) 0) (num-test (modulo 500029 1) 0) (num-test (modulo 500029 10) 9) (num-test (modulo 500029 1234) 259) (num-test (modulo 500029 1234000000) 500029) (num-test (modulo 500029 2) 1) (num-test (modulo 500029 3) 1) (num-test (modulo 500029 362880) 137149) (num-test (modulo 500029 500029) 0) (num-test (modulo 2755 13) 12) (num-test (modulo 56 2) 0) (num-test (modulo 148665 2) 1) (num-test (modulo 71862 203) 0) (num-test (modulo 21568911 41) 0) (num-test (modulo 15295874 111) 74) (num-test (modulo 20430054 41) 0) (num-test (modulo 248255254 767) 364) (num-test (modulo 510104442 5453) 3557) (num-test (modulo 242162410 41) 10) (num-test (modulo 660070972 74) 0) (num-test (modulo 6542405452 117) 37) (num-test (modulo 629448534 2) 0) (num-test (modulo 163873565922 155) 62) (num-test (modulo 1563464979842 442) 272) (num-test (modulo 3712337724 576173) 55085) (num-test (modulo 4380921044390 5) 0) (num-test (modulo 4097970629150 86) 16) (num-test (modulo 2090198664 1118) 398) (num-test (modulo 5275411661289 31857) 10521) (num-test (modulo 38602581835881 19) 8) (num-test (modulo 82578867500655 319) 174) (num-test (modulo 363169800 20) 0) (num-test (modulo 2033404107084 23374) 16730) (num-test (modulo 7438317458260 31213) 22165) (num-test (modulo 390609000 11) 1) (num-test (modulo 406117800 57) 39) (num-test (modulo 1008217762344 4403) 3922) (num-test (modulo 136581511784536 67022) 19220) (num-test (modulo 43293168048 1344610) 759878) (num-test (modulo 608503422693864 47) 0) (num-test (modulo 6945109296864 779) 722) (num-test (modulo 1346702251365156 435) 261) (num-test (modulo 1388225063690465 644) 525) (num-test (modulo 1200780158492850 91686) 60534) (num-test (modulo 1551193257090906 2656731) 2347158) (num-test (modulo 386512944051107445 17) 0) (num-test (modulo 1111364125679340 6) 0) (num-test (modulo 15858537083857314 21793) 0) (num-test (modulo 44179338013272 280645) 48872) (num-test (modulo 64149298745840 43808357) 20657028) (num-test (modulo 4412914630225794 515823) 281358) (num-test (modulo 169216424701305960 17) 14) (num-test (modulo 178335507754891305 817) 0) (num-test (modulo -9223372036854775808 -9223372036854775808) 0) ;(num-test (modulo 1.110223024625156799999999999999999999997E-16 -9223372036854775808) -9.223372036854775807999999999999999888978E18) ;(num-test (modulo 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 5.551115123125783999999999999999999999984E-17) (num-test (modulo 9223372036854775807 -9223372036854775808) -1) (num-test (modulo 9223372036854775807 9223372036854775807) 0) (num-test (modulo (+ 2 (* 3 499127 495037 490459 468803)) (* 499127 495037 490459 468803)) 2) ;(num-test (modulo -9223372036854775808 5.551115123125783999999999999999999999984E-17) 3.258027528318940824192395666614174842834E-17) (num-test (modulo 12345678901234567890 12345678901234567) 890) (num-test (modulo 12345678901234567890 3123) 1071) (num-test (modulo 460683358924445799142 518) 0) (num-test (modulo 113021475230160 74635) 67850) (num-test (modulo 74228340534140364 363909) 357201) (num-test (modulo 69242022961311060 48305942) 17170072) (num-test (modulo 286967952870300 2273388) 2067312) (num-test (modulo 302822258393413362492399 29) 0) (num-test (modulo 10491072879382200 133) 0) (num-test (modulo 167206737423420464 609) 539) (num-test (modulo 72212583812867784 4888799) 1883149) (num-test (modulo 4170116471639397292390 1798025) 1078815) (num-test (modulo 83910330283522050 35224) 9282) (num-test (modulo 275373383775647594346 66884092) 19813626) (num-test (modulo 14656657495570695990 37) 7) (num-test (modulo 95470974177676509874110 1219) 0) (num-test (modulo 619506317623001424 5957) 3304) (num-test (modulo 11268171656665155960 9858) 372) (num-test (modulo 6172860073826160 5167394) 906830) (num-test (modulo 26457493095663264 1491412) 1103724) (num-test (modulo 8481384175941103284 313836405) 93136149) (num-test (modulo 60356595775749199080 176098815946) 156894620552) (num-test (modulo 611492274956002440 37) 0) (num-test (modulo 164614611843685080 1711) 177) (num-test (modulo 93177516542679418720 62197) 37333) (num-test (modulo 938959746797519770440 127558) 0) (num-test (modulo 137670522526899326250 200) 50) (num-test (modulo 852063402206742880 41643478) 23771242) (num-test (modulo 55947291202307909360 188546228) 125937196) (num-test (modulo 12877971214039423262680 9832253830) 8120608300) (num-test (modulo 192158415774146059920 53) 0) (num-test (modulo 902814024155808960 1829) 434) (num-test (modulo 1265864304573235487120 4921) 1295) (num-test (modulo 14172662463567665400 95817) 38076) (num-test (modulo 32171996211745702482324 2368555) 459984) (num-test (modulo 971324258606045826300 4576748) 342908) (num-test (modulo 2400649320046378377000 1704690) 165540) (num-test (modulo 953233796456393760 18342152493) 178603257) (num-test (modulo 28906333140964843080 236206740) 140736420) (num-test (modulo 775403093708557121609032 41) 0) (num-test (modulo 12587009808135760402860 2491) 1410) (num-test (modulo 510685807527370566909720 76) 44) (num-test (modulo 9842598153710524682146590 10089) 3363) (num-test (modulo 44936631038618189620242012 30740) 24592) (num-test (modulo 934589372977008750144 373650) 202194) (num-test (modulo 33027125273398900134069150 840577803) 0) (num-test (modulo 4428219127938822420288 1695783782) 1071746452) (num-test (modulo 29316428815807608915440 560764380) 415244720) (num-test (modulo 1364397376360544429904 19) 0) (num-test (modulo 4991450791697293128313385277 329) 133) (num-test (modulo 75448279792981695149550 3009) 2385) (num-test (modulo 181031604499464166188731133 3364) 1641) (num-test (modulo 405831142402606479845286 2746214) 1938504) (num-test (modulo 89170366469003867207160 25337230) 23157930) (num-test (modulo 13523725766340619200 1490114045) 621483730) (num-test (modulo 104705939487154940255412 192200052) 48253032) (num-test (modulo 7232591421499800642000 16584679460) 4668328860) (num-test (modulo 14043796716396386984750160 33382708236) 717907704) (num-test (modulo 13894638105872256412416 23) 0) (num-test (modulo 147611447155643499428400 118) 68) (num-test (modulo 13356594697070649024 4558) 1802) (num-test (modulo 15089731174706036171537760 90) 60) (num-test (modulo 307230141273924828960 1971507) 1430805) (num-test (modulo 2582563944548247741930009096 22873474) 3518996) (num-test (modulo 1074296602920111687342072 146235518) 73672588) (num-test (modulo 774058642832724262993980 407557010) 187324340) (num-test (modulo 291091930213008490369569480 13412544348) 10762778160) (num-test (modulo 2089068565149831833568 7302038455228) 470177842332) (num-test (modulo 1064437567441124038217970656 5) 1) (num-test (modulo 142557826750459447787460 1333) 527) (num-test (modulo 311779340580033594160200 23693) 0) (num-test (modulo 29314187023691666530559664 110143) 0) (num-test (modulo 222003853016244177637944900 857463) 0) (num-test (modulo 6247776111945111006243552 77976501) 12576855) (num-test (modulo 1140058514761397155259712 5530338) 502758) (num-test (modulo 580962736822969724865449808 55686036) 13545252) (num-test (modulo 4100502596989506786787500 45333475410) 13925822190) (num-test (modulo 1497378750311599979536944 262630276090) 236984817664) (num-test (modulo 105637634198318524045536 2633013240) 452166936) (num-test (modulo 11415822547029425161364106595632 7) 3) (num-test (modulo 198305933339312916107438448 177) 15) (num-test (modulo 3127415425979879537134790928 3335) 2668) (num-test (modulo 589703503861221139260034914750 13209) 4641) (num-test (modulo 3108579252052448504121792 14322) 12936) (num-test (modulo 636976201153021006473464400 66264077) 55801328) (num-test (modulo 9544425315508129998909285900 1488396) 850512) (num-test (modulo 458100280193857502802977376 260747103934) 17656078468) (num-test (modulo 114208186302155358124900650 22076867505) 6602131305) (num-test (modulo 90107067439719108194114160 28566806069714) 24735629596458) (num-test (modulo 2976572787365723002218245484 110104803958578) 49695655366500) (num-test (modulo 53453375725613238735360 17) 7) (num-test (modulo 888822833524306124874229800 106) 0) (num-test (modulo 21275338550698297089687698855820 3021) 0) (num-test (modulo 417525245705449941528380320750068 5828) 0) (num-test (modulo 1954871230146370370001829871352 22765249) 0) (num-test (modulo 903057827710908645847577520 648545995) 631903275) (num-test (modulo 6002846634833433581621040 28493572159) 8965596645) (num-test (modulo 26428903214964558277189300080 100428856) 20778384) (num-test (modulo 470486531607553676511206181180 28495896) 23264436) (num-test (modulo 483599554429365539310928369206620 5577334078910) 3472679709510) (num-test (modulo 134511400157705323668887400 1285071093558916) 114037248705380) (num-test (modulo 25897125642468049125349982599216 1183846707540) 999692775256) (num-test (modulo 1118034209930460291955200 3) 0) (num-test (modulo 16297594064835666104344589410644 413) 0) (num-test (modulo 536762539932642345554192060100 1378) 0) (num-test (modulo 933250179448203335817687635834340 58029) 55821) (num-test (modulo 65573457048202714607131200 486115) 32895) (num-test (modulo 85664559165674439863772868932 322014) 0) (num-test (modulo 7232817686074320060728552759760 11307940) 0) (num-test (modulo 78400098291720425971762131120 5646921093) 0) (num-test (modulo 345445746644065669842240 19727989065) 1869036660) (num-test (modulo 627854758484491743169777558200 750371721805653) 32673867918264) (num-test (modulo 788233263079483492974876830792850 7170146100) 1202847750) (num-test (modulo 18378856389802641496737518160 6247594493140) 1385698158460) (num-test (modulo 9620902642431357480148667659080 59) 0) (num-test (modulo 16008524600631853118144316000 629) 620) (num-test (modulo 4342138447708715023205684275423920 53041) 5133) (num-test (modulo 2431833161592653384508687244500 47541) 0) (num-test (modulo 39424620224103957589082132160 1671734) 0) (num-test (modulo 652830233576052788654372406432 552231327) 231166602) (num-test (modulo 6892963340916411083970414000 3662431431) 935088876) (num-test (modulo 29102758215190063506219566460000 10565720) 0) (num-test (modulo 21253900104556838003127171970777418412 1182797770) 1026303562) (num-test (modulo 3964268932242030284914943132662620 21244177854110) 13576270590290) (num-test (modulo 6070388091189460078138338240 40809131994181213) 6560348180153677) (num-test (modulo 9685989954133695108793384134000 964113514382876) 108668324726468) (num-test (modulo 56468122001858834917195045500 429400787158167902) 411466139739284938) (num-test (modulo 18843408973202596901221568364900 47) 0) (num-test (modulo 7800980538292163259967028613764250 6) 0) (num-test (modulo 270433907726619219545089642715200 3422) 3132) (num-test (modulo 45771666919597903071546708768 2342359) 1698374) (num-test (modulo 47198294949461301503537593835384892 314502) 130548) (num-test (modulo 3165335901519110207943908102359110 14953473) 10646010) (num-test (modulo 189219585097956261544520863361400 35605794) 0) (num-test (modulo 38532137569034426600955256933810890813 1341358608707) 100754920326) (num-test (modulo 1396277868664090735481380981225896 312520860) 187512516) (num-test (modulo 864038349500762576564773759109700 714136202724) 614489290716) (num-test (modulo 12514185871591242579049167322464 10706997440178) 749897068284) (num-test (modulo 1981802660405609330969478067056636 33312289752) 27681419124) (num-test (modulo 979313401024175219420658240 125278417383795) 92954907481995) (num-test (modulo 4074026154111369481048033354344 29) 0) (num-test (modulo 599666571180604695702511920885005100 129) 0) (num-test (modulo 5703263639326551702474610108800 1978) 0) (num-test (modulo 134137932950214683609064669163440 190619) 115401) (num-test (modulo 344735091370772631136645455600 1048985) 0) (num-test (modulo 6759508339299085316106145385400 4969610) 1763410) (num-test (modulo 700334422308861928135313594400 228529587) 194401350) (num-test (modulo 10277417891211405957191810814198480 2516552038) 1372664748) (num-test (modulo 490099971577877358878082782880 9282588354) 7843699422) (num-test (modulo 1954558750269048828645390249600 5575829490) 2295929790) (num-test (modulo 1360588454560018295496656378989200 7868178296420) 3049105010900) (num-test (modulo 4337552841738910859248770564912480 17722936528737830) 1203686858124400) (num-test (modulo 215913068853045803981566931862756 7009479781500) 1803638466756) (num-test (modulo 44890707654126305940250882318870941900 18329973480720) 7637488950300) (num-test (modulo 28579720891831355496720656680837200 3) 0) (num-test (modulo 29332703209780553199747293473184160 1711) 551) (num-test (modulo 3648979393315349438003046604440000 186) 0) (num-test (modulo 1159760236369472473822068077011807878780 25714) 0) (num-test (modulo 158186359726371025615685433600 31395) 17940) (num-test (modulo 331091450443070201468559735703944 28424) 0) (num-test (modulo 9734443639363161342241553023288200 1961348207) 1708271019) (num-test (modulo 701896612128009033011419603540080 51300) 47880) (num-test (modulo 86169288128517384618860929451245320 5032162527446) 925322642976) (num-test (modulo 64828800524794653881296183831741773624 4645294472) 311380888) (num-test (modulo 49068907706533938991402184550000 268183371225) 262983139650) (num-test (modulo 1708602980304476478496020543612288 4083128544) 131713824) (num-test (modulo 17608179287674151740172985536160 980399424528) 962337263616) (num-test (modulo 43194437079731225735521919644800 178119261126453036) 70796157206439912) (num-test (modulo 817555977437791699707628651571149344 59) 0) (num-test (modulo 19062946261334997559157066059536 533) 287) (num-test (modulo 6533849124840489114353090499099000 598) 130) (num-test (modulo 427663965127849896842400211428345149025 234) 117) (num-test (modulo 352395507261316174741530450071590608 154734) 26418) (num-test (modulo 391579493632653867660919800000 9221565) 1166160) (num-test (modulo 2618798923882923048581401148931738000 681876) 419616) (num-test (modulo 174712575449141140214591110997980800 233260339838) 37341839152) (num-test (modulo 88598141227372995032227898284800 1929763976) 1797148024) (num-test (modulo 210110141308655567793064872567302676320 720390430628) 523536832148) (num-test (modulo 668425085137718599277317523827419000 19898594339442) 17330916357006) (num-test (modulo 89533471731097208414073727453200 4173840860670546) 1611748174428756) (num-test (modulo 113987439157802480362236410675251462620 21548296273949445) 20414175417425790) (num-test (modulo 48129335993995093308894209644253760 1009442888504820) 947047755795120) (num-test (modulo 3497836376962291922989777163497680 138736290091634664) 23686683674181528) (num-test (modulo 11371924962562208722154622794880 3) 0) (num-test (modulo 9451631862008339290824315653784000 703) 171) (num-test (modulo 16869347753325980368094612370435598560 806) 0) (num-test (modulo 4701845646467068759127854100132739552 3198) 504) (num-test (modulo 1029865193584911347147121232800485280 1005771) 24531) (num-test (modulo 10657125216930337802109861408000 2415138) 2210802) (num-test (modulo 14382707743772734802155022983680 247913634) 7969170) (num-test (modulo 60134748581470366378101904574533857248 54828228) 9878960) (num-test (modulo 214830664120540781167218700750596000 505665810) 223433730) (num-test (modulo 48933004118344447687599112101802800 6263883444) 849340128) (num-test (modulo 5498670161558110606435630054129739400 262699548132) 255270333864) (num-test (modulo 35941673649029587182509620977230062500 25622409466332) 7911836749404) (num-test (modulo 1592802602494326390643157055239113248 736377633395508) 260180363298804) (num-test (modulo 4043816553144402557587143272522043028314 5011466158645380) 1781651263267134) (num-test (modulo 7171921165220830707276631005512550 1765284492289500) 1588756043060550) (num-test (modulo 2402189359210218692854826119405968750 23) 22) (num-test (modulo 26149068753160488131648964110990162400 1147) 868) (num-test (modulo 556184059176863945810376239306506311552 4089) 0) (num-test (modulo 67871323087036310486238021899264593800 13395) 0) (num-test (modulo 12750401179065252879838440979200 7177173) 0) (num-test (modulo 278110245000092733617125071646080 17748) 0) (num-test (modulo 13408203364935178481017292708752000 50619404) 13680920) (num-test (modulo 124271828931784534297423756437875067000 8839796595) 1143112215) (num-test (modulo 11893442806922081156953529319100769836176 972789007267) 210492262442) (num-test (modulo 352581052555284857902053030133344488264100 923561430099) 488944286523) (num-test (modulo 6108908012714804315575319947340956346976 31944833628092) 28158060036920) (num-test (modulo 67475643422116264959949054821520228800 22515435540) 8157766500) (num-test (modulo 470601888939348535946408832 5135943991060962937) 4475576385383445628) (num-test (modulo 110759232155568113345545635903016614000 30159198663300) 0) (num-test (modulo 146100914712024458707469587112300146320 26868173101560) 24880219882560) (num-test (modulo 12173192708601511002951184416658091200 466645866900785428350) 288583529752854077950) (num-test (modulo 5784684831478746253226687170890240 13) 0) (num-test (modulo 35042260655085685815432622412891903767500 667) 0) (num-test (modulo 2903871349270676921837488659419545120987500 530) 0) (num-test (modulo 630123969240840167098426767919876491188000 77691) 51794) (num-test (modulo 33192703032132982013024959634241667249800 4684718) 4051648) (num-test (modulo 4731525733734729472809717145544850000 90706055) 0) (num-test (modulo 214011009809686092216200126896120006823232 50400042) 45006552) (num-test (modulo 5854250735296111435541950856160000 24357777002) 2121729090) (num-test (modulo 35348208247612761916374738259136697649608 156806713508) 8948839908) (num-test (modulo 612558317420289618714916924536521515286100 2377007388) 375316956) (num-test (modulo 181857299802925368992522029882739454720 21606337755618) 0) (num-test (modulo 4731635341196946327443020710970699860000 58092526675092) 44387995860156) (num-test (modulo 22081740554432638182773611616166588288192 61419768950540) 49135815160432) (num-test (modulo 125627844706077784535328068665849312000 30482033400) 19356933400) (num-test (modulo 1225504716872819103560254268197955520 510813364186125) 233201076344145) (num-test (modulo 5209185280578468690281136425214396728400 2327880739319250103818) 518788605323339989776) (num-test (modulo 230425011604643097634961294406535254400 31) 0) (num-test (modulo 13222608481676137093434201748083744000 893) 0) (num-test (modulo 13348198818240350339028224064019716678960 651) 117) (num-test (modulo 7236172685650198160266777676385295337308176 23426) 14144) (num-test (modulo 756264162229440667711265021676693350760 28899) 0) (num-test (modulo 40915062421030872924283823601517905600 36345062) 0) (num-test (modulo 1174590526522170015825602834292923520 4991486258) 1554170940) (num-test (modulo 2891892862328155581145450075391651333218020 35138529818) 0) (num-test (modulo 1993335355070485984559797658834121810059400 535644500) 433741400) (num-test (modulo 6324295450641455215591954662726515160 367472693133) 134441229195) (num-test (modulo 6576388154814679090356195121505112000 15901952377630) 3827367890390) (num-test (modulo 117828556355409428513249595788296238400 565992666495795) 106570976318730) (num-test (modulo 592831716700236607285748949860604000 139641978135660) 133123065151440) (num-test (modulo 106766839071170184723986891291602032000 1584924526628112) 785519540106048) (num-test (modulo 21677148858122146832326483307664860804937400 247815827510760) 183567279637600) (num-test (modulo 14079549844487257384278196623697173813600 160967604100961853832) 160644118308938243512) (num-test (modulo 2696480372014145687016224877963234647656980 2219319031453896088860) 1749775073012430835800) (num-test (modulo 13545431257849875145060979241270859310160 29) 0) (num-test (modulo 137485634482479300158725199474868559498162500 329) 188) (num-test (modulo 529252417743761759027305009539254400 3243) 0) (num-test (modulo 133897419738958073238580385894509887148800 330455) 0) (num-test (modulo 3896215507210178905244623173635584334007288624 1005238) 0) (num-test (modulo 17654511984514518592175290794029073043800 1060530) 511980) (num-test (modulo 16470780256339082688310222474503880382858400 913836) 0) (num-test (modulo 57267105834722825210001789897760395576000 2958974018) 2329405078) (num-test (modulo 521977833444747522001426544601807810543216 1066521690) 625031316) (num-test (modulo 1699559962174727325529414216960251941390400 25883611479) 16915574049) (num-test (modulo 10654036597801063717295948399628964800 317449894126222) 116812646389120) (num-test (modulo 381902381115592200811990304316262139150724960 4640335440216) 0) (num-test (modulo 425968526187959807410151867411382902838703889232 1882826315615025) 1191718303295157) (num-test (modulo 174609167728518272531601927200939868792000 1712923655178450) 541648883945400) (num-test (modulo 3325168366561555458817274989681612518000 1699726139891780) 1568977975284720) (num-test (modulo 11429650426242566426919762928176000 7414967839104) 1771142792832) (num-test (modulo 2104794191230056678355480848036599377844400 16946684823025584) 9111120872594400) (num-test (modulo 11894522530167763519415142641640874994880 7) 0) (num-test (modulo 5906329981690378696996009087718418780000 185) 0) (num-test (modulo 3056294774178096513474941936265025440000 658) 0) (num-test (modulo 10491907660880423349353457742257185280 123369) 0) (num-test (modulo 673239479595593149777212259021965839229225628776 15470) 12376) (num-test (modulo 1506608574369860432616005754109397877696 1474070) 1179256) (num-test (modulo 4849814041048623250005708880379694793905000 2172220582) 0) (num-test (modulo 21154344928580705924176101470087564940000 5023204186) 0) (num-test (modulo 346448039376394135288065831861806112294000 776147372) 25037012) (num-test (modulo 2339009760844587560470606952218133142645504 194201967414) 78730527330) (num-test (modulo 2242982161480922111384667548175169152 21419749763490) 17054708275722) (num-test (modulo 4717315265246821759830981157482117120 45609714193992) 45557259088536) (num-test (modulo 16628111321698075419789804224660024289936 4643626415880804) 3203755070835528) (num-test (modulo 115557531507210992033160068979962880 88406536976058378) 13997397131802546) (num-test (modulo 21059511907771200155093927745003762840000 180298981648603620) 88715511648941760) (num-test (modulo 2124921015128697258800067298086064536000 2282525112298516782924) 1050493715522523120240) (num-test (modulo 16015671538624533047089928322348864000 49817926936366875) 31511531988217125) (num-test (modulo 166517667014186289390514558017250969134523800 43413708621878528404068) 4443969735426840626952) (num-test (modulo 2780796292789128359666429021610464935722000 47) 0) (num-test (modulo 21297913114430245153455383503409684916193317960 58) 0) (num-test (modulo 1516745257039775143654568869485529015398000 6293) 0) (num-test (modulo 8447692776411453120390905608381515479808 2030) 518) (num-test (modulo 958876033949638283967045624731391031146081240 9834415) 9667730) (num-test (modulo 4731349833403602529573388098680617532624192 14868) 0) (num-test (modulo 6375001358038970462026761077388061675464000 430513678) 0) (num-test (modulo 254088526608579040642428151389718385042344800 4799428101) 294233472) (num-test (modulo 21140490542258031885408065086507444825621023648 164778747198) 63851269926) (num-test (modulo 34214837305812460226811046733375808000 4312787868) 2681970660) (num-test (modulo 11450197571956515037245443769386989035470896800 75585518430279) 69771247781796) (num-test (modulo 1211397915863796187148880114197307052796506376580 538601201880) 128795939580) (num-test (modulo 5454139401260819402160859765169199667337088 30452838731872) 22996976784800) (num-test (modulo 744935981632690384026127091216926530879171660 1032747922358460) 630836297950320) (num-test (modulo 324574326062026951443376280715122947502400 103751223626207988025) 7552030128655111125) (num-test (modulo 15272163751269260921486082393684080908800 6484309049057400) 4436632507249800) (num-test (modulo 386527546655781220813671331401971490218262720 3481571963427119100) 243571263764902920) (num-test (modulo 3189682029126430413458911948222943640000 6724598925622907976570) 2607219061590696572250) (num-test (modulo 709403542855323660533377490060722241678400 7) 0) (num-test (modulo 139803787314578422635552652090095842837312147438904 123) 0) (num-test (modulo 171985399350431759069945935900956183322827030835560 18241) 0) (num-test (modulo 33090522521924986387051477884789600000 26187) 25578) (num-test (modulo 1733723010009930088165729903139785699319986530 372945) 23805) (num-test (modulo 56408303994570817306318494803635460247582000 5761730) 3307860) (num-test (modulo 25845509336769185412951159262424903513866295760 64371378271) 0) (num-test (modulo 624970361450506104794172455132584603069611058500 108222780) 0) (num-test (modulo 82823962548382643645255524843049561752323600 135325929794) 123023572540) (num-test (modulo 170620453449723034746079844571491973300000 9460614789626) 4845680745906) (num-test (modulo 125144597811313015929871740675462711600000 12764411911636) 5714078712188) (num-test (modulo 257193319319332344553297882967977761077115600 6510126541380) 1111485019260) (num-test (modulo 879624546681838385457288074812140664728758550 10045784120501316) 5303606126868522) (num-test (modulo 18300938860777100857669855248554588369659200 118088077425391892) 94617840861501464) (num-test (modulo 8394780474625841647581984803260010511075000 746584618179400) 91432008031000) (num-test (modulo 146802334713757872619395774222116859916800 718775571956687400) 62390745247132200) (num-test (modulo 240155883351717999820072393833707008014911556000 1350921510529331832) 1096988895768179232) (num-test (modulo 918942437243241528855354123800826649596480 74343962238703160850) 1608809218075839780) (num-test (modulo 1361069299753299783990135442290762165844800 8281085446358585640) 7375208194228544280) (num-test (modulo 1e19 10) 0.0) (num-test (modulo .1e20 10) 0.0) (num-test (modulo 1e20 10) 0.0) (num-test (modulo 1e21 10) 0.0) (num-test (modulo 1e19 -1) 0.0) (num-test (modulo 1e19 1) 0.0) (num-test (modulo .1e20 1) 0.0) (num-test (modulo 1e20 1) 0.0) (num-test (modulo 10000000000000000000 1) 0) (num-test (modulo 100000000000000000000 1) 0) (num-test (modulo 10000000000000000000 10) 0) (num-test (modulo 100000000000000000000 10) 0) (s7-test (modulo 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error) (s7-test (modulo 123 123 123) 'error) (s7-test (modulo 123) 'error) (s7-test (modulo) 'error) (s7-test (mod 2 0) 'error) (s7-test (modulo 2.3 1.0+0.1i) 'error) (s7-test (modulo 3.0+2.3i 3) 'error) (test-end "modulo") ;;; -------------------------------------------------------------------------------- ;;; quotient ;;; -------------------------------------------------------------------------------- (test-begin "quotient") ;; Not standards-compliant, must be an integer ;(num-test (quotient -0.5 -1) 0.0) (s7-test (quotient -0.5 -1) 'error) (num-test (quotient -1 -1) 1) (num-test (quotient -1 -10) 0) (num-test (quotient -1 -1234) 0) (num-test (quotient -1 -1234000000) 0) (num-test (quotient -1 -2) 0) (num-test (quotient -1 -3) 0) (num-test (quotient -1 -362880) 0) (num-test (quotient -1 -500029) 0) (num-test (quotient -1 1) -1) (num-test (quotient -1 10) 0) (num-test (quotient -1 1234) 0) (num-test (quotient -1 1234000000) 0) (num-test (quotient -1 2) 0) (num-test (quotient -1 3) 0) (num-test (quotient -1 362880) 0) (num-test (quotient -1 500029) 0) ;; Not standards-compliant, must be an integer ;(num-test (quotient -1.5 -2) 0.0) ;(num-test (quotient -1.5 2) 0.0) (s7-test (quotient -1.5 -2) 'error) (s7-test (quotient -1.5 2) 'error) (num-test (quotient -10 -1) 10) (num-test (quotient -10 -10) 1) (num-test (quotient -10 -1234) 0) (num-test (quotient -10 -1234000000) 0) (num-test (quotient -10 -2) 5) (num-test (quotient -10 -3) 3) (num-test (quotient -10 -362880) 0) (num-test (quotient -10 -500029) 0) (num-test (quotient -10 1) -10) (num-test (quotient -10 10) -1) (num-test (quotient -10 1234) 0) (num-test (quotient -10 1234000000) 0) (num-test (quotient -10 2) -5) (num-test (quotient -10 3) -3) (num-test (quotient -10 362880) 0) (num-test (quotient -10 500029) 0) (num-test (quotient -1234 -1) 1234) (num-test (quotient -1234 -10) 123) (num-test (quotient -1234 -1234) 1) (num-test (quotient -1234 -1234000000) 0) (num-test (quotient -1234 -2) 617) (num-test (quotient -1234 -3) 411) (num-test (quotient -1234 -362880) 0) (num-test (quotient -1234 -500029) 0) (num-test (quotient -1234 1) -1234) (num-test (quotient -1234 10) -123) (num-test (quotient -1234 1234) -1) (num-test (quotient -1234 1234000000) 0) (num-test (quotient -1234 2) -617) (num-test (quotient -1234 3) -411) (num-test (quotient -1234 362880) 0) (num-test (quotient -1234 500029) 0) (num-test (quotient -1234000000 -1) 1234000000) (num-test (quotient -1234000000 -10) 123400000) (num-test (quotient -1234000000 -1234) 1000000) (num-test (quotient -1234000000 -1234000000) 1) (num-test (quotient -1234000000 -2) 617000000) (num-test (quotient -1234000000 -3) 411333333) (num-test (quotient -1234000000 -362880) 3400) (num-test (quotient -1234000000 -500029) 2467) (num-test (quotient -1234000000 1) -1234000000) (num-test (quotient -1234000000 10) -123400000) (num-test (quotient -1234000000 1234) -1000000) (num-test (quotient -1234000000 1234000000) -1) (num-test (quotient -1234000000 2) -617000000) (num-test (quotient -1234000000 3) -411333333) (num-test (quotient -1234000000 362880) -3400) (num-test (quotient -1234000000 500029) -2467) (num-test (quotient -2 -1) 2) (num-test (quotient -2 -10) 0) (num-test (quotient -2 -1234) 0) (num-test (quotient -2 -1234000000) 0) (num-test (quotient -2 -2) 1) (num-test (quotient -2 -3) 0) (num-test (quotient -2 -362880) 0) (num-test (quotient -2 -500029) 0) (num-test (quotient -2 1) -2) (num-test (quotient -2 10) 0) (num-test (quotient -2 1234) 0) (num-test (quotient -2 1234000000) 0) (num-test (quotient -2 2) -1) (num-test (quotient -2 3) 0) (num-test (quotient -2 362880) 0) (num-test (quotient -2 500029) 0) (num-test (quotient -3 -1) 3) (num-test (quotient -3 -10) 0) (num-test (quotient -3 -1234) 0) (num-test (quotient -3 -1234000000) 0) (num-test (quotient -3 -2) 1) (num-test (quotient -3 -3) 1) (num-test (quotient -3 -362880) 0) (num-test (quotient -3 -500029) 0) (num-test (quotient -3 1) -3) (num-test (quotient -3 10) 0) (num-test (quotient -3 1234) 0) (num-test (quotient -3 1234000000) 0) (num-test (quotient -3 2) -1) (num-test (quotient -3 3) -1) (num-test (quotient -3 362880) 0) (num-test (quotient -3 500029) 0) ;; Not standards-compliant, must be an integer ;(num-test (quotient -3.1 -2.0) 1.0) ;(num-test (quotient -3.1 2.5) -1.0) (s7-test (quotient -3.1 2.0) 'error) (s7-test (quotient -3.1 2.5) 'error) (num-test (quotient -35 -7) 5) (num-test (quotient -35 7) -5) (num-test (quotient -362880 -1) 362880) (num-test (quotient -362880 -10) 36288) (num-test (quotient -362880 -1234) 294) (num-test (quotient -362880 -1234000000) 0) (num-test (quotient -362880 -2) 181440) (num-test (quotient -362880 -3) 120960) (num-test (quotient -362880 -362880) 1) (num-test (quotient -362880 -500029) 0) (num-test (quotient -362880 1) -362880) (num-test (quotient -362880 10) -36288) (num-test (quotient -362880 1234) -294) (num-test (quotient -362880 1234000000) 0) (num-test (quotient -362880 2) -181440) (num-test (quotient -362880 3) -120960) (num-test (quotient -362880 362880) -1) (num-test (quotient -362880 500029) 0) (num-test (quotient -500029 -1) 500029) (num-test (quotient -500029 -10) 50002) (num-test (quotient -500029 -1234) 405) (num-test (quotient -500029 -1234000000) 0) (num-test (quotient -500029 -2) 250014) (num-test (quotient -500029 -3) 166676) (num-test (quotient -500029 -362880) 1) (num-test (quotient -500029 -500029) 1) (num-test (quotient -500029 1) -500029) (num-test (quotient -500029 10) -50002) (num-test (quotient -500029 1234) -405) (num-test (quotient -500029 1234000000) 0) (num-test (quotient -500029 2) -250014) (num-test (quotient -500029 3) -166676) (num-test (quotient -500029 362880) -1) (num-test (quotient -500029 500029) -1) (num-test (quotient 0 -1) 0) (num-test (quotient 0 -1) 0) (num-test (quotient 0 -10) 0) (num-test (quotient 0 -10) 0) (num-test (quotient 0 -1234) 0) (num-test (quotient 0 -1234) 0) (num-test (quotient 0 -1234000000) 0) (num-test (quotient 0 -1234000000) 0) (num-test (quotient 0 -2) 0) (num-test (quotient 0 -2) 0) (num-test (quotient 0 -3) 0) (num-test (quotient 0 -3) 0) (num-test (quotient 0 -362880) 0) (num-test (quotient 0 -362880) 0) (num-test (quotient 0 -500029) 0) (num-test (quotient 0 -500029) 0) (num-test (quotient 0 1) 0) (num-test (quotient 0 1) 0) (num-test (quotient 0 10) 0) (num-test (quotient 0 10) 0) (num-test (quotient 0 1234) 0) (num-test (quotient 0 1234) 0) (num-test (quotient 0 1234000000) 0) (num-test (quotient 0 1234000000) 0) (num-test (quotient 0 2) 0) (num-test (quotient 0 2) 0) (num-test (quotient 0 3) 0) (num-test (quotient 0 3) 0) (num-test (quotient 0 362880) 0) (num-test (quotient 0 362880) 0) (num-test (quotient 0 500029) 0) (num-test (quotient 0 500029) 0) ;; Not standards-compliant, must be an integer ;(num-test (quotient 0.5 -2) 0.0) ;(num-test (quotient 0.5 -2.0) 0.0) ;(num-test (quotient 0.5 2.0) 0.0) (s7-test (quotient 0.5 -2) 'error) (s7-test (quotient 0.5 -2.0) 'error) (s7-test (quotient 0.5 2.0) 'error) (num-test (quotient 1 -1) -1) (num-test (quotient 1 -10) 0) (num-test (quotient 1 -1234) 0) (num-test (quotient 1 -1234000000) 0) (num-test (quotient 1 -2) 0) (num-test (quotient 1 -3) 0) (num-test (quotient 1 -362880) 0) (num-test (quotient 1 -4) 0) (num-test (quotient 1 -500029) 0) (num-test (quotient 1 1) 1) (num-test (quotient 1 10) 0) (num-test (quotient 1 1234) 0) (num-test (quotient 1 1234000000) 0) (num-test (quotient 1 2) 0) (num-test (quotient 1 3) 0) (num-test (quotient 1 362880) 0) (num-test (quotient 1 500029) 0) (num-test (quotient 10 -1) -10) (num-test (quotient 10 -10) -1) (num-test (quotient 10 -1234) 0) (num-test (quotient 10 -1234000000) 0) (num-test (quotient 10 -2) -5) (num-test (quotient 10 -3) -3) (num-test (quotient 10 -362880) 0) (num-test (quotient 10 -500029) 0) (num-test (quotient 10 1) 10) (num-test (quotient 10 10) 1) (num-test (quotient 10 1234) 0) (num-test (quotient 10 1234000000) 0) (num-test (quotient 10 2) 5) (num-test (quotient 10 3) 3) (num-test (quotient 10 362880) 0) (num-test (quotient 10 500029) 0) (num-test (quotient 1234 -1) -1234) (num-test (quotient 1234 -10) -123) (num-test (quotient 1234 -1234) -1) (num-test (quotient 1234 -1234000000) 0) (num-test (quotient 1234 -2) -617) (num-test (quotient 1234 -3) -411) (num-test (quotient 1234 -362880) 0) (num-test (quotient 1234 -500029) 0) (num-test (quotient 1234 1) 1234) (num-test (quotient 1234 10) 123) (num-test (quotient 1234 1234) 1) (num-test (quotient 1234 1234000000) 0) (num-test (quotient 1234 2) 617) (num-test (quotient 1234 3) 411) (num-test (quotient 1234 362880) 0) (num-test (quotient 1234 500029) 0) (num-test (quotient 1234000000 -1) -1234000000) (num-test (quotient 1234000000 -10) -123400000) (num-test (quotient 1234000000 -1234) -1000000) (num-test (quotient 1234000000 -1234000000) -1) (num-test (quotient 1234000000 -2) -617000000) (num-test (quotient 1234000000 -3) -411333333) (num-test (quotient 1234000000 -362880) -3400) (num-test (quotient 1234000000 -500029) -2467) (num-test (quotient 1234000000 1) 1234000000) (num-test (quotient 1234000000 10) 123400000) (num-test (quotient 1234000000 1234) 1000000) (num-test (quotient 1234000000 1234000000) 1) (num-test (quotient 1234000000 2) 617000000) (num-test (quotient 1234000000 3) 411333333) (num-test (quotient 1234000000 362880) 3400) (num-test (quotient 1234000000 500029) 2467) ;; Not standards-compliant, must be an integer ;(num-test (quotient 19439282 4409.5) 4408.0) (s7-test (quotient 19439282 4409.5) 'error) (num-test (quotient 2 -1) -2) (num-test (quotient 2 -10) 0) (num-test (quotient 2 -1234) 0) (num-test (quotient 2 -1234000000) 0) (num-test (quotient 2 -2) -1) (num-test (quotient 2 -3) 0) (num-test (quotient 2 -362880) 0) (num-test (quotient 2 -500029) 0) (num-test (quotient 2 1) 2) (num-test (quotient 2 10) 0) (num-test (quotient 2 1234) 0) (num-test (quotient 2 1234000000) 0) (num-test (quotient 2 2) 1) (num-test (quotient 2 3) 0) (num-test (quotient 2 362880) 0) (num-test (quotient 2 500029) 0) (num-test (quotient 3 -1) -3) (num-test (quotient 3 -10) 0) (num-test (quotient 3 -1234) 0) (num-test (quotient 3 -1234000000) 0) (num-test (quotient 3 -2) -1) (num-test (quotient 3 -3) -1) (num-test (quotient 3 -362880) 0) (num-test (quotient 3 -500029) 0) (num-test (quotient 3 1) 3) (num-test (quotient 3 10) 0) (num-test (quotient 3 1234) 0) (num-test (quotient 3 1234000000) 0) (num-test (quotient 3 2) 1) ;; Not standards-compliant, must be an integer ;(num-test (quotient 3 2.5) 1.0) (s7-test (quotient 3 2.5) 'error) (num-test (quotient 3 3) 1) (num-test (quotient 3 362880) 0) (num-test (quotient 3 500029) 0) ;; Not standards-compliant, must be an integer ;(num-test (quotient 3.1 -2.0) -1.0) ;(num-test (quotient 3.1 2) 1.0) ;(num-test (quotient 3.1 2.0) 1.0) (s7-test (quotient 3.1 -2.0) 'error) (s7-test (quotient 3.1 2) 'error) (s7-test (quotient 3.1 2.0) 'error) (num-test (quotient 35 -7) -5) (num-test (quotient 35 7) 5 ) (num-test (quotient 362880 -1) -362880) (num-test (quotient 362880 -10) -36288) (num-test (quotient 362880 -1234) -294) (num-test (quotient 362880 -1234000000) 0) (num-test (quotient 362880 -2) -181440) (num-test (quotient 362880 -3) -120960) (num-test (quotient 362880 -362880) -1) (num-test (quotient 362880 -500029) 0) (num-test (quotient 362880 1) 362880) (num-test (quotient 362880 10) 36288) (num-test (quotient 362880 1234) 294) (num-test (quotient 362880 1234000000) 0) (num-test (quotient 362880 2) 181440) (num-test (quotient 362880 3) 120960) (num-test (quotient 362880 362880) 1) (num-test (quotient 362880 500029) 0) (num-test (quotient 500029 -1) -500029) (num-test (quotient 500029 -10) -50002) (num-test (quotient 500029 -1234) -405) (num-test (quotient 500029 -1234000000) 0) (num-test (quotient 500029 -2) -250014) (num-test (quotient 500029 -3) -166676) (num-test (quotient 500029 -362880) -1) (num-test (quotient 500029 -500029) -1) (num-test (quotient 500029 1) 500029) (num-test (quotient 500029 10) 50002) (num-test (quotient 500029 1234) 405) (num-test (quotient 500029 1234000000) 0) (num-test (quotient 500029 2) 250014) (num-test (quotient 500029 3) 166676) (num-test (quotient 500029 362880) 1) (num-test (quotient 500029 500029) 1) (num-test (quotient -9223372036854775808 -9223372036854775808) 1) ;; Not standards-compliant, must be an integer ;(num-test (quotient 1.110223024625156799999999999999999999997E-16 -9223372036854775808) 0.0) ;(num-test (quotient 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 0.0) (num-test (quotient 9223372036854775807 -9223372036854775808) 0) (num-test (quotient 9223372036854775807 9223372036854775807) 1) ;; Not standards-compliant, must be an integer ;(num-test (quotient 3 1.5) 2.0) ;(num-test (quotient 3 1.75) 1.0) ;(num-test (quotient pi 1) 3.0) ;(num-test (quotient pi 1.5) 2.0) ;(num-test (quotient pi 1.6) 1.0) ;(num-test (quotient pi 3.0) 1.0) ;(num-test (quotient pi 4.0) 0.0) (s7-test (quotient 3 1.5) 'error) (s7-test (quotient 3 1.75) 'error) (s7-test (quotient pi 1) 'error) (s7-test (quotient pi 1.5) 'error) (s7-test (quotient pi 1.6) 'error) (s7-test (quotient pi 3.0) 'error) (s7-test (quotient pi 4.0) 'error) (num-test (quotient 0.0 1) 0.0) (num-test (quotient 0.0 2) 0.0) (num-test (quotient 0.0 3) 0.0) (num-test (quotient 0.0 4) 0.0) ;; Not standards-compliant, must be an integer ;(num-test (quotient 0.0 pi) 0.0) ;(num-test (quotient 0.0 2.5) 0.0) (s7-test (quotient 0.0 pi) 'error) (s7-test (quotient 0.0 2.5) 'error) (num-test (quotient 0.0 4.0) 0.0) ;(num-test (quotient 0.0 1000.1) 0.0) (s7-test (quotient 0.0 1000.1) 'error) ;(num-test (quotient pi 1) 3.0) ;(num-test (quotient pi 2) 1.0) ;(num-test (quotient pi 3) 1.0) ;(num-test (quotient pi 4) 0.0) ;(num-test (quotient pi pi) 1.0) ;(num-test (quotient pi 2.5) 1.0) ;(num-test (quotient pi 4.0) 0.0) ;(num-test (quotient pi 1000.1) 0.0) ;(num-test (quotient 1.5 1) 1.0) ;(num-test (quotient 1.5 2) 0.0) ;(num-test (quotient 1.5 3) 0.0) ;(num-test (quotient 1.5 4) 0.0) ;(num-test (quotient 1.5 pi) 0.0) ;(num-test (quotient 1.5 2.5) 0.0) ;(num-test (quotient 1.5 4.0) 0.0) ;(num-test (quotient 1.5 1000.1) 0.0) ;(num-test (quotient -1.5 1) -1.0) ;(num-test (quotient -1.5 2) 0.0) ;(num-test (quotient -1.5 3) 0.0) ;(num-test (quotient -1.5 4) 0.0) ;(num-test (quotient -1.5 pi) 0.0) ;(num-test (quotient -1.5 2.5) 0.0) ;(num-test (quotient -1.5 4.0) 0.0) ;(num-test (quotient -1.5 1000.1) 0.0) (num-test (quotient 3.0 1) 3.0) (num-test (quotient 3.0 2) 1.0) (num-test (quotient 3.0 3) 1.0) (num-test (quotient 3.0 4) 0.0) ;(num-test (quotient 3.0 pi) 0.0) ;(num-test (quotient 3.0 2.5) 1.0) (num-test (quotient 3.0 4.0) 0.0) ;(num-test (quotient 3.0 1000.1) 0.0) ;(num-test (quotient 110.123 1) 110.0) ;(num-test (quotient 110.123 2) 55.0) ;(num-test (quotient 110.123 3) 36.0) ;(num-test (quotient 110.123 4) 27.0) ;(num-test (quotient 110.123 pi) 35.0) ;(num-test (quotient 110.123 2.5) 44.0) ;(num-test (quotient 110.123 4.0) 27.0) ;(num-test (quotient 110.123 1000.1) 00.) ;; (s7-test (= (quotient (* 99/70 99/70) 2) (quotient (* 577/408 577/408) 2)) #t) ;; (s7-test (= (quotient 2.0 (* 99/70 99/70)) (quotient (* 577/408 577/408) 2.0)) #f) ;; (s7-test (= (quotient 99/70 577/408) (floor (/ 99/70 577/408))) #t) ;; (s7-test (= (quotient (* 577/408 577/408) 2) (quotient (* 1393/985 1393/985) 2)) #f) ;; (s7-test (= (quotient 2.0 (* 577/408 577/408)) (quotient (* 1393/985 1393/985) 2.0)) #t) ;; (s7-test (= (quotient 577/408 1393/985) (floor (/ 577/408 1393/985))) #t) ;; (s7-test (= (quotient (* 3363/2378 3363/2378) 2) (quotient (* 19601/13860 19601/13860) 2)) #t) ;; (s7-test (= (quotient 2.0 (* 3363/2378 3363/2378)) (quotient (* 19601/13860 19601/13860) 2.0)) #f) ;; (s7-test (= (quotient 3363/2378 19601/13860) (floor (/ 3363/2378 19601/13860))) #t) ;; (s7-test (= (quotient (* 47321/33461 47321/33461) 2) (quotient (* 114243/80782 114243/80782) 2)) #f) ;; (s7-test (= (quotient 2.0 (* 47321/33461 47321/33461)) (quotient (* 114243/80782 114243/80782) 2.0)) #t) ;; (s7-test (= (quotient 47321/33461 114243/80782) (floor (/ 47321/33461 114243/80782))) #t) ;; (s7-test (= (quotient (* 275807/195025 275807/195025) 2) (quotient (* 1607521/1136689 1607521/1136689) 2)) #t) ;; (s7-test (= (quotient 2.0 (* 275807/195025 275807/195025)) (quotient (* 1607521/1136689 1607521/1136689) 2.0)) #f) ;; (s7-test (= (quotient 275807/195025 1607521/1136689) (floor (/ 275807/195025 1607521/1136689))) #t) ;; (s7-test (= (quotient (* 3880899/2744210 3880899/2744210) 2) (quotient (* 9369319/6625109 9369319/6625109) 2)) #f) ;; (s7-test (= (quotient 2.0 (* 3880899/2744210 3880899/2744210)) (quotient (* 9369319/6625109 9369319/6625109) 2.0)) #t) ;; (s7-test (= (quotient 3880899/2744210 9369319/6625109) (floor (/ 3880899/2744210 9369319/6625109))) #t) ;; (s7-test (= (quotient (* 54608393/38613965 54608393/38613965) 2) (quotient (* 131836323/93222358 131836323/93222358) 2)) #f) ;; (s7-test (= (quotient 2.0 (* 54608393/38613965 54608393/38613965)) (quotient (* 131836323/93222358 131836323/93222358) 2.0)) #t) ;; (s7-test (= (quotient 54608393/38613965 131836323/93222358) (floor (/ 54608393/38613965 131836323/93222358))) #t) ;; (s7-test (= (quotient (* 131836323/93222358 131836323/93222358) 2) (quotient (* 318281039/225058681 318281039/225058681) 2)) #f) ;; (s7-test (= (quotient 131836323/93222358 318281039/225058681) (floor (/ 131836323/93222358 318281039/225058681))) #t) ;; (s7-test (= (quotient 318281039/225058681 1855077841/1311738121) (floor (/ 318281039/225058681 1855077841/1311738121))) #t) ;; (s7-test (= (quotient 2.0 (* 1855077841/1311738121 1855077841/1311738121)) (quotient (* 4478554083/3166815962 4478554083/3166815962) 2.0)) #t) ;; (s7-test (= (quotient 1855077841/1311738121 4478554083/3166815962) (floor (/ 1855077841/1311738121 4478554083/3166815962))) #t) ;;; there's one really dumb problem here: ;;; (quotient 1e-12 1E-16) -> 9999 ;;; (quotient 1.0000000000000e-12 1E-16) -> 9999 but ;;; (quotient 1.00000000000000e-12 1E-16) -> 10000 ;;; for 1e-14 however, there is no number of zeros that will work, but you can set precision to 1024 ;;; or you can spell it out: (quotient 0.0000000000001 0.00000000000000001) -> 10000 (num-test (quotient 1e16 1e14) 100.0) ;(num-test (quotient 1.00000000000000e-12 1E-16) 10000.0) (num-test (quotient -1.797693134862315699999999999999999999998E308 -9223372036854775808) 19490628022799995908501125008172039088075481712089442747863503837260448050616338003410135413043522984719682345909025832711116783129727902847513862872544943321023332545672815506523677443663683097294005030046422806743414556504424564204282517830151319186021046775247332737488676655598816722944.0) ;(num-test (quotient -9223372036854775808 5.551115123125783999999999999999999999984E-17) -166153499473114445265356059994784304.0) (num-test (quotient 295147905149568077200 34359738366) 8589934591) (num-test (quotient 696898287454081973170944403677937368733396 1180591620717411303422) 590295810358705651711) (num-test (quotient #e1e19 10) 1000000000000000000) (num-test (quotient #e.1e20 10) 1000000000000000000) (num-test (quotient #e1e20 10) 10000000000000000000) (num-test (quotient #e1e21 10) 100000000000000000000) (num-test (quotient #e1e19 -1) -10000000000000000000) (num-test (quotient #e1e19 1) 10000000000000000000) (num-test (quotient #e.1e20 1) 10000000000000000000) (num-test (quotient #e1e20 1) 100000000000000000000) (num-test (quotient 10000000000000000000 1) 10000000000000000000) (num-test (quotient 100000000000000000000 1) 100000000000000000000) (num-test (quotient 10000000000000000000 10) 1000000000000000000) (num-test (quotient 100000000000000000000 10) 10000000000000000000) (s7-test (quotient 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error) (s7-test (quotient 1231231231231231232123 0.0) 'error) (s7-test (quotient 1231231231231231232123 0) 'error) (s7-test (quotient 123 123 123) 'error) (s7-test (quotient 123) 'error) (s7-test (quotient 3 0) 'error) (s7-test (quotient) 'error) (s7-test (quotient 3 1+i) 'error) (test-end "quotient") ;;; -------------------------------------------------------------------------------- ;;; remainder ;;; -------------------------------------------------------------------------------- (test-begin "remainder") ;; Not standards-compliant, must be an integer ;(num-test (remainder -0.5 -1) -0.5) (num-test (remainder -1 -1) 0) (num-test (remainder -1 -10) -1) (num-test (remainder -1 -1234) -1) (num-test (remainder -1 -1234000000) -1) (num-test (remainder -1 -2) -1) (num-test (remainder -1 -3) -1) (num-test (remainder -1 -362880) -1) (num-test (remainder -1 -500029) -1) (num-test (remainder -1 1) 0) (num-test (remainder -1 10) -1) (num-test (remainder -1 1234) -1) (num-test (remainder -1 1234000000) -1) (num-test (remainder -1 2) -1) (num-test (remainder -1 3) -1) (num-test (remainder -1 362880) -1) (num-test (remainder -1 500029) -1) ;; Not standards-compliant, must be an integer ;(num-test (remainder -1.5 -2) -1.5) ;(num-test (remainder -1.5 2) -1.5) (s7-test (remainder -1.5 -2) 'error) (s7-test (remainder -1.5 2) 'error) (num-test (remainder -10 -1) 0) (num-test (remainder -10 -10) 0) (num-test (remainder -10 -1234) -10) (num-test (remainder -10 -1234000000) -10) (num-test (remainder -10 -2) 0) (num-test (remainder -10 -3) -1) (num-test (remainder -10 -362880) -10) (num-test (remainder -10 -500029) -10) (num-test (remainder -10 1) 0) (num-test (remainder -10 10) 0) (num-test (remainder -10 1234) -10) (num-test (remainder -10 1234000000) -10) (num-test (remainder -10 2) 0) (num-test (remainder -10 3) -1) (num-test (remainder -10 362880) -10) (num-test (remainder -10 500029) -10) (num-test (remainder -1234 -1) 0) (num-test (remainder -1234 -10) -4) (num-test (remainder -1234 -1234) 0) (num-test (remainder -1234 -1234000000) -1234) (num-test (remainder -1234 -2) 0) (num-test (remainder -1234 -3) -1) (num-test (remainder -1234 -362880) -1234) (num-test (remainder -1234 -500029) -1234) (num-test (remainder -1234 1) 0) (num-test (remainder -1234 10) -4) (num-test (remainder -1234 1234) 0) (num-test (remainder -1234 1234000000) -1234) (num-test (remainder -1234 2) 0) (num-test (remainder -1234 3) -1) (num-test (remainder -1234 362880) -1234) (num-test (remainder -1234 500029) -1234) (num-test (remainder -1234000000 -1) 0) (num-test (remainder -1234000000 -10) 0) (num-test (remainder -1234000000 -1234) 0) (num-test (remainder -1234000000 -1234000000) 0) (num-test (remainder -1234000000 -2) 0) (num-test (remainder -1234000000 -3) -1) (num-test (remainder -1234000000 -362880) -208000) (num-test (remainder -1234000000 -500029) -428457) (num-test (remainder -1234000000 1) 0) (num-test (remainder -1234000000 10) 0) (num-test (remainder -1234000000 1234) 0) (num-test (remainder -1234000000 1234000000) 0) (num-test (remainder -1234000000 2) 0) (num-test (remainder -1234000000 3) -1) (num-test (remainder -1234000000 362880) -208000) (num-test (remainder -1234000000 500029) -428457) (num-test (remainder -13 -4) -1) (num-test (remainder -13 4) -1) (num-test (remainder -2 -1) 0) (num-test (remainder -2 -10) -2) (num-test (remainder -2 -1234) -2) (num-test (remainder -2 -1234000000) -2) (num-test (remainder -2 -2) 0) (num-test (remainder -2 -3) -2) (num-test (remainder -2 -362880) -2) (num-test (remainder -2 -500029) -2) (num-test (remainder -2 1) 0) (num-test (remainder -2 10) -2) (num-test (remainder -2 1234) -2) (num-test (remainder -2 1234000000) -2) (num-test (remainder -2 2) 0) (num-test (remainder -2 3) -2) (num-test (remainder -2 362880) -2) (num-test (remainder -2 500029) -2) (num-test (remainder -3 -1) 0) (num-test (remainder -3 -10) -3) (num-test (remainder -3 -1234) -3) (num-test (remainder -3 -1234000000) -3) (num-test (remainder -3 -2) -1) (num-test (remainder -3 -3) 0) (num-test (remainder -3 -362880) -3) (num-test (remainder -3 -500029) -3) (num-test (remainder -3 1) 0) (num-test (remainder -3 10) -3) (num-test (remainder -3 1234) -3) (num-test (remainder -3 1234000000) -3) (num-test (remainder -3 2) -1) (num-test (remainder -3 3) 0) (num-test (remainder -3 362880) -3) (num-test (remainder -3 500029) -3) ;; Not standards-compliant, must be an integer ;(num-test (remainder -3.1 -2.0) -1.1) ;(num-test (remainder -3.1 2.0) -1.1) ;(num-test (remainder -3.1 2.5) -0.6) (s7-test (remainder -3.1 -2.0) 'error) (s7-test (remainder -3.1 2.0) 'error) (s7-test (remainder -3.1 2.5) 'error) (num-test (remainder -362880 -1) 0) (num-test (remainder -362880 -10) 0) (num-test (remainder -362880 -1234) -84) (num-test (remainder -362880 -1234000000) -362880) (num-test (remainder -362880 -2) 0) (num-test (remainder -362880 -3) 0) (num-test (remainder -362880 -362880) 0) (num-test (remainder -362880 -500029) -362880) (num-test (remainder -362880 1) 0) (num-test (remainder -362880 10) 0) (num-test (remainder -362880 1234) -84) (num-test (remainder -362880 1234000000) -362880) (num-test (remainder -362880 2) 0) (num-test (remainder -362880 3) 0) (num-test (remainder -362880 362880) 0) (num-test (remainder -362880 500029) -362880) (num-test (remainder -500029 -1) 0) (num-test (remainder -500029 -10) -9) (num-test (remainder -500029 -1234) -259) (num-test (remainder -500029 -1234000000) -500029) (num-test (remainder -500029 -2) -1) (num-test (remainder -500029 -3) -1) (num-test (remainder -500029 -362880) -137149) (num-test (remainder -500029 -500029) 0) (num-test (remainder -500029 1) 0) (num-test (remainder -500029 10) -9) (num-test (remainder -500029 1234) -259) (num-test (remainder -500029 1234000000) -500029) (num-test (remainder -500029 2) -1) (num-test (remainder -500029 3) -1) (num-test (remainder -500029 362880) -137149) (num-test (remainder -500029 500029) 0) (num-test (remainder 0 -1) 0) (num-test (remainder 0 -1) 0) (num-test (remainder 0 -10) 0) (num-test (remainder 0 -10) 0) (num-test (remainder 0 -1234) 0) (num-test (remainder 0 -1234) 0) (num-test (remainder 0 -1234000000) 0) (num-test (remainder 0 -1234000000) 0) (num-test (remainder 0 -2) 0) (num-test (remainder 0 -2) 0) (num-test (remainder 0 -3) 0) (num-test (remainder 0 -3) 0) (num-test (remainder 0 -362880) 0) (num-test (remainder 0 -362880) 0) (num-test (remainder 0 -500029) 0) (num-test (remainder 0 -500029) 0) (num-test (remainder 0 1) 0) (num-test (remainder 0 1) 0) (num-test (remainder 0 10) 0) (num-test (remainder 0 10) 0) (num-test (remainder 0 1234) 0) (num-test (remainder 0 1234) 0) (num-test (remainder 0 1234000000) 0) (num-test (remainder 0 1234000000) 0) (num-test (remainder 0 2) 0) (num-test (remainder 0 2) 0) (num-test (remainder 0 3) 0) (num-test (remainder 0 3) 0) (num-test (remainder 0 362880) 0) (num-test (remainder 0 362880) 0) (num-test (remainder 0 500029) 0) (num-test (remainder 0 500029) 0) ;; Not standards-compliant, must be an integer ;(num-test (remainder 0.5 -2) 0.5) ;(num-test (remainder 0.5 -2.0) 0.5) ;(num-test (remainder 0.5 2.0) 0.5) (s7-test (remainder 0.5 -2) 'error) (s7-test (remainder 0.5 -2.0) 'error) (s7-test (remainder 0.5 2.0) 'error) (num-test (remainder 1 -1) 0) (num-test (remainder 1 -10) 1) (num-test (remainder 1 -1234) 1) (num-test (remainder 1 -1234000000) 1) (num-test (remainder 1 -2) 1) (num-test (remainder 1 -3) 1) (num-test (remainder 1 -362880) 1) (num-test (remainder 1 -4) 1) (num-test (remainder 1 -500029) 1) (num-test (remainder 1 1) 0) (num-test (remainder 1 10) 1) (num-test (remainder 1 1234) 1) (num-test (remainder 1 1234000000) 1) (num-test (remainder 1 2) 1) (num-test (remainder 1 3) 1) (num-test (remainder 1 362880) 1) (num-test (remainder 1 500029) 1) (num-test (remainder 10 -1) 0) (num-test (remainder 10 -10) 0) (num-test (remainder 10 -1234) 10) (num-test (remainder 10 -1234000000) 10) (num-test (remainder 10 -2) 0) (num-test (remainder 10 -3) 1) (num-test (remainder 10 -362880) 10) (num-test (remainder 10 -500029) 10) (num-test (remainder 10 1) 0) (num-test (remainder 10 10) 0) (num-test (remainder 10 1234) 10) (num-test (remainder 10 1234000000) 10) (num-test (remainder 10 2) 0) (num-test (remainder 10 3) 1) (num-test (remainder 10 362880) 10) (num-test (remainder 10 500029) 10) (num-test (remainder 1234 -1) 0) (num-test (remainder 1234 -10) 4) (num-test (remainder 1234 -1234) 0) (num-test (remainder 1234 -1234000000) 1234) (num-test (remainder 1234 -2) 0) (num-test (remainder 1234 -3) 1) (num-test (remainder 1234 -362880) 1234) (num-test (remainder 1234 -500029) 1234) (num-test (remainder 1234 1) 0) (num-test (remainder 1234 10) 4) (num-test (remainder 1234 1234) 0) (num-test (remainder 1234 1234000000) 1234) (num-test (remainder 1234 2) 0) (num-test (remainder 1234 3) 1) (num-test (remainder 1234 362880) 1234) (num-test (remainder 1234 500029) 1234) (num-test (remainder 1234000000 -1) 0) (num-test (remainder 1234000000 -10) 0) (num-test (remainder 1234000000 -1234) 0) (num-test (remainder 1234000000 -1234000000) 0) (num-test (remainder 1234000000 -2) 0) (num-test (remainder 1234000000 -3) 1) (num-test (remainder 1234000000 -362880) 208000) (num-test (remainder 1234000000 -500029) 428457) (num-test (remainder 1234000000 1) 0) (num-test (remainder 1234000000 10) 0) (num-test (remainder 1234000000 1234) 0) (num-test (remainder 1234000000 1234000000) 0) (num-test (remainder 1234000000 2) 0) (num-test (remainder 1234000000 3) 1) (num-test (remainder 1234000000 362880) 208000) (num-test (remainder 1234000000 500029) 428457) (num-test (remainder 13 -4) 1) (num-test (remainder 13 4) 1) ;; Not standards-compliant, must be an integer ;(num-test (remainder 19439282 4409.5) 2206.0) (s7-test (remainder 19439282 4409.5) 'error) (num-test (remainder 2 -1) 0) (num-test (remainder 2 -10) 2) (num-test (remainder 2 -1234) 2) (num-test (remainder 2 -1234000000) 2) (num-test (remainder 2 -2) 0) (num-test (remainder 2 -3) 2) (num-test (remainder 2 -362880) 2) (num-test (remainder 2 -500029) 2) (num-test (remainder 2 1) 0) (num-test (remainder 2 10) 2) (num-test (remainder 2 1234) 2) (num-test (remainder 2 1234000000) 2) (num-test (remainder 2 2) 0) (num-test (remainder 2 3) 2) (num-test (remainder 2 362880) 2) (num-test (remainder 2 500029) 2) (num-test (remainder 3 -1) 0) (num-test (remainder 3 -10) 3) (num-test (remainder 3 -1234) 3) (num-test (remainder 3 -1234000000) 3) (num-test (remainder 3 -2) 1) (num-test (remainder 3 -3) 0) (num-test (remainder 3 -362880) 3) (num-test (remainder 3 -500029) 3) (num-test (remainder 3 1) 0) (num-test (remainder 3 10) 3) (num-test (remainder 3 1234) 3) (num-test (remainder 3 1234000000) 3) (num-test (remainder 3 2) 1) ;; Not standards-compliant, must be an integer ;(num-test (remainder 3 2.5) 0.5) (s7-test (remainder 3 2.5) 'error) (num-test (remainder 3 3) 0) (num-test (remainder 3 362880) 3) (num-test (remainder 3 500029) 3) ;; Not standards-compliant, must be an integer ;(num-test (remainder 3.1 -2.0) 1.1) ;(num-test (remainder 3.1 2) 1.1) ;(num-test (remainder 3.1 2.0) 1.1) (s7-test (remainder 3.1 -2.0) 'error) (s7-test (remainder 3.1 2) 'error) (s7-test (remainder 3.1 2.0) 'error) (num-test (remainder 362880 -1) 0) (num-test (remainder 362880 -10) 0) (num-test (remainder 362880 -1234) 84) (num-test (remainder 362880 -1234000000) 362880) (num-test (remainder 362880 -2) 0) (num-test (remainder 362880 -3) 0) (num-test (remainder 362880 -362880) 0) (num-test (remainder 362880 -500029) 362880) (num-test (remainder 362880 1) 0) (num-test (remainder 362880 10) 0) (num-test (remainder 362880 1234) 84) (num-test (remainder 362880 1234000000) 362880) (num-test (remainder 362880 2) 0) (num-test (remainder 362880 3) 0) (num-test (remainder 362880 362880) 0) (num-test (remainder 362880 500029) 362880) (num-test (remainder 500029 -1) 0) (num-test (remainder 500029 -10) 9) (num-test (remainder 500029 -1234) 259) (num-test (remainder 500029 -1234000000) 500029) (num-test (remainder 500029 -2) 1) (num-test (remainder 500029 -3) 1) (num-test (remainder 500029 -362880) 137149) (num-test (remainder 500029 -500029) 0) (num-test (remainder 500029 1) 0) (num-test (remainder 500029 10) 9) (num-test (remainder 500029 1234) 259) (num-test (remainder 500029 1234000000) 500029) (num-test (remainder 500029 2) 1) (num-test (remainder 500029 3) 1) (num-test (remainder 500029 362880) 137149) (num-test (remainder 500029 500029) 0) (num-test (remainder -9223372036854775808 -9223372036854775808) 0) ;(num-test (remainder 1.110223024625156799999999999999999999997E-16 -9223372036854775808) 1.110223024625156799999999999999999999997E-16) ;(num-test (remainder 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 5.551115123125783999999999999999999999984E-17) (num-test (remainder 9223372036854775807 -9223372036854775808) 9223372036854775807) (num-test (remainder 9223372036854775807 9223372036854775807) 0) (num-test (remainder 0.0 1) 0.0) (num-test (remainder 0.0 2) 0.0) (num-test (remainder 0.0 3) 0.0) (num-test (remainder 0.0 4) 0.0) ;(num-test (remainder 0.0 pi) 0.0) ;(num-test (remainder 0.0 2.5) 0.0) (s7-test (remainder 0.0 pi) 'error) (s7-test (remainder 0.0 2.5) 'error) (num-test (remainder 0.0 4.0) 0.0) ;(num-test (remainder 0.0 1000.1) 0.0) (s7-test (remainder 0.0 1000.1) 'error) ;; (num-test (remainder pi 1) 1.415926535897932384626433832795028841953E-1) ;; (num-test (remainder pi 2) 1.141592653589793238462643383279502884195E0) ;; (num-test (remainder pi 3) 1.415926535897932384626433832795028841953E-1) ;; (num-test (remainder pi 4) pi) ;; (num-test (remainder pi pi) 0.0) ;; (num-test (remainder pi 2.5) 6.415926535897932384626433832795028841953E-1) ;; (num-test (remainder pi 4.0) pi) ;; (num-test (remainder pi 1000.1) pi) ;; (num-test (remainder 1.5 1) 0.5) ;; (num-test (remainder 1.5 2) 1.5) ;; (num-test (remainder 1.5 3) 1.5) ;; (num-test (remainder 1.5 4) 1.5) ;; (num-test (remainder 1.5 pi) 1.500E0) ;; (num-test (remainder 1.5 2.5) 1.5) ;; (num-test (remainder 1.5 4.0) 1.5) ;; (num-test (remainder 1.5 1000.1) 1.5) ;; (num-test (remainder -1.5 1) -0.5) ;; (num-test (remainder -1.5 2) -1.5) ;; (num-test (remainder -1.5 3) -1.5) ;; (num-test (remainder -1.5 4) -1.5) ;; (num-test (remainder -1.5 pi) -1.50E0) ;; (num-test (remainder -1.5 2.5) -1.5) ;; (num-test (remainder -1.5 4.0) -1.5) ;; (num-test (remainder -1.5 1000.1) -1.5) (num-test (remainder 3.0 1) 0.0) (num-test (remainder 3.0 2) 1.0) (num-test (remainder 3.0 3) 0.0) (num-test (remainder 3.0 4) 3.0) ;; (num-test (remainder 3.0 pi) 3.000E0) ;; (num-test (remainder 3.0 2.5) 0.5) (num-test (remainder 3.0 4.0) 3.0) ;; (num-test (remainder 3.0 1000.1) 3.0) ;; (num-test (remainder 110.123 1) 0.123) ;; (num-test (remainder 110.123 2) 0.123) ;; (num-test (remainder 110.123 3) 2.123) ;; (num-test (remainder 110.123 4) 2.123) ;; (num-test (remainder 110.123 pi) 1.672571243572413149678281714746183675874E-1) ;; (num-test (remainder 110.123 2.5) 0.123) ;; (num-test (remainder 110.123 4.0) 2.123) ;; (num-test (remainder 110.123 1000.1) 110.123) ;(num-test (remainder -9223372036854775808 5.551115123125783999999999999999999999984E-17) -2.295798100238055639010781305842101573944E-17) (num-test (remainder 295147905149568077200 34359738366) 21754858894) (num-test (remainder 696898287454081973170944403677937368733396 1180591620717411303422) 314390899110894278354) (num-test (remainder 1e19 10) 0.0) (num-test (remainder .1e20 10) 0.0) (num-test (remainder 1e20 10) 0.0) (num-test (remainder 1e21 10) 0.0) (num-test (remainder 1e19 -1) 0.0) (num-test (remainder 1e19 1) 0.0) (num-test (remainder .1e20 1) 0.0) (num-test (remainder 1e20 1) 0.0) (num-test (remainder 10000000000000000000 1) 0) (num-test (remainder 100000000000000000000 1) 0) (num-test (remainder 10000000000000000000 10) 0) (num-test (remainder 100000000000000000000 10) 0) (s7-test (remainder 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error) (s7-test (remainder 1231231231231231232123 0.0) 'error) (s7-test (remainder 1231231231231231232123 0) 'error) (s7-test (remainder 123 123 123) 'error) (s7-test (remainder 123) 'error) (s7-test (remainder 3 0) 'error) (s7-test (remainder) 'error) (s7-test (remainder 2.3 1.0+0.1i) 'error) (s7-test (remainder 3.0+2.3i 3) 'error) (test-end "remainder") ;;; -------------------------------------------------------------------------------- ;;; gcd ;;; -------------------------------------------------------------------------------- (test-begin "gcd") (num-test (gcd (* 512 500057) (* 128 500057) (* 2048 500057)) 64007296) (num-test (gcd (- (expt 2 11) 1) (- (expt 2 19) 1)) (- (expt 2 (gcd 11 19)) 1)) (num-test (gcd (- (expt 2 11) 1) (- (expt 2 22) 1)) (- (expt 2 (gcd 11 22)) 1)) (num-test (gcd (- (expt 2 12) 1) (- (expt 2 18) 1)) (- (expt 2 (gcd 12 18)) 1)) (num-test (gcd (- (expt 2 52) 1) (- (expt 2 39) 1)) (- (expt 2 (gcd 52 39)) 1)) (num-test (gcd (numerator 7/9) (denominator 7/9)) 1) (num-test (gcd -1 -1) 1) (num-test (gcd -1 -10) 1) (num-test (gcd -1 -1234) 1) (num-test (gcd -1 -1234000000) 1) (num-test (gcd -1 -2) 1) (num-test (gcd -1 -3) 1) (num-test (gcd -1 -362880) 1) (num-test (gcd -1 -500029) 1) (num-test (gcd -1 0) 1) (num-test (gcd -1 1) 1) (num-test (gcd -1 10) 1) (num-test (gcd -1 1234) 1) (num-test (gcd -1 1234000000) 1) (num-test (gcd -1 2) 1) (num-test (gcd -1 3) 1) (num-test (gcd -1 362880) 1) (num-test (gcd -1 500029) 1) (num-test (gcd -1) 1) (num-test (gcd -10 -1) 1) (num-test (gcd -10 -10) 10) (num-test (gcd -10 -1234) 2) (num-test (gcd -10 -1234000000) 10) (num-test (gcd -10 -2) 2) (num-test (gcd -10 -3) 1) (num-test (gcd -10 -362880) 10) (num-test (gcd -10 -500029) 1) (num-test (gcd -10 0) 10) (num-test (gcd -10 1) 1) (num-test (gcd -10 10) 10) (num-test (gcd -10 1234) 2) (num-test (gcd -10 1234000000) 10) (num-test (gcd -10 2) 2) (num-test (gcd -10 3) 1) (num-test (gcd -10 362880) 10) (num-test (gcd -10 500029) 1) (num-test (gcd -10) 10) (num-test (gcd -1234 -1) 1) (num-test (gcd -1234 -10) 2) (num-test (gcd -1234 -1234) 1234) (num-test (gcd -1234 -1234000000) 1234) (num-test (gcd -1234 -2) 2) (num-test (gcd -1234 -3) 1) (num-test (gcd -1234 -362880) 2) (num-test (gcd -1234 -500029) 1) (num-test (gcd -1234 0) 1234) (num-test (gcd -1234 1) 1) (num-test (gcd -1234 10) 2) (num-test (gcd -1234 1234) 1234) (num-test (gcd -1234 1234000000) 1234) (num-test (gcd -1234 2) 2) (num-test (gcd -1234 3) 1) (num-test (gcd -1234 362880) 2) (num-test (gcd -1234 500029) 1) (num-test (gcd -1234) 1234) (num-test (gcd -1234000000 -1) 1) (num-test (gcd -1234000000 -10) 10) (num-test (gcd -1234000000 -1234) 1234) (num-test (gcd -1234000000 -1234000000) 1234000000) (num-test (gcd -1234000000 -2) 2) (num-test (gcd -1234000000 -3) 1) (num-test (gcd -1234000000 -362880) 640) (num-test (gcd -1234000000 -500029) 1) (num-test (gcd -1234000000 0) 1234000000) (num-test (gcd -1234000000 1) 1) (num-test (gcd -1234000000 10) 10) (num-test (gcd -1234000000 1234) 1234) (num-test (gcd -1234000000 1234000000) 1234000000) (num-test (gcd -1234000000 2) 2) (num-test (gcd -1234000000 3) 1) (num-test (gcd -1234000000 362880) 640) (num-test (gcd -1234000000 500029) 1) (num-test (gcd -1234000000) 1234000000) (num-test (gcd -2 -1) 1) (num-test (gcd -2 -10) 2) (num-test (gcd -2 -1234) 2) (num-test (gcd -2 -1234000000) 2) (num-test (gcd -2 -2) 2) (num-test (gcd -2 -3) 1) (num-test (gcd -2 -362880) 2) (num-test (gcd -2 -500029) 1) (num-test (gcd -2 0) 2) (num-test (gcd -2 1) 1) (num-test (gcd -2 10) 2) (num-test (gcd -2 1234) 2) (num-test (gcd -2 1234000000) 2) (num-test (gcd -2 2) 2) (num-test (gcd -2 3) 1) (num-test (gcd -2 362880) 2) (num-test (gcd -2 500029) 1) (num-test (gcd -2) 2) (num-test (gcd -3 -1) 1) (num-test (gcd -3 -10) 1) (num-test (gcd -3 -1234) 1) (num-test (gcd -3 -1234000000) 1) (num-test (gcd -3 -2) 1) (num-test (gcd -3 -3) 3) (num-test (gcd -3 -362880) 3) (num-test (gcd -3 -500029) 1) (num-test (gcd -3 0) 3) (num-test (gcd -3 1) 1) (num-test (gcd -3 10) 1) (num-test (gcd -3 1234) 1) (num-test (gcd -3 1234000000) 1) (num-test (gcd -3 2) 1) (num-test (gcd -3 3) 3) (num-test (gcd -3 362880) 3) (num-test (gcd -3 500029) 1) (num-test (gcd -3) 3) (num-test (gcd -362880 -1) 1) (num-test (gcd -362880 -10) 10) (num-test (gcd -362880 -1234) 2) (num-test (gcd -362880 -1234000000) 640) (num-test (gcd -362880 -2) 2) (num-test (gcd -362880 -3) 3) (num-test (gcd -362880 -362880) 362880) (num-test (gcd -362880 -500029) 1) (num-test (gcd -362880 0) 362880) (num-test (gcd -362880 0) 362880) (num-test (gcd -362880 1) 1) (num-test (gcd -362880 10) 10) (num-test (gcd -362880 1234) 2) (num-test (gcd -362880 1234000000) 640) (num-test (gcd -362880 2) 2) (num-test (gcd -362880 3) 3) (num-test (gcd -362880 362880) 362880) (num-test (gcd -362880 500029) 1) (num-test (gcd -362880) 362880) (num-test (gcd -4 0) 4 ) (num-test (gcd -500029 -1) 1) (num-test (gcd -500029 -10) 1) (num-test (gcd -500029 -1234) 1) (num-test (gcd -500029 -1234000000) 1) (num-test (gcd -500029 -2) 1) (num-test (gcd -500029 -3) 1) (num-test (gcd -500029 -362880) 1) (num-test (gcd -500029 -500029) 500029) (num-test (gcd -500029 0) 500029) (num-test (gcd -500029 0) 500029) (num-test (gcd -500029 1) 1) (num-test (gcd -500029 10) 1) (num-test (gcd -500029 1234) 1) (num-test (gcd -500029 1234000000) 1) (num-test (gcd -500029 2) 1) (num-test (gcd -500029 3) 1) (num-test (gcd -500029 362880) 1) (num-test (gcd -500029 500029) 500029) (num-test (gcd -500029) 500029) (num-test (gcd 0 -1) 1) (num-test (gcd 0 -10) 10) (num-test (gcd 0 -1234) 1234) (num-test (gcd 0 -1234000000) 1234000000) (num-test (gcd 0 -2) 2) (num-test (gcd 0 -3) 3) (num-test (gcd 0 -362880) 362880) (num-test (gcd 0 -500029) 500029) (num-test (gcd 0 0 0 10) 10) (num-test (gcd 0 0) 0) (num-test (gcd 0 1 -1 362880) 1) (num-test (gcd 0 1) 1) (num-test (gcd 0 10 10 1234) 2) (num-test (gcd 0 10) 10) (num-test (gcd 0 1234 -1234 10) 2) (num-test (gcd 0 1234) 1234) (num-test (gcd 0 1234000000 1234000000 -3) 1) (num-test (gcd 0 1234000000) 1234000000) (num-test (gcd 0 2 2 -500029) 1) (num-test (gcd 0 2) 2) (num-test (gcd 0 2) 2) (num-test (gcd 0 3 -3 -1234000000) 1) (num-test (gcd 0 3) 3) (num-test (gcd 0 362880 362880 1) 1) (num-test (gcd 0 362880) 362880) (num-test (gcd 0 4) 4 ) (num-test (gcd 0 500029 -500029 -2) 1) (num-test (gcd 0 500029) 500029) (num-test (gcd 0) 0) (num-test (gcd 1 -1) 1) (num-test (gcd 1 -10) 1) (num-test (gcd 1 -1234) 1) (num-test (gcd 1 -1234000000) 1) (num-test (gcd 1 -2) 1) (num-test (gcd 1 -3) 1) (num-test (gcd 1 -362880) 1) (num-test (gcd 1 -500029) 1) (num-test (gcd 1 0 -1 1) 1) (num-test (gcd 1 0) 1) (num-test (gcd 1 1 2 -10) 1) (num-test (gcd 1 1) 1) (num-test (gcd 1 10 -1234 1234000000) 1) (num-test (gcd 1 10) 1) (num-test (gcd 1 1234 1234000000 -1234) 1) (num-test (gcd 1 1234) 1) (num-test (gcd 1 1234000000 -500029 -10) 1) (num-test (gcd 1 1234000000) 1) (num-test (gcd 1 2 -3 -362880) 1) (num-test (gcd 1 2) 1) (num-test (gcd 1 3 10 500029) 1) (num-test (gcd 1 3) 1) (num-test (gcd 1 362880 0 2) 1) (num-test (gcd 1 362880) 1) (num-test (gcd 1 500029 362880 3) 1) (num-test (gcd 1 500029) 1) (num-test (gcd 1) 1) (num-test (gcd 10 -1) 1) (num-test (gcd 10 -10) 10) (num-test (gcd 10 -1234) 2) (num-test (gcd 10 -1234000000) 10) (num-test (gcd 10 -2) 2) (num-test (gcd 10 -3) 1) (num-test (gcd 10 -362880) 10) (num-test (gcd 10 -500029) 1) (num-test (gcd 10 0 10 10) 10) (num-test (gcd 10 0) 10) (num-test (gcd 10 1 -1234 3) 1) (num-test (gcd 10 1) 1) (num-test (gcd 10 10 362880 10) 10) (num-test (gcd 10 10) 10) (num-test (gcd 10 1234 0 362880) 2) (num-test (gcd 10 1234) 2) (num-test (gcd 10 1234000000 1 -500029) 1) (num-test (gcd 10 1234000000) 10) (num-test (gcd 10 2 1234000000 -2) 2) (num-test (gcd 10 2) 2) (num-test (gcd 10 3 -500029 -1) 1) (num-test (gcd 10 3) 1) (num-test (gcd 10 362880 3 1234) 1) (num-test (gcd 10 362880) 10) (num-test (gcd 10 500029 -2 -1234000000) 1) (num-test (gcd 10 500029) 1) (num-test (gcd 10) 10) (num-test (gcd 1008217762344 4403) 37) (num-test (gcd 1111364125679340 6) 6) (num-test (gcd 1200780158492850 91686) 354) (num-test (gcd 1234 -1) 1) (num-test (gcd 1234 -10) 2) (num-test (gcd 1234 -1234) 1234) (num-test (gcd 1234 -1234000000) 1234) (num-test (gcd 1234 -2) 2) (num-test (gcd 1234 -3) 1) (num-test (gcd 1234 -362880) 2) (num-test (gcd 1234 -500029) 1) (num-test (gcd 1234 0 -1234 1234) 1234) (num-test (gcd 1234 0) 1234) (num-test (gcd 1234 1 1234000000 -10) 1) (num-test (gcd 1234 1) 1) (num-test (gcd 1234 10 0 1) 1) (num-test (gcd 1234 10) 2) (num-test (gcd 1234 1234 1 -10) 1) (num-test (gcd 1234 1234) 1234) (num-test (gcd 1234 1234000000 -2 -362880) 2) (num-test (gcd 1234 1234000000) 1234) (num-test (gcd 1234 2 -500029 -3) 1) (num-test (gcd 1234 2) 2) (num-test (gcd 1234 3 362880 2) 1) (num-test (gcd 1234 3) 1) (num-test (gcd 1234 362880 -10 1234000000) 2) (num-test (gcd 1234 362880) 2) (num-test (gcd 1234 500029 3 500029) 1) (num-test (gcd 1234 500029) 1) (num-test (gcd 1234) 1234) (num-test (gcd 1234000000 -1) 1) (num-test (gcd 1234000000 -10) 10) (num-test (gcd 1234000000 -1234) 1234) (num-test (gcd 1234000000 -1234000000) 1234000000) (num-test (gcd 1234000000 -2) 2) (num-test (gcd 1234000000 -3) 1) (num-test (gcd 1234000000 -362880) 640) (num-test (gcd 1234000000 -500029) 1) (num-test (gcd 1234000000 0 1234000000 -1234000000) 1234000000) (num-test (gcd 1234000000 0) 1234000000) (num-test (gcd 1234000000 1 -500029 -1234) 1) (num-test (gcd 1234000000 1) 1) (num-test (gcd 1234000000 10 1 -2) 1) (num-test (gcd 1234000000 10) 10) (num-test (gcd 1234000000 1234 -2 -1) 1) (num-test (gcd 1234000000 1234) 1234) (num-test (gcd 1234000000 1234000000 3 10) 1) (num-test (gcd 1234000000 1234000000) 1234000000) (num-test (gcd 1234000000 2 362880 10) 2) (num-test (gcd 1234000000 2) 2) (num-test (gcd 1234000000 3 0 3) 1) (num-test (gcd 1234000000 3) 1) (num-test (gcd 1234000000 362880 1234 -500029) 1) (num-test (gcd 1234000000 362880) 640) (num-test (gcd 1234000000 500029 -10 362880) 1) (num-test (gcd 1234000000 500029) 1) (num-test (gcd 1234000000) 1234000000) (num-test (gcd 1346702251365156 435) 87) (num-test (gcd 136581511784536 67022) 62) (num-test (gcd 1388225063690465 644) 7) (num-test (gcd 15295874 111) 37) (num-test (gcd 1551193257090906 2656731) 1749) (num-test (gcd 1563464979842 442) 34) (num-test (gcd 15858537083857314 21793) 21793) (num-test (gcd 163873565922 155) 31) (num-test (gcd 178335507754891305 817) 817) (num-test (gcd 2 -1) 1) (num-test (gcd 2 -10) 2) (num-test (gcd 2 -1234) 2) (num-test (gcd 2 -1234000000) 2) (num-test (gcd 2 -2) 2) (num-test (gcd 2 -3) 1) (num-test (gcd 2 -362880) 2) (num-test (gcd 2 -500029) 1) (num-test (gcd 2 0 2 -2) 2) (num-test (gcd 2 0) 2) (num-test (gcd 2 1 -3 -1) 1) (num-test (gcd 2 1) 1) (num-test (gcd 2 10 1234000000 -500029) 1) (num-test (gcd 2 10) 2) (num-test (gcd 2 1234 -500029 -1234000000) 1) (num-test (gcd 2 1234) 2) (num-test (gcd 2 1234000000 362880 1234) 2) (num-test (gcd 2 1234000000) 2) (num-test (gcd 2 2 10 10) 2) (num-test (gcd 2 2) 2) (num-test (gcd 2 3 -1234 362880) 1) (num-test (gcd 2 3) 1) (num-test (gcd 2 362880 1 -3) 1) (num-test (gcd 2 362880) 2) (num-test (gcd 2 500029 0 10) 1) (num-test (gcd 2 500029) 1) (num-test (gcd 2) 2) (num-test (gcd 2033404107084 23374) 2) (num-test (gcd 20430054 41) 41) (num-test (gcd 2090198664 1118) 2) (num-test (gcd 21568911 41) 41) (num-test (gcd 248255254 767) 13) (num-test (gcd 2755 13) 1) (num-test (gcd 3 -1) 1) (num-test (gcd 3 -10) 1) (num-test (gcd 3 -1234) 1) (num-test (gcd 3 -1234000000) 1) (num-test (gcd 3 -2) 1) (num-test (gcd 3 -3) 3) (num-test (gcd 3 -362880) 3) (num-test (gcd 3 -500029) 1) (num-test (gcd 3 0 -3 -3) 3) (num-test (gcd 3 0) 3) (num-test (gcd 3 1 10 2) 1) (num-test (gcd 3 1) 1) (num-test (gcd 3 10 -500029 -362880) 1) (num-test (gcd 3 10) 1) (num-test (gcd 3 1234 362880 500029) 1) (num-test (gcd 3 1234) 1) (num-test (gcd 3 1234000000 0 1234000000) 1) (num-test (gcd 3 1234000000) 1) (num-test (gcd 3 2 -1234 1) 1) (num-test (gcd 3 2) 1) (num-test (gcd 3 3 1234000000 -10) 1) (num-test (gcd 3 3) 3) (num-test (gcd 3 362880 -2 -10) 1) (num-test (gcd 3 362880) 3) (num-test (gcd 3 500029 1 -1234) 1) (num-test (gcd 3 500029) 1) (num-test (gcd 3) 3) (num-test (gcd 32 -36) 4 ) (num-test (gcd 323 28747 27113) 19) (num-test (gcd 3333 -33 1002001) 11) (num-test (gcd 3333 -33 101) 1) (num-test (gcd 362880 -1) 1) (num-test (gcd 362880 -10) 10) (num-test (gcd 362880 -1234) 2) (num-test (gcd 362880 -1234000000) 640) (num-test (gcd 362880 -2) 2) (num-test (gcd 362880 -3) 3) (num-test (gcd 362880 -362880) 362880) (num-test (gcd 362880 -500029) 1) (num-test (gcd 362880 0 362880 362880) 362880) (num-test (gcd 362880 0) 362880) (num-test (gcd 362880 1 0 500029) 1) (num-test (gcd 362880 1) 1) (num-test (gcd 362880 10 3 10) 1) (num-test (gcd 362880 10) 10) (num-test (gcd 362880 1234 -10 3) 1) (num-test (gcd 362880 1234) 2) (num-test (gcd 362880 1234000000 1234 -2) 2) (num-test (gcd 362880 1234000000) 640) (num-test (gcd 362880 2 1 -1234000000) 1) (num-test (gcd 362880 2) 2) (num-test (gcd 362880 3 -2 -1234) 1) (num-test (gcd 362880 3) 3) (num-test (gcd 362880 362880 500029 10) 1) (num-test (gcd 362880 362880) 362880) (num-test (gcd 362880 500029 -1234000000 -1) 1) (num-test (gcd 362880 500029) 1) (num-test (gcd 362880) 362880) (num-test (gcd 363169800 20) 20) (num-test (gcd 3712337724 576173) 23) (num-test (gcd 386512944051107445 17) 17) (num-test (gcd 406117800 57) 3) (num-test (gcd 4097970629150 86) 2) (num-test (gcd 4294967298 3) 3) (num-test (gcd 43293168048 1344610) 2) (num-test (gcd 4380921044390 5) 5) (num-test (gcd 4412914630225794 515823) 46893) (num-test (gcd 44179338013272 280645) 41) (num-test (gcd 500029 -1) 1) (num-test (gcd 500029 -10) 1) (num-test (gcd 500029 -1234) 1) (num-test (gcd 500029 -1234000000) 1) (num-test (gcd 500029 -2) 1) (num-test (gcd 500029 -3) 1) (num-test (gcd 500029 -362880) 1) (num-test (gcd 500029 -500029) 500029) (num-test (gcd 500029 0 -500029 -500029) 500029) (num-test (gcd 500029 0) 500029) (num-test (gcd 500029 0) 500029) (num-test (gcd 500029 1 362880 1234000000) 1) (num-test (gcd 500029 1) 1) (num-test (gcd 500029 10 -2 -3) 1) (num-test (gcd 500029 10) 1) (num-test (gcd 500029 1234 3 2) 1) (num-test (gcd 500029 1234) 1) (num-test (gcd 500029 1234000000 -10 1) 1) (num-test (gcd 500029 1234000000) 1) (num-test (gcd 500029 2 0 1234) 1) (num-test (gcd 500029 2) 1) (num-test (gcd 500029 3 1 -10) 1) (num-test (gcd 500029 3) 1) (num-test (gcd 500029 362880 -1234000000 -362880) 1) (num-test (gcd 500029 362880) 1) (num-test (gcd 500029 500029 1234 -10) 1) (num-test (gcd 500029 500029) 500029) (num-test (gcd 500029) 500029) (num-test (gcd 510104442 5453) 1) (num-test (gcd 5275411661289 31857) 21) (num-test (gcd 56 2) 2) (num-test (gcd 60 42) 6) (num-test (gcd 608503422693864 47) 47) (num-test (gcd 629448534 2) 2) (num-test (gcd 63 -42 35) 7) (num-test (gcd 64149298745840 43808357) 35131) (num-test (gcd 660070972 74) 74) (num-test (gcd 6945109296864 779) 19) (num-test (gcd 71862 203) 203) (num-test (gcd 7438317458260 31213) 13) (num-test (gcd 77874422 32223899) 1) (num-test (gcd 82578867500655 319) 29) (num-test (gcd 91 -49) 7) (num-test (gcd 91 -49) 7) (num-test (gcd) 0 ) (num-test (gcd) 0) (num-test (gcd 9223372036854775807 -9223372036854775808) 1) (s7-test (gcd 0 "hi") 'error) (s7-test (gcd 1 "hi") 'error) (s7-test (gcd 3 5 #\a) 'error) (s7-test (gcd 1.4 2.3) 'error) ; We don't care, we just check for integer ; (s7-test (gcd 1.0) 'error) (s7-test (gcd 1.0) 1.0) (s7-test (gcd 1.0 2.0) 1.0) (s7-test (gcd #i0/0) 'error) (s7-test (gcd 2 1.0+0.5i) 'error) (num-test (gcd -9223372036854775808 -9223372036854775808) 9223372036854775808) (num-test (gcd -9223372036854775808 9223372036854775807 -9223372036854775808) 1) (num-test (gcd 12345678901234567890 12345) 15) (num-test (gcd 2155967190204955525121 -12850565775361 93458656690177) 557057) (num-test (gcd 2155967190204955525121 0) 2155967190204955525121) (num-test (gcd 2155967190204955525121 12850565775361 93458656690177) 557057) (num-test (gcd 2346026393680644703525505657 17293822570713318399) 11) (num-test (gcd 974507656412513757857315037382926980395082974811562770185617915360 -1539496810360685510909469177732386446833404488164283) 1) (num-test (gcd 460683358924445799142 518) 518) (num-test (gcd 113021475230160 74635) 6785) (num-test (gcd 74228340534140364 363909) 1677) (num-test (gcd 69242022961311060 48305942) 60458) (num-test (gcd -286967952870300 2273388) 156) (num-test (gcd 302822258393413362492399 29) 29) (num-test (gcd 10491072879382200 133) 133) (num-test (gcd 167206737423420464 609) 7) (num-test (gcd 72212583812867784 4888799) 47) (num-test (gcd 4170116471639397292390 1798025) 359605) (num-test (gcd 83910330283522050 35224) 238) (num-test (gcd 275373383775647594346 66884092) 104834) (num-test (gcd 14656657495570695990 37) 1) (num-test (gcd 95470974177676509874110 1219) 1219) (num-test (gcd 619506317623001424 -5957) 7) (num-test (gcd 11268171656665155960 9858) 186) (num-test (gcd 6172860073826160 5167394) 3074) (num-test (gcd 26457493095663264 1491412) 3956) (num-test (gcd -8481384175941103284 313836405) 51) (num-test (gcd 60356595775749199080 -176098815946) 1716346) (num-test (gcd 611492274956002440 37) 37) (num-test (gcd 164614611843685080 1711) 59) (num-test (gcd 93177516542679418720 62197) 37) (num-test (gcd 938959746797519770440 127558) 127558) (num-test (gcd 137670522526899326250 200) 50) (num-test (gcd 852063402206742880 41643478) 58406) (num-test (gcd 55947291202307909360 188546228) 6364) (num-test (gcd 12877971214039423262680 9832253830) 121730) (num-test (gcd 192158415774146059920 53) 53) (num-test (gcd 902814024155808960 1829) 31) (num-test (gcd 1265864304573235487120 4921) 259) (num-test (gcd -14172662463567665400 95817) 57) (num-test (gcd 32171996211745702482324 2368555) 259) (num-test (gcd 971324258606045826300 4576748) 236) (num-test (gcd 2400649320046378377000 1704690) 930) (num-test (gcd 953233796456393760 18342152493) 574287) (num-test (gcd 28906333140964843080 236206740) 823020) (num-test (gcd 775403093708557121609032 41) 41) (num-test (gcd 12587009808135760402860 2491) 47) (num-test (gcd 510685807527370566909720 76) 4) (num-test (gcd 9842598153710524682146590 10089) 3363) (num-test (gcd 44936631038618189620242012 30740) 6148) (num-test (gcd 934589372977008750144 373650) 282) (num-test (gcd 33027125273398900134069150 840577803) 840577803) (num-test (gcd 4428219127938822420288 1695783782) 12502) (num-test (gcd 29316428815807608915440 560764380) 153340) (num-test (gcd 1364397376360544429904 19) 19) (num-test (gcd 4991450791697293128313385277 329) 7) (num-test (gcd 75448279792981695149550 3009) 3) (num-test (gcd 181031604499464166188731133 3364) 1) (num-test (gcd 405831142402606479845286 2746214) 161542) (num-test (gcd 89170366469003867207160 25337230) 11470) (num-test (gcd 13523725766340619200 1490114045) 28595) (num-test (gcd 104705939487154940255412 192200052) 26196) (num-test (gcd 7232591421499800642000 16584679460) 7820) (num-test (gcd 14043796716396386984750160 -33382708236) 358953852) (num-test (gcd 13894638105872256412416 23) 23) (num-test (gcd 147611447155643499428400 118) 2) (num-test (gcd 13356594697070649024 4558) 106) (num-test (gcd 15089731174706036171537760 90) 30) (num-test (gcd 307230141273924828960 1971507) 1581) (num-test (gcd 2582563944548247741930009096 22873474) 1759498) (num-test (gcd 1074296602920111687342072 146235518) 21758) (num-test (gcd 774058642832724262993980 -407557010) 2531410) (num-test (gcd 291091930213008490369569480 13412544348) 26508) (num-test (gcd 2089068565149831833568 7302038455228) 68171356) (num-test (gcd 1064437567441124038217970656 5) 1) (num-test (gcd 142557826750459447787460 1333) 31) (num-test (gcd 311779340580033594160200 23693) 23693) (num-test (gcd 29314187023691666530559664 110143) 110143) (num-test (gcd 222003853016244177637944900 857463) 857463) (num-test (gcd 6247776111945111006243552 77976501) 2515371) (num-test (gcd 1140058514761397155259712 5530338) 502758) (num-test (gcd 580962736822969724865449808 55686036) 1505028) (num-test (gcd 4100502596989506786787500 45333475410) 563730) (num-test (gcd 1497378750311599979536944 262630276090) 361046) (num-test (gcd 105637634198318524045536 2633013240) 150072) (num-test (gcd 11415822547029425161364106595632 7) 1) (num-test (gcd 198305933339312916107438448 177) 3) (num-test (gcd 3127415425979879537134790928 3335) 667) (num-test (gcd 589703503861221139260034914750 13209) 357) (num-test (gcd 3108579252052448504121792 14322) 462) (num-test (gcd 636976201153021006473464400 66264077) 3487583) (num-test (gcd 9544425315508129998909285900 1488396) 212628) (num-test (gcd 458100280193857502802977376 260747103934) 6212554) (num-test (gcd 114208186302155358124900650 22076867505) 6342105) (num-test (gcd 90107067439719108194114160 28566806069714) 3408519994) (num-test (gcd 2976572787365723002218245484 -110104803958578) 2966904798) (num-test (gcd 53453375725613238735360 17) 1) (num-test (gcd 888822833524306124874229800 106) 106) (num-test (gcd 21275338550698297089687698855820 3021) 3021) (num-test (gcd 417525245705449941528380320750068 5828) 5828) (num-test (gcd 1954871230146370370001829871352 22765249) 22765249) (num-test (gcd 903057827710908645847577520 648545995) 520085) (num-test (gcd 6002846634833433581621040 28493572159) 27869) (num-test (gcd 26428903214964558277189300080 100428856) 3463064) (num-test (gcd 470486531607553676511206181180 28495896) 2964) (num-test (gcd 483599554429365539310928369206620 5577334078910) 105232718470) (num-test (gcd 134511400157705323668887400 -1285071093558916) 340069628) (num-test (gcd -25897125642468049125349982599216 1183846707540) 26307704612) (num-test (gcd 1118034209930460291955200 3) 3) (num-test (gcd 16297594064835666104344589410644 413) 413) (num-test (gcd 536762539932642345554192060100 1378) 1378) (num-test (gcd 933250179448203335817687635834340 58029) 69) (num-test (gcd 65573457048202714607131200 486115) 3655) (num-test (gcd 85664559165674439863772868932 322014) 322014) (num-test (gcd 7232817686074320060728552759760 11307940) 11307940) (num-test (gcd 78400098291720425971762131120 5646921093) 5646921093) (num-test (gcd 345445746644065669842240 19727989065) 2193705) (num-test (gcd 627854758484491743169777558200 -750371721805653) 156322329) (num-test (gcd 788233263079483492974876830792850 7170146100) 5867550) (num-test (gcd 18378856389802641496737518160 6247594493140) 824329660) (num-test (gcd 9620902642431357480148667659080 59) 59) (num-test (gcd 16008524600631853118144316000 629) 1) (num-test (gcd 4342138447708715023205684275423920 53041) 1711) (num-test (gcd 2431833161592653384508687244500 47541) 47541) (num-test (gcd 39424620224103957589082132160 1671734) 1671734) (num-test (gcd 652830233576052788654372406432 552231327) 12842589) (num-test (gcd 6892963340916411083970414000 3662431431) 77924073) (num-test (gcd 29102758215190063506219566460000 10565720) 10565720) (num-test (gcd 21253900104556838003127171970777418412 1182797770) 62698) (num-test (gcd 3964268932242030284914943132662620 21244177854110) 18521515130) (num-test (gcd 6070388091189460078138338240 40809131994181213) 274113073169) (num-test (gcd 9685989954133695108793384134000 964113514382876) 169529367748) (num-test (gcd 56468122001858834917195045500 -429400787158167902) 2090772606538) (num-test (gcd 18843408973202596901221568364900 47) 47) (num-test (gcd 7800980538292163259967028613764250 6) 6) (num-test (gcd 270433907726619219545089642715200 3422) 58) (num-test (gcd 45771666919597903071546708768 2342359) 2183) (num-test (gcd 47198294949461301503537593835384892 314502) 5934) (num-test (gcd 3165335901519110207943908102359110 14953473) 207) (num-test (gcd 189219585097956261544520863361400 35605794) 35605794) (num-test (gcd -38532137569034426600955256933810890813 -1341358608707) 6436369) (num-test (gcd 1396277868664090735481380981225896 312520860) 62504172) (num-test (gcd -864038349500762576564773759109700 714136202724) 16607818668) (num-test (gcd 12514185871591242579049167322464 10706997440178) 200614518) (num-test (gcd 1981802660405609330969478067056636 33312289752) 14779188) (num-test (gcd 979313401024175219420658240 125278417383795) 1551032145) (num-test (gcd 4074026154111369481048033354344 29) 29) (num-test (gcd 599666571180604695702511920885005100 129) 129) (num-test (gcd 5703263639326551702474610108800 1978) 1978) (num-test (gcd 134137932950214683609064669163440 190619) 143) (num-test (gcd 344735091370772631136645455600 1048985) 1048985) (num-test (gcd 6759508339299085316106145385400 4969610) 160310) (num-test (gcd 700334422308861928135313594400 228529587) 432003) (num-test (gcd 10277417891211405957191810814198480 2516552038) 228777458) (num-test (gcd 490099971577877358878082782880 9282588354) 17547426) (num-test (gcd 1954558750269048828645390249600 5575829490) 327989970) (num-test (gcd 1360588454560018295496656378989200 7868178296420) 14873682980) (num-test (gcd 4337552841738910859248770564912480 17722936528737830) 338114285990) (num-test (gcd 215913068853045803981566931862756 7009479781500) 2930844) (num-test (gcd 44890707654126305940250882318870941900 18329973480720) 1527497790060) (num-test (gcd 28579720891831355496720656680837200 3) 3) (num-test (gcd 29332703209780553199747293473184160 1711) 29) (num-test (gcd 3648979393315349438003046604440000 186) 186) (num-test (gcd 1159760236369472473822068077011807878780 25714) 25714) (num-test (gcd 158186359726371025615685433600 31395) 4485) (num-test (gcd 331091450443070201468559735703944 28424) 28424) (num-test (gcd 9734443639363161342241553023288200 1961348207) 63269297) (num-test (gcd 701896612128009033011419603540080 51300) 3420) (num-test (gcd 86169288128517384618860929451245320 5032162527446) 180164066) (num-test (gcd 64828800524794653881296183831741773624 4645294472) 6354712) (num-test (gcd 49068907706533938991402184550000 268183371225) 742890225) (num-test (gcd 1708602980304476478496020543612288 4083128544) 131713824) (num-test (gcd 17608179287674151740172985536160 980399424528) 91686096) (num-test (gcd 43194437079731225735521919644800 -178119261126453036) 80633436453804) (num-test (gcd 817555977437791699707628651571149344 59) 59) (num-test (gcd 19062946261334997559157066059536 533) 41) (num-test (gcd 6533849124840489114353090499099000 598) 26) (num-test (gcd 427663965127849896842400211428345149025 234) 117) (num-test (gcd 352395507261316174741530450071590608 154734) 3774) (num-test (gcd 391579493632653867660919800000 9221565) 645) (num-test (gcd 2618798923882923048581401148931738000 681876) 52452) (num-test (gcd 174712575449141140214591110997980800 233260339838) 126154862) (num-test (gcd 88598141227372995032227898284800 1929763976) 155288) (num-test (gcd 210110141308655567793064872567302676320 720390430628) 468699044) (num-test (gcd 668425085137718599277317523827419000 19898594339442) 58711254) (num-test (gcd 89533471731097208414073727453200 4173840860670546) 2257350384354) (num-test (gcd 113987439157802480362236410675251462620 21548296273949445) 1134120856523655) (num-test (gcd 48129335993995093308894209644253760 1009442888504820) 84891337020) (num-test (gcd -3497836376962291922989777163497680 138736290091634664) 3383811953454504) (num-test (gcd 11371924962562208722154622794880 3) 3) (num-test (gcd 9451631862008339290824315653784000 703) 19) (num-test (gcd 16869347753325980368094612370435598560 806) 806) (num-test (gcd 4701845646467068759127854100132739552 3198) 6) (num-test (gcd 1029865193584911347147121232800485280 1005771) 24531) (num-test (gcd 10657125216930337802109861408000 2415138) 2838) (num-test (gcd 14382707743772734802155022983680 247913634) 144894) (num-test (gcd 60134748581470366378101904574533857248 54828228) 493948) (num-test (gcd 214830664120540781167218700750596000 505665810) 11759670) (num-test (gcd 48933004118344447687599112101802800 6263883444) 106167516) (num-test (gcd 5498670161558110606435630054129739400 262699548132) 1346604) (num-test (gcd 35941673649029587182509620977230062500 25622409466332) 525598668) (num-test (gcd 1592802602494326390643157055239113248 736377633395508) 960075141324) (num-test (gcd 4043816553144402557587143272522043028314 5011466158645380) 366067652202) (num-test (gcd 7171921165220830707276631005512550 1765284492289500) 176528449228950) (num-test (gcd 2402189359210218692854826119405968750 23) 1) (num-test (gcd 26149068753160488131648964110990162400 1147) 31) (num-test (gcd 556184059176863945810376239306506311552 4089) 4089) (num-test (gcd 67871323087036310486238021899264593800 13395) 13395) (num-test (gcd 12750401179065252879838440979200 -7177173) 7177173) (num-test (gcd 278110245000092733617125071646080 17748) 17748) (num-test (gcd 13408203364935178481017292708752000 50619404) 1368092) (num-test (gcd 124271828931784534297423756437875067000 -8839796595) 4068015) (num-test (gcd 11893442806922081156953529319100769836176 972789007267) 983608703) (num-test (gcd 352581052555284857902053030133344488264100 923561430099) 54327142947) (num-test (gcd 6108908012714804315575319947340956346976 31944833628092) 97096758748) (num-test (gcd 67475643422116264959949054821520228800 22515435540) 326310660) (num-test (gcd 470601888939348535946408832 5135943991060962937) 36905011) (num-test (gcd -110759232155568113345545635903016614000 30159198663300) 30159198663300) (num-test (gcd 146100914712024458707469587112300146320 26868173101560) 10304280) (num-test (gcd 12173192708601511002951184416658091200 466645866900785428350) 1496624001041650) (num-test (gcd 5784684831478746253226687170890240 13) 13) (num-test (gcd 35042260655085685815432622412891903767500 667) 667) (num-test (gcd 2903871349270676921837488659419545120987500 530) 530) (num-test (gcd 630123969240840167098426767919876491188000 77691) 25897) (num-test (gcd 33192703032132982013024959634241667249800 4684718) 126614) (num-test (gcd 4731525733734729472809717145544850000 90706055) 90706055) (num-test (gcd 214011009809686092216200126896120006823232 50400042) 258) (num-test (gcd 5854250735296111435541950856160000 24357777002) 817622) (num-test (gcd 35348208247612761916374738259136697649608 156806713508) 8596388) (num-test (gcd 612558317420289618714916924536521515286100 2377007388) 125105652) (num-test (gcd 181857299802925368992522029882739454720 21606337755618) 21606337755618) (num-test (gcd 4731635341196946327443020710970699860000 58092526675092) 776108892) (num-test (gcd 22081740554432638182773611616166588288192 61419768950540) 12283953790108) (num-test (gcd 125627844706077784535328068665849312000 30482033400) 32200) (num-test (gcd 1225504716872819103560254268197955520 510813364186125) 168863922045) (num-test (gcd 5209185280578468690281136425214396728400 2327880739319250103818) 829166238) (num-test (gcd 230425011604643097634961294406535254400 31) 31) (num-test (gcd 13222608481676137093434201748083744000 893) 893) (num-test (gcd 13348198818240350339028224064019716678960 651) 3) (num-test (gcd 7236172685650198160266777676385295337308176 23426) 442) (num-test (gcd 756264162229440667711265021676693350760 28899) 28899) (num-test (gcd 40915062421030872924283823601517905600 36345062) 36345062) (num-test (gcd 1174590526522170015825602834292923520 4991486258) 145114) (num-test (gcd 2891892862328155581145450075391651333218020 35138529818) 35138529818) (num-test (gcd 1993335355070485984559797658834121810059400 535644500) 2612900) (num-test (gcd 6324295450641455215591954662726515160 367472693133) 8962748613) (num-test (gcd 6576388154814679090356195121505112000 15901952377630) 969690370) (num-test (gcd 117828556355409428513249595788296238400 565992666495795) 33126555) (num-test (gcd 592831716700236607285748949860604000 139641978135660) 343100683380) (num-test (gcd 106766839071170184723986891291602032000 1584924526628112) 1983635202288) (num-test (gcd 21677148858122146832326483307664860804937400 247815827510760) 9178363981880) (num-test (gcd 14079549844487257384278196623697173813600 160967604100961853832) 42959600534344) (num-test (gcd 2696480372014145687016224877963234647656980 -2219319031453896088860) 1258830987778727220) (num-test (gcd 13545431257849875145060979241270859310160 29) 29) (num-test (gcd 137485634482479300158725199474868559498162500 329) 47) (num-test (gcd 529252417743761759027305009539254400 3243) 3243) (num-test (gcd 133897419738958073238580385894509887148800 330455) 330455) (num-test (gcd 3896215507210178905244623173635584334007288624 1005238) 1005238) (num-test (gcd 17654511984514518592175290794029073043800 1060530) 36570) (num-test (gcd 16470780256339082688310222474503880382858400 913836) 913836) (num-test (gcd 57267105834722825210001789897760395576000 2958974018) 62956894) (num-test (gcd 521977833444747522001426544601807810543216 1066521690) 4960566) (num-test (gcd 1699559962174727325529414216960251941390400 25883611479) 30924267) (num-test (gcd 10654036597801063717295948399628964800 317449894126222) 19212606314) (num-test (gcd 381902381115592200811990304316262139150724960 4640335440216) 4640335440216) (num-test (gcd 425968526187959807410151867411382902838703889232 1882826315615025) 4430179566153) (num-test (gcd 174609167728518272531601927200939868792000 1712923655178450) 6189150) (num-test (gcd 3325168366561555458817274989681612518000 1699726139891780) 130748164607060) (num-test (gcd 11429650426242566426919762928176000 7414967839104) 5416338816) (num-test (gcd 2104794191230056678355480848036599377844400 -16946684823025584) 182222417451888) (num-test (gcd 11894522530167763519415142641640874994880 7) 7) (num-test (gcd 5906329981690378696996009087718418780000 185) 185) (num-test (gcd 3056294774178096513474941936265025440000 658) 658) (num-test (gcd 10491907660880423349353457742257185280 123369) 123369) (num-test (gcd 673239479595593149777212259021965839229225628776 15470) 3094) (num-test (gcd 1506608574369860432616005754109397877696 1474070) 294814) (num-test (gcd 4849814041048623250005708880379694793905000 2172220582) 2172220582) (num-test (gcd 21154344928580705924176101470087564940000 5023204186) 5023204186) (num-test (gcd 346448039376394135288065831861806112294000 776147372) 25037012) (num-test (gcd 2339009760844587560470606952218133142645504 194201967414) 5248701822) (num-test (gcd 2242982161480922111384667548175169152 21419749763490) 2316901002) (num-test (gcd 4717315265246821759830981157482117120 45609714193992) 26227552728) (num-test (gcd 16628111321698075419789804224660024289936 4643626415880804) 1653124391556) (num-test (gcd 115557531507210992033160068979962880 88406536976058378) 36546728803662) (num-test (gcd 21059511907771200155093927745003762840000 180298981648603620) 191197223381340) (num-test (gcd 2124921015128697258800067298086064536000 2282525112298516782924) 15103625661372) (num-test (gcd 16015671538624533047089928322348864000 49817926936366875) 69075001125) (num-test (gcd 166517667014186289390514558017250969134523800 -43413708621878528404068) 1188862957578074004) (num-test (gcd -2780796292789128359666429021610464935722000 47) 47) (num-test (gcd 21297913114430245153455383503409684916193317960 58) 58) (num-test (gcd 1516745257039775143654568869485529015398000 6293) 6293) (num-test (gcd 8447692776411453120390905608381515479808 2030) 14) (num-test (gcd 958876033949638283967045624731391031146081240 9834415) 166685) (num-test (gcd 4731349833403602529573388098680617532624192 14868) 14868) (num-test (gcd 6375001358038970462026761077388061675464000 430513678) 430513678) (num-test (gcd 254088526608579040642428151389718385042344800 4799428101) 255411) (num-test (gcd 21140490542258031885408065086507444825621023648 164778747198) 13189686) (num-test (gcd 34214837305812460226811046733375808000 4312787868) 746028) (num-test (gcd 11450197571956515037245443769386989035470896800 75585518430279) 5814270648483) (num-test (gcd 1211397915863796187148880114197307052796506376580 538601201880) 11708721780) (num-test (gcd 5454139401260819402160859765169199667337088 30452838731872) 48414687968) (num-test (gcd 744935981632690384026127091216926530879171660 1032747922358460) 60868033380) (num-test (gcd 324574326062026951443376280715122947502400 103751223626207988025) 3334229637375325) (num-test (gcd 15272163751269260921486082393684080908800 6484309049057400) 341279423634600) (num-test (gcd 386527546655781220813671331401971490218262720 3481571963427119100) 1915440648660) (num-test (gcd 3189682029126430413458911948222943640000 -6724598925622907976570) 829921474949490) (num-test (gcd -709403542855323660533377490060722241678400 7) 7) (num-test (gcd 139803787314578422635552652090095842837312147438904 123) 123) (num-test (gcd 171985399350431759069945935900956183322827030835560 18241) 18241) (num-test (gcd 33090522521924986387051477884789600000 26187) 609) (num-test (gcd 1733723010009930088165729903139785699319986530 372945) 7935) (num-test (gcd 56408303994570817306318494803635460247582000 5761730) 10810) (num-test (gcd 25845509336769185412951159262424903513866295760 64371378271) 64371378271) (num-test (gcd 624970361450506104794172455132584603069611058500 108222780) 108222780) (num-test (gcd 82823962548382643645255524843049561752323600 135325929794) 12302357254) (num-test (gcd 170620453449723034746079844571491973300000 9460614789626) 230746702186) (num-test (gcd 125144597811313015929871740675462711600000 12764411911636) 12726233212) (num-test (gcd 257193319319332344553297882967977761077115600 6510126541380) 158783574180) (num-test (gcd 879624546681838385457288074812140664728758550 10045784120501316) 80757786714) (num-test (gcd 18300938860777100857669855248554588369659200 118088077425391892) 1433647093268) (num-test (gcd 8394780474625841647581984803260010511075000 746584618179400) 11198041400) (num-test (gcd 146802334713757872619395774222116859916800 718775571956687400) 854667743111400) (num-test (gcd 240155883351717999820072393833707008014911556000 -1350921510529331832) 10157304590446104) (num-test (gcd -918942437243241528855354123800826649596480 -74343962238703160850) 3476056267530) (num-test (gcd 1361069299753299783990135442290762165844800 8281085446358585640) 8546011812547560) (test-end "gcd") ;;; -------------------------------------------------------------------------------- ;;; lcm ;;; -------------------------------------------------------------------------------- (test-begin "lcm") (num-test (lcm (* 512 500057) (* 128 500057) (* 2048 500057)) 1024116736) (num-test (lcm -1 -1) 1) (num-test (lcm -1 -10) 10) (num-test (lcm -1 -1234) 1234) (num-test (lcm -1 -1234000000) 1234000000) (num-test (lcm -1 -2) 2) (num-test (lcm -1 -3) 3) (num-test (lcm -1 -362880) 362880) (num-test (lcm -1 -500029) 500029) (num-test (lcm -1 0) 0) (num-test (lcm -1 1) 1) (num-test (lcm -1 10) 10) (num-test (lcm -1 1234) 1234) (num-test (lcm -1 1234000000) 1234000000) (num-test (lcm -1 2) 2) (num-test (lcm -1 3) 3) (num-test (lcm -1 362880) 362880) (num-test (lcm -1 500029) 500029) (num-test (lcm -1) 1) (num-test (lcm -10 -1) 10) (num-test (lcm -10 -10) 10) (num-test (lcm -10 -1234) 6170) (num-test (lcm -10 -1234000000) 1234000000) (num-test (lcm -10 -2) 10) (num-test (lcm -10 -3) 30) (num-test (lcm -10 -362880) 362880) (num-test (lcm -10 -500029) 5000290) (num-test (lcm -10 0) 0) (num-test (lcm -10 1) 10) (num-test (lcm -10 10) 10) (num-test (lcm -10 1234) 6170) (num-test (lcm -10 1234000000) 1234000000) (num-test (lcm -10 2) 10) (num-test (lcm -10 3) 30) (num-test (lcm -10 362880) 362880) (num-test (lcm -10 500029) 5000290) (num-test (lcm -10) 10) (num-test (lcm -1234 -1) 1234) (num-test (lcm -1234 -10) 6170) (num-test (lcm -1234 -1234) 1234) (num-test (lcm -1234 -1234000000) 1234000000) (num-test (lcm -1234 -2) 1234) (num-test (lcm -1234 -3) 3702) (num-test (lcm -1234 -362880) 223896960) (num-test (lcm -1234 -500029) 617035786) (num-test (lcm -1234 0) 0) (num-test (lcm -1234 1) 1234) (num-test (lcm -1234 10) 6170) (num-test (lcm -1234 1234) 1234) (num-test (lcm -1234 1234000000) 1234000000) (num-test (lcm -1234 2) 1234) (num-test (lcm -1234 3) 3702) (num-test (lcm -1234 362880) 223896960) (num-test (lcm -1234 500029) 617035786) (num-test (lcm -1234) 1234) (num-test (lcm -1234000000 -1) 1234000000) (num-test (lcm -1234000000 -10) 1234000000) (num-test (lcm -1234000000 -1234) 1234000000) (num-test (lcm -1234000000 -1234000000) 1234000000) (num-test (lcm -1234000000 -2) 1234000000) (num-test (lcm -1234000000 -3) 3702000000) (num-test (lcm -1234000000 -362880) 699678000000) (num-test (lcm -1234000000 -500029) 617035786000000) (num-test (lcm -1234000000 0) 0) (num-test (lcm -1234000000 1) 1234000000) (num-test (lcm -1234000000 10) 1234000000) (num-test (lcm -1234000000 1234) 1234000000) (num-test (lcm -1234000000 1234000000) 1234000000) (num-test (lcm -1234000000 2) 1234000000) (num-test (lcm -1234000000 3) 3702000000) (num-test (lcm -1234000000 362880) 699678000000) (num-test (lcm -1234000000 500029) 617035786000000) (num-test (lcm -1234000000) 1234000000) (num-test (lcm -2 -1) 2) (num-test (lcm -2 -10) 10) (num-test (lcm -2 -1234) 1234) (num-test (lcm -2 -1234000000) 1234000000) (num-test (lcm -2 -2) 2) (num-test (lcm -2 -3) 6) (num-test (lcm -2 -362880) 362880) (num-test (lcm -2 -500029) 1000058) (num-test (lcm -2 0) 0) (num-test (lcm -2 1) 2) (num-test (lcm -2 10) 10) (num-test (lcm -2 1234) 1234) (num-test (lcm -2 1234000000) 1234000000) (num-test (lcm -2 2) 2) (num-test (lcm -2 3) 6) (num-test (lcm -2 362880) 362880) (num-test (lcm -2 500029) 1000058) (num-test (lcm -2) 2) (num-test (lcm -3 -1) 3) (num-test (lcm -3 -10) 30) (num-test (lcm -3 -1234) 3702) (num-test (lcm -3 -1234000000) 3702000000) (num-test (lcm -3 -2) 6) (num-test (lcm -3 -3) 3) (num-test (lcm -3 -362880) 362880) (num-test (lcm -3 -500029) 1500087) (num-test (lcm -3 0) 0) (num-test (lcm -3 1) 3) (num-test (lcm -3 10) 30) (num-test (lcm -3 1234) 3702) (num-test (lcm -3 1234000000) 3702000000) (num-test (lcm -3 2) 6) (num-test (lcm -3 3) 3) (num-test (lcm -3 362880) 362880) (num-test (lcm -3 500029) 1500087) (num-test (lcm -3) 3) (num-test (lcm -362880 -1) 362880) (num-test (lcm -362880 -10) 362880) (num-test (lcm -362880 -1234) 223896960) (num-test (lcm -362880 -1234000000) 699678000000) (num-test (lcm -362880 -2) 362880) (num-test (lcm -362880 -3) 362880) (num-test (lcm -362880 -362880) 362880) (num-test (lcm -362880 -500029) 181450523520) (num-test (lcm -362880 0) 0) (num-test (lcm -362880 1) 362880) (num-test (lcm -362880 10) 362880) (num-test (lcm -362880 1234) 223896960) (num-test (lcm -362880 1234000000) 699678000000) (num-test (lcm -362880 2) 362880) (num-test (lcm -362880 3) 362880) (num-test (lcm -362880 362880) 362880) (num-test (lcm -362880 500029) 181450523520) (num-test (lcm -362880) 362880) (num-test (lcm -500029 -1) 500029) (num-test (lcm -500029 -10) 5000290) (num-test (lcm -500029 -1234) 617035786) (num-test (lcm -500029 -1234000000) 617035786000000) (num-test (lcm -500029 -2) 1000058) (num-test (lcm -500029 -3) 1500087) (num-test (lcm -500029 -362880) 181450523520) (num-test (lcm -500029 -500029) 500029) (num-test (lcm -500029 0) 0) (num-test (lcm -500029 1) 500029) (num-test (lcm -500029 10) 5000290) (num-test (lcm -500029 1234) 617035786) (num-test (lcm -500029 1234000000) 617035786000000) (num-test (lcm -500029 2) 1000058) (num-test (lcm -500029 3) 1500087) (num-test (lcm -500029 362880) 181450523520) (num-test (lcm -500029 500029) 500029) (num-test (lcm -500029) 500029) (num-test (lcm 0 -1) 0) (num-test (lcm 0 -10) 0) (num-test (lcm 0 -1234) 0) (num-test (lcm 0 -1234000000) 0) (num-test (lcm 0 -2) 0) (num-test (lcm 0 -3) 0) (num-test (lcm 0 -362880) 0) (num-test (lcm 0 -500029) 0) (num-test (lcm 0 1) 0) (num-test (lcm 0 10 10 1234) 0) (num-test (lcm 0 10) 0) (num-test (lcm 0 1234 -1234 10) 0) (num-test (lcm 0 1234) 0) (num-test (lcm 0 1234000000) 0) (num-test (lcm 0 2) 0) (num-test (lcm 0 3) 0) (num-test (lcm 0 362880) 0) (num-test (lcm 0 500029) 0) (num-test (lcm 0) 0) (num-test (lcm 1 -1) 1) (num-test (lcm 1 -10) 10) (num-test (lcm 1 -1234) 1234) (num-test (lcm 1 -1234000000) 1234000000) (num-test (lcm 1 -2) 2) (num-test (lcm 1 -3) 3) (num-test (lcm 1 -362880) 362880) (num-test (lcm 1 -500029) 500029) (num-test (lcm 1 0 -1 1) 0) (num-test (lcm 1 0) 0) (num-test (lcm 1 1 2 -10) 10) (num-test (lcm 1 1) 1) (num-test (lcm 1 10) 10) (num-test (lcm 1 1234) 1234) (num-test (lcm 1 1234000000) 1234000000) (num-test (lcm 1 2) 2) (num-test (lcm 1 3) 3) (num-test (lcm 1 362880) 362880) (num-test (lcm 1 500029) 500029) (num-test (lcm 1) 1) (num-test (lcm 10 -1) 10) (num-test (lcm 10 -10) 10) (num-test (lcm 10 -1234) 6170) (num-test (lcm 10 -1234000000) 1234000000) (num-test (lcm 10 -2) 10) (num-test (lcm 10 -3) 30) (num-test (lcm 10 -362880) 362880) (num-test (lcm 10 -500029) 5000290) (num-test (lcm 10 0 10 10) 0) (num-test (lcm 10 0) 0) (num-test (lcm 10 1 -1234 3) 18510) (num-test (lcm 10 1) 10) (num-test (lcm 10 10) 10) (num-test (lcm 10 1234) 6170) (num-test (lcm 10 1234000000) 1234000000) (num-test (lcm 10 2) 10) (num-test (lcm 10 3) 30) (num-test (lcm 10 362880) 362880) (num-test (lcm 10 500029) 5000290) (num-test (lcm 10) 10) (num-test (lcm 1024 9765625) 10000000000) (num-test (lcm 1234 -1) 1234) (num-test (lcm 1234 -10) 6170) (num-test (lcm 1234 -1234) 1234) (num-test (lcm 1234 -1234000000) 1234000000) (num-test (lcm 1234 -2) 1234) (num-test (lcm 1234 -3) 3702) (num-test (lcm 1234 -362880) 223896960) (num-test (lcm 1234 -500029) 617035786) (num-test (lcm 1234 0 -1234 1234) 0) (num-test (lcm 1234 0) 0) (num-test (lcm 1234 1) 1234) (num-test (lcm 1234 10 0 1) 0) (num-test (lcm 1234 10) 6170) (num-test (lcm 1234 1234 1 -10) 6170) (num-test (lcm 1234 1234) 1234) (num-test (lcm 1234 1234000000) 1234000000) (num-test (lcm 1234 2) 1234) (num-test (lcm 1234 3) 3702) (num-test (lcm 1234 362880) 223896960) (num-test (lcm 1234 500029) 617035786) (num-test (lcm 1234) 1234) (num-test (lcm 1234000000 -1) 1234000000) (num-test (lcm 1234000000 -10) 1234000000) (num-test (lcm 1234000000 -1234) 1234000000) (num-test (lcm 1234000000 -1234000000) 1234000000) (num-test (lcm 1234000000 -2) 1234000000) (num-test (lcm 1234000000 -3) 3702000000) (num-test (lcm 1234000000 -362880) 699678000000) (num-test (lcm 1234000000 -500029) 617035786000000) (num-test (lcm 1234000000 0) 0) (num-test (lcm 1234000000 1) 1234000000) (num-test (lcm 1234000000 10) 1234000000) (num-test (lcm 1234000000 1234) 1234000000) (num-test (lcm 1234000000 1234000000) 1234000000) (num-test (lcm 1234000000 2) 1234000000) (num-test (lcm 1234000000 3) 3702000000) (num-test (lcm 1234000000 362880) 699678000000) (num-test (lcm 1234000000 500029) 617035786000000) (num-test (lcm 1234000000) 1234000000) (num-test (lcm 131072 762939453125) 100000000000000000) (num-test (lcm 14 35) 70) (num-test (lcm 1741 2063 3137 3797 3251 3 19) 7927658615618708709) (num-test (lcm 2 -1) 2) (num-test (lcm 2 -10) 10) (num-test (lcm 2 -1234) 1234) (num-test (lcm 2 -1234000000) 1234000000) (num-test (lcm 2 -2) 2) (num-test (lcm 2 -3) 6) (num-test (lcm 2 -362880) 362880) (num-test (lcm 2 -500029) 1000058) (num-test (lcm 2 0 2 -2) 0) (num-test (lcm 2 0) 0) (num-test (lcm 2 1 -3 -1) 6) (num-test (lcm 2 1) 2) (num-test (lcm 2 10) 10) (num-test (lcm 2 1234) 1234) (num-test (lcm 2 1234000000) 1234000000) (num-test (lcm 2 2 10 10) 10) (num-test (lcm 2 2) 2) (num-test (lcm 2 3) 6) (num-test (lcm 2 362880) 362880) (num-test (lcm 2 500029) 1000058) (num-test (lcm 2) 2) (num-test (lcm 262144 3814697265625) 1000000000000000000) (num-test (lcm 3 -1) 3) (num-test (lcm 3 -10) 30) (num-test (lcm 3 -1234) 3702) (num-test (lcm 3 -1234000000) 3702000000) (num-test (lcm 3 -2) 6) (num-test (lcm 3 -3) 3) (num-test (lcm 3 -362880) 362880) (num-test (lcm 3 -500029) 1500087) (num-test (lcm 3 0 -3 -3) 0) (num-test (lcm 3 0) 0) (num-test (lcm 3 1 10 2) 30) (num-test (lcm 3 1) 3) (num-test (lcm 3 10) 30) (num-test (lcm 3 1234) 3702) (num-test (lcm 3 1234000000) 3702000000) (num-test (lcm 3 2 -1234 1) 3702) (num-test (lcm 3 2) 6) (num-test (lcm 3 3) 3) (num-test (lcm 3 362880) 362880) (num-test (lcm 3 500029) 1500087) (num-test (lcm 3) 3) (num-test (lcm 32 -36) 288 ) (num-test (lcm 323 28747 27113) 41021969) (num-test (lcm 362880 -1) 362880) (num-test (lcm 362880 -10) 362880) (num-test (lcm 362880 -1234) 223896960) (num-test (lcm 362880 -1234000000) 699678000000) (num-test (lcm 362880 -2) 362880) (num-test (lcm 362880 -3) 362880) (num-test (lcm 362880 -362880) 362880) (num-test (lcm 362880 -500029) 181450523520) (num-test (lcm 362880 0) 0) (num-test (lcm 362880 1) 362880) (num-test (lcm 362880 10) 362880) (num-test (lcm 362880 1234) 223896960) (num-test (lcm 362880 1234000000) 699678000000) (num-test (lcm 362880 2) 362880) (num-test (lcm 362880 362880) 362880) (num-test (lcm 362880 500029) 181450523520) (num-test (lcm 362880) 362880) (num-test (lcm 500029 -1) 500029) (num-test (lcm 500029 -10) 5000290) (num-test (lcm 500029 -1234) 617035786) (num-test (lcm 500029 -1234000000) 617035786000000) (num-test (lcm 500029 -2) 1000058) (num-test (lcm 500029 -3) 1500087) (num-test (lcm 500029 -362880) 181450523520) (num-test (lcm 500029 -500029) 500029) (num-test (lcm 500029 0) 0) (num-test (lcm 500029 1) 500029) (num-test (lcm 500029 10) 5000290) (num-test (lcm 500029 1234) 617035786) (num-test (lcm 500029 1234000000) 617035786000000) (num-test (lcm 500029 2) 1000058) (num-test (lcm 500029 3) 1500087) (num-test (lcm 500029 362880) 181450523520) (num-test (lcm 500029 500029) 500029) (num-test (lcm 500029) 500029) (num-test (lcm 524288 -17500000000001) 9175040000000524288) (num-test (lcm 524288 17500000000001) 9175040000000524288) (num-test (lcm) 1 ) (num-test (lcm) 1) (num-test (lcm 2755 13) 35815) (num-test (lcm 56 2) 56) (num-test (lcm 148665 2) 297330) (num-test (lcm 71862 203) 71862) (num-test (lcm 21568911 41) 21568911) (num-test (lcm 15295874 111) 45887622) (num-test (lcm 20430054 41) 20430054) (num-test (lcm 248255254 767) 14647059986) (num-test (lcm 510104442 5453) 2781599522226) (num-test (lcm 242162410 41) 9928658810) (num-test (lcm 660070972 74) 660070972) (num-test (lcm 6542405452 117) 765461437884) (num-test (lcm 629448534 2) 629448534) (num-test (lcm 163873565922 155) 819367829610) (num-test (lcm 1563464979842 442) 20325044737946) (num-test (lcm 3712337724 576173) 92997772323924) (num-test (lcm 4380921044390 5) 4380921044390) (num-test (lcm 4097970629150 86) 176212737053450) (num-test (lcm 2090198664 1118) 1168421053176) (num-test (lcm 5275411661289 31857) 8002799490175413) (num-test (lcm 38602581835881 19) 733449054881739) (num-test (lcm 82578867500655 319) 908367542507205) (num-test (lcm 363169800 20) 363169800) (num-test (lcm 2033404107084 23374) 23764393799490708) (num-test (lcm 7438317458260 31213) 17859400217282260) (num-test (lcm 390609000 11) 4296699000) (num-test (lcm 406117800 57) 7716238200) (num-test (lcm 1008217762344 4403) 119977913718936) (num-test (lcm 136581511784536 67022) 147644614239083416) (num-test (lcm 43293168048 1344610) 29106213344510640) (num-test (lcm 608503422693864 47) 608503422693864) (num-test (lcm 6945109296864 779) 284749481171424) (num-test (lcm 1346702251365156 435) 6733511256825780) (num-test (lcm 1388225063690465 644) 127716705859522780) (num-test (lcm 1200780158492850 91686) 311002061049648150) (num-test (lcm 1551193257090906 2656731) 2356262557521086214) (num-test (lcm 386512944051107445 17) 386512944051107445) (num-test (lcm 1111364125679340 6) 1111364125679340) (num-test (lcm 15858537083857314 21793) 15858537083857314) (num-test (lcm 44179338013272 280645) 302407568700846840) (num-test (lcm 64149298745840 43808357) 79994175536062480) (num-test (lcm 4412914630225794 515823) 48542060932483734) (num-test (lcm 169216424701305960 17) 2876679219922201320) (num-test (lcm 178335507754891305 817) 178335507754891305) (let () (define (flcm n) (if (<= n 1) 1 (lcm n (flcm (- n 1))))) (num-test (flcm 9) 2520) (num-test (flcm 40) 5342931457063200) (num-test (flcm 100) 69720375229712477164533808935312303556800)) (num-test (let ((n 1)) (do ((i 2 (+ i 1))) ((= i 100)) (set! n (lcm n i))) n) 69720375229712477164533808935312303556800) (num-test (lcm -9223372036854775808 -9223372036854775808) 9223372036854775808) (num-test (lcm -9223372036854775808 9223372036854775807 -9223372036854775808) 85070591730234615856620279821087277056) (num-test (lcm 132120577 33292289 260046847) 1143841133453061178785791) (num-test (lcm 132120577 33292289) 4398596432330753) (num-test (lcm 21 2432902008176640001) 51090942171709440021) (num-test (lcm 2353913150770005286438421033702874906038383291674012942337 9641628265553941653251772554046975615133217962696757011808257) 22695555569123220026272727097682721551725929819788097280747860983024240452040931523149698041303750665450606153441476609) (num-test (lcm 2432902008176640001 21) 51090942171709440021) (num-test (lcm 557057 23068673 167772161) 2155967190204955525121) (num-test (lcm 9223372036854775807 -9223372036854775808) 85070591730234615856620279821087277056) (num-test (lcm 524288 19073486328125) 10000000000000000000) (num-test (lcm 2147483648 4656612873077392578125) 10000000000000000000000000000000) (num-test (lcm 460683358924445799142 518) 460683358924445799142) (num-test (lcm 113021475230160 74635) 1243236227531760) (num-test (lcm 74228340534140364 363909) 16107549895908458988) (num-test (lcm 69242022961311060 48305942) 55324376346087536940) (num-test (lcm 286967952870300 2273388) 4181983977178881900) (num-test (lcm 302822258393413362492399 29) 302822258393413362492399) (num-test (lcm 10491072879382200 133) 10491072879382200) (num-test (lcm 167206737423420464 609) 14546986155837580368) (num-test (lcm 72212583812867784 4888799) 7511336330463068288328) (num-test (lcm 4170116471639397292390 1798025) 20850582358196986461950) (num-test (lcm 83910330283522050 35224) 12418728881961263400) (num-test (lcm 275373383775647594346 66884092) 175688218848863165192748) (num-test (lcm 14656657495570695990 37) 542296327336115751630) (num-test (lcm 95470974177676509874110 1219) 95470974177676509874110) (num-test (lcm 619506317623001424 5957) 527199876297174211824) (num-test (lcm 11268171656665155960 9858) 597213097803253265880) (num-test (lcm 6172860073826160 5167394) 10376577784101774960) (num-test (lcm 26457493095663264 1491412) 9974474897065050528) (num-test (lcm 8481384175941103284 313836405) 52191512141200849929103020) (num-test (lcm 60356595775749199080 176098815946) 6192647083187643574807080) (num-test (lcm 611492274956002440 37) 611492274956002440) (num-test (lcm 164614611843685080 1711) 4773823743466867320) (num-test (lcm 93177516542679418720 62197) 156631405308244102868320) (num-test (lcm 938959746797519770440 127558) 938959746797519770440) (num-test (lcm 137670522526899326250 200) 550682090107597305000) (num-test (lcm 852063402206742880 41643478) 607521205773407673440) (num-test (lcm 55947291202307909360 188546228) 1657550396450776430608720) (num-test (lcm 12877971214039423262680 9832253830) 1040166612929178256349926280) (num-test (lcm 192158415774146059920 53) 192158415774146059920) (num-test (lcm 902814024155808960 1829) 53266027425192728640) (num-test (lcm 1265864304573235487120 4921) 24051421786891474255280) (num-test (lcm 14172662463567665400 95817) 23824245601257245537400) (num-test (lcm 32171996211745702482324 2368555) 294212905356414449200852980) (num-test (lcm 971324258606045826300 4576748) 18836891347147046709435900) (num-test (lcm 2400649320046378377000 1704690) 4400390203645011565041000) (num-test (lcm 953233796456393760 18342152493) 30445334225020760300640) (num-test (lcm 28906333140964843080 236206740) 8296117611456909963960) (num-test (lcm 775403093708557121609032 41) 775403093708557121609032) (num-test (lcm 12587009808135760402860 2491) 667111519831195301351580) (num-test (lcm 510685807527370566909720 76) 9703030343020040771284680) (num-test (lcm 9842598153710524682146590 10089) 29527794461131574046439770) (num-test (lcm 44936631038618189620242012 30740) 224683155193090948101210060) (num-test (lcm 934589372977008750144 373650) 1238330919194536593940800) (num-test (lcm 33027125273398900134069150 840577803) 33027125273398900134069150) (num-test (lcm 4428219127938822420288 1695783782) 600648070732749811910284608) (num-test (lcm 29316428815807608915440 560764380) 107210180179408425803764080) (num-test (lcm 1364397376360544429904 19) 1364397376360544429904) (num-test (lcm 4991450791697293128313385277 329) 234598187209772777030729108019) (num-test (lcm 75448279792981695149550 3009) 75674624632360640234998650) (num-test (lcm 181031604499464166188731133 3364) 608990317536197455058891531412) (num-test (lcm 405831142402606479845286 2746214) 6899129420844310157369862) (num-test (lcm 89170366469003867207160 25337230) 196977339530029542660616440) (num-test (lcm 13523725766340619200 1490114045) 704734873409776007131200) (num-test (lcm 104705939487154940255412 192200052) 768227478017255796653957844) (num-test (lcm 7232591421499800642000 16584679460) 15338901584491041700955526000) (num-test (lcm 14043796716396386984750160 33382708236) 1306073094624863989581764880) (num-test (lcm 13894638105872256412416 23) 13894638105872256412416) (num-test (lcm 147611447155643499428400 118) 8709075382182966466275600) (num-test (lcm 13356594697070649024 4558) 574333571974037908032) (num-test (lcm 15089731174706036171537760 90) 45269193524118108514613280) (num-test (lcm 307230141273924828960 1971507) 383115986168584261713120) (num-test (lcm 2582563944548247741930009096 22873474) 33573331279127220645090118248) (num-test (lcm 1074296602920111687342072 146235518) 7220347468226070650626065912) (num-test (lcm 774058642832724262993980 407557010) 124623441496068606342030780) (num-test (lcm 291091930213008490369569480 13412544348) 147286985941108248965685135059880) (num-test (lcm 2089068565149831833568 7302038455228) 223766401218893937188969184) (num-test (lcm 1064437567441124038217970656 5) 5322187837205620191089853280) (num-test (lcm 142557826750459447787460 1333) 6129986550269756254860780) (num-test (lcm 311779340580033594160200 23693) 311779340580033594160200) (num-test (lcm 29314187023691666530559664 110143) 29314187023691666530559664) (num-test (lcm 222003853016244177637944900 857463) 222003853016244177637944900) (num-test (lcm 6247776111945111006243552 77976501) 193681059470298441193550112) (num-test (lcm 1140058514761397155259712 5530338) 12540643662375368707856832) (num-test (lcm 580962736822969724865449808 55686036) 21495621262449879820021642896) (num-test (lcm 4100502596989506786787500 45333475410) 329750117342105167273090387500) (num-test (lcm 1497378750311599979536944 262630276090) 1089215763657912499114866119760) (num-test (lcm 105637634198318524045536 2633013240) 1853412292009498504378929120) (num-test (lcm 11415822547029425161364106595632 7) 79910757829205976129548746169424) (num-test (lcm 198305933339312916107438448 177) 11700050067019462050338868432) (num-test (lcm 3127415425979879537134790928 3335) 15637077129899397685673954640) (num-test (lcm 589703503861221139260034914750 13209) 21819029642865182152621291845750) (num-test (lcm 3108579252052448504121792 14322) 96365956813625903627775552) (num-test (lcm 636976201153021006473464400 66264077) 12102547821907399122995823600) (num-test (lcm 9544425315508129998909285900 1488396) 66810977208556909992365001300) (num-test (lcm 458100280193857502802977376 260747103934) 19226926860016393250143763448096) (num-test (lcm 114208186302155358124900650 22076867505) 397558696517802801632779162650) (num-test (lcm 90107067439719108194114160 28566806069714) 755187332212285845774870774960) (num-test (lcm 2976572787365723002218245484 110104803958578) 110463592711929346335321308156724) (num-test (lcm 53453375725613238735360 17) 908707387335425058501120) (num-test (lcm 888822833524306124874229800 106) 888822833524306124874229800) (num-test (lcm 21275338550698297089687698855820 3021) 21275338550698297089687698855820) (num-test (lcm 417525245705449941528380320750068 5828) 417525245705449941528380320750068) (num-test (lcm 1954871230146370370001829871352 22765249) 1954871230146370370001829871352) (num-test (lcm 903057827710908645847577520 648545995) 1126113111155503081371929167440) (num-test (lcm 6002846634833433581621040 28493572159) 6137376430766685661618749127440) (num-test (lcm 26428903214964558277189300080 100428856) 766438193233972190038489702320) (num-test (lcm 470486531607553676511206181180 28495896) 4523257514875021045978736225864520) (num-test (lcm 483599554429365539310928369206620 5577334078910) 25630776384756373583479203567950860) (num-test (lcm 134511400157705323668887400 1285071093558916) 508298000951744289230204144827800) (num-test (lcm 25897125642468049125349982599216 1183846707540) 1165370653911062210640749216964720) (num-test (lcm 1118034209930460291955200 3) 1118034209930460291955200) (num-test (lcm 16297594064835666104344589410644 413) 16297594064835666104344589410644) (num-test (lcm 536762539932642345554192060100 1378) 536762539932642345554192060100) (num-test (lcm 933250179448203335817687635834340 58029) 784863400915939005422675301736679940) (num-test (lcm 65573457048202714607131200 486115) 8721269787410961042748449600) (num-test (lcm 85664559165674439863772868932 322014) 85664559165674439863772868932) (num-test (lcm 7232817686074320060728552759760 11307940) 7232817686074320060728552759760) (num-test (lcm 78400098291720425971762131120 5646921093) 78400098291720425971762131120) (num-test (lcm 345445746644065669842240 19727989065) 3106593599570082568891264320) (num-test (lcm 627854758484491743169777558200 750371721805653) 3013801413922642432418609934436637400) (num-test (lcm 788233263079483492974876830792850 7170146100) 963221047483128828415299487228862700) (num-test (lcm 18378856389802641496737518160 6247594493140) 139293352578314219903773650134640) (num-test (lcm 9620902642431357480148667659080 59) 9620902642431357480148667659080) (num-test (lcm 16008524600631853118144316000 629) 10069361973797435611312774764000) (num-test (lcm 4342138447708715023205684275423920 53041) 134606291878970165719376212538141520) (num-test (lcm 2431833161592653384508687244500 47541) 2431833161592653384508687244500) (num-test (lcm 39424620224103957589082132160 1671734) 39424620224103957589082132160) (num-test (lcm 652830233576052788654372406432 552231327) 28071700043770269912138013476576) (num-test (lcm 6892963340916411083970414000 3662431431) 323969277023071320946609458000) (num-test (lcm 29102758215190063506219566460000 10565720) 29102758215190063506219566460000) (num-test (lcm 21253900104556838003127171970777418412 1182797770) 400954825472464748928994099228715998342380) (num-test (lcm 3964268932242030284914943132662620 21244177854110) 4547016465281608736797439773164025140) (num-test (lcm 6070388091189460078138338240 40809131994181213) 903741167852013248053001382156480) (num-test (lcm 9685989954133695108793384134000 964113514382876) 55084224869158324083707975570058000) (num-test (lcm 56468122001858834917195045500 429400787158167902) 11597366428619765656458601249744500) (num-test (lcm 18843408973202596901221568364900 47) 18843408973202596901221568364900) (num-test (lcm 7800980538292163259967028613764250 6) 7800980538292163259967028613764250) (num-test (lcm 270433907726619219545089642715200 3422) 15955600555870533953160288920196800) (num-test (lcm 45771666919597903071546708768 2342359) 49112998604728549995769618508064) (num-test (lcm 47198294949461301503537593835384892 314502) 2501509632321448979687492473275399276) (num-test (lcm 3165335901519110207943908102359110 14953473) 228660700189839002311659977406319747290) (num-test (lcm 189219585097956261544520863361400 35605794) 189219585097956261544520863361400) (num-test (lcm 38532137569034426600955256933810890813 1341358608707) 8030213065799481606918878410776991078101639) (num-test (lcm 1396277868664090735481380981225896 312520860) 6981389343320453677406904906129480) (num-test (lcm 864038349500762576564773759109700 714136202724) 37153649028532790792285271641717100) (num-test (lcm 12514185871591242579049167322464 10706997440178) 667894614152696207686433109167226144) (num-test (lcm 1981802660405609330969478067056636 33312289752) 4466983196554243432005203563145657544) (num-test (lcm 979313401024175219420658240 125278417383795) 79100122714123656647825986703040) (num-test (lcm 4074026154111369481048033354344 29) 4074026154111369481048033354344) (num-test (lcm 599666571180604695702511920885005100 129) 599666571180604695702511920885005100) (num-test (lcm 5703263639326551702474610108800 1978) 5703263639326551702474610108800) (num-test (lcm 134137932950214683609064669163440 190619) 178805864622636173250883203994865520) (num-test (lcm 344735091370772631136645455600 1048985) 344735091370772631136645455600) (num-test (lcm 6759508339299085316106145385400 4969610) 209544758518271644799290506947400) (num-test (lcm 700334422308861928135313594400 228529587) 370476909401387959983580891437600) (num-test (lcm 10277417891211405957191810814198480 2516552038) 113051596803325465529109918956183280) (num-test (lcm 490099971577877358878082782880 9282588354) 259262884964697122846505792143520) (num-test (lcm 1954558750269048828645390249600 5575829490) 33227498754573830086971634243200) (num-test (lcm 1360588454560018295496656378989200 7868178296420) 719751292462249678317731224485286800) (num-test (lcm 4337552841738910859248770564912480 17722936528737830) 227361507305428490509242806701017464160) (num-test (lcm 215913068853045803981566931862756 7009479781500) 516383093295665670947415013416263818500) (num-test (lcm 44890707654126305940250882318870941900 18329973480720) 538688491849515671283010587826451302800) (num-test (lcm 28579720891831355496720656680837200 3) 28579720891831355496720656680837200) (num-test (lcm 29332703209780553199747293473184160 1711) 1730629489377052638785090314917865440) (num-test (lcm 3648979393315349438003046604440000 186) 3648979393315349438003046604440000) (num-test (lcm 1159760236369472473822068077011807878780 25714) 1159760236369472473822068077011807878780) (num-test (lcm 158186359726371025615685433600 31395) 1107304518084597179309798035200) (num-test (lcm 331091450443070201468559735703944 28424) 331091450443070201468559735703944) (num-test (lcm 9734443639363161342241553023288200 1961348207) 301767752820258001609488143721934200) (num-test (lcm 701896612128009033011419603540080 51300) 10528449181920135495171294053101200) (num-test (lcm 86169288128517384618860929451245320 5032162527446) 2406794386717619069789404620502733032920) (num-test (lcm 64828800524794653881296183831741773624 4645294472) 47389853183624891987227510381003236519144) (num-test (lcm 49068907706533938991402184550000 268183371225) 17713875682058751975896188622550000) (num-test (lcm 1708602980304476478496020543612288 4083128544) 52966692389438770833376636851980928) (num-test (lcm 17608179287674151740172985536160 980399424528) 188284261123099704557669734338158880) (num-test (lcm 43194437079731225735521919644800 178119261126453036) 95416511509126277649767920495363200) (num-test (lcm 817555977437791699707628651571149344 59) 817555977437791699707628651571149344) (num-test (lcm 19062946261334997559157066059536 533) 247818301397354968269041858773968) (num-test (lcm 6533849124840489114353090499099000 598) 150278529871331249630121081479277000) (num-test (lcm 427663965127849896842400211428345149025 234) 855327930255699793684800422856690298050) (num-test (lcm 352395507261316174741530450071590608 154734) 14448215797713963164402748452935214928) (num-test (lcm 391579493632653867660919800000 9221565) 5598412020466052345948170380600000) (num-test (lcm 2618798923882923048581401148931738000 681876) 34044386010477999631558214936112594000) (num-test (lcm 174712575449141140214591110997980800 233260339838) 323043552005461968256778964235266499200) (num-test (lcm 88598141227372995032227898284800 1929763976) 1101009101032564209265496091985209600) (num-test (lcm 210110141308655567793064872567302676320 720390430628) 322939287191403607697940709135944213503840) (num-test (lcm 668425085137718599277317523827419000 19898594339442) 226544635130131000822866287128160329737000) (num-test (lcm 89533471731097208414073727453200 4173840860670546) 165547389230798738357622322060966800) (num-test (lcm 113987439157802480362236410675251462620 21548296273949445) 2165761343998247126882491802829777789780) (num-test (lcm 48129335993995093308894209644253760 1009442888504820) 572305934304595654536061046879821460160) (num-test (lcm 3497836376962291922989777163497680 138736290091634664) 143411291455453968842580863703404880) (num-test (lcm 11371924962562208722154622794880 3) 11371924962562208722154622794880) (num-test (lcm 9451631862008339290824315653784000 703) 349710378894308553760499679190008000) (num-test (lcm 16869347753325980368094612370435598560 806) 16869347753325980368094612370435598560) (num-test (lcm 4701845646467068759127854100132739552 3198) 2506083729566947648615146235370750181216) (num-test (lcm 1029865193584911347147121232800485280 1005771) 42224472936981365233031970544819896480) (num-test (lcm 10657125216930337802109861408000 2415138) 9069213559607717469595492058208000) (num-test (lcm 14382707743772734802155022983680 247913634) 24608812949595149246487244325076480) (num-test (lcm 60134748581470366378101904574533857248 54828228) 6674957092543210667969311407773258154528) (num-test (lcm 214830664120540781167218700750596000 505665810) 9237718557183253590190404132275628000) (num-test (lcm 48933004118344447687599112101802800 6263883444) 2887047242982322413568347614006365200) (num-test (lcm 5498670161558110606435630054129739400 262699548132) 1072697071127240891435282017849791951370200) (num-test (lcm 35941673649029587182509620977230062500 25622409466332) 1752120648716543345560161513018988316812500) (num-test (lcm 1592802602494326390643157055239113248 736377633395508) 1221679596113148341623301461368399861216) (num-test (lcm 4043816553144402557587143272522043028314 5011466158645380) 55359848612546871013367991400826769057618660) (num-test (lcm 7171921165220830707276631005512550 1765284492289500) 71719211652208307072766310055125500) (num-test (lcm 2402189359210218692854826119405968750 23) 55250355261835029935661000746337281250) (num-test (lcm 26149068753160488131648964110990162400 1147) 967515543866938060871011672106636008800) (num-test (lcm 556184059176863945810376239306506311552 4089) 556184059176863945810376239306506311552) (num-test (lcm 67871323087036310486238021899264593800 13395) 67871323087036310486238021899264593800) (num-test (lcm 12750401179065252879838440979200 7177173) 12750401179065252879838440979200) (num-test (lcm 278110245000092733617125071646080 17748) 278110245000092733617125071646080) (num-test (lcm 13408203364935178481017292708752000 50619404) 496103524502601603797639830223824000) (num-test (lcm 124271828931784534297423756437875067000 8839796595) 270042684268767793028301822739502520591000) (num-test (lcm 11893442806922081156953529319100769836176 972789007267) 11762614936045938264227040496590661367978064) (num-test (lcm 352581052555284857902053030133344488264100 923561430099) 5993877893439842584334901512266856300489700) (num-test (lcm 6108908012714804315575319947340956346976 31944833628092) 2009830736183170619824280262675174638155104) (num-test (lcm 67475643422116264959949054821520228800 22515435540) 4655819396126022282236484782684895787200) (num-test (lcm 470601888939348535946408832 5135943991060962937) 65492053197870222825732159796881558144) (num-test (lcm 110759232155568113345545635903016614000 30159198663300) 110759232155568113345545635903016614000) (num-test (lcm 146100914712024458707469587112300146320 26868173101560) 380954774790565399517176676594819048626034640) (num-test (lcm 12173192708601511002951184416658091200 466645866900785428350) 3795589313349242529209176349929576178068800) (num-test (lcm 5784684831478746253226687170890240 13) 5784684831478746253226687170890240) (num-test (lcm 35042260655085685815432622412891903767500 667) 35042260655085685815432622412891903767500) (num-test (lcm 2903871349270676921837488659419545120987500 530) 2903871349270676921837488659419545120987500) (num-test (lcm 630123969240840167098426767919876491188000 77691) 1890371907722520501295280303759629473564000) (num-test (lcm 33192703032132982013024959634241667249800 4684718) 1228130012188920334481923506466941688242600) (num-test (lcm 4731525733734729472809717145544850000 90706055) 4731525733734729472809717145544850000) (num-test (lcm 214011009809686092216200126896120006823232 50400042) 41806836755312368428342478589030147212911547968) (num-test (lcm 5854250735296111435541950856160000 24357777002) 174403983655206455776230257955862560000) (num-test (lcm 35348208247612761916374738259136697649608 156806713508) 644786666644704390116591600584912501826499528) (num-test (lcm 612558317420289618714916924536521515286100 2377007388) 11638608030985502755583421566193908790435900) (num-test (lcm 181857299802925368992522029882739454720 21606337755618) 181857299802925368992522029882739454720) (num-test (lcm 4731635341196946327443020710970699860000 58092526675092) 354167636923932629555437543236867855220860000) (num-test (lcm 22081740554432638182773611616166588288192 61419768950540) 110408702772163190913868058080832941440960) (num-test (lcm 125627844706077784535328068665849312000 30482033400) 118925222307474416497014710218320253656864000) (num-test (lcm 1225504716872819103560254268197955520 510813364186125) 3707151768540277788269769161298815448000) (num-test (lcm 5209185280578468690281136425214396728400 2327880739319250103818) 14624765850878700374498228867533344237423825059372400) (num-test (lcm 230425011604643097634961294406535254400 31) 230425011604643097634961294406535254400) (num-test (lcm 13222608481676137093434201748083744000 893) 13222608481676137093434201748083744000) (num-test (lcm 13348198818240350339028224064019716678960 651) 2896559143558156023569124621892278519334320) (num-test (lcm 7236172685650198160266777676385295337308176 23426) 383517152339460502494139216848420652877333328) (num-test (lcm 756264162229440667711265021676693350760 28899) 756264162229440667711265021676693350760) (num-test (lcm 40915062421030872924283823601517905600 36345062) 40915062421030872924283823601517905600) (num-test (lcm 1174590526522170015825602834292923520 4991486258) 40402390340783082034353260691173690317440) (num-test (lcm 2891892862328155581145450075391651333218020 35138529818) 2891892862328155581145450075391651333218020) (num-test (lcm 1993335355070485984559797658834121810059400 535644500) 408633747789449626834758520060994971062177000) (num-test (lcm 6324295450641455215591954662726515160 367472693133) 259296113476299663839270141171787121560) (num-test (lcm 6576388154814679090356195121505112000 15901952377630) 107846189350805922402751243797562331688000) (num-test (lcm 117828556355409428513249595788296238400 565992666495795) 2013191495492007395999396032982202432871329600) (num-test (lcm 592831716700236607285748949860604000 139641978135660) 241282508696996299165299822593265828000) (num-test (lcm 106766839071170184723986891291602032000 1584924526628112) 85306704417864977594465526141990023568000) (num-test (lcm 21677148858122146832326483307664860804937400 247815827510760) 585283019169297964472815049306951241733309800) (num-test (lcm 14079549844487257384278196623697173813600 160967604100961853832) 52755411528451062517793341673751996512389960800) (num-test (lcm 2696480372014145687016224877963234647656980 2219319031453896088860) 4753894895860938846209604459849182683819255740) (num-test (lcm 13545431257849875145060979241270859310160 29) 13545431257849875145060979241270859310160) (num-test (lcm 137485634482479300158725199474868559498162500 329) 962399441377355101111076396324079916487137500) (num-test (lcm 529252417743761759027305009539254400 3243) 529252417743761759027305009539254400) (num-test (lcm 133897419738958073238580385894509887148800 330455) 133897419738958073238580385894509887148800) (num-test (lcm 3896215507210178905244623173635584334007288624 1005238) 3896215507210178905244623173635584334007288624) (num-test (lcm 17654511984514518592175290794029073043800 1060530) 511980847550921039173083433026843118270200) (num-test (lcm 16470780256339082688310222474503880382858400 913836) 16470780256339082688310222474503880382858400) (num-test (lcm 57267105834722825210001789897760395576000 2958974018) 2691553974231972784870084125194738592072000) (num-test (lcm 521977833444747522001426544601807810543216 1066521690) 112225234190620717230306707089388679266791440) (num-test (lcm 1699559962174727325529414216960251941390400 25883611479) 1422531688340246771468119699595730874943764800) (num-test (lcm 10654036597801063717295948399628964800 317449894126222) 176036646705466975800880955407069385390400) (num-test (lcm 381902381115592200811990304316262139150724960 4640335440216) 381902381115592200811990304316262139150724960) (num-test (lcm 425968526187959807410151867411382902838703889232 1882826315615025) 181036623629882918149314543649837733706449152923600) (num-test (lcm 174609167728518272531601927200939868792000 1712923655178450) 48325242369824705024158690915447549888986499656000) (num-test (lcm 3325168366561555458817274989681612518000 1699726139891780) 43227188765300220964624574865860962734000) (num-test (lcm 11429650426242566426919762928176000 7414967839104) 15647191433526073438453155448672944000) (num-test (lcm 2104794191230056678355480848036599377844400 16946684823025584) 195745859784395271087059718867403742139529200) (num-test (lcm 11894522530167763519415142641640874994880 7) 11894522530167763519415142641640874994880) (num-test (lcm 5906329981690378696996009087718418780000 185) 5906329981690378696996009087718418780000) (num-test (lcm 3056294774178096513474941936265025440000 658) 3056294774178096513474941936265025440000) (num-test (lcm 10491907660880423349353457742257185280 123369) 10491907660880423349353457742257185280) (num-test (lcm 673239479595593149777212259021965839229225628776 15470) 3366197397977965748886061295109829196146128143880) (num-test (lcm 1506608574369860432616005754109397877696 1474070) 7533042871849302163080028770546989388480) (num-test (lcm 4849814041048623250005708880379694793905000 2172220582) 4849814041048623250005708880379694793905000) (num-test (lcm 21154344928580705924176101470087564940000 5023204186) 21154344928580705924176101470087564940000) (num-test (lcm 346448039376394135288065831861806112294000 776147372) 10739889220668218193930040787715989481114000) (num-test (lcm 2339009760844587560470606952218133142645504 194201967414) 86543361151249739737412457232070926277883648) (num-test (lcm 2242982161480922111384667548175169152 21419749763490) 20736370082891124919751251482879438810240) (num-test (lcm 4717315265246821759830981157482117120 45609714193992) 8203411246264223040346076232861401671680) (num-test (lcm 16628111321698075419789804224660024289936 4643626415880804) 46708364702649893854189560067070008230430224) (num-test (lcm 115557531507210992033160068979962880 88406536976058378) 279533668715943389728214206862530206720) (num-test (lcm 21059511907771200155093927745003762840000 180298981648603620) 19859119729028241746253573863538548358120000) (num-test (lcm 2124921015128697258800067298086064536000 2282525112298516782924) 321127237090271040335932409977291910220921912000) (num-test (lcm 16015671538624533047089928322348864000 49817926936366875) 11550742548729092601556962655002835949760000) (num-test (lcm 166517667014186289390514558017250969134523800 43413708621878528404068) 6080725646357040729673420115115953639885405604600) (num-test (lcm 2780796292789128359666429021610464935722000 47) 2780796292789128359666429021610464935722000) (num-test (lcm 21297913114430245153455383503409684916193317960 58) 21297913114430245153455383503409684916193317960) (num-test (lcm 1516745257039775143654568869485529015398000 6293) 1516745257039775143654568869485529015398000) (num-test (lcm 8447692776411453120390905608381515479808 2030) 1224915452579660702456681313215319744572160) (num-test (lcm 958876033949638283967045624731391031146081240 9834415) 56573686003028658754055691859152070837618793160) (num-test (lcm 4731349833403602529573388098680617532624192 14868) 4731349833403602529573388098680617532624192) (num-test (lcm 6375001358038970462026761077388061675464000 430513678) 6375001358038970462026761077388061675464000) (num-test (lcm 254088526608579040642428151389718385042344800 4799428101) 4774577503501808752711867392764198173330701136800) (num-test (lcm 21140490542258031885408065086507444825621023648 164778747198) 264108148344429592344402957125737508206483448434464) (num-test (lcm 34214837305812460226811046733375808000 4312787868) 197795974464901832571194661165645546048000) (num-test (lcm 11450197571956515037245443769386989035470896800 75585518430279) 148852568435434695484190769002030857461121658400) (num-test (lcm 1211397915863796187148880114197307052796506376580 538601201880) 55724304129734624608848485253076124428639293322680) (num-test (lcm 5454139401260819402160859765169199667337088 30452838731872) 3430653683393055403959180792291426590755028352) (num-test (lcm 744935981632690384026127091216926530879171660 1032747922358460) 12639328800361857745771298356677592449426905555220) (num-test (lcm 324574326062026951443376280715122947502400 103751223626207988025) 10099779304072092648063539727012480757432180800) (num-test (lcm 15272163751269260921486082393684080908800 6484309049057400) 290171111274115957508235565479997537267200) (num-test (lcm 386527546655781220813671331401971490218262720 3481571963427119100) 702565997265680899293657490452822449622871959067200) (num-test (lcm 3189682029126430413458911948222943640000 6724598925622907976570) 25845014249628523826120631630482407871222520000) (num-test (lcm 709403542855323660533377490060722241678400 7) 709403542855323660533377490060722241678400) (num-test (lcm 139803787314578422635552652090095842837312147438904 123) 139803787314578422635552652090095842837312147438904) (num-test (lcm 171985399350431759069945935900956183322827030835560 18241) 171985399350431759069945935900956183322827030835560) (num-test (lcm 33090522521924986387051477884789600000 26187) 1422892468442774414643213549045952800000) (num-test (lcm 1733723010009930088165729903139785699319986530 372945) 81484981470466714143789305447569927868039366910) (num-test (lcm 56408303994570817306318494803635460247582000 5761730) 30065626029106245624267757730337700311961206000) (num-test (lcm 25845509336769185412951159262424903513866295760 64371378271) 25845509336769185412951159262424903513866295760) (num-test (lcm 624970361450506104794172455132584603069611058500 108222780) 624970361450506104794172455132584603069611058500) (num-test (lcm 82823962548382643645255524843049561752323600 135325929794) 911063588032209080097810773273545179275559600) (num-test (lcm 170620453449723034746079844571491973300000 9460614789626) 6995438591438644424589273627431170905300000) (num-test (lcm 125144597811313015929871740675462711600000 12764411911636) 125520031604746954977661355897489099734800000) (num-test (lcm 257193319319332344553297882967977761077115600 6510126541380) 10544926092092626126685213201687088204161739600) (num-test (lcm 879624546681838385457288074812140664728758550 10045784120501316) 109420015859940604120573892778181425848269191068700) (num-test (lcm 18300938860777100857669855248554588369659200 118088077425391892) 1507430033023349020545408306968192889420458644800) (num-test (lcm 8394780474625841647581984803260010511075000 746584618179400) 559688409023779488485938508818148160783881325000) (num-test (lcm 146802334713757872619395774222116859916800 718775571956687400) 123460763494270370872911846120800279190028800) (num-test (lcm 240155883351717999820072393833707008014911556000 1350921510529331832) 31940732485778493976069628379883032065983236948000) (num-test (lcm 918942437243241528855354123800826649596480 74343962238703160850) 19653830834705779820109799278313370922778988193600) (num-test (lcm 1361069299753299783990135442290762165844800 8281085446358585640) 1318876151460947490686441243579748538703611200) (s7-test (lcm 0 "hi") 'error) (s7-test (lcm 0 1 "hi") 'error) (s7-test (lcm 1 ' #e1.(logior )) 0) ; (lcm 1 1 0) (s7-test (lcm 1.4 2.3) 'error) (s7-test (lcm 2 1.0+0.5i) 'error) (test-end "lcm") ;;; -------------------------------------------------------------------------------- ;;; rationalize ;;; -------------------------------------------------------------------------------- (test-begin "rationalize") (num-test (rationalize 0.0 1.0001) 0.0) (num-test (rationalize -0.0 1.0001) 0.0) (num-test (rationalize 0.0 0.50000000000000) 0.0) (num-test (rationalize -0.0 0.50000000000000) 0.0) (num-test (rationalize 0.0 0.1) 0.0) (num-test (rationalize -0.0 0.1) 0.0) (num-test (rationalize 0.0 0.001) 0.0) (num-test (rationalize -0.0 0.001) 0.0) (num-test (rationalize 0.0 0.00300000000000) 0.0) (num-test (rationalize -0.0 0.00300000000000) 0.0) (num-test (rationalize 0.0 0.00002000000000) 0.0) (num-test (rationalize -0.0 0.00002000000000) 0.0) (num-test (rationalize 0.0 0.00000001) 0.0) (num-test (rationalize -0.0 0.00000001) 0.0) (num-test (rationalize 0.00000001 1.0) 0.0) (num-test (rationalize -0.00000001 1.0) 0.0) (num-test (rationalize 0.00000001 0.50000000000000) 0.0) (num-test (rationalize -0.00000001 0.50000000000000) 0.0) (num-test (rationalize 0.00000001 0.1) 0.0) (num-test (rationalize -0.00000001 0.1) 0.0) (num-test (rationalize 0.00000001 0.001) 0.0) (num-test (rationalize -0.00000001 0.001) 0.0) (num-test (rationalize 0.00000001 0.00300000000000) 0.0) (num-test (rationalize -0.00000001 0.00300000000000) 0.0) (num-test (rationalize 0.00000001 0.00002000000000) 0.0) (num-test (rationalize -0.00000001 0.00002000000000) 0.0) (num-test (rationalize 0.00000001 0.000000011) 0.0) (num-test (rationalize -0.00000001 0.000000011) 0.0) (num-test (rationalize 1.0 1.0001) 0.0) (num-test (rationalize -1.0 1.0001) 0.0) (num-test (rationalize 1.0 0.999) 1.0) (num-test (rationalize -1.0 0.999) -1.0) (num-test (rationalize 1.0 0.50000000000000) 1.0) (num-test (rationalize -1.0 0.50000000000000) -1.0) (num-test (rationalize 1.0 0.1) 1.0) (num-test (rationalize -1.0 0.1) -1.0) (num-test (rationalize 1.0 0.001) 1.0) (num-test (rationalize -1.0 0.001) -1.0) (num-test (rationalize 1.0 0.00300000000000) 1.0) (num-test (rationalize -1.0 0.00300000000000) -1.0) (num-test (rationalize 1.0 0.00002000000000) 1.0) (num-test (rationalize -1.0 0.00002000000000) -1.0) (num-test (rationalize 1.0 0.00000001) 1.0) (num-test (rationalize -1.0 0.00000001) -1.0) (num-test (rationalize 3.14159265358979 1.0) 3.0) (num-test (rationalize -3.14159265358979 1.0) -3.0) (num-test (rationalize 3.14159265358979 0.50000000000000) 3.0) (num-test (rationalize -3.14159265358979 0.50000000000000) -3.0) (num-test (rationalize 3.14159265358979 0.1) #i16/5) (num-test (rationalize -3.14159265358979 0.1) #i-16/5) (num-test (rationalize 3.14159265358979 0.001) #i201/64) (num-test (rationalize -3.14159265358979 0.001) #i-201/64) (num-test (rationalize 3.14159265358979 0.00300000000000) #i22/7) (num-test (rationalize -3.14159265358979 0.00300000000000) #i-22/7) (num-test (rationalize 3.14159265358979 0.00002000000000) #i355/113) (num-test (rationalize -3.14159265358979 0.00002000000000) #i-355/113) (num-test (rationalize 3.14159265358979 0.00000001) #i100798/32085) (num-test (rationalize -3.14159265358979 0.00000001) #i-100798/32085) (num-test (rationalize 2.71828182845905 1.0) 2.0) (num-test (rationalize -2.71828182845905 1.0) -2.0) (num-test (rationalize 2.71828182845905 0.50000000000000) 3.0) (num-test (rationalize -2.71828182845905 0.50000000000000) -3.0) (num-test (rationalize 2.71828182845905 0.1) #i8/3) (num-test (rationalize -2.71828182845905 0.1) #i-8/3) (num-test (rationalize 2.71828182845905 0.001) #i87/32) (num-test (rationalize -2.71828182845905 0.001) #i-87/32) (num-test (rationalize 2.71828182845905 0.00300000000000) #i68/25) (num-test (rationalize -2.71828182845905 0.00300000000000) #i-68/25) (num-test (rationalize 2.71828182845905 0.00002000000000) #i878/323) (num-test (rationalize -2.71828182845905 0.00002000000000) #i-878/323) (num-test (rationalize 2.71828182845905 0.00000001) #i23225/8544) (num-test (rationalize -2.71828182845905 0.00000001) #i-23225/8544) (num-test (rationalize 1234.12339999999995 1.0) 1234.0) (num-test (rationalize -1234.12339999999995 1.0) -1234.0) (num-test (rationalize 1234.12339999999995 0.50000000000000) 1234.0) (num-test (rationalize -1234.12339999999995 0.50000000000000) -1234.0) (num-test (rationalize 1234.12339999999995 0.1) #i6171/5) (num-test (rationalize -1234.12339999999995 0.1) #i-6171/5) (num-test (rationalize 1234.12339999999995 0.001) #i60472/49) (num-test (rationalize -1234.12339999999995 0.001) #i-60472/49) (num-test (rationalize 1234.12339999999995 0.00300000000000) #i9873/8) (num-test (rationalize -1234.12339999999995 0.00300000000000) #i-9873/8) (num-test (rationalize 1234.12339999999995 0.00002000000000) #i290019/235) (num-test (rationalize -1234.12339999999995 0.00002000000000) #i-290019/235) (num-test (rationalize 1234.12339999999995 0.00000001) #i6170617/5000) (num-test (rationalize -1234.12339999999995 0.00000001) #i-6170617/5000) (num-test (rationalize 1234000000.01234006881714 1.0) #i1234000000/1) (num-test (rationalize -1234000000.01234006881714 1.0) #i-1234000000/1) (num-test (rationalize 1234000000.01234006881714 0.50000000000000) 1234000000.0) (num-test (rationalize -1234000000.01234006881714 0.50000000000000) -1234000000.0) (num-test (rationalize 1234000000.01234006881714 0.1) 1234000000.0) (num-test (rationalize -1234000000.01234006881714 0.1) -1234000000.0) (num-test (rationalize 1234000000.01234006881714 0.001) #i92550000001/75) (num-test (rationalize -1234000000.01234006881714 0.001) #i-92550000001/75) (num-test (rationalize 1234000000.01234006881714 0.00300000000000) #i81444000001/66) (num-test (rationalize -1234000000.01234006881714 0.00300000000000) #i-81444000001/66) (num-test (rationalize 1234000000.01234006881714 0.00002000000000) #i99954000001/81) (num-test (rationalize -1234000000.01234006881714 0.00002000000000) #i-99954000001/81) (num-test (rationalize 1234000000.01234006881714 0.000001) #i2400130000024/1945) (num-test (rationalize -1234000000.01234006881714 0.000001) #i-2400130000024/1945) (num-test (rationalize 0.33 1.0) 0.0) (num-test (rationalize -0.33 1.0) 0.0) (num-test (rationalize 0.33 0.50000000000000) 0.0) (num-test (rationalize -0.33 0.50000000000000) 0.0) (num-test (rationalize 0.33 0.1) #i1/3) (num-test (rationalize -0.33 0.1) #i-1/3) (num-test (rationalize 0.33 0.001) #i26/79) (num-test (rationalize -0.33 0.001) #i-26/79) (num-test (rationalize 0.33 0.00300000000000) #i18/55) (num-test (rationalize -0.33 0.00300000000000) #i-18/55) (num-test (rationalize 0.33 0.00002000000000) #i33/100) (num-test (rationalize -0.33 0.00002000000000) #i-33/100) (num-test (rationalize 0.33 0.00000001) #i33/100) (num-test (rationalize -0.33 0.00000001) #i-33/100) (num-test (rationalize 0.99990 1.0) 0.0) (num-test (rationalize -0.99990 1.0) 0.0) (num-test (rationalize 0.99990 0.50000000000000) 1.0) (num-test (rationalize -0.99990 0.50000000000000) -1.0) (num-test (rationalize 0.99990 0.1) 1.0) (num-test (rationalize -0.99990 0.1) -1.0) (num-test (rationalize 0.99990 0.001) 1.0) (num-test (rationalize -0.99990 0.001) -1.0) (num-test (rationalize 0.99990 0.00300000000000) 1.0) (num-test (rationalize -0.99990 0.00300000000000) -1.0) (num-test (rationalize 0.99990 0.00002000000000) #i8333/8334) (num-test (rationalize -0.99990 0.00002000000000) #i-8333/8334) (num-test (rationalize 0.99990 0.00000001) #i9999/10000) (num-test (rationalize -0.99990 0.00000001) #i-9999/10000) (num-test (rationalize 0.5010 1.0) 0.0) (num-test (rationalize -0.5010 1.0) 0.0) (num-test (rationalize 0.5010 0.50000000000000) 1.0) (num-test (rationalize -0.5010 0.50000000000000) -1.0) (num-test (rationalize 0.5010 0.1) 0.5) (num-test (rationalize -0.5010 0.1) -0.5) (num-test (rationalize 0.5010 0.00099) #i127/253) (num-test (rationalize -0.5010 0.00099) #i-127/253) (num-test (rationalize 0.5010 0.00300000000000) 0.5) (num-test (rationalize -0.5010 0.00300000000000) -0.5) (num-test (rationalize 0.5010 0.00002000000000) #i246/491) (num-test (rationalize -0.5010 0.00002000000000) #i-246/491) (num-test (rationalize 0.5010 0.00000001) #i501/1000) (num-test (rationalize -0.5010 0.00000001) #i-501/1000) (num-test (rationalize 0.499 1.0) 0.0) (num-test (rationalize -0.499 1.0) 0.0) (num-test (rationalize 0.499 0.50000000000000) 0.0) (num-test (rationalize -0.499 0.50000000000000) 0.0) (num-test (rationalize 0.499 0.1) 0.5) (num-test (rationalize -0.499 0.1) -0.5) (num-test (rationalize 0.499 0.00099) #i126/253) (num-test (rationalize -0.499 0.00099) #i-126/253) (num-test (rationalize 0.499 0.00300000000000) 0.5) (num-test (rationalize -0.499 0.00300000000000) -0.5) (num-test (rationalize 0.499 0.00002000000000) #i245/491) (num-test (rationalize -0.499 0.00002000000000) #i-245/491) (num-test (rationalize 0.499 0.00000001) #i499/1000) (num-test (rationalize -0.499 0.00000001) #i-499/1000) (num-test (rationalize 1.501 1.0) 1.0) (num-test (rationalize -1.501 1.0) -1.0) (num-test (rationalize 1.501 0.50000000000000) 2.0) (num-test (rationalize -1.501 0.50000000000000) -2.0) (num-test (rationalize 1.501 0.1) 1.5) (num-test (rationalize -1.501 0.1) -1.5) (num-test (rationalize 1.501 0.01) 1.5) (num-test (rationalize -1.501 0.01) -1.5) (num-test (rationalize 1.501 0.00300000000000) 1.5) (num-test (rationalize -1.501 0.00300000000000) -1.5) (num-test (rationalize 1.501 0.00002000000000) #i737/491) (num-test (rationalize -1.501 0.00002000000000) #i-737/491) (num-test (rationalize 1.501 0.00000001) #i1501/1000) (num-test (rationalize -1.501 0.00000001) #i-1501/1000) (num-test (rationalize 1.499 1.0) 1.0) (num-test (rationalize -1.499 1.0) -1.0) (num-test (rationalize 1.499 0.50000000000000) 1.0) (num-test (rationalize -1.499 0.50000000000000) -1.0) (num-test (rationalize 1.499 0.1) 1.5) (num-test (rationalize -1.499 0.1) -1.5) (num-test (rationalize 1.499 0.001) 1.5) (num-test (rationalize -1.499 0.001) -1.5) (num-test (rationalize 1.499 0.00300000000000) 1.5) (num-test (rationalize -1.499 0.00300000000000) -1.5) (num-test (rationalize 1.499 0.00002000000000) #i736/491) (num-test (rationalize -1.499 0.00002000000000) #i-736/491) (num-test (rationalize 1.499 0.00000001) #i1499/1000) (num-test (rationalize -1.499 0.00000001) #i-1499/1000) (num-test (rationalize 1.16 .2) 1.0) (num-test (rationalize 1.16 .1) #i5/4) (num-test (rationalize 1.16 .041) #i6/5) (num-test (rationalize 1.16 .039) #i7/6) (num-test (rationalize 1.16 .007) #i7/6) (num-test (rationalize 1.16 .006) #i22/19) (num-test (rationalize 1.16 .0022) #i22/19) (num-test (rationalize 1.16 .002) #i29/25) (num-test (rationalize 1.16 .0000001) #i29/25) (num-test (rationalize .1 .1) 0.0) (num-test (rationalize .1 .0999) #i1/6) (num-test (rationalize .1 .065) #i1/7) (num-test (rationalize .1 .067) #i1/6) (num-test (rationalize .1 .04) #i1/8) (num-test (rationalize .1 .02) #i1/9) (num-test (rationalize .1 .01) #i1/10) (num-test (rationalize 23.1 22.0) 2.0) (num-test (rationalize 23.1 22) 2.0) (num-test (rationalize 23.1 .5) 23.0) (num-test (rationalize 23.1 1/2) 23.0) (num-test (rationalize 1/2 3/4) 0) (num-test (rationalize 1/2 1/4) 1/2) (num-test (rationalize 1 3) 0) (num-test (rationalize 11/10 1/5) 1) (num-test (rationalize 3/4 1/2) 1) (num-test (rationalize 1/4 1/3) 0) (num-test (rationalize 1/4 1/6) 1/3) (num-test (rationalize 2/3 1/4) 1/2) (num-test (rationalize 1/3 1/3) 0) (num-test (rationalize 1/3 1/4) 1/2) (num-test (rationalize 3/10 1/10) 1/3) (num-test (rationalize 1 .1) 1.0) (num-test (rationalize 1 1) 0) (num-test (rationalize 1 1/2) 1) (num-test (rationalize 1 0) 1) (num-test (rationalize 0 -.1) 0.0) (num-test (rationalize 0 1) 0) (num-test (rationalize 0 0) 0) (num-test (rationalize -1 .1) -1.0) (num-test (rationalize -1 -1) 0) (num-test (rationalize (exact->inexact 1/2) 3/4) 0.0) (num-test (rationalize (exact->inexact 1/2) 1/4) 0.5) (num-test (rationalize (exact->inexact 1) 3) 0.0) (num-test (rationalize (exact->inexact 11/10) 1/5) 1.0) (num-test (rationalize (exact->inexact 3/4) 1/2) 1.0) (num-test (rationalize (exact->inexact 1/4) 1/3) 0.0) (num-test (rationalize (exact->inexact 1/4) 1/6) #i1/3) (num-test (rationalize (exact->inexact 2/3) 1/4) 0.5) (num-test (rationalize (exact->inexact 1/3) 1/4) 0.5) (num-test (rationalize (exact->inexact 3/10) 1/10) #i1/3) (num-test (rationalize 1/2 (exact->inexact 3/4)) 0.0) (num-test (rationalize 1/2 (exact->inexact 1/4)) 0.5) (num-test (rationalize 1 (exact->inexact 3)) 0.0) (num-test (rationalize 11/10 (exact->inexact 1/5)) 1.0) (num-test (rationalize 3/4 (exact->inexact 1/2)) 1.0) (num-test (rationalize 1/4 (exact->inexact 1/3)) 0.0) (num-test (rationalize 1/4 (exact->inexact 1/6)) #i1/3) (num-test (rationalize 2/3 (exact->inexact 1/4)) 0.5) (num-test (rationalize 1/3 (exact->inexact 1/4)) 0.5) (num-test (rationalize 3/10 (exact->inexact 1/10)) #i1/3) (num-test (rationalize (exact->inexact 1/2) (exact->inexact 3/4)) 0.0) (num-test (rationalize (exact->inexact 1/2) (exact->inexact 1/4)) 0.5) (num-test (rationalize (exact->inexact 1) (exact->inexact 3)) 0.0) (num-test (rationalize (exact->inexact 11/10) (exact->inexact 1/5)) 1.0) (num-test (rationalize (exact->inexact 3/4) (exact->inexact 1/2)) 1.0) (num-test (rationalize (exact->inexact 1/4) (exact->inexact 1/3)) 0.0) (num-test (rationalize (exact->inexact 1/4) (exact->inexact 1/6)) #i1/3) (num-test (rationalize (exact->inexact 2/3) (exact->inexact 1/4)) 0.5) (num-test (rationalize (exact->inexact 1/3) (exact->inexact 1/4)) 0.5) (num-test (rationalize (exact->inexact 3/10) (exact->inexact 1/10)) #i1/3) (num-test (rationalize -1/2 3/4) 0) (num-test (rationalize -1/2 1/4) -1/2) (num-test (rationalize -1 3) 0) (num-test (rationalize -11/10 1/5) -1) (num-test (rationalize -3/4 1/2) -1) (num-test (rationalize -1/4 1/3) 0) (num-test (rationalize -1/4 1/6) -1/3) (num-test (rationalize -2/3 1/4) -1/2) (num-test (rationalize -1/3 1/4) -1/2) (num-test (rationalize -1/3 1/3) 0) (num-test (rationalize -3/10 1/10) -1/3) (num-test (rationalize .0999 .1) 0.0) (num-test (rationalize -.0999 .1) 0.0) (num-test (rationalize 1.0999 .1) 1.0) (num-test (rationalize -1.0999 .1) -1.0) (num-test (rationalize .239 .0005) #i11/46) ;baseball of course... the average .001 is the hardest to get: 1/667 (num-test (rationalize .001 .0005) #i1/667) (num-test (rationalize .334 .0005) #i96/287) (num-test (rationalize 1.0000001 0.00000001) #i9090911/9090910) (num-test (rationalize 0.000000015 0.0000000009999999) #i1/62500001) (num-test (rationalize 0.00000001 1e-16) #i1/100000000) (num-test (rationalize 0.1 0) #i1/10) (num-test (rationalize 0.1 .00000000000000001) #i1/10) (num-test (rationalize .1 0) #i1/10) ;;; but (rationalize 0.1 0) -> 1526457681181556/15264576811815559? independent of precision ;;; and (rationalize 0.1000000000000000 0) -> 1/10 so once again it's either the idiotic reader or the bignum promotion process ;;; (rationalize 0.00000001 0) 3022314549036573/302231454903657293676544? ;; Inexact numbers produce inexact results (num-test (rationalize 1e-3 0) #i1/1000) (num-test (rationalize 1e-12 0) #i1/1000000000000) (num-test (rationalize 1e-15 0) #i1/1000000000000000) (num-test (rationalize (+ 1e2 1e-2) 0) #i10001/100) (num-test (rationalize -1 -1) 0) ;; spec says "differs by no more than", but that seems to imply a comparison ;; on either side, so a negative error doesn't change the result?? (num-test (rationalize 1/4 -1/6) 1/3) (num-test (rationalize -3/10 -1/10) -1/3) (num-test (rationalize (exact->inexact 1/3) (exact->inexact -1/4)) 0.5) (num-test (rationalize 0.5 0.02) 0.5) (num-test (rationalize 1073741824 1) 1073741823) ; perverse (num-test (rationalize -3037000503.0 -3037000500.0) -3.0) (num-test (rationalize 33309123021416.7508179322803e-25 1e-20) #i1/300218050279) (num-test (rationalize 33309123021416.7508179322803e-25 1e-12) #i1/230898233499) (num-test (rationalize 33309123021416.7508179322803e-25 1e-23) #i1/300218051179) (num-test (rationalize 9223372036854775807 0) 9223372036854775807) (num-test (rationalize 9223372036854775807 -1) 9223372036854775806) (num-test (rationalize 9223372036854775807 -1/2) 9223372036854775807) (num-test (rationalize 9223372036854775807 1/2) 9223372036854775807) (num-test (rationalize 9223372036854775807 3/2) 9223372036854775806) (num-test (rationalize 9223372036854775807 -3/2) 9223372036854775806) (num-test (rationalize 9223372036854775807 1) 9223372036854775806) (num-test (rationalize 9223372036854775807 inf.0) 0.0) (s7-test (rationalize (/ pi) 1e-8) #i24288/76303) (s7-test (rationalize (/ pi) 1e-10) #i33102/103993) (num-test (rationalize 1e8 1e9) 0.0) ;; A very small number, but how small depends on the fixnum size so we can't test ;(num-test (rationalize 1e16 most-positive-fixnum) 0.0) (num-test (rationalize most-positive-fixnum 1e20) 0.0) (num-test (rationalize most-positive-fixnum most-positive-fixnum) 0) (num-test (rationalize (/ 1 most-positive-fixnum) 0) (/ 1 most-positive-fixnum)) (num-test (rationalize 1e20 -1e21) 0.0) (num-test (rationalize -1e20 1e21) 0.0) (num-test (rationalize 1e20 inf.0) 0.0) (num-test (rationalize (/ (expt 2 60) (expt 3 20)) .01) #i2314582608/7) (num-test (rationalize (/ (expt 2 60) (expt 3 20)) .001) #i8266366457/25) (num-test (rationalize 33309123021416.7508179322803e-25 1e-23) #i1/300218051179) (num-test (rationalize 11/30 .1) #i1/3) (num-test (rationalize 11/30 .2) 0.5) (num-test (rationalize 11/30 .365) 0.5) (num-test (rationalize 11/30 .367) 0.0) ;; these differ from the ratify result (num-test (rationalize 0.02 .01) #i1/34) (num-test (rationalize 0.05 .01) #i1/17) (num-test (rationalize 0.06 .01) #i1/15) (num-test (rationalize 0.07 .01) #i1/13) (num-test (rationalize 0.32 .01) #i5/16) (num-test (rationalize 0.35 .01) #i5/14) (num-test (rationalize 0.39 .01) #i2/5) (num-test (rationalize 0.47 .01) #i6/13) (num-test (rationalize 0.48 .01) #i8/17) (num-test (rationalize 0.52 .01) #i9/17) (num-test (rationalize 0.53 .01) #i7/13) (num-test (rationalize 0.61 .01) #i3/5) (num-test (rationalize 0.65 .01) #i9/14) (num-test (rationalize 0.68 .01) #i11/16) (num-test (rationalize 0.93 .01) #i12/13) (num-test (rationalize 0.94 .01) #i14/15) (num-test (rationalize 0.95 .01) #i16/17) ;; XXX Is this correct? ;(num-test (rationalize 0.96 .01) #i19/20) (num-test (rationalize 0.97 .01) #i24/25) (num-test (rationalize 0.98 .01) #i33/34) (num-test (rationalize 0.01 .001) #i1/91) (num-test (rationalize 0.02 .001) #i1/48) (num-test (rationalize 0.06 .001) #i2/33) (num-test (rationalize 0.11 .001) #i6/55) (num-test (rationalize 0.14 .001) #i6/43) (num-test (rationalize 0.17 .001) #i7/41) (num-test (rationalize 0.18 .001) #i7/39) (num-test (rationalize 0.33 .001) #i26/79) (num-test (rationalize 0.34 .001) #i15/44) (num-test (rationalize 0.43 .001) #i28/65) (num-test (rationalize 0.46 .001) #i17/37) (num-test (rationalize 0.49 .001) #i23/47) (num-test (rationalize 0.51 .001) #i24/47) (num-test (rationalize 0.57 .001) #i37/65) (num-test (rationalize 0.58 .001) #i18/31) (num-test (rationalize 0.66 .001) #i29/44) (num-test (rationalize 0.67 .001) #i53/79) (num-test (rationalize 0.83 .001) #i34/41) (num-test (rationalize 0.86 .001) #i37/43) (num-test (rationalize 0.89 .001) #i49/55) (num-test (rationalize 0.94 .001) #i31/33) (num-test (rationalize 0.98 .001) #i47/48) (num-test (rationalize 0.99 .001) #i90/91) (num-test (rationalize 0.1001 .1) #i1/5) (num-test (rationalize 0.101 .1) #i1/5) (num-test (rationalize 0.451 .0010001) #i9/20) (num-test (rationalize 0.9876 .0001) #i80/81) ;; Maybe this should result in an exact value due to (expt 2 1/3) being exact (num-test (rationalize (expt 2 1/3) (expt 10 -10)) #i96389/76504) (num-test (rationalize (expt 2 1/3) (expt 10 -15)) #i15240955/12096754) #; (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 rationalize num (rationalize num) val))) (list (list 0 0) (list 1 1) (list 2 2) (list 3 3) (list -1 -1) (list -2 -2) (list -3 -3) (list 9223372036854775807 9223372036854775807) (list -9223372036854775808 -9223372036854775808) (list 1/2 1/2) (list 1/3 1/3) (list -1/2 -1/2) (list -1/3 -1/3) (list 1/9223372036854775807 0) (list 0.0 0) (list 1.0 1) (list 2.0 2) (list -2.0 -2) (list 1.000000000000000000000000000000000000002E-309 0))) (s7-test (rationalize (/ pi) 1e-17) #i78256779/245850922) (s7-test (rationalize (/ pi) 1e-18) #i340262731/1068966896) (s7-test (rationalize (/ pi) 1e-20) #i1963319607/6167950454) (s7-test (rationalize (/ pi) 1e-30) #i136308121570117/428224593349304) (num-test (rationalize (/ 1 most-negative-fixnum) 0) (/ 1 most-negative-fixnum)) (num-test (rationalize 1e-19 1e-21) #i1/9900990099009900991) (num-test (rationalize 1e-19 1e-30) #i1/9999999999900000001) (num-test (rationalize 1e-30 0.0) #i1/1000000000000000000000000000000) (num-test (rationalize (+ .1 1e-18) 0) #i100000000000000001/1000000000000000000) (num-test (rationalize (+ .1 1e-18) 1e-20) #i9900990099009902/99009900990099019) (num-test (rationalize (- .1 1e-18) 1e-20) #i9900990099009901/99009900990099011) (num-test (rationalize 1e18 1e19) 0.0) ;(num-test (rationalize 1180591620717411303424) 1180591620717411303424) (num-test (rationalize 1180591620717411303424 .9) 1180591620717411303424.0) (num-test (rationalize -1180591620717411303424 1.9) -1180591620717411303423.0) ;; XXX TODO ;(s7-test (rationalize -1180591620717411303424 nan.0) 'error) (num-test (rationalize -1180591620717411303424 inf.0) 0.0) (num-test (rationalize most-negative-fixnum 1) (+ most-negative-fixnum 1)) ;; These are near the limits of flonums ;(num-test (rationalize (/ 3.0 most-positive-fixnum) 1e-50) #i3/9223372036854775807) ;(num-test (rationalize (/ 3.0 most-positive-fixnum) 1e-38) #i3/9223372036854775807) (num-test (rationalize (expt 2 1/3) (expt 10 -20)) #i11952836413/9486972548) (num-test (rationalize (expt 2 1/3) (expt 10 -30)) #i2566462403285413/2037002559406049) (s7-test (< (abs (- (expt (rationalize (expt 2 1/3) (expt 10 -30)) 3.0) 2)) 1e-29) #t) (num-test (rationalize 3796553736732654909229441/2684568892382786771291329 1) 1) (num-test (rationalize (expt 2 1/3) 1e-40) #i77270484057362988877/61329623839374997455) (num-test (rationalize 3796553736732654909229441/2684568892382786771291329 0) 3796553736732654909229441/2684568892382786771291329) (s7-test (rationalize) 'error) (s7-test (rationalize 1.23+1.0i 1.23+1.0i) 'error) (s7-test (rationalize 1.23 1.23 1.23) 'error) ;; XXX TODO ;(s7-test (rationalize 0 nan.0) 'error) ; ?? ;(s7-test (rationalize 1 nan.0) 'error) (s7-test (rationalize (expt 2 60) -) 'error) (test-end "rationalize") ;;; -------------------------------------------------------------------------------- ;;; min ;;; -------------------------------------------------------------------------------- (test-begin "min") (num-test (min -0.0) 0.0) (num-test (min -1 -1/2) -1) (num-test (min -1 1/2) -1) (num-test (min -1.0) -1.0) (num-test (min -1.797693134862315699999999999999999999998E308 -9223372036854775808) -1.797693134862315699999999999999999999998E308) (num-test (min -1/2 -1) -1) (num-test (min -1/2 1) -1/2) (num-test (min -10) -10) (num-test (min -10/3) -10/3) (num-test (min -1234000000) -1234000000) (num-test (min -1234000000.0) -1234000000.0) (num-test (min -1234000000/10) -1234000000/10) (num-test (min -2 3 0 7) -2) (num-test (min -2) -2) (num-test (min -2.71828182845905) -2.71828182845905) (num-test (min -2/2) -2/2) (num-test (min -3/2 -1/2) -3/2) (num-test (min -3/2 -6/5) -3/2) (num-test (min -3/2 1/2) -3/2) (num-test (min -3/2 6/5) -3/2) (num-test (min -362880) -362880) (num-test (min -362880/1234) -362880/1234) (num-test (min -6 -12) -12) (num-test (min -9223372036854775808 -9223372036854775808) -9223372036854775808) (num-test (min -9223372036854775808 5.551115123125783999999999999999999999984E-17) -9.223372036854775808E18) (num-test (min -9223372036854775808 9223372036854775807 -9223372036854775808) -9223372036854775808) (num-test (min 0 1 1) 0) (num-test (min 0 1 1.0) 0.0) (num-test (min 0 1 1/1) 0) (num-test (min 0 1 123.4) 0.0) (num-test (min 0 1 1234) 0) (num-test (min 0 1 1234/11) 0) (num-test (min 0 1) 0) (num-test (min 0 1.0 1) 0.0) (num-test (min 0 1.0 1.0) 0.0) (num-test (min 0 1.0 1/1) 0.0) (num-test (min 0 1.0 123.4) 0.0) (num-test (min 0 1.0 1234) 0.0) (num-test (min 0 1.0 1234/11) 0.0) (num-test (min 0 1.0) 0.0) (num-test (min 0 1/1) 0) (num-test (min 0 123.4 1) 0.0) (num-test (min 0 123.4 1.0) 0.0) (num-test (min 0 123.4 1/1) 0.0) (num-test (min 0 123.4 123.4) 0.0) (num-test (min 0 123.4 1234) 0.0) (num-test (min 0 123.4 1234/11) 0.0) (num-test (min 0 123.4) 0.0) (num-test (min 0 1234 1) 0) (num-test (min 0 1234 1.0) 0.0) (num-test (min 0 1234 1/1) 0) (num-test (min 0 1234 123.4) 0.0) (num-test (min 0 1234 1234) 0) (num-test (min 0 1234 1234/11) 0) (num-test (min 0 1234) 0) (num-test (min 0 1234/11 1) 0) (num-test (min 0 1234/11 1.0) 0.0) (num-test (min 0 1234/11 1/1) 0) (num-test (min 0 1234/11 123.4) 0.0) (num-test (min 0 1234/11 1234) 0) (num-test (min 0 1234/11 1234/11) 0) (num-test (min 0 1234/11) 0) (num-test (min 0) 0) (num-test (min 0.0 1 1) 0.0) (num-test (min 0.0 1 1.0) 0.0) (num-test (min 0.0 1 1/1) 0.0) (num-test (min 0.0 1 123.4) 0.0) (num-test (min 0.0 1 1234) 0.0) (num-test (min 0.0 1 1234/11) 0.0) (num-test (min 0.0 1) 0.0) (num-test (min 0.0 1.0 1) 0.0) (num-test (min 0.0 1.0 1.0) 0.0) (num-test (min 0.0 1.0 1/1) 0.0) (num-test (min 0.0 1.0 123.4) 0.0) (num-test (min 0.0 1.0 1234) 0.0) (num-test (min 0.0 1.0 1234/11) 0.0) (num-test (min 0.0 1.0) 0.0) (num-test (min 0.0 1/1) 0.0) (num-test (min 0.0 123.4 1) 0.0) (num-test (min 0.0 123.4 1.0) 0.0) (num-test (min 0.0 123.4 1/1) 0.0) (num-test (min 0.0 123.4 123.4) 0.0) (num-test (min 0.0 123.4 1234) 0.0) (num-test (min 0.0 123.4 1234/11) 0.0) (num-test (min 0.0 123.4) 0.0) (num-test (min 0.0 1234 1) 0.0) (num-test (min 0.0 1234 1.0) 0.0) (num-test (min 0.0 1234 1/1) 0.0) (num-test (min 0.0 1234 123.4) 0.0) (num-test (min 0.0 1234 1234) 0.0) (num-test (min 0.0 1234 1234/11) 0.0) (num-test (min 0.0 1234) 0.0) (num-test (min 0.0 1234/11 1) 0.0) (num-test (min 0.0 1234/11 1.0) 0.0) (num-test (min 0.0 1234/11 1/1) 0.0) (num-test (min 0.0 1234/11 123.4) 0.0) (num-test (min 0.0 1234/11 1234) 0.0) (num-test (min 0.0 1234/11 1234/11) 0.0) (num-test (min 0.0 1234/11) 0.0) (num-test (min 0.0) 0.0) (num-test (min 0/1) 0/1) (num-test (min 0/1) 0/1) (num-test (min 1 -1/2) -1/2) (num-test (min 1 1 1) 1) (num-test (min 1 1 1.0) 1.0) (num-test (min 1 1 1/1) 1) (num-test (min 1 1 123.4) 1.0) (num-test (min 1 1 1234) 1) (num-test (min 1 1 1234/11) 1) (num-test (min 1 1) 1) (num-test (min 1 1.0 1) 1.0) (num-test (min 1 1.0 1.0) 1.0) (num-test (min 1 1.0 1/1) 1.0) (num-test (min 1 1.0 123.4) 1.0) (num-test (min 1 1.0 1234) 1.0) (num-test (min 1 1.0 1234/11) 1.0) (num-test (min 1 1.0) 1.0) (num-test (min 1 1/1) 1) (num-test (min 1 1/2) 1/2) (num-test (min 1 123.4 1) 1.0) (num-test (min 1 123.4 1.0) 1.0) (num-test (min 1 123.4 1/1) 1.0) (num-test (min 1 123.4 123.4) 1.0) (num-test (min 1 123.4 1234) 1.0) (num-test (min 1 123.4 1234/11) 1.0) (num-test (min 1 123.4) 1.0) (num-test (min 1 1234 1) 1) (num-test (min 1 1234 1.0) 1.0) (num-test (min 1 1234 1/1) 1) (num-test (min 1 1234 123.4) 1.0) (num-test (min 1 1234 1234) 1) (num-test (min 1 1234 1234/11) 1) (num-test (min 1 1234) 1) (num-test (min 1 1234/11 1) 1) (num-test (min 1 1234/11 1.0) 1.0) (num-test (min 1 1234/11 1/1) 1) (num-test (min 1 1234/11 123.4) 1.0) (num-test (min 1 1234/11 1234) 1) (num-test (min 1 1234/11 1234/11) 1) (num-test (min 1 1234/11) 1) (num-test (min 1 3 2 -7) -7) (num-test (min 1.0 1 1) 1.0) (num-test (min 1.0 1 1.0) 1.0) (num-test (min 1.0 1 1/1) 1.0) (num-test (min 1.0 1 123.4) 1.0) (num-test (min 1.0 1 1234) 1.0) (num-test (min 1.0 1 1234/11) 1.0) (num-test (min 1.0 1) 1.0) (num-test (min 1.0 1.0 1) 1.0) (num-test (min 1.0 1.0 1.0) 1.0) (num-test (min 1.0 1.0 1/1) 1.0) (num-test (min 1.0 1.0 123.4) 1.0) (num-test (min 1.0 1.0 1234) 1.0) (num-test (min 1.0 1.0 1234/11) 1.0) (num-test (min 1.0 1.0) 1.0) (num-test (min 1.0 1/1) 1.0) (num-test (min 1.0 123.4 1) 1.0) (num-test (min 1.0 123.4 1.0) 1.0) (num-test (min 1.0 123.4 1/1) 1.0) (num-test (min 1.0 123.4 123.4) 1.0) (num-test (min 1.0 123.4 1234) 1.0) (num-test (min 1.0 123.4 1234/11) 1.0) (num-test (min 1.0 123.4) 1.0) (num-test (min 1.0 1234 1) 1.0) (num-test (min 1.0 1234 1.0) 1.0) (num-test (min 1.0 1234 1/1) 1.0) (num-test (min 1.0 1234 123.4) 1.0) (num-test (min 1.0 1234 1234) 1.0) (num-test (min 1.0 1234 1234/11) 1.0) (num-test (min 1.0 1234) 1.0) (num-test (min 1.0 1234/11 1) 1.0) (num-test (min 1.0 1234/11 1.0) 1.0) (num-test (min 1.0 1234/11 1/1) 1.0) (num-test (min 1.0 1234/11 123.4) 1.0) (num-test (min 1.0 1234/11 1234) 1.0) (num-test (min 1.0 1234/11 1234/11) 1.0) (num-test (min 1.0 1234/11) 1.0) (num-test (min 1.0) 1.0) (num-test (min 1.110223024625156799999999999999999999997E-16 -9223372036854775808) -9.223372036854775808E18) (num-test (min 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) 5.42101086242752217060000000000000000001E-20) (num-test (min 1/2 -1) -1) (num-test (min 1/2 1) 1/2) (num-test (min 1/46116860184273883 1/46116860184273879) 1/46116860184273883) (num-test (min 1/9223372036854775807 1/9223372036854775300) 1/9223372036854775807) (num-test (min 1/9223372036854775807 2/9223372036854775807) 1/9223372036854775807) (num-test (min 10) 10) (num-test (min 10/3) 10/3) (num-test (min 1010-0.i) 1010.0) (num-test (min 123.4 1 1) 1.0) (num-test (min 123.4 1 1.0) 1.0) (num-test (min 123.4 1 1/1) 1.0) (num-test (min 123.4 1 123.4) 1.0) (num-test (min 123.4 1 1234) 1.0) (num-test (min 123.4 1 1234/11) 1.0) (num-test (min 123.4 1) 1.0) (num-test (min 123.4 1.0 1) 1.0) (num-test (min 123.4 1.0 1.0) 1.0) (num-test (min 123.4 1.0 1/1) 1.0) (num-test (min 123.4 1.0 123.4) 1.0) (num-test (min 123.4 1.0 1234) 1.0) (num-test (min 123.4 1.0 1234/11) 1.0) (num-test (min 123.4 1.0) 1.0) (num-test (min 123.4 1/1) 1.0) (num-test (min 123.4 123.4 1) 1.0) (num-test (min 123.4 123.4 1.0) 1.0) (num-test (min 123.4 123.4 1/1) 1.0) (num-test (min 123.4 123.4 123.4) 123.4) (num-test (min 123.4 123.4 1234) 123.4) (num-test (min 123.4 123.4 1234/11) 112.18181818181819) (num-test (min 123.4 123.4) 123.4) (num-test (min 123.4 1234 1) 1.0) (num-test (min 123.4 1234 1.0) 1.0) (num-test (min 123.4 1234 1/1) 1.0) (num-test (min 123.4 1234 123.4) 123.4) (num-test (min 123.4 1234 1234) 123.4) (num-test (min 123.4 1234 1234/11) 112.18181818181819) (num-test (min 123.4 1234) 123.4) (num-test (min 123.4 1234/11 1) 1.0) (num-test (min 123.4 1234/11 1.0) 1.0) (num-test (min 123.4 1234/11 1/1) 1.0) (num-test (min 123.4 1234/11 123.4) 112.18181818181819) (num-test (min 123.4 1234/11 1234) 112.18181818181819) (num-test (min 123.4 1234/11 1234/11) 112.18181818181819) (num-test (min 123.4 1234/11) 112.18181818181819) (num-test (min 1234 1 1) 1) (num-test (min 1234 1 1.0) 1.0) (num-test (min 1234 1 1/1) 1) (num-test (min 1234 1 123.4) 1.0) (num-test (min 1234 1 1234) 1) (num-test (min 1234 1 1234/11) 1) (num-test (min 1234 1) 1) (num-test (min 1234 1.0 1) 1.0) (num-test (min 1234 1.0 1.0) 1.0) (num-test (min 1234 1.0 1/1) 1.0) (num-test (min 1234 1.0 123.4) 1.0) (num-test (min 1234 1.0 1234) 1.0) (num-test (min 1234 1.0 1234/11) 1.0) (num-test (min 1234 1.0) 1.0) (num-test (min 1234 1/1) 1) (num-test (min 1234 123.4 1) 1.0) (num-test (min 1234 123.4 1.0) 1.0) (num-test (min 1234 123.4 1/1) 1.0) (num-test (min 1234 123.4 123.4) 123.4) (num-test (min 1234 123.4 1234) 123.4) (num-test (min 1234 123.4 1234/11) 112.18181818181819) (num-test (min 1234 123.4) 123.4) (num-test (min 1234 1234 1) 1) (num-test (min 1234 1234 1.0) 1.0) (num-test (min 1234 1234 1/1) 1) (num-test (min 1234 1234 123.4) 123.4) (num-test (min 1234 1234 1234) 1234) (num-test (min 1234 1234 1234/11) 1234/11) (num-test (min 1234 1234) 1234) (num-test (min 1234 1234/11 1) 1) (num-test (min 1234 1234/11 1.0) 1.0) (num-test (min 1234 1234/11 1/1) 1) (num-test (min 1234 1234/11 123.4) 112.18181818181819) (num-test (min 1234 1234/11 1234) 1234/11) (num-test (min 1234 1234/11 1234/11) 1234/11) (num-test (min 1234 1234/11) 1234/11) (num-test (min 1234/11 1 1) 1) (num-test (min 1234/11 1 1.0) 1.0) (num-test (min 1234/11 1 1/1) 1) (num-test (min 1234/11 1 123.4) 1.0) (num-test (min 1234/11 1 1234) 1) (num-test (min 1234/11 1 1234/11) 1) (num-test (min 1234/11 1) 1) (num-test (min 1234/11 1.0 1) 1.0) (num-test (min 1234/11 1.0 1.0) 1.0) (num-test (min 1234/11 1.0 1/1) 1.0) (num-test (min 1234/11 1.0 123.4) 1.0) (num-test (min 1234/11 1.0 1234) 1.0) (num-test (min 1234/11 1.0 1234/11) 1.0) (num-test (min 1234/11 1.0) 1.0) (num-test (min 1234/11 1/1) 1) (num-test (min 1234/11 123.4 1) 1.0) (num-test (min 1234/11 123.4 1.0) 1.0) (num-test (min 1234/11 123.4 1/1) 1.0) (num-test (min 1234/11 123.4 123.4) 112.18181818181819) (num-test (min 1234/11 123.4 1234) 112.18181818181819) (num-test (min 1234/11 123.4 1234/11) 112.18181818181819) (num-test (min 1234/11 123.4) 112.18181818181819) (num-test (min 1234/11 1234 1) 1) (num-test (min 1234/11 1234 1.0) 1.0) (num-test (min 1234/11 1234 1/1) 1) (num-test (min 1234/11 1234 123.4) 112.18181818181819) (num-test (min 1234/11 1234 1234) 1234/11) (num-test (min 1234/11 1234 1234/11) 1234/11) (num-test (min 1234/11 1234) 1234/11) (num-test (min 1234/11 1234/11 1) 1) (num-test (min 1234/11 1234/11 1.0) 1.0) (num-test (min 1234/11 1234/11 1/1) 1) (num-test (min 1234/11 1234/11 123.4) 112.18181818181819) (num-test (min 1234/11 1234/11 1234) 1234/11) (num-test (min 1234/11 1234/11 1234/11) 1234/11) (num-test (min 1234/11 1234/11) 1234/11) (num-test (min 1234000000) 1234000000) (num-test (min 1234000000.0) 1234000000.0) (num-test (min 1234000000/10) 1234000000/10) (num-test (min 2 1+0i) 1.0) (num-test (min 2) 2) (num-test (min 2.71828182845905) 2.71828182845905) (num-test (min 2/2) 2/2) (num-test (min 2/9223372036854775807 1/9223372036854775807) 1/9223372036854775807) (num-test (min 3 5 5 330 4 -24) -24 ) (num-test (min 3) 3) (num-test (min 3.0 7 1) 1.0) (num-test (min 3/2 -1/2) -1/2) (num-test (min 3/2 -6/5) -6/5) (num-test (min 3/2 1/2) 1/2) (num-test (min 3/2 6/5) 6/5) (num-test (min 362880) 362880) (num-test (min 362880/1234) 362880/1234) (num-test (min 5.0 2) 2.0) ; why not 2? (num-test (min 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 5.551115123125783999999999999999999999984E-17) (num-test (min 6 12) 6) (num-test (min 92233720368547758/9223372036854775807 92233720368547757/9223372036854775807) 92233720368547757/9223372036854775807) (num-test (min 9223372036854775807 -9223372036854775808) -9223372036854775808) (num-test (min 12345678901234567890 12345678901234567891) 12345678901234567890) (num-test (min 2.168404344971008681816600431489558149231E-17 2.168404344971008869895696563055543437233E-17) 2.168404344971008681816600431489558149231E-17) (num-test (min 2.168404344971008869895696563055543437233E-17 2.168404344971008681816600431489558149231E-17 ) 2.168404344971008681816600431489558149231E-17) (num-test (min 2.168404344971008681816600431489558149231E-17 1/46116860184273879) 2.168404344971008681816600431489558149231E-17) (num-test (min 1/46116860184273883 2.168404344971008869895696563055543437233E-17) 2.168404344971008681816600431489558149231E-17) (s7-test (min) 'error) ;; XXX TODO FIXME Do we really want to be *this* strict? ;; This kills optimization possibilities. ;; OTOH, (min 'x) => x is clearly buggy ;; (s7-test (min 1.23+1.0i) 'error) ;; (s7-test (min 1234000000.0+2.71828182845905i) 'error) ;; (s7-test (min 2.71828182845905+3.14159265358979i) 'error) ;; (s7-test (min 1.0+1.0i) 'error) ;; (s7-test (min 0.0+0.00000001i) 'error) ;; (s7-test (min -0.0+0.00000001i) 'error) ;; (s7-test (min -1.0+1.0i) 'error) ;; (s7-test (min -1234000000.0+2.71828182845905i) 'error) ;; (s7-test (min -2.71828182845905+3.14159265358979i) 'error) (s7-test (min +nan.0 1+i) 'error) (s7-test (min +nan.0 1 1+i) 'error) (s7-test (min 1 nan.0 2 1+i) 'error) (s7-test (min +inf.0 1+i) 'error) (s7-test (min +inf.0 +nan.0 0-i 1) 'error) (test-end "min") ;;; -------------------------------------------------------------------------------- ;;; max ;;; -------------------------------------------------------------------------------- (test-begin "max") (num-test (max -0.0) 0.0) (num-test (max -1 -1/2) -1/2) (num-test (max -1 1/2) 1/2) (num-test (max -1.0) -1.0) (num-test (max -1.797693134862315699999999999999999999998E308 -9223372036854775808) -9.223372036854775808E18) (num-test (max -1/2 -1) -1/2) (num-test (max -1/2 1) 1) (num-test (max -10) -10) (num-test (max -10/3) -10/3) (num-test (max -1234000000) -1234000000) (num-test (max -1234000000.0) -1234000000.0) (num-test (max -1234000000/10) -1234000000/10) (num-test (max -2 3 0 7) 7) (num-test (max -2) -2) (num-test (max -2.71828182845905) -2.71828182845905) (num-test (max -2/2) -2/2) (num-test (max -3/2 -1/2) -1/2) (num-test (max -3/2 -6/5) -6/5) (num-test (max -3/2 1/2) 1/2) (num-test (max -3/2 6/5) 6/5) (num-test (max -362880) -362880) (num-test (max -362880/1234) -362880/1234) (num-test (max -6 -12) -6) (num-test (max -9223372036854775808 -9223372036854775808) -9223372036854775808) (num-test (max -9223372036854775808 5.551115123125783999999999999999999999984E-17) 5.551115123125783999999999999999999999984E-17) (num-test (max -9223372036854775808 9223372036854775807 -9223372036854775808) 9223372036854775807) (num-test (max 0 1 1) 1) (num-test (max 0 1 1.0) 1.0) (num-test (max 0 1 1/1) 1) (num-test (max 0 1 123.4) 123.4) (num-test (max 0 1 1234) 1234) (num-test (max 0 1 1234/11) 1234/11) (num-test (max 0 1) 1) (num-test (max 0 1.0 1) 1.0) (num-test (max 0 1.0 1.0) 1.0) (num-test (max 0 1.0 1/1) 1.0) (num-test (max 0 1.0 123.4) 123.4) (num-test (max 0 1.0 1234) 1234.0) (num-test (max 0 1.0 1234/11) 112.18181818181819) (num-test (max 0 1.0) 1.0) (num-test (max 0 1/1) 1) (num-test (max 0 123.4 1) 123.4) (num-test (max 0 123.4 1.0) 123.4) (num-test (max 0 123.4 1/1) 123.4) (num-test (max 0 123.4 123.4) 123.4) (num-test (max 0 123.4 1234) 1234.0) (num-test (max 0 123.4 1234/11) 123.4) (num-test (max 0 123.4) 123.4) (num-test (max 0 1234 1) 1234) (num-test (max 0 1234 1.0) 1234.0) (num-test (max 0 1234 1/1) 1234) (num-test (max 0 1234 123.4) 1234.0) (num-test (max 0 1234 1234) 1234) (num-test (max 0 1234 1234/11) 1234) (num-test (max 0 1234) 1234) (num-test (max 0 1234/11 1) 1234/11) (num-test (max 0 1234/11 1.0) 112.18181818181819) (num-test (max 0 1234/11 1/1) 1234/11) (num-test (max 0 1234/11 123.4) 123.4) (num-test (max 0 1234/11 1234) 1234) (num-test (max 0 1234/11 1234/11) 1234/11) (num-test (max 0 1234/11) 1234/11) (num-test (max 0) 0) (num-test (max 0.0 1 1) 1.0) (num-test (max 0.0 1 1.0) 1.0) (num-test (max 0.0 1 1/1) 1.0) (num-test (max 0.0 1 123.4) 123.4) (num-test (max 0.0 1 1234) 1234.0) (num-test (max 0.0 1 1234/11) 112.18181818181819) (num-test (max 0.0 1) 1.0) (num-test (max 0.0 1.0 1) 1.0) (num-test (max 0.0 1.0 1.0) 1.0) (num-test (max 0.0 1.0 1/1) 1.0) (num-test (max 0.0 1.0 123.4) 123.4) (num-test (max 0.0 1.0 1234) 1234.0) (num-test (max 0.0 1.0 1234/11) 112.18181818181819) (num-test (max 0.0 1.0) 1.0) (num-test (max 0.0 1/1) 1.0) (num-test (max 0.0 123.4 1) 123.4) (num-test (max 0.0 123.4 1.0) 123.4) (num-test (max 0.0 123.4 1/1) 123.4) (num-test (max 0.0 123.4 123.4) 123.4) (num-test (max 0.0 123.4 1234) 1234.0) (num-test (max 0.0 123.4 1234/11) 123.4) (num-test (max 0.0 123.4) 123.4) (num-test (max 0.0 1234 1) 1234.0) (num-test (max 0.0 1234 1.0) 1234.0) (num-test (max 0.0 1234 1/1) 1234.0) (num-test (max 0.0 1234 123.4) 1234.0) (num-test (max 0.0 1234 1234) 1234.0) (num-test (max 0.0 1234 1234/11) 1234.0) (num-test (max 0.0 1234) 1234.0) (num-test (max 0.0 1234/11 1) 112.18181818181819) (num-test (max 0.0 1234/11 1.0) 112.18181818181819) (num-test (max 0.0 1234/11 1/1) 112.18181818181819) (num-test (max 0.0 1234/11 123.4) 123.4) (num-test (max 0.0 1234/11 1234) 1234.0) (num-test (max 0.0 1234/11 1234/11) 112.18181818181819) (num-test (max 0.0 1234/11) 112.18181818181819) (num-test (max 0.0) 0.0) (num-test (max 0/1) 0/1) (num-test (max 0/1) 0/1) (num-test (max 1 -1/2) 1) (num-test (max 1 1 1) 1) (num-test (max 1 1 1.0) 1.0) (num-test (max 1 1 1/1) 1) (num-test (max 1 1 123.4) 123.4) (num-test (max 1 1 1234) 1234) (num-test (max 1 1 1234/11) 1234/11) (num-test (max 1 1) 1) (num-test (max 1 1.0 1) 1.0) (num-test (max 1 1.0 1.0) 1.0) (num-test (max 1 1.0 1/1) 1.0) (num-test (max 1 1.0 123.4) 123.4) (num-test (max 1 1.0 1234) 1234.0) (num-test (max 1 1.0 1234/11) 112.18181818181819) (num-test (max 1 1.0) 1.0) (num-test (max 1 1/1) 1) (num-test (max 1 1/2) 1) (num-test (max 1 123.4 1) 123.4) (num-test (max 1 123.4 1.0) 123.4) (num-test (max 1 123.4 1/1) 123.4) (num-test (max 1 123.4 123.4) 123.4) (num-test (max 1 123.4 1234) 1234.0) (num-test (max 1 123.4 1234/11) 123.4) (num-test (max 1 123.4) 123.4) (num-test (max 1 1234 1) 1234) (num-test (max 1 1234 1.0) 1234.0) (num-test (max 1 1234 1/1) 1234) (num-test (max 1 1234 123.4) 1234.0) (num-test (max 1 1234 1234) 1234) (num-test (max 1 1234 1234/11) 1234) (num-test (max 1 1234) 1234) (num-test (max 1 1234/11 1) 1234/11) (num-test (max 1 1234/11 1.0) 112.18181818181819) (num-test (max 1 1234/11 1/1) 1234/11) (num-test (max 1 1234/11 123.4) 123.4) (num-test (max 1 1234/11 1234) 1234) (num-test (max 1 1234/11 1234/11) 1234/11) (num-test (max 1 1234/11) 1234/11) (num-test (max 1 3 2 -7) 3) (num-test (max 1 3 2 -7) 3) (num-test (max 1.0 1 1) 1.0) (num-test (max 1.0 1 1.0) 1.0) (num-test (max 1.0 1 1/1) 1.0) (num-test (max 1.0 1 123.4) 123.4) (num-test (max 1.0 1 1234) 1234.0) (num-test (max 1.0 1 1234/11) 112.18181818181819) (num-test (max 1.0 1) 1.0) (num-test (max 1.0 1.0 1) 1.0) (num-test (max 1.0 1.0 1.0) 1.0) (num-test (max 1.0 1.0 1/1) 1.0) (num-test (max 1.0 1.0 123.4) 123.4) (num-test (max 1.0 1.0 1234) 1234.0) (num-test (max 1.0 1.0 1234/11) 112.18181818181819) (num-test (max 1.0 1.0) 1.0) (num-test (max 1.0 1/1) 1.0) (num-test (max 1.0 123.4 1) 123.4) (num-test (max 1.0 123.4 1.0) 123.4) (num-test (max 1.0 123.4 1/1) 123.4) (num-test (max 1.0 123.4 123.4) 123.4) (num-test (max 1.0 123.4 1234) 1234.0) (num-test (max 1.0 123.4 1234/11) 123.4) (num-test (max 1.0 123.4) 123.4) (num-test (max 1.0 1234 1) 1234.0) (num-test (max 1.0 1234 1.0) 1234.0) (num-test (max 1.0 1234 1/1) 1234.0) (num-test (max 1.0 1234 123.4) 1234.0) (num-test (max 1.0 1234 1234) 1234.0) (num-test (max 1.0 1234 1234/11) 1234.0) (num-test (max 1.0 1234) 1234.0) (num-test (max 1.0 1234/11 1) 112.18181818181819) (num-test (max 1.0 1234/11 1.0) 112.18181818181819) (num-test (max 1.0 1234/11 1/1) 112.18181818181819) (num-test (max 1.0 1234/11 123.4) 123.4) (num-test (max 1.0 1234/11 1234) 1234.0) (num-test (max 1.0 1234/11 1234/11) 112.18181818181819) (num-test (max 1.0 1234/11) 112.18181818181819) (num-test (max 1.0) 1.0) (num-test (max 1.110223024625156799999999999999999999997E-16 -9223372036854775808) 1.110223024625156799999999999999999999997E-16) (num-test (max 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) 1.110223024625156799999999999999999999997E-16) (num-test (max 1/2 -1) 1/2) (num-test (max 1/2 1) 1) (num-test (max 1/461168601842738841 1/461168601842738790) 1/461168601842738790) (num-test (max 1/4611686018427388416 1/4611686018427387904) 1/4611686018427387904) (num-test (max 1/461168601842738848 1/461168601842738790) 1/461168601842738790) (num-test (max 1/9223372036854775300 1/9223372036854775807) 1/9223372036854775300) (num-test (max 1/9223372036854775807 1/9223372036854775300) 1/9223372036854775300) (num-test (max 1/9223372036854775807 1/9223372036854775806) 1/9223372036854775806) (num-test (max 1/9223372036854775807 2/9223372036854775807) 2/9223372036854775807) (num-test (max 10) 10) (num-test (max 10/3) 10/3) (num-test (max 123.4 1 1) 123.4) (num-test (max 123.4 1 1.0) 123.4) (num-test (max 123.4 1 1/1) 123.4) (num-test (max 123.4 1 123.4) 123.4) (num-test (max 123.4 1 1234) 1234.0) (num-test (max 123.4 1 1234/11) 123.4) (num-test (max 123.4 1) 123.4) (num-test (max 123.4 1.0 1) 123.4) (num-test (max 123.4 1.0 1.0) 123.4) (num-test (max 123.4 1.0 1/1) 123.4) (num-test (max 123.4 1.0 123.4) 123.4) (num-test (max 123.4 1.0 1234) 1234.0) (num-test (max 123.4 1.0 1234/11) 123.4) (num-test (max 123.4 1.0) 123.4) (num-test (max 123.4 1/1) 123.4) (num-test (max 123.4 123.4 1) 123.4) (num-test (max 123.4 123.4 1.0) 123.4) (num-test (max 123.4 123.4 1/1) 123.4) (num-test (max 123.4 123.4 123.4) 123.4) (num-test (max 123.4 123.4 1234) 1234.0) (num-test (max 123.4 123.4 1234/11) 123.4) (num-test (max 123.4 123.4) 123.4) (num-test (max 123.4 1234 1) 1234.0) (num-test (max 123.4 1234 1.0) 1234.0) (num-test (max 123.4 1234 1/1) 1234.0) (num-test (max 123.4 1234 123.4) 1234.0) (num-test (max 123.4 1234 1234) 1234.0) (num-test (max 123.4 1234 1234/11) 1234.0) (num-test (max 123.4 1234) 1234.0) (num-test (max 123.4 1234/11 1) 123.4) (num-test (max 123.4 1234/11 1.0) 123.4) (num-test (max 123.4 1234/11 1/1) 123.4) (num-test (max 123.4 1234/11 123.4) 123.4) (num-test (max 123.4 1234/11 1234) 1234.0) (num-test (max 123.4 1234/11 1234/11) 123.4) (num-test (max 123.4 1234/11) 123.4) (num-test (max 1234 1 1) 1234) (num-test (max 1234 1 1.0) 1234.0) (num-test (max 1234 1 1/1) 1234) (num-test (max 1234 1 123.4) 1234.0) (num-test (max 1234 1 1234) 1234) (num-test (max 1234 1 1234/11) 1234) (num-test (max 1234 1) 1234) (num-test (max 1234 1.0 1) 1234.0) (num-test (max 1234 1.0 1.0) 1234.0) (num-test (max 1234 1.0 1/1) 1234.0) (num-test (max 1234 1.0 123.4) 1234.0) (num-test (max 1234 1.0 1234) 1234.0) (num-test (max 1234 1.0 1234/11) 1234.0) (num-test (max 1234 1.0) 1234.0) (num-test (max 1234 1/1) 1234) (num-test (max 1234 123.4 1) 1234.0) (num-test (max 1234 123.4 1.0) 1234.0) (num-test (max 1234 123.4 1/1) 1234.0) (num-test (max 1234 123.4 123.4) 1234.0) (num-test (max 1234 123.4 1234) 1234.0) (num-test (max 1234 123.4 1234/11) 1234.0) (num-test (max 1234 123.4) 1234.0) (num-test (max 1234 1234 1) 1234) (num-test (max 1234 1234 1.0) 1234.0) (num-test (max 1234 1234 1/1) 1234) (num-test (max 1234 1234 123.4) 1234.0) (num-test (max 1234 1234 1234) 1234) (num-test (max 1234 1234 1234/11) 1234) (num-test (max 1234 1234) 1234) (num-test (max 1234 1234/11 1) 1234) (num-test (max 1234 1234/11 1.0) 1234.0) (num-test (max 1234 1234/11 1/1) 1234) (num-test (max 1234 1234/11 123.4) 1234.0) (num-test (max 1234 1234/11 1234) 1234) (num-test (max 1234 1234/11 1234/11) 1234) (num-test (max 1234 1234/11) 1234) (num-test (max 1234/11 1 1) 1234/11) (num-test (max 1234/11 1 1.0) 112.18181818181819) (num-test (max 1234/11 1 1/1) 1234/11) (num-test (max 1234/11 1 123.4) 123.4) (num-test (max 1234/11 1 1234) 1234) (num-test (max 1234/11 1 1234/11) 1234/11) (num-test (max 1234/11 1) 1234/11) (num-test (max 1234/11 1.0 1) 112.18181818181819) (num-test (max 1234/11 1.0 1.0) 112.18181818181819) (num-test (max 1234/11 1.0 1/1) 112.18181818181819) (num-test (max 1234/11 1.0 123.4) 123.4) (num-test (max 1234/11 1.0 1234) 1234.0) (num-test (max 1234/11 1.0 1234/11) 112.18181818181819) (num-test (max 1234/11 1.0) 112.18181818181819) (num-test (max 1234/11 1/1) 1234/11) (num-test (max 1234/11 123.4 1) 123.4) (num-test (max 1234/11 123.4 1.0) 123.4) (num-test (max 1234/11 123.4 1/1) 123.4) (num-test (max 1234/11 123.4 123.4) 123.4) (num-test (max 1234/11 123.4 1234) 1234.0) (num-test (max 1234/11 123.4 1234/11) 123.4) (num-test (max 1234/11 123.4) 123.4) (num-test (max 1234/11 1234 1) 1234) (num-test (max 1234/11 1234 1.0) 1234.0) (num-test (max 1234/11 1234 1/1) 1234) (num-test (max 1234/11 1234 123.4) 1234.0) (num-test (max 1234/11 1234 1234) 1234) (num-test (max 1234/11 1234 1234/11) 1234) (num-test (max 1234/11 1234) 1234) (num-test (max 1234/11 1234/11 1) 1234/11) (num-test (max 1234/11 1234/11 1.0) 112.18181818181819) (num-test (max 1234/11 1234/11 1/1) 1234/11) (num-test (max 1234/11 1234/11 123.4) 123.4) (num-test (max 1234/11 1234/11 1234) 1234) (num-test (max 1234/11 1234/11 1234/11) 1234/11) (num-test (max 1234/11 1234/11) 1234/11) (num-test (max 1234000000) 1234000000) (num-test (max 1234000000.0) 1234000000.0) (num-test (max 1234000000/10) 1234000000/10) (num-test (max 1e+16 9223372036854775807 1e+17) 9223372036854775807.0) (num-test (max 2 1+0i) 2) (num-test (max 2) 2) (num-test (max 2.71828182845905) 2.71828182845905) (num-test (max 2/2) 2/2) (num-test (max 2/9223372036854775807 1/9223372036854775807) 2/9223372036854775807) (num-test (max 3) 3) (num-test (max 3.0 7 1) 7.0) (num-test (max 3/2 -1/2) 3/2) (num-test (max 3/2 -6/5) 3/2) (num-test (max 3/2 1/2) 3/2) (num-test (max 3/2 6/5) 3/2) (num-test (max 34 5 7 38 6) 38 ) (num-test (max 362880) 362880) (num-test (max 362880/1234) 362880/1234) (num-test (max 5.0 2) 5.0) (num-test (max 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 1.110223024625156799999999999999999999997E-16) (num-test (max 6 12) 12) (num-test (max 92233720368547758/9223372036854775807 92233720368547757/9223372036854775807) 13176245766935394/1317624576693539401) (num-test (max 9223372036854775805/9223372036854775807 9223372036854775806/9223372036854775807) 9223372036854775806/9223372036854775807) (num-test (max 9223372036854775806/9223372036854775807 9223372036854775805/9223372036854775807) 9223372036854775806/9223372036854775807) (num-test (max 9223372036854775807 -9223372036854775808) 9223372036854775807) (num-test (max 92233720368547757/9223372036854775807 92233720368547758/9223372036854775807) 13176245766935394/1317624576693539401) ;; after reduction this is 13176245766935394/1317624576693539401 and 92233720368547757/9223372036854775807 -> ;; 9.999999999999999992410584792601468961145E-3 ;; 9.999999999999999883990367544051025548645E-3 ;; but in doubles-land, they're exactly the same, so we have to hope long doubles work in the non-gmp case (num-test (max 9223372036854776/9223372036854775807 9223372036854775/9223372036854775807) 9223372036854776/9223372036854775807) (num-test (max 9223372036854776/9223372036854775807 9223372036854775/922337203685477500) 1/100) (num-test (max 9223372036854775/922337203685477500 9223372036854776/9223372036854775807) 1/100) (num-test (max 9223372036854776/9223372036854775807 9223372036854775/9223372036854774806) 9223372036854775/9223372036854774806) (num-test (max 9223372036854775/9223372036854774806 9223372036854776/9223372036854775807) 9223372036854775/9223372036854774806) (num-test (max 9223372036854776/9223372036854775807 9223372036854775/9223372036854775000) 9223372036854776/9223372036854775807) ;; mpfr says the 1st fraction is 1.000000000000000020925101928970235578612E-3 ;; This depends on the platform ;;(num-test (max 1e18 most-positive-fixnum) (exact->inexact most-positive-fixnum)) ; in bignum case there's type confusion here I think (hence num-test) (num-test (max 12345678901234567890 12345678901234567891) 12345678901234567891) (num-test (max 9223372036854776/9223372036854775807 #i9223372036854775/9223372036854775000) 1.000000000000000020925101928970235578612E-3) (num-test (max #i9223372036854776/9223372036854775807 9223372036854775/9223372036854775000) 1.000000000000000020925101928970235578612E-3) (num-test (max #i92233720368547757/9223372036854775807 92233720368547758/9223372036854775807) 9.999999999999999992410584792601468961145E-3) (num-test (max 92233720368547757/9223372036854775807 #i92233720368547758/9223372036854775807) 9.999999999999999992410584792601468961145E-3) ;; in these cases, the non-gmp s7 can't win: ;; :(max 9223372036854776/9223372036854775807 #i9223372036854775/9223372036854775000) ;; 9223372036854776/9223372036854775807 ;; :(max #i9223372036854776/9223372036854775807 9223372036854775/9223372036854775000) ;; 0.001 ;; :(max #i92233720368547757/9223372036854775807 92233720368547758/9223372036854775807) ;; 0.01 ;; :(max 92233720368547757/9223372036854775807 #i92233720368547758/9223372036854775807) ;; 92233720368547757/9223372036854775807 (s7-test (max) 'error) ;; XXX TODO FIXME Do we really want to be *this* strict? ;; This kills optimization possibilities. ;; OTOH, (min 'x) => x is clearly buggy ;; (s7-test (max 1.23+1.0i) 'error) ;; (s7-test (max -0.0+0.00000001i) 'error) ;; (s7-test (max -1.0+1.0i) 'error) ;; (s7-test (max -1234000000.0+2.71828182845905i) 'error) ;; (s7-test (max -2.71828182845905+3.14159265358979i) 'error) ;; (s7-test (max 0.0+0.00000001i) 'error) ;; (s7-test (max 1.0+1.0i) 'error) ;; (s7-test (max 1234000000.0+2.71828182845905i) 'error) ;; (s7-test (max 2.71828182845905+3.14159265358979i) 'error) (s7-test (max nan.0 1+i) 'error) (s7-test (max nan.0 1 1+i) 'error) (s7-test (max 1 nan.0 2 1+i) 'error) (s7-test (max inf.0 1+i) 'error) (s7-test (max inf.0 nan.0 0-i 1) 'error) (let ((top-exp 60)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (+ 2 (expt 2 i))) (val2 (- val1 1))) (if (not (= val1 (max val1 val2))) (begin (set! happy #f) (display "(max ") (display val1) (display " ") (display val2) (display ") -> ") (display (max val1 val2)) (display "?") (newline))) (if (not (= val2 (min val1 val2))) (begin (set! happy #f) (display "(min ") (display val1) (display " ") (display val2) (display ") -> ") (display (min val1 val2)) (display "?") (newline)))))) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (/ (expt 2 i) 3)) (val2 (/ (+ 1 (expt 2 i)) 3))) (if (not (= val2 (max val1 val2))) (begin (set! happy #f) (display "(max ") (display val1) (display " ") (display val2) (display ") -> ") (display (max val1 val2)) (display "?") (newline))) (if (not (= val2 (max val2 val1))) (begin (set! happy #f) (display "(max ") (display val1) (display " ") (display val2) (display ") -> ") (display (max val2 val1)) (display "?") (newline))) (if (not (= val1 (min val1 val2))) (begin (set! happy #f) (display "(min ") (display val1) (display " ") (display val2) (display ") -> ") (display (min val1 val2)) (display "?") (newline))) (if (not (= val1 (min val2 val1))) (begin (set! happy #f) (display "(min ") (display val1) (display " ") (display val2) (display ") -> ") (display (min val2 val1)) (display "?") (newline))) )))) (test-end "max") ;;; -------------------------------------------------------------------------------- ;;; < ;;; -------------------------------------------------------------------------------- (test-begin "<") (s7-test (< 0 1 1) #f) (s7-test (< 0 1 1.0) #f) (s7-test (< 0 1 1/1) #f) (s7-test (< 0 1 123.4) #t) (s7-test (< 0 1 1234) #t) (s7-test (< 0 1 1234/11) #t) (s7-test (< 0 1) #t) (s7-test (< 0 1.0 1) #f) (s7-test (< 0 1.0 1.0) #f) (s7-test (< 0 1.0 1/1) #f) (s7-test (< 0 1.0 123.4) #t) (s7-test (< 0 1.0 1234) #t) (s7-test (< 0 1.0 1234/11) #t) (s7-test (< 0 1.0) #t) (s7-test (< 0 123.4) #t) (s7-test (< 0 1234) #t) (s7-test (< 0 1234/11) #t) (s7-test (< 0.0 1 1.0) #f) (s7-test (< 0.0 1 1/1) #f) (s7-test (< 0.0 1 123.4) #t) (s7-test (< 0.0 1 1234) #t) (s7-test (< 0.0 1 1234/11) #t) (s7-test (< 0.0 1) #t) (s7-test (< 0.0 1.0 1) #f) (s7-test (< 0.0 1.0 1.0) #f) (s7-test (< 0.0 1.0 1/1) #f) (s7-test (< 0.0 1.0 123.4) #t) (s7-test (< 0.0 1.0 1234) #t) (s7-test (< 0.0 1.0 1234/11) #t) (s7-test (< 0.0 1.0) #t) (s7-test (< 0.0 123.4 1) #f) (s7-test (< 0.0 123.4 1.0) #f) (s7-test (< 0.0 123.4 1/1) #f) (s7-test (< 0.0 123.4 123.4) #f) (s7-test (< 0.0 123.4 1234) #t) (s7-test (< 0.0 123.4 1234/11) #f) (s7-test (< 0.0 123.4) #t) (s7-test (< 0.0 1234 1) #f) (s7-test (< 0.0 1234 1.0) #f) (s7-test (< 0.0 1234 1/1) #f) (s7-test (< 0.0 1234 123.4) #f) (s7-test (< 0.0 1234 1234) #f) (s7-test (< 0.0 1234 1234/11) #f) (s7-test (< 0.0 1234) #t) (s7-test (< 0.0 1234/11 1) #f) (s7-test (< 0.0 1234/11 1.0) #f) (s7-test (< 0.0 1234/11 1/1) #f) (s7-test (< 0.0 1234/11 123.4) #t) (s7-test (< 0.0 1234/11 1234) #t) (s7-test (< 0.0 1234/11 1234/11) #f) (s7-test (< 0.0 1234/11) #t) (s7-test (< 1 1 1) #f) (s7-test (< 1 1 1.0) #f) (s7-test (< 1 1 1/1) #f) (s7-test (< 1 1 123.4) #f) (s7-test (< 1 1 1234) #f) (s7-test (< 1 1 1234/11) #f) (s7-test (< 1 1) #f) (s7-test (< 1 1.0 1) #f) (s7-test (< 1 1.0 1.0) #f) (s7-test (< 1 1.0 1/1) #f) (s7-test (< 1 1.0 123.4) #f) (s7-test (< 1 1.0 1234) #f) (s7-test (< 1 1.0 1234/11) #f) (s7-test (< 1 1.0) #f) (s7-test (< 1 1/1) #f) (s7-test (< 1 123.4) #t) (s7-test (< 1 1234) #t) (s7-test (< 1 1234/11) #t) (s7-test (< 1.0 1 1) #f) (s7-test (< 1.0 1 1.0) #f) (s7-test (< 1.0 1 1/1) #f) (s7-test (< 1.0 1 123.4) #f) (s7-test (< 1.0 1 1234) #f) (s7-test (< 1.0 1 1234/11) #f) (s7-test (< 1.0 1) #f) (s7-test (< 1.0 1.0 1) #f) (s7-test (< 1.0 1.0 1.0) #f) (s7-test (< 1.0 1.0 1/1) #f) (s7-test (< 1.0 1.0 123.4) #f) (s7-test (< 1.0 1.0 1234) #f) (s7-test (< 1.0 1.0 1234/11) #f) (s7-test (< 1.0 1.0) #f) (s7-test (< 1.0 123.4 1) #f) (s7-test (< 1.0 123.4 1.0) #f) (s7-test (< 1.0 123.4 1/1) #f) (s7-test (< 1.0 123.4 123.4) #f) (s7-test (< 1.0 123.4 1234) #t) (s7-test (< 1.0 123.4 1234/11) #f) (s7-test (< 1.0 123.4) #t) (s7-test (< 1.0 1234 1) #f) (s7-test (< 1.0 1234 1.0) #f) (s7-test (< 1.0 1234 1/1) #f) (s7-test (< 1.0 1234 123.4) #f) (s7-test (< 1.0 1234 1234) #f) (s7-test (< 1.0 1234 1234/11) #f) (s7-test (< 1.0 1234) #t) (s7-test (< 1.0 1234/11 1) #f) (s7-test (< 1.0 1234/11 1.0) #f) (s7-test (< 1.0 1234/11 1/1) #f) (s7-test (< 1.0 1234/11 123.4) #t) (s7-test (< 1.0 1234/11 1234) #t) (s7-test (< 1.0 1234/11 1234/11) #f) (s7-test (< 1.0 1234/11) #t) (s7-test (< 123.4 1 1) #f) (s7-test (< 123.4 1 1.0) #f) (s7-test (< 123.4 1 1/1) #f) (s7-test (< 123.4 1 123.4) #f) (s7-test (< 123.4 1 1234) #f) (s7-test (< 123.4 1 1234/11) #f) (s7-test (< 123.4 1) #f) (s7-test (< 123.4 1.0 1) #f) (s7-test (< 123.4 1.0 1.0) #f) (s7-test (< 123.4 1.0 1/1) #f) (s7-test (< 123.4 1.0 123.4) #f) (s7-test (< 123.4 1.0 1234) #f) (s7-test (< 123.4 1.0 1234/11) #f) (s7-test (< 123.4 1.0) #f) (s7-test (< 123.4 123.4 1) #f) (s7-test (< 123.4 123.4 1.0) #f) (s7-test (< 123.4 123.4 1/1) #f) (s7-test (< 123.4 123.4 123.4) #f) (s7-test (< 123.4 123.4 1234) #f) (s7-test (< 123.4 123.4 1234/11) #f) (s7-test (< 123.4 123.4) #f) (s7-test (< 123.4 1234 1) #f) (s7-test (< 123.4 1234 1.0) #f) (s7-test (< 123.4 1234 1/1) #f) (s7-test (< 123.4 1234 123.4) #f) (s7-test (< 123.4 1234 1234) #f) (s7-test (< 123.4 1234 1234/11) #f) (s7-test (< 123.4 1234) #t) (s7-test (< 123.4 1234/11 1) #f) (s7-test (< 123.4 1234/11 1.0) #f) (s7-test (< 123.4 1234/11 1/1) #f) (s7-test (< 123.4 1234/11 123.4) #f) (s7-test (< 123.4 1234/11 1234) #f) (s7-test (< 123.4 1234/11 1234/11) #f) (s7-test (< 123.4 1234/11) #f) (s7-test (< 1234 1) #f) (s7-test (< 1234 1.0) #f) (s7-test (< 1234 1/1) #f) (s7-test (< 1234 123.4) #f) (s7-test (< 1234 1234) #f) (s7-test (< 1234 1234/11) #f) (s7-test (< 1234/11 1) #f) (s7-test (< 1234/11 1.0) #f) (s7-test (< 1234/11 1/1) #f) (s7-test (< 1234/11 123.4) #t) (s7-test (< 1234/11 1234) #t) (s7-test (< 1234/11 1234/11) #f) (s7-test (< -0 0) #f) (s7-test (< -0.0 0.0) #f) (s7-test (< -1 2 3 4 4 5 6 7) #f ) (s7-test (< -1 2 3 4 5 6 7 8) #t ) (s7-test (< 0 -0) #f) (s7-test (< 0.0 -0.0) #f) (s7-test (< 1 0+i) 'error) (s7-test (< 1 0-i) 'error) (s7-test (< 1 1 2) #f) (s7-test (< 1 3 2) #f ) (s7-test (< 1+i 0+i) 'error) (s7-test (< 1+i 0-i) 'error) ;; XXX TODO Do we want to be this strict? ;(s7-test (< 2 1 #\a) 'error) ;; "if any of the arguments are nan, [<] returns nan". Of course the type checks ;; still need to be done, the question is if we want to be this strict. ;(s7-test (< nan.0 1+i) 'error) ;(s7-test (< nan.0 1 1+i) 'error) ;(s7-test (< 1 nan.0 1+i) 'error) (s7-test (< inf.0 1+i) 'error) ;(s7-test (< inf.0 nan.0 0-i 1) 'error) (s7-test (< 2 1+0/2i) #f) (s7-test (< 2 1+0i) #f) (s7-test (< 2 1-0i) #f) (s7-test (< -5 -4 -2 0 4 5) #t) (s7-test (< 0 3 4 4 6) #f) (s7-test (< 0 3 4 6 7) #t) (s7-test (< 0) 'error) (s7-test (<) 'error) (s7-test (< 0.0) 'error) (s7-test (< 0.0+0.00000001i) 'error) (s7-test (< 0/1) 'error) (s7-test (< 1.0) 'error) (s7-test (< 1.0+1.0i) 'error) (s7-test (< 10/3) 'error) (s7-test (< 1234000000.0+2.71828182845905i) 'error) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (< 2 1 #\a) 'error) ;(s7-test (< 2 1 1.0+1.0i) 'error) (s7-test (< 2) 'error) (s7-test (< 2.71828182845905+3.14159265358979i) 'error) (s7-test (< 3 -5) #f) (s7-test (< 3 3) #f) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (< 3 3.0 3 3.0+1.0i) 'error) (s7-test (< 3 5) #t) (s7-test (< 3.0 3) #f) (s7-test (< 1/123400000000 .000000000001) #f) (s7-test (< -1/9223372036854775807 -1/9223372036854775806) #f) (s7-test (< -10/3147483647 -40/12345678901) #f) (s7-test (< -101/3147483647 40/12345678901) #t) (s7-test (< -1047483646/11111111111111 -1234567890213/12345678901123123) #f) (s7-test (< -1047483646/11111111111111 1234567890213/12345678901123123) #t) (s7-test (< -11/3147483647 -40/12345678901) #t) (s7-test (< -1282469252763/12824692526603504 -1234567890213/12345678901123123) #f) (s7-test (< -1282469252763/12824692526603504 1234567890213/12345678901123123) #t) (s7-test (< -1282469252765/12824692526603504 -1234567890213/12345678901123123) #t) (s7-test (< -1282469252765/12824692526603504 1234567890213/12345678901123123) #t) (s7-test (< -2/3 -3147483547123/4) #f) (s7-test (< -2/3 3147483547123/4) #t) (s7-test (< -2/3147483547 -3147483547/3) #f) (s7-test (< -2/3147483547 3147483547/3) #t) (s7-test (< -2147483646/11111111111111 -1234567890213/12345678901123123) #t) (s7-test (< -2147483646/11111111111111 1234567890213/12345678901123123) #t) (s7-test (< -3147483547/2 -3/3147483547) #t) (s7-test (< -3147483547/2 -3147483547/3) #t) (s7-test (< -3147483547/2 3/3147483547) #t) (s7-test (< -3147483547/2 3147483547/3) #t) (s7-test (< -3147483646/11 -12345678901/40) #f) (s7-test (< -3147483646/11 -1234567890213/12345678901123123) #t) (s7-test (< -3147483646/11 -40/12345678901) #t) (s7-test (< -3147483646/11 12345678901/40) #t) (s7-test (< -3147483646/11 1234567890213/12345678901123123) #t) (s7-test (< -3147483646/11 40/12345678901) #t) (s7-test (< -3147483646/11111111111111 -1234567890213/12345678901123123) #t) (s7-test (< -3147483646/11111111111111 1234567890213/12345678901123123) #t) (s7-test (< -3147483646/111111111111111 -1234567890213/12345678901123123) #f) (s7-test (< -3147483646/111111111111111 1234567890213/12345678901123123) #t) (s7-test (< 1/9223372036854775807 1/9223372036854775806) #t) (s7-test (< 10/3147483647 40/12345678901) #t) (s7-test (< 100000000000000.0 100000000000001.0) #t) (s7-test (< 100000000000000/3 100000000000001/3) #t) (s7-test (< 1000000000000000000/3 1000000000000000001/3) #t) (s7-test (< 1047483646/11111111111111 -1234567890213/12345678901123123) #f) (s7-test (< 1047483646/11111111111111 1234567890213/12345678901123123) #t) (s7-test (< 11/3147483647 40/12345678901) #f) (s7-test (< 1282469252763/12824692526603504 -1234567890213/12345678901123123) #f) (s7-test (< 1282469252763/12824692526603504 1234567890213/12345678901123123) #t) (s7-test (< 1282469252765/12824692526603504 -1234567890213/12345678901123123) #f) (s7-test (< 1282469252765/12824692526603504 1234567890213/12345678901123123) #f) (s7-test (< 2/3 -3147483547123/4) #f) (s7-test (< 2/3 3147483547123/4) #t) (s7-test (< 2/3147483547 -3147483547/3) #f) (s7-test (< 2/3147483547 3147483547/3) #t) (s7-test (< 2147483646/11111111111111 -1234567890213/12345678901123123) #f) (s7-test (< 2147483646/11111111111111 1234567890213/12345678901123123) #f) (s7-test (< 3/147483647 40/3) #t) (s7-test (< 3/3147483647 -40/12345678901) #f) (s7-test (< 3/3147483647 40/12345678901) #t) (s7-test (< 3/3147483647 40/3) #t) (s7-test (< 3147483547/2 -3/3147483547) #f) (s7-test (< 3147483547/2 -3147483547/3) #f) (s7-test (< 3147483547/2 3/3147483547) #f) (s7-test (< 3147483547/2 3147483547/3) #f) (s7-test (< 3147483646/11 -12345678901/40) #f) (s7-test (< 3147483646/11 -1234567890213/12345678901123123) #f) (s7-test (< 3147483646/11 -40/12345678901) #f) (s7-test (< 3147483646/11 12345678901/40) #t) (s7-test (< 3147483646/11 1234567890213/12345678901123123) #f) (s7-test (< 3147483646/11 40/12345678901) #f) (s7-test (< 3147483646/11111111111111 -1234567890213/12345678901123123) #f) (s7-test (< 3147483646/11111111111111 1234567890213/12345678901123123) #f) (s7-test (< 3147483646/111111111111111 -1234567890213/12345678901123123) #f) (s7-test (< 3147483646/111111111111111 1234567890213/12345678901123123) #t) (s7-test (< -1.797693134862315699999999999999999999998E308 -9223372036854775808) #t) (s7-test (< -9223372036854775808 -9223372036854775808) #f) (s7-test (< -9223372036854775808 5.551115123125783999999999999999999999984E-17) #t) (s7-test (< -9223372036854775808 9223372036854775807 -9223372036854775808) #f) (s7-test (< 1.110223024625156799999999999999999999997E-16 -9223372036854775808) #f) (s7-test (< 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) #f) (s7-test (< 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) #t) (s7-test (< 9223372036854775807 -9223372036854775808) #f) (s7-test (< 9223372036854775807 9223372036854775807) #f) (s7-test (< (- 1237940039285380274899124223 1237940039285380000000000000) (- 1.2379400392853803e+27 1237940039285380000000000000) (- 1237940039285380274899124225 1237940039285380000000000000)) #f) (s7-test (< 0 most-negative-fixnum) #f) (s7-test (< 0 most-positive-fixnum) #t) (s7-test (< 274899124223 3.0E11 274899124225) #f) (s7-test (< most-negative-fixnum (real-part (log 0.0))) #f) (s7-test (< most-negative-fixnum 0) #t) (s7-test (< most-negative-fixnum most-positive-fixnum) #t) (s7-test (< most-positive-fixnum (- (real-part (log 0.0)))) #t) (s7-test (< most-positive-fixnum 0) #f) (s7-test (< most-positive-fixnum most-negative-fixnum) #f) (s7-test (< -1 1/9223372036854775807 9223372036854775807) #t) (s7-test (< -9223372036854775807 -1/9223372036854775807 1) #t) (s7-test (< -9223372036854775807 -1/9223372036854775807) #t) (s7-test (< 1 9223372036 1/9223372036 1.0) #f) (s7-test (< 1 9223372036 1/9223372036) #f) (s7-test (< 1 922337203685 1/922337203685 1.0) #f) (s7-test (< 1 922337203685 1/922337203685) #f) (s7-test (< 1.0 9223372036 1/9223372036 1) #f) (s7-test (< 1.0 9223372036 1/9223372036) #f) (s7-test (< 1.0 922337203685 1/922337203685 1) #f) (s7-test (< 1.0 922337203685 1/922337203685) #f) (s7-test (< 1/9223372036 9223372036) #t) (s7-test (< 1/922337203685 922337203685) #t) (s7-test (< 1/9223372036854775807 9223372036854775807) #t) (s7-test (< 9223372036 1/9223372036 1) #f) (s7-test (< 9223372036 1/9223372036 1.0) #f) (s7-test (< 9223372036 1/9223372036) #f) (s7-test (< 922337203685 1/922337203685 1) #f) (s7-test (< 922337203685 1/922337203685 1.0) #f) (s7-test (< 922337203685 1/922337203685) #f) (s7-test (< 1.0 9223372036854775807/9223372036854775806) #t) (s7-test (< 9223372036854775806/9223372036854775807 1.0 9223372036854775807/9223372036854775806) #t) (s7-test (< 9223372036854775806/9223372036854775807 1.0) #t) ;;; there are cases that look innocuous that the non-gmp version can't get right: ;;; (< 21053343141/6701487259 3587785776203/1142027682075) ;;; I'll put a few of these in the bignum section (s7-test (< (* 10400200/16483927 1.0) (* 10781274/17087915 1.0)) #f) (s7-test (< (* 10400200/16483927 1.0) 10781274/17087915) #f) (s7-test (< (* 10781274/17087915 1.0) (* 53715833/85137581 1.0)) #t) (s7-test (< (* 10781274/17087915 1.0) 53715833/85137581) #t) (s7-test (< (* 12/19 1.0) (* 53/84 1.0)) #f) (s7-test (< (* 12/19 1.0) 53/84) #f) (s7-test (< (* 12941/20511 1.0) (* 15601/24727 1.0)) #t) (s7-test (< (* 12941/20511 1.0) 15601/24727) #t) (s7-test (< (* 15601/24727 1.0) (* 79335/125743 1.0)) #t) (s7-test (< (* 15601/24727 1.0) 79335/125743) #t) ;;; (if with-bignums (s7-test (< (* 171928773/272500658 1.0) (* 397573379/630138897 1.0)) #t)) ;;; this requires more precision than 128 bits (s7-test (negative? (- 171928773/272500658 397573379/630138897)) #t) ; so the first is less ;; clisp, sbcl, guile, non-gmp s7 all say #f for the < comparison of reals (s7-test (< 171928773/272500658 397573379/630138897) #t) ;;; (= (* 171928773/272500658 1.0D0) (* 397573379/630138897 1.0D0)) -- clisp, sbcl, non-gmp s7, and guile say true ;; Overflow ;(s7-test (< (* 171928773/272500658 1.0) 397573379/630138897) #t) (s7-test (< (* 190537/301994 1.0) (* 7161071/11350029 1.0)) #t) (s7-test (< (* 190537/301994 1.0) 7161071/11350029) #t) (s7-test (< (* 2/3 1.0) (* 5/8 1.0)) #f) (s7-test (< (* 2/3 1.0) 5/8) #f) (s7-test (< (* 253/401 1.0) (* 665/1054 1.0)) #t) (s7-test (< (* 253/401 1.0) 665/1054) #t) ;(s7-test (< (* 397573379/630138897 1.0) (* 4201378396/6659027209 1.0)) #t) ;;; fraction -> double troubles -- this is ok if s7_Double is long double in s7.h ;(s7-test (< (* 397573379/630138897 1.0) 4201378396/6659027209) #t) ;(s7-test (< (* 4201378396/6659027209 1.0) (* 6189245291/9809721694 1.0)) #f) (s7-test (< (* 5/8 1.0) (* 12/19 1.0)) #t) (s7-test (< (* 5/8 1.0) 12/19) #t) (s7-test (< (* 53/84 1.0) (* 253/401 1.0)) #f) (s7-test (< (* 53/84 1.0) 253/401) #f) (s7-test (< (* 53715833/85137581 1.0) (* 171928773/272500658 1.0)) #f) ;; Overflow ;(s7-test (< (* 53715833/85137581 1.0) 171928773/272500658) #f) (s7-test (< 53715833/85137581 171928773/272500658) #f) (s7-test (< (* 665/1054 1.0) (* 12941/20511 1.0)) #f) (s7-test (< (* 665/1054 1.0) 12941/20511) #f) (s7-test (< (* 7161071/11350029 1.0) (* 10400200/16483927 1.0)) #f) (s7-test (< (* 7161071/11350029 1.0) 10400200/16483927) #f) (s7-test (< (* 79335/125743 1.0) (* 190537/301994 1.0)) #t) (s7-test (< (* 79335/125743 1.0) 190537/301994) #t) (s7-test (< 10400200/16483927 10781274/17087915) #f) (s7-test (< 10781274/17087915 53715833/85137581) #t) (s7-test (< 12/19 53/84) #f) (s7-test (< 12941/20511 15601/24727) #t) (s7-test (< 15601/24727 79335/125743) #t) (s7-test (< 171928773/272500658 397573379/630138897) #t) (s7-test (< 190537/301994 7161071/11350029) #t) (s7-test (< 2/3 5/8) #f) (s7-test (< 253/401 665/1054) #t) (s7-test (< 397573379/630138897 4201378396/6659027209) #t) (s7-test (< 4201378396/6659027209 6189245291/9809721694) #f) (s7-test (< 5/8 12/19) #t) (s7-test (< 53/84 253/401) #f) (s7-test (< 53715833/85137581 171928773/272500658) #f) (s7-test (< 665/1054 12941/20511) #f) (s7-test (< 7161071/11350029 10400200/16483927) #f) (s7-test (< 79335/125743 190537/301994) #t) (s7-test (< 131836323/93222358 110442295/78088974 125383891/88652904 61328902/43362679 138113653/97653429 254989762/180290825 393920845/278522218 100728653/71220318 175072959/123785551 278215191/196712393 ) #t) (s7-test (< 10812186007/7645370045 18338419250/12967220607 13343405959/9435212837 11079453630/7834356793 6071445385/4293160203 14707776949/10399968816 22357396263/15809066506 77901127500/55084415513 2284381030/1615301317 10340752226/7312016021 ) #t) (s7-test (< 886731088897/627013566048 1534756075495/1085236428449 244625906708/172976637487 1462171251759/1033911207374 1743861030874/1233095960377 954593412651/674999475361 ) #t) (s7-test (< 10651773591371/984771132841 1.081649758092772603273242802490196379734E1 22691355773217/2095909383391 1.082649668092772603273242802490196379733E1 11269199657045/1040794570824 1.08274965909277260327324280249019637973E1 ) #t) (s7-test (< 11320859/1046629 1.081649758092772603273242802490196379734E1 10021556/926421 1.081749668092772603273242802490196379733E1 12893515/1191902 1.08175965909277260327324280249019637973E1 ) #t) (s7-test (< 11320859/1046629 1.081649659092772603273242802490196379732E1 6398591/591558 1.081650658192772603273242802490196379729E1 14562686/1346339 1.081650758102772603273242802490196379731E1 ) #t) (s7-test (< 11320859/1046629 1.081649658102772603273242802490196379729E1 8517115/787419 1.081649668093772603273242802490196379735E1 9667298/893755 1.081649669092872603273242802490196379734E1 ) #t) (s7-test (< 1109328651/102558961 1.08164965809278260327324280249019637973E1 1412995811/130633408 1.081649658102773603273242802490196379729E1 753823853/69692053 1.081649658103772703273242802490196379731E1 ) #t) (s7-test (< 12345678901234567890 12345678901234567891) #t) (s7-test (< -9223372036854775808 -9223372036854775809) #f) (s7-test (< -9223372036854775809 -9223372036854775808) #t) (s7-test (< 9223372036854775808 9223372036854775807) #f) (s7-test (< 9223372036854775808 1e19) #t) (s7-test (< 9223372036854775807 85070591730234615865843651857942052865/9223372036854775807) #t) (s7-test (< 1.000e19 1267650600228229401496703205376 1e20) #f) (s7-test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075 2646693125139304345/842468587426513207) #t) (s7-test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075) #t) (s7-test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075 355/113) #t) (s7-test (< 21053343141/6701487259 3587785776203/1142027682075 355/113) #t) (s7-test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075) #t) (s7-test (< 21053343141/6701487259 3587785776203/1142027682075) #t) (s7-test (< 886731088897/627013566048 1534756075495/1085236428449 244625906708/172976637487 1462171251759/1033911207374 1743861030874/1233095960377 954593412651/674999475361 902779846866/638361751637 2968095823096/2098760683721 1684058273173/1190809024873 2947786590277/2084399887474 ) #t) (s7-test (< 1023286908188737/723573111879672 1763020673688684/1246643873737343 1430528867885681/1011536663165079 2711447141769903/1917282660774379 575142878279173/406687429382352 935610884438753/661576800938585 2339755998541282/1654457332890441 1443730843578617/1020871869702614 478219565475493/338152297643805 2026075188260327/1432651504812687 ) #t) (s7-test (< 1267650600228229401496703205376) 'error) (s7-test (< 1.0 1267650600228229401496703205376+i) 'error) (test-end "<") ;;; -------------------------------------------------------------------------------- ;;; <= ;;; -------------------------------------------------------------------------------- (test-begin "<=") (s7-test (<= 0 1 1) #t) (s7-test (<= 0 1 1.0) #t) (s7-test (<= 0 1 1/1) #t) (s7-test (<= 0 1 123.4) #t) (s7-test (<= 0 1 1234) #t) (s7-test (<= 0 1 1234/11) #t) (s7-test (<= 0 1) #t) (s7-test (<= 0 1.0 1) #t) (s7-test (<= 0 1.0 1.0) #t) (s7-test (<= 0 1.0 1/1) #t) (s7-test (<= 0 1.0 123.4) #t) (s7-test (<= 0 1.0 1234) #t) (s7-test (<= 0 1.0 1234/11) #t) (s7-test (<= 0 1.0) #t) (s7-test (<= 0 123.4) #t) (s7-test (<= 0 1234) #t) (s7-test (<= 0 1234/11) #t) (s7-test (<= 0.0 1 1.0) #t) (s7-test (<= 0.0 1 1/1) #t) (s7-test (<= 0.0 1 123.4) #t) (s7-test (<= 0.0 1 1234) #t) (s7-test (<= 0.0 1 1234/11) #t) (s7-test (<= 0.0 1) #t) (s7-test (<= 0.0 1.0 1) #t) (s7-test (<= 0.0 1.0 1.0) #t) (s7-test (<= 0.0 1.0 1/1) #t) (s7-test (<= 0.0 1.0 123.4) #t) (s7-test (<= 0.0 1.0 1234) #t) (s7-test (<= 0.0 1.0 1234/11) #t) (s7-test (<= 0.0 1.0) #t) (s7-test (<= 0.0 123.4 1) #f) (s7-test (<= 0.0 123.4 1.0) #f) (s7-test (<= 0.0 123.4 1/1) #f) (s7-test (<= 0.0 123.4 123.4) #t) (s7-test (<= 0.0 123.4 1234) #t) (s7-test (<= 0.0 123.4 1234/11) #f) (s7-test (<= 0.0 123.4) #t) (s7-test (<= 0.0 1234 1) #f) (s7-test (<= 0.0 1234 1.0) #f) (s7-test (<= 0.0 1234 1/1) #f) (s7-test (<= 0.0 1234 123.4) #f) (s7-test (<= 0.0 1234 1234) #t) (s7-test (<= 0.0 1234 1234/11) #f) (s7-test (<= 0.0 1234) #t) (s7-test (<= 0.0 1234/11 1) #f) (s7-test (<= 0.0 1234/11 1.0) #f) (s7-test (<= 0.0 1234/11 1/1) #f) (s7-test (<= 0.0 1234/11 123.4) #t) (s7-test (<= 0.0 1234/11 1234) #t) (s7-test (<= 0.0 1234/11 1234/11) #t) (s7-test (<= 0.0 1234/11) #t) (s7-test (<= 1 1 1) #t) (s7-test (<= 1 1 1.0) #t) (s7-test (<= 1 1 1/1) #t) (s7-test (<= 1 1 123.4) #t) (s7-test (<= 1 1 1234) #t) (s7-test (<= 1 1 1234/11) #t) (s7-test (<= 1 1) #t) (s7-test (<= 1 1.0 1) #t) (s7-test (<= 1 1.0 1.0) #t) (s7-test (<= 1 1.0 1/1) #t) (s7-test (<= 1 1.0 123.4) #t) (s7-test (<= 1 1.0 1234) #t) (s7-test (<= 1 1.0 1234/11) #t) (s7-test (<= 1 1.0) #t) (s7-test (<= 1 123.4) #t) (s7-test (<= 1 1234) #t) (s7-test (<= 1 1234/11) #t) (s7-test (<= 1.0 1 1) #t) (s7-test (<= 1.0 1 1.0) #t) (s7-test (<= 1.0 1 1/1) #t) (s7-test (<= 1.0 1 123.4) #t) (s7-test (<= 1.0 1 1234) #t) (s7-test (<= 1.0 1 1234/11) #t) (s7-test (<= 1.0 1) #t) (s7-test (<= 1.0 1.0 1) #t) (s7-test (<= 1.0 1.0 1.0) #t) (s7-test (<= 1.0 1.0 1/1) #t) (s7-test (<= 1.0 1.0 123.4) #t) (s7-test (<= 1.0 1.0 1234) #t) (s7-test (<= 1.0 1.0 1234/11) #t) (s7-test (<= 1.0 1.0) #t) (s7-test (<= 1.0 123.4 1) #f) (s7-test (<= 1.0 123.4 1.0) #f) (s7-test (<= 1.0 123.4 1/1) #f) (s7-test (<= 1.0 123.4 123.4) #t) (s7-test (<= 1.0 123.4 1234) #t) (s7-test (<= 1.0 123.4 1234/11) #f) (s7-test (<= 1.0 123.4) #t) (s7-test (<= 1.0 1234 1) #f) (s7-test (<= 1.0 1234 1.0) #f) (s7-test (<= 1.0 1234 1/1) #f) (s7-test (<= 1.0 1234 123.4) #f) (s7-test (<= 1.0 1234 1234) #t) (s7-test (<= 1.0 1234 1234/11) #f) (s7-test (<= 1.0 1234) #t) (s7-test (<= 1.0 1234/11 1) #f) (s7-test (<= 1.0 1234/11 1.0) #f) (s7-test (<= 1.0 1234/11 1/1) #f) (s7-test (<= 1.0 1234/11 123.4) #t) (s7-test (<= 1.0 1234/11 1234) #t) (s7-test (<= 1.0 1234/11 1234/11) #t) (s7-test (<= 1.0 1234/11) #t) (s7-test (<= 123.4 1 1) #f) (s7-test (<= 123.4 1 1.0) #f) (s7-test (<= 123.4 1 1/1) #f) (s7-test (<= 123.4 1 123.4) #f) (s7-test (<= 123.4 1 1234) #f) (s7-test (<= 123.4 1 1234/11) #f) (s7-test (<= 123.4 1) #f) (s7-test (<= 123.4 1.0 1) #f) (s7-test (<= 123.4 1.0 1.0) #f) (s7-test (<= 123.4 1.0 1/1) #f) (s7-test (<= 123.4 1.0 123.4) #f) (s7-test (<= 123.4 1.0 1234) #f) (s7-test (<= 123.4 1.0 1234/11) #f) (s7-test (<= 123.4 1.0) #f) (s7-test (<= 123.4 123.4 1) #f) (s7-test (<= 123.4 123.4 1.0) #f) (s7-test (<= 123.4 123.4 1/1) #f) (s7-test (<= 123.4 123.4 123.4) #t) (s7-test (<= 123.4 123.4 1234) #t) (s7-test (<= 123.4 123.4 1234/11) #f) (s7-test (<= 123.4 123.4) #t) (s7-test (<= 123.4 1234 1) #f) (s7-test (<= 123.4 1234 1.0) #f) (s7-test (<= 123.4 1234 1/1) #f) (s7-test (<= 123.4 1234 123.4) #f) (s7-test (<= 123.4 1234 1234) #t) (s7-test (<= 123.4 1234 1234/11) #f) (s7-test (<= 123.4 1234) #t) (s7-test (<= 123.4 1234/11 1) #f) (s7-test (<= 123.4 1234/11 1.0) #f) (s7-test (<= 123.4 1234/11 1/1) #f) (s7-test (<= 123.4 1234/11 123.4) #f) (s7-test (<= 123.4 1234/11 1234) #f) (s7-test (<= 123.4 1234/11 1234/11) #f) (s7-test (<= 123.4 1234/11) #f) (s7-test (<= 1234 1) #f) (s7-test (<= 1234 1.0) #f) (s7-test (<= 1234 1/1) #f) (s7-test (<= 1234 123.4) #f) (s7-test (<= 1234 1234) #t) (s7-test (<= 1234 1234/11) #f) (s7-test (<= 1234/11 1) #f) (s7-test (<= 1234/11 1.0) #f) (s7-test (<= 1234/11 1/1) #f) (s7-test (<= 1234/11 123.4) #t) (s7-test (<= 1234/11 1234) #t) (s7-test (<= 1234/11 1234/11) #t) (s7-test (<= -1 2 3 4 4 5 6 7) #t ) (s7-test (<= -1 2 3 4 5 6 7 8) #t ) (s7-test (<= 1 0+i) 'error) (s7-test (<= 1 0-i) 'error) (s7-test (<= 1+i 0+i) 'error) (s7-test (<= 1+i 0-i) 'error) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (<= 2 1 #\a) 'error) (s7-test (<= 2 1+0/2i) #f) (s7-test (<= 2 1+0i) #f) (s7-test (<= 2 1-0i) #f) (s7-test (<= 2 2 1) #f) (s7-test (<= 0 3 4 4 6) #t) (s7-test (<= 0 3 4 6 7) #t) (s7-test (<= 0) 'error) (s7-test (<=) 'error) (s7-test (<= 0.0) 'error) (s7-test (<= 0.0+0.00000001i) 'error) (s7-test (<= 0/1) 'error) (s7-test (<= 1 3 3 2 5) #f) (s7-test (<= 1.0) 'error) (s7-test (<= 1.0+1.0i) 'error) ;; "if any of the arguments are nan, [<=] returns nan". Of course the type checks ;; still need to be done, the question is if we want to be this strict. ;(s7-test (<= nan.0 1+i) 'error) ;(s7-test (<= nan.0 1 1+i) 'error) ;(s7-test (<= 1 nan.0 1+i) 'error) (s7-test (<= inf.0 1+i) 'error) ;(s7-test (<= inf.0 nan.0 0-i 1) 'error) (s7-test (<= 10/3) 'error) (s7-test (<= 1234000000.0+2.71828182845905i) 'error) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (<= 2 1 #\a) 'error) ;(s7-test (<= 2 1 1.0+1.0i) 'error) (s7-test (<= 2) 'error) (s7-test (<= 2.71828182845905+3.14159265358979i) 'error) (s7-test (<= 3 -5) #f) (s7-test (<= 3 3) #t) (s7-test (<= 3 3) #t) (s7-test (<= 3 5) #t) (s7-test (<= 3.0 3) #t) (s7-test (<= 5/2 2.5) #t) (s7-test (<= -1.797693134862315699999999999999999999998E308 -9223372036854775808) #t) (s7-test (<= -9223372036854775808 -9223372036854775808) #t) (s7-test (<= -9223372036854775808 5.551115123125783999999999999999999999984E-17) #t) (s7-test (<= -9223372036854775808 9223372036854775807 -9223372036854775808) #f) (s7-test (<= 1.110223024625156799999999999999999999997E-16 -9223372036854775808) #f) (s7-test (<= 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) #f) (s7-test (<= 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) #t) (s7-test (<= 9223372036854775807 -9223372036854775808) #f) (s7-test (<= 9223372036854775807 9223372036854775807) #t) (s7-test (<= -1 -1/9223372036854775807 -9223372036854775807 1) #f) (s7-test (<= -1 -1/9223372036854775807 -9223372036854775807) #f) (s7-test (<= -1 1 9223372036854775807 1/9223372036854775807) #f) (s7-test (<= -1 9223372036854775807 1/9223372036854775807 1) #f) (s7-test (<= -1 9223372036854775807 1/9223372036854775807) #f) (s7-test (<= -1/9223372036854775807 -9223372036854775807 -1 1) #f) (s7-test (<= -1/9223372036854775807 -9223372036854775807 -1) #f) (s7-test (<= -1/9223372036854775807 -9223372036854775807 1) #f) (s7-test (<= -1/9223372036854775807 -9223372036854775807) #f) (s7-test (<= 1 1.0 9223372036 1/9223372036) #f) (s7-test (<= 1 1.0 922337203685 1/922337203685) #f) (s7-test (<= 1 9223372036 1/9223372036 1.0) #f) (s7-test (<= 1 9223372036 1/9223372036) #f) (s7-test (<= 1 922337203685 1/922337203685 1.0) #f) (s7-test (<= 1 922337203685 1/922337203685) #f) (s7-test (<= 1 9223372036854775807 1/9223372036854775807) #f) (s7-test (<= 1.0 1 9223372036 1/9223372036) #f) (s7-test (<= 1.0 1 922337203685 1/922337203685) #f) (s7-test (<= 1.0 9223372036 1/9223372036 1) #f) (s7-test (<= 1.0 9223372036 1/9223372036) #f) (s7-test (<= 1.0 922337203685 1/922337203685 1) #f) (s7-test (<= 1.0 922337203685 1/922337203685) #f) (s7-test (<= 1/9223372036 9223372036) #t) (s7-test (<= 1/922337203685 922337203685) #t) (s7-test (<= 9223372036 1/9223372036 1 1.0) #f) (s7-test (<= 9223372036 1/9223372036 1) #f) (s7-test (<= 9223372036 1/9223372036 1.0 1) #f) (s7-test (<= 9223372036 1/9223372036 1.0) #f) (s7-test (<= 9223372036 1/9223372036) #f) (s7-test (<= 922337203685 1/922337203685 1 1.0) #f) (s7-test (<= 922337203685 1/922337203685 1) #f) (s7-test (<= 922337203685 1/922337203685 1.0 1) #f) (s7-test (<= 922337203685 1/922337203685 1.0) #f) (s7-test (<= 922337203685 1/922337203685) #f) (s7-test (<= 9223372036854775807 1/9223372036854775807 1) #f) (s7-test (<= 9223372036854775807 1/9223372036854775807) #f) (s7-test (<= 1 1.0 9223372036854775806/9223372036854775807 9223372036854775807/9223372036854775806) #f) (s7-test (<= 1 1.0 9223372036854775806/9223372036854775807) #f) (s7-test (<= 1 9223372036854775807/9223372036854775806 1.0 9223372036854775806/9223372036854775807) #f) (s7-test (<= 1 9223372036854775807/9223372036854775806 1.0) #f) (s7-test (<= 1.0 9223372036854775806/9223372036854775807 1 9223372036854775807/9223372036854775806) #f) (s7-test (<= 1.0 9223372036854775806/9223372036854775807 1) #f) (s7-test (<= 1.0 9223372036854775806/9223372036854775807 9223372036854775807/9223372036854775806) #f) (s7-test (<= 1.0 9223372036854775806/9223372036854775807) #f) (s7-test (<= 9223372036854775806/9223372036854775807 1 9223372036854775807/9223372036854775806 1.0) #f) (s7-test (<= 9223372036854775806/9223372036854775807 9223372036854775807/9223372036854775806 1.0 1) #f) (s7-test (<= 9223372036854775806/9223372036854775807 9223372036854775807/9223372036854775806 1.0) #f) (s7-test (<= 9223372036854775807/9223372036854775806 1.0 1) #f) (s7-test (<= 9223372036854775807/9223372036854775806 1.0 9223372036854775806/9223372036854775807 1) #f) (s7-test (<= 9223372036854775807/9223372036854775806 1.0 9223372036854775806/9223372036854775807) #f) (s7-test (<= 9223372036854775807/9223372036854775806 1.0) #f) (s7-test (<= 12345678901234567890 12345678901234567891) #t) (s7-test (<= 4272943/1360120 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f) (s7-test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259 2646693125139304345/842468587426513207) #f) (s7-test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259) #f) (s7-test (<= 4272943/1360120 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f) (s7-test (<= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f) (s7-test (<= 3587785776203/1142027682075 21053343141/6701487259 2646693125139304345/842468587426513207) #f) (s7-test (<= 3587785776203/1142027682075 21053343141/6701487259) #f) (s7-test (<= 2646693125139304345/842468587426513207 21053343141/6701487259) #f) (s7-test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259 355/113) #f) (s7-test (<= 3587785776203/1142027682075 21053343141/6701487259 355/113) #f) (s7-test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259) #f) (s7-test (<= 3587785776203/1142027682075 21053343141/6701487259) #f) (s7-test (<= 1267650600228229401496703205376) 'error) (test-end "<=") ;;; -------------------------------------------------------------------------------- ;;; = ;;; -------------------------------------------------------------------------------- (test-begin "=") (s7-test (= -1.0+1.0i -1.0+1.0i) #t) (s7-test (= -1.0+1.0i 0.0+1.0i) #f) (s7-test (= -1.0+1.0i 1) #f) (s7-test (= -1.0+1.0i 1.0) #f) (s7-test (= -1.0+1.0i 1.0+1.0i) #f) (s7-test (= -1.0+1.0i 1.234+1.234i) #f) (s7-test (= -1.0+1.0i 1/1) #f) (s7-test (= -1.0+1.0i 123.4) #f) (s7-test (= -1.0+1.0i 1234) #f) (s7-test (= -1.0+1.0i 1234/11) #f) (s7-test (= 0 -1.0+1.0i) #f) (s7-test (= 0 0.0+1.0i) #f) (s7-test (= 0 1 -1.0+1.0i) #f) (s7-test (= 0 1 0.0+1.0i) #f) (s7-test (= 0 1 1) #f) (s7-test (= 0 1 1.0) #f) (s7-test (= 0 1 1.0+1.0i) #f) (s7-test (= 0 1 1.234+1.234i) #f) (s7-test (= 0 1 1/1) #f) (s7-test (= 0 1 123.4) #f) (s7-test (= 0 1 1234) #f) (s7-test (= 0 1 1234/11) #f) (s7-test (= 0 1) #f) (s7-test (= 0 1.0 -1.0+1.0i) #f) (s7-test (= 0 1.0 0.0+1.0i) #f) (s7-test (= 0 1.0 1) #f) (s7-test (= 0 1.0 1.0) #f) (s7-test (= 0 1.0 1.0+1.0i) #f) (s7-test (= 0 1.0 1.234+1.234i) #f) (s7-test (= 0 1.0 1/1) #f) (s7-test (= 0 1.0 123.4) #f) (s7-test (= 0 1.0 1234) #f) (s7-test (= 0 1.0 1234/11) #f) (s7-test (= 0 1.0) #f) (s7-test (= 0 1.0+1.0i -1.0+1.0i) #f) (s7-test (= 0 1.0+1.0i 0.0+1.0i) #f) (s7-test (= 0 1.0+1.0i 1) #f) (s7-test (= 0 1.0+1.0i 1.0) #f) (s7-test (= 0 1.0+1.0i 1.0+1.0i) #f) (s7-test (= 0 1.0+1.0i 1.234+1.234i) #f) (s7-test (= 0 1.0+1.0i 1/1) #f) (s7-test (= 0 1.0+1.0i 123.4) #f) (s7-test (= 0 1.0+1.0i 1234) #f) (s7-test (= 0 1.0+1.0i 1234/11) #f) (s7-test (= 0 1.0+1.0i) #f) (s7-test (= 0 1.234+1.234i) #f) (s7-test (= 0 123.4) #f) (s7-test (= 0 1234) #f) (s7-test (= 0 1234/11) #f) (s7-test (= 0.0 -1.0+1.0i -1.0+1.0i) #f) (s7-test (= 0.0 -1.0+1.0i 0.0+1.0i) #f) (s7-test (= 0.0 -1.0+1.0i 1) #f) (s7-test (= 0.0 -1.0+1.0i 1.0) #f) (s7-test (= 0.0 -1.0+1.0i 1.0+1.0i) #f) (s7-test (= 0.0 -1.0+1.0i 1.234+1.234i) #f) (s7-test (= 0.0 -1.0+1.0i 1/1) #f) (s7-test (= 0.0 -1.0+1.0i 123.4) #f) (s7-test (= 0.0 -1.0+1.0i 1234) #f) (s7-test (= 0.0 -1.0+1.0i 1234/11) #f) (s7-test (= 0.0 -1.0+1.0i) #f) (s7-test (= 0.0 0.0+1.0i -1.0+1.0i) #f) (s7-test (= 0.0 0.0+1.0i 0.0+1.0i) #f) (s7-test (= 0.0 0.0+1.0i 1) #f) (s7-test (= 0.0 0.0+1.0i 1.0) #f) (s7-test (= 0.0 0.0+1.0i 1.0+1.0i) #f) (s7-test (= 0.0 0.0+1.0i 1.234+1.234i) #f) (s7-test (= 0.0 0.0+1.0i 1/1) #f) (s7-test (= 0.0 0.0+1.0i 123.4) #f) (s7-test (= 0.0 0.0+1.0i 1234) #f) (s7-test (= 0.0 0.0+1.0i 1234/11) #f) (s7-test (= 0.0 0.0+1.0i) #f) (s7-test (= 0.0 1 -1.0+1.0i) #f) (s7-test (= 0.0 1 0.0+1.0i) #f) (s7-test (= 0.0 1 1.0) #f) (s7-test (= 0.0 1 1.0+1.0i) #f) (s7-test (= 0.0 1 1.234+1.234i) #f) (s7-test (= 0.0 1 1/1) #f) (s7-test (= 0.0 1 123.4) #f) (s7-test (= 0.0 1 1234) #f) (s7-test (= 0.0 1 1234/11) #f) (s7-test (= 0.0 1) #f) (s7-test (= 0.0 1.0 -1.0+1.0i) #f) (s7-test (= 0.0 1.0 0.0+1.0i) #f) (s7-test (= 0.0 1.0 1) #f) (s7-test (= 0.0 1.0 1.0) #f) (s7-test (= 0.0 1.0 1.0+1.0i) #f) (s7-test (= 0.0 1.0 1.234+1.234i) #f) (s7-test (= 0.0 1.0 1/1) #f) (s7-test (= 0.0 1.0 123.4) #f) (s7-test (= 0.0 1.0 1234) #f) (s7-test (= 0.0 1.0 1234/11) #f) (s7-test (= 0.0 1.0) #f) (s7-test (= 0.0 1.0+1.0i -1.0+1.0i) #f) (s7-test (= 0.0 1.0+1.0i 0.0+1.0i) #f) (s7-test (= 0.0 1.0+1.0i 1) #f) (s7-test (= 0.0 1.0+1.0i 1.0) #f) (s7-test (= 0.0 1.0+1.0i 1.0+1.0i) #f) (s7-test (= 0.0 1.0+1.0i 1.234+1.234i) #f) (s7-test (= 0.0 1.0+1.0i 1/1) #f) (s7-test (= 0.0 1.0+1.0i 123.4) #f) (s7-test (= 0.0 1.0+1.0i 1234) #f) (s7-test (= 0.0 1.0+1.0i 1234/11) #f) (s7-test (= 0.0 1.0+1.0i) #f) (s7-test (= 0.0 1.234+1.234i -1.0+1.0i) #f) (s7-test (= 0.0 1.234+1.234i 0.0+1.0i) #f) (s7-test (= 0.0 1.234+1.234i 1) #f) (s7-test (= 0.0 1.234+1.234i 1.0) #f) (s7-test (= 0.0 1.234+1.234i 1.0+1.0i) #f) (s7-test (= 0.0 1.234+1.234i 1.234+1.234i) #f) (s7-test (= 0.0 1.234+1.234i 1/1) #f) (s7-test (= 0.0 1.234+1.234i 123.4) #f) (s7-test (= 0.0 1.234+1.234i 1234) #f) (s7-test (= 0.0 1.234+1.234i 1234/11) #f) (s7-test (= 0.0 1.234+1.234i) #f) (s7-test (= 0.0 123.4 -1.0+1.0i) #f) (s7-test (= 0.0 123.4 0.0+1.0i) #f) (s7-test (= 0.0 123.4 1) #f) (s7-test (= 0.0 123.4 1.0) #f) (s7-test (= 0.0 123.4 1.0+1.0i) #f) (s7-test (= 0.0 123.4 1.234+1.234i) #f) (s7-test (= 0.0 123.4 1/1) #f) (s7-test (= 0.0 123.4 123.4) #f) (s7-test (= 0.0 123.4 1234) #f) (s7-test (= 0.0 123.4 1234/11) #f) (s7-test (= 0.0 123.4) #f) (s7-test (= 0.0 1234 -1.0+1.0i) #f) (s7-test (= 0.0 1234 0.0+1.0i) #f) (s7-test (= 0.0 1234 1) #f) (s7-test (= 0.0 1234 1.0) #f) (s7-test (= 0.0 1234 1.0+1.0i) #f) (s7-test (= 0.0 1234 1.234+1.234i) #f) (s7-test (= 0.0 1234 1/1) #f) (s7-test (= 0.0 1234 123.4) #f) (s7-test (= 0.0 1234 1234) #f) (s7-test (= 0.0 1234 1234/11) #f) (s7-test (= 0.0 1234) #f) (s7-test (= 0.0 1234/11 -1.0+1.0i) #f) (s7-test (= 0.0 1234/11 0.0+1.0i) #f) (s7-test (= 0.0 1234/11 1) #f) (s7-test (= 0.0 1234/11 1.0) #f) (s7-test (= 0.0 1234/11 1.0+1.0i) #f) (s7-test (= 0.0 1234/11 1.234+1.234i) #f) (s7-test (= 0.0 1234/11 1/1) #f) (s7-test (= 0.0 1234/11 123.4) #f) (s7-test (= 0.0 1234/11 1234) #f) (s7-test (= 0.0 1234/11 1234/11) #f) (s7-test (= 0.0 1234/11) #f) (s7-test (= 0.0+1.0i -1.0+1.0i) #f) (s7-test (= 0.0+1.0i 0.0+1.0i) #t) (s7-test (= 0.0+1.0i 1) #f) (s7-test (= 0.0+1.0i 1.0) #f) (s7-test (= 0.0+1.0i 1.0+1.0i) #f) (s7-test (= 0.0+1.0i 1.234+1.234i) #f) (s7-test (= 0.0+1.0i 1/1) #f) (s7-test (= 0.0+1.0i 123.4) #f) (s7-test (= 0.0+1.0i 1234) #f) (s7-test (= 0.0+1.0i 1234/11) #f) (s7-test (= 1 -1) #f) (s7-test (= 1 -1.0+1.0i) #f) (s7-test (= 1 -2) #f) (s7-test (= 1 0.0+1.0i) #f) (s7-test (= 1 1 -1.0+1.0i) #f) (s7-test (= 1 1 0.0+1.0i) #f) (s7-test (= 1 1 1) #t) (s7-test (= 1 1 1.0) #t) (s7-test (= 1 1 1.0+1.0i) #f) (s7-test (= 1 1 1.234+1.234i) #f) (s7-test (= 1 1 1/1) #t) (s7-test (= 1 1 123.4) #f) (s7-test (= 1 1 1234) #f) (s7-test (= 1 1 1234/11) #f) (s7-test (= 1 1) #t) (s7-test (= 1 1.0 -1.0+1.0i) #f) (s7-test (= 1 1.0 0.0+1.0i) #f) (s7-test (= 1 1.0 1) #t) (s7-test (= 1 1.0 1.0) #t) (s7-test (= 1 1.0 1.0+1.0i) #f) (s7-test (= 1 1.0 1.234+1.234i) #f) (s7-test (= 1 1.0 1/1) #t) (s7-test (= 1 1.0 123.4) #f) (s7-test (= 1 1.0 1234) #f) (s7-test (= 1 1.0 1234/11) #f) (s7-test (= 1 1.0) #t) (s7-test (= 1 1.0+1.0i -1.0+1.0i) #f) (s7-test (= 1 1.0+1.0i 0.0+1.0i) #f) (s7-test (= 1 1.0+1.0i 1) #f) (s7-test (= 1 1.0+1.0i 1.0) #f) (s7-test (= 1 1.0+1.0i 1.0+1.0i) #f) (s7-test (= 1 1.0+1.0i 1.234+1.234i) #f) (s7-test (= 1 1.0+1.0i 1/1) #f) (s7-test (= 1 1.0+1.0i 123.4) #f) (s7-test (= 1 1.0+1.0i 1234) #f) (s7-test (= 1 1.0+1.0i 1234/11) #f) (s7-test (= 1 1.0+1.0i) #f) (s7-test (= 1 1.234+1.234i) #f) (s7-test (= 1 123.4) #f) (s7-test (= 1 1234) #f) (s7-test (= 1 1234/11) #f) (s7-test (= 1.0 -1.0) #f) (s7-test (= 1.0 -1.0+1.0i -1.0+1.0i) #f) (s7-test (= 1.0 -1.0+1.0i 0.0+1.0i) #f) (s7-test (= 1.0 -1.0+1.0i 1) #f) (s7-test (= 1.0 -1.0+1.0i 1.0) #f) (s7-test (= 1.0 -1.0+1.0i 1.0+1.0i) #f) (s7-test (= 1.0 -1.0+1.0i 1.234+1.234i) #f) (s7-test (= 1.0 -1.0+1.0i 1/1) #f) (s7-test (= 1.0 -1.0+1.0i 123.4) #f) (s7-test (= 1.0 -1.0+1.0i 1234) #f) (s7-test (= 1.0 -1.0+1.0i 1234/11) #f) (s7-test (= 1.0 -1.0+1.0i) #f) (s7-test (= 1.0 0.0+1.0i -1.0+1.0i) #f) (s7-test (= 1.0 0.0+1.0i 0.0+1.0i) #f) (s7-test (= 1.0 0.0+1.0i 1) #f) (s7-test (= 1.0 0.0+1.0i 1.0) #f) (s7-test (= 1.0 0.0+1.0i 1.0+1.0i) #f) (s7-test (= 1.0 0.0+1.0i 1.234+1.234i) #f) (s7-test (= 1.0 0.0+1.0i 1/1) #f) (s7-test (= 1.0 0.0+1.0i 123.4) #f) (s7-test (= 1.0 0.0+1.0i 1234) #f) (s7-test (= 1.0 0.0+1.0i 1234/11) #f) (s7-test (= 1.0 0.0+1.0i) #f) (s7-test (= 1.0 1 -1.0+1.0i) #f) (s7-test (= 1.0 1 0.0+1.0i) #f) (s7-test (= 1.0 1 1) #t) (s7-test (= 1.0 1 1.0) #t) (s7-test (= 1.0 1 1.0+1.0i) #f) (s7-test (= 1.0 1 1.234+1.234i) #f) (s7-test (= 1.0 1 1/1) #t) (s7-test (= 1.0 1 123.4) #f) (s7-test (= 1.0 1 1234) #f) (s7-test (= 1.0 1 1234/11) #f) (s7-test (= 1.0 1) #t) (s7-test (= 1.0 1.0 -1.0+1.0i) #f) (s7-test (= 1.0 1.0 0.0+1.0i) #f) (s7-test (= 1.0 1.0 1) #t) (s7-test (= 1.0 1.0 1.0) #t) (s7-test (= 1.0 1.0 1.0+1.0i) #f) (s7-test (= 1.0 1.0 1.234+1.234i) #f) (s7-test (= 1.0 1.0 1/1) #t) (s7-test (= 1.0 1.0 123.4) #f) (s7-test (= 1.0 1.0 1234) #f) (s7-test (= 1.0 1.0 1234/11) #f) (s7-test (= 1.0 1.0) #t) (s7-test (= 1.0 1.0+1.0i -1.0+1.0i) #f) (s7-test (= 1.0 1.0+1.0i 0.0+1.0i) #f) (s7-test (= 1.0 1.0+1.0i 1) #f) (s7-test (= 1.0 1.0+1.0i 1.0) #f) (s7-test (= 1.0 1.0+1.0i 1.0+1.0i) #f) (s7-test (= 1.0 1.0+1.0i 1.234+1.234i) #f) (s7-test (= 1.0 1.0+1.0i 1/1) #f) (s7-test (= 1.0 1.0+1.0i 123.4) #f) (s7-test (= 1.0 1.0+1.0i 1234) #f) (s7-test (= 1.0 1.0+1.0i 1234/11) #f) (s7-test (= 1.0 1.0+1.0i) #f) (s7-test (= 1.0 1.234+1.234i -1.0+1.0i) #f) (s7-test (= 1.0 1.234+1.234i 0.0+1.0i) #f) (s7-test (= 1.0 1.234+1.234i 1) #f) (s7-test (= 1.0 1.234+1.234i 1.0) #f) (s7-test (= 1.0 1.234+1.234i 1.0+1.0i) #f) (s7-test (= 1.0 1.234+1.234i 1.234+1.234i) #f) (s7-test (= 1.0 1.234+1.234i 1/1) #f) (s7-test (= 1.0 1.234+1.234i 123.4) #f) (s7-test (= 1.0 1.234+1.234i 1234) #f) (s7-test (= 1.0 1.234+1.234i 1234/11) #f) (s7-test (= 1.0 1.234+1.234i) #f) (s7-test (= 1.0 123.4 -1.0+1.0i) #f) (s7-test (= 1.0 123.4 0.0+1.0i) #f) (s7-test (= 1.0 123.4 1) #f) (s7-test (= 1.0 123.4 1.0) #f) (s7-test (= 1.0 123.4 1.0+1.0i) #f) (s7-test (= 1.0 123.4 1.234+1.234i) #f) (s7-test (= 1.0 123.4 1/1) #f) (s7-test (= 1.0 123.4 123.4) #f) (s7-test (= 1.0 123.4 1234) #f) (s7-test (= 1.0 123.4 1234/11) #f) (s7-test (= 1.0 123.4) #f) (s7-test (= 1.0 1234 -1.0+1.0i) #f) (s7-test (= 1.0 1234 0.0+1.0i) #f) (s7-test (= 1.0 1234 1) #f) (s7-test (= 1.0 1234 1.0) #f) (s7-test (= 1.0 1234 1.0+1.0i) #f) (s7-test (= 1.0 1234 1.234+1.234i) #f) (s7-test (= 1.0 1234 1/1) #f) (s7-test (= 1.0 1234 123.4) #f) (s7-test (= 1.0 1234 1234) #f) (s7-test (= 1.0 1234 1234/11) #f) (s7-test (= 1.0 1234) #f) (s7-test (= 1.0 1234/11 -1.0+1.0i) #f) (s7-test (= 1.0 1234/11 0.0+1.0i) #f) (s7-test (= 1.0 1234/11 1) #f) (s7-test (= 1.0 1234/11 1.0) #f) (s7-test (= 1.0 1234/11 1.0+1.0i) #f) (s7-test (= 1.0 1234/11 1.234+1.234i) #f) (s7-test (= 1.0 1234/11 1/1) #f) (s7-test (= 1.0 1234/11 123.4) #f) (s7-test (= 1.0 1234/11 1234) #f) (s7-test (= 1.0 1234/11 1234/11) #f) (s7-test (= 1.0 1234/11) #f) (s7-test (= 1.0+1.0i -1.0+1.0i -1.0+1.0i) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 0.0+1.0i) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 1) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 1.0) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 1.0+1.0i) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 1.234+1.234i) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 1/1) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 123.4) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 1234) #f) (s7-test (= 1.0+1.0i -1.0+1.0i 1234/11) #f) (s7-test (= 1.0+1.0i -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 0.0+1.0i -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 1) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 1.0) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 1.0+1.0i) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 1/1) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 123.4) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 1234) #f) (s7-test (= 1.0+1.0i 0.0+1.0i 1234/11) #f) (s7-test (= 1.0+1.0i 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 1 -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 1 1) #f) (s7-test (= 1.0+1.0i 1 1.0) #f) (s7-test (= 1.0+1.0i 1 1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 1 1/1) #f) (s7-test (= 1.0+1.0i 1 123.4) #f) (s7-test (= 1.0+1.0i 1 1234) #f) (s7-test (= 1.0+1.0i 1 1234/11) #f) (s7-test (= 1.0+1.0i 1) #f) (s7-test (= 1.0+1.0i 1.0 -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.0 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.0 1) #f) (s7-test (= 1.0+1.0i 1.0 1.0) #f) (s7-test (= 1.0+1.0i 1.0 1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.0 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 1.0 1/1) #f) (s7-test (= 1.0+1.0i 1.0 123.4) #f) (s7-test (= 1.0+1.0i 1.0 1234) #f) (s7-test (= 1.0+1.0i 1.0 1234/11) #f) (s7-test (= 1.0+1.0i 1.0) #f) (s7-test (= 1.0+1.0i 1.0+1.0i -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 1) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 1.0) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 1.0+1.0i) #t) (s7-test (= 1.0+1.0i 1.0+1.0i 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 1/1) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 123.4) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 1234) #f) (s7-test (= 1.0+1.0i 1.0+1.0i 1234/11) #f) (s7-test (= 1.0+1.0i 1.0+1.0i) #t) (s7-test (= 1.0+1.0i 1.234+1.234i -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 1) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 1.0) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 1/1) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 123.4) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 1234) #f) (s7-test (= 1.0+1.0i 1.234+1.234i 1234/11) #f) (s7-test (= 1.0+1.0i 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 123.4 -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 123.4 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 123.4 1) #f) (s7-test (= 1.0+1.0i 123.4 1.0) #f) (s7-test (= 1.0+1.0i 123.4 1.0+1.0i) #f) (s7-test (= 1.0+1.0i 123.4 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 123.4 1/1) #f) (s7-test (= 1.0+1.0i 123.4 123.4) #f) (s7-test (= 1.0+1.0i 123.4 1234) #f) (s7-test (= 1.0+1.0i 123.4 1234/11) #f) (s7-test (= 1.0+1.0i 123.4) #f) (s7-test (= 1.0+1.0i 1234 -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1234 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 1234 1) #f) (s7-test (= 1.0+1.0i 1234 1.0) #f) (s7-test (= 1.0+1.0i 1234 1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1234 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 1234 1/1) #f) (s7-test (= 1.0+1.0i 1234 123.4) #f) (s7-test (= 1.0+1.0i 1234 1234) #f) (s7-test (= 1.0+1.0i 1234 1234/11) #f) (s7-test (= 1.0+1.0i 1234) #f) (s7-test (= 1.0+1.0i 1234/11 -1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1234/11 0.0+1.0i) #f) (s7-test (= 1.0+1.0i 1234/11 1) #f) (s7-test (= 1.0+1.0i 1234/11 1.0) #f) (s7-test (= 1.0+1.0i 1234/11 1.0+1.0i) #f) (s7-test (= 1.0+1.0i 1234/11 1.234+1.234i) #f) (s7-test (= 1.0+1.0i 1234/11 1/1) #f) (s7-test (= 1.0+1.0i 1234/11 123.4) #f) (s7-test (= 1.0+1.0i 1234/11 1234) #f) (s7-test (= 1.0+1.0i 1234/11 1234/11) #f) (s7-test (= 1.0+1.0i 1234/11) #f) (s7-test (= 1.234+1.234i -1.0+1.0i) #f) (s7-test (= 1.234+1.234i 0.0+1.0i) #f) (s7-test (= 1.234+1.234i 1) #f) (s7-test (= 1.234+1.234i 1.0) #f) (s7-test (= 1.234+1.234i 1.0+1.0i) #f) (s7-test (= 1.234+1.234i 1.234+1.234i) #t) (s7-test (= 1.234+1.234i 1/1) #f) (s7-test (= 1.234+1.234i 123.4) #f) (s7-test (= 1.234+1.234i 1234) #f) (s7-test (= 1.234+1.234i 1234/11) #f) (s7-test (= 123.4 -1.0+1.0i -1.0+1.0i) #f) (s7-test (= 123.4 -1.0+1.0i 0.0+1.0i) #f) (s7-test (= 123.4 -1.0+1.0i 1) #f) (s7-test (= 123.4 -1.0+1.0i 1.0) #f) (s7-test (= 123.4 -1.0+1.0i 1.0+1.0i) #f) (s7-test (= 123.4 -1.0+1.0i 1.234+1.234i) #f) (s7-test (= 123.4 -1.0+1.0i 1/1) #f) (s7-test (= 123.4 -1.0+1.0i 123.4) #f) (s7-test (= 123.4 -1.0+1.0i 1234) #f) (s7-test (= 123.4 -1.0+1.0i 1234/11) #f) (s7-test (= 123.4 -1.0+1.0i) #f) (s7-test (= 123.4 0.0+1.0i -1.0+1.0i) #f) (s7-test (= 123.4 0.0+1.0i 0.0+1.0i) #f) (s7-test (= 123.4 0.0+1.0i 1) #f) (s7-test (= 123.4 0.0+1.0i 1.0) #f) (s7-test (= 123.4 0.0+1.0i 1.0+1.0i) #f) (s7-test (= 123.4 0.0+1.0i 1.234+1.234i) #f) (s7-test (= 123.4 0.0+1.0i 1/1) #f) (s7-test (= 123.4 0.0+1.0i 123.4) #f) (s7-test (= 123.4 0.0+1.0i 1234) #f) (s7-test (= 123.4 0.0+1.0i 1234/11) #f) (s7-test (= 123.4 0.0+1.0i) #f) (s7-test (= 123.4 1 -1.0+1.0i) #f) (s7-test (= 123.4 1 0.0+1.0i) #f) (s7-test (= 123.4 1 1) #f) (s7-test (= 123.4 1 1.0) #f) (s7-test (= 123.4 1 1.0+1.0i) #f) (s7-test (= 123.4 1 1.234+1.234i) #f) (s7-test (= 123.4 1 1/1) #f) (s7-test (= 123.4 1 123.4) #f) (s7-test (= 123.4 1 1234) #f) (s7-test (= 123.4 1 1234/11) #f) (s7-test (= 123.4 1) #f) (s7-test (= 123.4 1.0 -1.0+1.0i) #f) (s7-test (= 123.4 1.0 0.0+1.0i) #f) (s7-test (= 123.4 1.0 1) #f) (s7-test (= 123.4 1.0 1.0) #f) (s7-test (= 123.4 1.0 1.0+1.0i) #f) (s7-test (= 123.4 1.0 1.234+1.234i) #f) (s7-test (= 123.4 1.0 1/1) #f) (s7-test (= 123.4 1.0 123.4) #f) (s7-test (= 123.4 1.0 1234) #f) (s7-test (= 123.4 1.0 1234/11) #f) (s7-test (= 123.4 1.0) #f) (s7-test (= 123.4 1.0+1.0i -1.0+1.0i) #f) (s7-test (= 123.4 1.0+1.0i 0.0+1.0i) #f) (s7-test (= 123.4 1.0+1.0i 1) #f) (s7-test (= 123.4 1.0+1.0i 1.0) #f) (s7-test (= 123.4 1.0+1.0i 1.0+1.0i) #f) (s7-test (= 123.4 1.0+1.0i 1.234+1.234i) #f) (s7-test (= 123.4 1.0+1.0i 1/1) #f) (s7-test (= 123.4 1.0+1.0i 123.4) #f) (s7-test (= 123.4 1.0+1.0i 1234) #f) (s7-test (= 123.4 1.0+1.0i 1234/11) #f) (s7-test (= 123.4 1.0+1.0i) #f) (s7-test (= 123.4 1.234+1.234i -1.0+1.0i) #f) (s7-test (= 123.4 1.234+1.234i 0.0+1.0i) #f) (s7-test (= 123.4 1.234+1.234i 1) #f) (s7-test (= 123.4 1.234+1.234i 1.0) #f) (s7-test (= 123.4 1.234+1.234i 1.0+1.0i) #f) (s7-test (= 123.4 1.234+1.234i 1.234+1.234i) #f) (s7-test (= 123.4 1.234+1.234i 1/1) #f) (s7-test (= 123.4 1.234+1.234i 123.4) #f) (s7-test (= 123.4 1.234+1.234i 1234) #f) (s7-test (= 123.4 1.234+1.234i 1234/11) #f) (s7-test (= 123.4 1.234+1.234i) #f) (s7-test (= 123.4 123.4 -1.0+1.0i) #f) (s7-test (= 123.4 123.4 0.0+1.0i) #f) (s7-test (= 123.4 123.4 1) #f) (s7-test (= 123.4 123.4 1.0) #f) (s7-test (= 123.4 123.4 1.0+1.0i) #f) (s7-test (= 123.4 123.4 1.234+1.234i) #f) (s7-test (= 123.4 123.4 1/1) #f) (s7-test (= 123.4 123.4 123.4) #t) (s7-test (= 123.4 123.4 1234) #f) (s7-test (= 123.4 123.4 1234/11) #f) (s7-test (= 123.4 123.4) #t) (s7-test (= 123.4 1234 -1.0+1.0i) #f) (s7-test (= 123.4 1234 0.0+1.0i) #f) (s7-test (= 123.4 1234 1) #f) (s7-test (= 123.4 1234 1.0) #f) (s7-test (= 123.4 1234 1.0+1.0i) #f) (s7-test (= 123.4 1234 1.234+1.234i) #f) (s7-test (= 123.4 1234 1/1) #f) (s7-test (= 123.4 1234 123.4) #f) (s7-test (= 123.4 1234 1234) #f) (s7-test (= 123.4 1234 1234/11) #f) (s7-test (= 123.4 1234) #f) (s7-test (= 123.4 1234/11 -1.0+1.0i) #f) (s7-test (= 123.4 1234/11 0.0+1.0i) #f) (s7-test (= 123.4 1234/11 1) #f) (s7-test (= 123.4 1234/11 1.0) #f) (s7-test (= 123.4 1234/11 1.0+1.0i) #f) (s7-test (= 123.4 1234/11 1.234+1.234i) #f) (s7-test (= 123.4 1234/11 1/1) #f) (s7-test (= 123.4 1234/11 123.4) #f) (s7-test (= 123.4 1234/11 1234) #f) (s7-test (= 123.4 1234/11 1234/11) #f) (s7-test (= 123.4 1234/11) #f) (s7-test (= 1234 -1.0+1.0i) #f) (s7-test (= 1234 0.0+1.0i) #f) (s7-test (= 1234 1) #f) (s7-test (= 1234 1.0) #f) (s7-test (= 1234 1.0+1.0i) #f) (s7-test (= 1234 1.234+1.234i) #f) (s7-test (= 1234 1/1) #f) (s7-test (= 1234 123.4) #f) (s7-test (= 1234 1234) #t) (s7-test (= 1234 1234/11) #f) (s7-test (= 1234/11 -1.0+1.0i) #f) (s7-test (= 1234/11 0.0+1.0i) #f) (s7-test (= 1234/11 1) #f) (s7-test (= 1234/11 1.0) #f) (s7-test (= 1234/11 1.0+1.0i) #f) (s7-test (= 1234/11 1.234+1.234i) #f) (s7-test (= 1234/11 1/1) #f) (s7-test (= 1234/11 123.4) #f) (s7-test (= 1234/11 1234) #f) (s7-test (= 1234/11 1234/11) #t) (s7-test (= 2 -1) #f) (s7-test (= 2 -2) #f) (s7-test (= #i3/5 #i3/5) #t) (s7-test (= -0 0) #t) (s7-test (= -0-0i 0.0) #t) (s7-test (= -0.0 0.0) #t) (s7-test (= -0.0-0.0i 0.0) #t) (s7-test (= .6 .6) #t) (s7-test (= 0.11 0.11) #t) (s7-test (= 0.18 0.18) #t) (s7-test (= 0.3 0.3) #t) (s7-test (= 0.333 0.333) #t) (s7-test (= 0.60 0.60) #t) (s7-test (= 0.999 0.999) #t) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (= 1 2 #\a) 'error) (s7-test (= 1+0i 1-0i) #t) (s7-test (= 1+i 0+i) #f) (s7-test (= 1+i 0-i) #f) (s7-test (= 1/2 1/2+0i) #t) ; gmp reads 1/2+0i as 1.0 (s7-test (= 100.000 100.000) #t) (s7-test (= 1e10 1e10) #t) (s7-test (= 22 22 22) #t ) (s7-test (= 22 22) #t ) (s7-test (= 34 34 35) #f ) (s7-test (= 34 35) #f ) (s7-test (= 60e-2 60e-2) #t) (s7-test (= 0 0.0) #t) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (= 0 1 "hi") 'error) (s7-test (= 0) 'error) (s7-test (=) 'error) (s7-test (= 0.0 0.0) #t) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (= 0.0 1.0 "hi") 'error) (s7-test (= 0.0) 'error) (s7-test (= 0.0+0.00000001i) 'error) (s7-test (= 0/1) 'error) (s7-test (= 1.0) 'error) (s7-test (= 1.0+1.0i) 'error) (s7-test (= 1 lambda) 'error) (s7-test (= 10/3) 'error) (s7-test (= 1234000000.0+2.71828182845905i) 'error) (s7-test (= 2) 'error) (s7-test (= 2.5 5/2) #t) (s7-test (= 2.5+0.0i 5/2) #t) (s7-test (= 2.5+1.0i 5/2) #f) (s7-test (= 2.71828182845905+3.14159265358979i) 'error) (s7-test (= 3 2 3) #f) (s7-test (= 3 3 3 3) #t) (s7-test (= 3 3 5 3) #f) (s7-test (= 3 3) #t) (s7-test (= 3 3.0) #t) (s7-test (= 3 5) #f) (s7-test (= 3 6 5 2) #f) (s7-test (= 3.0 3.0+0.0i) #t) (s7-test (= 5/2 2.5) #t) (s7-test (= 5/2 2.5) #t) (s7-test (= 5/2 2.5+0.0i) #t) (s7-test (= 5/2 2.5+1.0i) #f) (s7-test (= +0 -0 0/100 00 -0/9223372036854775807) #t) (s7-test (= +1/2 1/2) #t) (s7-test (= 0 0) #t) (s7-test (= 0.0 0.0+0.0i +0.0 -0.0 +.0 -.0 +0. -0. 0. .0 0.e1 0e1 0e+1 +0.0e+1+0.0e+1i 0-0i) #t) (s7-test (= 1.0 1.0+0.0i +1.0 1. 1e0 1-0i) #t) (s7-test (= 0.0+0.0i 0.0+0.0i) #t) (s7-test (= 1+1i 1+1i) #t) (s7-test (= 1.0+1.0i 1.0+1.0i) #t) (s7-test (= 1.0+1i 1.0+1.0i) #t) (s7-test (= 100000000000000.0 100000000000001.0) #f) (s7-test (= -1.797693134862315699999999999999999999998E308 -9223372036854775808) #f) (s7-test (= -9223372036854775808 -9223372036854775808) #t) (s7-test (= -9223372036854775808 5.551115123125783999999999999999999999984E-17) #f) (s7-test (= -9223372036854775808 9223372036854775807 -9223372036854775808) #f) (s7-test (= 1.110223024625156799999999999999999999997E-16 -9223372036854775808) #f) (s7-test (= 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) #f) (s7-test (= 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) #f) (s7-test (= 9223372036854775807 -9223372036854775808) #f) (s7-test (= 9223372036854775807 9223372036854775807) #t) (s7-test (= (* most-negative-fixnum 1) (- (* -1 most-positive-fixnum) 1)) #t) (s7-test (= (* most-positive-fixnum -1) (+ most-negative-fixnum 1)) #t) (s7-test (= (+ most-negative-fixnum 1) (- most-positive-fixnum)) #t) (s7-test (= (+ most-negative-fixnum most-positive-fixnum) -1) #t) (s7-test (= (- most-negative-fixnum (- most-positive-fixnum)) -1) #t) (s7-test (= 0 #i1/0 #i0/0) #f) (s7-test (= 0/1 -0/1) #t) (s7-test (= #i1/0 (log 0.0)) #f) (s7-test (= #i1/0 #i-1/0) #f) (s7-test (= 1e100 1e+100) #t) (s7-test (= most-negative-fixnum (/ (log 0.0) (log 0.0))) #f) (s7-test (= most-negative-fixnum #i0/0) #f) (s7-test (= most-negative-fixnum #i0/0+0/0i) #f) (s7-test (= most-negative-fixnum #i1/0) #f) (s7-test (= most-positive-fixnum (/ (log 0.0) (log 0.0))) #f) (s7-test (= most-positive-fixnum #i0/0) #f) (s7-test (= most-positive-fixnum #i0/0+0/0i) #f) (s7-test (= most-positive-fixnum #i1/0) #f) (s7-test (= most-positive-fixnum most-negative-fixnum) #f) (s7-test (= most-positive-fixnum most-positive-fixnum) #t) (s7-test (= 9223372036854775807/9223372036854775806 1.0 9223372036854775806/9223372036854775807) #f) (s7-test (= 9223372036854775806/9223372036854775807 1.0 9223372036854775807/9223372036854775806) #f) (s7-test (= 1 1.0 9223372036854775806/9223372036854775807) #f) (s7-test (= 9223372036854775806/9223372036854775807 1.0 1) #f) (s7-test (= 9223372036854775806/9223372036854775807 1.0) #f) (s7-test (= 1.0 9223372036854775806/9223372036854775807) #f) (s7-test (= 1 1.0 9223372036854775807/9223372036854775806) #f) (s7-test (= 9223372036854775807/9223372036854775806 1.0 1) #f) (s7-test (= 9223372036854775807/9223372036854775806 1.0) #f) (s7-test (= 1.0 9223372036854775807/9223372036854775806) #f) (s7-test (= (* 10400200/16483927 1.0) (* 10781274/17087915 1.0)) #f) (s7-test (= (* 10400200/16483927 1.0) 10781274/17087915) #f) (s7-test (= (* 10781274/17087915 1.0) (* 53715833/85137581 1.0)) #f) (s7-test (= (* 10781274/17087915 1.0) 53715833/85137581) #f) (s7-test (= (* 12/19 1.0) (* 53/84 1.0)) #f) (s7-test (= (* 12/19 1.0) 53/84) #f) (s7-test (= (* 12941/20511 1.0) (* 15601/24727 1.0)) #f) (s7-test (= (* 12941/20511 1.0) 15601/24727) #f) (s7-test (= (* 15601/24727 1.0) (* 79335/125743 1.0)) #f) (s7-test (= (* 15601/24727 1.0) 79335/125743) #f) ;;; (if with-bignums (s7-test (= (* 171928773/272500658 1.0) (* 397573379/630138897 1.0)) #f)) -- needs more bits (s7-test (= (* 171928773/272500658 1.0) 397573379/630138897) #f) (s7-test (= (* 190537/301994 1.0) (* 7161071/11350029 1.0)) #f) (s7-test (= (* 190537/301994 1.0) 7161071/11350029) #f) (s7-test (= (* 2/3 1.0) (* 5/8 1.0)) #f) (s7-test (= (* 2/3 1.0) 5/8) #f) (s7-test (= (* 253/401 1.0) (* 665/1054 1.0)) #f) (s7-test (= (* 253/401 1.0) 665/1054) #f) (s7-test (= (* 5/8 1.0) (* 12/19 1.0)) #f) (s7-test (= (* 5/8 1.0) 12/19) #f) (s7-test (= (* 53/84 1.0) (* 253/401 1.0)) #f) (s7-test (= (* 53/84 1.0) 253/401) #f) ;;; (if with-bignums (s7-test (= (* 53715833/85137581 1.0) (* 171928773/272500658 1.0)) #f)) -- more bits (s7-test (= (* 53715833/85137581 1.0) 171928773/272500658) #f) (s7-test (= (* 665/1054 1.0) (* 12941/20511 1.0)) #f) (s7-test (= (* 665/1054 1.0) 12941/20511) #f) (s7-test (= (* 7161071/11350029 1.0) (* 10400200/16483927 1.0)) #f) (s7-test (= (* 7161071/11350029 1.0) 10400200/16483927) #f) (s7-test (= (* 79335/125743 1.0) (* 190537/301994 1.0)) #f) (s7-test (= (* 79335/125743 1.0) 190537/301994) #f) (s7-test (= 10400200/16483927 10781274/17087915) #f) (s7-test (= 10781274/17087915 53715833/85137581) #f) (s7-test (= 12/19 53/84) #f) (s7-test (= 12941/20511 15601/24727) #f) (s7-test (= 15601/24727 79335/125743) #f) (s7-test (= 171928773/272500658 397573379/630138897) #f) (s7-test (= 190537/301994 7161071/11350029) #f) (s7-test (= 2/3 5/8) #f) (s7-test (= 253/401 665/1054) #f) (s7-test (= 397573379/630138897 4201378396/6659027209) #f) (s7-test (= 4201378396/6659027209 6189245291/9809721694) #f) (s7-test (= 5/8 12/19) #f) (s7-test (= 53/84 253/401) #f) (s7-test (= 53715833/85137581 171928773/272500658) #f) (s7-test (= 665/1054 12941/20511) #f) (s7-test (= 7161071/11350029 10400200/16483927) #f) (s7-test (= 79335/125743 190537/301994) #f) (s7-test (= (string->number "#e.1e20") 1e19) #t) (s7-test (= (bignum "3") #i1/0) #f) (s7-test (= 12345678901234567890 12345678901234567891) #f) (s7-test (= most-positive-fixnum (- (/ most-negative-fixnum -1) 1)) #t) (s7-test (= 1267650600228229401496703205376) 'error) ;;; non-gmp strangeness: ;;; (zero? (- (sqrt 2) 5964153172084899/4217293152016490)) -> #t, but ;;; (= (sqrt 2) 5964153172084899/4217293152016490) -> #f (s7-test (= 0 '(1 . 2) 3) 'error) (s7-test (= 0 ''0 0) 'error) (s7-test (= 0) 'error) (s7-test (= 0 . (0)) #t) (test-end "=") ;;; -------------------------------------------------------------------------------- ;;; > ;;; -------------------------------------------------------------------------------- (test-begin ">") (s7-test (> 0 1 1) #f) (s7-test (> 0 1 1.0) #f) (s7-test (> 0 1 1/1) #f) (s7-test (> 0 1 123.4) #f) (s7-test (> 0 1 1234) #f) (s7-test (> 0 1 1234/11) #f) (s7-test (> 0 1) #f) (s7-test (> 0 1.0 1) #f) (s7-test (> 0 1.0 1.0) #f) (s7-test (> 0 1.0 1/1) #f) (s7-test (> 0 1.0 123.4) #f) (s7-test (> 0 1.0 1234) #f) (s7-test (> 0 1.0 1234/11) #f) (s7-test (> 0 1.0) #f) (s7-test (> 0 123.4) #f) (s7-test (> 0 1234) #f) (s7-test (> 0 1234/11) #f) (s7-test (> 0.0 1 1.0) #f) (s7-test (> 0.0 1 1/1) #f) (s7-test (> 0.0 1 123.4) #f) (s7-test (> 0.0 1 1234) #f) (s7-test (> 0.0 1 1234/11) #f) (s7-test (> 0.0 1) #f) (s7-test (> 0.0 1.0 1) #f) (s7-test (> 0.0 1.0 1.0) #f) (s7-test (> 0.0 1.0 1/1) #f) (s7-test (> 0.0 1.0 123.4) #f) (s7-test (> 0.0 1.0 1234) #f) (s7-test (> 0.0 1.0 1234/11) #f) (s7-test (> 0.0 1.0) #f) (s7-test (> 0.0 123.4 1) #f) (s7-test (> 0.0 123.4 1.0) #f) (s7-test (> 0.0 123.4 1/1) #f) (s7-test (> 0.0 123.4 123.4) #f) (s7-test (> 0.0 123.4 1234) #f) (s7-test (> 0.0 123.4 1234/11) #f) (s7-test (> 0.0 123.4) #f) (s7-test (> 0.0 1234 1) #f) (s7-test (> 0.0 1234 1.0) #f) (s7-test (> 0.0 1234 1/1) #f) (s7-test (> 0.0 1234 123.4) #f) (s7-test (> 0.0 1234 1234) #f) (s7-test (> 0.0 1234 1234/11) #f) (s7-test (> 0.0 1234) #f) (s7-test (> 0.0 1234/11 1) #f) (s7-test (> 0.0 1234/11 1.0) #f) (s7-test (> 0.0 1234/11 1/1) #f) (s7-test (> 0.0 1234/11 123.4) #f) (s7-test (> 0.0 1234/11 1234) #f) (s7-test (> 0.0 1234/11 1234/11) #f) (s7-test (> 0.0 1234/11) #f) (s7-test (> 1 1 1) #f) (s7-test (> 1 1 1.0) #f) (s7-test (> 1 1 1/1) #f) (s7-test (> 1 1 123.4) #f) (s7-test (> 1 1 1234) #f) (s7-test (> 1 1 1234/11) #f) (s7-test (> 1 1) #f) (s7-test (> 1 1.0 1) #f) (s7-test (> 1 1.0 1.0) #f) (s7-test (> 1 1.0 1/1) #f) (s7-test (> 1 1.0 123.4) #f) (s7-test (> 1 1.0 1234) #f) (s7-test (> 1 1.0 1234/11) #f) (s7-test (> 1 1.0) #f) (s7-test (> 1 123.4) #f) (s7-test (> 1 1234) #f) (s7-test (> 1 1234/11) #f) (s7-test (> 1.0 1 1) #f) (s7-test (> 1.0 1 1.0) #f) (s7-test (> 1.0 1 1/1) #f) (s7-test (> 1.0 1 123.4) #f) (s7-test (> 1.0 1 1234) #f) (s7-test (> 1.0 1 1234/11) #f) (s7-test (> 1.0 1) #f) (s7-test (> 1.0 1.0 1) #f) (s7-test (> 1.0 1.0 1.0) #f) (s7-test (> 1.0 1.0 1/1) #f) (s7-test (> 1.0 1.0 123.4) #f) (s7-test (> 1.0 1.0 1234) #f) (s7-test (> 1.0 1.0 1234/11) #f) (s7-test (> 1.0 1.0) #f) (s7-test (> 1.0 123.4 1) #f) (s7-test (> 1.0 123.4 1.0) #f) (s7-test (> 1.0 123.4 1/1) #f) (s7-test (> 1.0 123.4 123.4) #f) (s7-test (> 1.0 123.4 1234) #f) (s7-test (> 1.0 123.4 1234/11) #f) (s7-test (> 1.0 123.4) #f) (s7-test (> 1.0 1234 1) #f) (s7-test (> 1.0 1234 1.0) #f) (s7-test (> 1.0 1234 1/1) #f) (s7-test (> 1.0 1234 123.4) #f) (s7-test (> 1.0 1234 1234) #f) (s7-test (> 1.0 1234 1234/11) #f) (s7-test (> 1.0 1234) #f) (s7-test (> 1.0 1234/11 1) #f) (s7-test (> 1.0 1234/11 1.0) #f) (s7-test (> 1.0 1234/11 1/1) #f) (s7-test (> 1.0 1234/11 123.4) #f) (s7-test (> 1.0 1234/11 1234) #f) (s7-test (> 1.0 1234/11 1234/11) #f) (s7-test (> 1.0 1234/11) #f) (s7-test (> 123.4 1 1) #f) (s7-test (> 123.4 1 1.0) #f) (s7-test (> 123.4 1 1/1) #f) (s7-test (> 123.4 1 123.4) #f) (s7-test (> 123.4 1 1234) #f) (s7-test (> 123.4 1 1234/11) #f) (s7-test (> 123.4 1) #t) (s7-test (> 123.4 1.0 1) #f) (s7-test (> 123.4 1.0 1.0) #f) (s7-test (> 123.4 1.0 1/1) #f) (s7-test (> 123.4 1.0 123.4) #f) (s7-test (> 123.4 1.0 1234) #f) (s7-test (> 123.4 1.0 1234/11) #f) (s7-test (> 123.4 1.0) #t) (s7-test (> 123.4 123.4 1) #f) (s7-test (> 123.4 123.4 1.0) #f) (s7-test (> 123.4 123.4 1/1) #f) (s7-test (> 123.4 123.4 123.4) #f) (s7-test (> 123.4 123.4 1234) #f) (s7-test (> 123.4 123.4 1234/11) #f) (s7-test (> 123.4 123.4) #f) (s7-test (> 123.4 1234 1) #f) (s7-test (> 123.4 1234 1.0) #f) (s7-test (> 123.4 1234 1/1) #f) (s7-test (> 123.4 1234 123.4) #f) (s7-test (> 123.4 1234 1234) #f) (s7-test (> 123.4 1234 1234/11) #f) (s7-test (> 123.4 1234) #f) (s7-test (> 123.4 1234/11 1) #t) (s7-test (> 123.4 1234/11 1.0) #t) (s7-test (> 123.4 1234/11 1/1) #t) (s7-test (> 123.4 1234/11 123.4) #f) (s7-test (> 123.4 1234/11 1234) #f) (s7-test (> 123.4 1234/11 1234/11) #f) (s7-test (> 123.4 1234/11) #t) (s7-test (> 1234 1) #t) (s7-test (> 1234 1.0) #t) (s7-test (> 1234 1/1) #t) (s7-test (> 1234 123.4) #t) (s7-test (> 1234 1234) #f) (s7-test (> 1234 1234/11) #t) (s7-test (> 1234/11 1) #t) (s7-test (> 1234/11 1.0) #t) (s7-test (> 1234/11 1/1) #t) (s7-test (> 1234/11 123.4) #f) (s7-test (> 1234/11 1234) #f) (s7-test (> 1234/11 1234/11) #f) (s7-test (> 1 0+i) 'error) (s7-test (> 1 0-i) 'error) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (> 1 2 #\a) 'error) (s7-test (> 1+i 0+i) 'error) (s7-test (> 1+i 0-i) 'error) ;; "if any of the arguments are nan, [>] returns nan". Of course the type checks ;; still need to be done, the question is if we want to be this strict. ;(s7-test (> nan.0 1+i) 'error) ;(s7-test (> nan.0 1 1+i) 'error) ;(s7-test (> 1 nan.0 1+i) 'error) (s7-test (> inf.0 1+i) 'error) ;(s7-test (> inf.0 nan.0 0-i 1) 'error) (s7-test (> 2 1+0/2i) #t) (s7-test (> 2 1+0i) #t) (s7-test (> 2 1-0i) #t) (s7-test (> 2 2 1) #f) (s7-test (> 3 -6246) #t ) (s7-test (> 9 9 -2424) #f ) (s7-test (> quote if) 'error) (s7-test (> 0) 'error) (s7-test (> 0.0 0.0) #f) (s7-test (> 0.0) 'error) (s7-test (>) 'error) (s7-test (> 0.0+0.00000001i) 'error) (s7-test (> 0/1) 'error) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (> 1 2 #\a) 'error) ;(s7-test (> 1 2 1.0+1.0i) 'error) (s7-test (> 1.0) 'error) (s7-test (> 1.0+1.0i) 'error) (s7-test (> 10/3) 'error) (s7-test (> 1234000000.0+2.71828182845905i) 'error) (s7-test (> 2) 'error) (s7-test (> 2.71828182845905+3.14159265358979i) 'error) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (> 3 3.0 3 3.0+1.0i) 'error) (s7-test (> 4 3 1 2 0) #f) (s7-test (> 4 3 2 1 0) #t) (s7-test (> 4 3 3 2 0) #f) (s7-test (> 4 3) #t) (s7-test (> 8 7 6 5 4) #t) (s7-test (> -10/3147483647 -40/12345678901) #t) (s7-test (> -101/3147483647 40/12345678901) #f) (s7-test (> -11/3147483647 -40/12345678901) #f) (s7-test (> 1/9223372036854775807 1/9223372036854775806) #f) (s7-test (> 10/3147483647 40/12345678901) #f) (s7-test (> 1047483646/11111111111111 1234567890213/12345678901123123) #f) (s7-test (> 11/3147483647 40/12345678901) #t) (s7-test (> 1282469252763/12824692526603504 1234567890213/12345678901123123) #f) (s7-test (> 1282469252765/12824692526603504 1234567890213/12345678901123123) #t) (s7-test (> 2/3 3147483547123/4) #f) (s7-test (> 2/3147483547 3147483547/3) #f) (s7-test (> 2147483646/11111111111111 1234567890213/12345678901123123) #t) (s7-test (> 3/147483647 40/3) #f) (s7-test (> 3/3147483647 -40/12345678901) #t) (s7-test (> 3/3147483647 40/12345678901) #f) (s7-test (> 3/3147483647 40/3) #f) (s7-test (> 3147483547/2 3/3147483547) #t) (s7-test (> 3147483547/2 3147483547/3) #t) (s7-test (> 3147483646/11 12345678901/40) #f) (s7-test (> 3147483646/11 1234567890213/12345678901123123) #t) (s7-test (> 3147483646/11 40/12345678901) #t) (s7-test (> 3147483646/11111111111111 1234567890213/12345678901123123) #t) (s7-test (> 3147483646/111111111111111 1234567890213/12345678901123123) #f) (s7-test (> -1.797693134862315699999999999999999999998E308 -9223372036854775808) #f) (s7-test (> -9223372036854775808 -9223372036854775808) #f) (s7-test (> -9223372036854775808 5.551115123125783999999999999999999999984E-17) #f) (s7-test (> -9223372036854775808 9223372036854775807 -9223372036854775808) #f) (s7-test (> 1.110223024625156799999999999999999999997E-16 -9223372036854775808) #t) (s7-test (> 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) #t) (s7-test (> 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) #f) (s7-test (> 9223372036854775807 -9223372036854775808) #t) (s7-test (> 9223372036854775807 9223372036854775807) #f) (s7-test (> 0 most-negative-fixnum) #t) (s7-test (> 0 most-positive-fixnum) #f) ;; Depends on the platform ;;(s7-test (> 1e18 most-positive-fixnum) #f) (s7-test (> 9007199254740992.0 9007199254740991.0) #t) (s7-test (> most-negative-fixnum (real-part (log 0.0))) #t) (s7-test (> most-negative-fixnum 0) #f) (s7-test (> most-negative-fixnum most-positive-fixnum) #f) (s7-test (> most-positive-fixnum (- (real-part (log 0.0)))) #f) (s7-test (> most-positive-fixnum 0) #t) (s7-test (> most-positive-fixnum most-negative-fixnum) #t) (s7-test (> most-positive-fixnum most-negative-fixnum) #t) (num-test (> 1/123400000000 .000000000001) #t) ; these can go either way I guess -- 1/0 might be NaN? ;(s7-test (< most-positive-fixnum 1/0) #t) ;(s7-test (> most-positive-fixnum 1/0) #f) (s7-test (> 10.000000000 9.99999999999999) #t) (s7-test (> -1/9223372036854775807 -9223372036854775807) #t) (s7-test (> 1 -1/9223372036854775807 -9223372036854775807) #t) (s7-test (> 1 1/9223372036 9223372036 1.0) #f) (s7-test (> 1 1/9223372036 9223372036) #f) (s7-test (> 1 1/922337203685 922337203685 1.0) #f) (s7-test (> 1 1/922337203685 922337203685) #f) (s7-test (> 1.0 1/9223372036 9223372036 1) #f) (s7-test (> 1.0 1/9223372036 9223372036) #f) (s7-test (> 1.0 1/922337203685 922337203685 1) #f) (s7-test (> 1.0 1/922337203685 922337203685) #f) (s7-test (> 1/9223372036 9223372036 1) #f) (s7-test (> 1/9223372036 9223372036 1.0) #f) (s7-test (> 1/9223372036 9223372036) #f) (s7-test (> 1/922337203685 922337203685 1) #f) (s7-test (> 1/922337203685 922337203685 1.0) #f) (s7-test (> 1/922337203685 922337203685) #f) (s7-test (> 9223372036 1/9223372036) #t) (s7-test (> 922337203685 1/922337203685) #t) (s7-test (> 9223372036854775807 1/9223372036854775807 -1) #t) (s7-test (> 9223372036854775807 1/9223372036854775807) #t) (s7-test (> 1.0 9223372036854775806/9223372036854775807) #t) (s7-test (> 9223372036854775807/9223372036854775806 1.0 9223372036854775806/9223372036854775807) #t) (s7-test (> 9223372036854775807/9223372036854775806 1.0) #t) (s7-test (> (* 10400200/16483927 1.0) (* 10781274/17087915 1.0)) #t) (s7-test (> (* 10400200/16483927 1.0) 10781274/17087915) #t) (s7-test (> (* 10781274/17087915 1.0) (* 53715833/85137581 1.0)) #f) (s7-test (> (* 10781274/17087915 1.0) 53715833/85137581) #f) (s7-test (> (* 12/19 1.0) (* 53/84 1.0)) #t) (s7-test (> (* 12/19 1.0) 53/84) #t) (s7-test (> (* 12941/20511 1.0) (* 15601/24727 1.0)) #f) (s7-test (> (* 12941/20511 1.0) 15601/24727) #f) (s7-test (> (* 15601/24727 1.0) (* 79335/125743 1.0)) #f) (s7-test (> (* 15601/24727 1.0) 79335/125743) #f) (s7-test (> (* 171928773/272500658 1.0) (* 397573379/630138897 1.0)) #f) (s7-test (> (* 171928773/272500658 1.0) 397573379/630138897) #f) (s7-test (> (* 190537/301994 1.0) (* 7161071/11350029 1.0)) #f) (s7-test (> (* 190537/301994 1.0) 7161071/11350029) #f) (s7-test (> (* 2/3 1.0) (* 5/8 1.0)) #t) (s7-test (> (* 2/3 1.0) 5/8) #t) (s7-test (> (* 253/401 1.0) (* 665/1054 1.0)) #f) (s7-test (> (* 253/401 1.0) 665/1054) #f) (s7-test (> (* 397573379/630138897 1.0) (* 4201378396/6659027209 1.0)) #f) (s7-test (> (* 397573379/630138897 1.0) 4201378396/6659027209) #f) (s7-test (> (* 5/8 1.0) (* 12/19 1.0)) #f) (s7-test (> (* 5/8 1.0) 12/19) #f) (s7-test (> (* 53/84 1.0) (* 253/401 1.0)) #t) (s7-test (> (* 53/84 1.0) 253/401) #t) (s7-test (> (abs (- .1 .2)) .3) #f) (s7-test (> (abs (- .1 .2)) .03) #t) ;;; (if with-bignums (s7-test (> (* 53715833/85137581 1.0) (* 171928773/272500658 1.0)) #t)) -- more bits ;;; (if with-bignums (s7-test (> (* 53715833/85137581 1.0) 171928773/272500658) #t)) (s7-test (> 53715833/85137581 171928773/272500658) #t) (s7-test (> (* 665/1054 1.0) (* 12941/20511 1.0)) #t) (s7-test (> (* 665/1054 1.0) 12941/20511) #t) (s7-test (> (* 7161071/11350029 1.0) (* 10400200/16483927 1.0)) #t) (s7-test (> (* 7161071/11350029 1.0) 10400200/16483927) #t) (s7-test (> (* 79335/125743 1.0) (* 190537/301994 1.0)) #f) (s7-test (> (* 79335/125743 1.0) 190537/301994) #f) (s7-test (> 10400200/16483927 10781274/17087915) #t) (s7-test (> 10781274/17087915 53715833/85137581) #f) (s7-test (> 12/19 53/84) #t) (s7-test (> 12941/20511 15601/24727) #f) (s7-test (> 15601/24727 79335/125743) #f) (s7-test (> 171928773/272500658 397573379/630138897) #f) (s7-test (> 190537/301994 7161071/11350029) #f) (s7-test (> 2/3 5/8) #t) (s7-test (> 253/401 665/1054) #f) (s7-test (> 397573379/630138897 4201378396/6659027209) #f) (s7-test (> 4201378396/6659027209 6189245291/9809721694) #t) (s7-test (> 5/8 12/19) #f) (s7-test (> 53/84 253/401) #t) (s7-test (> 53715833/85137581 171928773/272500658) #t) (s7-test (> 665/1054 12941/20511) #t) (s7-test (> 7161071/11350029 10400200/16483927) #t) (s7-test (> 79335/125743 190537/301994) #f) (s7-test (> 10.000000000 9.999999999999999) #t) (s7-test (> 12345678901234567890 12345678901234567891) #f) (s7-test (> 1267650600228229401496703205376) 'error) (s7-test (> 355/113 3587785776203/1142027682075 21053343141/6701487259) #t) (s7-test (> 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t) (s7-test (> 22/7 2646693125139304345/842468587426513207 21053343141/6701487259) #t) (s7-test (> 2646693125139304345/842468587426513207 21053343141/6701487259 4272943/1360120) #t) (s7-test (> 2646693125139304345/842468587426513207 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t) (s7-test (> 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t) (s7-test (> 2646693125139304345/842468587426513207 21053343141/6701487259 4272943/1360120) #t) (s7-test (> 2646693125139304345/842468587426513207 3587785776203/1142027682075 21053343141/6701487259) #t) (s7-test (> 3587785776203/1142027682075 21053343141/6701487259) #t) (s7-test (> 2646693125139304345/842468587426513207 21053343141/6701487259) #t) (test-end ">") ;;; -------------------------------------------------------------------------------- ;;; >= ;;; -------------------------------------------------------------------------------- (test-begin ">=") (s7-test (>= 0 1 1) #f) (s7-test (>= 0 1 1.0) #f) (s7-test (>= 0 1 1/1) #f) (s7-test (>= 0 1 123.4) #f) (s7-test (>= 0 1 1234) #f) (s7-test (>= 0 1 1234/11) #f) (s7-test (>= 0 1) #f) (s7-test (>= 0 1.0 1) #f) (s7-test (>= 0 1.0 1.0) #f) (s7-test (>= 0 1.0 1/1) #f) (s7-test (>= 0 1.0 123.4) #f) (s7-test (>= 0 1.0 1234) #f) (s7-test (>= 0 1.0 1234/11) #f) (s7-test (>= 0 1.0) #f) (s7-test (>= 0 123.4) #f) (s7-test (>= 0 1234) #f) (s7-test (>= 0 1234/11) #f) (s7-test (>= 0.0 1 1) #f) (s7-test (>= 0.0 1 1.0) #f) (s7-test (>= 0.0 1 1/1) #f) (s7-test (>= 0.0 1 123.4) #f) (s7-test (>= 0.0 1 1234) #f) (s7-test (>= 0.0 1 1234/11) #f) (s7-test (>= 0.0 1) #f) (s7-test (>= 0.0 1.0 1) #f) (s7-test (>= 0.0 1.0 1.0) #f) (s7-test (>= 0.0 1.0 1/1) #f) (s7-test (>= 0.0 1.0 123.4) #f) (s7-test (>= 0.0 1.0 1234) #f) (s7-test (>= 0.0 1.0 1234/11) #f) (s7-test (>= 0.0 1.0) #f) (s7-test (>= 0.0 123.4 1) #f) (s7-test (>= 0.0 123.4 1.0) #f) (s7-test (>= 0.0 123.4 1/1) #f) (s7-test (>= 0.0 123.4 123.4) #f) (s7-test (>= 0.0 123.4 1234) #f) (s7-test (>= 0.0 123.4 1234/11) #f) (s7-test (>= 0.0 123.4) #f) (s7-test (>= 0.0 1234 1) #f) (s7-test (>= 0.0 1234 1.0) #f) (s7-test (>= 0.0 1234 1/1) #f) (s7-test (>= 0.0 1234 123.4) #f) (s7-test (>= 0.0 1234 1234) #f) (s7-test (>= 0.0 1234 1234/11) #f) (s7-test (>= 0.0 1234) #f) (s7-test (>= 0.0 1234/11 1) #f) (s7-test (>= 0.0 1234/11 1.0) #f) (s7-test (>= 0.0 1234/11 1/1) #f) (s7-test (>= 0.0 1234/11 123.4) #f) (s7-test (>= 0.0 1234/11 1234) #f) (s7-test (>= 0.0 1234/11 1234/11) #f) (s7-test (>= 0.0 1234/11) #f) (s7-test (>= 1 1 1) #t) (s7-test (>= 1 1 1.0) #t) (s7-test (>= 1 1 1/1) #t) (s7-test (>= 1 1 123.4) #f) (s7-test (>= 1 1 1234) #f) (s7-test (>= 1 1 1234/11) #f) (s7-test (>= 1 1) #t) (s7-test (>= 1 1.0 1) #t) (s7-test (>= 1 1.0 1.0) #t) (s7-test (>= 1 1.0 1/1) #t) (s7-test (>= 1 1.0 123.4) #f) (s7-test (>= 1 1.0 1234) #f) (s7-test (>= 1 1.0 1234/11) #f) (s7-test (>= 1 1.0) #t) (s7-test (>= 1 123.4) #f) (s7-test (>= 1 1234) #f) (s7-test (>= 1 1234/11) #f) (s7-test (>= 1.0 1 1) #t) (s7-test (>= 1.0 1 1.0) #t) (s7-test (>= 1.0 1 1/1) #t) (s7-test (>= 1.0 1 123.4) #f) (s7-test (>= 1.0 1 1234) #f) (s7-test (>= 1.0 1 1234/11) #f) (s7-test (>= 1.0 1) #t) (s7-test (>= 1.0 1.0 1) #t) (s7-test (>= 1.0 1.0 1.0) #t) (s7-test (>= 1.0 1.0 1/1) #t) (s7-test (>= 1.0 1.0 123.4) #f) (s7-test (>= 1.0 1.0 1234) #f) (s7-test (>= 1.0 1.0 1234/11) #f) (s7-test (>= 1.0 1.0) #t) (s7-test (>= 1.0 1/1 1) #t) (s7-test (>= 1.0 123.4 1) #f) (s7-test (>= 1.0 123.4 1.0) #f) (s7-test (>= 1.0 123.4 1/1) #f) (s7-test (>= 1.0 123.4 123.4) #f) (s7-test (>= 1.0 123.4 1234) #f) (s7-test (>= 1.0 123.4 1234/11) #f) (s7-test (>= 1.0 123.4) #f) (s7-test (>= 1.0 1234 1) #f) (s7-test (>= 1.0 1234 1.0) #f) (s7-test (>= 1.0 1234 1/1) #f) (s7-test (>= 1.0 1234 123.4) #f) (s7-test (>= 1.0 1234 1234) #f) (s7-test (>= 1.0 1234 1234/11) #f) (s7-test (>= 1.0 1234) #f) (s7-test (>= 1.0 1234/11 1) #f) (s7-test (>= 1.0 1234/11 1.0) #f) (s7-test (>= 1.0 1234/11 1/1) #f) (s7-test (>= 1.0 1234/11 123.4) #f) (s7-test (>= 1.0 1234/11 1234) #f) (s7-test (>= 1.0 1234/11 1234/11) #f) (s7-test (>= 1.0 1234/11) #f) (s7-test (>= 123.4 1 1) #t) (s7-test (>= 123.4 1 1.0) #t) (s7-test (>= 123.4 1 1/1) #t) (s7-test (>= 123.4 1 123.4) #f) (s7-test (>= 123.4 1 1234) #f) (s7-test (>= 123.4 1 1234/11) #f) (s7-test (>= 123.4 1) #t) (s7-test (>= 123.4 1.0 1) #t) (s7-test (>= 123.4 1.0 1.0) #t) (s7-test (>= 123.4 1.0 1/1) #t) (s7-test (>= 123.4 1.0 123.4) #f) (s7-test (>= 123.4 1.0 1234) #f) (s7-test (>= 123.4 1.0 1234/11) #f) (s7-test (>= 123.4 1.0) #t) (s7-test (>= 123.4 123.4 1) #t) (s7-test (>= 123.4 123.4 1.0) #t) (s7-test (>= 123.4 123.4 1/1) #t) (s7-test (>= 123.4 123.4 123.4) #t) (s7-test (>= 123.4 123.4 1234) #f) (s7-test (>= 123.4 123.4 1234/11) #t) (s7-test (>= 123.4 123.4) #t) (s7-test (>= 123.4 1234 1) #f) (s7-test (>= 123.4 1234 1.0) #f) (s7-test (>= 123.4 1234 1/1) #f) (s7-test (>= 123.4 1234 123.4) #f) (s7-test (>= 123.4 1234 1234) #f) (s7-test (>= 123.4 1234 1234/11) #f) (s7-test (>= 123.4 1234) #f) (s7-test (>= 123.4 1234/11 1) #t) (s7-test (>= 123.4 1234/11 1.0) #t) (s7-test (>= 123.4 1234/11 1/1) #t) (s7-test (>= 123.4 1234/11 123.4) #f) (s7-test (>= 123.4 1234/11 1234) #f) (s7-test (>= 123.4 1234/11 1234/11) #t) (s7-test (>= 123.4 1234/11) #t) (s7-test (>= 1234 1) #t) (s7-test (>= 1234 1.0) #t) (s7-test (>= 1234 1/1) #t) (s7-test (>= 1234 123.4) #t) (s7-test (>= 1234 1234) #t) (s7-test (>= 1234 1234/11) #t) (s7-test (>= 1234/11 1) #t) (s7-test (>= 1234/11 1.0) #t) (s7-test (>= 1234/11 1/1) #t) (s7-test (>= 1234/11 123.4) #f) (s7-test (>= 1234/11 1234) #f) (s7-test (>= 1234/11 1234/11) #t) (s7-test (>= 0+i 0+i) 'error) ;?? (s7-test (>= 1 0+i) 'error) (s7-test (>= 1 0-i) 'error) (s7-test (>= 1 1 2) #f) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (>= 1 2 #\a) 'error) (s7-test (>= 1 3 2) #f ) (s7-test (>= 1+i 0+i) 'error) (s7-test (>= 1+i 0-i) 'error) ;; "if any of the arguments are nan, [>=] returns nan". Of course the type checks ;; still need to be done, the question is if we want to be this strict. ;(s7-test (>= nan.0 1+i) 'error) ;(s7-test (>= nan.0 1 1+i) 'error) ;(s7-test (>= 1 nan.0 1+i) 'error) (s7-test (>= inf.0 1+i) 'error) ;(s7-test (>= inf.0 nan.0 0-i 1) 'error) (s7-test (>= 2 1+0/2i) #t) (s7-test (>= 2 1+0i) #t) (s7-test (>= 2 1-0i) #t) (s7-test (>= 3 -4 -6246) #t ) (s7-test (>= 8 9) #f ) (s7-test (>= 9 9) #t ) (s7-test (>= -5 -4 -2 0 4 5) #f) (s7-test (>= 0) 'error) (s7-test (>=) 'error) (s7-test (>= 0.0) 'error) (s7-test (>= 0.0+0.00000001i) 'error) (s7-test (>= 0/1) 'error) ;; XXX FIXME TODO Do we want to be this strict? ;(s7-test (>= 1 2 #\a) 'error) ;(s7-test (>= 1 2 1.0+1.0i) 'error) (s7-test (>= 1.0) 'error) (s7-test (>= 1.0+1.0i) 'error) (s7-test (>= 10/3) 'error) (s7-test (>= 1234000000.0+2.71828182845905i) 'error) (s7-test (>= 2) 'error) (s7-test (>= 2.71828182845905+3.14159265358979i) 'error) (s7-test (>= 4 3 1 2 0) #f) (s7-test (>= 4 3 2 1 0) #t) (s7-test (>= 4 3 3 2 0) #t) (s7-test (>= 4 3) #t) (s7-test (>= -1.797693134862315699999999999999999999998E308 -9223372036854775808) #f) (s7-test (>= -9223372036854775808 -9223372036854775808) #t) (s7-test (>= -9223372036854775808 5.551115123125783999999999999999999999984E-17) #f) (s7-test (>= -9223372036854775808 9223372036854775807 -9223372036854775808) #f) (s7-test (>= 1.110223024625156799999999999999999999997E-16 -9223372036854775808) #t) (s7-test (>= 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) #t) (s7-test (>= 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) #f) (s7-test (>= 9223372036854775807 -9223372036854775808) #t) (s7-test (>= 9223372036854775807 9223372036854775807) #t) (s7-test (>= -1 -9223372036854775807 -1/9223372036854775807) #f) (s7-test (>= -9223372036854775807 -1/9223372036854775807 -1) #f) (s7-test (>= -9223372036854775807 -1/9223372036854775807) #f) (s7-test (>= 1 -1 -9223372036854775807 -1/9223372036854775807) #f) (s7-test (>= 1 -9223372036854775807 -1/9223372036854775807 -1) #f) (s7-test (>= 1 -9223372036854775807 -1/9223372036854775807) #f) (s7-test (>= 1 1.0 1/9223372036 9223372036) #f) (s7-test (>= 1 1.0 1/922337203685 922337203685) #f) (s7-test (>= 1 1/9223372036 9223372036 1.0) #f) (s7-test (>= 1 1/9223372036 9223372036) #f) (s7-test (>= 1 1/922337203685 922337203685 1.0) #f) (s7-test (>= 1 1/922337203685 922337203685) #f) (s7-test (>= 1 1/9223372036854775807 9223372036854775807 -1) #f) (s7-test (>= 1 1/9223372036854775807 9223372036854775807) #f) (s7-test (>= 1.0 1 1/9223372036 9223372036) #f) (s7-test (>= 1.0 1 1/922337203685 922337203685) #f) (s7-test (>= 1.0 1/9223372036 9223372036 1) #f) (s7-test (>= 1.0 1/9223372036 9223372036) #f) (s7-test (>= 1.0 1/922337203685 922337203685 1) #f) (s7-test (>= 1.0 1/922337203685 922337203685) #f) (s7-test (>= 1/9223372036 9223372036 1 1.0) #f) (s7-test (>= 1/9223372036 9223372036 1) #f) (s7-test (>= 1/9223372036 9223372036 1.0 1) #f) (s7-test (>= 1/9223372036 9223372036 1.0) #f) (s7-test (>= 1/9223372036 9223372036) #f) (s7-test (>= 1/922337203685 922337203685 1 1.0) #f) (s7-test (>= 1/922337203685 922337203685 1) #f) (s7-test (>= 1/922337203685 922337203685 1.0 1) #f) (s7-test (>= 1/922337203685 922337203685 1.0) #f) (s7-test (>= 1/922337203685 922337203685) #f) (s7-test (>= 1/9223372036854775807 9223372036854775807 -1) #f) (s7-test (>= 1/9223372036854775807 9223372036854775807 1 -1) #f) (s7-test (>= 1/9223372036854775807 9223372036854775807 1) #f) (s7-test (>= 1/9223372036854775807 9223372036854775807) #f) (s7-test (>= 9223372036 1/9223372036) #t) (s7-test (>= 922337203685 1/922337203685) #t) (s7-test (>= 1 1.0 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807) #f) (s7-test (>= 1 1.0 9223372036854775807/9223372036854775806) #f) (s7-test (>= 1 9223372036854775806/9223372036854775807 1.0 9223372036854775807/9223372036854775806) #f) (s7-test (>= 1 9223372036854775806/9223372036854775807 1.0) #f) (s7-test (>= 1.0 9223372036854775807/9223372036854775806 1 9223372036854775806/9223372036854775807) #f) (s7-test (>= 1.0 9223372036854775807/9223372036854775806 1) #f) (s7-test (>= 1.0 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807) #f) (s7-test (>= 1.0 9223372036854775807/9223372036854775806) #f) (s7-test (>= 9223372036854775806/9223372036854775807 1.0 1) #f) (s7-test (>= 9223372036854775806/9223372036854775807 1.0 9223372036854775807/9223372036854775806 1) #f) (s7-test (>= 9223372036854775806/9223372036854775807 1.0 9223372036854775807/9223372036854775806) #f) (s7-test (>= 9223372036854775806/9223372036854775807 1.0) #f) (s7-test (>= 9223372036854775807/9223372036854775806 1 9223372036854775806/9223372036854775807 1.0) #f) (s7-test (>= 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807 1.0 1) #f) (s7-test (>= 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807 1.0) #f) (s7-test (>= 12345678901234567890 12345678901234567891) #f) (s7-test (>= 1267650600228229401496703205376) 'error) (s7-test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075 4272943/1360120) #f) (s7-test (>= 21053343141/6701487259 3587785776203/1142027682075 4272943/1360120) #f) (s7-test (>= 3587785776203/1142027682075 2646693125139304345/842468587426513207 4272943/1360120) #f) (s7-test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f) (s7-test (>= 21053343141/6701487259 3587785776203/1142027682075 2646693125139304345/842468587426513207) #f) (s7-test (>= 21053343141/6701487259 3587785776203/1142027682075) #f) (s7-test (>= 21053343141/6701487259 2646693125139304345/842468587426513207) #f) (s7-test (>= 3587785776203/1142027682075 2646693125139304345/842468587426513207) #f) (s7-test (>= 22/7 21053343141/6701487259 2646693125139304345/842468587426513207 4272943/1360120) #f) (s7-test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 4272943/1360120) #f) (s7-test (>= 21053343141/6701487259 2646693125139304345/842468587426513207) #f) (s7-test (>= 355/113 21053343141/6701487259 3587785776203/1142027682075) #f) (s7-test (>= 21053343141/6701487259 3587785776203/1142027682075 4272943/1360120) #f) (s7-test (>= - 1 2) 'error) (s7-test (>=- 1 2) 'error) (for-each (lambda (op) (for-each (lambda (arg1) (s7-test (op arg1) 'error) (s7-test (op 0 arg1) 'error) (s7-test (op 0.0 arg1) 'error) (for-each (lambda (arg2) (s7-test (op arg1 arg2) 'error)) (list "hi" '() 1 1.5 3/2 1+i (cons 1 2) (list 1 2) #\a 'a-symbol '#(1) abs #f (lambda (a) (+ a 1)) (void) ':hi #!eof))) (list "hi" '() (cons 1 2) (list 1 2) #\a 'a-symbol '#(1) abs #f (lambda (a) (+ a 1)) (void) ':hi #!eof))) (list + - * / > < >= <= )) (for-each (lambda (op) (let ((val1 (handle-exceptions exn 'error (op 1.0))) (val2 (handle-exceptions exn 'error (op 1.0+0i)))) (test-assert (format #f ";(~A 1) == (~A 1+0i)? (~A ~A)~%" op op val1 val2) (equal? val1 val2)))) (list magnitude angle rationalize abs exp log sin cos tan asin acos atan #;sinh #;cosh #;tanh #;asinh #;acosh #;atanh sqrt floor ceiling truncate round + - * / max min number? integer? real? complex? rational? even? odd? zero? positive? negative? real-part imag-part numerator denominator)) (test-end ">=") ;;; -------------------------------------------------------------------------------- ;;; sin ;;; -------------------------------------------------------------------------------- (test-begin "sin") (num-test (sin -0.0+0.00000001i) 0.0+0.00000001i) (num-test (sin -0.0+0.0i) 0.0) (num-test (sin -0.0+1.0i) 0.0+1.17520119364380i) (num-test (sin -0.0+2.71828182845905i) 0.0+7.54413710281697i) (num-test (sin -0.0+3.14159265358979i) 0.0+11.54873935725775i) (num-test (sin -0.0-0.00000001i) -0.0-0.00000001i) (num-test (sin -0.0-0.0i) 0.0) (num-test (sin -0.0-1.0i) -0.0-1.17520119364380i) (num-test (sin -0.0-2.71828182845905i) -0.0-7.54413710281697i) (num-test (sin -0.0-3.14159265358979i) -0.0-11.54873935725775i) (num-test (sin -0.00000001) -0.00000001) (num-test (sin -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (sin -0.00000001+0.0i) -0.00000001) (num-test (sin -0.00000001+1.0i) -0.00000001543081+1.17520119364380i) (num-test (sin -0.00000001+2.71828182845905i) -0.00000007610125+7.54413710281697i) (num-test (sin -0.00000001+3.14159265358979i) -0.00000011591953+11.54873935725775i) (num-test (sin -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (sin -0.00000001-0.0i) -0.00000001) (num-test (sin -0.00000001-1.0i) -0.00000001543081-1.17520119364380i) (num-test (sin -0.00000001-2.71828182845905i) -0.00000007610125-7.54413710281697i) (num-test (sin -0.00000001-3.14159265358979i) -0.00000011591953-11.54873935725775i) (num-test (sin -1) -0.84147098480790) (num-test (sin -1.0) -0.84147098480790) (num-test (sin -1.0+0.00000001i) -0.84147098480790+0.00000000540302i) (num-test (sin -1.0+0.0i) -0.84147098480790) (num-test (sin -1.0+1.0i) -1.29845758141598+0.63496391478474i) (num-test (sin -1.0+2.71828182845905i) -6.40369949494148+4.07611467243740i) (num-test (sin -1.0+3.14159265358979i) -9.75429233860021+6.23981050459650i) (num-test (sin -1.0-0.00000001i) -0.84147098480790-0.00000000540302i) (num-test (sin -1.0-0.0i) -0.84147098480790) (num-test (sin -1.0-1.0i) -1.29845758141598-0.63496391478474i) (num-test (sin -1.0-2.71828182845905i) -6.40369949494148-4.07611467243740i) (num-test (sin -1.0-3.14159265358979i) -9.75429233860021-6.23981050459650i) (num-test (sin -1.57045105981189525579e+00+0.0e+00i) -9.9999994039535581669e-1) (num-test (sin -1.57045105981189525579e+00+1.0e+00i) -1.5430805428404715942e0+4.0575816248730593018e-4i) (num-test (sin -1.57045105981189525579e+00+1.19209289550781250e-07i) -9.9999994039536292211e-1+4.1159030931177815679e-11i) (num-test (sin -1.57045105981189525579e+00+2.0e+00i) -3.7621954668392959445e0+1.2522351259047577385e-3i) (num-test (sin -1.57045105981189525579e+00+5.0e-01i) -1.1276258979946363572e0+1.7991700040937027667e-4i) (num-test (sin -1.57045105981189525579e+00-1.0e+00i) -1.5430805428404715942e0-4.0575816248730593018e-4i) (num-test (sin -1.57045105981189525579e+00-1.19209289550781250e-07i) -9.9999994039536292211e-1-4.1159030931177815679e-11i) (num-test (sin -1.57045105981189525579e+00-2.0e+00i) -3.7621954668392959445e0-1.2522351259047577385e-3i) (num-test (sin -1.57045105981189525579e+00-5.0e-01i) -1.1276258979946363572e0-1.7991700040937027667e-4i) (num-test (sin -1.57114159377789786021e+00+0.0e+00i) -9.9999994039535581673e-1) (num-test (sin -1.57114159377789786021e+00+1.0e+00i) -1.5430805428404715942e0-4.0575816248716200955e-4i) (num-test (sin -1.57114159377789786021e+00+1.19209289550781250e-07i) -9.9999994039536292216e-1-4.1159030931163216752e-11i) (num-test (sin -1.57114159377789786021e+00+2.0e+00i) -3.7621954668392959447e0-1.2522351259043135762e-3i) (num-test (sin -1.57114159377789786021e+00+5.0e-01i) -1.1276258979946363573e0-1.7991700040930646090e-4i) (num-test (sin -1.57114159377789786021e+00-1.0e+00i) -1.5430805428404715942e0+4.0575816248716200955e-4i) (num-test (sin -1.57114159377789786021e+00-1.19209289550781250e-07i) -9.9999994039536292216e-1+4.1159030931163216752e-11i) (num-test (sin -1.57114159377789786021e+00-2.0e+00i) -3.7621954668392959447e0+1.2522351259043135762e-3i) (num-test (sin -1.57114159377789786021e+00-5.0e-01i) -1.1276258979946363573e0+1.7991700040930646090e-4i) (num-test (sin -1/1) -0.84147098480790) (num-test (sin -1/10) -0.09983341664683) (num-test (sin -1/1234) -0.00081037268278) (num-test (sin -1/1234000000) -0.00000000081037) (num-test (sin -1/2) -0.47942553860420) (num-test (sin -1/3) -0.32719469679615) (num-test (sin -1/362880) -0.00000275573192) (num-test (sin -1/500029) -0.00000199988401) (num-test (sin -10/1234) -0.00810363901920) (num-test (sin -10/1234000000) -0.00000000810373) (num-test (sin -10/362880) -0.00002755731922) (num-test (sin -10/500029) -0.00001999884007) (num-test (sin -1234/1234000000) -0.00000100000000) (num-test (sin -1234/362880) -0.00340056663826) (num-test (sin -1234/500029) -0.00246785435930) (num-test (sin -1234000000/1234000000) -0.84147098480790) (num-test (sin -2) -0.90929742682568) (num-test (sin -2.225073858507201399999999999999999999996E-308) -2.225073858507201399999999999999999999996E-308) (num-test (sin -2/1) -0.90929742682568) (num-test (sin -2/10) -0.19866933079506) (num-test (sin -2/1234) -0.00162074483338) (num-test (sin -2/1234000000) -0.00000000162075) (num-test (sin -2/3) -0.61836980306974) (num-test (sin -2/362880) -0.00000551146384) (num-test (sin -2/500029) -0.00000399976801) (num-test (sin -3.14124738660679181379e+00+0.0e+00i) -3.4526697614158608860e-4) (num-test (sin -3.14124738660679181379e+00+1.0e+00i) -5.3277478472529828958e-4-1.1752011235963524659e0i) (num-test (sin -3.14124738660679181379e+00+1.19209289550781250e-07i) -3.4526697614158854187e-4-1.1920928244535424532e-7i) (num-test (sin -3.14124738660679181379e+00+2.0e+00i) -1.2989619299133501696e-3-3.6268601916692946553e0i) (num-test (sin -3.14124738660679181379e+00+5.0e-01i) -3.8933200722554445944e-4-5.2109527443404709206e-1i) (num-test (sin -3.14124738660679181379e+00-1.0e+00i) -5.3277478472529828958e-4+1.1752011235963524659e0i) (num-test (sin -3.14124738660679181379e+00-1.19209289550781250e-07i) -3.4526697614158854187e-4+1.1920928244535424532e-7i) (num-test (sin -3.14124738660679181379e+00-2.0e+00i) -1.2989619299133501696e-3+3.6268601916692946553e0i) (num-test (sin -3.14124738660679181379e+00-5.0e-01i) -3.8933200722554445944e-4+5.2109527443404709206e-1i) (num-test (sin -3.14193792057279441821e+00+0.0e+00i) 3.4526697614134115926e-4) (num-test (sin -3.14193792057279441821e+00+1.0e+00i) 5.3277478472492034385e-4-1.1752011235963524660e0i) (num-test (sin -3.14193792057279441821e+00+1.19209289550781250e-07i) 3.4526697614134361253e-4-1.1920928244535424533e-7i) (num-test (sin -3.14193792057279441821e+00+2.0e+00i) 1.2989619299124286975e-3-3.6268601916692946556e0i) (num-test (sin -3.14193792057279441821e+00+5.0e-01i) 3.8933200722526827075e-4-5.2109527443404709211e-1i) (num-test (sin -3.14193792057279441821e+00-1.0e+00i) 5.3277478472492034385e-4+1.1752011235963524660e0i) (num-test (sin -3.14193792057279441821e+00-1.19209289550781250e-07i) 3.4526697614134361253e-4+1.1920928244535424533e-7i) (num-test (sin -3.14193792057279441821e+00-2.0e+00i) 1.2989619299124286975e-3+3.6268601916692946556e0i) (num-test (sin -3.14193792057279441821e+00-5.0e-01i) 3.8933200722526827075e-4+5.2109527443404709211e-1i) (num-test (sin -3.45266983001243932001e-04+0.0e+00i) -3.4526697614140534807e-4) (num-test (sin -3.45266983001243932001e-04+1.0e+00i) -5.3277478472501939236e-4+1.1752011235963524660e0i) (num-test (sin -3.45266983001243932001e-04+1.19209289550781250e-07i) -3.4526697614140780134e-4+1.1920928244535424533e-7i) (num-test (sin -3.45266983001243932001e-04+2.0e+00i) -1.2989619299126701883e-3+3.6268601916692946556e0i) (num-test (sin -3.45266983001243932001e-04+5.0e-01i) -3.8933200722534065172e-4+5.2109527443404709209e-1i) (num-test (sin -3.45266983001243932001e-04-1.0e+00i) -5.3277478472501939236e-4-1.1752011235963524660e0i) (num-test (sin -3.45266983001243932001e-04-1.19209289550781250e-07i) -3.4526697614140780134e-4-1.1920928244535424533e-7i) (num-test (sin -3.45266983001243932001e-04-2.0e+00i) -1.2989619299126701883e-3-3.6268601916692946556e0i) (num-test (sin -3.45266983001243932001e-04-5.0e-01i) -3.8933200722534065172e-4-5.2109527443404709209e-1i) (num-test (sin -3/10) -0.29552020666134) (num-test (sin -3/1234) -0.00243111591964) (num-test (sin -3/1234000000) -0.00000000243112) (num-test (sin -3/2) -0.99749498660405) (num-test (sin -3/362880) -0.00000826719577) (num-test (sin -3/500029) -0.00000599965202) (num-test (sin -362880/1234000000) -0.00029406806707) (num-test (sin -4.71204371340168837179e+00+0.0e+00i) 9.9999994039535581664e-1) (num-test (sin -4.71204371340168837179e+00+1.0e+00i) 1.5430805428404715941e0-4.0575816248744985081e-4i) (num-test (sin -4.71204371340168837179e+00+1.19209289550781250e-07i) 9.9999994039536292207e-1-4.1159030931192414605e-11i) (num-test (sin -4.71204371340168837179e+00+2.0e+00i) 3.7621954668392959444e0-1.2522351259052019007e-3i) (num-test (sin -4.71204371340168837179e+00+5.0e-01i) 1.1276258979946363572e0-1.7991700040943409243e-4i) (num-test (sin -4.71204371340168837179e+00-1.0e+00i) 1.5430805428404715941e0+4.0575816248744985081e-4i) (num-test (sin -4.71204371340168837179e+00-1.19209289550781250e-07i) 9.9999994039536292207e-1+4.1159030931192414605e-11i) (num-test (sin -4.71204371340168837179e+00-2.0e+00i) 3.7621954668392959444e0+1.2522351259052019007e-3i) (num-test (sin -4.71204371340168837179e+00-5.0e-01i) 1.1276258979946363572e0+1.7991700040943409243e-4i) (num-test (sin -4.71273424736769097620e+00+0.0e+00i) 9.9999994039535581677e-1) (num-test (sin -4.71273424736769097620e+00+1.0e+00i) 1.5430805428404715943e0+4.0575816248701808892e-4i) (num-test (sin -4.71273424736769097620e+00+1.19209289550781250e-07i) 9.9999994039536292220e-1+4.1159030931148617825e-11i) (num-test (sin -4.71273424736769097620e+00+2.0e+00i) 3.7621954668392959448e0+1.2522351259038694139e-3i) (num-test (sin -4.71273424736769097620e+00+5.0e-01i) 1.1276258979946363573e0+1.7991700040924264514e-4i) (num-test (sin -4.71273424736769097620e+00-1.0e+00i) 1.5430805428404715943e0-4.0575816248701808892e-4i) (num-test (sin -4.71273424736769097620e+00-1.19209289550781250e-07i) 9.9999994039536292220e-1-4.1159030931148617825e-11i) (num-test (sin -4.71273424736769097620e+00-2.0e+00i) 3.7621954668392959448e0-1.2522351259038694139e-3i) (num-test (sin -4.71273424736769097620e+00-5.0e-01i) 1.1276258979946363573e0-1.7991700040924264514e-4i) (num-test (sin -500029/1234000000) -0.00040520987546) (num-test (sin -500029/362880) -0.98146191370834) (num-test (sin -6.28284004019658492979e+00+0.0e+00i) 3.4526697614170855328e-4) (num-test (sin -6.28284004019658492979e+00+1.0e+00i) 5.3277478472548726245e-4+1.1752011235963524659e0i) (num-test (sin -6.28284004019658492979e+00+1.19209289550781250e-07i) 3.4526697614171100655e-4+1.1920928244535424532e-7i) (num-test (sin -6.28284004019658492979e+00+2.0e+00i) 1.2989619299138109057e-3+3.6268601916692946552e0i) (num-test (sin -6.28284004019658492979e+00+5.0e-01i) 3.8933200722568255379e-4+5.2109527443404709204e-1i) (num-test (sin -6.28284004019658492979e+00-1.0e+00i) 5.3277478472548726245e-4-1.1752011235963524659e0i) (num-test (sin -6.28284004019658492979e+00-1.19209289550781250e-07i) 3.4526697614171100655e-4-1.1920928244535424532e-7i) (num-test (sin -6.28284004019658492979e+00-2.0e+00i) 1.2989619299138109057e-3-3.6268601916692946552e0i) (num-test (sin -6.28284004019658492979e+00-5.0e-01i) 3.8933200722568255379e-4-5.2109527443404709204e-1i) (num-test (sin -6.28353057416258753420e+00+0.0e+00i) -3.4526697614121869459e-4) (num-test (sin -6.28353057416258753420e+00+1.0e+00i) -5.3277478472473137099e-4+1.1752011235963524661e0i) (num-test (sin -6.28353057416258753420e+00+1.19209289550781250e-07i) -3.4526697614122114786e-4+1.1920928244535424534e-7i) (num-test (sin -6.28353057416258753420e+00+2.0e+00i) -1.2989619299119679614e-3+3.6268601916692946558e0i) (num-test (sin -6.28353057416258753420e+00+5.0e-01i) -3.8933200722513017641e-4+5.2109527443404709213e-1i) (num-test (sin -6.28353057416258753420e+00-1.0e+00i) -5.3277478472473137099e-4-1.1752011235963524661e0i) (num-test (sin -6.28353057416258753420e+00-1.19209289550781250e-07i) -3.4526697614122114786e-4-1.1920928244535424534e-7i) (num-test (sin -6.28353057416258753420e+00-2.0e+00i) -1.2989619299119679614e-3-3.6268601916692946558e0i) (num-test (sin -6.28353057416258753420e+00-5.0e-01i) -3.8933200722513017641e-4-5.2109527443404709213e-1i) (num-test (sin -9.42443269378637893396e+00+0.0e+00i) -3.4526697614094283958e-4) (num-test (sin -9.42443269378637893396e+00+1.0e+00i) -5.3277478472430570447e-4-1.1752011235963524662e0i) (num-test (sin -9.42443269378637893396e+00+1.19209289550781250e-07i) -3.4526697614094529285e-4-1.1920928244535424535e-7i) (num-test (sin -9.42443269378637893396e+00+2.0e+00i) -1.2989619299109301409e-3-3.6268601916692946561e0i) (num-test (sin -9.42443269378637893396e+00+5.0e-01i) -3.8933200722481911514e-4-5.2109527443404709218e-1i) (num-test (sin -9.42443269378637893396e+00-1.0e+00i) -5.3277478472430570447e-4+1.1752011235963524662e0i) (num-test (sin -9.42443269378637893396e+00-1.19209289550781250e-07i) -3.4526697614094529285e-4+1.1920928244535424535e-7i) (num-test (sin -9.42443269378637893396e+00-2.0e+00i) -1.2989619299109301409e-3+3.6268601916692946561e0i) (num-test (sin -9.42443269378637893396e+00-5.0e-01i) -3.8933200722481911514e-4+5.2109527443404709218e-1i) (num-test (sin -9.42512322775237976202e+00+0.0e+00i) 3.4526697614020805155e-4) (num-test (sin -9.42512322775237976202e+00+1.0e+00i) 5.3277478472317186729e-4-1.1752011235963524665e0i) (num-test (sin -9.42512322775237976202e+00+1.19209289550781250e-07i) 3.4526697614021050482e-4-1.1920928244535424538e-7i) (num-test (sin -9.42512322775237976202e+00+2.0e+00i) 1.2989619299081657245e-3-3.6268601916692946571e0i) (num-test (sin -9.42512322775237976202e+00+5.0e-01i) 3.8933200722399054908e-4-5.2109527443404709231e-1i) (num-test (sin -9.42512322775237976202e+00-1.0e+00i) 5.3277478472317186729e-4+1.1752011235963524665e0i) (num-test (sin -9.42512322775237976202e+00-1.19209289550781250e-07i) 3.4526697614021050482e-4+1.1920928244535424538e-7i) (num-test (sin -9.42512322775237976202e+00-2.0e+00i) 1.2989619299081657245e-3+3.6268601916692946571e0i) (num-test (sin -9.42512322775237976202e+00-5.0e-01i) 3.8933200722399054908e-4+5.2109527443404709231e-1i) (num-test (sin 0) 0.0) (num-test (sin 0.0) 0.0) (num-test (sin 0.0+0.00000001i) 0.0+0.00000001i) (num-test (sin 0.0+0.0i) 0.0) (num-test (sin 0.0+1.0i) 0.0+1.17520119364380i) (num-test (sin 0.0+2.71828182845905i) 0.0+7.54413710281697i) (num-test (sin 0.0+3.14159265358979i) 0.0+11.54873935725775i) (num-test (sin 0.0-0.00000001i) 0.0-0.00000001i) (num-test (sin 0.0-0.0i) 0.0) (num-test (sin 0.0-1.0i) 0.0-1.17520119364380i) (num-test (sin 0.0-2.71828182845905i) 0.0-7.54413710281697i) (num-test (sin 0.0-3.14159265358979i) 0.0-11.54873935725775i) (num-test (sin 0.00000001) 0.00000001) (num-test (sin 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (sin 0.00000001+0.0i) 0.00000001) (num-test (sin 0.00000001+1.0i) 0.00000001543081+1.17520119364380i) (num-test (sin 0.00000001+2.71828182845905i) 0.00000007610125+7.54413710281697i) (num-test (sin 0.00000001+3.14159265358979i) 0.00000011591953+11.54873935725775i) (num-test (sin 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (sin 0.00000001-0.0i) 0.00000001) (num-test (sin 0.00000001-1.0i) 0.00000001543081-1.17520119364380i) (num-test (sin 0.00000001-2.71828182845905i) 0.00000007610125-7.54413710281697i) (num-test (sin 0.00000001-3.14159265358979i) 0.00000011591953-11.54873935725775i) (num-test (sin 0/1) 0.0) (num-test (sin 0/1234000000) 0.0) (num-test (sin 0/500029) 0.0) (num-test (sin 1) 0.84147098480790) (num-test (sin 1.0) 0.84147098480790) (num-test (sin 1.0+0.00000001i) 0.84147098480790+0.00000000540302i) (num-test (sin 1.0+0.0i) 0.84147098480790) (num-test (sin 1.0+1.0i) 1.29845758141598+0.63496391478474i) (num-test (sin 1.0+2.71828182845905i) 6.40369949494148+4.07611467243740i) (num-test (sin 1.0+3.14159265358979i) 9.75429233860021+6.23981050459650i) (num-test (sin 1.0-0.00000001i) 0.84147098480790-0.00000000540302i) (num-test (sin 1.0-0.0i) 0.84147098480790) (num-test (sin 1.0-1.0i) 1.29845758141598-0.63496391478474i) (num-test (sin 1.0-2.71828182845905i) 6.40369949494148-4.07611467243740i) (num-test (sin 1.0-3.14159265358979i) 9.75429233860021-6.23981050459650i) (num-test (sin 1.110223024625156799999999999999999999997E-16) 1.11022302462515679999999999999999771924E-16) (num-test (sin 1.57045105981189525579e+00+0.0e+00i) 9.9999994039535581669e-1) (num-test (sin 1.57045105981189525579e+00+1.0e+00i) 1.5430805428404715942e0+4.0575816248730593018e-4i) (num-test (sin 1.57045105981189525579e+00+1.19209289550781250e-07i) 9.9999994039536292211e-1+4.1159030931177815679e-11i) (num-test (sin 1.57045105981189525579e+00+2.0e+00i) 3.7621954668392959445e0+1.2522351259047577385e-3i) (num-test (sin 1.57045105981189525579e+00+5.0e-01i) 1.1276258979946363572e0+1.7991700040937027667e-4i) (num-test (sin 1.57045105981189525579e+00-1.0e+00i) 1.5430805428404715942e0-4.0575816248730593018e-4i) (num-test (sin 1.57045105981189525579e+00-1.19209289550781250e-07i) 9.9999994039536292211e-1-4.1159030931177815679e-11i) (num-test (sin 1.57045105981189525579e+00-2.0e+00i) 3.7621954668392959445e0-1.2522351259047577385e-3i) (num-test (sin 1.57045105981189525579e+00-5.0e-01i) 1.1276258979946363572e0-1.7991700040937027667e-4i) (num-test (sin 1.57114159377789786021e+00+0.0e+00i) 9.9999994039535581673e-1) (num-test (sin 1.57114159377789786021e+00+1.0e+00i) 1.5430805428404715942e0-4.0575816248716200955e-4i) (num-test (sin 1.57114159377789786021e+00+1.19209289550781250e-07i) 9.9999994039536292216e-1-4.1159030931163216752e-11i) (num-test (sin 1.57114159377789786021e+00+2.0e+00i) 3.7621954668392959447e0-1.2522351259043135762e-3i) (num-test (sin 1.57114159377789786021e+00+5.0e-01i) 1.1276258979946363573e0-1.7991700040930646090e-4i) (num-test (sin 1.57114159377789786021e+00-1.0e+00i) 1.5430805428404715942e0+4.0575816248716200955e-4i) (num-test (sin 1.57114159377789786021e+00-1.19209289550781250e-07i) 9.9999994039536292216e-1+4.1159030931163216752e-11i) (num-test (sin 1.57114159377789786021e+00-2.0e+00i) 3.7621954668392959447e0+1.2522351259043135762e-3i) (num-test (sin 1.57114159377789786021e+00-5.0e-01i) 1.1276258979946363573e0+1.7991700040930646090e-4i) (num-test (sin 1/1) 0.84147098480790) (num-test (sin 1/10) 0.09983341664683) (num-test (sin 1/1234) 0.00081037268278) (num-test (sin 1/1234000000) 0.00000000081037) (num-test (sin 1/2) 0.47942553860420) (num-test (sin 1/3) 0.32719469679615) (num-test (sin 1/362880) 0.00000275573192) (num-test (sin 1/500029) 0.00000199988401) (num-test (sin 10/1234) 0.00810363901920) (num-test (sin 10/1234000000) 0.00000000810373) (num-test (sin 10/3) -0.1905679628754527) (num-test (sin 10/362880) 0.00002755731922) (num-test (sin 10/500029) 0.00001999884007) (num-test (sin 1234.0+0.00000001i) .6019276547624973-7.985506235875843E-9i) (num-test (sin 1234.0+12.0i) 48983.30495194942-64983.97008730317i) (num-test (sin 1234.0+2.71828182845905i) 4.58074477716391-6.024375387884452i) (num-test (sin 1234.0+3.14159265358979i) 6.977517249251167-9.222253015388718i) (num-test (sin 1234/10) -0.7693905459455223) (num-test (sin 1234/1234000000) 0.00000100000000) (num-test (sin 1234/3) 0.213644699569724) (num-test (sin 1234/362880) 0.00340056663826) (num-test (sin 1234/500029) 0.00246785435930) (num-test (sin 1234000000.0+0.00000001i) -0.9872932128398908+1.5890913089022285E-9i) (num-test (sin 1234000000.0+2.71828182845905i) -7.513424898263172+1.198832270325275i) (num-test (sin 1234000000.0+3.14159265358979i) -11.44465679247962+1.835200134139553i) (num-test (sin 1234000000/1234000000) 0.84147098480790) (num-test (sin 1234000000/3) 9.98585468017658e-1) (num-test (sin 1234000000/362880) .9798963032808383) (num-test (sin 1234000000/500029) -0.9907886154453116) (num-test (sin 2) 0.90929742682568) (num-test (sin 2.71828182845905) .4107812905029501) (num-test (sin 2.71828182845905+0.00000001i) .4107812905029501-9.117339147869465E-9i) (num-test (sin 2.71828182845905+0.0i) .4107812905029501) (num-test (sin 2.71828182845905+1.0i) .6338686545195173-1.071470784943156i) (num-test (sin 2.71828182845905+2.71828182845905i) 3.126097025348496-6.878245654440458i) (num-test (sin 2.71828182845905+3.14159265358979i) 4.761757525968664-10.52937734504676i) (num-test (sin 2/10) 0.19866933079506) (num-test (sin 2/1234) 0.00162074483338) (num-test (sin 2/1234000000) 0.00000000162075) (num-test (sin 2/3) 0.61836980306974) (num-test (sin 2/362880) 0.00000551146384) (num-test (sin 2/500029) 0.00000399976801) (num-test (sin 3.14124738660679181379e+00+0.0e+00i) 3.4526697614158608860e-4) (num-test (sin 3.14124738660679181379e+00+1.0e+00i) 5.3277478472529828958e-4-1.1752011235963524659e0i) (num-test (sin 3.14124738660679181379e+00+1.19209289550781250e-07i) 3.4526697614158854187e-4-1.1920928244535424532e-7i) (num-test (sin 3.14124738660679181379e+00+2.0e+00i) 1.2989619299133501696e-3-3.6268601916692946553e0i) (num-test (sin 3.14124738660679181379e+00+5.0e-01i) 3.8933200722554445944e-4-5.2109527443404709206e-1i) (num-test (sin 3.14124738660679181379e+00-1.0e+00i) 5.3277478472529828958e-4+1.1752011235963524659e0i) (num-test (sin 3.14124738660679181379e+00-1.19209289550781250e-07i) 3.4526697614158854187e-4+1.1920928244535424532e-7i) (num-test (sin 3.14124738660679181379e+00-2.0e+00i) 1.2989619299133501696e-3+3.6268601916692946553e0i) (num-test (sin 3.14124738660679181379e+00-5.0e-01i) 3.8933200722554445944e-4+5.2109527443404709206e-1i) (num-test (sin 3.14159265358979+0.00000001i) -6.982889851335445E-15-1.0E-8i) ;; Hm, seems a bit pedantic ;(num-test (sin 3.14159265358979+0.0i) -6.982889851335445E-15) (num-test (sin 3.14159265358979+1.0i) -1.077516210464362E-14-1.175201193643801i) (num-test (sin 3.14159265358979+2.71828182845905i) -5.314066559815525E-14-7.54413710281663i) (num-test (sin 3.14159265358979+3.14159265358979i) -8.094533288479446E-14-11.54873935725783i) (num-test (sin 3.14193792057279441821e+00+0.0e+00i) -3.4526697614134115926e-4) (num-test (sin 3.14193792057279441821e+00+1.0e+00i) -5.3277478472492034385e-4-1.1752011235963524660e0i) (num-test (sin 3.14193792057279441821e+00+1.19209289550781250e-07i) -3.4526697614134361253e-4-1.1920928244535424533e-7i) (num-test (sin 3.14193792057279441821e+00+2.0e+00i) -1.2989619299124286975e-3-3.6268601916692946556e0i) (num-test (sin 3.14193792057279441821e+00+5.0e-01i) -3.8933200722526827075e-4-5.2109527443404709211e-1i) (num-test (sin 3.14193792057279441821e+00-1.0e+00i) -5.3277478472492034385e-4+1.1752011235963524660e0i) (num-test (sin 3.14193792057279441821e+00-1.19209289550781250e-07i) -3.4526697614134361253e-4+1.1920928244535424533e-7i) (num-test (sin 3.14193792057279441821e+00-2.0e+00i) -1.2989619299124286975e-3+3.6268601916692946556e0i) (num-test (sin 3.14193792057279441821e+00-5.0e-01i) -3.8933200722526827075e-4+5.2109527443404709211e-1i) (num-test (sin 3.45266983001243932001e-04+0.0e+00i) 3.4526697614140534807e-4) (num-test (sin 3.45266983001243932001e-04+1.0e+00i) 5.3277478472501939236e-4+1.1752011235963524660e0i) (num-test (sin 3.45266983001243932001e-04+1.19209289550781250e-07i) 3.4526697614140780134e-4+1.1920928244535424533e-7i) (num-test (sin 3.45266983001243932001e-04+2.0e+00i) 1.2989619299126701883e-3+3.6268601916692946556e0i) (num-test (sin 3.45266983001243932001e-04+5.0e-01i) 3.8933200722534065172e-4+5.2109527443404709209e-1i) (num-test (sin 3.45266983001243932001e-04-1.0e+00i) 5.3277478472501939236e-4-1.1752011235963524660e0i) (num-test (sin 3.45266983001243932001e-04-1.19209289550781250e-07i) 3.4526697614140780134e-4-1.1920928244535424533e-7i) (num-test (sin 3.45266983001243932001e-04-2.0e+00i) 1.2989619299126701883e-3-3.6268601916692946556e0i) (num-test (sin 3.45266983001243932001e-04-5.0e-01i) 3.8933200722534065172e-4-5.2109527443404709209e-1i) (num-test (sin 3/10) 0.29552020666134) (num-test (sin 3/1234) 0.00243111591964) (num-test (sin 3/1234000000) 0.00000000243112) (num-test (sin 3/2) 0.99749498660405) (num-test (sin 3/362880) 0.00000826719577) (num-test (sin 3/500029) 0.00000599965202) (num-test (sin 362880/1234) -0.9463147870254296) (num-test (sin 362880/1234000000) 0.00029406806707) (num-test (sin 362880/500029) 0.66367262572318) (num-test (sin 4.71204371340168837179e+00+0.0e+00i) -9.9999994039535581664e-1) (num-test (sin 4.71204371340168837179e+00+1.0e+00i) -1.5430805428404715941e0-4.0575816248744985081e-4i) (num-test (sin 4.71204371340168837179e+00+1.19209289550781250e-07i) -9.9999994039536292207e-1-4.1159030931192414605e-11i) (num-test (sin 4.71204371340168837179e+00+2.0e+00i) -3.7621954668392959444e0-1.2522351259052019007e-3i) (num-test (sin 4.71204371340168837179e+00+5.0e-01i) -1.1276258979946363572e0-1.7991700040943409243e-4i) (num-test (sin 4.71204371340168837179e+00-1.0e+00i) -1.5430805428404715941e0+4.0575816248744985081e-4i) (num-test (sin 4.71204371340168837179e+00-1.19209289550781250e-07i) -9.9999994039536292207e-1+4.1159030931192414605e-11i) (num-test (sin 4.71204371340168837179e+00-2.0e+00i) -3.7621954668392959444e0+1.2522351259052019007e-3i) (num-test (sin 4.71204371340168837179e+00-5.0e-01i) -1.1276258979946363572e0+1.7991700040943409243e-4i) (num-test (sin 4.71273424736769097620e+00+0.0e+00i) -9.9999994039535581677e-1) (num-test (sin 4.71273424736769097620e+00+1.0e+00i) -1.5430805428404715943e0+4.0575816248701808892e-4i) (num-test (sin 4.71273424736769097620e+00+1.19209289550781250e-07i) -9.9999994039536292220e-1+4.1159030931148617825e-11i) (num-test (sin 4.71273424736769097620e+00+2.0e+00i) -3.7621954668392959448e0+1.2522351259038694139e-3i) (num-test (sin 4.71273424736769097620e+00+5.0e-01i) -1.1276258979946363573e0+1.7991700040924264514e-4i) (num-test (sin 4.71273424736769097620e+00-1.0e+00i) -1.5430805428404715943e0-4.0575816248701808892e-4i) (num-test (sin 4.71273424736769097620e+00-1.19209289550781250e-07i) -9.9999994039536292220e-1-4.1159030931148617825e-11i) (num-test (sin 4.71273424736769097620e+00-2.0e+00i) -3.7621954668392959448e0-1.2522351259038694139e-3i) (num-test (sin 4.71273424736769097620e+00-5.0e-01i) -1.1276258979946363573e0-1.7991700040924264514e-4i) (num-test (sin 500029/10) .9665258739436294) (num-test (sin 500029/1234) .05553717596791147) (num-test (sin 500029/1234000000) 0.00040520987546) (num-test (sin 500029/2) 0.270047165973401) (num-test (sin 500029/3) 7.610322596690986e-1) (num-test (sin 500029/362880) 0.98146191370834) (num-test (sin 6.28284004019658492979e+00+0.0e+00i) -3.4526697614170855328e-4) (num-test (sin 6.28284004019658492979e+00+1.0e+00i) -5.3277478472548726245e-4+1.1752011235963524659e0i) (num-test (sin 6.28284004019658492979e+00+1.19209289550781250e-07i) -3.4526697614171100655e-4+1.1920928244535424532e-7i) (num-test (sin 6.28284004019658492979e+00+2.0e+00i) -1.2989619299138109057e-3+3.6268601916692946552e0i) (num-test (sin 6.28284004019658492979e+00+5.0e-01i) -3.8933200722568255379e-4+5.2109527443404709204e-1i) (num-test (sin 6.28284004019658492979e+00-1.0e+00i) -5.3277478472548726245e-4-1.1752011235963524659e0i) (num-test (sin 6.28284004019658492979e+00-1.19209289550781250e-07i) -3.4526697614171100655e-4-1.1920928244535424532e-7i) (num-test (sin 6.28284004019658492979e+00-2.0e+00i) -1.2989619299138109057e-3-3.6268601916692946552e0i) (num-test (sin 6.28284004019658492979e+00-5.0e-01i) -3.8933200722568255379e-4-5.2109527443404709204e-1i) (num-test (sin 6.28353057416258753420e+00+0.0e+00i) 3.4526697614121869459e-4) (num-test (sin 6.28353057416258753420e+00+1.0e+00i) 5.3277478472473137099e-4+1.1752011235963524661e0i) (num-test (sin 6.28353057416258753420e+00+1.19209289550781250e-07i) 3.4526697614122114786e-4+1.1920928244535424534e-7i) (num-test (sin 6.28353057416258753420e+00+2.0e+00i) 1.2989619299119679614e-3+3.6268601916692946558e0i) (num-test (sin 6.28353057416258753420e+00+5.0e-01i) 3.8933200722513017641e-4+5.2109527443404709213e-1i) (num-test (sin 6.28353057416258753420e+00-1.0e+00i) 5.3277478472473137099e-4-1.1752011235963524661e0i) (num-test (sin 6.28353057416258753420e+00-1.19209289550781250e-07i) 3.4526697614122114786e-4-1.1920928244535424534e-7i) (num-test (sin 6.28353057416258753420e+00-2.0e+00i) 1.2989619299119679614e-3-3.6268601916692946558e0i) (num-test (sin 6.28353057416258753420e+00-5.0e-01i) 3.8933200722513017641e-4-5.2109527443404709213e-1i) (num-test (sin 9.42443269378637893396e+00+0.0e+00i) 3.4526697614094283958e-4) (num-test (sin 9.42443269378637893396e+00+1.0e+00i) 5.3277478472430570447e-4-1.1752011235963524662e0i) (num-test (sin 9.42443269378637893396e+00+1.19209289550781250e-07i) 3.4526697614094529285e-4-1.1920928244535424535e-7i) (num-test (sin 9.42443269378637893396e+00+2.0e+00i) 1.2989619299109301409e-3-3.6268601916692946561e0i) (num-test (sin 9.42443269378637893396e+00+5.0e-01i) 3.8933200722481911514e-4-5.2109527443404709218e-1i) (num-test (sin 9.42443269378637893396e+00-1.0e+00i) 5.3277478472430570447e-4+1.1752011235963524662e0i) (num-test (sin 9.42443269378637893396e+00-1.19209289550781250e-07i) 3.4526697614094529285e-4+1.1920928244535424535e-7i) (num-test (sin 9.42443269378637893396e+00-2.0e+00i) 1.2989619299109301409e-3+3.6268601916692946561e0i) (num-test (sin 9.42443269378637893396e+00-5.0e-01i) 3.8933200722481911514e-4+5.2109527443404709218e-1i) (num-test (sin 9.42512322775237976202e+00+0.0e+00i) -3.4526697614020805155e-4) (num-test (sin 9.42512322775237976202e+00+1.0e+00i) -5.3277478472317186729e-4-1.1752011235963524665e0i) (num-test (sin 9.42512322775237976202e+00+1.19209289550781250e-07i) -3.4526697614021050482e-4-1.1920928244535424538e-7i) (num-test (sin 9.42512322775237976202e+00+2.0e+00i) -1.2989619299081657245e-3-3.6268601916692946571e0i) (num-test (sin 9.42512322775237976202e+00+5.0e-01i) -3.8933200722399054908e-4-5.2109527443404709231e-1i) (num-test (sin 9.42512322775237976202e+00-1.0e+00i) -5.3277478472317186729e-4+1.1752011235963524665e0i) (num-test (sin 9.42512322775237976202e+00-1.19209289550781250e-07i) -3.4526697614021050482e-4+1.1920928244535424538e-7i) (num-test (sin 9.42512322775237976202e+00-2.0e+00i) -1.2989619299081657245e-3+3.6268601916692946571e0i) (num-test (sin 9.42512322775237976202e+00-5.0e-01i) -3.8933200722399054908e-4+5.2109527443404709231e-1i) ;; Seems a bit pedantic ;(num-test (sin pi) -6.982889851335445E-15) (num-test (sin 32767.) 1.8750655394138942394239E-1) (num-test (sin 8388607.) 9.9234509376961249835628E-1) (num-test (sin 2147483647.) -7.2491655514455639054829E-1) (num-test (sin (- (/ pi 2) (* 0+i (log (/ (+ 1 (sqrt 5)) 2))))) (/ (sqrt 5) 2)) (num-test (sin (/ pi 10)) (/ (- (sqrt 5) 1) 4)) (num-test (sin (/ pi 12)) (* (/ (sqrt 2) 4) (- (sqrt 3) 1))) (num-test (sin (/ pi 12)) (/ (- (sqrt 6) (sqrt 2)) 4)) (num-test (sin (/ pi 15)) (/ (sqrt (- 7 (sqrt 5) (sqrt (- 30 (* 6 (sqrt 5)))))) 4)) (num-test (sin (/ pi 16)) (/ (sqrt (- 2 (sqrt (+ 2 (sqrt 2))))) 2)) (num-test (sin (/ pi 20)) (/ (sqrt (- 8 (* 2 (sqrt (+ 10 (* 2 (sqrt 5))))))) 4)) (num-test (sin (/ pi 24)) (/ (sqrt (- 2 (sqrt (+ 2 (sqrt 3))))) 2)) (num-test (sin (/ pi 3)) (/ (sqrt 3) 2)) (num-test (sin (/ pi 3)) (/ (sqrt 3) 2)) (num-test (sin (/ pi 30)) (/ (+ -1 (- (sqrt 5)) (sqrt (- 30 (* 6 (sqrt 5))))) 8)) (num-test (sin (/ pi 32)) (/ (sqrt (- 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))) 2)) (num-test (sin (/ pi 4)) (/ (sqrt 2) 2)) (num-test (sin (/ pi 5)) (/ (sqrt (- 10 (* 2 (sqrt 5)))) 4)) ;; No idea how this can work, seems wrong in s7 ;(num-test (sin (/ pi 6)) 1/2) (num-test (sin (/ pi 6)) 0.5) (num-test (sin (/ pi 8)) (/ (sqrt (- 2 (sqrt 2))) 2)) (num-test (* (sin (/ pi 11)) (sin (/ (* 2 pi) 11)) (sin (/ (* 3 pi) 11)) (sin (/ (* 4 pi) 11)) (sin (/ (* 5 pi) 11))) (sqrt (/ 11 1024))) (num-test (* (sin (/ pi 7)) (sin (/ (* 2 pi) 7)) (sin (/ (* 3 pi) 7))) (/ (sqrt 7) 8)) (num-test (* (sin (/ pi 9)) (sin (/ (* 2 pi) 9)) (sin (/ (* 4 pi) 9))) (/ (sqrt 3) 8)) (num-test (* pi (+ 1.0 (atan (tan (acos (cos (asin (sin (/ 1.0 (/ 1.0 pi)))))))))) pi) (num-test (+ (* (sin 0.1) (sin 0.1)) (* (cos 0.1) (cos 0.1))) 1.0) (num-test (/ (- (sqrt 5) 1) 2) (/ (sin (* pi 1/5)) (sin (* pi 2/5)))) ;; XXX What's going on here? #;(let ((val1 (sin (/ pi 60))) (val2 (* 1/16 (- (* (+ (sqrt 6) (sqrt 2)) (- (sqrt 5) 1)) (* 2 (- (sqrt 3) 1) (sqrt (+ 5 (sqrt 5)))))))) (num-test (- val1 val2) 0.0)) #;(let ((val1 (sin (/ (* 4 pi) 15))) (val2 (* 1/8 (+ (sqrt (+ 10 (* 2 (sqrt 5)))) (sqrt 15) (- (sqrt 3)))))) (num-test (- val1 val2) 0.0)) (num-test (sin 22) -8.851309290403875921690256815772332463307E-3) ;; not even close if not bignums: 0.4626130407646 ;; we start to lose around 1e18 -- running out of bits of fraction? (s7-test (>= 0.0000001 (sin 0.0000001)) #t) (s7-test (>= 0.000000001 (sin 0.000000001)) #t) ;(s7-test (>= 0.0000001 (sin (+ (* 2 pi) 0.0000001))) #t) ; this fails because "pi" is inaccurate? (num-test (sin 31415926.0) -0.5106132968486) (num-test (sin (+ (* 200 pi) 0.001)) 9.999998333333416874831395573527051109993E-4) (s7-test (< (abs (- (sin (+ (* 200 pi) 0.001)) (- (sin (- (* 200 pi) 0.001))))) 5e-13) #t) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 sin num (sin num) val))) (list (list 0 0) (list 1 0.8414709848079) (list 2 0.90929742682568) (list 3 0.14112000805987) (list -1 -0.8414709848079) (list -2 -0.90929742682568) (list -3 -0.14112000805987) (list 1/2 0.4794255386042) (list 1/3 0.32719469679615) (list -1/2 -0.4794255386042) (list -1/3 -0.32719469679615) (list 1/9223372036854775807 1.0842021724855e-19) (list 0.0 0.0) (list 1.0 0.8414709848079) (list 2.0 0.90929742682568) (list -2.0 -0.90929742682568) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309) (list 0+1i 0+1.1752011936438i) (list 0+2i 0+3.626860407847i) (list 0-1i 0-1.1752011936438i) (list 1+1i 1.298457581416+0.63496391478474i) (list 1-1i 1.298457581416-0.63496391478474i) (list -1+1i -1.298457581416+0.63496391478474i) (list -1-1i -1.298457581416-0.63496391478474i) (list 0.1+0.1i 0.10033299984131+0.099666333492108i) (list 1e-16+1e-16i 1e-16+1e-16i) )) (s7-test (sin) 'error) (s7-test (sin "hi") 'error) (s7-test (sin 1.0+23.0i 1.0+23.0i) 'error) (s7-test (sin 0 1) 'error) (let ((sins (list 0.00000000000000000000000000000000000000000000000000000000000000000000 0.09983341664682815230681419841062202698991538801798225999276686156165 0.19866933079506121545941262711838975037020672954020540398639599139797 0.29552020666133957510532074568502737367783211174261844850153103617326 0.38941834230865049166631175679570526459306018344395889511584896585734 0.47942553860420300027328793521557138808180336794060067518861661312553 0.56464247339503535720094544565865790710988808499415177102426589426735 0.64421768723769105367261435139872018306581384457368964474396308809382 0.71735609089952276162717461058138536619278523779142282098968252068287 0.78332690962748338846138231571354862314014792572030960356048515256195 0.84147098480789650665250232163029899962256306079837106567275170999191 0.89120736006143533995180257787170353831890931945282652766035329176720 0.93203908596722634967013443549482599541507058820873073536659789445024 0.96355818541719296470134863003955481534204849131773911795564922309212 0.98544972998846018065947457880609751735626167234736563194021894560084 0.99749498660405443094172337114148732270665142592211582194997482405934 0.99957360304150516434211382554623417197949791475491995534260751586102 0.99166481045246861534613339864787565240681957116712372532710249102330 0.97384763087819518653237317884335760670293947136523395566725825917196 0.94630008768741448848970961163495776211399866559491176443047155279581 0.90929742682568169539601986591174484270225497144789026837897301153096 0.86320936664887377068075931326902458492047242489508107697183045949721 0.80849640381959018430403691041611906515855960597557707903336060873485 0.74570521217672017738540621164349953894264877802047425750762828050000 0.67546318055115092656577152534128337425336495789352584226890212866520 0.59847214410395649405185470218616227170359717157722357330262703263874 0.51550137182146423525772693520936824389387858775426312126259173008382 0.42737988023382993455605308585788064749647642266670256499017776070511 0.33498815015590491954385375271242210603030652888358671068410107309479 0.23924932921398232818425691873957537221555293029961877411621026588071 0.14112000805986722210074480280811027984693326425226558415188264123242 0.04158066243329057919469827159667310055461342296380675064800900076588 -0.05837414342757990913721741461909518512512509908292656970935025422273))) (let ((mxerr 0.0)) (do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 32)) (let ((err (abs (- (sin x) (list-ref sins i))))) (if (> err mxerr) (set! mxerr err)))) (test-assert (format #f "sin err < 1e-12: ~A" mxerr) (< mxerr 1e-12)))) (test-end "sin") ;;; -------------------------------------------------------------------------------- ;;; cos ;;; -------------------------------------------------------------------------------- (test-begin "cos") (num-test (cos 0) 1.0) (num-test (cos 1) 0.54030230586814) (num-test (cos 2) -0.41614683654714) (num-test (cos 3) -0.98999249660045) (num-test (cos 0/1) 1.0) (num-test (cos 0/2) 1.0) (num-test (cos 0/3) 1.0) (num-test (cos 0/10) 1.0) (num-test (cos 0/1234) 1.0) (num-test (cos 0/1234000000) 1.0) (num-test (cos 0/500029) 1.0) (num-test (cos 0/362880) 1.0) (num-test (cos 1/1) 0.54030230586814) (num-test (cos 1/2) 0.87758256189037) (num-test (cos -1/2) 0.87758256189037) (num-test (cos 1/3) 0.94495694631474) (num-test (cos -1/3) 0.94495694631474) (num-test (cos 1/10) 0.99500416527803) (num-test (cos -1/10) 0.99500416527803) (num-test (cos 1/1234) 0.99999967164800) (num-test (cos -1/1234) 0.99999967164800) (num-test (cos 1/1234000000) 1.0) (num-test (cos -1/1234000000) 1.0) (num-test (cos 1/500029) 0.99999999999800) (num-test (cos -1/500029) 0.99999999999800) (num-test (cos 1/362880) 0.99999999999620) (num-test (cos -1/362880) 0.99999999999620) (num-test (cos 2/1) -0.41614683654714) (num-test (cos 2/2) 0.54030230586814) (num-test (cos 2/3) 0.78588726077695) (num-test (cos 2/10) 0.98006657784124) (num-test (cos -2/10) 0.98006657784124) (num-test (cos 2/1234) 0.99999868659223) (num-test (cos -2/1234) 0.99999868659223) (num-test (cos 2/1234000000) 1.0) (num-test (cos -2/1234000000) 1.0) (num-test (cos 2/500029) 0.99999999999200) (num-test (cos -2/500029) 0.99999999999200) (num-test (cos 2/362880) 0.99999999998481) (num-test (cos -2/362880) 0.99999999998481) (num-test (cos 3/1) -0.98999249660045) (num-test (cos 3/2) 0.07073720166770) (num-test (cos 3/3) 0.54030230586814) (num-test (cos 3/10) 0.95533648912561) (num-test (cos -3/10) 0.95533648912561) (num-test (cos 3/1234) 0.99999704483333) (num-test (cos -3/1234) 0.99999704483333) (num-test (cos 3/1234000000) 1.0) (num-test (cos -3/1234000000) 1.0) (num-test (cos 3/500029) 0.99999999998200) (num-test (cos -3/500029) 0.99999999998200) (num-test (cos 3/362880) 0.99999999996583) (num-test (cos -3/362880) 0.99999999996583) (num-test (cos 10/3) -0.98167400471108) (num-test (cos 10/10) 0.54030230586814) (num-test (cos 10/1234) 0.99996716497825) (num-test (cos -10/1234) 0.99996716497825) (num-test (cos 10/1234000000) 1.0) (num-test (cos -10/1234000000) 1.0) (num-test (cos 10/500029) 0.99999999980002) (num-test (cos -10/500029) 0.99999999980002) (num-test (cos 10/362880) 0.99999999962030) (num-test (cos -10/362880) 0.99999999962030) (num-test (cos 1234/1234) 0.54030230586814) (num-test (cos 1234/1234000000) 0.99999999999950) (num-test (cos -1234/1234000000) 0.99999999999950) (num-test (cos 1234/500029) 0.99999695484279) (num-test (cos -1234/500029) 0.99999695484279) (num-test (cos 1234/362880) 0.99999421805655) (num-test (cos -1234/362880) 0.99999421805655) (num-test (cos 1234000000/1234000000) 0.54030230586814) (num-test (cos 500029/1234000000) 0.99999991790247) (num-test (cos -500029/1234000000) 0.99999991790247) (num-test (cos 500029/500029) 0.54030230586814) (num-test (cos 500029/362880) 0.19165727729458) (num-test (cos 362880/1234000000) 0.99999995676199) (num-test (cos -362880/1234000000) 0.99999995676199) (num-test (cos 362880/500029) 0.74802315864263) (num-test (cos 362880/362880) 0.54030230586814) (num-test (cos 0.0) 1.0) (num-test (cos 0.00000001) 1.0) (num-test (cos -0.00000001) 1.0) (num-test (cos 1.0) 0.54030230586814) (num-test (cos pi) -1.0) (num-test (cos 2.71828182845905) -0.91173391478697) (num-test (cos 0.0+0.0i) 1.0) (num-test (cos -0.0+0.0i) 1.0) (num-test (cos 0.0-0.0i) 1.0) (num-test (cos -0.0-0.0i) 1.0) (num-test (cos 0.0+0.00000001i) 1.0) (num-test (cos -0.0+0.00000001i) 1.0) (num-test (cos 0.0-0.00000001i) 1.0) (num-test (cos -0.0-0.00000001i) 1.0) (num-test (cos 0.0+1.0i) 1.54308063481524) (num-test (cos -0.0+1.0i) 1.54308063481524) (num-test (cos 0.0-1.0i) 1.54308063481524) (num-test (cos 0.0+3.14159265358979i) 11.59195327552152) (num-test (cos -0.0+3.14159265358979i) 11.59195327552152) (num-test (cos 0.0-3.14159265358979i) 11.59195327552152) (num-test (cos 0.0+2.71828182845905i) 7.61012513866229) (num-test (cos -0.0+2.71828182845905i) 7.61012513866229) (num-test (cos 0.0-2.71828182845905i) 7.61012513866229) (num-test (cos 0.00000001+0.0i) 1.0) (num-test (cos -0.00000001+0.0i) 1.0) (num-test (cos 0.00000001-0.0i) 1.0) (num-test (cos -0.00000001-0.0i) 1.0) (num-test (cos 0.00000001+0.00000001i) 1.0-1e-16i) ; maxima (num-test (cos -0.00000001+0.00000001i) 1.0+1e-16i) (num-test (cos 0.00000001-0.00000001i) 1.0+1e-16i) (num-test (cos -0.00000001-0.00000001i) 1.0-1e-16i) (num-test (cos 0.00000001+1.0i) 1.54308063481524-0.00000001175201i) (num-test (cos 0.00000001-1.0i) 1.54308063481524+0.00000001175201i) (num-test (cos 0.00000001+3.14159265358979i) 11.59195327552152-0.00000011548739i) (num-test (cos 0.00000001-3.14159265358979i) 11.59195327552152+0.00000011548739i) (num-test (cos 0.00000001+2.71828182845905i) 7.61012513866229-0.00000007544137i) (num-test (cos 0.00000001-2.71828182845905i) 7.61012513866229+0.00000007544137i) (num-test (cos 1.0+0.0i) 0.54030230586814) (num-test (cos 1.0-0.0i) 0.54030230586814) (num-test (cos 1.0+0.00000001i) 0.54030230586814-0.00000000841471i) (num-test (cos 1.0-0.00000001i) 0.54030230586814+0.00000000841471i) (num-test (cos 1.0+1.0i) 0.83373002513115-0.98889770576287i) (num-test (cos 1.0-1.0i) 0.83373002513115+0.98889770576287i) (num-test (cos 1.0+3.14159265358979i) 6.26315908428001-9.71792908024139i) (num-test (cos 1.0-3.14159265358979i) 6.26315908428001+9.71792908024139i) (num-test (cos 1.0+2.71828182845905i) 4.11176816036433-6.34817247743319i) (num-test (cos 1.0-2.71828182845905i) 4.11176816036433+6.34817247743319i) (num-test (cos 3.14159265358979+0.0i) -1.0) (num-test (cos 3.14159265358979-0.0i) -1.0) (num-test (cos 3.14159265358979+0.00000001i) -1.0-3.23121723694911E-23i) ; maxima (num-test (cos 3.14159265358979-0.00000001i) -1.0+3.23121723694911E-23i) ; maxima (num-test (cos 3.14159265358979+1.0i) -1.54308063481524) (num-test (cos 3.14159265358979-1.0i) -1.54308063481524) (num-test (cos 3.14159265358979+3.14159265358979i) -11.5919532755216+8.064357485351393E-14i) ; maxima (num-test (cos 3.14159265358979-3.14159265358979i) -11.59195327552152+3.73164856762037E-14i) (num-test (cos 3.14159265358979+2.71828182845905i) -7.61012513866229-2.437674584452965E-14i) (num-test (cos 3.14159265358979-2.71828182845905i) -7.61012513866229+2.437674584452965E-14i) (num-test (cos 2.71828182845905+0.0i) -0.91173391478697) (num-test (cos 2.71828182845905-0.0i) -0.91173391478697) (num-test (cos 2.71828182845905+0.00000001i) -0.91173391478697-0.00000000410781i) (num-test (cos 2.71828182845905-0.00000001i) -0.91173391478697+0.00000000410781i) (num-test (cos 2.71828182845905+1.0i) -1.40687894801206-0.48275066292556i) (num-test (cos 2.71828182845905-1.0i) -1.40687894801206+0.48275066292556i) (num-test (cos 2.71828182835905+3.14159265358979i) -10.56877693991882-4.74400605685607i) (num-test (cos 2.71828182845905-3.14159265358979i) -10.56877693991882+4.74400605685607i) (num-test (cos 2.71828182845905+2.71828182845905i) -6.93840918469126-3.09899037482603i) (num-test (cos 2.71828182845905-2.71828182845905i) -6.93840918469126+3.09899037482603i) (num-test (cos -2/3) .7858872607769459) (num-test (cos -3/2) 0.0707372016677029) (num-test (cos -10/3) -0.9816740047110853) (num-test (cos 1234/3) -0.9769114301438807) (num-test (cos 1234/10) -0.6387786688749486) (num-test (cos 1234000000/3) -5.317013319482049e-2) (num-test (cos 1234000000/500029) .1354175745756898) (num-test (cos 1234000000/362880) .1995074806029773) (num-test (cos 500029/2) 0.962847094896035) (num-test (cos 500029/3) -0.6487140328750399) (num-test (cos 500029/10) .2565691622107056) (num-test (cos 500029/1234) -0.9984566200318916) (num-test (cos -500029/362880) .1916572772946199) (num-test (cos 362880/1234) .3232465372699541) (num-test (cos -362880/500029) .7480231586426291) (num-test (cos -3.14159265358979) -1.0) (num-test (cos -2.71828182845905) -0.9117339147869464) (num-test (cos 0.0+3.14159265358979i) 11.5919532755216) (num-test (cos 0.0+2.71828182845905i) 7.610125138661946) (num-test (cos 0.00000001+1.0i) 1.543080634815244-1.1752011936438014E-8i) (num-test (cos 0.00000001+3.14159265358979i) 11.5919532755216-1.154873935725783E-7i) (num-test (cos 0.00000001+2.71828182845905i) 7.610125138661945-7.54413710281663E-8i) (num-test (cos 1.0+0.00000001i) .5403023058681398-8.414709848078964E-9i) (num-test (cos 1.0+3.14159265358979i) 6.263159084280057-9.71792908024146i) (num-test (cos 1.0+2.71828182845905i) 4.111768160364146-6.348172477432901i) (num-test (cos 3.14159265358979+0.0i) -1.0) (num-test (cos 3.14159265358979+0.00000001i) -1.0+6.982889851335445E-23i) (num-test (cos 3.14159265358979+1.0i) -1.543080634815244+8.206300488372603E-15i) (num-test (cos 3.14159265358979+3.14159265358979i) -11.5919532755216+8.064357485351393E-14i) (num-test (cos 3.14159265358979+2.71828182845905i) -7.610125138661946+5.267987841234144E-14i) (num-test (cos 2.71828182845905+0.0i) -0.9117339147869464) (num-test (cos 2.71828182845905+0.00000001i) -0.9117339147869464-4.1078129050295015E-9i) (num-test (cos 2.71828182845905+1.0i) -1.406878948012029-0.4827506629256081i) (num-test (cos 2.71828182845905+3.14159265358979i) -10.56877693991868-4.744006056856582i) (num-test (cos 2.71828182845905+2.71828182845905i) -6.93840918469081-3.098990374826203i) (num-test (cos 1234.0+0.00000001i) -0.7985506235875843-6.019276547624973E-9i) (num-test (cos 1234.0+3.14159265358979i) -9.256761516765916-6.951505596777556i) (num-test (cos 1234.0+2.71828182845905i) -6.077070175058048-4.541024753505155i) (num-test (cos 1234000000.0+0.00000001i) +0.1589091308902228+9.872932128398908E-9i) (num-test (cos 1234000000.0+3.14159265358979i) +1.84206722033321+11.40199198427758i) (num-test (cos 1234000000.0+2.71828182845905i) +1.209318371750606+7.448275358344457i) (num-test (cos 1234.0+12.0i) -64983.97009220963-48983.30494825104i) (num-test (cos -3.45266983001243932001e-04+0.0e+00i) 9.9999994039535581673e-1) (num-test (cos 3.45266983001243932001e-04+0.0e+00i) 9.9999994039535581673e-1) (num-test (cos -3.45266983001243932001e-04+1.19209289550781250e-07i) 9.9999994039536292216e-1+4.1159030931163569191e-11i) (num-test (cos -3.45266983001243932001e-04-1.19209289550781250e-07i) 9.9999994039536292216e-1-4.1159030931163569191e-11i) (num-test (cos 3.45266983001243932001e-04+1.19209289550781250e-07i) 9.9999994039536292216e-1-4.1159030931163569191e-11i) (num-test (cos 3.45266983001243932001e-04-1.19209289550781250e-07i) 9.9999994039536292216e-1+4.1159030931163569191e-11i) (num-test (cos -3.45266983001243932001e-04+5.0e-01i) 1.1276258979946363573e0+1.7991700040930800151e-4i) (num-test (cos -3.45266983001243932001e-04-5.0e-01i) 1.1276258979946363573e0-1.7991700040930800151e-4i) (num-test (cos 3.45266983001243932001e-04+5.0e-01i) 1.1276258979946363573e0-1.7991700040930800151e-4i) (num-test (cos 3.45266983001243932001e-04-5.0e-01i) 1.1276258979946363573e0+1.7991700040930800151e-4i) (num-test (cos -3.45266983001243932001e-04+1.0e+00i) 1.5430805428404715942e0+4.057581624871654840e-4i) (num-test (cos -3.45266983001243932001e-04-1.0e+00i) 1.5430805428404715942e0-4.057581624871654840e-4i) (num-test (cos 3.45266983001243932001e-04+1.0e+00i) 1.5430805428404715942e0-4.057581624871654840e-4i) (num-test (cos 3.45266983001243932001e-04-1.0e+00i) 1.5430805428404715942e0+4.057581624871654840e-4i) (num-test (cos -3.45266983001243932001e-04+2.0e+00i) 3.7621954668392959447e0+1.2522351259043242989e-3i) (num-test (cos -3.45266983001243932001e-04-2.0e+00i) 3.7621954668392959447e0-1.2522351259043242989e-3i) (num-test (cos 3.45266983001243932001e-04+2.0e+00i) 3.7621954668392959447e0-1.2522351259043242989e-3i) (num-test (cos 3.45266983001243932001e-04-2.0e+00i) 3.7621954668392959447e0+1.2522351259043242989e-3i) (num-test (cos 1.57045105981189525579e+00+0.0e+00i) 3.4526697614152485627e-4) (num-test (cos -1.57045105981189525579e+00+0.0e+00i) 3.4526697614152485627e-4) (num-test (cos 1.57045105981189525579e+00+1.19209289550781250e-07i) 3.4526697614152730954e-4-1.1920928244535424532e-7i) (num-test (cos 1.57045105981189525579e+00-1.19209289550781250e-07i) 3.4526697614152730954e-4+1.1920928244535424532e-7i) (num-test (cos -1.57045105981189525579e+00+1.19209289550781250e-07i) 3.4526697614152730954e-4+1.1920928244535424532e-7i) (num-test (cos -1.57045105981189525579e+00-1.19209289550781250e-07i) 3.4526697614152730954e-4-1.1920928244535424532e-7i) (num-test (cos 1.57045105981189525579e+00+5.0e-01i) 3.8933200722547541227e-4-5.2109527443404709207e-1i) (num-test (cos 1.57045105981189525579e+00-5.0e-01i) 3.8933200722547541227e-4+5.2109527443404709207e-1i) (num-test (cos -1.57045105981189525579e+00+5.0e-01i) 3.8933200722547541227e-4+5.2109527443404709207e-1i) (num-test (cos -1.57045105981189525579e+00-5.0e-01i) 3.8933200722547541227e-4-5.2109527443404709207e-1i) (num-test (cos 1.57045105981189525579e+00+1.0e+00i) 5.3277478472520380315e-4-1.1752011235963524659e0i) (num-test (cos 1.57045105981189525579e+00-1.0e+00i) 5.3277478472520380315e-4+1.1752011235963524659e0i) (num-test (cos -1.57045105981189525579e+00+1.0e+00i) 5.3277478472520380315e-4+1.1752011235963524659e0i) (num-test (cos -1.57045105981189525579e+00-1.0e+00i) 5.3277478472520380315e-4-1.1752011235963524659e0i) (num-test (cos 1.57045105981189525579e+00+2.0e+00i) 1.2989619299131198016e-3-3.6268601916692946554e0i) (num-test (cos 1.57045105981189525579e+00-2.0e+00i) 1.2989619299131198016e-3+3.6268601916692946554e0i) (num-test (cos -1.57045105981189525579e+00+2.0e+00i) 1.2989619299131198016e-3+3.6268601916692946554e0i) (num-test (cos -1.57045105981189525579e+00-2.0e+00i) 1.2989619299131198016e-3-3.6268601916692946554e0i) (num-test (cos 1.57114159377789786021e+00+0.0e+00i) -3.4526697614140239160e-4) (num-test (cos -1.57114159377789786021e+00+0.0e+00i) -3.4526697614140239160e-4) (num-test (cos 1.57114159377789786021e+00+1.19209289550781250e-07i) -3.4526697614140484486e-4-1.1920928244535424533e-7i) (num-test (cos 1.57114159377789786021e+00-1.19209289550781250e-07i) -3.4526697614140484486e-4+1.1920928244535424533e-7i) (num-test (cos -1.57114159377789786021e+00+1.19209289550781250e-07i) -3.4526697614140484486e-4+1.1920928244535424533e-7i) (num-test (cos -1.57114159377789786021e+00-1.19209289550781250e-07i) -3.4526697614140484486e-4-1.1920928244535424533e-7i) (num-test (cos 1.57114159377789786021e+00+5.0e-01i) -3.8933200722533731792e-4-5.2109527443404709209e-1i) (num-test (cos 1.57114159377789786021e+00-5.0e-01i) -3.8933200722533731792e-4+5.2109527443404709209e-1i) (num-test (cos -1.57114159377789786021e+00+5.0e-01i) -3.8933200722533731792e-4+5.2109527443404709209e-1i) (num-test (cos -1.57114159377789786021e+00-5.0e-01i) -3.8933200722533731792e-4-5.2109527443404709209e-1i) (num-test (cos 1.57114159377789786021e+00+1.0e+00i) -5.3277478472501483029e-4-1.1752011235963524660e0i) (num-test (cos 1.57114159377789786021e+00-1.0e+00i) -5.3277478472501483029e-4+1.1752011235963524660e0i) (num-test (cos -1.57114159377789786021e+00+1.0e+00i) -5.3277478472501483029e-4+1.1752011235963524660e0i) (num-test (cos -1.57114159377789786021e+00-1.0e+00i) -5.3277478472501483029e-4-1.1752011235963524660e0i) (num-test (cos 1.57114159377789786021e+00+2.0e+00i) -1.2989619299126590655e-3-3.6268601916692946556e0i) (num-test (cos 1.57114159377789786021e+00-2.0e+00i) -1.2989619299126590655e-3+3.6268601916692946556e0i) (num-test (cos -1.57114159377789786021e+00+2.0e+00i) -1.2989619299126590655e-3+3.6268601916692946556e0i) (num-test (cos -1.57114159377789786021e+00-2.0e+00i) -1.2989619299126590655e-3-3.6268601916692946556e0i) (num-test (cos 3.14124738660679181379e+00+0.0e+00i) -9.9999994039535581667e-1) (num-test (cos -3.14124738660679181379e+00+0.0e+00i) -9.9999994039535581667e-1) (num-test (cos 3.14124738660679181379e+00+1.19209289550781250e-07i) -9.9999994039536292209e-1-4.1159030931185115142e-11i) (num-test (cos 3.14124738660679181379e+00-1.19209289550781250e-07i) -9.9999994039536292209e-1+4.1159030931185115142e-11i) (num-test (cos -3.14124738660679181379e+00+1.19209289550781250e-07i) -9.9999994039536292209e-1+4.1159030931185115142e-11i) (num-test (cos -3.14124738660679181379e+00-1.19209289550781250e-07i) -9.9999994039536292209e-1-4.1159030931185115142e-11i) (num-test (cos 3.14124738660679181379e+00+5.0e-01i) -1.1276258979946363572e0-1.7991700040940218455e-4i) (num-test (cos 3.14124738660679181379e+00-5.0e-01i) -1.1276258979946363572e0+1.7991700040940218455e-4i) (num-test (cos -3.14124738660679181379e+00+5.0e-01i) -1.1276258979946363572e0+1.7991700040940218455e-4i) (num-test (cos -3.14124738660679181379e+00-5.0e-01i) -1.1276258979946363572e0-1.7991700040940218455e-4i) (num-test (cos 3.14124738660679181379e+00+1.0e+00i) -1.5430805428404715941e0-4.0575816248737789049e-4i) (num-test (cos 3.14124738660679181379e+00-1.0e+00i) -1.5430805428404715941e0+4.0575816248737789049e-4i) (num-test (cos -3.14124738660679181379e+00+1.0e+00i) -1.5430805428404715941e0+4.0575816248737789049e-4i) (num-test (cos -3.14124738660679181379e+00-1.0e+00i) -1.5430805428404715941e0-4.0575816248737789049e-4i) (num-test (cos 3.14124738660679181379e+00+2.0e+00i) -3.7621954668392959444e0-1.2522351259049798196e-3i) (num-test (cos 3.14124738660679181379e+00-2.0e+00i) -3.7621954668392959444e0+1.2522351259049798196e-3i) (num-test (cos -3.14124738660679181379e+00+2.0e+00i) -3.7621954668392959444e0+1.2522351259049798196e-3i) (num-test (cos -3.14124738660679181379e+00-2.0e+00i) -3.7621954668392959444e0-1.2522351259049798196e-3i) (num-test (cos 3.14193792057279441821e+00+0.0e+00i) -9.9999994039535581675e-1) (num-test (cos -3.14193792057279441821e+00+0.0e+00i) -9.9999994039535581675e-1) (num-test (cos 3.14193792057279441821e+00+1.19209289550781250e-07i) -9.9999994039536292218e-1+4.1159030931155917289e-11i) (num-test (cos 3.14193792057279441821e+00-1.19209289550781250e-07i) -9.9999994039536292218e-1-4.1159030931155917289e-11i) (num-test (cos -3.14193792057279441821e+00+1.19209289550781250e-07i) -9.9999994039536292218e-1-4.1159030931155917289e-11i) (num-test (cos -3.14193792057279441821e+00-1.19209289550781250e-07i) -9.9999994039536292218e-1+4.1159030931155917289e-11i) (num-test (cos 3.14193792057279441821e+00+5.0e-01i) -1.1276258979946363573e0+1.7991700040927455302e-4i) (num-test (cos 3.14193792057279441821e+00-5.0e-01i) -1.1276258979946363573e0-1.7991700040927455302e-4i) (num-test (cos -3.14193792057279441821e+00+5.0e-01i) -1.1276258979946363573e0-1.7991700040927455302e-4i) (num-test (cos -3.14193792057279441821e+00-5.0e-01i) -1.1276258979946363573e0+1.7991700040927455302e-4i) (num-test (cos 3.14193792057279441821e+00+1.0e+00i) -1.5430805428404715943e0+4.0575816248709004923e-4i) (num-test (cos 3.14193792057279441821e+00-1.0e+00i) -1.5430805428404715943e0-4.0575816248709004923e-4i) (num-test (cos -3.14193792057279441821e+00+1.0e+00i) -1.5430805428404715943e0-4.0575816248709004923e-4i) (num-test (cos -3.14193792057279441821e+00-1.0e+00i) -1.5430805428404715943e0+4.0575816248709004923e-4i) (num-test (cos 3.14193792057279441821e+00+2.0e+00i) -3.7621954668392959448e0+1.2522351259040914950e-3i) (num-test (cos 3.14193792057279441821e+00-2.0e+00i) -3.7621954668392959448e0-1.2522351259040914950e-3i) (num-test (cos -3.14193792057279441821e+00+2.0e+00i) -3.7621954668392959448e0-1.2522351259040914950e-3i) (num-test (cos -3.14193792057279441821e+00-2.0e+00i) -3.7621954668392959448e0+1.2522351259040914950e-3i) (num-test (cos 4.71204371340168837179e+00+0.0e+00i) -3.4526697614164732094e-4) (num-test (cos -4.71204371340168837179e+00+0.0e+00i) -3.4526697614164732094e-4) (num-test (cos 4.71204371340168837179e+00+1.19209289550781250e-07i) -3.4526697614164977421e-4+1.1920928244535424532e-7i) (num-test (cos 4.71204371340168837179e+00-1.19209289550781250e-07i) -3.4526697614164977421e-4-1.1920928244535424532e-7i) (num-test (cos -4.71204371340168837179e+00+1.19209289550781250e-07i) -3.4526697614164977421e-4-1.1920928244535424532e-7i) (num-test (cos -4.71204371340168837179e+00-1.19209289550781250e-07i) -3.4526697614164977421e-4+1.1920928244535424532e-7i) (num-test (cos 4.71204371340168837179e+00+5.0e-01i) -3.8933200722561350661e-4+5.2109527443404709205e-1i) (num-test (cos 4.71204371340168837179e+00-5.0e-01i) -3.8933200722561350661e-4-5.2109527443404709205e-1i) (num-test (cos -4.71204371340168837179e+00+5.0e-01i) -3.8933200722561350661e-4-5.2109527443404709205e-1i) (num-test (cos -4.71204371340168837179e+00-5.0e-01i) -3.8933200722561350661e-4+5.2109527443404709205e-1i) (num-test (cos 4.71204371340168837179e+00+1.0e+00i) -5.3277478472539277601e-4+1.1752011235963524659e0i) (num-test (cos 4.71204371340168837179e+00-1.0e+00i) -5.3277478472539277601e-4-1.1752011235963524659e0i) (num-test (cos -4.71204371340168837179e+00+1.0e+00i) -5.3277478472539277601e-4-1.1752011235963524659e0i) (num-test (cos -4.71204371340168837179e+00-1.0e+00i) -5.3277478472539277601e-4+1.1752011235963524659e0i) (num-test (cos 4.71204371340168837179e+00+2.0e+00i) -1.2989619299135805376e-3+3.6268601916692946552e0i) (num-test (cos 4.71204371340168837179e+00-2.0e+00i) -1.2989619299135805376e-3-3.6268601916692946552e0i) (num-test (cos -4.71204371340168837179e+00+2.0e+00i) -1.2989619299135805376e-3-3.6268601916692946552e0i) (num-test (cos -4.71204371340168837179e+00-2.0e+00i) -1.2989619299135805376e-3+3.6268601916692946552e0i) (num-test (cos 4.71273424736769097620e+00+0.0e+00i) 3.4526697614127992692e-4) (num-test (cos -4.71273424736769097620e+00+0.0e+00i) 3.4526697614127992692e-4) (num-test (cos 4.71273424736769097620e+00+1.19209289550781250e-07i) 3.4526697614128238019e-4+1.1920928244535424533e-7i) (num-test (cos 4.71273424736769097620e+00-1.19209289550781250e-07i) 3.4526697614128238019e-4-1.1920928244535424533e-7i) (num-test (cos -4.71273424736769097620e+00+1.19209289550781250e-07i) 3.4526697614128238019e-4-1.1920928244535424533e-7i) (num-test (cos -4.71273424736769097620e+00-1.19209289550781250e-07i) 3.4526697614128238019e-4+1.1920928244535424533e-7i) (num-test (cos 4.71273424736769097620e+00+5.0e-01i) 3.8933200722519922358e-4+5.2109527443404709212e-1i) (num-test (cos 4.71273424736769097620e+00-5.0e-01i) 3.8933200722519922358e-4-5.2109527443404709212e-1i) (num-test (cos -4.71273424736769097620e+00+5.0e-01i) 3.8933200722519922358e-4-5.2109527443404709212e-1i) (num-test (cos -4.71273424736769097620e+00-5.0e-01i) 3.8933200722519922358e-4+5.2109527443404709212e-1i) (num-test (cos 4.71273424736769097620e+00+1.0e+00i) 5.3277478472482585742e-4+1.1752011235963524660e0i) (num-test (cos 4.71273424736769097620e+00-1.0e+00i) 5.3277478472482585742e-4-1.1752011235963524660e0i) (num-test (cos -4.71273424736769097620e+00+1.0e+00i) 5.3277478472482585742e-4-1.1752011235963524660e0i) (num-test (cos -4.71273424736769097620e+00-1.0e+00i) 5.3277478472482585742e-4+1.1752011235963524660e0i) (num-test (cos 4.71273424736769097620e+00+2.0e+00i) 1.2989619299121983294e-3+3.6268601916692946557e0i) (num-test (cos 4.71273424736769097620e+00-2.0e+00i) 1.2989619299121983294e-3-3.6268601916692946557e0i) (num-test (cos -4.71273424736769097620e+00+2.0e+00i) 1.2989619299121983294e-3-3.6268601916692946557e0i) (num-test (cos -4.71273424736769097620e+00-2.0e+00i) 1.2989619299121983294e-3+3.6268601916692946557e0i) (num-test (cos 6.28284004019658492979e+00+0.0e+00i) 9.9999994039535581662e-1) (num-test (cos -6.28284004019658492979e+00+0.0e+00i) 9.9999994039535581662e-1) (num-test (cos 6.28284004019658492979e+00+1.19209289550781250e-07i) 9.9999994039536292205e-1+4.1159030931199714069e-11i) (num-test (cos 6.28284004019658492979e+00-1.19209289550781250e-07i) 9.9999994039536292205e-1-4.1159030931199714069e-11i) (num-test (cos -6.28284004019658492979e+00+1.19209289550781250e-07i) 9.9999994039536292205e-1-4.1159030931199714069e-11i) (num-test (cos -6.28284004019658492979e+00-1.19209289550781250e-07i) 9.9999994039536292205e-1+4.1159030931199714069e-11i) (num-test (cos 6.28284004019658492979e+00+5.0e-01i) 1.1276258979946363572e0+1.7991700040946600032e-4i) (num-test (cos 6.28284004019658492979e+00-5.0e-01i) 1.1276258979946363572e0-1.7991700040946600032e-4i) (num-test (cos -6.28284004019658492979e+00+5.0e-01i) 1.1276258979946363572e0-1.7991700040946600032e-4i) (num-test (cos -6.28284004019658492979e+00-5.0e-01i) 1.1276258979946363572e0+1.7991700040946600032e-4i) (num-test (cos 6.28284004019658492979e+00+1.0e+00i) 1.5430805428404715941e0+4.0575816248752181112e-4i) (num-test (cos 6.28284004019658492979e+00-1.0e+00i) 1.5430805428404715941e0-4.0575816248752181112e-4i) (num-test (cos -6.28284004019658492979e+00+1.0e+00i) 1.5430805428404715941e0-4.0575816248752181112e-4i) (num-test (cos -6.28284004019658492979e+00-1.0e+00i) 1.5430805428404715941e0+4.0575816248752181112e-4i) (num-test (cos 6.28284004019658492979e+00+2.0e+00i) 3.7621954668392959443e0+1.2522351259054239819e-3i) (num-test (cos 6.28284004019658492979e+00-2.0e+00i) 3.7621954668392959443e0-1.2522351259054239819e-3i) (num-test (cos -6.28284004019658492979e+00+2.0e+00i) 3.7621954668392959443e0-1.2522351259054239819e-3i) (num-test (cos -6.28284004019658492979e+00-2.0e+00i) 3.7621954668392959443e0+1.2522351259054239819e-3i) (num-test (cos 6.28353057416258753420e+00+0.0e+00i) 9.9999994039535581679e-1) (num-test (cos -6.28353057416258753420e+00+0.0e+00i) 9.9999994039535581679e-1) (num-test (cos 6.28353057416258753420e+00+1.19209289550781250e-07i) 9.9999994039536292222e-1-4.1159030931141318362e-11i) (num-test (cos 6.28353057416258753420e+00-1.19209289550781250e-07i) 9.9999994039536292222e-1+4.1159030931141318362e-11i) (num-test (cos -6.28353057416258753420e+00+1.19209289550781250e-07i) 9.9999994039536292222e-1+4.1159030931141318362e-11i) (num-test (cos -6.28353057416258753420e+00-1.19209289550781250e-07i) 9.9999994039536292222e-1-4.1159030931141318362e-11i) (num-test (cos 6.28353057416258753420e+00+5.0e-01i) 1.1276258979946363574e0-1.7991700040921073725e-4i) (num-test (cos 6.28353057416258753420e+00-5.0e-01i) 1.1276258979946363574e0+1.7991700040921073725e-4i) (num-test (cos -6.28353057416258753420e+00+5.0e-01i) 1.1276258979946363574e0+1.7991700040921073725e-4i) (num-test (cos -6.28353057416258753420e+00-5.0e-01i) 1.1276258979946363574e0-1.7991700040921073725e-4i) (num-test (cos 6.28353057416258753420e+00+1.0e+00i) 1.5430805428404715943e0-4.0575816248694612861e-4i) (num-test (cos 6.28353057416258753420e+00-1.0e+00i) 1.5430805428404715943e0+4.0575816248694612861e-4i) (num-test (cos -6.28353057416258753420e+00+1.0e+00i) 1.5430805428404715943e0+4.0575816248694612861e-4i) (num-test (cos -6.28353057416258753420e+00-1.0e+00i) 1.5430805428404715943e0-4.0575816248694612861e-4i) (num-test (cos 6.28353057416258753420e+00+2.0e+00i) 3.7621954668392959449e0-1.2522351259036473328e-3i) (num-test (cos 6.28353057416258753420e+00-2.0e+00i) 3.7621954668392959449e0+1.2522351259036473328e-3i) (num-test (cos -6.28353057416258753420e+00+2.0e+00i) 3.7621954668392959449e0+1.2522351259036473328e-3i) (num-test (cos -6.28353057416258753420e+00-2.0e+00i) 3.7621954668392959449e0-1.2522351259036473328e-3i) (num-test (cos 9.42443269378637893396e+00+0.0e+00i) -9.9999994039535581689e-1) (num-test (cos -9.42443269378637893396e+00+0.0e+00i) -9.9999994039535581689e-1) (num-test (cos 9.42443269378637893396e+00+1.19209289550781250e-07i) -9.9999994039536292231e-1-4.1159030931108433883e-11i) (num-test (cos 9.42443269378637893396e+00-1.19209289550781250e-07i) -9.9999994039536292231e-1+4.1159030931108433883e-11i) (num-test (cos -9.42443269378637893396e+00+1.19209289550781250e-07i) -9.9999994039536292231e-1+4.1159030931108433883e-11i) (num-test (cos -9.42443269378637893396e+00-1.19209289550781250e-07i) -9.9999994039536292231e-1-4.1159030931108433883e-11i) (num-test (cos 9.42443269378637893396e+00+5.0e-01i) -1.1276258979946363575e0-1.7991700040906699050e-4i) (num-test (cos 9.42443269378637893396e+00-5.0e-01i) -1.1276258979946363575e0+1.7991700040906699050e-4i) (num-test (cos -9.42443269378637893396e+00+5.0e-01i) -1.1276258979946363575e0+1.7991700040906699050e-4i) (num-test (cos -9.42443269378637893396e+00-5.0e-01i) -1.1276258979946363575e0-1.7991700040906699050e-4i) (num-test (cos 9.42443269378637893396e+00+1.0e+00i) -1.5430805428404715945e0-4.0575816248662194348e-4i) (num-test (cos 9.42443269378637893396e+00-1.0e+00i) -1.5430805428404715945e0+4.0575816248662194348e-4i) (num-test (cos -9.42443269378637893396e+00+1.0e+00i) -1.5430805428404715945e0+4.0575816248662194348e-4i) (num-test (cos -9.42443269378637893396e+00-1.0e+00i) -1.5430805428404715945e0-4.0575816248662194348e-4i) (num-test (cos 9.42443269378637893396e+00+2.0e+00i) -3.7621954668392959453e0-1.2522351259026468452e-3i) (num-test (cos 9.42443269378637893396e+00-2.0e+00i) -3.7621954668392959453e0+1.2522351259026468452e-3i) (num-test (cos -9.42443269378637893396e+00+2.0e+00i) -3.7621954668392959453e0+1.2522351259026468452e-3i) (num-test (cos -9.42443269378637893396e+00-2.0e+00i) -3.7621954668392959453e0-1.2522351259026468452e-3i) (num-test (cos 9.42512322775237976202e+00+0.0e+00i) -9.9999994039535581714e-1) (num-test (cos -9.42512322775237976202e+00+0.0e+00i) -9.9999994039535581714e-1) (num-test (cos 9.42512322775237976202e+00+1.19209289550781250e-07i) -9.9999994039536292257e-1+4.1159030931020840323e-11i) (num-test (cos 9.42512322775237976202e+00-1.19209289550781250e-07i) -9.9999994039536292257e-1-4.1159030931020840323e-11i) (num-test (cos -9.42512322775237976202e+00+1.19209289550781250e-07i) -9.9999994039536292257e-1-4.1159030931020840323e-11i) (num-test (cos -9.42512322775237976202e+00-1.19209289550781250e-07i) -9.9999994039536292257e-1+4.1159030931020840323e-11i) (num-test (cos 9.42512322775237976202e+00+5.0e-01i) -1.1276258979946363577e0+1.7991700040868409591e-4i) (num-test (cos 9.42512322775237976202e+00-5.0e-01i) -1.1276258979946363577e0-1.7991700040868409591e-4i) (num-test (cos -9.42512322775237976202e+00+5.0e-01i) -1.1276258979946363577e0-1.7991700040868409591e-4i) (num-test (cos -9.42512322775237976202e+00-5.0e-01i) -1.1276258979946363577e0+1.7991700040868409591e-4i) (num-test (cos 9.42512322775237976202e+00+1.0e+00i) -1.5430805428404715949e0+4.0575816248575841970e-4i) (num-test (cos 9.42512322775237976202e+00-1.0e+00i) -1.5430805428404715949e0-4.0575816248575841970e-4i) (num-test (cos -9.42512322775237976202e+00+1.0e+00i) -1.5430805428404715949e0-4.0575816248575841970e-4i) (num-test (cos -9.42512322775237976202e+00-1.0e+00i) -1.5430805428404715949e0+4.0575816248575841970e-4i) (num-test (cos 9.42512322775237976202e+00+2.0e+00i) -3.7621954668392959462e0+1.2522351258999818715e-3i) (num-test (cos 9.42512322775237976202e+00-2.0e+00i) -3.7621954668392959462e0-1.2522351258999818715e-3i) (num-test (cos -9.42512322775237976202e+00+2.0e+00i) -3.7621954668392959462e0-1.2522351258999818715e-3i) (num-test (cos -9.42512322775237976202e+00-2.0e+00i) -3.7621954668392959462e0+1.2522351258999818715e-3i) (num-test (cos 0) 1.0) (num-test (cos -2.225073858507201399999999999999999999996E-308) 1.000E0) (num-test (cos 1.110223024625156799999999999999999999997E-16) 9.999999999999999999999999999999938370242E-1) (num-test (cos 22) -9.999608263946371264541747392126937741354E-1) (num-test (cos 32767.) 9.8226335176928229845654E-1) (num-test (cos 8388607.) -1.2349580912475928183718E-1) (num-test (cos 2147483647.) -6.8883669187794383467976E-1) (num-test (cos (* pi (cos (* pi (cos (log (+ pi 20))))))) -1.0) ; actually there's a 3.93216e-35 imag part (num-test (cos (/ pi 10)) (/ (sqrt (+ 10 (* 2 (sqrt 5)))) 4)) (num-test (cos (/ pi 12)) (* (/ (sqrt 2) 4) (+ (sqrt 3) 1))) (num-test (cos (/ pi 12)) (/ (+ (sqrt 6) (sqrt 2)) 4)) (num-test (cos (/ pi 128)) (* 1/2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))))))))) (num-test (cos (/ pi 15)) (/ (+ (sqrt (+ 30 (* 6 (sqrt 5)))) (sqrt 5) -1) 8)) (num-test (cos (/ pi 16)) (/ (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))) 2)) (num-test (cos (/ pi 20)) (/ (sqrt (+ 8 (* 2 (sqrt (+ 10 (* 2 (sqrt 5))))))) 4)) (num-test (cos (/ pi 24)) (/ (sqrt (+ 2 (sqrt (+ 2 (sqrt 3))))) 2)) ;; No idea how this can work, seems wrong in s7 ;(num-test (cos (/ pi 3)) 1/2) (num-test (cos (/ pi 3)) 0.5) (num-test (cos (/ pi 30)) (/ (sqrt (+ 7 (sqrt 5) (sqrt (* 6 (+ 5 (sqrt 5)))))) 4)) (num-test (cos (/ pi 32)) (/ (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))) 2)) (num-test (cos (/ pi 4)) (/ (sqrt 2) 2)) (num-test (cos (/ pi 5)) (/ (+ 1 (sqrt 5)) 4)) (num-test (cos (/ pi 6)) (/ (sqrt 3) 2)) (num-test (cos (/ pi 64)) (* 1/2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))))))) (num-test (cos (/ pi 8)) (/ (sqrt (+ 2 (sqrt 2))) 2)) (num-test (cos (log (+ pi 20))) -0.99999999924368) (num-test (* (cos (/ pi 11)) (cos (/ (* 2 pi) 11)) (cos (/ (* 3 pi) 11)) (cos (/ (* 4 pi) 11)) (cos (/ (* 5 pi) 11))) 0.03125 #;1/32) (num-test (* (cos (/ pi 7)) (cos (/ (* 2 pi) 7)) (cos (/ (* 3 pi) 7))) 0.125 #;1/8) (num-test (* (cos (/ pi 9)) (cos (/ (* 2 pi) 9)) (cos (/ (* 4 pi) 9))) 0.125 #;1/8) (num-test (* (cos (/ pi 9)) (cos (/ (* 2 pi) 9)) (cos (/ (* 4 pi) 9))) 0.125 #;1/8) (num-test (do ((i 1 (+ i 1)) (sum 0.0 (+ sum (cos (/ (* 2 pi i) 11))))) ((= i 6) sum)) -0.5) (num-test (let ((a (/ (* 2 pi) 13))) (* 8 (+ (cos a) (cos (* 5 a))) (+ (cos (* 2 a)) (cos (* 3 a))) (+ (cos (* 4 a)) (cos (* 6 a))))) -1.0) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 cos num (cos num) val))) (list (list 0 1) (list 1 0.54030230586814) (list 2 -0.41614683654714) (list 3 -0.98999249660045) (list -1 0.54030230586814) (list -2 -0.41614683654714) (list -3 -0.98999249660045) (list 1/2 0.87758256189037) (list 1/3 0.94495694631474) (list -1/2 0.87758256189037) (list -1/3 0.94495694631474) (list 1/9223372036854775807 1.0) (list 0.0 1.0) (list 1.0 0.54030230586814) (list 2.0 -0.41614683654714) (list -2.0 -0.41614683654714) (list 1.000000000000000000000000000000000000002E-309 1.000E0) (list 0+1i 1.5430806348152) (list 0+2i 3.7621956910836) (list 0-1i 1.5430806348152) (list 1+1i 0.83373002513115-0.98889770576287i) (list 1-1i 0.83373002513115+0.98889770576287i) (list -1+1i 0.83373002513115+0.98889770576287i) (list -1-1i 0.83373002513115-0.98889770576287i) (list 0.1+0.1i 0.9999833333373-0.0099999888888898i) (list 1e-16+1e-16i 1-1e-32i) )) ;; these are from the error analysis package from ETH, Gaston H. Gonnet (num-test (cos -1.79424124483688191e-11) 9.999999999999999999998390349177663098196E-1) (num-test (sqrt 3.63861067050296029e-308) 1.907514264822929257351751954551699751189E-154) ;; Not standards-compliant, must be an integer ;(num-test (modulo 10526671570.5 (* 2 pi)) 4.712388980383813167439843967777959731718E0) ;; this is so sensitive because (cos 4.712388980383813167439843967777959731718E0) = -8.766902541211071412945944658266052999824E-13 ;; unfair! (s7-test (cos) 'error) (s7-test (cos "hi") 'error) (s7-test (cos 1.0+23.0i 1.0+23.0i) 'error) (s7-test (cos 0 1) 'error) (let* ((angle 0.0) (z 1.18) (result (* z (cos angle)))) (do ((k 0 (+ 1 k))) ((= k 1000)) (set! result (* z (cos result)))) ;;result: 0.81194462369499 ;;(let ((x 0.0)) ;; (do ((i 0 (+ 1 i))) ;; ((= i 10000)) ;; (set! x (+ x (* (expt -1 i) ;; (/ (bes-jn (+ 1 (* 2 i)) (* z (+ 1 (* 2 i)))) ;; (+ 1 (* 2 i))))))) ;; (* 2 x)) ;; 0.81194498071946 (let ((x (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos (* z (cos 0.0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ;; 47? calls here so we're at around .812 (oscillating around .8119) (s7-test (< (abs (- x result)) .001) #t))) (let ((dht (lambda (data) ; the Hartley transform of 'data' (let* ((len (vector-length data)) (arr (make-vector len 0.0)) (w (/ (* 2.0 pi) len))) (do ((i 0 (+ 1 i))) ((= i len)) (do ((j 0 (+ 1 j))) ((= j len)) (vector-set! arr i (+ (vector-ref arr i) (* (vector-ref data j) (+ (cos (* i j w)) (sin (* i j w)))))))) arr))) (data (list->vector '(0.9196 0.9457 0.0268 0.0839 0.1974 0.1060 0.1463 0.3513 0.0391 0.6310 0.9556 0.6259 0.9580 0.8848 0.0104 0.1440 0.0542 0.3001 0.1844 0.3781 0.9641 0.6051 0.3319 0.6143 0.1828 0.2290 0.4026 0.5990 0.7906 0.0403 0.7882 0.1591))) (saved-data (make-vector 32 0.0))) (do ((i 0 (+ i 1))) ((= i 32)) (vector-set! saved-data i (vector-ref data i))) (dht data) (dht data) (let ((mx 0.0)) (do ((i 0 (+ i 1))) ((= i 32)) (let ((err (abs (- (vector-ref data i) (vector-ref saved-data i))))) (if (> err mx) (set! mx err)))) (test-assert (format #f "dht error < 1e-6: ~A" mx) (<= mx 1e-6)))) (let ((coss (list 1.00000000000000000000000000000000000000000000000000000000000000000000 0.99500416527802576609556198780387029483857622541508403595935274468526 0.98006657784124163112419651674816887739352436080656799405254829012618 0.95533648912560601964231022756804989824421408263203767451761361222758 0.92106099400288508279852673205180161402585956931985044561508926713514 0.87758256189037271611628158260382965199164519710974405299761086831595 0.82533561490967829724095249895537603887809103918847038136974977367156 0.76484218728448842625585999019186490926821055037370335607293245825206 0.69670670934716542092074998164232492610178601370806078363714489414924 0.62160996827066445648471615140713350872176136659123900757638348453897 0.54030230586813971740093660744297660373231042061792222767009725538110 0.45359612142557738777137005178471612212146729566259504745593805541880 0.36235775447667357763837335562307602033994778557664862648774972093613 0.26749882862458740699798410929287135927592992167912966191725336742182 0.16996714290024093861674803520364980292818392102853430898236521149464 0.07073720166770291008818985143426870908509102756334686942264541719092 -0.02919952230128872620577046294649852444486472109384694500313007908245 -0.12884449429552468408764285733487351410164007964520297633178213994289 -0.22720209469308705531667430653058073247695158653826107158496911100681 -0.32328956686350342227883369508031017459419076544223959990115436505106 -0.41614683654714238699756822950076218976600077107554489075514997378196 -0.50484610459985745162093852371916747040702337674136205964819622353659 -0.58850111725534570852414261265492841629376036669872798974753517400616 -0.66627602127982419331788057116601723016327537100376988865266957182167 -0.73739371554124549960882222733478290843301289199228479878436568873073 -0.80114361554693371483350279046735166442856784876782013507459799166202 -0.85688875336894723379770215164520111235392263823324404910501242714241 -0.90407214201706114798252728194333012633184973516362471104126694868604 -0.94222234066865815258678811736615401246341423446824662018098201995710 -0.97095816514959052178110666934553217911761475942423954213867099245327 -0.98999249660044545727157279473126130239367909661558832881408593292832 -0.99913515027327946449237605454146626283664166994794274354471598254947 -0.99829477579475308466166072228358269144701258595166016759508002045139))) (let ((mxerr 0.0)) (do ((i 0 (+ i 1)) (x 0.0 (+ x 0.1))) ((= i 32)) (let ((err (abs (- (cos x) (list-ref coss i))))) (if (> err mxerr) (set! mxerr err)))) (test-assert (format #f "max cos err 1e-12: ~A" mxerr) (<= mxerr 1e-12)))) (test-end "cos") ;;; -------------------------------------------------------------------------------- ;;; tan ;;; -------------------------------------------------------------------------------- (test-begin "tan") (num-test (tan 0) 0.0) (num-test (tan 1) 1.55740772465490) (num-test (tan -1) -1.55740772465490) (num-test (tan 0/1) 0.0) (num-test (tan 0/2) 0.0) (num-test (tan 0/3) 0.0) (num-test (tan 0/10) 0.0) (num-test (tan 0/1234) 0.0) (num-test (tan 0/1234000000) 0.0) (num-test (tan 0/500029) 0.0) (num-test (tan 0/362880) 0.0) (num-test (tan 1/1) 1.55740772465490) (num-test (tan -1/1) -1.55740772465490) (num-test (tan 1/2) 0.54630248984379) (num-test (tan -1/2) -0.54630248984379) (num-test (tan 1/3) 0.34625354951058) (num-test (tan -1/3) -0.34625354951058) (num-test (tan 1/10) 0.10033467208545) (num-test (tan -1/10) -0.10033467208545) (num-test (tan 1/1234) 0.00081037294887) (num-test (tan -1/1234) -0.00081037294887) (num-test (tan 1/1234000000) 0.00000000081037) (num-test (tan -1/1234000000) -0.00000000081037) (num-test (tan 1/500029) 0.00000199988401) (num-test (tan -1/500029) -0.00000199988401) (num-test (tan 1/362880) 0.00000275573192) (num-test (tan -1/362880) -0.00000275573192) (num-test (tan 2/2) 1.55740772465490) (num-test (tan -2/2) -1.55740772465490) (num-test (tan 2/3) 0.78684288947298) (num-test (tan -2/3) -0.78684288947298) (num-test (tan 2/10) 0.20271003550867) (num-test (tan -2/10) -0.20271003550867) (num-test (tan 2/1234) 0.00162074696208) (num-test (tan -2/1234) -0.00162074696208) (num-test (tan 2/1234000000) 0.00000000162075) (num-test (tan -2/1234000000) -0.00000000162075) (num-test (tan 2/500029) 0.00000399976801) (num-test (tan -2/500029) -0.00000399976801) (num-test (tan 2/362880) 0.00000551146384) (num-test (tan -2/362880) -0.00000551146384) (num-test (tan 3/2) 14.10141994717166) (num-test (tan -3/2) -14.10141994717166) (num-test (tan 3/3) 1.55740772465490) (num-test (tan -3/3) -1.55740772465490) (num-test (tan 3/10) 0.30933624960962) (num-test (tan -3/10) -0.30933624960962) (num-test (tan 3/1234) 0.00243112310401) (num-test (tan -3/1234) -0.00243112310401) (num-test (tan 3/1234000000) 0.00000000243112) (num-test (tan -3/1234000000) -0.00000000243112) (num-test (tan 3/500029) 0.00000599965202) (num-test (tan -3/500029) -0.00000599965202) (num-test (tan 3/362880) 0.00000826719577) (num-test (tan -3/362880) -0.00000826719577) (num-test (tan 10/10) 1.55740772465490) (num-test (tan -10/10) -1.55740772465490) (num-test (tan 10/1234) 0.00810390511110) (num-test (tan -10/1234) -0.00810390511110) (num-test (tan 10/1234000000) 0.00000000810373) (num-test (tan -10/1234000000) -0.00000000810373) (num-test (tan 10/500029) 0.00001999884007) (num-test (tan -10/500029) -0.00001999884007) (num-test (tan 10/362880) 0.00002755731923) (num-test (tan -10/362880) -0.00002755731923) (num-test (tan 1234/1234) 1.55740772465490) (num-test (tan -1234/1234) -1.55740772465490) (num-test (tan 1234/1234000000) 0.00000100000000) (num-test (tan -1234/1234000000) -0.00000100000000) (num-test (tan 1234/500029) 0.00246786187432) (num-test (tan -1234/500029) -0.00246786187432) (num-test (tan 1234/362880) 0.00340058630026) (num-test (tan -1234/362880) -0.00340058630026) (num-test (tan 1234000000/1234000000) 1.55740772465490) (num-test (tan -1234000000/1234000000) -1.55740772465490) (num-test (tan 500029/1234000000) 0.00040520990873) (num-test (tan -500029/1234000000) -0.00040520990873) (num-test (tan 500029/500029) 1.55740772465490) (num-test (tan -500029/500029) -1.55740772465490) (num-test (tan 500029/362880) 5.12092171798848) (num-test (tan -500029/362880) -5.12092171798848) (num-test (tan 362880/1234000000) 0.00029406807979) (num-test (tan -362880/1234000000) -0.00029406807979) (num-test (tan 362880/500029) 0.88723539913856) (num-test (tan -362880/500029) -0.88723539913856) (num-test (tan 362880/362880) 1.55740772465490) (num-test (tan -362880/362880) -1.55740772465490) (num-test (tan 0.0) 0.0) (num-test (tan 0.00000001) 0.00000001) (num-test (tan -0.00000001) -0.00000001) (num-test (tan 1.0) 1.55740772465490) (num-test (tan -1.0) -1.55740772465490) (num-test (tan 0.0+0.0i) 0.0) (num-test (tan -0.0+0.0i) 0.0) (num-test (tan 0.0-0.0i) 0.0) (num-test (tan -0.0-0.0i) 0.0) (num-test (tan 0.0+0.00000001i) 0.0+0.00000001i) (num-test (tan -0.0+0.00000001i) 0.0+0.00000001i) (num-test (tan 0.0-0.00000001i) 0.0-0.00000001i) (num-test (tan -0.0-0.00000001i) -0.0-0.00000001i) (num-test (tan 0.0+1.0i) 0.0+0.76159415595576i) (num-test (tan -0.0+1.0i) 0.0+0.76159415595576i) (num-test (tan 0.0-1.0i) 0.0-0.76159415595576i) (num-test (tan -0.0-1.0i) -0.0-0.76159415595576i) (num-test (tan 0.0+3.14159265358979i) 0.0+0.99627207622075i) (num-test (tan -0.0+3.14159265358979i) 0.0+0.99627207622075i) (num-test (tan 0.0-3.14159265358979i) 0.0-0.99627207622075i) (num-test (tan -0.0-3.14159265358979i) -0.0-0.99627207622075i) (num-test (tan 0.0+2.71828182845905i) 0.0+0.99132891580060i) (num-test (tan -0.0+2.71828182845905i) 0.0+0.99132891580060i) (num-test (tan 0.0-2.71828182845905i) 0.0-0.99132891580060i) (num-test (tan -0.0-2.71828182845905i) -0.0-0.99132891580060i) (num-test (tan 0.00000001+0.0i) 0.00000001) (num-test (tan -0.00000001+0.0i) -0.00000001) (num-test (tan 0.00000001-0.0i) 0.00000001) (num-test (tan -0.00000001-0.0i) -0.00000001) (num-test (tan 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (tan -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (tan 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (tan -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (tan 0.00000001+1.0i) 0.00000000419974+0.76159415595576i) (num-test (tan -0.00000001+1.0i) -0.00000000419974+0.76159415595576i) (num-test (tan 0.00000001-1.0i) 0.00000000419974-0.76159415595576i) (num-test (tan -0.00000001-1.0i) -0.00000000419974-0.76159415595576i) (num-test (tan 0.00000001+3.14159265358979i) 0.00000000007442+0.99627207622075i) (num-test (tan -0.00000001+3.14159265358979i) -0.00000000007442+0.99627207622075i) (num-test (tan 0.00000001-3.14159265358979i) 0.00000000007442-0.99627207622075i) (num-test (tan -0.00000001-3.14159265358979i) -0.00000000007442-0.99627207622075i) (num-test (tan 0.00000001+2.71828182845905i) 0.00000000017267+0.99132891580060i) (num-test (tan -0.00000001+2.71828182845905i) -0.00000000017267+0.99132891580060i) (num-test (tan 0.00000001-2.71828182845905i) 0.00000000017267-0.99132891580060i) (num-test (tan -0.00000001-2.71828182845905i) -0.00000000017267-0.99132891580060i) (num-test (tan 1.0+0.0i) 1.55740772465490) (num-test (tan -1.0+0.0i) -1.55740772465490) (num-test (tan 1.0-0.0i) 1.55740772465490) (num-test (tan -1.0-0.0i) -1.55740772465490) (num-test (tan 1.0+0.00000001i) 1.55740772465490+0.00000003425519i) (num-test (tan -1.0+0.00000001i) -1.55740772465490+0.00000003425519i) (num-test (tan 1.0-0.00000001i) 1.55740772465490-0.00000003425519i) (num-test (tan -1.0-0.00000001i) -1.55740772465490-0.00000003425519i) (num-test (tan 1.0+1.0i) 0.27175258531951+1.08392332733869i) (num-test (tan -1.0+1.0i) -0.27175258531951+1.08392332733869i) (num-test (tan 1.0-1.0i) 0.27175258531951-1.08392332733869i) (num-test (tan -1.0-1.0i) -0.27175258531951-1.08392332733869i) (num-test (tan 1.0+3.14159265358979i) 0.00340139653674+1.00154968930275i) (num-test (tan -1.0+3.14159265358979i) -0.00340139653674+1.00154968930275i) (num-test (tan 1.0-3.14159265358979i) 0.00340139653674-1.00154968930275i) (num-test (tan -1.0-3.14159265358979i) -0.00340139653674-1.00154968930275i) (num-test (tan 1.0+2.71828182845905i) 0.00794757997665+1.00359921084211i) (num-test (tan -1.0+2.71828182845905i) -0.00794757997665+1.00359921084211i) (num-test (tan 1.0-2.71828182845905i) 0.00794757997665-1.00359921084211i) (num-test (tan -1.0-2.71828182845905i) -0.00794757997665-1.00359921084211i) ;; XXX ;; Flonum overflow (no exact representation) => nan.0+nan.0i ;(num-test (tan 1234.0+1234.0i) 2.7e-20+1.0i) ;(num-test (tan 1234.0-1234.0i) 2.7e-20-1.0i) (num-test (tan 10/3) .1941255059835657) (num-test (tan 1234/3) -0.2186940320047828) (num-test (tan 1234/10) 1.204471256531804) (num-test (tan 1234000000/3) -1.878094815124064721190472976913242128538E1) ; the ratio->float computation is inaccurate here I think (num-test (tan 1234000000/500029) -7.31654379832009) (num-test (tan 1234000000/362880) 4.911576750502133) (num-test (tan 500029/2) .2804673425353792) (num-test (tan 500029/3) -1.173139817032177) (num-test (tan 500029/10) 3.767116303516932) (num-test (tan 500029/1234) -0.05562302342803592) (num-test (tan 362880/1234) -2.927532635052267) ;; Seems a bit pedantic ;(num-test (tan pi) 6.982889851335445E-15) (num-test (tan pi) -1.2246063538223773e-16) (num-test (tan 2.71828182845905) -0.4505495340698621) ;; XXX Flonum overflow ;(num-test (tan 0.00000001+1234.0i) +8.077935669463161E-28+1.0i) ;(num-test (tan 0.00000001+1234000000.0i) 0.0+1.0i) ;(num-test (tan 3.14159265358979+0.0i) 6.982889851335445E-15) (num-test (tan 3.14159265358979+0.00000001i) +6.982889851335444E-15+1.0E-8i) (num-test (tan 3.14159265358979+1.0i) +2.932634567877868E-15+0.7615941559557649i) (num-test (tan 3.14159265358979+3.14159265358979i) +5.196631812627532E-17+0.99627207622075i) (num-test (tan 3.14159265358979+2.71828182845905i) +1.205734242765375E-16+0.991328915800599i) ;; XXX Flonum overflow ;(num-test (tan 3.14159265358979+1234.0i) 0.0+1.0i) ;(num-test (tan 3.14159265358979+1234000000.0i) -7.703719777548943E-34+1.0i) (num-test (tan 2.71828182845905+0.0i) -0.4505495340698621) (num-test (tan 2.71828182845905+0.00000001i) -0.4505495340698621+1.2029948826505699E-8i) (num-test (tan 2.71828182845905+1.0i) -0.1692870118766369+0.8196826057997404i) (num-test (tan 2.71828182845905+3.14159265358979i) -0.002790687681003331+0.9975247319761639i) (num-test (tan 2.71828182845905+2.71828182845905i) -0.00648578276962794+0.9942257438545914i) ;; XXX Flonum overflow ;(num-test (tan 2.71828182845905+1234.0i) +2.710505431213761E-20+1.0i) ;(num-test (tan 2.71828182845905+1234000000.0i) +2.710505431213761E-20+1.0i) (num-test (tan 1234.0+0.00000001i) -0.7537751984442328+1.5681770497896427E-8i) (num-test (tan 1234.0+3.14159265358979i) -0.003586791196867043+0.9989656315245496i) (num-test (tan 1234.0+2.71828182845905i) -0.008351965390936033+0.9975698313220817i) (num-test (tan 1234000000.0+0.00000001i) -6.212941995900324+3.9600648244422054E-7i) (num-test (tan 1234000000.0+3.14159265358979i) -0.001176098307980411+1.003551866736695i) (num-test (tan 1234000000.0+2.71828182845905i) -0.002755390838840499+1.008299558244272i) ;;(num-test (tan 1.5707963259845+2.0630965522972e-18i) 1.234000079689074E+9+3.141593059344448i) (num-test (tan -3.45266983001243932001e-04+0.0e+00i) -3.4526699672092183585e-4) (num-test (tan 3.45266983001243932001e-04+0.0e+00i) 3.4526699672092183585e-4) (num-test (tan -3.45266983001243932001e-04+1.19209289550781250e-07i) -3.4526699672091692931e-4+1.1920930376163652989e-7i) (num-test (tan -3.45266983001243932001e-04-1.19209289550781250e-07i) -3.4526699672091692931e-4-1.1920930376163652989e-7i) (num-test (tan 3.45266983001243932001e-04+1.19209289550781250e-07i) 3.4526699672091692931e-4+1.1920930376163652989e-7i) (num-test (tan 3.45266983001243932001e-04-1.19209289550781250e-07i) 3.4526699672091692931e-4-1.1920930376163652989e-7i) (num-test (tan -3.45266983001243932001e-04+5.0e-01i) -2.7153443992655805934e-4+4.6211720058436229979e-1i) (num-test (tan -3.45266983001243932001e-04-5.0e-01i) -2.7153443992655805934e-4-4.6211720058436229979e-1i) (num-test (tan 3.45266983001243932001e-04+5.0e-01i) 2.7153443992655805934e-4+4.6211720058436229979e-1i) (num-test (tan 3.45266983001243932001e-04-5.0e-01i) 2.7153443992655805934e-4-4.6211720058436229979e-1i) (num-test (tan -3.45266983001243932001e-04+1.0e+00i) -1.4500326960274960880e-4+7.6159419408485704836e-1i) (num-test (tan -3.45266983001243932001e-04-1.0e+00i) -1.4500326960274960880e-4-7.6159419408485704836e-1i) (num-test (tan 3.45266983001243932001e-04+1.0e+00i) 1.4500326960274960880e-4+7.6159419408485704836e-1i) (num-test (tan 3.45266983001243932001e-04-1.0e+00i) 1.4500326960274960880e-4-7.6159419408485704836e-1i) (num-test (tan -3.45266983001243932001e-04+2.0e+00i) -2.4393395410435306874e-5+9.6402758819508310556e-1i) (num-test (tan -3.45266983001243932001e-04-2.0e+00i) -2.4393395410435306874e-5-9.6402758819508310556e-1i) (num-test (tan 3.45266983001243932001e-04+2.0e+00i) 2.4393395410435306874e-5+9.6402758819508310556e-1i) (num-test (tan 3.45266983001243932001e-04-2.0e+00i) 2.4393395410435306874e-5-9.6402758819508310556e-1i) (num-test (tan 1.57045105981189525579e+00+0.0e+00i) 2.8963092606501007060e3) (num-test (tan -1.57045105981189525579e+00+0.0e+00i) -2.8963092606501007060e3) (num-test (tan 1.57045105981189525579e+00+1.19209289550781250e-07i) 2.8963089153831588642e3+9.9999992052646305569e-1i) (num-test (tan 1.57045105981189525579e+00-1.19209289550781250e-07i) 2.8963089153831588642e3-9.9999992052646305569e-1i) (num-test (tan -1.57045105981189525579e+00+1.19209289550781250e-07i) -2.8963089153831588642e3+9.9999992052646305569e-1i) (num-test (tan -1.57045105981189525579e+00-1.19209289550781250e-07i) -2.8963089153831588642e3-9.9999992052646305569e-1i) (num-test (tan 1.57045105981189525579e+00+5.0e-01i) 1.2715121175455623363e-3+2.1639524637389325996e0i) (num-test (tan 1.57045105981189525579e+00-5.0e-01i) 1.2715121175455623363e-3-2.1639524637389325996e0i) (num-test (tan -1.57045105981189525579e+00+5.0e-01i) -1.2715121175455623363e-3+2.1639524637389325996e0i) (num-test (tan -1.57045105981189525579e+00-5.0e-01i) -1.2715121175455623363e-3-2.1639524637389325996e0i) (num-test (tan 1.57045105981189525579e+00+1.0e+00i) 2.4999454374276273814e-4+1.3130351721648674823e0i) (num-test (tan 1.57045105981189525579e+00-1.0e+00i) 2.4999454374276273814e-4-1.3130351721648674823e0i) (num-test (tan -1.57045105981189525579e+00+1.0e+00i) -2.4999454374276273814e-4+1.3130351721648674823e0i) (num-test (tan -1.57045105981189525579e+00-1.0e+00i) -2.4999454374276273814e-4-1.3130351721648674823e0i) (num-test (tan 1.57045105981189525579e+00+2.0e+00i) 2.6247825506572821595e-5+1.0373147113268752620e0i) (num-test (tan 1.57045105981189525579e+00-2.0e+00i) 2.6247825506572821595e-5-1.0373147113268752620e0i) (num-test (tan -1.57045105981189525579e+00+2.0e+00i) -2.6247825506572821595e-5+1.0373147113268752620e0i) (num-test (tan -1.57045105981189525579e+00-2.0e+00i) -2.6247825506572821595e-5-1.0373147113268752620e0i) (num-test (tan 1.57114159377789786021e+00+0.0e+00i) -2.8963092606511280143e3) (num-test (tan -1.57114159377789786021e+00+0.0e+00i) 2.8963092606511280143e3) (num-test (tan 1.57114159377789786021e+00+1.19209289550781250e-07i) -2.8963089153841861720e3+9.9999992052717244672e-1i) (num-test (tan 1.57114159377789786021e+00-1.19209289550781250e-07i) -2.8963089153841861720e3-9.9999992052717244672e-1i) (num-test (tan -1.57114159377789786021e+00+1.19209289550781250e-07i) 2.8963089153841861720e3+9.9999992052717244672e-1i) (num-test (tan -1.57114159377789786021e+00-1.19209289550781250e-07i) 2.8963089153841861720e3-9.9999992052717244672e-1i) (num-test (tan 1.57114159377789786021e+00+5.0e-01i) -1.2715121175451113370e-3+2.1639524637389326002e0i) (num-test (tan 1.57114159377789786021e+00-5.0e-01i) -1.2715121175451113370e-3-2.1639524637389326002e0i) (num-test (tan -1.57114159377789786021e+00+5.0e-01i) 1.2715121175451113370e-3+2.1639524637389326002e0i) (num-test (tan -1.57114159377789786021e+00-5.0e-01i) 1.2715121175451113370e-3-2.1639524637389326002e0i) (num-test (tan 1.57114159377789786021e+00+1.0e+00i) -2.4999454374267406620e-4+1.3130351721648674824e0i) (num-test (tan 1.57114159377789786021e+00-1.0e+00i) -2.4999454374267406620e-4-1.3130351721648674824e0i) (num-test (tan -1.57114159377789786021e+00+1.0e+00i) 2.4999454374267406620e-4+1.3130351721648674824e0i) (num-test (tan -1.57114159377789786021e+00-1.0e+00i) 2.4999454374267406620e-4-1.3130351721648674824e0i) (num-test (tan 1.57114159377789786021e+00+2.0e+00i) -2.6247825506563511609e-5+1.0373147113268752620e0i) (num-test (tan 1.57114159377789786021e+00-2.0e+00i) -2.6247825506563511609e-5-1.0373147113268752620e0i) (num-test (tan -1.57114159377789786021e+00+2.0e+00i) 2.6247825506563511609e-5+1.0373147113268752620e0i) (num-test (tan -1.57114159377789786021e+00-2.0e+00i) 2.6247825506563511609e-5-1.0373147113268752620e0i) (num-test (tan 3.14124738660679181379e+00+0.0e+00i) -3.4526699672110257641e-4) (num-test (tan -3.14124738660679181379e+00+0.0e+00i) 3.4526699672110257641e-4) (num-test (tan 3.14124738660679181379e+00+1.19209289550781250e-07i) -3.4526699672109766987e-4+1.1920930376163652991e-7i) (num-test (tan 3.14124738660679181379e+00-1.19209289550781250e-07i) -3.4526699672109766987e-4-1.1920930376163652991e-7i) (num-test (tan -3.14124738660679181379e+00+1.19209289550781250e-07i) 3.4526699672109766987e-4+1.1920930376163652991e-7i) (num-test (tan -3.14124738660679181379e+00-1.19209289550781250e-07i) 3.4526699672109766987e-4-1.1920930376163652991e-7i) (num-test (tan 3.14124738660679181379e+00+5.0e-01i) -2.7153443992670020234e-4+4.6211720058436229984e-1i) (num-test (tan 3.14124738660679181379e+00-5.0e-01i) -2.7153443992670020234e-4-4.6211720058436229984e-1i) (num-test (tan -3.14124738660679181379e+00+5.0e-01i) 2.7153443992670020234e-4+4.6211720058436229984e-1i) (num-test (tan -3.14124738660679181379e+00-5.0e-01i) 2.7153443992670020234e-4-4.6211720058436229984e-1i) (num-test (tan 3.14124738660679181379e+00+1.0e+00i) -1.4500326960282551519e-4+7.6159419408485704840e-1i) (num-test (tan 3.14124738660679181379e+00-1.0e+00i) -1.4500326960282551519e-4-7.6159419408485704840e-1i) (num-test (tan -3.14124738660679181379e+00+1.0e+00i) 1.4500326960282551519e-4+7.6159419408485704840e-1i) (num-test (tan -3.14124738660679181379e+00-1.0e+00i) 1.4500326960282551519e-4-7.6159419408485704840e-1i) (num-test (tan 3.14124738660679181379e+00+2.0e+00i) -2.4393395410448076340e-5+9.6402758819508310557e-1i) (num-test (tan 3.14124738660679181379e+00-2.0e+00i) -2.4393395410448076340e-5-9.6402758819508310557e-1i) (num-test (tan -3.14124738660679181379e+00+2.0e+00i) 2.4393395410448076340e-5+9.6402758819508310557e-1i) (num-test (tan -3.14124738660679181379e+00-2.0e+00i) 2.4393395410448076340e-5-9.6402758819508310557e-1i) (num-test (tan 3.14193792057279441821e+00+0.0e+00i) 3.4526699672085764703e-4) (num-test (tan -3.14193792057279441821e+00+0.0e+00i) -3.4526699672085764703e-4) (num-test (tan 3.14193792057279441821e+00+1.19209289550781250e-07i) 3.4526699672085274049e-4+1.1920930376163652989e-7i) (num-test (tan 3.14193792057279441821e+00-1.19209289550781250e-07i) 3.4526699672085274049e-4-1.1920930376163652989e-7i) (num-test (tan -3.14193792057279441821e+00+1.19209289550781250e-07i) -3.4526699672085274049e-4+1.1920930376163652989e-7i) (num-test (tan -3.14193792057279441821e+00-1.19209289550781250e-07i) -3.4526699672085274049e-4-1.1920930376163652989e-7i) (num-test (tan 3.14193792057279441821e+00+5.0e-01i) 2.7153443992650757820e-4+4.6211720058436229978e-1i) (num-test (tan 3.14193792057279441821e+00-5.0e-01i) 2.7153443992650757820e-4-4.6211720058436229978e-1i) (num-test (tan -3.14193792057279441821e+00+5.0e-01i) -2.7153443992650757820e-4+4.6211720058436229978e-1i) (num-test (tan -3.14193792057279441821e+00-5.0e-01i) -2.7153443992650757820e-4-4.6211720058436229978e-1i) (num-test (tan 3.14193792057279441821e+00+1.0e+00i) 1.4500326960272265115e-4+7.6159419408485704835e-1i) (num-test (tan 3.14193792057279441821e+00-1.0e+00i) 1.4500326960272265115e-4-7.6159419408485704835e-1i) (num-test (tan -3.14193792057279441821e+00+1.0e+00i) -1.4500326960272265115e-4+7.6159419408485704835e-1i) (num-test (tan -3.14193792057279441821e+00-1.0e+00i) -1.4500326960272265115e-4-7.6159419408485704835e-1i) (num-test (tan 3.14193792057279441821e+00+2.0e+00i) 2.4393395410430771882e-5+9.6402758819508310556e-1i) (num-test (tan 3.14193792057279441821e+00-2.0e+00i) 2.4393395410430771882e-5-9.6402758819508310556e-1i) (num-test (tan -3.14193792057279441821e+00+2.0e+00i) -2.4393395410430771882e-5+9.6402758819508310556e-1i) (num-test (tan -3.14193792057279441821e+00-2.0e+00i) -2.4393395410430771882e-5-9.6402758819508310556e-1i) (num-test (tan 4.71204371340168837179e+00+0.0e+00i) 2.8963092606490733978e3) (num-test (tan -4.71204371340168837179e+00+0.0e+00i) -2.8963092606490733978e3) (num-test (tan 4.71204371340168837179e+00+1.19209289550781250e-07i) 2.8963089153821315563e3+9.9999992052575366466e-1i) (num-test (tan 4.71204371340168837179e+00-1.19209289550781250e-07i) 2.8963089153821315563e3-9.9999992052575366466e-1i) (num-test (tan -4.71204371340168837179e+00+1.19209289550781250e-07i) -2.8963089153821315563e3+9.9999992052575366466e-1i) (num-test (tan -4.71204371340168837179e+00-1.19209289550781250e-07i) -2.8963089153821315563e3-9.9999992052575366466e-1i) (num-test (tan 4.71204371340168837179e+00+5.0e-01i) 1.2715121175460133355e-3+2.1639524637389325989e0i) (num-test (tan 4.71204371340168837179e+00-5.0e-01i) 1.2715121175460133355e-3-2.1639524637389325989e0i) (num-test (tan -4.71204371340168837179e+00+5.0e-01i) -1.2715121175460133355e-3+2.1639524637389325989e0i) (num-test (tan -4.71204371340168837179e+00-5.0e-01i) -1.2715121175460133355e-3-2.1639524637389325989e0i) (num-test (tan 4.71204371340168837179e+00+1.0e+00i) 2.4999454374285141007e-4+1.3130351721648674822e0i) (num-test (tan 4.71204371340168837179e+00-1.0e+00i) 2.4999454374285141007e-4-1.3130351721648674822e0i) (num-test (tan -4.71204371340168837179e+00+1.0e+00i) -2.4999454374285141007e-4+1.3130351721648674822e0i) (num-test (tan -4.71204371340168837179e+00-1.0e+00i) -2.4999454374285141007e-4-1.3130351721648674822e0i) (num-test (tan 4.71204371340168837179e+00+2.0e+00i) 2.6247825506582131582e-5+1.0373147113268752620e0i) (num-test (tan 4.71204371340168837179e+00-2.0e+00i) 2.6247825506582131582e-5-1.0373147113268752620e0i) (num-test (tan -4.71204371340168837179e+00+2.0e+00i) -2.6247825506582131582e-5+1.0373147113268752620e0i) (num-test (tan -4.71204371340168837179e+00-2.0e+00i) -2.6247825506582131582e-5-1.0373147113268752620e0i) (num-test (tan 4.71273424736769097620e+00+0.0e+00i) -2.8963092606521553225e3) (num-test (tan -4.71273424736769097620e+00+0.0e+00i) 2.8963092606521553225e3) (num-test (tan 4.71273424736769097620e+00+1.19209289550781250e-07i) -2.8963089153852134799e3+9.9999992052788183776e-1i) (num-test (tan 4.71273424736769097620e+00-1.19209289550781250e-07i) -2.8963089153852134799e3-9.9999992052788183776e-1i) (num-test (tan -4.71273424736769097620e+00+1.19209289550781250e-07i) 2.8963089153852134799e3+9.9999992052788183776e-1i) (num-test (tan -4.71273424736769097620e+00-1.19209289550781250e-07i) 2.8963089153852134799e3-9.9999992052788183776e-1i) (num-test (tan 4.71273424736769097620e+00+5.0e-01i) -1.2715121175446603377e-3+2.1639524637389326009e0i) (num-test (tan 4.71273424736769097620e+00-5.0e-01i) -1.2715121175446603377e-3-2.1639524637389326009e0i) (num-test (tan -4.71273424736769097620e+00+5.0e-01i) 1.2715121175446603377e-3+2.1639524637389326009e0i) (num-test (tan -4.71273424736769097620e+00-5.0e-01i) 1.2715121175446603377e-3-2.1639524637389326009e0i) (num-test (tan 4.71273424736769097620e+00+1.0e+00i) -2.4999454374258539427e-4+1.3130351721648674825e0i) (num-test (tan 4.71273424736769097620e+00-1.0e+00i) -2.4999454374258539427e-4-1.3130351721648674825e0i) (num-test (tan -4.71273424736769097620e+00+1.0e+00i) 2.4999454374258539427e-4+1.3130351721648674825e0i) (num-test (tan -4.71273424736769097620e+00-1.0e+00i) 2.4999454374258539427e-4-1.3130351721648674825e0i) (num-test (tan 4.71273424736769097620e+00+2.0e+00i) -2.6247825506554201622e-5+1.0373147113268752620e0i) (num-test (tan 4.71273424736769097620e+00-2.0e+00i) -2.6247825506554201622e-5-1.0373147113268752620e0i) (num-test (tan -4.71273424736769097620e+00+2.0e+00i) 2.6247825506554201622e-5+1.0373147113268752620e0i) (num-test (tan -4.71273424736769097620e+00-2.0e+00i) 2.6247825506554201622e-5-1.0373147113268752620e0i) (num-test (tan 6.28284004019658492979e+00+0.0e+00i) -3.4526699672122504111e-4) (num-test (tan -6.28284004019658492979e+00+0.0e+00i) 3.4526699672122504111e-4) (num-test (tan 6.28284004019658492979e+00+1.19209289550781250e-07i) -3.4526699672122013457e-4+1.1920930376163652992e-7i) (num-test (tan 6.28284004019658492979e+00-1.19209289550781250e-07i) -3.4526699672122013457e-4-1.1920930376163652992e-7i) (num-test (tan -6.28284004019658492979e+00+1.19209289550781250e-07i) 3.4526699672122013457e-4+1.1920930376163652992e-7i) (num-test (tan -6.28284004019658492979e+00-1.19209289550781250e-07i) 3.4526699672122013457e-4-1.1920930376163652992e-7i) (num-test (tan 6.28284004019658492979e+00+5.0e-01i) -2.7153443992679651442e-4+4.6211720058436229987e-1i) (num-test (tan 6.28284004019658492979e+00-5.0e-01i) -2.7153443992679651442e-4-4.6211720058436229987e-1i) (num-test (tan -6.28284004019658492979e+00+5.0e-01i) 2.7153443992679651442e-4+4.6211720058436229987e-1i) (num-test (tan -6.28284004019658492979e+00-5.0e-01i) 2.7153443992679651442e-4-4.6211720058436229987e-1i) (num-test (tan 6.28284004019658492979e+00+1.0e+00i) -1.4500326960287694721e-4+7.6159419408485704843e-1i) (num-test (tan 6.28284004019658492979e+00-1.0e+00i) -1.4500326960287694721e-4-7.6159419408485704843e-1i) (num-test (tan -6.28284004019658492979e+00+1.0e+00i) 1.4500326960287694721e-4+7.6159419408485704843e-1i) (num-test (tan -6.28284004019658492979e+00-1.0e+00i) 1.4500326960287694721e-4-7.6159419408485704843e-1i) (num-test (tan 6.28284004019658492979e+00+2.0e+00i) -2.4393395410456728569e-5+9.6402758819508310558e-1i) (num-test (tan 6.28284004019658492979e+00-2.0e+00i) -2.4393395410456728569e-5-9.6402758819508310558e-1i) (num-test (tan -6.28284004019658492979e+00+2.0e+00i) 2.4393395410456728569e-5+9.6402758819508310558e-1i) (num-test (tan -6.28284004019658492979e+00-2.0e+00i) 2.4393395410456728569e-5-9.6402758819508310558e-1i) (num-test (tan 6.28353057416258753420e+00+0.0e+00i) 3.4526699672073518233e-4) (num-test (tan -6.28353057416258753420e+00+0.0e+00i) -3.4526699672073518233e-4) (num-test (tan 6.28353057416258753420e+00+1.19209289550781250e-07i) 3.4526699672073027579e-4+1.1920930376163652988e-7i) (num-test (tan 6.28353057416258753420e+00-1.19209289550781250e-07i) 3.4526699672073027579e-4-1.1920930376163652988e-7i) (num-test (tan -6.28353057416258753420e+00+1.19209289550781250e-07i) -3.4526699672073027579e-4+1.1920930376163652988e-7i) (num-test (tan -6.28353057416258753420e+00-1.19209289550781250e-07i) -3.4526699672073027579e-4-1.1920930376163652988e-7i) (num-test (tan 6.28353057416258753420e+00+5.0e-01i) 2.7153443992641126612e-4+4.6211720058436229974e-1i) (num-test (tan 6.28353057416258753420e+00-5.0e-01i) 2.7153443992641126612e-4-4.6211720058436229974e-1i) (num-test (tan -6.28353057416258753420e+00+5.0e-01i) -2.7153443992641126612e-4+4.6211720058436229974e-1i) (num-test (tan -6.28353057416258753420e+00-5.0e-01i) -2.7153443992641126612e-4-4.6211720058436229974e-1i) (num-test (tan 6.28353057416258753420e+00+1.0e+00i) 1.4500326960267121913e-4+7.6159419408485704832e-1i) (num-test (tan 6.28353057416258753420e+00-1.0e+00i) 1.4500326960267121913e-4-7.6159419408485704832e-1i) (num-test (tan -6.28353057416258753420e+00+1.0e+00i) -1.4500326960267121913e-4+7.6159419408485704832e-1i) (num-test (tan -6.28353057416258753420e+00-1.0e+00i) -1.4500326960267121913e-4-7.6159419408485704832e-1i) (num-test (tan 6.28353057416258753420e+00+2.0e+00i) 2.4393395410422119654e-5+9.6402758819508310555e-1i) (num-test (tan 6.28353057416258753420e+00-2.0e+00i) 2.4393395410422119654e-5-9.6402758819508310555e-1i) (num-test (tan -6.28353057416258753420e+00+2.0e+00i) -2.4393395410422119654e-5+9.6402758819508310555e-1i) (num-test (tan -6.28353057416258753420e+00-2.0e+00i) -2.4393395410422119654e-5-9.6402758819508310555e-1i) (num-test (tan 9.42443269378637893396e+00+0.0e+00i) -3.4526699672045932728e-4) (num-test (tan -9.42443269378637893396e+00+0.0e+00i) 3.4526699672045932728e-4) (num-test (tan 9.42443269378637893396e+00+1.19209289550781250e-07i) -3.4526699672045442074e-4+1.1920930376163652985e-7i) (num-test (tan 9.42443269378637893396e+00-1.19209289550781250e-07i) -3.4526699672045442074e-4-1.1920930376163652985e-7i) (num-test (tan -9.42443269378637893396e+00+1.19209289550781250e-07i) 3.4526699672045442074e-4+1.1920930376163652985e-7i) (num-test (tan -9.42443269378637893396e+00-1.19209289550781250e-07i) 3.4526699672045442074e-4-1.1920930376163652985e-7i) (num-test (tan 9.42443269378637893396e+00+5.0e-01i) -2.7153443992619432056e-4+4.6211720058436229968e-1i) (num-test (tan 9.42443269378637893396e+00-5.0e-01i) -2.7153443992619432056e-4-4.6211720058436229968e-1i) (num-test (tan -9.42443269378637893396e+00+5.0e-01i) 2.7153443992619432056e-4+4.6211720058436229968e-1i) (num-test (tan -9.42443269378637893396e+00-5.0e-01i) 2.7153443992619432056e-4-4.6211720058436229968e-1i) (num-test (tan 9.42443269378637893396e+00+1.0e+00i) -1.4500326960255536711e-4+7.6159419408485704826e-1i) (num-test (tan 9.42443269378637893396e+00-1.0e+00i) -1.4500326960255536711e-4-7.6159419408485704826e-1i) (num-test (tan -9.42443269378637893396e+00+1.0e+00i) 1.4500326960255536711e-4+7.6159419408485704826e-1i) (num-test (tan -9.42443269378637893396e+00-1.0e+00i) 1.4500326960255536711e-4-7.6159419408485704826e-1i) (num-test (tan 9.42443269378637893396e+00+2.0e+00i) -2.4393395410402630273e-5+9.6402758819508310554e-1i) (num-test (tan 9.42443269378637893396e+00-2.0e+00i) -2.4393395410402630273e-5-9.6402758819508310554e-1i) (num-test (tan -9.42443269378637893396e+00+2.0e+00i) 2.4393395410402630273e-5+9.6402758819508310554e-1i) (num-test (tan -9.42443269378637893396e+00-2.0e+00i) 2.4393395410402630273e-5-9.6402758819508310554e-1i) (num-test (tan 9.42512322775237976202e+00+0.0e+00i) 3.4526699671972453911e-4) (num-test (tan -9.42512322775237976202e+00+0.0e+00i) -3.4526699671972453911e-4) (num-test (tan 9.42512322775237976202e+00+1.19209289550781250e-07i) 3.4526699671971963257e-4+1.1920930376163652979e-7i) (num-test (tan 9.42512322775237976202e+00-1.19209289550781250e-07i) 3.4526699671971963257e-4-1.1920930376163652979e-7i) (num-test (tan -9.42512322775237976202e+00+1.19209289550781250e-07i) -3.4526699671971963257e-4+1.1920930376163652979e-7i) (num-test (tan -9.42512322775237976202e+00-1.19209289550781250e-07i) -3.4526699671971963257e-4-1.1920930376163652979e-7i) (num-test (tan 9.42512322775237976202e+00+5.0e-01i) 2.7153443992561644811e-4+4.6211720058436229949e-1i) (num-test (tan 9.42512322775237976202e+00-5.0e-01i) 2.7153443992561644811e-4-4.6211720058436229949e-1i) (num-test (tan -9.42512322775237976202e+00+5.0e-01i) -2.7153443992561644811e-4+4.6211720058436229949e-1i) (num-test (tan -9.42512322775237976202e+00-5.0e-01i) -2.7153443992561644811e-4-4.6211720058436229949e-1i) (num-test (tan 9.42512322775237976202e+00+1.0e+00i) 1.450032696022467750e-4+7.6159419408485704810e-1i) (num-test (tan 9.42512322775237976202e+00-1.0e+00i) 1.450032696022467750e-4-7.6159419408485704810e-1i) (num-test (tan -9.42512322775237976202e+00+1.0e+00i) -1.450032696022467750e-4+7.6159419408485704810e-1i) (num-test (tan -9.42512322775237976202e+00-1.0e+00i) -1.450032696022467750e-4-7.6159419408485704810e-1i) (num-test (tan 9.42512322775237976202e+00+2.0e+00i) 2.439339541035071690e-5+9.6402758819508310550e-1i) (num-test (tan 9.42512322775237976202e+00-2.0e+00i) 2.439339541035071690e-5-9.6402758819508310550e-1i) (num-test (tan -9.42512322775237976202e+00+2.0e+00i) -2.439339541035071690e-5+9.6402758819508310550e-1i) (num-test (tan -9.42512322775237976202e+00-2.0e+00i) -2.439339541035071690e-5-9.6402758819508310550e-1i) (num-test (tan 32767.) 1.9089234430221485740826E-1) (num-test (tan 8388607.) -8.0354556223613614748329E0) (num-test (tan 2147483647.) 1.0523779637351339136698E0) (num-test (tan -2.225073858507201399999999999999999999996E-308) -2.225073858507201399999999999999999999996E-308) (num-test (tan 1.110223024625156799999999999999999999997E-16) 1.110223024625156800000000000000004561517E-16) (num-test (tan (* 1/4 (atan 4))) (* 2 (+ (cos (/ (* 6 pi) 17)) (cos (/ (* 10 pi) 17))))) (num-test (tan (/ pi 10)) (/ (sqrt (- 25 (* 10 (sqrt 5)))) 5)) (num-test (tan (/ pi 12)) (- 2 (sqrt 3))) (num-test (tan (/ pi 12)) (- 2 (sqrt 3))) (num-test (tan (/ pi 16)) (- (sqrt (+ 4 (* 2 (sqrt 2)))) (sqrt 2) 1)) (num-test (tan (/ pi 20)) (+ 1 (sqrt 5) (- (sqrt (+ 5 (* 2 (sqrt 5))))))) (num-test (tan (/ pi 24)) (+ -2 (sqrt 2) (- (sqrt 3)) (sqrt 6))) (num-test (tan (/ pi 3)) (sqrt 3)) (num-test (tan (/ pi 3)) (sqrt 3)) (num-test (tan (/ pi 30)) (sqrt (- 7 (* 2 (sqrt 5)) (* 2 (sqrt (- 15 (* 6 (sqrt 5)))))))) ;; No idea how this can work, seems wrong in s7 ;(num-test (tan (/ pi 4)) 1) (num-test (tan (/ pi 4)) 1.0) (num-test (tan (/ pi 4)) 1.0) (num-test (tan (/ pi 4)) 1.0) (num-test (tan (/ pi 5)) (sqrt (- 5 (* 2 (sqrt 5))))) (num-test (tan (/ pi 6)) (/ (sqrt 3) 3)) (num-test (tan (/ pi 6)) (/ (sqrt 3))) (num-test (tan (/ pi 8)) (- (sqrt 2) 1)) (num-test (* (tan (/ pi 11)) (tan (/ (* 2 pi) 11)) (tan (/ (* 3 pi) 11)) (tan (/ (* 4 pi) 11)) (tan (/ (* 5 pi) 11))) (sqrt 11)) (num-test (* (tan (/ pi 9)) (tan (/ (* 2 pi) 9)) (tan (/ (* 4 pi) 9))) (sqrt 3)) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 tan num (tan num) val))) (list (list 0 0) (list 1 1.5574077246549) (list 2 -2.1850398632615) (list 3 -0.14254654307428) (list -1 -1.5574077246549) (list -2 2.1850398632615) (list -3 0.14254654307428) (list 1/2 0.54630248984379) (list 1/3 0.34625354951058) (list -1/2 -0.54630248984379) (list -1/3 -0.34625354951058) (list 1/9223372036854775807 1.0842021724855e-19) (list 0.0 0.0) (list 1.0 1.5574077246549) (list 2.0 -2.1850398632615) (list -2.0 2.1850398632615) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309) (list 0+1i 0+0.76159415595576i) (list 0+2i 0+0.96402758007582i) (list 0-1i 0-0.76159415595576i) (list 1+1i 0.27175258531951+1.0839233273387i) (list 1-1i 0.27175258531951-1.0839233273387i) (list -1+1i -0.27175258531951+1.0839233273387i) (list -1-1i -0.27175258531951-1.0839233273387i) (list 0.1+0.1i 0.099328043521656+0.10066129051146i) (list 1e+16+1e+16i 0+1i) (list 1e-16+1e-16i 1e-16+1e-16i) )) (s7-test (tan) 'error) (s7-test (tan "hi") 'error) (s7-test (tan 1.0+23.0i 1.0+23.0i) 'error) (s7-test (tan 0 1) 'error) (test-end "tan") ;;; -------------------------------------------------------------------------------- ;;; asin ;;; -------------------------------------------------------------------------------- (test-begin "asin") (num-test (asin 0) 0.0) (num-test (asin 1) 1.57079632679490) (num-test (asin -1) -1.57079632679490) ;; Looks like s7 is using the wrong formula? ;; See http://mathworld.wolfram.com/InverseSine.html and wolframalpha output ;(num-test (asin 2) 1.57079632679490+1.31695789692482i) (num-test (asin 2) 1.57079632679490-1.31695789692482i) (num-test (asin -2) -1.57079632679490+1.31695789692482i) ;(num-test (asin 3) 1.57079632679490+1.76274717403909i) (num-test (asin 3) 1.57079632679490-1.76274717403909i) (num-test (asin -3) -1.57079632679490+1.76274717403909i) ;(num-test (asin 10) 1.57079632679490+2.99322284612638i) (num-test (asin 10) 1.57079632679490-2.99322284612638i) (num-test (asin -10) -1.57079632679490+2.99322284612638i) ;(num-test (asin 1234) 1.57079632679490+7.81116322068415i) (num-test (asin 1234) 1.57079632679490-7.81116322068415i) (num-test (asin -1234) -1.57079632679490+7.81116322068415i) (num-test (asin 0/1) 0.0) (num-test (asin 0/2) 0.0) (num-test (asin 0/3) 0.0) (num-test (asin 0/10) 0.0) (num-test (asin 0/1234) 0.0) (num-test (asin 0/1234000000) 0.0) (num-test (asin 0/500029) 0.0) (num-test (asin 0/362880) 0.0) (num-test (asin 1/1) 1.57079632679490) (num-test (asin -1/1) -1.57079632679490) (num-test (asin 1/2) 0.52359877559830) (num-test (asin -1/2) -0.52359877559830) (num-test (asin 1/3) 0.33983690945412) (num-test (asin -1/3) -0.33983690945412) (num-test (asin 1/10) 0.10016742116156) (num-test (asin -1/10) -0.10016742116156) (num-test (asin 1/1234) 0.00081037286017) (num-test (asin -1/1234) -0.00081037286017) (num-test (asin 1/1234000000) 0.00000000081037) (num-test (asin -1/1234000000) -0.00000000081037) (num-test (asin 1/500029) 0.00000199988401) (num-test (asin -1/500029) -0.00000199988401) (num-test (asin 1/362880) 0.00000275573192) (num-test (asin -1/362880) -0.00000275573192) ;(num-test (asin 2/1) 1.57079632679490+1.31695789692482i) (num-test (asin 2/1) 1.57079632679490-1.31695789692482i) (num-test (asin -2/1) -1.57079632679490+1.31695789692482i) (num-test (asin 2/2) 1.57079632679490) (num-test (asin -2/2) -1.57079632679490) (num-test (asin 2/3) 0.72972765622697) (num-test (asin -2/3) -0.72972765622697) (num-test (asin 2/10) 0.20135792079033) (num-test (asin -2/10) -0.20135792079033) (num-test (asin 2/1234) 0.00162074625252) (num-test (asin -2/1234) -0.00162074625252) (num-test (asin 2/1234000000) 0.00000000162075) (num-test (asin -2/1234000000) -0.00000000162075) (num-test (asin 2/500029) 0.00000399976801) (num-test (asin -2/500029) -0.00000399976801) (num-test (asin 2/362880) 0.00000551146384) (num-test (asin -2/362880) -0.00000551146384) ;(num-test (asin 3/1) 1.57079632679490+1.76274717403909i) (num-test (asin 3/1) 1.57079632679490-1.76274717403909i) (num-test (asin -3/1) -1.57079632679490+1.76274717403909i) ;(num-test (asin 3/2) 1.57079632679490+0.96242365011921i) (num-test (asin 3/2) 1.57079632679490-0.96242365011921i) (num-test (asin -3/2) -1.57079632679490+0.96242365011921i) (num-test (asin 3/3) 1.57079632679490) (num-test (asin -3/3) -1.57079632679490) (num-test (asin 3/10) 0.30469265401540) (num-test (asin -3/10) -0.30469265401540) (num-test (asin 3/1234) 0.00243112070922) (num-test (asin -3/1234) -0.00243112070922) (num-test (asin 3/1234000000) 0.00000000243112) (num-test (asin -3/1234000000) -0.00000000243112) (num-test (asin 3/500029) 0.00000599965202) (num-test (asin -3/500029) -0.00000599965202) (num-test (asin 3/362880) 0.00000826719577) (num-test (asin -3/362880) -0.00000826719577) ;(num-test (asin 10/1) 1.57079632679490+2.99322284612638i) (num-test (asin 10/1) 1.57079632679490-2.99322284612638i) (num-test (asin -10/1) -1.57079632679490+2.99322284612638i) ;(num-test (asin 10/2) 1.57079632679490+2.29243166956117i) (num-test (asin 10/2) 1.57079632679490-2.29243166956117i) (num-test (asin -10/2) -1.57079632679490+2.29243166956117i) ;(num-test (asin 10/3) 1.57079632679490+1.87382024252741i) (num-test (asin 10/3) 1.57079632679490-1.87382024252741i) (num-test (asin -10/3) -1.57079632679490+1.87382024252741i) (num-test (asin 10/10) 1.57079632679490) (num-test (asin -10/10) -1.57079632679490) (num-test (asin 10/1234) 0.00810381641321) (num-test (asin -10/1234) -0.00810381641321) (num-test (asin 10/1234000000) 0.00000000810373) (num-test (asin -10/1234000000) -0.00000000810373) (num-test (asin 10/500029) 0.00001999884007) (num-test (asin -10/500029) -0.00001999884007) (num-test (asin 10/362880) 0.00002755731923) (num-test (asin -10/362880) -0.00002755731923) ;(num-test (asin 1234/1) 1.57079632679490+7.81116322068415i) (num-test (asin 1234/1) 1.57079632679490-7.81116322068415i) (num-test (asin -1234/1) -1.57079632679490+7.81116322068415i) ;(num-test (asin 1234/2) 1.57079632679490+7.11801554770806i) (num-test (asin 1234/2) 1.57079632679490-7.11801554770806i) (num-test (asin -1234/2) -1.57079632679490+7.11801554770806i) ;(num-test (asin 1234/3) 1.57079632679490+6.71254961876657i) (num-test (asin 1234/3) 1.57079632679490-6.71254961876657i) (num-test (asin -1234/3) -1.57079632679490+6.71254961876657i) ;(num-test (asin 1234/10) 1.57079632679490+5.50856187402751i) (num-test (asin 1234/10) 1.57079632679490-5.50856187402751i) (num-test (asin -1234/10) -1.57079632679490+5.50856187402751i) (num-test (asin 1234/1234) 1.57079632679490) (num-test (asin -1234/1234) -1.57079632679490) (num-test (asin 1234/1234000000) 0.00000100000000) (num-test (asin -1234/1234000000) -0.00000100000000) (num-test (asin 1234/500029) 0.00246785936931) (num-test (asin -1234/500029) -0.00246785936931) (num-test (asin 1234/362880) 0.00340057974625) (num-test (asin -1234/362880) -0.00340057974625) (num-test (asin 1234000000/1234000000) 1.57079632679490) (num-test (asin -1234000000/1234000000) -1.57079632679490) ;(num-test (asin 1234000000/500029) 1.57079632679490+8.50425252675189i) (num-test (asin 1234000000/500029) 1.57079632679490-8.50425252675189i) (num-test (asin -1234000000/500029) -1.57079632679490+8.50425252675189i) ;(num-test (asin 1234000000/362880) 1.57079632679490+8.82484644053502i) (num-test (asin 1234000000/362880) 1.57079632679490-8.82484644053502i) (num-test (asin -1234000000/362880) -1.57079632679490+8.82484644053502i) (num-test (asin 500029/3) 1.570796326794897-12.71695626760523i) (num-test (asin -500029/3) -1.570796326794897+12.71695626760523i) (num-test (asin 500029/10) 1.570796326794897-1.151298346318831e1i) (num-test (asin -500029/10) -1.57079632679490+1.151298346318831e1i) ;(num-test (asin 500029/1234) 1.57079632679490+6.69755082925184i) (num-test (asin 500029/1234) 1.57079632679490-6.69755082925184i) (num-test (asin -500029/1234) -1.57079632679490+6.69755082925184i) (num-test (asin 500029/1234000000) 0.00040520989764) (num-test (asin -500029/1234000000) -0.00040520989764) (num-test (asin 500029/500029) 1.57079632679490) (num-test (asin -500029/500029) -1.57079632679490) ;(num-test (asin 500029/362880) 1.57079632679490+0.84413377868249i) (num-test (asin 500029/362880) 1.57079632679490-0.84413377868249i) (num-test (asin -500029/362880) -1.57079632679490+0.84413377868249i) (num-test (asin 362880/2) 1.570796326794896619231321691639751442098E0-1.280182748007387555277950474671339683536E1i) (num-test (asin -362880/2) -1.570796326794897+12.80182748007388i) (num-test (asin 362880/3) 1.570796326794896619231321691639751442098E0-1.239636237195621859776598192721440899765E1i) (num-test (asin -362880/3) -1.570796326794897+12.39636237195622i) (num-test (asin 362880/10) 1.570796326794897-1.119238956745752e1i) (num-test (asin -362880/10) -1.57079632679490+1.119238956745752e1i) ;(num-test (asin 362880/1234) 1.57079632679490+6.37695556516894i) (num-test (asin 362880/1234) 1.57079632679490-6.37695556516894i) (num-test (asin -362880/1234) -1.57079632679490+6.37695556516894i) (num-test (asin 362880/1234000000) 0.00029406807555) (num-test (asin -362880/1234000000) -0.00029406807555) (num-test (asin 362880/500029) 0.81207730383580) (num-test (asin -362880/500029) -0.81207730383580) (num-test (asin 362880/362880) 1.57079632679490) (num-test (asin -362880/362880) -1.57079632679490) (num-test (asin 0.0) 0.0) (num-test (asin 0.00000001) 0.00000001) (num-test (asin -0.00000001) -0.00000001) (num-test (asin 1.0) 1.57079632679490) (num-test (asin -1.0) -1.57079632679490) ;(num-test (asin pi) 1.57079632679490+1.81152627246085i) (num-test (asin pi) 1.57079632679490-1.81152627246085i) (num-test (asin -3.14159265358979) -1.57079632679490+1.81152627246085i) ;(num-test (asin 2.71828182845905) 1.57079632679490+1.65745445415308i) (num-test (asin 2.71828182845905) 1.57079632679490-1.65745445415308i) (num-test (asin -2.71828182845905) -1.57079632679490+1.65745445415308i) ;(num-test (asin 1234.0) 1.57079632679490+7.81116322068415i) (num-test (asin 1234.0) 1.57079632679490-7.81116322068415i) (num-test (asin -1234.0) -1.57079632679490+7.81116322068415i) (num-test (asin 0.0+0.0i) 0.0) (num-test (asin -0.0+0.0i) 0.0) (num-test (asin 0.0-0.0i) 0.0) (num-test (asin -0.0-0.0i) 0.0) (num-test (asin 0.0+0.00000001i) 0.0+0.00000001i) (num-test (asin -0.0+0.00000001i) 0.0+0.00000001i) (num-test (asin 0.0-0.00000001i) 0.0-0.00000001i) (num-test (asin -0.0-0.00000001i) -0.0-0.00000001i) (num-test (asin 0.0+1.0i) 0.0+0.88137358701954i) (num-test (asin -0.0+1.0i) 0.0+0.88137358701954i) (num-test (asin 0.0-1.0i) 0.0-0.88137358701954i) (num-test (asin -0.0-1.0i) -0.0-0.88137358701954i) (num-test (asin 0.0+3.14159265358979i) 0.0+1.86229574331085i) (num-test (asin -0.0+3.14159265358979i) 0.0+1.86229574331085i) (num-test (asin 0.0-3.14159265358979i) 0.0-1.86229574331085i) (num-test (asin -0.0-3.14159265358979i) -0.0-1.86229574331085i) (num-test (asin 0.0+2.71828182845905i) 0.0+1.72538255885232i) (num-test (asin -0.0+2.71828182845905i) 0.0+1.72538255885232i) (num-test (asin 0.0-2.71828182845905i) 0.0-1.72538255885231i) (num-test (asin -0.0-2.71828182845905i) -0.0-1.72538255885231i) (num-test (asin 0.0+1234.0i) 0.0+7.81116354896171i) (num-test (asin -0.0+1234.0i) 0.0+7.81116354896171i) (num-test (asin 0.0-1234.0i) 0.0-7.81116354920125i) (num-test (asin -0.0-1234.0i) -0.0-7.81116354920125i) (num-test (asin 0.0-1234000000.0i) 0.0-21.62667394298955i) (num-test (asin -0.0-1234000000.0i) -0.0-21.62667394298955i) (num-test (asin 0.00000001+0.0i) 0.00000001) (num-test (asin -0.00000001+0.0i) -0.00000001) (num-test (asin 0.00000001-0.0i) 0.00000001) (num-test (asin -0.00000001-0.0i) -0.00000001) (num-test (asin 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (asin -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (asin 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (asin -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (asin 0.00000001+1.0i) 0.00000000707107+0.88137358701954i) (num-test (asin -0.00000001+1.0i) -0.00000000707107+0.88137358701954i) (num-test (asin 0.00000001-1.0i) 0.00000000707107-0.88137358701954i) (num-test (asin -0.00000001-1.0i) -0.00000000707107-0.88137358701954i) (num-test (asin 0.00000001+3.14159265358979i) 0.00000000303314+1.86229574331085i) (num-test (asin -0.00000001+3.14159265358979i) -0.00000000303314+1.86229574331085i) (num-test (asin 0.00000001-3.14159265358979i) 0.00000000303314-1.86229574331085i) (num-test (asin -0.00000001-3.14159265358979i) -0.00000000303314-1.86229574331085i) (num-test (asin 0.00000001+2.71828182845905i) 0.00000000345258+1.72538255885232i) (num-test (asin -0.00000001+2.71828182845905i) -0.00000000345258+1.72538255885232i) (num-test (asin 0.00000001-2.71828182845905i) 0.00000000345258-1.72538255885231i) (num-test (asin -0.00000001-2.71828182845905i) -0.00000000345258-1.72538255885231i) (num-test (asin 0.00000001+1234.0i) 0.00000000000810+7.81116354896171i) (num-test (asin -0.00000001+1234.0i) -0.00000000000810+7.81116354896171i) (num-test (asin 0.00000001-1234.0i) 0.00000000000810-7.81116354920125i) (num-test (asin -0.00000001-1234.0i) -0.00000000000810-7.81116354920125i) (num-test (asin 0.00000001-1234000000.0i) 0.0-21.62667394298955i) (num-test (asin -0.00000001-1234000000.0i) -0.0-21.62667394298955i) (num-test (asin 1.0+0.0i) 1.57079632679490) (num-test (asin -1.0+0.0i) -1.57079632679490) (num-test (asin 1.0-0.0i) 1.57079632679490) (num-test (asin -1.0-0.0i) -1.57079632679490) (num-test (asin 1.0+0.00000001i) 1.57069632679498+0.00010000000008i) (num-test (asin -1.0+0.00000001i) -1.57069632679498+0.00010000000008i) (num-test (asin 1.0-0.00000001i) 1.57069632679498-0.00010000000008i) (num-test (asin -1.0-0.00000001i) -1.57069632679498-0.00010000000008i) (num-test (asin 1.0+1.0i) 0.66623943249252+1.06127506190504i) (num-test (asin -1.0+1.0i) -0.66623943249252+1.06127506190504i) (num-test (asin 1.0-1.0i) 0.66623943249252-1.06127506190504i) (num-test (asin -1.0-1.0i) -0.66623943249252-1.06127506190504i) (num-test (asin 1.0+3.14159265358979i) 0.29558503421163+1.90462768697066i) (num-test (asin -1.0+3.14159265358979i) -0.29558503421163+1.90462768697066i) (num-test (asin 1.0-3.14159265358979i) 0.29558503421163-1.90462768697066i) (num-test (asin -1.0-3.14159265358979i) -0.29558503421163-1.90462768697066i) (num-test (asin 1.0+2.71828182845905i) 0.33444277187637+1.77905438385935i) (num-test (asin -1.0+2.71828182845905i) -0.33444277187637+1.77905438385935i) (num-test (asin 1.0-2.71828182845905i) 0.33444277187637-1.77905438385935i) (num-test (asin -1.0-2.71828182845905i) -0.33444277187637-1.77905438385935i) (num-test (asin 1.0+1234.0i) 0.00081037232806+7.81116387772663i) (num-test (asin -1.0+1234.0i) -0.00081037232806+7.81116387772663i) (num-test (asin 1.0-1234.0i) 0.00081037232800-7.81116387755283i) (num-test (asin -1.0-1234.0i) -0.00081037232800-7.81116387755283i) (num-test (asin 1.0-1234000000.0i) 0.00000000081037-21.62667394298955i) (num-test (asin -1.0-1234000000.0i) -0.00000000081037-21.62667394298955i) ;(num-test (asin 3.14159265358979+0.0i) 1.57079632679490+1.81152627246085i) (num-test (asin 3.14159265358979+0.0i) 1.57079632679490-1.81152627246085i) (num-test (asin -3.14159265358979+0.0i) -1.57079632679490+1.81152627246085i) ;(num-test (asin 3.14159265358979-0.0i) 1.57079632679490+1.81152627246085i) (num-test (asin 3.14159265358979-0.0i) 1.57079632679490-1.81152627246085i) (num-test (asin -3.14159265358979-0.0i) -1.57079632679490+1.81152627246085i) (num-test (asin 3.14159265358979+0.00000001i) 1.57079632343715+1.81152627246085i) (num-test (asin -3.14159265358979+0.00000001i) -1.57079632343715+1.81152627246085i) (num-test (asin 3.14159265358979-0.00000001i) 1.57079632343715-1.81152627246085i) (num-test (asin -3.14159265358979-0.00000001i) -1.57079632343715-1.81152627246085i) (num-test (asin 3.14159265358979+1.0i) 1.24854303281344+1.86711439316026i) (num-test (asin -3.14159265358979+1.0i) -1.24854303281344+1.86711439316026i) (num-test (asin 3.14159265358979-1.0i) 1.24854303281344-1.86711439316026i) (num-test (asin -3.14159265358979-1.0i) -1.24854303281344-1.86711439316026i) (num-test (asin 3.14159265358979+3.14159265358979i) 0.77273977912748+2.18469104082751i) (num-test (asin -3.14159265358979+3.14159265358979i) -0.77273977912748+2.18469104082751i) (num-test (asin 3.14159265358979-3.14159265358979i) 0.77273977912748-2.18469104082751i) (num-test (asin -3.14159265358979-3.14159265358979i) -0.77273977912748-2.18469104082751i) (num-test (asin 3.14159265358979+2.71828182845905i) 0.84309656416035+2.11552790803290i) (num-test (asin -3.14159265358979+2.71828182845905i) -0.84309656416035+2.11552790803290i) (num-test (asin 3.14159265358979-2.71828182845905i) 0.84309656416035-2.11552790803290i) (num-test (asin -3.14159265358979-2.71828182845905i) -0.84309656416035-2.11552790803290i) (num-test (asin 3.14159265358979+1234.0i) 0.00254585480900+7.81116678966949i) (num-test (asin -3.14159265358979+1234.0i) -0.00254585480900+7.81116678966949i) (num-test (asin 3.14159265358979-1234.0i) 0.00254585480937-7.81116678989204i) (num-test (asin -3.14159265358979-1234.0i) -0.00254585480937-7.81116678989204i) (num-test (asin 3.14159265358979-1234000000.0i) 0.00000000254586-21.62667394298955i) (num-test (asin -3.14159265358979-1234000000.0i) -0.00000000254586-21.62667394298955i) ;(num-test (asin 2.71828182845905+0.0i) 1.57079632679490+1.65745445415308i) (num-test (asin 2.71828182845905+0.0i) 1.57079632679490-1.65745445415308i) (num-test (asin -2.71828182845905+0.0i) -1.57079632679490+1.65745445415308i) ;(num-test (asin 2.71828182845905-0.0i) 1.57079632679490+1.65745445415308i) (num-test (asin 2.71828182845905-0.0i) 1.57079632679490-1.65745445415308i) (num-test (asin -2.71828182845905-0.0i) -1.57079632679490+1.65745445415308i) (num-test (asin 2.71828182845905+0.00000001i) 1.57079632283867+1.65745445415308i) (num-test (asin -2.71828182845905+0.00000001i) -1.57079632283867+1.65745445415308i) (num-test (asin 2.71828182845905-0.00000001i) 1.57079632283867-1.65745445415308i) (num-test (asin -2.71828182845905-0.00000001i) -1.57079632283867-1.65745445415308i) (num-test (asin 2.71828182845905+1.0i) 1.19757808518581+1.73375471569385i) (num-test (asin -2.71828182845905+1.0i) -1.19757808518581+1.73375471569385i) (num-test (asin 2.71828182845905-1.0i) 1.19757808518581-1.73375471569385i) (num-test (asin -2.71828182845905-1.0i) -1.19757808518581-1.73375471569385i) (num-test (asin 2.71828182845905+3.14159265358979i) 0.69904796994656+2.11968336368048i) (num-test (asin -2.71828182845905+3.14159265358979i) -0.69904796994656+2.11968336368048i) (num-test (asin 2.71828182845905-3.14159265358979i) 0.69904796994655-2.11968336368048i) (num-test (asin -2.71828182845905-3.14159265358979i) -0.69904796994655-2.11968336368048i) (num-test (asin 2.71828182845905+2.71828182845905i) 0.76849735588475+2.04014932880026i) (num-test (asin -2.71828182845905+2.71828182845905i) -0.76849735588475+2.04014932880026i) (num-test (asin 2.71828182845905-2.71828182845905i) 0.76849735588475-2.04014932880026i) (num-test (asin -2.71828182845905-2.71828182845905i) -0.76849735588475-2.04014932880026i) (num-test (asin 2.71828182845905+1234.0i) 0.00220281729236+7.81116597510553i) (num-test (asin -2.71828182845905+1234.0i) -0.00220281729236+7.81116597510553i) (num-test (asin 2.71828182845905-1234.0i) 0.00220281729269-7.81116597540442i) (num-test (asin -2.71828182845905-1234.0i) -0.00220281729269-7.81116597540442i) (num-test (asin 2.71828182845905-1234000000.0i) 0.00000000220282-21.62667394298955i) (num-test (asin -2.71828182845905-1234000000.0i) -0.00000000220282-21.62667394298955i) ;(num-test (asin 1234.0+0.0i) 1.57079632679490+7.81116322068415i) (num-test (asin 1234.0+0.0i) 1.57079632679490-7.81116322068415i) (num-test (asin -1234.0+0.0i) -1.57079632679490+7.81116322068415i) ;(num-test (asin 1234.0-0.0i) 1.57079632679490+7.81116322068415i) (num-test (asin 1234.0-0.0i) 1.57079632679490-7.81116322068415i) (num-test (asin -1234.0-0.0i) -1.57079632679490+7.81116322068415i) (num-test (asin 1234.0+0.00000001i) 1.57079632678679+7.81116322068415i) (num-test (asin -1234.0+0.00000001i) -1.57079632678679+7.81116322068415i) (num-test (asin 1234.0-0.00000001i) 1.57079632678679-7.81116322084923i) (num-test (asin -1234.0-0.00000001i) -1.57079632678679-7.81116322084923i) (num-test (asin 1234.0+1.0i) 1.56998595393442+7.81116354944842i) (num-test (asin -1234.0+1.0i) -1.56998595393442+7.81116354944842i) (num-test (asin 1234.0-1.0i) 1.56998595393473-7.81116354920146i) (num-test (asin -1234.0-1.0i) -1.56998595393473-7.81116354920146i) (num-test (asin 1234.0+3.14159265358979i) 1.56825047031506+7.81116646138554i) (num-test (asin -1234.0+3.14159265358979i) -1.56825047031506+7.81116646138554i) (num-test (asin 1234.0-3.14159265358979i) 1.56825047031367-7.81116646154641i) (num-test (asin -1234.0-3.14159265358979i) -1.56825047031367-7.81116646154641i) (num-test (asin 1234.0+2.71828182845905i) 1.56859350805543+7.81116564738434i) (num-test (asin -1234.0+2.71828182845905i) -1.56859350805543+7.81116564738434i) (num-test (asin 1234.0-2.71828182845905i) 1.56859350805562-7.81116564705719i) (num-test (asin -1234.0-2.71828182845905i) -1.56859350805562-7.81116564705719i) (num-test (asin 1234.0+1234.0i) 0.78539808146835+8.15773697538346i) (num-test (asin -1234.0+1234.0i) -0.78539808146835+8.15773697538346i) (num-test (asin 1234.0-1234.0i) 0.78539808130944-8.15773697530526i) (num-test (asin -1234.0-1234.0i) -0.78539808130944-8.15773697530526i) (num-test (asin 1234.0-1234000000.0i) 0.00000100000000-21.62667394299005i) (num-test (asin -1234.0-1234000000.0i) -0.00000100000000-21.62667394299005i) (num-test (asin 1234000000.0-0.00000001i) 1.57079632679490-21.62667394298955i) (num-test (asin -1234000000.0-0.00000001i) -1.57079632679490-21.62667394298955i) (num-test (asin 1234000000.0-1.0i) 1.57079632598452-21.62667394298955i) (num-test (asin -1234000000.0-1.0i) -1.57079632598452-21.62667394298955i) (num-test (asin 1234000000.0-3.14159265358979i) 1.57079632424904-21.62667394298955i) (num-test (asin -1234000000.0-3.14159265358979i) -1.57079632424904-21.62667394298955i) (num-test (asin 1234000000.0-2.71828182845905i) 1.57079632459208-21.62667394298955i) (num-test (asin -1234000000.0-2.71828182845905i) -1.57079632459208-21.62667394298955i) (num-test (asin 1234000000.0-1234.0i) 1.57079532679490-21.62667394299005i) (num-test (asin -1234000000.0-1234.0i) -1.57079532679490-21.62667394299005i) (num-test (asin 1234000000.0-1234000000.0i) 0.78539816339745-21.97324753326953i) (num-test (asin -1234000000.0-1234000000.0i) -0.78539816339745-21.97324753326953i) (num-test (asin 8.2729394e-17) 8.2729394e-17) (num-test (asin 1.821832e-231) 1.821832e-231) (num-test (asin 48983.30495194942-64983.97008730317i) 0.6459128607940432-12i) (num-test (asin 1234000000/3) 1.570796326794897-20.52806165432143i) (num-test (asin 500029/2) 1.570796326794897-13.12242137571839i) ;; XXX These look like overflows ;(num-test (asin 0.00000001+1234000000.0i) +8.103725052149596E-18+21.62667380877375i) ;(num-test (asin 3.14159265358979+1234000000.0i) +2.545860611523387E-9+21.62667380877375i) ;(num-test (asin 3.14159265358979+1234000000.0i) +2.545860611523387E-9-21.62667380877375i) ;(num-test (asin 2.71828182845905+1234000000.0i) +2.2028207814967068E-9+21.62667380877375i) ;(num-test (asin 1234000000.0+0.00000001i) +1.570796327200083+21.62667394298955i) ;(num-test (asin 1234000000.0+3.14159265358979i) +1.570796327200083+21.62667394298955i) (num-test (asin 0.0e+00+0.0e+00i) 0e0+0.0i) (num-test (asin 0.0e+00+1.19209289550781250e-07i) 0+1.1920928955078096766e-7i) (num-test (asin 0.0e+00-1.19209289550781250e-07i) 0-1.1920928955078096766e-7i) (num-test (asin 0.0e+00+5.0e-01i) 0+4.8121182505960344750e-1i) (num-test (asin 0.0e+00-5.0e-01i) 0-4.8121182505960344750e-1i) (num-test (asin 0.0e+00+1.0e+00i) 0+8.8137358701954302523e-1i) (num-test (asin 0.0e+00-1.0e+00i) 0-8.8137358701954302523e-1i) (num-test (asin 0.0e+00+2.0e+00i) 0+1.4436354751788103425e0i) (num-test (asin 0.0e+00-2.0e+00i) 0-1.4436354751788103425e0i) (num-test (asin 0.0e+00+8.3886080e+06i) 0+1.6635532333438690979e1i) (num-test (asin 0.0e+00-8.3886080e+06i) 0-1.6635532333438690979e1i) (num-test (asin 1.19209289550781250e-07+0.0e+00i) 1.1920928955078153234e-7) (num-test (asin -1.19209289550781250e-07+0.0e+00i) -1.1920928955078153234e-7) (num-test (asin 1.19209289550781250e-07+1.19209289550781250e-07i) 1.1920928955078068531e-7+1.1920928955078181469e-7i) (num-test (asin 1.19209289550781250e-07-1.19209289550781250e-07i) 1.1920928955078068531e-7-1.1920928955078181469e-7i) (num-test (asin -1.19209289550781250e-07+1.19209289550781250e-07i) -1.1920928955078068531e-7+1.1920928955078181469e-7i) (num-test (asin -1.19209289550781250e-07-1.19209289550781250e-07i) -1.1920928955078068531e-7-1.1920928955078181469e-7i) (num-test (asin 1.19209289550781250e-07+5.0e-01i) 1.0662402999400097805e-7+4.8121182505960598961e-1i) (num-test (asin 1.19209289550781250e-07-5.0e-01i) 1.0662402999400097805e-7-4.8121182505960598961e-1i) (num-test (asin -1.19209289550781250e-07+5.0e-01i) -1.0662402999400097805e-7+4.8121182505960598961e-1i) (num-test (asin -1.19209289550781250e-07-5.0e-01i) -1.0662402999400097805e-7-4.8121182505960598961e-1i) (num-test (asin 1.19209289550781250e-07+1.0e+00i) 8.4293697021788013662e-8+8.8137358701954553738e-1i) (num-test (asin 1.19209289550781250e-07-1.0e+00i) 8.4293697021788013662e-8-8.8137358701954553738e-1i) (num-test (asin -1.19209289550781250e-07+1.0e+00i) -8.4293697021788013662e-8+8.8137358701954553738e-1i) (num-test (asin -1.19209289550781250e-07-1.0e+00i) -8.4293697021788013662e-8-8.8137358701954553738e-1i) (num-test (asin 1.19209289550781250e-07+2.0e+00i) 5.3312014997000413263e-8+1.4436354751788116136e0i) (num-test (asin 1.19209289550781250e-07-2.0e+00i) 5.3312014997000413263e-8-1.4436354751788116136e0i) (num-test (asin -1.19209289550781250e-07+2.0e+00i) -5.3312014997000413263e-8+1.4436354751788116136e0i) (num-test (asin -1.19209289550781250e-07-2.0e+00i) -5.3312014997000413263e-8-1.4436354751788116136e0i) (num-test (asin 1.19209289550781250e-07+8.3886080e+06i) 1.4210854715201902743e-14+1.6635532333438690979e1i) (num-test (asin 1.19209289550781250e-07-8.3886080e+06i) 1.4210854715201902743e-14-1.6635532333438690979e1i) (num-test (asin -1.19209289550781250e-07+8.3886080e+06i) -1.4210854715201902743e-14+1.6635532333438690979e1i) (num-test (asin -1.19209289550781250e-07-8.3886080e+06i) -1.4210854715201902743e-14-1.6635532333438690979e1i) (num-test (asin 5.0e-01+0.0e+00i) 5.2359877559829887308e-1) (num-test (asin -5.0e-01+0.0e+00i) -5.2359877559829887308e-1) (num-test (asin 5.0e-01+1.19209289550781250e-07i) 5.2359877559829340332e-1+1.3765103082409432364e-7i) (num-test (asin 5.0e-01-1.19209289550781250e-07i) 5.2359877559829340332e-1-1.3765103082409432364e-7i) (num-test (asin -5.0e-01+1.19209289550781250e-07i) -5.2359877559829340332e-1+1.3765103082409432364e-7i) (num-test (asin -5.0e-01-1.19209289550781250e-07i) -5.2359877559829340332e-1-1.3765103082409432364e-7i) (num-test (asin 5.0e-01+5.0e-01i) 4.5227844715119068206e-1+5.3063753095251782602e-1i) (num-test (asin 5.0e-01-5.0e-01i) 4.5227844715119068206e-1-5.3063753095251782602e-1i) (num-test (asin -5.0e-01+5.0e-01i) -4.5227844715119068206e-1+5.3063753095251782602e-1i) (num-test (asin -5.0e-01-5.0e-01i) -4.5227844715119068206e-1-5.3063753095251782602e-1i) (num-test (asin 5.0e-01+1.0e+00i) 3.4943906285721329363e-1+9.2613303135018242455e-1i) (num-test (asin 5.0e-01-1.0e+00i) 3.4943906285721329363e-1-9.2613303135018242455e-1i) (num-test (asin -5.0e-01+1.0e+00i) -3.4943906285721329363e-1+9.2613303135018242455e-1i) (num-test (asin -5.0e-01-1.0e+00i) -3.4943906285721329363e-1-9.2613303135018242455e-1i) (num-test (asin 5.0e-01+2.0e+00i) 2.2101863562288385890e-1+1.4657153519472905218e0i) (num-test (asin 5.0e-01-2.0e+00i) 2.2101863562288385890e-1-1.4657153519472905218e0i) (num-test (asin -5.0e-01+2.0e+00i) -2.2101863562288385890e-1+1.4657153519472905218e0i) (num-test (asin -5.0e-01-2.0e+00i) -2.2101863562288385890e-1-1.4657153519472905218e0i) (num-test (asin 5.0e-01+8.3886080e+06i) 5.9604644775390130897e-8+1.6635532333438692755e1i) (num-test (asin 5.0e-01-8.3886080e+06i) 5.9604644775390130897e-8-1.6635532333438692755e1i) (num-test (asin -5.0e-01+8.3886080e+06i) -5.9604644775390130897e-8+1.6635532333438692755e1i) (num-test (asin -5.0e-01-8.3886080e+06i) -5.9604644775390130897e-8-1.6635532333438692755e1i) (num-test (asin 1.0e+00+0.0e+00i) 1.5707963267948966192e0) (num-test (asin -1.0e+00+0.0e+00i) -1.5707963267948966192e0) (num-test (asin 1.0e+00+1.19209289550781250e-07i) 1.5704510598153252947e0+3.4526698643116312881e-4i) (num-test (asin 1.0e+00-1.19209289550781250e-07i) 1.5704510598153252947e0-3.4526698643116312881e-4i) (num-test (asin -1.0e+00+1.19209289550781250e-07i) -1.5704510598153252947e0+3.4526698643116312881e-4i) (num-test (asin -1.0e+00-1.19209289550781250e-07i) -1.5704510598153252947e0-3.4526698643116312881e-4i) (num-test (asin 1.0e+00+5.0e-01i) 8.9590748120889023907e-1+7.3285767597364526089e-1i) (num-test (asin 1.0e+00-5.0e-01i) 8.9590748120889023907e-1-7.3285767597364526089e-1i) (num-test (asin -1.0e+00+5.0e-01i) -8.9590748120889023907e-1+7.3285767597364526089e-1i) (num-test (asin -1.0e+00-5.0e-01i) -8.9590748120889023907e-1-7.3285767597364526089e-1i) (num-test (asin 1.0e+00+1.0e+00i) 6.6623943249251525510e-1+1.0612750619050356520e0i) (num-test (asin 1.0e+00-1.0e+00i) 6.6623943249251525510e-1-1.0612750619050356520e0i) (num-test (asin -1.0e+00+1.0e+00i) -6.6623943249251525510e-1+1.0612750619050356520e0i) (num-test (asin -1.0e+00-1.0e+00i) -6.6623943249251525510e-1-1.0612750619050356520e0i) (num-test (asin 1.0e+00+2.0e+00i) 4.2707858639247612548e-1+1.5285709194809981613e0i) (num-test (asin 1.0e+00-2.0e+00i) 4.2707858639247612548e-1-1.5285709194809981613e0i) (num-test (asin -1.0e+00+2.0e+00i) -4.2707858639247612548e-1+1.5285709194809981613e0i) (num-test (asin -1.0e+00-2.0e+00i) -4.2707858639247612548e-1-1.5285709194809981613e0i) (num-test (asin 1.0e+00+8.3886080e+06i) 1.1920928955077983828e-7+1.6635532333438698084e1i) (num-test (asin 1.0e+00-8.3886080e+06i) 1.1920928955077983828e-7-1.6635532333438698084e1i) (num-test (asin -1.0e+00+8.3886080e+06i) -1.1920928955077983828e-7+1.6635532333438698084e1i) (num-test (asin -1.0e+00-8.3886080e+06i) -1.1920928955077983828e-7-1.6635532333438698084e1i) (num-test (asin 2.0e+00+0.0e+00i) 1.5707963267948966192e0-1.3169578969248167086e0i) (num-test (asin -2.0e+00+0.0e+00i) -1.5707963267948966192e0+1.3169578969248167086e0i) (num-test (asin 2.0e+00+1.19209289550781250e-07i) 1.5707962579693812072e0+1.3169578969248194435e0i) (num-test (asin 2.0e+00-1.19209289550781250e-07i) 1.5707962579693812072e0-1.3169578969248194435e0i) (num-test (asin -2.0e+00+1.19209289550781250e-07i) -1.5707962579693812072e0+1.3169578969248194435e0i) (num-test (asin -2.0e+00-1.19209289550781250e-07i) -1.5707962579693812072e0-1.3169578969248194435e0i) (num-test (asin 2.0e+00+5.0e-01i) 1.2930420702371826591e0+1.3618009008578457882e0i) (num-test (asin 2.0e+00-5.0e-01i) 1.2930420702371826591e0-1.3618009008578457882e0i) (num-test (asin -2.0e+00+5.0e-01i) -1.2930420702371826591e0+1.3618009008578457882e0i) (num-test (asin -2.0e+00-5.0e-01i) -1.2930420702371826591e0-1.3618009008578457882e0i) (num-test (asin 2.0e+00+1.0e+00i) 1.0634400235777520562e0+1.4693517443681852733e0i) (num-test (asin 2.0e+00-1.0e+00i) 1.0634400235777520562e0-1.4693517443681852733e0i) (num-test (asin -2.0e+00+1.0e+00i) -1.0634400235777520562e0+1.4693517443681852733e0i) (num-test (asin -2.0e+00-1.0e+00i) -1.0634400235777520562e0-1.4693517443681852733e0i) (num-test (asin 2.0e+00+2.0e+00i) 7.5424914469804604071e-1+1.7343245214879664480e0i) (num-test (asin 2.0e+00-2.0e+00i) 7.5424914469804604071e-1-1.7343245214879664480e0i) (num-test (asin -2.0e+00+2.0e+00i) -7.5424914469804604071e-1+1.7343245214879664480e0i) (num-test (asin -2.0e+00-2.0e+00i) -7.5424914469804604071e-1-1.7343245214879664480e0i) (num-test (asin 2.0e+00+8.3886080e+06i) 2.3841857910155628843e-7+1.663553233343871940e1i) (num-test (asin 2.0e+00-8.3886080e+06i) 2.3841857910155628843e-7-1.663553233343871940e1i) (num-test (asin -2.0e+00+8.3886080e+06i) -2.3841857910155628843e-7+1.663553233343871940e1i) (num-test (asin -2.0e+00-8.3886080e+06i) -2.3841857910155628843e-7-1.663553233343871940e1i) (num-test (asin 8.3886080e+06+0.0e+00i) 1.5707963267948966192e0-1.6635532333438683873e1i) (num-test (asin -8.3886080e+06+0.0e+00i) -1.5707963267948966192e0+1.6635532333438683873e1i) ;; XXX TODO Overflow/precision problems? ;(num-test (asin 8.3886080e+06+1.19209289550781250e-07i) 1.5707963267948824084e0+1.6635532333438683873e1i) ;(num-test (asin 8.3886080e+06-1.19209289550781250e-07i) 1.5707963267948824084e0-1.6635532333438683873e1i) ;(num-test (asin -8.3886080e+06+1.19209289550781250e-07i) -1.5707963267948824084e0+1.6635532333438683873e1i) ;(num-test (asin -8.3886080e+06-1.19209289550781250e-07i) -1.5707963267948824084e0-1.6635532333438683873e1i) ;(num-test (asin 8.3886080e+06+5.0e-01i) 1.5707962671902518438e0+1.6635532333438685650e1i) (num-test (asin 8.3886080e+06-5.0e-01i) 1.5707962671902518438e0-1.6635532333438685650e1i) ;(num-test (asin -8.3886080e+06+5.0e-01i) -1.5707962671902518438e0+1.6635532333438685650e1i) (num-test (asin -8.3886080e+06-5.0e-01i) -1.5707962671902518438e0-1.6635532333438685650e1i) ;(num-test (asin 8.3886080e+06+1.0e+00i) 1.5707962075856070684e0+1.6635532333438690979e1i) (num-test (asin 8.3886080e+06-1.0e+00i) 1.5707962075856070684e0-1.6635532333438690979e1i) ;(num-test (asin -8.3886080e+06+1.0e+00i) -1.5707962075856070684e0+1.6635532333438690979e1i) (num-test (asin -8.3886080e+06-1.0e+00i) -1.5707962075856070684e0-1.6635532333438690979e1i) ;(num-test (asin 8.3886080e+06+2.0e+00i) 1.5707960883763175177e0+1.6635532333438712295e1i) (num-test (asin 8.3886080e+06-2.0e+00i) 1.5707960883763175177e0-1.6635532333438712295e1i) ;(num-test (asin -8.3886080e+06+2.0e+00i) -1.5707960883763175177e0+1.6635532333438712295e1i) (num-test (asin -8.3886080e+06-2.0e+00i) -1.5707960883763175177e0-1.6635532333438712295e1i) ;(num-test (asin 8.3886080e+06+8.3886080e+06i) 7.8539816339744653326e-1+1.6982105923718660081e1i) (num-test (asin 8.3886080e+06-8.3886080e+06i) 7.8539816339744653326e-1-1.6982105923718660081e1i) ;(num-test (asin -8.3886080e+06+8.3886080e+06i) -7.8539816339744653326e-1+1.6982105923718660081e1i) (num-test (asin -8.3886080e+06-8.3886080e+06i) -7.8539816339744653326e-1-1.6982105923718660081e1i) (num-test (asin -1.0e+01) -1.5707963267948966192e0+2.9932228461263808979e0i) (num-test (asin -2.0e+00) -1.5707963267948966192e0+1.3169578969248167086e0i) (num-test (asin -1.0e+00) -1.5707963267948966192e0) (num-test (asin -7.50e-01) -8.4806207898148100805e-1) (num-test (asin -5.0e-01) -5.2359877559829887308e-1) (num-test (asin -1.250e-01) -1.2532783116806539687e-1) (num-test (asin -3.45266983001243932001e-04) -3.4526698986108292481e-4) (num-test (asin -1.19209289550781250e-07) -1.1920928955078153234e-7) (num-test (asin 0.0e+00) 0e0) (num-test (asin 1.19209289550781250e-07) 1.1920928955078153234e-7) (num-test (asin 3.45266983001243932001e-04) 3.4526698986108292481e-4) (num-test (asin 1.250e-01) 1.2532783116806539687e-1) (num-test (asin 5.0e-01) 5.2359877559829887308e-1) (num-test (asin 7.50e-01) 8.4806207898148100805e-1) (num-test (asin 1.0e+00) 1.5707963267948966192e0) (num-test (asin 2.0e+00) 1.5707963267948966192e0-1.3169578969248167086e0i) (num-test (asin 1.0e+01) 1.5707963267948966192e0-2.9932228461263808979e0i) (num-test (asin 0) 0.0) (num-test (asin 2) 1.570796326794897-1.316957896924817i) ;; XXX precision problem/overflow? ;(num-test (asin 3.0+70000000i) 4.2857142400327436E-8-18.7571529895002i) ;(num-test (asin 70000000+3i) 1.570796279536826+18.75715298057358i) ;; s7 is using the wrong formula? ;(num-test (asin 3.0+70000000i) 4.2857142400327436E-8+18.7571529895002i) (num-test (asin 3.0-70000000i) 4.2857142400327436E-8-18.7571529895002i) ;(num-test (asin -70000000+3i) -1.570796279536826+18.75715298057358i) ;(num-test (asin 1e17+1e17i) 0.78539816339745+40.183667351739i) ;(num-test (asin 1+1e17i) 1e-17+39.837093761459i) (num-test (asin -2.225073858507201399999999999999999999996E-308) -2.225073858507201399999999999999999999996E-308) (num-test (asin 1.110223024625156799999999999999999999997E-16) 1.110223024625156800000000000000002280754E-16) (num-test (asin (/ (sqrt 2) 2)) (/ pi 4)) (num-test (asin (/ (sqrt 3) -2)) (/ pi -3)) (num-test (* 10 (asin (/ (- (sqrt 5) 1) 4))) pi) (num-test (* 2 (asin 1)) pi) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 asin num (asin num) val))) (list (list 0 0) (list 1 1.5707963267949) (list 2 1.5707963267949-1.3169578969248i) (list 3 1.5707963267949-1.7627471740391i) (list -1 -1.5707963267949) (list -2 -1.5707963267949+1.3169578969248i) (list -3 -1.5707963267949+1.7627471740391i) (list 9223372036854775807 1.5707963267949-44.361419555836i) (list -9223372036854775808 -1.5707963267949+44.361419555836i) (list 1/2 0.5235987755983) (list 1/3 0.33983690945412) (list -1/2 -0.5235987755983) (list -1/3 -0.33983690945412) (list 1/9223372036854775807 1.0842021724855e-19) (list 0.0 0.0) (list 1.0 1.5707963267949) (list 2.0 1.5707963267949-1.3169578969248i) (list -2.0 -1.5707963267949+1.3169578969248i) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309) (list 1e+16 1.5707963267949-37.534508668465i) (list 0+1i 0+0.88137358701954i) (list 0+2i 0+1.4436354751788i) (list 0-1i 0-0.88137358701954i) (list 1+1i 0.66623943249252+1.061275061905i) (list 1-1i 0.66623943249252-1.061275061905i) (list -1+1i -0.66623943249252+1.061275061905i) (list -1-1i -0.66623943249252-1.061275061905i) (list 0.1+0.1i 0.099663702859795+0.10033029811221i) (list 1e+16+1e+16i 0.78539816339745+37.881082258745i) (list 1e-16+1e-16i 1e-16+1.1102230246252e-16i) )) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x -10.0 (+ x .1))) ((= i 200)) (let ((y (magnitude (- x (sin (asin x)))))) (if (> y err) (begin (set! mx x) (set! err y))))) (test-assert (format #f ";(sin (asin ~A)) error: ~A~%" mx err) (<= err 1e-9))) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x 1.0-i (+ x -.1+i))) ((= i 100)) (let ((y (magnitude (- x (sin (asin x)))))) (if (> y err) (begin (set! mx x) (set! err y))))) (test-assert (format #f ";(sin (asin ~A)) error: ~A~%" mx err) (<= err 1e-9))) (s7-test (asin) 'error) (s7-test (asin "hi") 'error) (s7-test (asin 1.0+23.0i 1.0+23.0i) 'error) (s7-test (asin 0 1) 'error) #; (let ((asins (list 0.00000000000000000000000000000000000000000000000000000000000000000000 0.02500260489936113599406838915349107150195748368840710160729904233944 0.05002085680577001466274438682046411497780608049468789272874398055703 0.07507049107671654265775143572317089898194705496817785120910161299955 0.10016742116155979634552317945269331856867597222962954139102385503640 0.12532783116806539687456698635708471804814772683867237523396403098649 0.15056827277668602642326030146739539047425784470580485344319902595849 0.17590576816371628737774199743846051972730948209298253171964068749984 0.20135792079033079145512555221762341024003808140222838625725124345560 0.22694303617851994909359260763689579636930963064761339672521677581090 0.25268025514207865348565743699371097225219373309683819363392377874057 0.27858970239165058217050815183568882129133935843106227203280647300877 0.30469265401539750797200296122752916695456003170677638739297794874647 0.33101172808929452771961639961139035858195303667932389628972377319123 0.35757110364551028671483849232064256784674132498948776325141270863037 0.38439677449563908303819487296704697375277948430656504155058375479079 0.41151684606748801938473789761733560485570113512702585178394678070009 0.43896188560976067483321619602147236009843505358239561712817387552271 0.46676533904729636185033976030413712126156503909241369925276357159851 0.49496403171689461363027991615293072605447706550005723007748628111125 0.52359877559829887307710723054658381403286156656251763682915743205130 0.55271511309678317285035596261806027710654731438452549350875265730232 0.58236423786874344183204729090997636797897358751436418853659347126034 0.61260414804862246566851988030718610964520075565860642564808142300476 0.64350110879328438680280922871732263804151059111531238286560611871351 0.67513153293703164720905626529438801420418535124967921737841984904557 0.70758443672535557545286474430459468476197717933193633785448106190261 0.74096470220302000164595109317351452207440076171206748884906746063949 0.77539749661075306374035335271498711355578873864116199359771996373272 0.81103439428758154765966499519016990220446846078107874166646027112837 0.84806207898148100805294433899841808007336621326311264286071816357020 0.88671509499956738294114522105877020358977872696702934222169938478807 0.92729521800161223242851246292242880405707410857224052762186617744039 0.97020219992884564627294507144637975649395034794671876838355202607208 1.01598529381482513116231792163105149400316379682053508778250056579494 1.06543581651073931226000681765232949759419723349387652321962473867275 1.11976951499863418668667705584539961589516218640330288237568186391443 1.18103559399742179696187441797151603545275866323114802494551011137296 1.25323589750337525873710391866600599574114067342736145636046515573871 1.34672104149307735953151290762049740983950868154764854526693662237423 1.57079632679489661923132169163975144209858469968755291048747229615390))) (let ((mxerr 0.0)) (do ((i 0 (+ i 1)) (x 0.0 (+ x (/ 1.0 40.0)))) ((= i 40)) (let ((err (- (asin x) (list-ref asins i)))) (if (> err mxerr) (set! mxerr err)))) (test-assert (format #f "max asin err 1e-12: ~A~%" mxerr) (<= mxerr 1e-12)))) (test-end "asin") ;;;-------------------------------------------------------------------------------- ;;; acos ;;; -------------------------------------------------------------------------------- (test-begin "acos") (num-test (acos 0) 1.57079632679490) (num-test (acos 1) 0.0) (num-test (acos -1) pi) ;; s7 is using the wrong formula? ;(num-test (acos 2) 0.0-1.31695789692482i) (num-test (acos 2) 0.0+1.31695789692482i) (num-test (acos -2) 3.14159265358979-1.31695789692482i) ;(num-test (acos 3) 0.0-1.76274717403909i) (num-test (acos 3) 0.0+1.76274717403909i) (num-test (acos -3) 3.14159265358979-1.76274717403909i) ;(num-test (acos 10) 0.0-2.99322284612638i) (num-test (acos 10) 0.0+2.99322284612638i) (num-test (acos -10) 3.14159265358979-2.99322284612638i) ;(num-test (acos 1234) 0.0-7.81116322068415i) (num-test (acos 1234) 0.0+7.81116322068415i) (num-test (acos -1234) 3.14159265358979-7.81116322068415i) (num-test (acos 0/1) 1.57079632679490) (num-test (acos 0/2) 1.57079632679490) (num-test (acos 0/3) 1.57079632679490) (num-test (acos 0/10) 1.57079632679490) (num-test (acos 0/1234) 1.57079632679490) (num-test (acos 0/1234000000) 1.57079632679490) (num-test (acos 0/500029) 1.57079632679490) (num-test (acos 0/362880) 1.57079632679490) (num-test (acos 1/1) 0.0) (num-test (acos -1/1) pi) (num-test (acos 1/2) 1.04719755119660) (num-test (acos -1/2) 2.09439510239320) (num-test (acos 1/3) 1.23095941734077) (num-test (acos -1/3) 1.91063323624902) (num-test (acos 1/10) 1.47062890563334) (num-test (acos -1/10) 1.67096374795646) (num-test (acos 1/1234) 1.56998595393473) (num-test (acos -1/1234) 1.57160669965507) (num-test (acos 1/1234000000) 1.57079632598452) (num-test (acos -1/1234000000) 1.57079632760527) (num-test (acos 1/500029) 1.57079432691089) (num-test (acos -1/500029) 1.57079832667890) (num-test (acos 1/362880) 1.57079357106297) (num-test (acos -1/362880) 1.57079908252682) ;; s7 is using the wrong formula? ;(num-test (acos 2/1) 0.0-1.31695789692482i) (num-test (acos 2/1) 0.0+1.31695789692482i) (num-test (acos -2/1) 3.14159265358979-1.31695789692482i) (num-test (acos 2/2) 0.0) (num-test (acos -2/2) pi) (num-test (acos 2/3) 0.84106867056793) (num-test (acos -2/3) 2.30052398302186) (num-test (acos 2/10) 1.36943840600457) (num-test (acos -2/10) 1.77215424758523) (num-test (acos 2/1234) 1.56917558054238) (num-test (acos -2/1234) 1.57241707304741) (num-test (acos 2/1234000000) 1.57079632517415) (num-test (acos -2/1234000000) 1.57079632841564) (num-test (acos 2/500029) 1.57079232702688) (num-test (acos -2/500029) 1.57080032656291) (num-test (acos 2/362880) 1.57079081533105) (num-test (acos -2/362880) 1.57080183825874) ;; s7 is using the wrong formula? ;(num-test (acos 3/1) 0.0-1.76274717403909i) (num-test (acos 3/1) 0.0+1.76274717403909i) (num-test (acos -3/1) 3.14159265358979-1.76274717403909i) ;(num-test (acos 3/2) 0.0-0.96242365011921i) (num-test (acos 3/2) 0.0+0.96242365011921i) (num-test (acos -3/2) 3.14159265358979-0.96242365011921i) (num-test (acos 3/3) 0.0) (num-test (acos -3/3) pi) (num-test (acos 3/10) 1.26610367277950) (num-test (acos -3/10) 1.87548898081029) (num-test (acos 3/1234) 1.56836520608568) (num-test (acos -3/1234) 1.57322744750412) (num-test (acos 3/1234000000) 1.57079632436378) (num-test (acos -3/1234000000) 1.57079632922601) (num-test (acos 3/500029) 1.57079032714288) (num-test (acos -3/500029) 1.57080232644692) (num-test (acos 3/362880) 1.57078805959913-0.0i) (num-test (acos -3/362880) 1.57080459399066-0.0i) ;; Wrong formula? ;(num-test (acos 10/1) 0.0-2.99322284612638i) (num-test (acos 10/1) 0.0+2.99322284612638i) (num-test (acos -10/1) 3.14159265358979-2.99322284612638i) ;(num-test (acos 10/2) 0.0-2.29243166956117i) (num-test (acos 10/2) 0.0+2.29243166956117i) (num-test (acos -10/2) 3.14159265358979-2.29243166956117i) ;(num-test (acos 10/3) 0.0-1.87382024252741i) (num-test (acos 10/3) 0.0+1.87382024252741i) (num-test (acos -10/3) 3.14159265358979-1.87382024252741i) (num-test (acos 10/10) 0.0) (num-test (acos -10/10) pi) (num-test (acos 10/1234) 1.56269251038168) (num-test (acos -10/1234) 1.57890014320811) (num-test (acos 10/1234000000) 1.57079631869117) (num-test (acos -10/1234000000) 1.57079633489862) (num-test (acos 10/500029) 1.57077632795483) (num-test (acos -10/500029) 1.57081632563497) (num-test (acos 10/362880) 1.57076876947567) (num-test (acos -10/362880) 1.57082388411412) ;; s7 is using the wrong formula? ;(num-test (acos 1234/1) 0.0-7.81116322068415i) (num-test (acos 1234/1) 0.0+7.81116322068415i) (num-test (acos -1234/1) 3.14159265358979-7.81116322068415i) ;(num-test (acos 1234/2) 0.0-7.11801554770806i) (num-test (acos 1234/2) 0.0+7.11801554770806i) (num-test (acos -1234/2) 3.14159265358979-7.11801554770806i) ;(num-test (acos 1234/3) 0.0-6.71254961876657i) (num-test (acos 1234/3) 0.0+6.71254961876657i) (num-test (acos -1234/3) 3.14159265358979-6.71254961876657i) ;(num-test (acos 1234/10) 0.0-5.50856187402751i) (num-test (acos 1234/10) 0.0+5.50856187402751i) (num-test (acos -1234/10) 3.14159265358979-5.50856187402751i) (num-test (acos 1234/1234) 0.0) (num-test (acos -1234/1234) pi) (num-test (acos 1234/1234000000) 1.57079532679490) (num-test (acos -1234/1234000000) 1.57079732679490) (num-test (acos 1234/500029) 1.56832846742558) (num-test (acos -1234/500029) 1.57326418616421) (num-test (acos 1234/362880) 1.56739574704864) (num-test (acos -1234/362880) 1.57419690654115) (num-test (acos 1234000000/1234000000) 0.0) (num-test (acos -1234000000/1234000000) pi) ;; s7 is using the wrong formula? ;(num-test (acos 1234000000/500029) 0.0-8.50425252675189i) (num-test (acos 1234000000/500029) 0.0+8.50425252675189i) (num-test (acos -1234000000/500029) 3.14159265358979-8.50425252675189i) ;(num-test (acos 1234000000/362880) 0.0-8.82484644053502i) (num-test (acos 1234000000/362880) 0.0+8.82484644053502i) (num-test (acos -1234000000/362880) 3.14159265358979-8.82484644053502i) (num-test (acos 500029/3) 0+12.7169561400958i) (num-test (acos -500029/3) 3.14159265358979-12.7169561400958i) (num-test (acos 500029/10) 0.0+11.51298346318831i) ; maxima (num-test (acos -500029/10) 3.14159265358979-11.51298333576987i) ;(num-test (acos 500029/1234) 0.0-6.69755082925184i) (num-test (acos 500029/1234) 0.0+6.69755082925184i) (num-test (acos -500029/1234) 3.14159265358979-6.69755082925184i) (num-test (acos 500029/1234000000) 1.57039111689726) (num-test (acos -500029/1234000000) 1.57120153669253) (num-test (acos 500029/500029) 0.0) (num-test (acos -500029/500029) pi) ;(num-test (acos 500029/362880) 0.0-0.84413377868249i) (num-test (acos 500029/362880) 0.0+0.84413377868249i) (num-test (acos -500029/362880) 3.14159265358979-0.84413377868249i) (num-test (acos 362880/2) 0.0+1.280182724631953e1i) (num-test (acos -362880/2) 3.141592653589793-12.80182748007388i) (num-test (acos 362880/3) 0.0+12.39636237195622i) (num-test (acos -362880/3) 3.141592653589793-12.39636237195622i) ;(num-test (acos 362880/10) 0.0-11.19238956745752i) (num-test (acos 362880/10) 0.0+11.19238956745752i) (num-test (acos -362880/10) 3.14159265358979-11.19238956745752i) ;(num-test (acos 362880/1234) 0.0-6.37695556516894i) (num-test (acos 362880/1234) 0.0+6.37695556516894i) (num-test (acos -362880/1234) 3.14159265358979-6.37695556516894i) (num-test (acos 362880/1234000000) 1.57050225871935) (num-test (acos -362880/1234000000) 1.57109039487045) (num-test (acos 362880/500029) 0.75871902295910) (num-test (acos -362880/500029) 2.38287363063069) (num-test (acos 362880/362880) 0.0) (num-test (acos -362880/362880) pi) (num-test (acos 0.0) 1.57079632679490) (num-test (acos 0.00000001) 1.57079631679490) (num-test (acos -0.00000001) 1.57079633679490) (num-test (acos 1.0) 0.0) (num-test (acos -1.0) pi) ;(num-test (acos pi) 0.0-1.81152627246085i) (num-test (acos pi) 0.0+1.81152627246085i) (num-test (acos -3.14159265358979) 3.14159265358979-1.81152627246085i) ;(num-test (acos 2.71828182845905) 0.0-1.65745445415308i) (num-test (acos 2.71828182845905) 0.0+1.65745445415308i) (num-test (acos -2.71828182845905) 3.14159265358979-1.65745445415308i) ;(num-test (acos 1234.0) 0.0-7.81116322068415i) (num-test (acos 1234.0) 0.0+7.81116322068415i) (num-test (acos -1234.0) 3.14159265358979-7.81116322068415i) (num-test (acos 0.0+0.0i) 1.57079632679490) (num-test (acos -0.0+0.0i) 1.57079632679490) (num-test (acos 0.0-0.0i) 1.57079632679490) (num-test (acos -0.0-0.0i) 1.57079632679490) (num-test (acos 0.0+0.00000001i) 1.57079632679490-0.00000001i) (num-test (acos -0.0+0.00000001i) 1.57079632679490-0.00000001i) (num-test (acos 0.0-0.00000001i) 1.57079632679490+0.00000001i) (num-test (acos -0.0-0.00000001i) 1.57079632679490+0.00000001i) (num-test (acos 0.0+1.0i) 1.57079632679490-0.88137358701954i) (num-test (acos -0.0+1.0i) 1.57079632679490-0.88137358701954i) (num-test (acos 0.0-1.0i) 1.57079632679490+0.88137358701954i) (num-test (acos -0.0-1.0i) 1.57079632679490+0.88137358701954i) (num-test (acos 0.0+3.14159265358979i) 1.57079632679490-1.86229574331085i) (num-test (acos -0.0+3.14159265358979i) 1.57079632679490-1.86229574331085i) (num-test (acos 0.0-3.14159265358979i) 1.57079632679490+1.86229574331085i) (num-test (acos -0.0-3.14159265358979i) 1.57079632679490+1.86229574331085i) (num-test (acos 0.0+2.71828182845905i) 1.57079632679490-1.72538255885232i) (num-test (acos -0.0+2.71828182845905i) 1.57079632679490-1.72538255885232i) (num-test (acos 0.0-2.71828182845905i) 1.57079632679490+1.72538255885231i) (num-test (acos -0.0-2.71828182845905i) 1.57079632679490+1.72538255885231i) (num-test (acos 0.0+1234.0i) 1.57079632679490-7.81116354896171i) (num-test (acos -0.0+1234.0i) 1.57079632679490-7.81116354896171i) (num-test (acos 0.0-1234.0i) 1.57079632679490+7.81116354920125i) (num-test (acos -0.0-1234.0i) 1.57079632679490+7.81116354920125i) (num-test (acos 0.0-1234000000.0i) 1.57079632679490+21.62667394298955i) (num-test (acos -0.0-1234000000.0i) 1.57079632679490+21.62667394298955i) (num-test (acos 0.00000001+0.0i) 1.57079631679490) (num-test (acos -0.00000001+0.0i) 1.57079633679490) (num-test (acos 0.00000001-0.0i) 1.57079631679490) (num-test (acos -0.00000001-0.0i) 1.57079633679490) (num-test (acos 0.00000001+0.00000001i) 1.57079631679490-0.00000001i) (num-test (acos -0.00000001+0.00000001i) 1.57079633679490-0.00000001i) (num-test (acos 0.00000001-0.00000001i) 1.57079631679490+0.00000001i) (num-test (acos -0.00000001-0.00000001i) 1.57079633679490+0.00000001i) (num-test (acos 0.00000001+1.0i) 1.57079631972383-0.88137358701954i) (num-test (acos -0.00000001+1.0i) 1.57079633386596-0.88137358701954i) (num-test (acos 0.00000001-1.0i) 1.57079631972383+0.88137358701954i) (num-test (acos -0.00000001-1.0i) 1.57079633386596+0.88137358701954i) (num-test (acos 0.00000001+3.14159265358979i) 1.57079632376175-1.86229574331085i) (num-test (acos -0.00000001+3.14159265358979i) 1.57079632982804-1.86229574331085i) (num-test (acos 0.00000001-3.14159265358979i) 1.57079632376175+1.86229574331085i) (num-test (acos -0.00000001-3.14159265358979i) 1.57079632982804+1.86229574331085i) (num-test (acos 0.00000001+2.71828182845905i) 1.57079632334232-1.72538255885232i) (num-test (acos -0.00000001+2.71828182845905i) 1.57079633024747-1.72538255885232i) (num-test (acos 0.00000001-2.71828182845905i) 1.57079632334232+1.72538255885231i) (num-test (acos -0.00000001-2.71828182845905i) 1.57079633024747+1.72538255885231i) (num-test (acos 0.00000001+1234.0i) 1.57079632678679-7.81116354896171i) (num-test (acos -0.00000001+1234.0i) 1.57079632680300-7.81116354896171i) (num-test (acos 0.00000001-1234.0i) 1.57079632678679+7.81116354920125i) (num-test (acos -0.00000001-1234.0i) 1.57079632680300+7.81116354920125i) (num-test (acos 0.00000001-1234000000.0i) 1.57079632679490+21.62667394298955i) (num-test (acos -0.00000001-1234000000.0i) 1.57079632679490+21.62667394298955i) (num-test (acos 1.0+0.0i) 0.0) (num-test (acos -1.0+0.0i) pi) (num-test (acos 1.0-0.0i) 0.0) (num-test (acos -1.0-0.0i) pi) (num-test (acos 1.0+0.00000001i) 0.00009999999992-0.00010000000008i) (num-test (acos -1.0+0.00000001i) 3.14149265358988-0.00010000000008i) (num-test (acos 1.0-0.00000001i) 0.00009999999992+0.00010000000008i) (num-test (acos -1.0-0.00000001i) 3.14149265358988+0.00010000000008i) (num-test (acos 1.0+1.0i) 0.90455689430238-1.06127506190504i) (num-test (acos -1.0+1.0i) 2.23703575928741-1.06127506190504i) (num-test (acos 1.0-1.0i) 0.90455689430238+1.06127506190504i) (num-test (acos -1.0-1.0i) 2.23703575928741+1.06127506190504i) (num-test (acos 1.0+3.14159265358979i) 1.27521129258327-1.90462768697066i) (num-test (acos -1.0+3.14159265358979i) 1.86638136100653-1.90462768697066i) (num-test (acos 1.0-3.14159265358979i) 1.27521129258327+1.90462768697066i) (num-test (acos -1.0-3.14159265358979i) 1.86638136100653+1.90462768697066i) (num-test (acos 1.0+2.71828182845905i) 1.23635355491853-1.77905438385935i) (num-test (acos -1.0+2.71828182845905i) 1.90523909867127-1.77905438385935i) (num-test (acos 1.0-2.71828182845905i) 1.23635355491853+1.77905438385935i) (num-test (acos -1.0-2.71828182845905i) 1.90523909867127+1.77905438385935i) (num-test (acos 1.0+1234.0i) 1.56998595446684-7.81116387772663i) (num-test (acos -1.0+1234.0i) 1.57160669912296-7.81116387772663i) (num-test (acos 1.0-1234.0i) 1.56998595446690+7.81116387755283i) (num-test (acos -1.0-1234.0i) 1.57160669912289+7.81116387755283i) (num-test (acos 1.0-1234000000.0i) 1.57079632598452+21.62667394298955i) (num-test (acos -1.0-1234000000.0i) 1.57079632760527+21.62667394298955i) ;; s7 is using the wrong formula? ;(num-test (acos 3.14159265358979+0.0i) 0.0-1.81152627246085i) (num-test (acos 3.14159265358979+0.0i) 0.0+1.81152627246085i) (num-test (acos -3.14159265358979+0.0i) 3.14159265358979-1.81152627246085i) ;(num-test (acos 3.14159265358979-0.0i) 0.0-1.81152627246085i) (num-test (acos 3.14159265358979-0.0i) 0.0+1.81152627246085i) (num-test (acos -3.14159265358979-0.0i) 3.14159265358979-1.81152627246085i) (num-test (acos 3.14159265358979+0.00000001i) 0.00000000335775-1.81152627246085i) (num-test (acos -3.14159265358979+0.00000001i) 3.14159265023205-1.81152627246085i) (num-test (acos 3.14159265358979-0.00000001i) 0.00000000335775+1.81152627246085i) (num-test (acos -3.14159265358979-0.00000001i) 3.14159265023205+1.81152627246085i) (num-test (acos 3.14159265358979+1.0i) 0.32225329398146-1.86711439316026i) (num-test (acos -3.14159265358979+1.0i) 2.81933935960833-1.86711439316026i) (num-test (acos 3.14159265358979-1.0i) 0.32225329398146+1.86711439316026i) (num-test (acos -3.14159265358979-1.0i) 2.81933935960833+1.86711439316026i) (num-test (acos 3.14159265358979+3.14159265358979i) 0.79805654766741-2.18469104082751i) (num-test (acos -3.14159265358979+3.14159265358979i) 2.34353610592238-2.18469104082751i) (num-test (acos 3.14159265358979-3.14159265358979i) 0.79805654766741+2.18469104082751i) (num-test (acos -3.14159265358979-3.14159265358979i) 2.34353610592238+2.18469104082751i) (num-test (acos 3.14159265358979+2.71828182845905i) 0.72769976263454-2.11552790803290i) (num-test (acos -3.14159265358979+2.71828182845905i) 2.41389289095525-2.11552790803290i) (num-test (acos 3.14159265358979-2.71828182845905i) 0.72769976263454+2.11552790803290i) (num-test (acos -3.14159265358979-2.71828182845905i) 2.41389289095525+2.11552790803290i) (num-test (acos 3.14159265358979+1234.0i) 1.56825047198589-7.81116678966949i) (num-test (acos -3.14159265358979+1234.0i) 1.57334218160390-7.81116678966949i) (num-test (acos 3.14159265358979-1234.0i) 1.56825047198552+7.81116678989204i) (num-test (acos -3.14159265358979-1234.0i) 1.57334218160427+7.81116678989204i) (num-test (acos 3.14159265358979-1234000000.0i) 1.57079632424904+21.62667394298955i) (num-test (acos -3.14159265358979-1234000000.0i) 1.57079632934076+21.62667394298955i) ;(num-test (acos 2.71828182845905+0.0i) 0.0-1.65745445415308i) (num-test (acos 2.71828182845905+0.0i) 0.0+1.65745445415308i) (num-test (acos -2.71828182845905+0.0i) 3.14159265358979-1.65745445415308i) ;(num-test (acos 2.71828182845905-0.0i) 0.0-1.65745445415308i) (num-test (acos 2.71828182845905-0.0i) 0.0+1.65745445415308i) (num-test (acos -2.71828182845905-0.0i) 3.14159265358979-1.65745445415308i) (num-test (acos 2.71828182845905+0.00000001i) 0.00000000395623-1.65745445415308i) (num-test (acos -2.71828182845905+0.00000001i) 3.14159264963356-1.65745445415308i) (num-test (acos 2.71828182845905-0.00000001i) 0.00000000395623+1.65745445415308i) (num-test (acos -2.71828182845905-0.00000001i) 3.14159264963356+1.65745445415308i) (num-test (acos 2.71828182845905+1.0i) 0.37321824160908-1.73375471569385i) (num-test (acos -2.71828182845905+1.0i) 2.76837441198071-1.73375471569385i) (num-test (acos 2.71828182845905-1.0i) 0.37321824160908+1.73375471569385i) (num-test (acos -2.71828182845905-1.0i) 2.76837441198071+1.73375471569385i) (num-test (acos 2.71828182835905+3.14159265358979i) 0.87174835684834-2.11968336368048i) (num-test (acos -2.71828182845905+3.14159265358979i) 2.26984429674145-2.11968336368048i) (num-test (acos 2.71828182845905-3.14159265358979i) 0.87174835684834+2.11968336368048i) (num-test (acos -2.71828182845905-3.14159265358979i) 2.26984429674145+2.11968336368048i) (num-test (acos 2.71828182845905+2.71828182845905i) 0.80229897091015-2.04014932880026i) (num-test (acos -2.71828182845905+2.71828182845905i) 2.33929368267965-2.04014932880026i) (num-test (acos 2.71828182845905-2.71828182845905i) 0.80229897091014+2.04014932880026i) (num-test (acos -2.71828182845905-2.71828182845905i) 2.33929368267965+2.04014932880026i) (num-test (acos 2.71828182845905+1234.0i) 1.56859350950254-7.81116597510553i) (num-test (acos -2.71828182845905+1234.0i) 1.57299914408725-7.81116597510553i) (num-test (acos 2.71828182845905-1234.0i) 1.56859350950221+7.81116597540442i) (num-test (acos -2.71828182845905-1234.0i) 1.57299914408758+7.81116597540442i) (num-test (acos 2.71828182845905-1234000000.0i) 1.57079632459208+21.62667394298955i) (num-test (acos -2.71828182845905-1234000000.0i) 1.57079632899772+21.62667394298955i) ;(num-test (acos 1234.0+0.0i) 0.0-7.81116322068415i) (num-test (acos 1234.0+0.0i) 0.0+7.81116322068415i) (num-test (acos -1234.0+0.0i) 3.14159265358979-7.81116322068415i) ;(num-test (acos 1234.0-0.0i) 0.0-7.81116322068415i) (num-test (acos 1234.0-0.0i) 0.0+7.81116322068415i) (num-test (acos -1234.0-0.0i) 3.14159265358979-7.81116322068415i) (num-test (acos 1234.0+0.00000001i) 0.00000000000810-7.81116322068415i) (num-test (acos -1234.0+0.00000001i) 3.14159265358169-7.81116322068415i) (num-test (acos 1234.0-0.00000001i) 0.00000000000810+7.81116322084923i) (num-test (acos -1234.0-0.00000001i) 3.14159265358169+7.81116322084923i) (num-test (acos 1234.0+1.0i) 0.00081037286048-7.81116354944842i) (num-test (acos -1234.0+1.0i) 3.14078228072931-7.81116354944842i) (num-test (acos 1234.0-1.0i) 0.00081037286017+7.81116354920146i) (num-test (acos -1234.0-1.0i) 3.14078228072962+7.81116354920146i) (num-test (acos 1234.0+3.14159265358979i) 0.00254585647983-7.81116646138554i) (num-test (acos -1234.0+3.14159265358979i) 3.13904679710996-7.81116646138554i) (num-test (acos 1234.0-3.14159265358979i) 0.00254585648123+7.81116646154641i) (num-test (acos -1234.0-3.14159265358979i) 3.13904679710856+7.81116646154641i) (num-test (acos 1234.0+2.71828182845905i) 0.00220281873947-7.81116564738434i) (num-test (acos -1234.0+2.71828182845905i) 3.13938983485033-7.81116564738434i) (num-test (acos 1234.0-2.71828182845905i) 0.00220281873928+7.81116564705719i) (num-test (acos -1234.0-2.71828182845905i) 3.13938983485052+7.81116564705719i) (num-test (acos 1234.0+1234.0i) 0.78539824532655-8.15773697538346i) (num-test (acos -1234.0+1234.0i) 2.35619440826324-8.15773697538346i) (num-test (acos 1234.0-1234.0i) 0.78539824548545+8.15773697530526i) (num-test (acos -1234.0-1234.0i) 2.35619440810434+8.15773697530526i) (num-test (acos 1234.0-1234000000.0i) 1.57079532679490+21.62667394299005i) (num-test (acos -1234.0-1234000000.0i) 1.57079732679490+21.62667394299005i) (num-test (acos 1234000000.0-0.00000001i) 0.0+21.62667394298955i) (num-test (acos -1234000000.0-0.00000001i) 3.14159265358979+21.62667394298955i) (num-test (acos 1234000000.0-1.0i) 0.00000000081037+21.62667394298955i) (num-test (acos -1234000000.0-1.0i) 3.14159265277942+21.62667394298955i) (num-test (acos 1234000000.0-3.14159265358979i) 0.00000000254586+21.62667394298955i) (num-test (acos -1234000000.0-3.14159265358979i) 3.14159265104393+21.62667394298955i) (num-test (acos 1234000000.0-2.71828182845905i) 0.00000000220282+21.62667394298955i) (num-test (acos -1234000000.0-2.71828182845905i) 3.14159265138697+21.62667394298955i) (num-test (acos 1234000000.0-1234.0i) 0.00000100000000+21.62667394299005i) (num-test (acos -1234000000.0-1234.0i) 3.14159165358979+21.62667394299005i) (num-test (acos 1234000000.0-1234000000.0i) 0.78539816339745+21.97324753326953i) (num-test (acos -1234000000.0-1234000000.0i) 2.35619449019234+21.97324753326953i) (num-test (acos -2.0) 3.141592653589793-1.316957896924817i) ;; (num-test (acos 3.0+70000000i) 1.570796283937754+18.7571529895002i) ; C breaks near here ;; (num-test (acos 70000000+3i) 4.725807101202406E-8-18.75715298057358i) ;; (num-test (acos 3.0-70000000i) 1.570796283937754+18.7571529895002i) ;; (num-test (acos -70000000+3i) 3.141592606331722-18.75715298057358i) (num-test (acos 1.5) 0.0+0.9624236501192069i) (num-test (acos -1.5) 3.141592653589793-0.9624236501192069i) (num-test (acos -1.0e+01) 3.1415926535897932385e0-2.9932228461263808979e0i) (num-test (acos -2.0e+00) 3.1415926535897932385e0-1.3169578969248167086e0i) (num-test (acos -1.0e+00) 3.1415926535897932385e0) (num-test (acos -7.50e-01) 2.4188584057763776273e0) (num-test (acos -5.0e-01) 2.0943951023931954923e0) (num-test (acos -1.250e-01) 1.6961241579629620161e0) (num-test (acos -3.45266983001243932001e-04) 1.5711415937847577022e0) (num-test (acos -1.19209289550781250e-07) 1.570796446004186170e0) (num-test (acos 0.0e+00) 1.5707963267948966192e0) (num-test (acos 1.19209289550781250e-07) 1.5707962075856070684e0) (num-test (acos 3.45266983001243932001e-04) 1.5704510598050355363e0) (num-test (acos 1.250e-01) 1.4454684956268312224e0) (num-test (acos 5.0e-01) 1.0471975511965977462e0) (num-test (acos 7.50e-01) 7.2273424781341561118e-1) (num-test (acos 1.0e+00) 0e0) (num-test (acos 2.0e+00) 0+1.3169578969248167086e0i) (num-test (acos 1.0e+01) 0+2.9932228461263808979e0i) (num-test (acos 0.0e+00+0.0e+00i) 1.5707963267948966192e0) (num-test (acos 0.0e+00+1.19209289550781250e-07i) 1.5707963267948966192e0-1.1920928955078096766e-7i) (num-test (acos 0.0e+00-1.19209289550781250e-07i) 1.5707963267948966192e0+1.1920928955078096766e-7i) (num-test (acos 0.0e+00+5.0e-01i) 1.5707963267948966192e0-4.8121182505960344750e-1i) (num-test (acos 0.0e+00-5.0e-01i) 1.5707963267948966192e0+4.8121182505960344750e-1i) (num-test (acos 0.0e+00+1.0e+00i) 1.5707963267948966192e0-8.8137358701954302523e-1i) (num-test (acos 0.0e+00-1.0e+00i) 1.5707963267948966192e0+8.8137358701954302523e-1i) (num-test (acos 0.0e+00+2.0e+00i) 1.5707963267948966192e0-1.4436354751788103425e0i) (num-test (acos 0.0e+00-2.0e+00i) 1.5707963267948966192e0+1.4436354751788103425e0i) (num-test (acos 0.0e+00+8.3886080e+06i) 1.5707963267948966192e0-1.6635532333438690979e1i) (num-test (acos 0.0e+00-8.3886080e+06i) 1.5707963267948966192e0+1.6635532333438690979e1i) (num-test (acos 1.19209289550781250e-07+0.0e+00i) 1.5707962075856070684e0) (num-test (acos -1.19209289550781250e-07+0.0e+00i) 1.570796446004186170e0) (num-test (acos 1.19209289550781250e-07+1.19209289550781250e-07i) 1.5707962075856070685e0-1.1920928955078181469e-7i) (num-test (acos 1.19209289550781250e-07-1.19209289550781250e-07i) 1.5707962075856070685e0+1.1920928955078181469e-7i) (num-test (acos -1.19209289550781250e-07+1.19209289550781250e-07i) 1.570796446004186170e0-1.1920928955078181469e-7i) (num-test (acos -1.19209289550781250e-07-1.19209289550781250e-07i) 1.570796446004186170e0+1.1920928955078181469e-7i) (num-test (acos 1.19209289550781250e-07+5.0e-01i) 1.5707962201708666252e0-4.8121182505960598961e-1i) (num-test (acos 1.19209289550781250e-07-5.0e-01i) 1.5707962201708666252e0+4.8121182505960598961e-1i) (num-test (acos -1.19209289550781250e-07+5.0e-01i) 1.5707964334189266132e0-4.8121182505960598961e-1i) (num-test (acos -1.19209289550781250e-07-5.0e-01i) 1.5707964334189266132e0+4.8121182505960598961e-1i) (num-test (acos 1.19209289550781250e-07+1.0e+00i) 1.5707962425011995974e0-8.8137358701954553738e-1i) (num-test (acos 1.19209289550781250e-07-1.0e+00i) 1.5707962425011995974e0+8.8137358701954553738e-1i) (num-test (acos -1.19209289550781250e-07+1.0e+00i) 1.5707964110885936410e0-8.8137358701954553738e-1i) (num-test (acos -1.19209289550781250e-07-1.0e+00i) 1.5707964110885936410e0+8.8137358701954553738e-1i) (num-test (acos 1.19209289550781250e-07+2.0e+00i) 1.5707962734828816222e0-1.4436354751788116136e0i) (num-test (acos 1.19209289550781250e-07-2.0e+00i) 1.5707962734828816222e0+1.4436354751788116136e0i) (num-test (acos -1.19209289550781250e-07+2.0e+00i) 1.5707963801069116162e0-1.4436354751788116136e0i) (num-test (acos -1.19209289550781250e-07-2.0e+00i) 1.5707963801069116162e0+1.4436354751788116136e0i) (num-test (acos 1.19209289550781250e-07+8.3886080e+06i) 1.5707963267948824084e0-1.6635532333438690979e1i) (num-test (acos 1.19209289550781250e-07-8.3886080e+06i) 1.5707963267948824084e0+1.6635532333438690979e1i) (num-test (acos -1.19209289550781250e-07+8.3886080e+06i) 1.5707963267949108301e0-1.6635532333438690979e1i) (num-test (acos -1.19209289550781250e-07-8.3886080e+06i) 1.5707963267949108301e0+1.6635532333438690979e1i) (num-test (acos 5.0e-01+0.0e+00i) 1.0471975511965977462e0) (num-test (acos -5.0e-01+0.0e+00i) 2.0943951023931954923e0) (num-test (acos 5.0e-01+1.19209289550781250e-07i) 1.0471975511966032159e0-1.3765103082409432364e-7i) (num-test (acos 5.0e-01-1.19209289550781250e-07i) 1.0471975511966032159e0+1.3765103082409432364e-7i) (num-test (acos -5.0e-01+1.19209289550781250e-07i) 2.0943951023931900225e0-1.3765103082409432364e-7i) (num-test (acos -5.0e-01-1.19209289550781250e-07i) 2.0943951023931900225e0+1.3765103082409432364e-7i) (num-test (acos 5.0e-01+5.0e-01i) 1.1185178796437059372e0-5.3063753095251782602e-1i) (num-test (acos 5.0e-01-5.0e-01i) 1.1185178796437059372e0+5.3063753095251782602e-1i) (num-test (acos -5.0e-01+5.0e-01i) 2.0230747739460873013e0-5.3063753095251782602e-1i) (num-test (acos -5.0e-01-5.0e-01i) 2.0230747739460873013e0+5.3063753095251782602e-1i) (num-test (acos 5.0e-01+1.0e+00i) 1.2213572639376833256e0-9.2613303135018242455e-1i) (num-test (acos 5.0e-01-1.0e+00i) 1.2213572639376833256e0+9.2613303135018242455e-1i) (num-test (acos -5.0e-01+1.0e+00i) 1.9202353896521099129e0-9.2613303135018242455e-1i) (num-test (acos -5.0e-01-1.0e+00i) 1.9202353896521099129e0+9.2613303135018242455e-1i) (num-test (acos 5.0e-01+2.0e+00i) 1.3497776911720127603e0-1.4657153519472905218e0i) (num-test (acos 5.0e-01-2.0e+00i) 1.3497776911720127603e0+1.4657153519472905218e0i) (num-test (acos -5.0e-01+2.0e+00i) 1.7918149624177804781e0-1.4657153519472905218e0i) (num-test (acos -5.0e-01-2.0e+00i) 1.7918149624177804781e0+1.4657153519472905218e0i) (num-test (acos 5.0e-01+8.3886080e+06i) 1.5707962671902518438e0-1.6635532333438692755e1i) (num-test (acos 5.0e-01-8.3886080e+06i) 1.5707962671902518438e0+1.6635532333438692755e1i) (num-test (acos -5.0e-01+8.3886080e+06i) 1.5707963863995413946e0-1.6635532333438692755e1i) (num-test (acos -5.0e-01-8.3886080e+06i) 1.5707963863995413946e0+1.6635532333438692755e1i) (num-test (acos 1.0e+00+0.0e+00i) 0e0) (num-test (acos -1.0e+00+0.0e+00i) 3.1415926535897932385e0) (num-test (acos 1.0e+00+1.19209289550781250e-07i) 3.4526697957132450399e-4-3.4526698643116312881e-4i) (num-test (acos 1.0e+00-1.19209289550781250e-07i) 3.4526697957132450399e-4+3.4526698643116312881e-4i) (num-test (acos -1.0e+00+1.19209289550781250e-07i) 3.1412473866102219140e0-3.4526698643116312881e-4i) (num-test (acos -1.0e+00-1.19209289550781250e-07i) 3.1412473866102219140e0+3.4526698643116312881e-4i) (num-test (acos 1.0e+00+5.0e-01i) 6.7488884558600638016e-1-7.3285767597364526089e-1i) (num-test (acos 1.0e+00-5.0e-01i) 6.7488884558600638016e-1+7.3285767597364526089e-1i) (num-test (acos -1.0e+00+5.0e-01i) 2.4667038080037868583e0-7.3285767597364526089e-1i) (num-test (acos -1.0e+00-5.0e-01i) 2.4667038080037868583e0+7.3285767597364526089e-1i) (num-test (acos 1.0e+00+1.0e+00i) 9.0455689430238136413e-1-1.0612750619050356520e0i) (num-test (acos 1.0e+00-1.0e+00i) 9.0455689430238136413e-1+1.0612750619050356520e0i) (num-test (acos -1.0e+00+1.0e+00i) 2.2370357592874118743e0-1.0612750619050356520e0i) (num-test (acos -1.0e+00-1.0e+00i) 2.2370357592874118743e0+1.0612750619050356520e0i) (num-test (acos 1.0e+00+2.0e+00i) 1.1437177404024204938e0-1.5285709194809981613e0i) (num-test (acos 1.0e+00-2.0e+00i) 1.1437177404024204938e0+1.5285709194809981613e0i) (num-test (acos -1.0e+00+2.0e+00i) 1.9978749131873727447e0-1.5285709194809981613e0i) (num-test (acos -1.0e+00-2.0e+00i) 1.9978749131873727447e0+1.5285709194809981613e0i) (num-test (acos 1.0e+00+8.3886080e+06i) 1.5707962075856070685e0-1.6635532333438698084e1i) (num-test (acos 1.0e+00-8.3886080e+06i) 1.5707962075856070685e0+1.6635532333438698084e1i) (num-test (acos -1.0e+00+8.3886080e+06i) 1.570796446004186170e0-1.6635532333438698084e1i) (num-test (acos -1.0e+00-8.3886080e+06i) 1.570796446004186170e0+1.6635532333438698084e1i) (num-test (acos 2.0e+00+0.0e+00i) 0+1.3169578969248167086e0i) (num-test (acos -2.0e+00+0.0e+00i) 3.1415926535897932385e0-1.3169578969248167086e0i) (num-test (acos 2.0e+00+1.19209289550781250e-07i) 6.8825515412047433504e-8-1.3169578969248194435e0i) (num-test (acos 2.0e+00-1.19209289550781250e-07i) 6.8825515412047433504e-8+1.3169578969248194435e0i) (num-test (acos -2.0e+00+1.19209289550781250e-07i) 3.1415925847642778264e0-1.3169578969248194435e0i) (num-test (acos -2.0e+00-1.19209289550781250e-07i) 3.1415925847642778264e0+1.3169578969248194435e0i) (num-test (acos 2.0e+00+5.0e-01i) 2.7775425655771396018e-1-1.3618009008578457882e0i) (num-test (acos 2.0e+00-5.0e-01i) 2.7775425655771396018e-1+1.3618009008578457882e0i) (num-test (acos -2.0e+00+5.0e-01i) 2.8638383970320792783e0-1.3618009008578457882e0i) (num-test (acos -2.0e+00-5.0e-01i) 2.8638383970320792783e0+1.3618009008578457882e0i) (num-test (acos 2.0e+00+1.0e+00i) 5.0735630321714456304e-1-1.4693517443681852733e0i) (num-test (acos 2.0e+00-1.0e+00i) 5.0735630321714456304e-1+1.4693517443681852733e0i) (num-test (acos -2.0e+00+1.0e+00i) 2.6342363503726486754e0-1.4693517443681852733e0i) (num-test (acos -2.0e+00-1.0e+00i) 2.6342363503726486754e0+1.4693517443681852733e0i) (num-test (acos 2.0e+00+2.0e+00i) 8.1654718209685057852e-1-1.7343245214879664480e0i) (num-test (acos 2.0e+00-2.0e+00i) 8.1654718209685057852e-1+1.7343245214879664480e0i) (num-test (acos -2.0e+00+2.0e+00i) 2.3250454714929426599e0-1.7343245214879664480e0i) (num-test (acos -2.0e+00-2.0e+00i) 2.3250454714929426599e0+1.7343245214879664480e0i) (num-test (acos 2.0e+00+8.3886080e+06i) 1.5707960883763175177e0-1.663553233343871940e1i) (num-test (acos 2.0e+00-8.3886080e+06i) 1.5707960883763175177e0+1.663553233343871940e1i) (num-test (acos -2.0e+00+8.3886080e+06i) 1.5707965652134757208e0-1.663553233343871940e1i) (num-test (acos -2.0e+00-8.3886080e+06i) 1.5707965652134757208e0+1.663553233343871940e1i) (num-test (acos 8.3886080e+06+0.0e+00i) 0+1.6635532333438683873e1i) (num-test (acos -8.3886080e+06+0.0e+00i) 3.1415926535897932385e0-1.6635532333438683873e1i) ;; XXX precision problem/overflow? ;; (num-test (acos 8.3886080e+06+1.19209289550781250e-07i) 1.4210854715202104692e-14-1.6635532333438683873e1i) ;; (num-test (acos 8.3886080e+06-1.19209289550781250e-07i) 1.4210854715202104692e-14+1.6635532333438683873e1i) ;; (num-test (acos -8.3886080e+06+1.19209289550781250e-07i) 3.1415926535897790276e0-1.6635532333438683873e1i) ;; (num-test (acos -8.3886080e+06-1.19209289550781250e-07i) 3.1415926535897790276e0+1.6635532333438683873e1i) ;; (num-test (acos 8.3886080e+06+5.0e-01i) 5.9604644775390977930e-8-1.6635532333438685650e1i) ;; (num-test (acos 8.3886080e+06-5.0e-01i) 5.9604644775390977930e-8+1.6635532333438685650e1i) ;; (num-test (acos -8.3886080e+06+5.0e-01i) 3.1415925939851484631e0-1.6635532333438685650e1i) ;; (num-test (acos -8.3886080e+06-5.0e-01i) 3.1415925939851484631e0+1.6635532333438685650e1i) ;; (num-test (acos 8.3886080e+06+1.0e+00i) 1.1920928955078153234e-7-1.6635532333438690979e1i) ;; (num-test (acos 8.3886080e+06-1.0e+00i) 1.1920928955078153234e-7+1.6635532333438690979e1i) ;; (num-test (acos -8.3886080e+06+1.0e+00i) 3.1415925343805036877e0-1.6635532333438690979e1i) ;; (num-test (acos -8.3886080e+06-1.0e+00i) 3.1415925343805036877e0+1.6635532333438690979e1i) ;; (num-test (acos 8.3886080e+06+2.0e+00i) 2.3841857910155967656e-7-1.6635532333438712295e1i) ;; (num-test (acos 8.3886080e+06-2.0e+00i) 2.3841857910155967656e-7+1.6635532333438712295e1i) ;; (num-test (acos -8.3886080e+06+2.0e+00i) 3.1415924151712141369e0-1.6635532333438712295e1i) ;; (num-test (acos -8.3886080e+06-2.0e+00i) 3.1415924151712141369e0+1.6635532333438712295e1i) ;; (num-test (acos 8.3886080e+06+8.3886080e+06i) 7.8539816339745008597e-1-1.6982105923718660081e1i) ;; (num-test (acos 8.3886080e+06-8.3886080e+06i) 7.8539816339745008597e-1+1.6982105923718660081e1i) ;; (num-test (acos -8.3886080e+06+8.3886080e+06i) 2.3561944901923431525e0-1.6982105923718660081e1i) ;; (num-test (acos -8.3886080e+06-8.3886080e+06i) 2.3561944901923431525e0+1.6982105923718660081e1i) ;; (num-test (acos 1234000000/3) 0+20.52806165432143i) ;; (num-test (acos 0.00000001+1234000000.0i) 1.570796326794897-21.62667380877375i) ;; (num-test (acos 3.14159265358979+1234000000.0i) 1.570796324249036-21.62667380877375i) ;; (num-test (acos 2.71828182845905+1234000000.0i) 1.570796324592076-21.62667380877375i) ;; (num-test (acos 1234000000.0+0.00000001i) -4.051865509779873E-10-21.62667394298955i) ;; (num-test (acos 1234000000.0+3.14159265358979i) -4.051865509779873E-10-21.62667394298955i) ;; (num-test (acos 1234000000.0+2.71828182845905i) -4.051865509779873E-10-21.62667394298955i) (num-test (acos -64983.97009220963-48983.30494825104i) 2.495679792792491+12.0i) (num-test (acos -2.225073858507201399999999999999999999996E-308) 1.570796326794896619231321691639751442098E0) (num-test (acos 1.110223024625156799999999999999999999997E-16) 1.570796326794896508209019229124071442098E0) (num-test (acos (/ (sqrt 2) 2)) (/ pi 4)) (num-test (acos (/ (sqrt 3) -2)) (- pi (/ pi 6))) (num-test (acos 1.00001) 0.0+0.004472132228240686i) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 acos num (acos num) val))) (list (list 0 1.5707963267949) (list 1 0) (list 2 0+1.3169578969248i) (list 3 0+1.7627471740391i) (list -1 3.1415926535898) (list -2 3.1415926535898-1.3169578969248i) (list -3 3.1415926535898-1.7627471740391i) (list 9223372036854775807 0+44.361419555836i) (list -9223372036854775808 3.1415926535898-44.361419555836i) (list 1/2 1.0471975511966) (list 1/3 1.2309594173408) (list -1/2 2.0943951023932) (list -1/3 1.910633236249) (list 1/9223372036854775807 1.5707963267949) (list 0.0 1.5707963267949) (list 1.0 0.0) (list 2.0 0+1.3169578969248i) (list -2.0 3.1415926535898-1.3169578969248i) (list 1.000000000000000000000000000000000000002E-309 1.570796326794896619231321691639751442098E0) (list 1e+16 0+37.534508668465i) (list 0+1i 1.5707963267949-0.88137358701954i) (list 0+2i 1.5707963267949-1.4436354751788i) (list 0-1i 1.5707963267949+0.88137358701954i) (list 1+1i 0.90455689430238-1.061275061905i) (list 1-1i 0.90455689430238+1.061275061905i) (list -1+1i 2.2370357592874-1.061275061905i) (list -1-1i 2.2370357592874+1.061275061905i) (list 0.1+0.1i 1.4711326239351-0.10033029811221i) (list 1e+16+1e+16i 0.78539816339745-37.881082258745i) (list 1e-16+1e-16i 1.5707963267949-1.1102230246252e-16i) )) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x -10.0 (+ x .1))) ((= i 200)) (let ((y (magnitude (- x (cos (acos x)))))) (if (> y err) (begin (set! mx x) (set! err y))))) (test-assert (format #f ";(cos (acos ~A)) error: ~A" mx err) (<= err 1e-12))) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x 1.0-i (+ x -0.1+0.1i))) ((= i 200)) (let ((y (magnitude (- x (cos (acos x)))))) (if (> y err) (begin (set! mx x) (set! err y))))) (test-assert (format #f ";(cos (acos ~A)) error: ~A" mx err) (<= err 1e-10))) (s7-test (acos) 'error) (s7-test (acos "hi") 'error) (s7-test (acos 1.0+23.0i 1.0+23.0i) 'error) (s7-test (acos 0 1) 'error) (test-end "acos") ;;; -------------------------------------------------------------------------------- ;;; atan ;;; -------------------------------------------------------------------------------- (test-begin "atan") (num-test (atan 0) 0.0) (num-test (atan 1) 0.78539816339745) (num-test (atan -1) -0.78539816339745) (num-test (atan 2) 1.10714871779409) (num-test (atan -2) -1.10714871779409) (num-test (atan 3) 1.24904577239825) (num-test (atan -3) -1.24904577239825) (num-test (atan 10) 1.47112767430373) (num-test (atan -10) -1.47112767430373) (num-test (atan 1234) 1.56998595420081) (num-test (atan -1234) -1.56998595420081) (num-test (atan 0/1) 0.0) (num-test (atan 0/2) 0.0) (num-test (atan 0/3) 0.0) (num-test (atan 0/10) 0.0) (num-test (atan 0/1234) 0.0) (num-test (atan 0/1234000000) 0.0) (num-test (atan 0/500029) 0.0) (num-test (atan 0/362880) 0.0) (num-test (atan 1/1) 0.78539816339745) (num-test (atan -1/1) -0.78539816339745) (num-test (atan 1/2) 0.46364760900081) (num-test (atan -1/2) -0.46364760900081) (num-test (atan 1/3) 0.32175055439664) (num-test (atan -1/3) -0.32175055439664) (num-test (atan 1/10) 0.09966865249116) (num-test (atan -1/10) -0.09966865249116) (num-test (atan 1/1234) 0.00081037259408) (num-test (atan -1/1234) -0.00081037259408) (num-test (atan 1/1234000000) 0.00000000081037) (num-test (atan -1/1234000000) -0.00000000081037) (num-test (atan 1/500029) 0.00000199988401) (num-test (atan -1/500029) -0.00000199988401) (num-test (atan 1/362880) 0.00000275573192) (num-test (atan -1/362880) -0.00000275573192) (num-test (atan 2/1) 1.10714871779409) (num-test (atan -2/1) -1.10714871779409) (num-test (atan 2/2) 0.78539816339745) (num-test (atan -2/2) -0.78539816339745) (num-test (atan 2/3) 0.58800260354757) (num-test (atan -2/3) -0.58800260354757) (num-test (atan 2/10) 0.19739555984988) (num-test (atan -2/10) -0.19739555984988) (num-test (atan 2/1234) 0.00162074412382) (num-test (atan -2/1234) -0.00162074412382) (num-test (atan 2/1234000000) 0.00000000162075) (num-test (atan -2/1234000000) -0.00000000162075) (num-test (atan 2/500029) 0.00000399976801) (num-test (atan -2/500029) -0.00000399976801) (num-test (atan 2/362880) 0.00000551146384) (num-test (atan -2/362880) -0.00000551146384) (num-test (atan 3/1) 1.24904577239825) (num-test (atan -3/1) -1.24904577239825) (num-test (atan 3/2) 0.98279372324733) (num-test (atan -3/2) -0.98279372324733) (num-test (atan 3/3) 0.78539816339745) (num-test (atan -3/3) -0.78539816339745) (num-test (atan 3/10) 0.29145679447787) (num-test (atan -3/10) -0.29145679447787) (num-test (atan 3/1234) 0.00243111352487) (num-test (atan -3/1234) -0.00243111352487) (num-test (atan 3/1234000000) 0.00000000243112) (num-test (atan -3/1234000000) -0.00000000243112) (num-test (atan 3/500029) 0.00000599965202) (num-test (atan -3/500029) -0.00000599965202) (num-test (atan 3/362880) 0.00000826719577) (num-test (atan -3/362880) -0.00000826719577) (num-test (atan 10/1) 1.47112767430373) (num-test (atan -10/1) -1.47112767430373) (num-test (atan 10/2) 1.37340076694502) (num-test (atan -10/2) -1.37340076694502) (num-test (atan 10/3) 1.27933953231703) (num-test (atan -10/3) -1.27933953231703) (num-test (atan 10/10) 0.78539816339745) (num-test (atan -10/10) -0.78539816339745) (num-test (atan 10/1234) 0.00810355033005) (num-test (atan -10/1234) -0.00810355033005) (num-test (atan 10/1234000000) 0.00000000810373) (num-test (atan -10/1234000000) -0.00000000810373) (num-test (atan 10/500029) 0.00001999884006) (num-test (atan -10/500029) -0.00001999884006) (num-test (atan 10/362880) 0.00002755731922) (num-test (atan -10/362880) -0.00002755731922) (num-test (atan 1234/1) 1.56998595420081) (num-test (atan -1234/1) -1.56998595420081) (num-test (atan 1234/2) 1.56917558267108) (num-test (atan -1234/2) -1.56917558267108) (num-test (atan 1234/3) 1.56836521327003) (num-test (atan -1234/3) -1.56836521327003) (num-test (atan 1234/10) 1.56269277646485) (num-test (atan -1234/10) -1.56269277646485) (num-test (atan 1234/1234) 0.78539816339745) (num-test (atan -1234/1234) -0.78539816339745) (num-test (atan 1234/1234000000) 0.00000100000000) (num-test (atan -1234/1234000000) -0.00000100000000) (num-test (atan 1234/500029) 0.00246785185431) (num-test (atan -1234/500029) -0.00246785185431) (num-test (atan 1234/362880) 0.00340056008437) (num-test (atan -1234/362880) -0.00340056008437) (num-test (atan 1234000000/1234000000) 0.78539816339745) (num-test (atan -1234000000/1234000000) -0.78539816339745) (num-test (atan 1234000000/500029) 1.57039111693053) (num-test (atan -1234000000/500029) -1.57039111693053) (num-test (atan 1234000000/362880) 1.57050225873206) (num-test (atan -1234000000/362880) -1.57050225873206) (num-test (atan 500029/2) 1.57079232702688) (num-test (atan -500029/2) -1.57079232702688) (num-test (atan 500029/3) 1.57079032714288) (num-test (atan -500029/3) -1.57079032714288) (num-test (atan 500029/10) 1.57077632795483) (num-test (atan -500029/10) -1.57077632795483) (num-test (atan 500029/1234) 1.56832847494059) (num-test (atan -500029/1234) -1.56832847494059) (num-test (atan 500029/1234000000) 0.00040520986437) (num-test (atan -500029/1234000000) -0.00040520986437) (num-test (atan 500029/500029) 0.78539816339745) (num-test (atan -500029/500029) -0.78539816339745) (num-test (atan 500029/362880) 0.94301772831206) (num-test (atan -500029/362880) -0.94301772831206) (num-test (atan 362880/2) 1.57079081533105) (num-test (atan -362880/2) -1.57079081533105) (num-test (atan 362880/3) 1.57078805959913) (num-test (atan -362880/3) -1.57078805959913) (num-test (atan 362880/10) 1.57076876947568) (num-test (atan -362880/10) -1.57076876947568) (num-test (atan 362880/1234) 1.56739576671053) (num-test (atan -362880/1234) -1.56739576671053) (num-test (atan 362880/1234000000) 0.00029406806284) (num-test (atan -362880/1234000000) -0.00029406806284) (num-test (atan 362880/500029) 0.62777859848283) (num-test (atan -362880/500029) -0.62777859848283) (num-test (atan 362880/362880) 0.78539816339745) (num-test (atan -362880/362880) -0.78539816339745) (num-test (atan 0.0) 0.0) (num-test (atan 0.00000001) 0.00000001) (num-test (atan -0.00000001) -0.00000001) (num-test (atan 1.0) 0.78539816339745) (num-test (atan -1.0) -0.78539816339745) (num-test (atan pi) 1.26262725567891) (num-test (atan -3.14159265358979) -1.26262725567891) (num-test (atan 2.71828182845905) 1.21828290501728) (num-test (atan -2.71828182845905) -1.21828290501728) (num-test (atan 1234.0) 1.56998595420081) (num-test (atan -1234.0) -1.56998595420081) (num-test (atan 0.0+0.0i) 0.0) (num-test (atan -0.0+0.0i) 0.0) (num-test (atan 0.0-0.0i) 0.0) (num-test (atan -0.0-0.0i) 0.0) (num-test (atan 0.0+0.00000001i) 0.0+0.00000001i) (num-test (atan -0.0+0.00000001i) 0.0+0.00000001i) (num-test (atan 0.0-0.00000001i) 0.0-0.00000001i) (num-test (atan -0.0-0.00000001i) -0.0-0.00000001i) (num-test (atan 0.0+3.14159265358979i) 1.57079632679490+0.32976531495670i) (num-test (atan -0.0+3.14159265358979i) 1.57079632679490+0.32976531495670i) ;; s7 is using the wrong formula? ;(num-test (atan 0.0-3.14159265358979i) 1.57079632679490-0.32976531495670i) (num-test (atan 0.0-3.14159265358979i) -1.57079632679490-0.32976531495670i) (num-test (atan -0.0-3.14159265358979i) -1.57079632679490-0.32976531495670i) (num-test (atan 0.0+2.71828182845905i) 1.57079632679490+0.38596841645265i) (num-test (atan -0.0+2.71828182845905i) 1.57079632679490+0.38596841645265i) ;(num-test (atan 0.0-2.71828182845905i) 1.57079632679490-0.38596841645265i) (num-test (atan 0.0-2.71828182845905i) -1.57079632679490-0.38596841645265i) (num-test (atan -0.0-2.71828182845905i) -1.57079632679490-0.38596841645265i) (num-test (atan 0.0+1234.0i) 1.57079632679490+0.00081037294887i) (num-test (atan -0.0+1234.0i) 1.57079632679490+0.00081037294887i) ;(num-test (atan 0.0-1234.0i) 1.57079632679490-0.00081037294887i) (num-test (atan 0.0-1234.0i) -1.57079632679490-0.00081037294887i) (num-test (atan -0.0-1234.0i) -1.57079632679490-0.00081037294887i) (num-test (atan 0.00000001+0.0i) 0.00000001) (num-test (atan -0.00000001+0.0i) -0.00000001) (num-test (atan 0.00000001-0.0i) 0.00000001) (num-test (atan -0.00000001-0.0i) -0.00000001) (num-test (atan 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (atan -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (atan 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (atan -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (atan 0.00000001+1.0i) 0.78539816589789+9.55691396225616i) (num-test (atan -0.00000001+1.0i) -0.78539816589789+9.55691396225616i) (num-test (atan 0.00000001-1.0i) 0.78539816589789-9.55691396225616i) (num-test (atan -0.00000001-1.0i) -0.78539816589789-9.55691396225616i) (num-test (atan 0.00000001+3.14159265358979i) 1.57079632566745+0.32976531495670i) (num-test (atan -0.00000001+3.14159265358979i) -1.57079632566745+0.32976531495670i) (num-test (atan 0.00000001-3.14159265358979i) 1.57079632566745-0.32976531495670i) (num-test (atan -0.00000001-3.14159265358979i) -1.57079632566745-0.32976531495670i) (num-test (atan 0.00000001+2.71828182845905i) 1.57079632522972+0.38596841645265i) (num-test (atan -0.00000001+2.71828182845905i) -1.57079632522972+0.38596841645265i) (num-test (atan 0.00000001-2.71828182845905i) 1.57079632522972-0.38596841645265i) (num-test (atan -0.00000001-2.71828182845905i) -1.57079632522972-0.38596841645265i) (num-test (atan 0.00000001+1234.0i) 1.57079632679489+0.00081037294887i) (num-test (atan -0.00000001+1234.0i) -1.57079632679489+0.00081037294887i) (num-test (atan 0.00000001-1234.0i) 1.57079632679489-0.00081037294887i) (num-test (atan -0.00000001-1234.0i) -1.57079632679489-0.00081037294887i) (num-test (atan 1.0+0.0i) 0.78539816339745) (num-test (atan -1.0+0.0i) -0.78539816339745) (num-test (atan 1.0-0.0i) 0.78539816339745) (num-test (atan -1.0-0.0i) -0.78539816339745) (num-test (atan 1.0+0.00000001i) 0.78539816339745+0.00000000500000i) (num-test (atan -1.0+0.00000001i) -0.78539816339745+0.00000000500000i) (num-test (atan 1.0-0.00000001i) 0.78539816339745-0.00000000500000i) (num-test (atan -1.0-0.00000001i) -0.78539816339745-0.00000000500000i) (num-test (atan 1.0+1.0i) 1.01722196789785+0.40235947810853i) (num-test (atan -1.0+1.0i) -1.01722196789785+0.40235947810853i) (num-test (atan 1.0-1.0i) 1.01722196789785-0.40235947810853i) (num-test (atan -1.0-1.0i) -1.01722196789785-0.40235947810853i) (num-test (atan 1.0+3.14159265358979i) 1.47082882591946+0.29462144034086i) (num-test (atan -1.0+3.14159265358979i) -1.47082882591946+0.29462144034086i) (num-test (atan 1.0-3.14159265358979i) 1.47082882591946-0.29462144034086i) (num-test (atan -1.0-3.14159265358979i) -1.47082882591946-0.29462144034086i) (num-test (atan 1.0+2.71828182845905i) 1.43862796047891+0.33050259272341i) (num-test (atan -1.0+2.71828182845905i) -1.43862796047891+0.33050259272341i) (num-test (atan 1.0-2.71828182845905i) 1.43862796047891-0.33050259272341i) (num-test (atan -1.0-2.71828182845905i) -1.43862796047891-0.33050259272341i) (num-test (atan 1.0+1234.0i) 1.57079567009087+0.00081037241669i) (num-test (atan -1.0+1234.0i) -1.57079567009087+0.00081037241669i) (num-test (atan 1.0-1234.0i) 1.57079567009087-0.00081037241669i) (num-test (atan -1.0-1234.0i) -1.57079567009087-0.00081037241669i) (num-test (atan 3.14159265358979+0.0i) 1.26262725567891) (num-test (atan -3.14159265358979+0.0i) -1.26262725567891) (num-test (atan 3.14159265358979-0.0i) 1.26262725567891) (num-test (atan -3.14159265358979-0.0i) -1.26262725567891) (num-test (atan 3.14159265358979+0.00000001i) 1.26262725567891+0.00000000092000i) (num-test (atan -3.14159265358979+0.00000001i) -1.26262725567891+0.00000000092000i) (num-test (atan 3.14159265358979-0.00000001i) 1.26262725567891-0.00000000092000i) (num-test (atan -3.14159265358979-0.00000001i) -1.26262725567891-0.00000000092000i) (num-test (atan 3.14159265358979+1.0i) 1.28734057432439+0.08505998507745i) (num-test (atan -3.14159265358979+1.0i) -1.28734057432439+0.08505998507745i) (num-test (atan 3.14159265358979-1.0i) 1.28734057432439-0.08505998507745i) (num-test (atan -3.14159265358979-1.0i) -1.28734057432439-0.08505998507745i) (num-test (atan 3.14159265358979+3.14159265358979i) 1.40903828502376+0.15638868878130i) (num-test (atan -3.14159265358979+3.14159265358979i) -1.40903828502376+0.15638868878130i) (num-test (atan 3.14159265358979-3.14159265358979i) 1.40903828502376-0.15638868878130i) (num-test (atan -3.14159265358979-3.14159265358979i) -1.40903828502376-0.15638868878130i) (num-test (atan 3.14159265358979+2.71828182845905i) 1.38641010899673+0.15352587926173i) (num-test (atan -3.14159265358979+2.71828182845905i) -1.38641010899673+0.15352587926173i) (num-test (atan 3.14159265358979-2.71828182845905i) 1.38641010899673-0.15352587926173i) (num-test (atan -3.14159265358979-2.71828182845905i) -1.38641010899673-0.15352587926173i) (num-test (atan 3.14159265358979+1234.0i) 1.57079426371036+0.00081036769654i) (num-test (atan -3.14159265358979+1234.0i) -1.57079426371036+0.00081036769654i) (num-test (atan 3.14159265358979-1234.0i) 1.57079426371036-0.00081036769654i) (num-test (atan -3.14159265358979-1234.0i) -1.57079426371036-0.00081036769654i) (num-test (atan 2.71828182845905+0.0i) 1.21828290501728) (num-test (atan -2.71828182845905+0.0i) -1.21828290501728) (num-test (atan 2.71828182845905-0.0i) 1.21828290501728) (num-test (atan -2.71828182845905-0.0i) -1.21828290501728) (num-test (atan 2.71828182845905+0.00000001i) 1.21828290501728+0.00000000119203i) (num-test (atan -2.71828182845905+0.00000001i) -1.21828290501728+0.00000000119203i) (num-test (atan 2.71828182845905-0.00000001i) 1.21828290501728-0.00000000119203i) (num-test (atan -2.71828182845905-0.00000001i) -1.21828290501728-0.00000000119203i) (num-test (atan 2.71828182845905+1.0i) 1.25363416718071+0.10816322574795i) (num-test (atan -2.71828182845905+1.0i) -1.25363416718071+0.10816322574795i) (num-test (atan 2.71828182845905-1.0i) 1.25363416718071-0.10816322574795i) (num-test (atan -2.71828182845905-1.0i) -1.25363416718071-0.10816322574795i) (num-test (atan 2.71828182845905+3.14159265358979i) 1.40945039787275+0.17937970703436i) (num-test (atan -2.71828182845905+3.14159265358979i) -1.40945039787275+0.17937970703436i) (num-test (atan 2.71828182845905-3.14159265358979i) 1.40945039787275-0.17937970703436i) (num-test (atan -2.71828182845905-3.14159265358979i) -1.40945039787275-0.17937970703436i) (num-test (atan 2.71828182845905+2.71828182845905i) 1.38288382352616+0.17963089485802i) (num-test (atan -2.71828182845905+2.71828182845905i) -1.38288382352616+0.17963089485802i) (num-test (atan 2.71828182845905-2.71828182845905i) 1.38288382352616-0.17963089485802i) (num-test (atan -2.71828182845905-2.71828182845905i) -1.38288382352616-0.17963089485802i) (num-test (atan 2.71828182845905+1234.0i) 1.57079454169576+0.00081036901661i) (num-test (atan -2.71828182845905+1234.0i) -1.57079454169576+0.00081036901661i) (num-test (atan 2.71828182845905-1234.0i) 1.57079454169576-0.00081036901661i) (num-test (atan -2.71828182845905-1234.0i) -1.57079454169576-0.00081036901661i) (num-test (atan 1234.0+0.0i) 1.56998595420081) (num-test (atan -1234.0+0.0i) -1.56998595420081) (num-test (atan 1234.0-0.0i) 1.56998595420081) (num-test (atan -1234.0-0.0i) -1.56998595420081) (num-test (atan 1234.0+0.00000001i) 1.56998595420081+0.00000000000001i) (num-test (atan -1234.0+0.00000001i) -1.56998595420081+0.00000000000001i) (num-test (atan 1234.0-0.00000001i) 1.56998595420081-0.00000000000001i) (num-test (atan -1234.0-0.00000001i) -1.56998595420081-0.00000000000001i) (num-test (atan 1234.0+1.0i) 1.56998595473299+0.00000065670317i) (num-test (atan -1234.0+1.0i) -1.56998595473299+0.00000065670317i) (num-test (atan 1234.0-1.0i) 1.56998595473299-0.00000065670317i) (num-test (atan -1234.0-1.0i) -1.56998595473299-0.00000065670317i) (num-test (atan 1234.0+3.14159265358979i) 1.56998595945313+0.00000206308183i) (num-test (atan -1234.0+3.14159265358979i) -1.56998595945313+0.00000206308183i) (num-test (atan 1234.0-3.14159265358979i) 1.56998595945313-0.00000206308183i) (num-test (atan -1234.0-3.14159265358979i) -1.56998595945313-0.00000206308183i) (num-test (atan 1234.0+2.71828182845905i) 1.56998595813306+0.00000178509679i) (num-test (atan -1234.0+2.71828182845905i) -1.56998595813306+0.00000178509679i) (num-test (atan 1234.0-2.71828182845905i) 1.56998595813306-0.00000178509679i) (num-test (atan -1234.0-2.71828182845905i) -1.56998595813306-0.00000178509679i) (num-test (atan 1234.0+1234.0i) 1.57039114036481+0.00040518634139i) (num-test (atan -1234.0+1234.0i) -1.57039114036481+0.00040518634139i) (num-test (atan 1234.0-1234.0i) 1.57039114036481-0.00040518634139i) (num-test (atan -1234.0-1234.0i) -1.57039114036481-0.00040518634139i) (num-test (atan 6.9279836e-17) 6.9279836e-17) (num-test (atan 1.7976931e+308) 1.5707963267949) (num-test (atan 0 0) 0.0) (num-test (atan 0 1.0) 0.0) (num-test (atan 0 -1.0) pi) (num-test (atan 1.0 0) (/ pi 2)) (num-test (atan -1.0 0) (/ pi -2)) (num-test (atan 0.0 0.0) 0.0) (num-test (atan 0.0 0.00000001) 0.0) (num-test (atan 0.0 1.0) 0.0) (num-test (atan 0.0 pi) 0.0) (num-test (atan 0.0 2.71828182845905) 0.0) (num-test (atan 0.0 1234.0) 0.0) (num-test (atan 0.0 1234000000.0) 0.0) (num-test (atan 0.00000001 0.0) 1.57079632679490) (num-test (atan 0.00000001 0.00000001) 0.78539816339745) (num-test (atan 0.00000001 1.0) 0.00000001) (num-test (atan 0.00000001 pi) 0.00000000318310) ;; XXX precision problem? ;(num-test (atan 0.00000001 2.71828182845905) 0.00000000367879) ;(num-test (atan 0.00000001 1234.0) 0.00000000000810) ;(num-test (atan 0.00000001 1234000000.0) 0.0) (num-test (atan 1.0 0.0) 1.57079632679490) (num-test (atan 1.0 0.00000001) 1.57079631679490) (num-test (atan 1.0 1.0) 0.78539816339745) (num-test (atan 1.0 pi) 0.30816907111598) (num-test (atan 1.0 2.71828182845905) 0.35251342177762) (num-test (atan 1.0 1234.0) 0.00081037259408) (num-test (atan 1.0 1234000000.0) 0.00000000081037) (num-test (atan 3.14159265358979 0.0) 1.57079632679490) (num-test (atan 3.14159265358979 0.00000001) 1.57079632361180) (num-test (atan 3.14159265358979 1.0) 1.26262725567891) (num-test (atan 3.14159265358979 pi) 0.78539816339745) (num-test (atan 3.14159265358979 2.71828182845905) 0.85751178635585) (num-test (atan 3.14159265358979 1234.0) 0.00254585564530) (num-test (atan 3.14159265358979 1234000000.0) 0.00000000254586) (num-test (atan 2.71828182845905 0.0) 1.57079632679490) (num-test (atan 2.71828182845905 0.00000001) 1.57079632311610) (num-test (atan 2.71828182845905 1.0) 1.21828290501728) (num-test (atan 2.71828182845905 pi) 0.71328454043905) (num-test (atan 2.71828182845905 2.71828182845905) 0.78539816339745) (num-test (atan 2.71828182845905 1234.0) 0.00220281801598) (num-test (atan 2.71828182845905 1234000000.0) 0.00000000220282) (num-test (atan 1234.0 0.0) 1.57079632679490) (num-test (atan 1234.0 0.00000001) 1.57079632678679) (num-test (atan 1234.0 1.0) 1.56998595420081) (num-test (atan 1234.0 pi) 1.56825047114960) (num-test (atan 1234.0 2.71828182845905) 1.56859350877892) (num-test (atan 1234.0 1234.0) 0.78539816339745) (num-test (atan 1234.0 1234000000.0) 0.00000100000000) (num-test (atan 1234000000.0 0.0) 1.57079632679490) (num-test (atan 1234000000.0 0.00000001) 1.57079632679490) (num-test (atan 1234000000.0 1.0) 1.57079632598452) (num-test (atan 1234000000.0 pi) 1.57079632424904) (num-test (atan 1234000000.0 2.71828182845905) 1.57079632459208) (num-test (atan 1234000000.0 1234.0) 1.57079532679490) (num-test (atan 1234000000.0 1234000000.0) 0.78539816339745) (num-test (atan 1234000000/3) 1.570796324363778) (num-test (atan 0.00000001+1234000000.0i) +1.570796326794897+8.103727714748784E-10i) (num-test (atan 3.14159265358979+1234000000.0i) +1.570796326794897+8.103727714748784E-10i) (num-test (atan 2.71828182845905+1234000000.0i) +1.570796326794897+8.103727714748784E-10i) (num-test (atan 1234000000.0+0.00000001i) +1.570796325984524+6.567040287478756E-27i) (num-test (atan 1234000000.0+3.14159265358979i) +1.570796325984524+2.063096552297151E-18i) (num-test (atan 1234000000.0+2.71828182845905i) +1.570796325984524+1.785106628021167E-18i) (num-test (atan 1) 0.7853981633974483) (num-test (atan 0.0e+00+0.0e+00i) 0e0) (num-test (atan 0.0e+00+1.19209289550781250e-07i) 0+1.1920928955078181469e-7i) (num-test (atan 0.0e+00-1.19209289550781250e-07i) 0-1.1920928955078181469e-7i) (num-test (atan 0.0e+00+5.0e-01i) 0+5.4930614433405484570e-1i) (num-test (atan 0.0e+00-5.0e-01i) 0-5.4930614433405484570e-1i) (num-test (atan 0.0e+00+2.0e+00i) 1.5707963267948966192e0+5.4930614433405484570e-1i) (num-test (atan 0.0e+00-2.0e+00i) -1.5707963267948966192e0-5.4930614433405484570e-1i) (num-test (atan 0.0e+00+8.3886080e+06i) 1.5707963267948966192e0+1.1920928955078181469e-7i) (num-test (atan 0.0e+00-8.3886080e+06i) -1.5707963267948966192e0-1.1920928955078181469e-7i) (num-test (atan 1.19209289550781250e-07+0.0e+00i) 1.1920928955078068531e-7) (num-test (atan -1.19209289550781250e-07+0.0e+00i) -1.1920928955078068531e-7) (num-test (atan 1.19209289550781250e-07+1.19209289550781250e-07i) 1.1920928955078237938e-7+1.1920928955078012062e-7i) (num-test (atan 1.19209289550781250e-07-1.19209289550781250e-07i) 1.1920928955078237938e-7-1.1920928955078012062e-7i) (num-test (atan -1.19209289550781250e-07+1.19209289550781250e-07i) -1.1920928955078237938e-7+1.1920928955078012062e-7i) (num-test (atan -1.19209289550781250e-07-1.19209289550781250e-07i) -1.1920928955078237938e-7-1.1920928955078012062e-7i) (num-test (atan 1.19209289550781250e-07+5.0e-01i) 1.5894571940103932425e-7+5.4930614433404221383e-1i) (num-test (atan 1.19209289550781250e-07-5.0e-01i) 1.5894571940103932425e-7-5.4930614433404221383e-1i) (num-test (atan -1.19209289550781250e-07+5.0e-01i) -1.5894571940103932425e-7+5.4930614433404221383e-1i) (num-test (atan -1.19209289550781250e-07-5.0e-01i) -1.5894571940103932425e-7-5.4930614433404221383e-1i) (num-test (atan 1.19209289550781250e-07+1.0e+00i) 7.8539819319977069731e-1+8.3177661667193446012e0i) (num-test (atan 1.19209289550781250e-07-1.0e+00i) 7.8539819319977069731e-1-8.3177661667193446012e0i) (num-test (atan -1.19209289550781250e-07+1.0e+00i) -7.8539819319977069731e-1+8.3177661667193446012e0i) (num-test (atan -1.19209289550781250e-07-1.0e+00i) -7.8539819319977069731e-1-8.3177661667193446012e0i) (num-test (atan 1.19209289550781250e-07+2.0e+00i) 1.5707962870584667690e0+5.4930614433405168773e-1i) (num-test (atan 1.19209289550781250e-07-2.0e+00i) 1.5707962870584667690e0-5.4930614433405168773e-1i) (num-test (atan -1.19209289550781250e-07+2.0e+00i) -1.5707962870584667690e0+5.4930614433405168773e-1i) (num-test (atan -1.19209289550781250e-07-2.0e+00i) -1.5707962870584667690e0-5.4930614433405168773e-1i) (num-test (atan 1.19209289550781250e-07+8.3886080e+06i) 1.5707963267948966192e0+1.1920928955078181469e-7i) (num-test (atan 1.19209289550781250e-07-8.3886080e+06i) 1.5707963267948966192e0-1.1920928955078181469e-7i) (num-test (atan -1.19209289550781250e-07+8.3886080e+06i) -1.5707963267948966192e0+1.1920928955078181469e-7i) (num-test (atan -1.19209289550781250e-07-8.3886080e+06i) -1.5707963267948966192e0-1.1920928955078181469e-7i) (num-test (atan 5.0e-01+0.0e+00i) 4.6364760900080611621e-1) (num-test (atan -5.0e-01+0.0e+00i) -4.6364760900080611621e-1) (num-test (atan 5.0e-01+1.19209289550781250e-07i) 4.6364760900081066369e-1+9.5367431640625072280e-8i) (num-test (atan 5.0e-01-1.19209289550781250e-07i) 4.6364760900081066369e-1-9.5367431640625072280e-8i) (num-test (atan -5.0e-01+1.19209289550781250e-07i) -4.6364760900081066369e-1+9.5367431640625072280e-8i) (num-test (atan -5.0e-01-1.19209289550781250e-07i) -4.6364760900081066369e-1-9.5367431640625072280e-8i) (num-test (atan 5.0e-01+5.0e-01i) 5.5357435889704525151e-1+4.0235947810852509365e-1i) (num-test (atan 5.0e-01-5.0e-01i) 5.5357435889704525151e-1-4.0235947810852509365e-1i) (num-test (atan -5.0e-01+5.0e-01i) -5.5357435889704525151e-1+4.0235947810852509365e-1i) (num-test (atan -5.0e-01-5.0e-01i) -5.5357435889704525151e-1-4.0235947810852509365e-1i) (num-test (atan 5.0e-01+1.0e+00i) 9.0788749496088038670e-1+7.0830333601405402006e-1i) (num-test (atan 5.0e-01-1.0e+00i) 9.0788749496088038670e-1-7.0830333601405402006e-1i) (num-test (atan -5.0e-01+1.0e+00i) -9.0788749496088038670e-1+7.0830333601405402006e-1i) (num-test (atan -5.0e-01-1.0e+00i) -9.0788749496088038670e-1-7.0830333601405402006e-1i) (num-test (atan 5.0e-01+2.0e+00i) 1.4215468610018069803e0+5.0037000005253101744e-1i) (num-test (atan 5.0e-01-2.0e+00i) 1.4215468610018069803e0-5.0037000005253101744e-1i) (num-test (atan -5.0e-01+2.0e+00i) -1.4215468610018069803e0+5.0037000005253101744e-1i) (num-test (atan -5.0e-01-2.0e+00i) -1.4215468610018069803e0-5.0037000005253101744e-1i) (num-test (atan 5.0e-01+8.3886080e+06i) 1.5707963267948895138e0+1.1920928955078139117e-7i) (num-test (atan 5.0e-01-8.3886080e+06i) 1.5707963267948895138e0-1.1920928955078139117e-7i) (num-test (atan -5.0e-01+8.3886080e+06i) -1.5707963267948895138e0+1.1920928955078139117e-7i) (num-test (atan -5.0e-01-8.3886080e+06i) -1.5707963267948895138e0-1.1920928955078139117e-7i) (num-test (atan 1.0e+00+0.0e+00i) 7.8539816339744830962e-1) (num-test (atan -1.0e+00+0.0e+00i) -7.8539816339744830962e-1) (num-test (atan 1.0e+00+1.19209289550781250e-07i) 7.8539816339745186233e-1+5.9604644775390483828e-8i) (num-test (atan 1.0e+00-1.19209289550781250e-07i) 7.8539816339745186233e-1-5.9604644775390483828e-8i) (num-test (atan -1.0e+00+1.19209289550781250e-07i) -7.8539816339745186233e-1+5.9604644775390483828e-8i) (num-test (atan -1.0e+00-1.19209289550781250e-07i) -7.8539816339745186233e-1-5.9604644775390483828e-8i) (num-test (atan 1.0e+00+5.0e-01i) 8.4757566067082902713e-1+2.3887786125685909036e-1i) (num-test (atan 1.0e+00-5.0e-01i) 8.4757566067082902713e-1-2.3887786125685909036e-1i) (num-test (atan -1.0e+00+5.0e-01i) -8.4757566067082902713e-1+2.3887786125685909036e-1i) (num-test (atan -1.0e+00-5.0e-01i) -8.4757566067082902713e-1-2.3887786125685909036e-1i) (num-test (atan 1.0e+00+1.0e+00i) 1.0172219678978513677e0+4.0235947810852509365e-1i) (num-test (atan 1.0e+00-1.0e+00i) 1.0172219678978513677e0-4.0235947810852509365e-1i) (num-test (atan -1.0e+00+1.0e+00i) -1.0172219678978513677e0+4.0235947810852509365e-1i) (num-test (atan -1.0e+00-1.0e+00i) -1.0172219678978513677e0-4.0235947810852509365e-1i) (num-test (atan 1.0e+00+2.0e+00i) 1.3389725222944935611e0+4.0235947810852509365e-1i) (num-test (atan 1.0e+00-2.0e+00i) 1.3389725222944935611e0-4.0235947810852509365e-1i) (num-test (atan -1.0e+00+2.0e+00i) -1.3389725222944935611e0+4.0235947810852509365e-1i) (num-test (atan -1.0e+00-2.0e+00i) -1.3389725222944935611e0-4.0235947810852509365e-1i) (num-test (atan 1.0e+00+8.3886080e+06i) 1.5707963267948824084e0+1.1920928955078012062e-7i) (num-test (atan 1.0e+00-8.3886080e+06i) 1.5707963267948824084e0-1.1920928955078012062e-7i) (num-test (atan -1.0e+00+8.3886080e+06i) -1.5707963267948824084e0+1.1920928955078012062e-7i) (num-test (atan -1.0e+00-8.3886080e+06i) -1.5707963267948824084e0-1.1920928955078012062e-7i) (num-test (atan 2.0e+00+0.0e+00i) 1.1071487177940905030e0) (num-test (atan -2.0e+00+0.0e+00i) -1.1071487177940905030e0) (num-test (atan 2.0e+00+1.19209289550781250e-07i) 1.1071487177940916399e0+2.3841857910156200307e-8i) (num-test (atan 2.0e+00-1.19209289550781250e-07i) 1.1071487177940916399e0-2.3841857910156200307e-8i) (num-test (atan -2.0e+00+1.19209289550781250e-07i) -1.1071487177940916399e0+2.3841857910156200307e-8i) (num-test (atan -2.0e+00-1.19209289550781250e-07i) -1.1071487177940916399e0-2.3841857910156200307e-8i) (num-test (atan 2.0e+00+5.0e-01i) 1.1265564408348223487e0+9.6415620202996167238e-2i) (num-test (atan 2.0e+00-5.0e-01i) 1.1265564408348223487e0-9.6415620202996167238e-2i) (num-test (atan -2.0e+00+5.0e-01i) -1.1265564408348223487e0+9.6415620202996167238e-2i) (num-test (atan -2.0e+00-5.0e-01i) -1.1265564408348223487e0-9.6415620202996167238e-2i) (num-test (atan 2.0e+00+1.0e+00i) 1.1780972450961724644e0+1.7328679513998632735e-1i) (num-test (atan 2.0e+00-1.0e+00i) 1.1780972450961724644e0-1.7328679513998632735e-1i) (num-test (atan -2.0e+00+1.0e+00i) -1.1780972450961724644e0+1.7328679513998632735e-1i) (num-test (atan -2.0e+00-1.0e+00i) -1.1780972450961724644e0-1.7328679513998632735e-1i) (num-test (atan 2.0e+00+2.0e+00i) 1.3112232696716351433e0+2.3887786125685909036e-1i) (num-test (atan 2.0e+00-2.0e+00i) 1.3112232696716351433e0-2.3887786125685909036e-1i) (num-test (atan -2.0e+00+2.0e+00i) -1.3112232696716351433e0+2.3887786125685909036e-1i) (num-test (atan -2.0e+00-2.0e+00i) -1.3112232696716351433e0-2.3887786125685909036e-1i) (num-test (atan 2.0e+00+8.3886080e+06i) 1.5707963267948681975e0+1.1920928955077503843e-7i) (num-test (atan 2.0e+00-8.3886080e+06i) 1.5707963267948681975e0-1.1920928955077503843e-7i) (num-test (atan -2.0e+00+8.3886080e+06i) -1.5707963267948681975e0+1.1920928955077503843e-7i) (num-test (atan -2.0e+00-8.3886080e+06i) -1.5707963267948681975e0-1.1920928955077503843e-7i) (num-test (atan 8.3886080e+06+0.0e+00i) 1.5707962075856070685e0) (num-test (atan -8.3886080e+06+0.0e+00i) -1.5707962075856070685e0) (num-test (atan 8.3886080e+06+1.19209289550781250e-07i) 1.5707962075856070685e0+1.6940658945085766040e-21i) (num-test (atan 8.3886080e+06-1.19209289550781250e-07i) 1.5707962075856070685e0-1.6940658945085766040e-21i) (num-test (atan -8.3886080e+06+1.19209289550781250e-07i) -1.5707962075856070685e0+1.6940658945085766040e-21i) (num-test (atan -8.3886080e+06-1.19209289550781250e-07i) -1.5707962075856070685e0-1.6940658945085766040e-21i) (num-test (atan 8.3886080e+06+5.0e-01i) 1.5707962075856070685e0+7.1054273576008756410e-15i) (num-test (atan 8.3886080e+06-5.0e-01i) 1.5707962075856070685e0-7.1054273576008756410e-15i) (num-test (atan -8.3886080e+06+5.0e-01i) -1.5707962075856070685e0+7.1054273576008756410e-15i) (num-test (atan -8.3886080e+06-5.0e-01i) -1.5707962075856070685e0-7.1054273576008756410e-15i) (num-test (atan 8.3886080e+06+1.0e+00i) 1.5707962075856070685e0+1.4210854715201599821e-14i) (num-test (atan 8.3886080e+06-1.0e+00i) 1.5707962075856070685e0-1.4210854715201599821e-14i) (num-test (atan -8.3886080e+06+1.0e+00i) -1.5707962075856070685e0+1.4210854715201599821e-14i) (num-test (atan -8.3886080e+06-1.0e+00i) -1.5707962075856070685e0-1.4210854715201599821e-14i) (num-test (atan 8.3886080e+06+2.0e+00i) 1.5707962075856070685e0+2.8421709430401987951e-14i) (num-test (atan 8.3886080e+06-2.0e+00i) 1.5707962075856070685e0-2.8421709430401987951e-14i) (num-test (atan -8.3886080e+06+2.0e+00i) -1.5707962075856070685e0+2.8421709430401987951e-14i) (num-test (atan -8.3886080e+06-2.0e+00i) -1.5707962075856070685e0-2.8421709430401987951e-14i) (num-test (atan 8.3886080e+06+8.3886080e+06i) 1.5707962671902518438e0+5.9604644775390483828e-8i) (num-test (atan 8.3886080e+06-8.3886080e+06i) 1.5707962671902518438e0-5.9604644775390483828e-8i) (num-test (atan -8.3886080e+06+8.3886080e+06i) -1.5707962671902518438e0+5.9604644775390483828e-8i) (num-test (atan -8.3886080e+06-8.3886080e+06i) -1.5707962671902518438e0-5.9604644775390483828e-8i) (num-test (atan -2.225073858507201399999999999999999999996E-308) -2.225073858507201399999999999999999999996E-308) (num-test (atan 1.110223024625156799999999999999999999997E-16) 1.110223024625156799999999999999995438476E-16) (num-test (/ pi 2) (+ (* 2 (atan (/ (sqrt 2)))) (atan (/ (sqrt 8))))) (num-test (/ pi 4) (+ (* 12 (atan (/ 18))) (* 8 (atan (/ 57))) (* -5 (atan (/ 239))))) (num-test (/ pi 4) (+ (* 2 (atan 1/3)) (atan 1/7))) (num-test (/ pi 4) (+ (* 5 (atan 1/7)) (* 2 (atan 3/79)))) (num-test (/ pi 4) (+ (atan 1/2) (atan 1/3))) (num-test (/ pi 4) (- (* 2 (atan 1/2)) (atan 1/7))) (num-test (/ pi 4) (- (* 4 (atan (/ 1 5))) (atan (/ 1 239)))) (num-test (* 4 (+ (* 3 (atan 1/4)) (atan 1/20) (atan 1/1985))) pi) (num-test (+ (* 176 (atan (/ 57))) (* 28 (atan (/ 239))) (* -48 (atan (/ 682))) (* 96 (atan (/ 12943)))) pi) (num-test (+ (* 2 (atan (/ (sqrt 2)))) (atan (/ (sqrt 8)))) (/ pi 2)) (num-test (+ (* 48 (atan (/ 49))) (* 128 (atan (/ 57))) (* -20 (atan (/ 239))) (* 48 (atan (/ 110443)))) pi) (num-test (/ (+ (atan (/ 239)) (atan (/ 70)) (- (atan (/ 99)))) 2) (+ (atan (/ 408)) (atan (/ 577)))) (num-test (atan (/ -1 (sqrt 3))) (/ pi -6)) (num-test (atan (sqrt 3)) (/ pi 3)) (num-test (atan 1/2 1/2) 0.78539816339745) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 atan num (atan num) val))) (list (list 0 0) (list 1 0.78539816339745) (list 2 1.1071487177941) (list 3 1.2490457723983) (list -1 -0.78539816339745) (list -2 -1.1071487177941) (list -3 -1.2490457723983) (list 9223372036854775807 1.5707963267949) (list -9223372036854775808 -1.5707963267949) (list 1/2 0.46364760900081) (list 1/3 0.32175055439664) (list -1/2 -0.46364760900081) (list -1/3 -0.32175055439664) (list 1/9223372036854775807 1.0842021724855e-19) (list 0.0 0.0) (list 1.0 0.78539816339745) (list 2.0 1.1071487177941) (list -2.0 -1.1071487177941) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309) (list 1e+16 1.5707963267949) (list +inf.0 1.5707963267949) (list -inf.0 -1.5707963267949) (list 0+2i 1.5707963267949+0.54930614433405i) (list 1+1i 1.0172219678979+0.40235947810853i) (list 1-1i 1.0172219678979-0.40235947810853i) (list -1+1i -1.0172219678979+0.40235947810853i) (list -1-1i -1.0172219678979-0.40235947810853i) (list 0.1+0.1i 0.10065855418732+0.099325449367251i) (list 1e+16+1e+16i 1.5707963267949+5.5511151231258e-17i) (list 1e-16+1e-16i 1e-16+1.1102230246252e-16i) )) ;; the x=0 cases are errors in clisp (num-test (atan 0 0) 0.0) (num-test (atan 0 0.0) 0.0) (num-test (atan 0 1) 0.0) (num-test (atan 0 -1) pi) (num-test (atan 0 2) 0.0) (num-test (atan 0 -2) pi) (num-test (atan 0 1.5) 0.0) (num-test (atan 0 -1.5) pi) (num-test (atan 0 3.0) 0.0) (num-test (atan 0 -3.0) pi) (num-test (atan 0 4.0) 0.0) (num-test (atan 0 -4.0) pi) (num-test (atan 0 pi) 0.0) (num-test (atan 0 (- pi)) pi) (num-test (atan 0.0 0) 0.0) (num-test (atan 0.0 0.0) 0.0) (num-test (atan 0.0 1) 0.0) (num-test (atan 0.0 -1) pi) (num-test (atan 0.0 2) 0.0) (num-test (atan 0.0 -2) pi) (num-test (atan 0.0 1.5) 0.0) (num-test (atan 0.0 -1.5) pi) (num-test (atan 0.0 3.0) 0.0) (num-test (atan 0.0 -3.0) pi) (num-test (atan 0.0 4.0) 0.0) (num-test (atan 0.0 -4.0) pi) (num-test (atan 0.0 pi) 0.0) (num-test (atan 0.0 (- pi)) pi) (num-test (atan 1 0) 1.5707963267949) (num-test (atan 1 0.0) 1.5707963267949) (num-test (atan 1 1) 0.78539816339745) (num-test (atan 1 -1) 2.3561944901923) (num-test (atan 1 2) 0.46364760900081) (num-test (atan 1 -2) 2.677945044589) (num-test (atan 1 1.5) 0.58800260354757) (num-test (atan 1 -1.5) 2.5535900500422) (num-test (atan 1 3.0) 0.32175055439664) (num-test (atan 1 -3.0) 2.8198420991932) (num-test (atan 1 4.0) 0.24497866312686) (num-test (atan 1 -4.0) 2.8966139904629) (num-test (atan 1 pi) 3.081690711159849357869996080340530985905E-1) (num-test (atan 1 (- pi)) 2.833423582473808302675643775245449785612E0) (num-test (atan -1 0) -1.5707963267949) (num-test (atan -1 0.0) -1.5707963267949) (num-test (atan -1 1) -0.78539816339745) (num-test (atan -1 -1) -2.3561944901923) (num-test (atan -1 2) -0.46364760900081) (num-test (atan -1 -2) -2.677945044589) (num-test (atan -1 1.5) -0.58800260354757) (num-test (atan -1 -1.5) -2.5535900500422) (num-test (atan -1 3.0) -0.32175055439664) (num-test (atan -1 -3.0) -2.8198420991932) (num-test (atan -1 4.0) -0.24497866312686) (num-test (atan -1 -4.0) -2.8966139904629) (num-test (atan -1 pi) -3.081690711159849357869996080340530985905E-1) (num-test (atan -1 (- pi)) -2.833423582473808302675643775245449785612E0) (num-test (atan 2 0) 1.5707963267949) (num-test (atan 2 0.0) 1.5707963267949) (num-test (atan 2 1) 1.1071487177941) (num-test (atan 2 -1) 2.0344439357957) (num-test (atan 2 2) 0.78539816339745) (num-test (atan 2 -2) 2.3561944901923) (num-test (atan 2 1.5) 0.92729521800161) (num-test (atan 2 -1.5) 2.2142974355882) (num-test (atan 2 3.0) 0.58800260354757) (num-test (atan 2 -3.0) 2.5535900500422) (num-test (atan 2 4.0) 0.46364760900081) (num-test (atan 2 -4.0) 2.677945044589) (num-test (atan 2 pi) 5.669115049410094050828977467226191538068E-1) (num-test (atan 2 (- pi)) 2.574681148648783833379745636556883730391E0) (num-test (atan -2 0) -1.5707963267949) (num-test (atan -2 0.0) -1.5707963267949) (num-test (atan -2 1) -1.1071487177941) (num-test (atan -2 -1) -2.0344439357957) (num-test (atan -2 2) -0.78539816339745) (num-test (atan -2 -2) -2.3561944901923) (num-test (atan -2 1.5) -0.92729521800161) (num-test (atan -2 -1.5) -2.2142974355882) (num-test (atan -2 3.0) -0.58800260354757) (num-test (atan -2 -3.0) -2.5535900500422) (num-test (atan -2 4.0) -0.46364760900081) (num-test (atan -2 -4.0) -2.677945044589) (num-test (atan -2 pi) -5.669115049410094050828977467226191538068E-1) (num-test (atan -2 (- pi)) -2.574681148648783833379745636556883730391E0) (num-test (atan 1.5 0) 1.5707963267949) (num-test (atan 1.5 0.0) 1.5707963267949) (num-test (atan 1.5 1) 0.98279372324733) (num-test (atan 1.5 -1) 2.1587989303425) (num-test (atan 1.5 2) 0.64350110879328) (num-test (atan 1.5 -2) 2.4980915447965) (num-test (atan 1.5 1.5) 0.78539816339745) (num-test (atan 1.5 -1.5) 2.3561944901923) (num-test (atan 1.5 3.0) 0.46364760900081) (num-test (atan 1.5 -3.0) 2.677945044589) (num-test (atan 1.5 4.0) 0.35877067027057) (num-test (atan 1.5 -4.0) 2.7828219833192) (num-test (atan 1.5 pi) 4.454574939105981596935303215574368401686E-1) (num-test (atan 1.5 (- pi)) 2.696135159679195078769113061722066044025E0) (num-test (atan -1.5 0) -1.5707963267949) (num-test (atan -1.5 0.0) -1.5707963267949) (num-test (atan -1.5 1) -0.98279372324733) (num-test (atan -1.5 -1) -2.1587989303425) (num-test (atan -1.5 2) -0.64350110879328) (num-test (atan -1.5 -2) -2.4980915447965) (num-test (atan -1.5 1.5) -0.78539816339745) (num-test (atan -1.5 -1.5) -2.3561944901923) (num-test (atan -1.5 3.0) -0.46364760900081) (num-test (atan -1.5 -3.0) -2.677945044589) (num-test (atan -1.5 4.0) -0.35877067027057) (num-test (atan -1.5 -4.0) -2.7828219833192) (num-test (atan -1.5 pi) -4.454574939105981596935303215574368401686E-1) (num-test (atan -1.5 (- pi)) -2.696135159679195078769113061722066044025E0) (num-test (atan 3.0 0) 1.5707963267949) (num-test (atan 3.0 0.0) 1.5707963267949) (num-test (atan 3.0 1) 1.2490457723983) (num-test (atan 3.0 -1) 1.8925468811915) (num-test (atan 3.0 2) 0.98279372324733) (num-test (atan 3.0 -2) 2.1587989303425) (num-test (atan 3.0 1.5) 1.1071487177941) (num-test (atan 3.0 -1.5) 2.0344439357957) (num-test (atan 3.0 3.0) 0.78539816339745) (num-test (atan 3.0 -3.0) 2.3561944901923) (num-test (atan 3.0 4.0) 0.64350110879328) (num-test (atan 3.0 -4.0) 2.4980915447965) (num-test (atan 3.0 pi) 7.623475341648745879175385302461797760774E-1) (num-test (atan 3.0 (- pi)) 2.379245119424918650545104853033323108118E0) (num-test (atan -3.0 0) -1.5707963267949) (num-test (atan -3.0 0.0) -1.5707963267949) (num-test (atan -3.0 1) -1.2490457723983) (num-test (atan -3.0 -1) -1.8925468811915) (num-test (atan -3.0 2) -0.98279372324733) (num-test (atan -3.0 -2) -2.1587989303425) (num-test (atan -3.0 1.5) -1.1071487177941) (num-test (atan -3.0 -1.5) -2.0344439357957) (num-test (atan -3.0 3.0) -0.78539816339745) (num-test (atan -3.0 -3.0) -2.3561944901923) (num-test (atan -3.0 4.0) -0.64350110879328) (num-test (atan -3.0 -4.0) -2.4980915447965) (num-test (atan -3.0 pi) -7.623475341648745879175385302461797760774E-1) (num-test (atan -3.0 (- pi)) -2.379245119424918650545104853033323108118E0) (num-test (atan 4.0 0) 1.5707963267949) (num-test (atan 4.0 0.0) 1.5707963267949) (num-test (atan 4.0 1) 1.325817663668) (num-test (atan 4.0 -1) 1.8157749899218) (num-test (atan 4.0 2) 1.1071487177941) (num-test (atan 4.0 -2) 2.0344439357957) (num-test (atan 4.0 1.5) 1.2120256565243) (num-test (atan 4.0 -1.5) 1.9295669970655) (num-test (atan 4.0 3.0) 0.92729521800161) (num-test (atan 4.0 -3.0) 2.2142974355882) (num-test (atan 4.0 4.0) 0.78539816339745) (num-test (atan 4.0 -4.0) 2.3561944901923) (num-test (atan 4.0 pi) 9.050225767665427556408039831275762329032E-1) (num-test (atan 4.0 (- pi)) 2.236570076823250482821839400151926651295E0) (num-test (atan -4.0 0) -1.5707963267949) (num-test (atan -4.0 0.0) -1.5707963267949) (num-test (atan -4.0 1) -1.325817663668) (num-test (atan -4.0 -1) -1.8157749899218) (num-test (atan -4.0 2) -1.1071487177941) (num-test (atan -4.0 -2) -2.0344439357957) (num-test (atan -4.0 1.5) -1.2120256565243) (num-test (atan -4.0 -1.5) -1.9295669970655) (num-test (atan -4.0 3.0) -0.92729521800161) (num-test (atan -4.0 -3.0) -2.2142974355882) (num-test (atan -4.0 4.0) -0.78539816339745) (num-test (atan -4.0 -4.0) -2.3561944901923) (num-test (atan -4.0 pi) -9.050225767665427556408039831275762329032E-1) (num-test (atan -4.0 (- pi)) -2.236570076823250482821839400151926651295E0) (num-test (atan pi 0) 1.570796326794896619231321691639751442098E0) (num-test (atan pi 0.0) 1.570796326794896619231321691639751442098E0) (num-test (atan pi 1) 1.262627255678911683444322083605698343509E0) (num-test (atan pi -1) 1.878965397910881555018321299673804540687E0) (num-test (atan pi 2) 1.003884821853887214148423944917132288294E0) (num-test (atan pi -2) 2.137707831735906024314219438362370595907E0) (num-test (atan pi 1.5) 1.125338832884298459537791370082314601928E0) (num-test (atan pi -1.5) 2.016253820705494778924852013197188282274E0) (num-test (atan pi 3.0) 8.084487926300220313137831613935716660202E-1) (num-test (atan pi -3.0) 2.333143860959771207148860221885931218181E0) (num-test (atan pi 4.0) 6.657737500283538635905177085121752091944E-1) (num-test (atan pi -4.0) 2.475818903561439374872125674767327675004E0) (num-test (atan pi pi) 7.853981633974483096156608458198757210488E-1) (num-test (atan pi (- pi)) 2.356194490192344928846982537459627163149E0) (num-test (atan (- pi) 0) -1.570796326794896619231321691639751442098E0) (num-test (atan (- pi) 0.0) -1.570796326794896619231321691639751442098E0) (num-test (atan (- pi) 1) -1.262627255678911683444322083605698343509E0) (num-test (atan (- pi) -1) -1.878965397910881555018321299673804540687E0) (num-test (atan (- pi) 2) -1.003884821853887214148423944917132288294E0) (num-test (atan (- pi) -2) -2.137707831735906024314219438362370595907E0) (num-test (atan (- pi) 1.5) -1.125338832884298459537791370082314601928E0) (num-test (atan (- pi) -1.5) -2.016253820705494778924852013197188282274E0) (num-test (atan (- pi) 3.0) -8.084487926300220313137831613935716660202E-1) (num-test (atan (- pi) -3.0) -2.333143860959771207148860221885931218181E0) (num-test (atan (- pi) 4.0) -6.657737500283538635905177085121752091944E-1) (num-test (atan (- pi) -4.0) -2.475818903561439374872125674767327675004E0) (num-test (atan (- pi) pi) -7.853981633974483096156608458198757210488E-1) (num-test (atan (- pi) (- pi)) -2.356194490192344928846982537459627163149E0) (num-test (atan 3037000500 1/3037000500) 1.570796326794896619122901474392911039606E0) (num-test (atan most-positive-fixnum) 1.570796326794896619122901474391200998685E0) (num-test (atan 1/3037000500 3037000500) 1.084202172468404024919078833314741441372E-19) (s7-test (atan) 'error) (s7-test (atan "hi") 'error) (s7-test (atan 1.0+23.0i 1.0+23.0i) 'error) ;; XXX TODO: Fix this in core, fix it in numbers, or accept it being "broken" ;(s7-test (atan 0 1 2) 'error) (s7-test (atan 0 0-i) 'error) (s7-test (atan 1+i 0-i) 'error) (let ((formulas '((1/4 (1 1)) (1/4 (1 2) (1 3)) (1/4 (2 2) (-1 7)) (1/4 (2 3) (1 7)) (1/4 (4 5) (-1 239)) (1/4 (1 2) (1 4) (1 13)) (1/4 (1 2) (1 5) (1 8)) (1/4 (1 2) (2 6) (-1 117)) (1/4 (1 3) (2 4) (-1 38)) (1/4 (2 2) (-2 12) (1 41)) (1/4 (2 2) (-2 14) (1 1393)) (1/4 (2 2) (-2 17) (-1 41)) (1/4 (2 2) (-1 5) (1 18)) (1/4 (2 2) (-1 6) (1 43)) (1/4 (2 2) (-1 8) (-1 57)) (1/4 (2 2) (-1 9) (-1 32)) (1/4 (2 2) (-1 12) (-1 17)) (1/4 (2 3) (1 5) (-1 18)) (1/4 (2 3) (1 6) (-1 43)) (1/4 (2 3) (1 8) (1 57)) (1/4 (2 3) (1 9) (1 32)) (1/4 (2 3) (1 12) (1 17)) (1/4 (2 3) (2 12) (-1 41)) (1/4 (2 3) (2 14) (-1 1393)) (1/4 (2 3) (2 17) (1 41)) (1/4 (2 4) (1 7) (2 13)) (1/4 (2 5) (1 7) (2 8)) (1/4 (2 5) (3 7) (-2 57)) (1/4 (2 5) (3 8) (1 57)) (1/4 (2 6) (3 7) (2 68)) (1/4 (2 7) (4 8) (1 239)) (1/4 (3 3) (-2 11) (1 682)) (1/4 (3 3) (-2 13) (-1 38)) (1/4 (3 3) (-1 5) (1 57)) (1/4 (3 3) (-1 6) (-1 68)) (1/4 (3 3) (-1 8) (-1 18)) (1/4 (3 4) (1 13) (-1 38)) (1/4 (3 4) (1 20) (1 1985)) (1/4 (3 5) (2 8) (-1 18)) (1/4 (3 7) (2 8) (2 18)) (1/4 (3 7) (4 11) (-2 682)) (1/4 (3 7) (4 13) (2 38)) (1/4 (4 3) (-4 8) (-1 239)) (1/4 (4 4) (-1 7) (-2 38)) (1/4 (4 4) (-4 21) (-1 239)) (1/4 (4 5) (-2 408) (1 1393)) (1/4 (4 5) (-2 478) (1 54608393)) (1/4 (4 5) (-2 577) (-1 1393)) (1/4 (4 5) (-1 41) (2 99)) (1/4 (4 5) (-1 70) (1 99)) (1/4 (4 5) (-1 213) (1 1958)) (1/4 (4 5) (-1 226) (1 4155)) (1/4 (4 5) (-1 237) (1 28322)) (1/4 (4 5) (-1 238) (1 56883)) (1/4 (4 5) (-1 240) (-1 57361)) (1/4 (4 5) (-1 241) (-1 28800)) (1/4 (4 5) (-1 252) (-1 4633)) (1/4 (4 5) (-1 265) (-1 2436)) (1/4 (4 5) (-1 408) (-1 577)) (1/4 (4 5) (1 41) (-2 70)) (1/4 (4 6) (1 7) (-2 117)) (1/4 (4 6) (4 31) (-1 239)) (1/4 (4 7) (4 18) (-1 239)) (1/4 (5 5) (-3 18) (-2 57)) (1/4 (5 6) (-1 43) (-2 117)) (1/4 (5 6) (-1 68) (-3 117)) (1/4 (-29 239) (256 378) (200 829) (244 882) (-388 993) (324 2943) (-144 18543)) (1/4 (-4 307) (394 577) (163 1393) (-12 12238) (-24 58911) (-68 1999509) (-68 11653127)) (1/4 (7 10) (2 50) (4 100) (1 682) (4 1000) (3 1303) (-4 90109)) (1/4 (7 10) (8 100) (1 682) (4 1000) (3 1303) (-4 90109) (-2 500150)) (1/4 (12 18) (8 307) (46 577) (19 1393) (-8 2827807) (-16 11653127) (-8 16480443)) (1/4 (17 23) (11 882) (24 931) (10 1143) (-2 34208) (-8 44179) (-13 485298)) (1/4 (29 268) (198 378) (142 829) (186 882) (-301 993) (237 2943) (-115 18543)) (1/4 (43 57) (22 746) (-2 1568) (1 4662) (28 12943) (14 32807) (11 157318)) (1/4 (44 515) (95 538) (127 682) (176 782) (95 1068) (88 4030) (17 12943)) (1/4 (76 682) (190 746) (271 882) (315 2917) (-132 9466) (295 12943) (-95 19703)) (1/4 (83 107) (17 4443) (68 11343) (-5 113568) (-34 595667) (-5 23481902) (5 168925949733307)) (1/4 (83 107) (17 4443) (68 11343) (-5 111693) (-34 595667) (5 9503057) (5 232633636378307)) (1/4 (95 418) (171 682) (176 882) (315 2917) (-132 9466) (105 12943) (95 16693)) (1/4 (100 437) (254 577) (127 1393) (44 2072) (24 2943) (-12 16432) (-100 28800)) (1/4 (122 162) (22 568) (-29 1432) (83 5087) (-7 6107) (-10 27493) (-29 30027)) (1/4 (122 183) (108 1177) (29 1393) (22 4443) (54 5087) (-64 7078) (-10 27493)) (1/4 (122 418) (237 557) (29 1068) (144 3458) (-61 5087) (122 16452) (105 27493)) (1/4 (127 239) (100 343) (-56 2072) (-76 2943) (100 7983) (-12 16432) (100 28322)) (1/4 (127 239) (212 1068) (-144 2072) (188 2309) (-200 6105) (376 6807) (288 13637)) (1/4 (127 239) (400 1068) (44 2072) (-376 2943) (-200 6105) (100 13637) (188 16432)) (1/4 (127 682) (227 788) (227 843) (44 2072) (51 2943) (-27 12943) (88 16432)) (1/4 (127 682) (454 818) (271 1303) (-403 2943) (-44 6118) (-254 12943) (-183 3014557)) (1/4 (171 239) (68 788) (-56 1744) (36 2943) (44 6613) (-112 13603) (144 28322)) (1/4 (171 239) (68 993) (-20 2943) (56 4443) (-44 13252) (-112 17088) (156 28322)) (1/4 (171 239) (124 993) (-56 1252) (56 2855) (-76 2943) (-100 13252) (100 28322)) (1/4 (171 682) (183 788) (227 843) (95 2943) (44 6613) (-115 12943) (88 28322)) (1/4 (171 682) (271 882) (95 993) (315 2917) (95 2943) (-227 9466) (200 12943)) (1/4 (171 682) (366 1068) (139 2436) (271 5357) (315 5507) (227 6962) (-71 12943)) (1/4 (176 463) (32 682) (241 798) (241 3141) (-58 5357) (-122 12943) (-51 390112)) (1/4 (176 557) (244 757) (90 1068) (61 1393) (22 3458) (122 11018) (44 27493)) (1/4 (179 239) (44 5357) (80 5507) (156 12943) (8 17923) (48 32807) (-40 157318)) (1/4 (179 239) (120 4662) (4 5357) (116 12943) (-32 17923) (88 32807) (40 390112)) (1/4 (179 233) (120 4662) (4 5357) (-63 12943) (-32 17923) (-91 32807) (40 390112)) (1/4 (183 239) (32 682) (-88 1143) (132 2673) (68 12943) (-132 34208) (-44 44179)) (1/4 (183 239) (32 1023) (-68 5832) (12 111693) (-100 6826318) (-12 9503057) (-12 232633636378307)) (1/4 (183 239) (32 1023) (-68 5832) (12 112068) (-100 6826318) (-12 13288972) (-12 49541920807)) (1/4 (183 239) (32 1023) (-68 5832) (12 113568) (-100 6826318) (12 23476958) (-12 111432033307)) (1/4 (183 239) (32 1023) (-68 5832) (12 113568) (-100 6826318) (12 23481005) (-12 612463280182)) (1/4 (183 239) (32 1023) (-68 5832) (12 113568) (-100 6826318) (12 23463218) (-12 29483238307)) (1/4 (183 239) (32 1023) (-68 5832) (12 113568) (-100 6826318) (12 23481902) (-12 168925949733307)) (1/4 (183 294) (44 905) (115 1292) (88 3957) (-32 12238) (68 12943) (51 114483)) (1/4 (183 307) (32 682) (95 1143) (132 2673) (68 12943) (51 34208) (139 44179)) (1/4 (183 378) (115 557) (29 1068) (122 2943) (144 3458) (-244 14318) (44 27493)) (1/4 (183 378) (144 606) (86 1772) (122 2943) (-115 6118) (-71 14318) (-71 27493)) (1/4 (183 378) (144 905) (115 1057) (151 2943) (-29 3957) (-100 14318) (-100 27493)) (1/4 (183 378) (215 682) (44 1432) (51 2943) (-315 5257) (-71 12943) (44 13043)) (1/4 (183 538) (215 682) (51 1068) (44 2309) (88 2673) (88 3039) (17 12943)) (1/4 (183 568) (215 682) (278 1636) (-139 6107) (112 12943) (-234 19703) (132 32807)) (1/4 (186 307) (41 378) (27 829) (-13 1713) (122 2943) (42 12238) (71 58911)) (1/4 (190 577) (76 682) (176 882) (95 1393) (220 2917) (-132 9466) (200 12943)) (1/4 (198 577) (200 606) (127 1393) (-20 2943) (112 3740) (-44 6118) (56 11018)) (1/4 (199 233) (-60 1393) (-76 5357) (-43 12943) (-152 17923) (9 32807) (120 1049433)) (1/4 (215 233) (-216 1568) (12 4662) (-64 6898) (113 12943) (-51 32807) (-32 534568)) (1/4 (215 239) (-248 1568) (76 4662) (296 12943) (132 32807) (64 83270) (32 1493208)) (1/4 (160 200) (-1 239) (-4 515) (-8 4030) (-16 50105) (-16 62575) (-32 500150) (-80 4000300)) (1/4 (215 682) (644 1568) (227 5767) (366 6898) (-532 12943) (227 24331) (-51 32807) (183 534568)) (1/4 (295 4193) (3767 5507) (593 18543) (-1228 39307) (2068 55603) (-962 211050) (-708 390112) (-1587 2867938)) (1/4 (537 1393) (1118 5357) (952 12943) (3032 17923) (-1384 32807) (-1194 157318) (-1870 1049433) (796 21638297)) (1/4 (581 1023) (183 4443) (664 5832) (732 11343) (-171 110443) (-366 595667) (171 4841182) (83 6826318)) (1/4 (581 1252) (764 4853) (1030 5832) (-398 58898) (-764 97232) (195 110443) (537 4841182) (266 6826318)) (1/4 (581 1252) (764 5593) (1030 5827) (366 58898) (195 110443) (537 4841182) (-764 6826318) (-1030 1561886607)) (1/4 (581 1252) (764 5618) (1030 5832) (366 58898) (195 110443) (764 1256859) (537 4841182) (266 6826318)) (1/4 (581 1252) (764 5593) (1030 5832) (366 69051) (195 110443) (366 369957) (171 4841182) (266 6826318)) (1/4 (581 1252) (764 5593) (1030 11557) (1030 11773) (366 58898) (195 110443) (537 4841182) (266 6826318)) (1/4 (581 1252) (1030 5507) (764 5593) (366 58898) (-1030 98821) (195 110443) (537 4841182) (266 6826318)) (1/4 (764 1068) (298 5832) (581 26307) (-183 78813) (-171 110443) (215 314982) (171 4841182) (83 6826318)) (1/4 (808 1477) (1308 2436) (-1635 5283) (-417 5507) (593 6962) (632 390112) (-561 2733307) (266 23747457)) (1/4 (1074 1568) (840 5357) (-779 12943) (625 17923) (-1106 32807) (657 198505) (-259 390112) (657 24185182)) (1/4 (1074 4246) (1257 5357) (1731 6107) (295 12943) (625 19703) (-481 32807) (-1042 39307) (398 390112)) (1/4 (1484 4693) (2097 4831) (366 18543) (1189 49457) (-227 123093) (-879 128643) (481 27872057) (-266 31895807)) (1/4 (1738 4193) (1699 4246) (144 6687) (-1443 32318) (-266 39307) (337 235318) (-227 390112) (-481 2282363)) (1/4 (2363 4557) (1218 5507) (1850 18543) (-266 39307) (-2658 49457) (1257 123093) (-1484 390112) (481 27872057)) (1/4 (-31739656 201229582) (38819595 231373438) (110380200 284862638) (122355452 312322593) (-134055653 496651953) (5301720 509435077) (63861353 543644509) (68679613 934981432) (130575087 1845907403) (-32548340 2189376182) (-71616726 2539791558) (98822066 4732978887) (119051879 7804016832) (48482068 9233371207) (-99832073 41734246913) (-99143267 66492889557) (-25601898 73276714818) (-79323772 579766497643)) (1/4 (16106659 103224943) (48702787 196047454) (18674705 199762118) (8786524 201229582) (-16824928 244653118) (-9582339 261221282) (33092716 266981905) (50379909 270684757) (24748365 909140573) (31675677 1770638022) (1576733 2189376182) (-4742586 2701984943) (-34586991 5475957057) (10864048 14033378718) (-13079131 18986886768) (22266057 25220059245) (17791526 34840696582) (-12650410 193100304493)) (1/4 (154370374 124845505) (-90941691 193788912) (64454803 196047454) (-82996236 201229582) (109691394 244653118) (-15562779 462333568) (6518215 553806443) (-169821027 1134156517) (-244516782 1222853176) (100563577 2154947322) (-47118309 2189376182) (-35713908 4006581229) (60656646 5475957057) (-4001125 18986886768) (-68810571 37093513413) (-20888958 100083704193) (16990004 250645741818) (-62587614 5142102426318)) (1/4 (-119375678 193788912) (61799442 201229582) (-19991865 272525023) (20438744 321390012) (88331413 331905423) (103467976 343841922) (88464202 378026293) (138122046 600536193) (44232101 653023206) (115219328 846974497) (-81969855 1033937133) (-63521464 1454097393) (-118694678 2189376182) (117332455 2322170807) (-26482877 6884660047) (-18702052 29546599818) (7415308 250645741818) (166718050 512223806648)) (1/4 (-85386445 101859193) (4420755 112519818) (43555859 193788912) (15003774 194195097) (108912996 201229582) (61225652 231373438) (16824928 262992072) (73421340 284862638) (123118321 1057929843) (-10593254 2189376182) (40618746 2539791558) (73863237 2616939213) (-30947737 14811180432) (58354910 41734246913) (19908612 66492889557) (5345839 73276714818) (-90280386 120563046313) (61328880 579766497643)) (1/4 (-75143577 193788912) (17567341 201229582) (64670845 321390012) (88331413 331905423) (103467976 343841922) (68472337 372954564) (49657844 600536193) (115219328 846974497) (24240236 1012047353) (-81969855 1033937133) (24942738 1454097393) (-118694678 2189376182) (73100354 2322170807) (-88464202 4549886677) (-26482877 6884660047) (-18702052 29546599818) (7415308 250645741818) (34021747 512223806648)) (1/4 (-9761163 108220762) (13910116 144252856) (12032992 157157432) (55358773 167207057) (6697039 168623905) (-28651627 193788912) (1825738 201229582) (67020547 215266693) (-1575761 216260702) (45238607 284862638) (10024910 934981432) (20338355 2189376182) (-450675 4832545807) (-27703534 4935283579) (-25688998 7804016832) (-58020549 18986886768) (-28330426 120563046313) (-20446387 69971515635443)) (1/4 (-9719634 193788912) (17567341 201229582) (70452403 204415882) (12270610 244653118) (18184957 313467682) (44573394 426775692) (3945487 600536193) (33076315 892642643) (62731148 919331002) (18631836 1012047353) (58964485 1454097393) (32836016 2032914193) (-3430506 2189376182) (-19017973 5475957057) (60427493 6884660047) (-9222216 16406542707) (25467476 22827763470) (-8020348 29546599818)) (1/4 (-7707046 100457781) (102467557 168623905) (-37989469 201229582) (-19264491 216904033) (74130709 231373438) (9117882 262992072) (61898132 284862638) (-26046661 314198789) (20721724 327012132) (-6893934 1111885489) (-40541219 1183092682) (-40255386 2189376182) (82347539 2296713307) (31354293 12988236682) (27538131 18221678207) (-68243977 41734246913) (12646329 73276714818) (-45544955 193100304493)) (1/4 (-6829481 193788912) (49141523 227661182) (80561462 231373438) (12671730 244653118) (29897458 284862638) (-73630486 355671793) (58626712 398795108) (62468573 509435077) (24454447 543644509) (-19908612 657922943) (28905471 1057929843) (35237534 1845907403) (26678061 2189376182) (-117350972 4866438247) (-61240161 5475957057) (23212961 9075730623) (-20886351 9233371207) (-65421299 60402345333)) (1/4 (-6249813 193788912) (56771042 201229582) (28076746 231373438) (-19468648 262992072) (30639871 266981905) (19911270 284862638) (130457979 532399876) (96830507 672554667) (-25661007 1057929843) (13459441 1111885489) (-45480502 1183092682) (5693286 1770638022) (-21577251 2170952313) (-67486342 2189376182) (2925523 2701984943) (27538131 18221678207) (-7198038 193100304493) (36293576 307026452057)) (1/4 (-60656646 143846482) (38271221 144309885) (138138220 157565949) (35739707 193788912) (-42115413 201229582) (-49270023 231373438) (94471578 278263393) (-68287996 398795108) (87062724 462333568) (-21411533 593897943) (-13257608 1057929843) (-106971336 1206519637) (34427295 2189376182) (166256019 4006581229) (111296506 4832545807) (58999250 18986886768) (100563577 373139596292) (100694535 5142102426318)) (1/4 (-5621437 103224943) (81294931 115811807) (23943179 193788912) (33709426 199762118) (-2077524 201229582) (-31310435 261221282) (4978864 266981905) (-15147806 282218776) (-1688365 909140573) (20050974 1047764193) (-18279356 1770638022) (-1777511 2189376182) (19200593 2701984943) (-21507860 5475957057) (30332696 34840696582) (26011854 48312162432) (7938525 193100304493) (9186926 250645741818)) (1/4 (-5497394 101057042) (65180148 144309885) (53832596 193788912) (48554212 201229582) (52075350 447821668) (-105963621 539290393) (-8554603 2060228568) (7313117 2112819717) (-57858314 2189376182) (-3891660 2572149874) (7518287 3261365450) (-19908612 4044044333) (12568802 4866438247) (-83992146 5494891577) (-68408704 9233371207) (6071631 20336334426) (26993421 45384196187) (-20080982 71617196968)) (1/4 (-52897653 193788912) (17567341 201229582) (88637360 214539684) (16824928 329492391) (87365276 426775692) (89084239 434859193) (64670845 478798161) (-60879340 600536193) (51820567 706366957) (25661007 1033937133) (-7721255 1119211358) (-11874055 1454097393) (-46608525 2189376182) (-7415308 2674664693) (38361126 6884660047) (-54246761 29546599818) (29095538 42354792693) (55834766 512223806648)) (1/4 (-51730315 193788912) (50509639 201229582) (-2925523 224497457) (34338149 231373438) (56651725 266981905) (88974774 284862638) (6009207 367829623) (44851350 532399876) (77361859 672554667) (-36293576 1047764193) (19819495 1057929843) (-26011854 1695830317) (-10691678 1770638022) (-51609424 2170952313) (-31380534 2189376182) (21276728 18221678207) (9186926 250645741818) (-16384964 4125516427007)) (1/4 (-50738726 193788912) (95363435 196047454) (69453144 225823278) (69510447 227661182) (22432893 244653118) (-32772323 266981905) (-17689880 284862638) (-25151223 657922943) (45597610 672554667) (-15126313 934981432) (76492809 1770638022) (84039104 2189376182) (-104948381 4832545807) (-85627080 5475957057) (-40656362 5684017953) (-5242611 7804016832) (-197723175 18986886768) (42533486 25220059245)) (1/4 (-28765620 120868561) (44046442 160007778) (67427201 167207057) (37325093 191800592) (70499068 270090468) (-57543499 289008998) (17519675 361632045) (-4374603 747769833) (-52576452 2674664693) (-7666625 2971354082) (83775059 3069221943) (44136928 4549886677) (-7704241 4832545807) (109211041 4935283579) (43406332 5271470807) (-4967047 8815417307) (24253605 14033378718) (72936300 69392205693)) (1/4 (-19504206 100457781) (24986381 107793452) (26438497 121042733) (40255386 160007778) (28377269 168623905) (23815821 314198789) (-2374068 361632045) (25057307 672554667) (-9351768 773302059) (11008080 1479406293) (574237 2296713307) (-3020779 2701984943) (17648998 4038832337) (-9422284 12139595709) (27538131 12957904393) (20007517 12988236682) (23727647 18710140581) (-4711783 120563046313)) (1/4 (-42543389 193788912) (74917830 201229582) (28076746 231373438) (16824928 262992072) (30639871 266981905) (74351634 284862638) (21577251 640348873) (78683719 672554667) (-25661007 1057929843) (-4687347 1111885489) (-27333714 1183092682) (5693286 1770638022) (8531273 2189376182) (-76017615 2674664693) (2925523 2701984943) (-39724039 4309606382) (27538131 18221678207) (68819577 193100304493)) (1/4 (-41665661 138884933) (61863206 168623905) (-24923249 201229582) (1860735 231373438) (152322833 244685917) (16824928 262992072) (45004160 284862638) (6816407 306903943) (-25731933 2189376182) (-2937113 2539791558) (-80514719 4100676432) (-30142453 5157407572) (88702086 17249711432) (10077565 18986886768) (-34456033 41734246913) (19908612 66492889557) (66436029 73276714818) (-10644159 579766497643)) (1/4 (-39775463 119742462) (20197545 168623905) (93476735 201229582) (1860735 231373438) (58490589 262992072) (86669821 284862638) (-4706801 437768635) (41665661 1258140850) (-35068662 1396533757) (-56669435 1624720807) (61079955 2189376182) (69090409 2539791558) (-73253757 3712239557) (42278290 41734246913) (-46591870 52254287493) (59684075 66492889557) (-12188492 73276714818) (-15350960 579766497643)) (1/4 (-3944315 103224943) (48706548 136899993) (18362609 186695067) (14767496 193788912) (-25501467 201229582) (-15136563 244653118) (29933522 261221282) (30079929 266981905) (117267526 480808760) (-30911261 1012047353) (40320881 1770638022) (53656250 2189376182) (20888958 2701984943) (-63283169 5475957057) (-32599626 37093513413) (-43463674 43917943025) (-64759288 193100304493) (21735578 5142102426318)) (1/4 (-3908713 100351813) (64565359 115453918) (26685223 201229582) (-8153925 214539684) (96935488 385231007) (15853328 459637173) (-19281720 539290393) (-48760063 883337939) (62688235 909140573) (-67639108 1282794079) (-5891323 1304967682) (-10583319 2189376182) (34749426 2572149874) (-55437542 3508373380) (-90085473 4427365493) (-35842901 5494891577) (-35317011 18986886768) (-22926686 45119420807)) (1/4 (-36515828 110175338) (5722932 193788912) (17567341 201229582) (83804410 203283777) (85603231 244653118) (79850836 273202197) (68353757 345311195) (-87424385 549758463) (-63893191 1454097393) (-111387800 1459933093) (69893108 1725455932) (-61767440 2189376182) (-19017973 5475957057) (102875038 6930719818) (47464799 16406542707) (21866697 29546599818) (-15003774 37093513413) (-46223313 5142102426318)) (1/4 (-36293576 132095062) (57870827 168623905) (-42543389 193788912) (35193791 201229582) (-8216830 231373438) (53118504 262992072) (30639871 266981905) (128791998 284862638) (60536931 672554667) (-25661007 1057929843) (49753017 1111885489) (-45480502 1183092682) (-30600290 1770638022) (-9615515 2189376182) (-69661629 2701984943) (63831707 18221678207) (29095538 193100304493) (-36293576 5142102426318)) (1/4 (-35775309 107793452) (-7119735 111530944) (127376638 115811807) (66649464 193788912) (-21949674 201229582) (-43413311 244653118) (-45561148 261221282) (49941099 266981905) (-9186926 396134107) (-886843 1770638022) (73138594 2189376182) (-39140796 2296713307) (61906878 2701984943) (-3565489 5458840213) (-21696619 5475957057) (-7498561 55237647473) (75356069 193100304493) (-1877124 579766497643)) (1/4 (-35368492 144309885) (-13432309 201229582) (124560353 231373438) (-8671679 284862638) (3303573 398795108) (141414744 509435077) (203277950 543644509) (-124589816 1845907403) (-32548340 2189376182) (-53309379 2539791558) (115883211 4732978887) (68679613 9075730623) (-1890198 9233371207) (19219806 41734246913) (19908612 66492889557) (60138860 73276714818) (-53675839 102428655030) (-10644159 579766497643)) (1/4 (-35368492 110911039) (50372266 113561432) (3303573 168623905) (-16735882 201229582) (74188087 231373438) (30000386 284862638) (106046252 509435077) (99229845 543644509) (-89221324 1845907403) (-67916832 2189376182) (-53309379 2539791558) (-15003774 3658567505) (65510945 4732978887) (-16893972 9233371207) (-19452259 41734246913) (-30463654 66492889557) (75142634 73276714818) (-10644159 579766497643)) (1/4 (-34897469 115453918) (87164915 118708522) (27407173 168623905) (87908983 193788912) (-27111639 201229582) (25214128 284862638) (-104763374 426775692) (55687060 600536193) (-49901243 909140573) (3434531 975229968) (-44950370 1454097393) (75180138 2189376182) (27482161 3508373380) (-68146942 4866438247) (-85620582 6884660047) (15583442 9233371207) (30725109 29546599818) (2193045 1442060060693)) (1/4 (-32461025 169937257) (42456472 193788912) (60136529 201229582) (45652872 230845763) (-11582317 231373438) (-12390325 448235443) (44415233 539290393) (59855124 595484173) (64938439 1057929843) (30600290 1500534537) (71357041 2189376182) (45920466 2616939213) (48826263 2701984943) (27854052 5494891577) (22522061 7193374037) (-21720539 11115923863) (1241486 14811180432) (-44678980 58240834569)) (1/4 (-30911476 193788912) (17567341 201229582) (68472337 272525023) (64670845 321390012) (88331413 331905423) (15003774 343841922) (5425743 600536193) (70987227 846974497) (-37737754 1033937133) (69174839 1454097393) (-30230476 2189376182) (28868253 2322170807) (-26482877 6884660047) (-44232101 24139206772) (-18702052 29546599818) (-44232101 50443911578) (7415308 250645741818) (-10210354 512223806648)) (1/4 (-30692741 227661182) (12504894 231373438) (-39446702 244653118) (114600079 262992072) (92590873 284862638) (113856011 314198789) (86140179 346369967) (-22467890 355671793) (-141382552 398795108) (59415160 657922943) (-7326899 1620933557) (-1037771 2189376182) (-79323772 8895085098) (-27205340 17997844652) (-10574983 41734246913) (-27904591 60402345333) (-79821190 73276714818) (16893972 102428655030)) (1/4 (-30361861 113561432) (85628068 168623905) (20493345 231373438) (53783788 262992072) (46894358 284862638) (65430523 1172624874) (36958860 1258140850) (-16893972 1624720807) (21304492 2189376182) (-1046915 2539791558) (-16436052 3658567505) (20222978 3712239557) (18632610 9549201618) (-27859034 41734246913) (-6816407 52254287493) (50270473 66492889557) (22880170 73276714818) (-10644159 579766497643)) (1/4 (-29735286 115453918) (-1890198 149299093) (12010178 168623905) (30661691 195053432) (7109402 201229582) (55743030 213255960) (32522426 231373438) (65751551 262992072) (35890388 284862638) (40220018 687606629) (-29216048 909140573) (-63654586 2189376182) (44099312 2539791558) (-33529628 41734246913) (-20830644 66492889557) (26660566 73276714818) (28204899 579766497643) (-48926623 1197009532318)) (1/2 (94283734 231373438) (147962666 262992072) (211308992 284862638) (-26800082 318942476) (-69173113 610076381) (-137945216 1111885489) (126007473 1183092682) (333203505 2189376182) (-250903561 2296713307) (248078871 2539791558) (-379960570 5458840213) (-73879914 18221678207) (132652425 30446482737) (68447160 41734246913) (-28954879 66492889557) (35907922 73276714818) (124495078 193100304493) (118351969 579766497643) (18339615 69971515635443)) (1/4 (-177112869 1047764193) (690072825 1057929843) (94777525 1082548618) (102841728 1770638022) (254740469 1845907403) (-7897447 2189376182) (-276135745 4866438247) (382919489 8634733487) (364832031 9233371207) (-255036003 18221678207) (-47281269 30446482737) (-14754756 31147706551) (145805470 35587716432) (-60553945 41734246913) (275062833 73276714818) (130937707 73745675437) (225667081 91140429801) (-58222931 120563046313) (217205407 250645741818) (-335335373 69971515635443)) (1/4 (48554212 1047764193) (-8064203 1695830317) (273129107 1845907403) (256152120 2060228568) (387484239 2170952313) (522262813 2189376182) (139928940 2426435870) (35269543 6249781117) (-116987170 9233371207) (-153310392 14885462059) (243523167 16346803247) (-191276069 18221678207) (-114320902 30446482737) (430509851 31147706551) (-62448154 35587716432) (118676670 41734246913) (-206756368 73276714818) (103732367 73745675437) (887580 250645741818) (-42628659 69971515635443)) (1/4 (59529729 1111885489) (411801489 1183092682) (-11697838 1770638022) (-10217933 2189376182) (178183864 2420845318) (481604223 2674664693) (200815307 2701984943) (18311409 4309606382) (-54066665 5684017953) (391091355 9566096322) (433050011 14033378718) (155959834 14474950443) (123563452 18221678207) (-322558047 18986886768) (-187246484 41734246913) (182267620 73276714818) (70949047 120563046313) (85657566 134237866432) (150508360 193100304493) (16824928 804006285737)) (1/4 (79674619 1057929843) (430112898 1183092682) (103029535 1770638022) (419995354 1845907403) (161719567 2189376182) (25897285 2701984943) (-165526275 3651666474) (-450635225 4866438247) (418811986 5684017953) (520079918 9233371207) (-370946465 11079391432) (11498734 14033378718) (1575319 15548138481) (-17734177 18221678207) (310673925 18986886768) (179773324 91140429801) (10643092 193100304493) (158038974 250645741818) (-165442692 804006285737) (119720378 11484937157318)) (1/4 (210413195 1047764193) (49034748 1057929843) (129893399 1111885489) (920835218 1222853176) (-367170458 1770638022) (-460082449 2154947322) (471386290 2189376182) (-4742586 2701984943) (-385386694 3651666474) (239038662 5684017953) (399473027 12988236682) (-298167989 14033378718) (111903950 15548138481) (-327400900 18221678207) (-789934617 18986886768) (-490722320 34352737807) (-639330225 193100304493) (-182267620 250645741818) (264670206 804006285737) (460026972 11484937157318)) (1/4 (245117311 1057929843) (-441536832 1111885489) (694624721 1183092682) (357582197 1845907403) (993878808 2189376182) (-264511823 2296713307) (279266579 2701984943) (-1351244216 4866438247) (255211890 9233371207) (142361641 10855443178) (-647040605 11079391432) (-55648319 15548138481) (-29232911 18221678207) (533067633 35587716432) (34223580 41734246913) (165442692 73276714818) (-215957611 91140429801) (786436927 120563046313) (939525243 193100304493) (311982932 250645741818)) (1/4 (290087814 1057929843) (129893399 1111885489) (189059832 1183092682) (312611694 1770638022) (-177755991 2189376182) (30639871 2539791558) (236310480 2701984943) (285108950 3651666474) (-530648699 5458840213) (208398791 5684017953) (381614163 14033378718) (81264079 15548138481) (-679782152 17249711432) (321741381 18221678207) (130900601 18986886768) (210413195 66492889557) (250865122 193100304493) (28145575 250645741818) (44970503 804006285737) (-460808246 11484937157318)) (1/4 (719865552 1057929843) (-120111015 1111885489) (-210078035 1183092682) (62607280 1770638022) (322252837 2189376182) (486314894 2701984943) (254469079 3651666474) (149133453 4832545807) (-401152271 5684017953) (491057480 7804016832) (-30639871 8995467682) (-328807860 14033378718) (392548235 15548138481) (-311284156 17058320068) (-669324927 18221678207) (-180383555 18986886768) (-60419034 193100304493) (278149989 250645741818) (325614788 804006285737) (-180163961 11484937157318)) (1/4 (764256596 1183092682) (340757269 1770638022) (82030807 2189376182) (-651971659 2296713307) (188678845 2539791558) (371182743 2701984943) (-541133952 5458840213) (282350263 5684017953) (261942239 9566096322) (414738602 14033378718) (-578034328 17249711432) (219993557 18221678207) (-126062774 18986886768) (-58097368 41734246913) (129149116 66492889557) (53118504 73276714818) (-68972608 120563046313) (210038089 193100304493) (285108950 579766497643) (16824928 804006285737)) (1/2 (-389355483 1111885489) (-85198635 1770638022) (942772580 2189376182) (860225796 2296713307) (958295292 2439473093) (1701938869 2701984943) (570217900 3651666474) (-653171089 5684017953) (1290597651 9566096322) (632981931 14033378718) (-258298232 15548138481) (-716081542 18221678207) (-448620821 18986886768) (-1711424041 41734246913) (1131248413 73276714818) (1650144299 120563046313) (1441452520 193100304493) (766713173 250645741818) (800363029 804006285737) (-1590316151 11484937157318)) (1/2 (-383575951 1082548618) (367447545 1695830317) (470326860 1845907403) (302791880 2060228568) (1332608020 2170952313) (1886585069 2189376182) (-562201563 2426435870) (610170129 2539791558) (-707278553 4732978887) (-215928441 6249781117) (-232950527 9233371207) (201602620 16346803247) (172870593 31147706551) (-125920121 35587716432) (696860645 41734246913) (207464734 66492889557) (-412488923 73276714818) (689924269 250645741818) (305596971 579766497643) (199162583 69971515635443)) (1/2 (468218462 2189376182) (1818521088 2439473093) (1312583386 2701984943) (121856072 5684017953) (-1109476277 6327662603) (570217900 8634733487) (1720710549 9566096322) (718180566 14033378718) (601927564 15548138481) (-1921221601 18221678207) (-59265338 18986886768) (1164382644 30446482737) (-936396880 41734246913) (701135515 73276714818) (1205140059 73745675437) (875117138 120563046313) (236312461 193100304493) (336600275 250645741818) (715164394 804006285737) (-815288990 11484937157318) (-860225796 69971515635443)) ))) (for-each (lambda (formula) (let ((r (/ 1 (car formula))) (sum 0.0)) (for-each (lambda (arg) (set! sum (+ sum (* (car arg) (atan (/ 1 (cadr arg))))))) (cdr formula)) (if (> (abs (- (* r sum) pi)) 1e-12) (begin (display formula) (display " = ") (display (* r sum)) (newline))))) formulas)) (let ((atans (list 0.00000000000000000000000000000000000000000000000000000000000000000000 0.04995839572194276141000628703484488149127708042350717441085345482998 0.09966865249116202737844611987802059024327832250431464801550877681002 0.14888994760949725058653039165586728099052584656913639751654183508627 0.19739555984988075837004976519479029344758510378785210151768894024103 0.24497866312686415417208248121127581091414409838118406712737591466735 0.29145679447786709199560462143289119350316759901206541927220608308729 0.33667481938672718139669863134176645842796861176681965716976593102220 0.38050637711236488630358791681043310449740571365810083757630562232420 0.42285392613294071296648279098114197360332058559089653470801277782477 0.46364760900080611621425623146121440202853705428612026381093308872019 0.50284321092786082733088202924527755577645581499776483101147435179592 0.54041950027058415544357836460859991013514825146259238811636023340959 0.57637522059118368022757047839377004593402018294846332167674413471879 0.61072596438920861654375887649023609381850306612882761584286773000023 0.64350110879328438680280922871732263804151059111531238286560611871351 0.67474094222355266305652097360981361507400625484071242312092170496930 0.70449406424221771665748034078199625698360683805607748632242138272858 0.73281510178650659164079207273428025198575567935825608631050693192821 0.75976275487577082892296119539998182400552294838843900175686400378812 0.78539816339744830961566084581987572104929234984377645524373614807695 0.80978357257016684662414585801888523310377327237135123533486105150550 0.83298126667443170541769356183636123851585134443710842085342312250327 0.85505273712601651097815432807058769283799489703232752323972864020297 0.87605805059819342311404752112834133907534524616033200346065614838499 0.89605538457134395617480071802993782702457844484684048736655059118459 0.91510070055336041656680197245527296654755880944161873770852665151657 0.93324752865620386989366255071265925262560793377140310475404520234906 0.95054684081207514789478913546381917504767901030880427426177057808809 0.96704699339746024466331914650201513140746494542545306371969751473184 0.98279372324732906798571061101466601449687745363162855676142508831798 0.99783018390619045494496187944270463542510496590550026609871776901127 1.01219701145133418325981347523809017175213711715353810435383625801215 1.02593241134335292660599590143869494280346122674543977431139573494988 1.03907225953609102762125033790727884531233378855364699989530509706554 1.05165021254837366745986731208629982963024430034204461753698029655611 1.06369782240255966094389111605254547856256296541932752568273985366635 1.07524465330906808242086208732184320752064516718532174460312177009311 1.08631839775787341806397958192567762897580047046812780208748680606431 1.09694499030013626798639002132512259906130967805041989207206852796014 1.10714871779409050301706546017853704007004764540143264667653920743371))) (let ((mxerr 0.0)) (do ((i 0 (+ i 1)) (x 0.0 (+ x 0.05))) ((= i 40)) (let ((err (abs (- (atan x) (list-ref atans i))))) (if (> err mxerr) (set! mxerr err)))) (test-assert (format #f "atan err: ~A" mxerr) (<= mxerr 1e-12)))) (test-end "atan") ;;; -------------------------------------------------------------------------------- ;;; sqrt ;;; -------------------------------------------------------------------------------- (test-begin "sqrt") (num-test (sqrt 0) 0) (num-test (sqrt 1) 1) (num-test (sqrt -1) 0.0+1.0i) (num-test (sqrt 2) 1.41421356237310) (num-test (sqrt -2) 0.0+1.41421356237310i) (num-test (sqrt 3) 1.73205080756888) (num-test (sqrt -3) 0.0+1.73205080756888i) (num-test (sqrt 10) 3.16227766016838) (num-test (sqrt -10) 0.0+3.16227766016838i) (num-test (sqrt 1234) 35.12833614050059) (num-test (sqrt -1234) 0.0+35.12833614050059i) (num-test (sqrt 1234000000) 35128.33614050059259) (num-test (sqrt -1234000000) 0.0+35128.33614050059259i) (num-test (sqrt 500029) 707.12728698587216) (num-test (sqrt -500029) 0.0+707.12728698587216i) (num-test (sqrt 362880) 602.39521910453436) (num-test (sqrt -362880) 0.0+602.39521910453436i) (num-test (sqrt 0/1) 0) (num-test (sqrt 0/2) 0) (num-test (sqrt 0/3) 0) (num-test (sqrt 0/10) 0) (num-test (sqrt 0/1234) 0) (num-test (sqrt 0/1234000000) 0) (num-test (sqrt 0/500029) 0) (num-test (sqrt 0/362880) 0) (num-test (sqrt 1/1) 1) (num-test (sqrt -1/1) 0.0+1.0i) (num-test (sqrt 1/2) 0.70710678118655) (num-test (sqrt -1/2) 0.0+0.70710678118655i) (num-test (sqrt 1/3) 0.57735026918963) (num-test (sqrt -1/3) 0.0+0.57735026918963i) (num-test (sqrt 1/10) 0.31622776601684) (num-test (sqrt -1/10) 0.0+0.31622776601684i) (num-test (sqrt 1/1234) 0.02846704711548) (num-test (sqrt -1/1234) 0.0+0.02846704711548i) (num-test (sqrt 1/1234000000) 0.00002846704712) (num-test (sqrt -1/1234000000) 0.0+0.00002846704712i) (num-test (sqrt 1/500029) 0.00141417255196) (num-test (sqrt -1/500029) 0.0+0.00141417255196i) (num-test (sqrt 1/362880) 0.00166003973519) (num-test (sqrt -1/362880) 0.0+0.00166003973519i) (num-test (sqrt 2/1) 1.41421356237310) (num-test (sqrt -2/1) 0.0+1.41421356237310i) (num-test (sqrt 2/2) 1) (num-test (sqrt -2/2) 0.0+1.0i) (num-test (sqrt 2/3) 0.81649658092773) (num-test (sqrt -2/3) 0.0+0.81649658092773i) (num-test (sqrt 2/10) 0.44721359549996) (num-test (sqrt -2/10) 0.0+0.44721359549996i) (num-test (sqrt 2/1234) 0.04025848411142) (num-test (sqrt -2/1234) 0.0+0.04025848411142i) (num-test (sqrt 2/1234000000) 0.00004025848411) (num-test (sqrt -2/1234000000) 0.0+0.00004025848411i) (num-test (sqrt 2/500029) 0.00199994200252) (num-test (sqrt -2/500029) 0.0+0.00199994200252i) (num-test (sqrt 2/362880) 0.00234765070758) (num-test (sqrt -2/362880) 0.0+0.00234765070758i) (num-test (sqrt 3/1) 1.73205080756888) (num-test (sqrt -3/1) 0.0+1.73205080756888i) (num-test (sqrt 3/2) 1.22474487139159) (num-test (sqrt -3/2) 0.0+1.22474487139159i) (num-test (sqrt 3/3) 1) (num-test (sqrt -3/3) 0.0+1.0i) (num-test (sqrt 3/10) 0.54772255750517) (num-test (sqrt -3/10) 0.0+0.54772255750517i) (num-test (sqrt 3/1234) 0.04930637194547) (num-test (sqrt -3/1234) 0.0+0.04930637194547i) (num-test (sqrt 3/1234000000) 0.00004930637195) (num-test (sqrt -3/1234000000) 0.0+0.00004930637195i) (num-test (sqrt 3/500029) 0.00244941871067) (num-test (sqrt -3/500029) 0.0+0.00244941871067i) (num-test (sqrt 3/362880) 0.00287527316393) (num-test (sqrt -3/362880) 0.0+0.00287527316393i) (num-test (sqrt 10/1) 3.16227766016838) (num-test (sqrt -10/1) 0.0+3.16227766016838i) (num-test (sqrt 10/2) 2.23606797749979) (num-test (sqrt -10/2) 0.0+2.23606797749979i) (num-test (sqrt 10/3) 1.82574185835055) (num-test (sqrt -10/3) 0.0+1.82574185835055i) (num-test (sqrt 10/10) 1) (num-test (sqrt -10/10) 0.0+1.0i) (num-test (sqrt 10/1234) 0.09002070714424) (num-test (sqrt -10/1234) 0.0+0.09002070714424i) (num-test (sqrt 10/1234000000) 0.00009002070714) (num-test (sqrt -10/1234000000) 0.0+0.00009002070714i) (num-test (sqrt 10/500029) 0.00447200626870) (num-test (sqrt -10/500029) 0.0+0.00447200626870i) (num-test (sqrt 10/362880) 0.00524950656957) (num-test (sqrt -10/362880) 0.0+0.00524950656957i) (num-test (sqrt 1234/1) 35.12833614050059) (num-test (sqrt -1234/1) 0.0+35.12833614050059i) (num-test (sqrt 1234/2) 24.83948469674844) (num-test (sqrt -1234/2) 0.0+24.83948469674844i) (num-test (sqrt 1234/3) 20.28135432690167) (num-test (sqrt -1234/3) 0.0+20.28135432690167i) (num-test (sqrt 1234/10) 11.10855526159905) (num-test (sqrt -1234/10) 0.0+11.10855526159905i) (num-test (sqrt 1234/1234) 1) (num-test (sqrt -1234/1234) 0.0+1.0i) (num-test (sqrt 1234/1234000000) 0.001) (num-test (sqrt -1234/1234000000) 0.0+0.001i) (num-test (sqrt 1234/500029) 0.04967752876605) (num-test (sqrt -1234/500029) 0.0+0.04967752876605i) (num-test (sqrt 1234/362880) 0.05831443382422) (num-test (sqrt -1234/362880) 0.0+0.05831443382422i) (num-test (sqrt 1234000000/1) 35128.33614050059259) (num-test (sqrt -1234000000/1) 0.0+35128.33614050059259i) (num-test (sqrt 1234000000/2) 24839.48469674844091) (num-test (sqrt -1234000000/2) 0.0+24839.48469674844091i) (num-test (sqrt 1234000000/3) 20281.35432690167727) (num-test (sqrt -1234000000/3) 0.0+20281.35432690167727i) (num-test (sqrt 1234000000/10) 11108.55526159905276) (num-test (sqrt -1234000000/10) 0.0+11108.55526159905276i) (num-test (sqrt 1234000000/1234) 1000) (num-test (sqrt -1234000000/1234) 0.0+1000.0i) (num-test (sqrt 1234000000/1234000000) 1) (num-test (sqrt -1234000000/1234000000) 0.0+1.0i) (num-test (sqrt 1234000000/500029) 49.67752876605147) (num-test (sqrt -1234000000/500029) 0.0+49.67752876605147i) (num-test (sqrt 1234000000/362880) 58.31443382422451) (num-test (sqrt -1234000000/362880) 0.0+58.31443382422451i) (num-test (sqrt 500029/1) 707.12728698587216) (num-test (sqrt -500029/1) 0.0+707.12728698587216i) (num-test (sqrt 500029/2) 500.01449978975609) (num-test (sqrt -500029/2) 0.0+500.01449978975609i) (num-test (sqrt 500029/3) 408.26012949262304) (num-test (sqrt -500029/3) 0.0+408.26012949262304i) (num-test (sqrt 500029/10) 223.61328225308978) (num-test (sqrt -500029/10) 0.0+223.61328225308978i) (num-test (sqrt 500029/1234) 20.12982579526738) (num-test (sqrt -500029/1234) 0.0+20.12982579526738i) (num-test (sqrt 500029/1234000000) 0.02012982579527) (num-test (sqrt -500029/1234000000) 0.0+0.02012982579527i) (num-test (sqrt 500029/500029) 1) (num-test (sqrt -500029/500029) 0.0+1.0i) (num-test (sqrt 500029/362880) 1.17385939423129) (num-test (sqrt -500029/362880) 0.0+1.17385939423129i) (num-test (sqrt 362880/1) 602.39521910453436) (num-test (sqrt -362880/1) 0.0+602.39521910453436i) (num-test (sqrt 362880/2) 425.95774438317238) (num-test (sqrt -362880/2) 0.0+425.95774438317238i) (num-test (sqrt 362880/3) 347.79304190854651) (num-test (sqrt -362880/3) 0.0+347.79304190854651i) (num-test (sqrt 362880/10) 190.49409439665052) (num-test (sqrt -362880/10) 0.0+190.49409439665052i) (num-test (sqrt 362880/1234) 17.14841308438784) (num-test (sqrt -362880/1234) 0.0+17.14841308438784i) (num-test (sqrt 362880/1234000000) 0.01714841308439) (num-test (sqrt -362880/1234000000) 0.0+0.01714841308439i) (num-test (sqrt 362880/500029) 0.85189078429181) (num-test (sqrt -362880/500029) 0.0+0.85189078429181i) (num-test (sqrt 362880/362880) 1) (num-test (sqrt -362880/362880) 0.0+1.0i) (num-test (sqrt 0.0) 0.0) (num-test (sqrt 0.00000001) 0.00010000000000) (num-test (sqrt -0.00000001) 0.0+0.00010000000000i) (num-test (sqrt 1.0) 1.0) (num-test (sqrt -1.0) 0.0+1.0i) (num-test (sqrt pi) 1.77245385090552) (num-test (sqrt -3.14159265358979) 0.0+1.77245385090552i) (num-test (sqrt 2.71828182845905) 1.64872127070013) (num-test (sqrt -2.71828182845905) 0.0+1.64872127070013i) (num-test (sqrt 1234.0) 35.12833614050059) (num-test (sqrt -1234.0) 0.0+35.12833614050059i) (num-test (sqrt 1234000000.0) 35128.33614050059259) (num-test (sqrt -1234000000.0) 0.0+35128.33614050059259i) (num-test (sqrt 0.0+0.0i) 0.0) (num-test (sqrt -0.0+0.0i) 0.0) (num-test (sqrt 0.0-0.0i) 0.0) (num-test (sqrt -0.0-0.0i) 0.0) (num-test (sqrt 0.0+0.00000001i) 0.00007071067812+0.00007071067812i) (num-test (sqrt -0.0+0.00000001i) 0.00007071067812+0.00007071067812i) (num-test (sqrt 0.0-0.00000001i) 0.00007071067812-0.00007071067812i) (num-test (sqrt -0.0-0.00000001i) 0.00007071067812-0.00007071067812i) (num-test (sqrt 0.0+1.0i) 0.70710678118655+0.70710678118655i) (num-test (sqrt -0.0+1.0i) 0.70710678118655+0.70710678118655i) (num-test (sqrt 0.0-1.0i) 0.70710678118655-0.70710678118655i) (num-test (sqrt -0.0-1.0i) 0.70710678118655-0.70710678118655i) (num-test (sqrt 0.0+3.14159265358979i) 1.25331413731550+1.25331413731550i) (num-test (sqrt -0.0+3.14159265358979i) 1.25331413731550+1.25331413731550i) (num-test (sqrt 0.0-3.14159265358979i) 1.25331413731550-1.25331413731550i) (num-test (sqrt -0.0-3.14159265358979i) 1.25331413731550-1.25331413731550i) (num-test (sqrt 0.0+2.71828182845905i) 1.16582199079856+1.16582199079856i) (num-test (sqrt -0.0+2.71828182845905i) 1.16582199079856+1.16582199079856i) (num-test (sqrt 0.0-2.71828182845905i) 1.16582199079856-1.16582199079856i) (num-test (sqrt -0.0-2.71828182845905i) 1.16582199079856-1.16582199079856i) (num-test (sqrt 0.0+1234.0i) 24.83948469674844+24.83948469674844i) (num-test (sqrt -0.0+1234.0i) 24.83948469674844+24.83948469674844i) (num-test (sqrt 0.0-1234.0i) 24.83948469674844-24.83948469674844i) (num-test (sqrt -0.0-1234.0i) 24.83948469674844-24.83948469674844i) (num-test (sqrt 0.0+1234000000.0i) 24839.48469674844091+24839.48469674844091i) (num-test (sqrt -0.0+1234000000.0i) 24839.48469674844091+24839.48469674844091i) (num-test (sqrt 0.0-1234000000.0i) 24839.48469674844091-24839.48469674844091i) (num-test (sqrt -0.0-1234000000.0i) 24839.48469674844091-24839.48469674844091i) (num-test (sqrt 0.00000001+0.0i) 0.00010000000000) (num-test (sqrt -0.00000001+0.0i) 0.0+0.00010000000000i) (num-test (sqrt 0.00000001-0.0i) 0.00010000000000) (num-test (sqrt -0.00000001-0.0i) 0.0+0.00010000000000i) (num-test (sqrt 0.00000001+0.00000001i) 0.00010986841135+0.00004550898606i) (num-test (sqrt -0.00000001+0.00000001i) 0.00004550898606+0.00010986841135i) (num-test (sqrt 0.00000001-0.00000001i) 0.00010986841135-0.00004550898606i) (num-test (sqrt -0.00000001-0.00000001i) 0.00004550898606-0.00010986841135i) (num-test (sqrt 0.00000001+1.0i) 0.70710678472208+0.70710677765101i) (num-test (sqrt -0.00000001+1.0i) 0.70710677765101+0.70710678472208i) (num-test (sqrt 0.00000001-1.0i) 0.70710678472208-0.70710677765101i) (num-test (sqrt -0.00000001-1.0i) 0.70710677765101-0.70710678472208i) (num-test (sqrt 0.00000001+3.14159265358979i) 1.25331413931021+1.25331413532079i) (num-test (sqrt -0.00000001+3.14159265358979i) 1.25331413532079+1.25331413931021i) (num-test (sqrt 0.00000001-3.14159265358979i) 1.25331413931021-1.25331413532079i) (num-test (sqrt -0.00000001-3.14159265358979i) 1.25331413532079-1.25331413931021i) (num-test (sqrt 0.00000001+2.71828182845905i) 1.16582199294297+1.16582198865415i) (num-test (sqrt -0.00000001+2.71828182845905i) 1.16582198865415+1.16582199294297i) (num-test (sqrt 0.00000001-2.71828182845905i) 1.16582199294297-1.16582198865415i) (num-test (sqrt -0.00000001-2.71828182845905i) 1.16582198865415-1.16582199294297i) (num-test (sqrt 0.00000001+1234.0i) 24.83948469684909+24.83948469664779i) (num-test (sqrt -0.00000001+1234.0i) 24.83948469664779+24.83948469684909i) (num-test (sqrt 0.00000001-1234.0i) 24.83948469684909-24.83948469664779i) (num-test (sqrt -0.00000001-1234.0i) 24.83948469664779-24.83948469684909i) (num-test (sqrt 0.00000001+1234000000.0i) 24839.48469674844091+24839.48469674844091i) (num-test (sqrt -0.00000001+1234000000.0i) 24839.48469674844091+24839.48469674844091i) (num-test (sqrt 0.00000001-1234000000.0i) 24839.48469674844091-24839.48469674844091i) (num-test (sqrt -0.00000001-1234000000.0i) 24839.48469674844091-24839.48469674844091i) (num-test (sqrt 1.0+0.0i) 1.0) (num-test (sqrt -0.0) 0.0) (num-test (sqrt 0.0) 0.0) (num-test (sqrt -1.0+0.0i) 0.0+1.0i) (num-test (sqrt 1.0-0.0i) 1.0) (num-test (sqrt -1.0-0.0i) 0.0+1.0i) (num-test (sqrt 1.0+0.00000001i) 1.0+0.00000000500000i) (num-test (sqrt -1.0+0.00000001i) 0.00000000500000+1.0i) (num-test (sqrt 1.0-0.00000001i) 1.0-0.00000000500000i) (num-test (sqrt -1.0-0.00000001i) 0.00000000500000-1.0i) (num-test (sqrt 1.0+1.0i) 1.09868411346781+0.45508986056223i) (num-test (sqrt -1.0+1.0i) 0.45508986056223+1.09868411346781i) (num-test (sqrt 1.0-1.0i) 1.09868411346781-0.45508986056223i) (num-test (sqrt -1.0-1.0i) 0.45508986056223-1.09868411346781i) (num-test (sqrt 1.0+3.14159265358979i) 1.46576060621706+1.07165953303174i) (num-test (sqrt -1.0+3.14159265358979i) 1.07165953303174+1.46576060621706i) (num-test (sqrt 1.0-3.14159265358979i) 1.46576060621706-1.07165953303174i) (num-test (sqrt -1.0-3.14159265358979i) 1.07165953303174-1.46576060621706i) (num-test (sqrt 1.0+2.71828182845905i) 1.39577697566445+0.97375220964833i) (num-test (sqrt -1.0+2.71828182845905i) 0.97375220964833+1.39577697566445i) (num-test (sqrt 1.0-2.71828182845905i) 1.39577697566445-0.97375220964833i) (num-test (sqrt -1.0-2.71828182845905i) 0.97375220964833-1.39577697566445i) (num-test (sqrt 1.0+1234.0i) 24.84955135597340+24.82942211557006i) (num-test (sqrt -1.0+1234.0i) 24.82942211557006+24.84955135597340i) (num-test (sqrt 1.0-1234.0i) 24.84955135597340-24.82942211557006i) (num-test (sqrt -1.0-1234.0i) 24.82942211557006-24.84955135597340i) (num-test (sqrt 1.0+1234000000.0i) 24839.48470681306208+24839.48468668381975i) (num-test (sqrt -1.0+1234000000.0i) 24839.48468668381975+24839.48470681306208i) (num-test (sqrt 1.0-1234000000.0i) 24839.48470681306208-24839.48468668381975i) (num-test (sqrt -1.0-1234000000.0i) 24839.48468668381975-24839.48470681306208i) (num-test (sqrt 3.14159265358979+0.0i) 1.77245385090552) (num-test (sqrt -3.14159265358979+0.0i) 0.0+1.77245385090552i) (num-test (sqrt 3.14159265358979-0.0i) 1.77245385090552) (num-test (sqrt -3.14159265358979-0.0i) 0.0+1.77245385090552i) (num-test (sqrt 3.14159265358979+0.00000001i) 1.77245385090552+0.00000000282095i) (num-test (sqrt -3.14159265358979+0.00000001i) 0.00000000282095+1.77245385090552i) (num-test (sqrt 3.14159265358979-0.00000001i) 1.77245385090552-0.00000000282095i) (num-test (sqrt -3.14159265358979-0.00000001i) 0.00000000282095-1.77245385090552i) (num-test (sqrt 3.14159265358979+1.0i) 1.79422698718214+0.27867154132224i) (num-test (sqrt -3.14159265358979+1.0i) 0.27867154132224+1.79422698718214i) (num-test (sqrt 3.14159265358979-1.0i) 1.79422698718214-0.27867154132224i) (num-test (sqrt -3.14159265358979-1.0i) 0.27867154132224-1.79422698718214i) (num-test (sqrt 3.14159265358979+3.14159265358979i) 1.94736688784473+0.80662577586157i) (num-test (sqrt -3.14159265358979+3.14159265358979i) 0.80662577586157+1.94736688784473i) (num-test (sqrt 3.14159265358979-3.14159265358979i) 1.94736688784473-0.80662577586157i) (num-test (sqrt -3.14159265358979-3.14159265358979i) 0.80662577586157-1.94736688784473i) (num-test (sqrt 3.14159265358979+2.71828182845905i) 1.90996689184696+0.71160443672153i) (num-test (sqrt -3.14159265358979+2.71828182845905i) 0.71160443672153+1.90996689184696i) (num-test (sqrt 3.14159265358979-2.71828182845905i) 1.90996689184696-0.71160443672153i) (num-test (sqrt -3.14159265358979-2.71828182845905i) 0.71160443672153-1.90996689184696i) (num-test (sqrt 3.14159265358979+1234.0i) 24.87112373493049+24.80788590719961i) (num-test (sqrt -3.14159265358979+1234.0i) 24.80788590719961+24.87112373493049i) (num-test (sqrt 3.14159265358979-1234.0i) 24.87112373493049-24.80788590719961i) (num-test (sqrt -3.14159265358979-1234.0i) 24.80788590719961-24.87112373493049i) (num-test (sqrt 3.14159265358979+1234000000.0i) 24839.48472836738074+24839.48466512950108i) (num-test (sqrt -3.14159265358979+1234000000.0i) 24839.48466512950108+24839.48472836738074i) (num-test (sqrt 3.14159265358979-1234000000.0i) 24839.48472836738074-24839.48466512950108i) (num-test (sqrt -3.14159265358979-1234000000.0i) 24839.48466512950108-24839.48472836738074i) (num-test (sqrt 2.71828182845905+0.0i) 1.64872127070013) (num-test (sqrt -2.71828182845905+0.0i) 0.0+1.64872127070013i) (num-test (sqrt 2.71828182845905-0.0i) 1.64872127070013) (num-test (sqrt -2.71828182845905-0.0i) 0.0+1.64872127070013i) (num-test (sqrt 2.71828182845905+0.00000001i) 1.64872127070013+0.00000000303265i) (num-test (sqrt -2.71828182845905+0.00000001i) 0.00000000303265+1.64872127070013i) (num-test (sqrt 2.71828182845905-0.00000001i) 1.64872127070013-0.00000000303265i) (num-test (sqrt -2.71828182845905-0.00000001i) 0.00000000303265-1.64872127070013i) (num-test (sqrt 2.71828182845905+1.0i) 1.67551015515410+0.29841657387867i) (num-test (sqrt -2.71828182845905+1.0i) 0.29841657387867+1.67551015515410i) (num-test (sqrt 2.71828182845905-1.0i) 1.67551015515410-0.29841657387867i) (num-test (sqrt -2.71828182845905-1.0i) 0.29841657387867-1.67551015515410i) (num-test (sqrt 2.71828182845905+3.14159265358979i) 1.85373086379501+0.84737021833856i) (num-test (sqrt -2.71828182845905+3.14159265358979i) 0.84737021833856+1.85373086379501i) (num-test (sqrt 2.71828182845905-3.14159265358979i) 1.85373086379501-0.84737021833856i) (num-test (sqrt -2.71828182845905-3.14159265358979i) 0.84737021833856-1.85373086379501i) (num-test (sqrt 2.71828182845905+2.71828182845905i) 1.81142386765469+0.75031633318890i) (num-test (sqrt -2.71828182845905+2.71828182845905i) 0.75031633318890+1.81142386765469i) (num-test (sqrt 2.71828182845905-2.71828182845905i) 1.81142386765469-0.75031633318890i) (num-test (sqrt -2.71828182845905-2.71828182845905i) 0.75031633318890-1.81142386765469i) (num-test (sqrt 2.71828182845905+1234.0i) 24.86685822304219+24.81214130333015i) (num-test (sqrt -2.71828182845905+1234.0i) 24.81214130333015+24.86685822304219i) (num-test (sqrt 2.71828182845905-1234.0i) 24.86685822304219-24.81214130333015i) (num-test (sqrt -2.71828182845905-1234.0i) 24.81214130333015-24.86685822304219i) (num-test (sqrt 2.71828182845905+1234000000.0i) 24839.48472410691829+24839.48466938996353i) (num-test (sqrt -2.71828182845905+1234000000.0i) 24839.48466938996353+24839.48472410691829i) (num-test (sqrt 2.71828182845905-1234000000.0i) 24839.48472410691829-24839.48466938996353i) (num-test (sqrt -2.71828182845905-1234000000.0i) 24839.48466938996353-24839.48472410691829i) (num-test (sqrt 1234.0+0.0i) 35.12833614050059) (num-test (sqrt -1234.0+0.0i) 0.0+35.12833614050059i) (num-test (sqrt 1234.0-0.0i) 35.12833614050059) (num-test (sqrt -1234.0-0.0i) 0.0+35.12833614050059i) (num-test (sqrt 1234.0+0.00000001i) 35.12833614050059+0.00000000014234i) (num-test (sqrt -1234.0+0.00000001i) 0.00000000014234+35.12833614050059i) (num-test (sqrt 1234.0-0.00000001i) 35.12833614050059-0.00000000014234i) (num-test (sqrt -1234.0-0.00000001i) 0.00000000014234-35.12833614050059i) (num-test (sqrt 1234.0+1.0i) 35.12833902411499+0.01423352238934i) (num-test (sqrt -1234.0+1.0i) 0.01423352238934+35.12833902411499i) (num-test (sqrt 1234.0-1.0i) 35.12833902411499-0.01423352238934i) (num-test (sqrt -1234.0-1.0i) 0.01423352238934-35.12833902411499i) (num-test (sqrt 1234.0+3.14159265358979i) 35.12836460058208+0.04471589681601i) (num-test (sqrt -1234.0+3.14159265358979i) 0.04471589681601+35.12836460058208i) (num-test (sqrt 1234.0-3.14159265358979i) 35.12836460058208-0.04471589681601i) (num-test (sqrt -1234.0-3.14159265358979i) 0.04471589681601-35.12836460058208i) (num-test (sqrt 1234.0+2.71828182845905i) 35.12835744766116+0.03869070497402i) (num-test (sqrt -1234.0+2.71828182845905i) 0.03869070497402+35.12835744766116i) (num-test (sqrt 1234.0-2.71828182845905i) 35.12835744766116-0.03869070497402i) (num-test (sqrt -1234.0-2.71828182845905i) 0.03869070497402-35.12835744766116i) (num-test (sqrt 1234.0+1234.0i) 38.59494485012512+15.98654959596347i) (num-test (sqrt -1234.0+1234.0i) 15.98654959596347+38.59494485012512i) (num-test (sqrt 1234.0-1234.0i) 38.59494485012512-15.98654959596347i) (num-test (sqrt -1234.0-1234.0i) 15.98654959596347-38.59494485012512i) (num-test (sqrt 1234.0+1234000000.0i) 24839.49711649389428+24839.47227700919757i) (num-test (sqrt -1234.0+1234000000.0i) 24839.47227700919757+24839.49711649389428i) (num-test (sqrt 1234.0-1234000000.0i) 24839.49711649389428-24839.47227700919757i) (num-test (sqrt -1234.0-1234000000.0i) 24839.47227700919757-24839.49711649389428i) (num-test (sqrt 1234000000.0+0.0i) 35128.33614050059259) (num-test (sqrt -1234000000.0+0.0i) 0.0+35128.33614050059259i) (num-test (sqrt 1234000000.0-0.0i) 35128.33614050059259) (num-test (sqrt -1234000000.0-0.0i) 0.0+35128.33614050059259i) (num-test (sqrt 1234000000.0+0.00000001i) 35128.33614050059259+0.00000000000014i) (num-test (sqrt -1234000000.0+0.00000001i) 0.00000000000014+35128.33614050059259i) (num-test (sqrt 1234000000.0-0.00000001i) 35128.33614050059259-0.00000000000014i) (num-test (sqrt -1234000000.0-0.00000001i) 0.00000000000014-35128.33614050059259i) (num-test (sqrt 1234000000.0+1.0i) 35128.33614050059259+0.00001423352356i) (num-test (sqrt -1234000000.0+1.0i) 0.00001423352356+35128.33614050059259i) (num-test (sqrt 1234000000.0-1.0i) 35128.33614050059259-0.00001423352356i) (num-test (sqrt -1234000000.0-1.0i) 0.00001423352356-35128.33614050059259i) (num-test (sqrt 1234000000.0+3.14159265358979i) 35128.33614050059259+0.00004471593304i) (num-test (sqrt -1234000000.0+3.14159265358979i) 0.00004471593304+35128.33614050059259i) (num-test (sqrt 1234000000.0-3.14159265358979i) 35128.33614050059259-0.00004471593304i) (num-test (sqrt -1234000000.0-3.14159265358979i) 0.00004471593304-35128.33614050059259i) (num-test (sqrt 1234000000.0+2.71828182845905i) 35128.33614050059259+0.00003869072844i) (num-test (sqrt -1234000000.0+2.71828182845905i) 0.00003869072844+35128.33614050059259i) (num-test (sqrt 1234000000.0-2.71828182845905i) 35128.33614050059259-0.00003869072844i) (num-test (sqrt -1234000000.0-2.71828182845905i) 0.00003869072844-35128.33614050059259i) (num-test (sqrt 1234000000.0+1234.0i) 35128.33614050497999+0.01756416807025i) (num-test (sqrt -1234000000.0+1234.0i) 0.01756416807025+35128.33614050497999i) (num-test (sqrt 1234000000.0-1234.0i) 35128.33614050497999-0.01756416807025i) (num-test (sqrt -1234000000.0-1234.0i) 0.01756416807025-35128.33614050497999i) (num-test (sqrt 1234000000.0+1234000000.0i) 38594.94485012512450+15986.54959596346634i) (num-test (sqrt -1234000000.0+1234000000.0i) 15986.54959596346634+38594.94485012512450i) (num-test (sqrt 1234000000.0-1234000000.0i) 38594.94485012512450-15986.54959596346634i) (num-test (sqrt -1234000000.0-1234000000.0i) 15986.54959596346634-38594.94485012512450i) (num-test (sqrt 2.2250739e-308) 1.4916681e-154) (num-test (sqrt 1.7976931e+308) 1.3407808e+154) (num-test (sqrt 0.0e+00+0.0e+00i) 0e0+0.0i) (num-test (sqrt 0.0e+00+1.19209289550781250e-07i) 2.44140625e-4+2.44140625e-4i) (num-test (sqrt 0.0e+00-1.19209289550781250e-07i) 2.44140625e-4-2.44140625e-4i) (num-test (sqrt 0.0e+00+5.0e-01i) 5e-1+5e-1i) (num-test (sqrt 0.0e+00-5.0e-01i) 5e-1-5e-1i) (num-test (sqrt 0.0e+00+1.0e+00i) 7.0710678118654752440e-1+7.0710678118654752440e-1i) (num-test (sqrt 0.0e+00-1.0e+00i) 7.0710678118654752440e-1-7.0710678118654752440e-1i) (num-test (sqrt 0.0e+00+2.0e+00i) 1+1i) (num-test (sqrt 0.0e+00-2.0e+00i) 1-1i) (num-test (sqrt 0.0e+00+8.3886080e+06i) 2048+2048i) (num-test (sqrt 0.0e+00-8.3886080e+06i) 2048-2048i) (num-test (sqrt 1.19209289550781250e-07+0.0e+00i) 3.4526698300124390840e-4+0.0i) (num-test (sqrt -1.19209289550781250e-07+0.0e+00i) 0+3.4526698300124390840e-4i) (num-test (sqrt 1.19209289550781250e-07+1.19209289550781250e-07i) 3.7933934912842707699e-4+1.5712750315077700799e-4i) (num-test (sqrt 1.19209289550781250e-07-1.19209289550781250e-07i) 3.7933934912842707699e-4-1.5712750315077700799e-4i) (num-test (sqrt -1.19209289550781250e-07+1.19209289550781250e-07i) 1.5712750315077700799e-4+3.7933934912842707699e-4i) (num-test (sqrt -1.19209289550781250e-07-1.19209289550781250e-07i) 1.5712750315077700799e-4-3.7933934912842707699e-4i) (num-test (sqrt 1.19209289550781250e-07+5.0e-01i) 5.0000005960464832810e-1+4.9999994039535877732e-1i) (num-test (sqrt 1.19209289550781250e-07-5.0e-01i) 5.0000005960464832810e-1-4.9999994039535877732e-1i) (num-test (sqrt -1.19209289550781250e-07+5.0e-01i) 4.9999994039535877732e-1+5.0000005960464832810e-1i) (num-test (sqrt -1.19209289550781250e-07-5.0e-01i) 4.9999994039535877732e-1-5.0000005960464832810e-1i) (num-test (sqrt 1.19209289550781250e-07+1.0e+00i) 7.0710682333339729137e-1+7.0710673903970026958e-1i) (num-test (sqrt 1.19209289550781250e-07-1.0e+00i) 7.0710682333339729137e-1-7.0710673903970026958e-1i) (num-test (sqrt -1.19209289550781250e-07+1.0e+00i) 7.0710673903970026958e-1+7.0710682333339729137e-1i) (num-test (sqrt -1.19209289550781250e-07-1.0e+00i) 7.0710673903970026958e-1-7.0710682333339729137e-1i) (num-test (sqrt 1.19209289550781250e-07+2.0e+00i) 1.0000000298023228318e0+9.9999997019767805639e-1i) (num-test (sqrt 1.19209289550781250e-07-2.0e+00i) 1.0000000298023228318e0-9.9999997019767805639e-1i) (num-test (sqrt -1.19209289550781250e-07+2.0e+00i) 9.9999997019767805639e-1+1.0000000298023228318e0i) (num-test (sqrt -1.19209289550781250e-07-2.0e+00i) 9.9999997019767805639e-1-1.0000000298023228318e0i) (num-test (sqrt 1.19209289550781250e-07+8.3886080e+06i) 2.0480000000000145519e3+2.0479999999999854481e3i) (num-test (sqrt 1.19209289550781250e-07-8.3886080e+06i) 2.0480000000000145519e3-2.0479999999999854481e3i) (num-test (sqrt -1.19209289550781250e-07+8.3886080e+06i) 2.0479999999999854481e3+2.0480000000000145519e3i) (num-test (sqrt -1.19209289550781250e-07-8.3886080e+06i) 2.0479999999999854481e3-2.0480000000000145519e3i) (num-test (sqrt 5.0e-01+0.0e+00i) 7.0710678118654752440e-1+0.0i) (num-test (sqrt -5.0e-01+0.0e+00i) 0+7.0710678118654752440e-1i) (num-test (sqrt 5.0e-01+1.19209289550781250e-07i) 7.0710678118655254870e-1+8.4293697021787464631e-8i) (num-test (sqrt 5.0e-01-1.19209289550781250e-07i) 7.0710678118655254870e-1-8.4293697021787464631e-8i) (num-test (sqrt -5.0e-01+1.19209289550781250e-07i) 8.4293697021787464631e-8+7.0710678118655254870e-1i) (num-test (sqrt -5.0e-01-1.19209289550781250e-07i) 8.4293697021787464631e-8-7.0710678118655254870e-1i) (num-test (sqrt 5.0e-01+5.0e-01i) 7.7688698701501865367e-1+3.2179712645279131237e-1i) (num-test (sqrt 5.0e-01-5.0e-01i) 7.7688698701501865367e-1-3.2179712645279131237e-1i) (num-test (sqrt -5.0e-01+5.0e-01i) 3.2179712645279131237e-1+7.7688698701501865367e-1i) (num-test (sqrt -5.0e-01-5.0e-01i) 3.2179712645279131237e-1-7.7688698701501865367e-1i) (num-test (sqrt 5.0e-01+1.0e+00i) 8.9945371997393363613e-1+5.5589297025142117199e-1i) (num-test (sqrt 5.0e-01-1.0e+00i) 8.9945371997393363613e-1-5.5589297025142117199e-1i) (num-test (sqrt -5.0e-01+1.0e+00i) 5.5589297025142117199e-1+8.9945371997393363613e-1i) (num-test (sqrt -5.0e-01-1.0e+00i) 5.5589297025142117199e-1-8.9945371997393363613e-1i) (num-test (sqrt 5.0e-01+2.0e+00i) 1.1317139242778694103e0+8.8361553087551326576e-1i) (num-test (sqrt 5.0e-01-2.0e+00i) 1.1317139242778694103e0-8.8361553087551326576e-1i) (num-test (sqrt -5.0e-01+2.0e+00i) 8.8361553087551326576e-1+1.1317139242778694103e0i) (num-test (sqrt -5.0e-01-2.0e+00i) 8.8361553087551326576e-1-1.1317139242778694103e0i) (num-test (sqrt 5.0e-01+8.3886080e+06i) 2.0480000610351571595e3+2.0479999389648446595e3i) (num-test (sqrt 5.0e-01-8.3886080e+06i) 2.0480000610351571595e3-2.0479999389648446595e3i) (num-test (sqrt -5.0e-01+8.3886080e+06i) 2.0479999389648446595e3+2.0480000610351571595e3i) (num-test (sqrt -5.0e-01-8.3886080e+06i) 2.0479999389648446595e3-2.0480000610351571595e3i) (num-test (sqrt 1.0e+00+0.0e+00i) 1e0+0.0i) (num-test (sqrt -1.0e+00+0.0e+00i) 0+1i) (num-test (sqrt 1.0e+00+1.19209289550781250e-07i) 1.0000000000000017764e0+5.9604644775390519121e-8i) (num-test (sqrt 1.0e+00-1.19209289550781250e-07i) 1.0000000000000017764e0-5.9604644775390519121e-8i) (num-test (sqrt -1.0e+00+1.19209289550781250e-07i) 5.9604644775390519121e-8+1.0000000000000017764e0i) (num-test (sqrt -1.0e+00-1.19209289550781250e-07i) 5.9604644775390519121e-8-1.0000000000000017764e0i) (num-test (sqrt 1.0e+00+5.0e-01i) 1.0290855136357461252e0+2.4293413587832283909e-1i) (num-test (sqrt 1.0e+00-5.0e-01i) 1.0290855136357461252e0-2.4293413587832283909e-1i) (num-test (sqrt -1.0e+00+5.0e-01i) 2.4293413587832283909e-1+1.0290855136357461252e0i) (num-test (sqrt -1.0e+00-5.0e-01i) 2.4293413587832283909e-1-1.0290855136357461252e0i) (num-test (sqrt 1.0e+00+1.0e+00i) 1.0986841134678099660e0+4.5508986056222734130e-1i) (num-test (sqrt 1.0e+00-1.0e+00i) 1.0986841134678099660e0-4.5508986056222734130e-1i) (num-test (sqrt -1.0e+00+1.0e+00i) 4.5508986056222734130e-1+1.0986841134678099660e0i) (num-test (sqrt -1.0e+00-1.0e+00i) 4.5508986056222734130e-1-1.0986841134678099660e0i) (num-test (sqrt 1.0e+00+2.0e+00i) 1.2720196495140689643e0+7.8615137775742328607e-1i) (num-test (sqrt 1.0e+00-2.0e+00i) 1.2720196495140689643e0-7.8615137775742328607e-1i) (num-test (sqrt -1.0e+00+2.0e+00i) 7.8615137775742328607e-1+1.2720196495140689643e0i) (num-test (sqrt -1.0e+00-2.0e+00i) 7.8615137775742328607e-1-1.2720196495140689643e0i) (num-test (sqrt 1.0e+00+8.3886080e+06i) 2.0480001220703161380e3+2.0479998779296911380e3i) (num-test (sqrt 1.0e+00-8.3886080e+06i) 2.0480001220703161380e3-2.0479998779296911380e3i) (num-test (sqrt -1.0e+00+8.3886080e+06i) 2.0479998779296911380e3+2.0480001220703161380e3i) (num-test (sqrt -1.0e+00-8.3886080e+06i) 2.0479998779296911380e3-2.0480001220703161380e3i) (num-test (sqrt 2.0e+00+0.0e+00i) 1.4142135623730950488e0+0.0i) (num-test (sqrt -2.0e+00+0.0e+00i) 0+1.4142135623730950488e0i) (num-test (sqrt 2.0e+00+1.19209289550781250e-07i) 1.4142135623730956768e0+4.2146848510894013070e-8i) (num-test (sqrt 2.0e+00-1.19209289550781250e-07i) 1.4142135623730956768e0-4.2146848510894013070e-8i) (num-test (sqrt -2.0e+00+1.19209289550781250e-07i) 4.2146848510894013070e-8+1.4142135623730956768e0i) (num-test (sqrt -2.0e+00-1.19209289550781250e-07i) 4.2146848510894013070e-8-1.4142135623730956768e0i) (num-test (sqrt 2.0e+00+5.0e-01i) 1.4250531240639470060e0+1.7543205637629383228e-1i) (num-test (sqrt 2.0e+00-5.0e-01i) 1.4250531240639470060e0-1.7543205637629383228e-1i) (num-test (sqrt -2.0e+00+5.0e-01i) 1.7543205637629383228e-1+1.4250531240639470060e0i) (num-test (sqrt -2.0e+00-5.0e-01i) 1.7543205637629383228e-1-1.4250531240639470060e0i) (num-test (sqrt 2.0e+00+1.0e+00i) 1.4553466902253548081e0+3.4356074972251246414e-1i) (num-test (sqrt 2.0e+00-1.0e+00i) 1.4553466902253548081e0-3.4356074972251246414e-1i) (num-test (sqrt -2.0e+00+1.0e+00i) 3.4356074972251246414e-1+1.4553466902253548081e0i) (num-test (sqrt -2.0e+00-1.0e+00i) 3.4356074972251246414e-1-1.4553466902253548081e0i) (num-test (sqrt 2.0e+00+2.0e+00i) 1.5537739740300373073e0+6.4359425290558262474e-1i) (num-test (sqrt 2.0e+00-2.0e+00i) 1.5537739740300373073e0-6.4359425290558262474e-1i) (num-test (sqrt -2.0e+00+2.0e+00i) 6.4359425290558262474e-1+1.5537739740300373073e0i) (num-test (sqrt -2.0e+00-2.0e+00i) 6.4359425290558262474e-1-1.5537739740300373073e0i) (num-test (sqrt 2.0e+00+8.3886080e+06i) 2.0480002441406395519e3+2.0479997558593895519e3i) (num-test (sqrt 2.0e+00-8.3886080e+06i) 2.0480002441406395519e3-2.0479997558593895519e3i) (num-test (sqrt -2.0e+00+8.3886080e+06i) 2.0479997558593895519e3+2.0480002441406395519e3i) (num-test (sqrt -2.0e+00-8.3886080e+06i) 2.0479997558593895519e3-2.0480002441406395519e3i) (num-test (sqrt 8.3886080e+06+0.0e+00i) 2.8963093757400986599e3+0.0i) (num-test (sqrt -8.3886080e+06+0.0e+00i) 0+2.8963093757400986599e3i) (num-test (sqrt 8.3886080e+06+1.19209289550781250e-07i) 2.8963093757400986599e3+2.0579515874459976458e-11i) (num-test (sqrt 8.3886080e+06-1.19209289550781250e-07i) 2.8963093757400986599e3-2.0579515874459976458e-11i) (num-test (sqrt -8.3886080e+06+1.19209289550781250e-07i) 2.0579515874459976458e-11+2.8963093757400986599e3i) (num-test (sqrt -8.3886080e+06-1.19209289550781250e-07i) 2.0579515874459976458e-11-2.8963093757400986599e3i) (num-test (sqrt 8.3886080e+06+5.0e-01i) 2.8963093757400999462e3+8.6316745750310938767e-5i) (num-test (sqrt 8.3886080e+06-5.0e-01i) 2.8963093757400999462e3-8.6316745750310938767e-5i) (num-test (sqrt -8.3886080e+06+5.0e-01i) 8.6316745750310938767e-5+2.8963093757400999462e3i) (num-test (sqrt -8.3886080e+06-5.0e-01i) 8.6316745750310938767e-5-2.8963093757400999462e3i) (num-test (sqrt 8.3886080e+06+1.0e+00i) 2.8963093757401038048e3+1.7263349150062164754e-4i) (num-test (sqrt 8.3886080e+06-1.0e+00i) 2.8963093757401038048e3-1.7263349150062164754e-4i) (num-test (sqrt -8.3886080e+06+1.0e+00i) 1.7263349150062164754e-4+2.8963093757401038048e3i) (num-test (sqrt -8.3886080e+06-1.0e+00i) 1.7263349150062164754e-4-2.8963093757401038048e3i) (num-test (sqrt 8.3886080e+06+2.0e+00i) 2.8963093757401192395e3+3.4526698300124145513e-4i) (num-test (sqrt 8.3886080e+06-2.0e+00i) 2.8963093757401192395e3-3.4526698300124145513e-4i) (num-test (sqrt -8.3886080e+06+2.0e+00i) 3.4526698300124145513e-4+2.8963093757401192395e3i) (num-test (sqrt -8.3886080e+06-2.0e+00i) 3.4526698300124145513e-4-2.8963093757401192395e3i) (num-test (sqrt 8.3886080e+06+8.3886080e+06i) 3.1821290988135164054e3+1.3180810299506332155e3i) (num-test (sqrt 8.3886080e+06-8.3886080e+06i) 3.1821290988135164054e3-1.3180810299506332155e3i) (num-test (sqrt -8.3886080e+06+8.3886080e+06i) 1.3180810299506332155e3+3.1821290988135164054e3i) (num-test (sqrt -8.3886080e+06-8.3886080e+06i) 1.3180810299506332155e3-3.1821290988135164054e3i) (num-test (sqrt -1.0e+01) 0+3.1622776601683793320e0i) (num-test (sqrt -2.0e+00) 0+1.4142135623730950488e0i) (num-test (sqrt -1.0e+00) 0+1i) (num-test (sqrt -7.50e-01) 0+8.6602540378443864676e-1i) (num-test (sqrt -5.0e-01) 0+7.0710678118654752440e-1i) (num-test (sqrt -1.250e-01) 0+3.5355339059327376220e-1i) (num-test (sqrt -3.45266983001243932001e-04) 0+1.8581361171917517303e-2i) (num-test (sqrt -1.19209289550781250e-07) 0+3.4526698300124390840e-4i) (num-test (sqrt 0.0e+00) 0e0+0.0i) (num-test (sqrt 1.19209289550781250e-07) 3.4526698300124390840e-4+0.0i) (num-test (sqrt 3.45266983001243932001e-04) 1.8581361171917517303e-2+0.0i) (num-test (sqrt 1.250e-01) 3.5355339059327376220e-1+0.0i) (num-test (sqrt 5.0e-01) 7.0710678118654752440e-1+0.0i) (num-test (sqrt 7.50e-01) 8.6602540378443864676e-1+0.0i) (num-test (sqrt 1.0e+00) 1e0+0.0i) (num-test (sqrt 2.0e+00) 1.4142135623730950488e0+0.0i) (num-test (sqrt 1.0e+01) 3.1622776601683793320e0+0.0i) (num-test (sqrt 9) 3) (num-test (sqrt -9.0) 0.0+3.0i) (num-test (sqrt (sqrt (sqrt 256))) 2) (num-test (sqrt (sqrt (sqrt 1/256))) 1/2) (num-test (sqrt 0.1-111i) 7.4531887486175-7.4464771887462i) (num-test (sqrt -2.225073858507201399999999999999999999996E-308) 0.0+1.49166814624004135432626585974344862306E-154i) (num-test (sqrt -9223372036854775808) 0.0+3.037000499976049692451388530026308346744E9i) (num-test (sqrt 1.110223024625156799999999999999999999997E-16) 1.053671212772350917851343014434652692451E-8) (num-test (sqrt 9223372036854775807) 3.037000499976049692286752403030628535068E9) (num-test (sqrt (* 64686/26264 64686/26264)) 32343/13132) (num-test (sqrt (* 64812/61611 64812/61611)) 1964/1867) (num-test (sqrt (* 38868/48261 38868/48261)) 12956/16087) (num-test (sqrt (* 39537/63628 39537/63628)) 39537/63628) (num-test (sqrt (* 1238/47077 1238/47077)) 1238/47077) (num-test (sqrt (* 51490/46936 51490/46936)) 25745/23468) (num-test (sqrt (* 35778/34583 35778/34583)) 35778/34583) (num-test (sqrt (* 19920/16774 19920/16774)) 9960/8387) (num-test (sqrt (* 29100/37656 29100/37656)) 2425/3138) (num-test (sqrt (* 64906/58229 64906/58229)) 64906/58229) (num-test (sqrt 144) 12) (num-test (sqrt 9000000000000000000) 3000000000) ;; but unfortunately in non-gmp, 9400000000000000000 -> -9046744073709551616 (if (and (integer? (sqrt 4)) (exact? (sqrt 4))) (begin (for-each (lambda (n sqn) (if (positive? n) ; in case 32 bit int (let ((val (sqrt n))) (test-assert (format #f ";(sqrt ~A) => ~A (got ~A)" n sqn val) (and (integer? val) (eqv? sqn val)))))) (list 9 491401 19439281 1248844921 235565593201) (list 3 701 4409 35339 485351)) (for-each (lambda (n) (if (positive? n) (let ((val (sqrt n))) (test-assert (format #f ";(sqrt ~A) => ~A (got ~A)" n (sqrt (* 1.0 n)) val) (and (not (integer? val)) (<= (abs (- (* val val) n)) .001)))))) (list 10 491400 19439282 1248844920 235565593200)) (s7-test (eqv? (expt 2 3) 8) #t) ;;(s7-test (eqv? (log 8 2) 3) #t) ; optimization in C (-O2) changes this (num-test (s7-log 8 2) 3) (num-test (s7-log 1/8 2) -3) (s7-test (eqv? (expt 701 2) 491401) #t) (s7-test (eqv? (s7-log 491401 701) 2) #t) )) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x -10.0 (+ x .1))) ((= i 200)) (let ((y (magnitude (- x (* (sqrt x) (sqrt x)))))) (if (> y err) (begin (set! mx x) (set! err y))))) (test-assert (format #f ";(sqr (sqrt ~A)) error: ~A" mx err) (<= err 1e-14))) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x -10.0+i (+ x .1+i))) ((= i 200)) (let ((y (magnitude (- x (* (sqrt x) (sqrt x)))))) (if (> y err) (begin (set! mx x) (set! err y))))) (test-assert (format #f ";(sqr (sqrt ~A)) error: ~A" mx err) (<= err 1e-12))) (num-test (* (/ 4 (sqrt 522)) (log (* (expt (/ (+ 5 (sqrt 29)) (sqrt 2)) 3) (+ (* 5 (sqrt 29)) (* 11 (sqrt 6))) (expt (+ (sqrt (/ (+ 9 (* 3 (sqrt 6))) 4)) (sqrt (/ (+ 5 (* 3 (sqrt 6))) 4))) 6)))) ;31 digits pi) (num-test (let* ((N 3502) (D (* 1/2 (+ 1071 (* 184 (sqrt 34))))) (E (* 1/2 (+ 1553 (* 266 (sqrt 34))))) (F (+ 429 (* 304 (sqrt 2)))) (G (* 1/2 (+ 627 (* 442 (sqrt 2))))) (d1 (+ D (sqrt (- (* D D) 1)))) (e1 (+ E (sqrt (- (* E E) 1)))) (f1 (+ F (sqrt (- (* F F) 1)))) (g1 (+ G (sqrt (- (* G G) 1)))) (defg (* 2 d1 e1 f1 g1))) (* (/ (sqrt N)) (- (log (expt defg -6))))) pi) (num-test (let* ((N 2737) (D (* 1/2 (+ 621 (* 49 (sqrt 161))))) (E (* 1/4 (+ 321 (* 25 (sqrt 161))))) (F (* 1/4 (+ 393 (* 31 (sqrt 161))))) (G (* 1/4 (+ 2529 (* 199 (sqrt 161))))) (d (+ D (sqrt (- (* D D) 1)))) (e (+ E (sqrt (- (* E E) 1)))) (f (+ F (sqrt (- (* F F) 1)))) (g (+ G (sqrt (- (* G G) 1)))) (defg (* 2 d e f g))) (* (/ (sqrt N)) (- (log (abs (* -1 (expt defg -6))))))) pi) ; Newman and Shanks "On a Sequence Arising in Series for pi" (num-test (let* ((an (sqrt 2)) ; Borwein and Borwein "AGM Mean and Fast Computation" (bn 0) (pn (+ 2 (sqrt 2)))) (do ((i 0 (+ i 1))) ((= i 4) pn) (let* ((sqa (sqrt an)) (an1 (* 1/2 (+ sqa (/ 1.0 sqa)))) (bn1 (* sqa (/ (+ bn 1) (+ bn an)))) (pn1 (* pn bn1 (/ (+ an1 1) (+ bn1 1))))) (set! pn pn1) (set! bn bn1) (set! an an1)))) pi) (num-test (sqrt 340282366920938463463374607431768211456) 18446744073709551616) (num-test (sqrt 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656) 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216) (num-test (sqrt 1208925819614629174706176/717897987691852588770249) 1099511627776/847288609443) (num-test (sqrt (/ (* 1.0 (expt 2 80)) (expt 3 50))) 1.297682531692252029863335918836296060669E0) (num-test (sqrt -340282366920938463463374607431768211456) 0.0+1.8446744073709551616E19i) ;; XXX Precision problem? ;(num-test (sqrt 0+340282366920938463463374607431768211456i) 1.304381782533278221234957180625250836888E19+1.304381782533278221234957180625250836888E19i) (s7-test (sqrt) 'error) (s7-test (sqrt "hi") 'error) (s7-test (sqrt 1.0+23.0i 1.0+23.0i) 'error) (num-test (sqrt 1/1073741824) 1/32768) (num-test (sqrt 1/274877906944) 1/524288) (num-test (sqrt 9223372030926249001) 3037000499) (num-test (sqrt 1/274877906944) 1/524288) (num-test (sqrt 1/1099511627776) 1/1048576) (num-test (sqrt 1/4398046511104) (sqrt (/ (expt 2 42)))) (num-test (sqrt 1/4611686018427387904) 1/2147483648) (num-test (sqrt 1/1152921504606846976) 1/1073741824) (num-test (sqrt 1/9223372030926249001) 1/3037000499) (num-test (sqrt 0+i) (/ 1+i (sqrt 2))) (num-test (+ 0-i(sqrt 00)) 0-i) (num-test (sqrt (* 1.2345e-127 1.2345e-127)) 1.2345e-127) (num-test (sqrt (* 1.2345e-27 1.2345e-27)) 1.2345e-27) (num-test (sqrt 13) (do ((i 1 (+ i 1)) (prod 1.0 (* prod (tan (/ (* i pi) 13))))) ((= i 7) prod))) (num-test (* 768 (sqrt (- 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 1))))))))))))))))))) 3.1415904632368) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 sqrt num (sqrt num) val))) (list (list 0 0) (list 1 1) (list 2 1.4142135623731) (list 3 1.7320508075689) (list -1 0+1i) (list -2 0+1.4142135623731i) (list -3 0+1.7320508075689i) (list 9223372036854775807 3037000499.976) (list -9223372036854775808 0+3037000499.976i) (list 1/2 0.70710678118655) (list 1/3 0.57735026918963) (list -1/2 0+0.70710678118655i) (list -1/3 0+0.57735026918963i) (list 1/9223372036854775807 3.2927225399136e-10) (list 0.0 0.0) (list 1.0 1.0) (list 2.0 1.4142135623731) (list -2.0 0+1.4142135623731i) (list 1.000000000000000000000000000000000000002E-309 3.162277660168379331998893544432718533725E-155) (list 1e+16 100000000.0) (list 0+1i 0.70710678118655+0.70710678118655i) (list 0+2i 1+1i) (list 0-1i 0.70710678118655-0.70710678118655i) (list 1+1i 1.0986841134678+0.45508986056223i) (list 1-1i 1.0986841134678-0.45508986056223i) (list -1+1i 0.45508986056223+1.0986841134678i) (list -1-1i 0.45508986056223-1.0986841134678i) (list 0.1+0.1i 0.34743442276012+0.14391204994251i) (list 1e+16+1e+16i 109868411.34678+45508986.056223i) (list 1e-16+1e-16i 1.0986841134678e-08+4.5508986056223e-09i) )) (let ((sqrts (list 1.00000000000000000000000000000000000000000000000000000000000000000000 1.41421356237309504880168872420969807856967187537694807317667973799073 1.73205080756887729352744634150587236694280525381038062805580697945193 2.00000000000000000000000000000000000000000000000000000000000000000000 2.23606797749978969640917366873127623544061835961152572427089724541052 2.44948974278317809819728407470589139196594748065667012843269256725096 2.64575131106459059050161575363926042571025918308245018036833445920106 2.82842712474619009760337744841939615713934375075389614635335947598146 3.00000000000000000000000000000000000000000000000000000000000000000000 3.16227766016837933199889354443271853371955513932521682685750485279259 3.31662479035539984911493273667068668392708854558935359705868214611648 3.46410161513775458705489268301174473388561050762076125611161395890386 3.60555127546398929311922126747049594625129657384524621271045305622716 3.74165738677394138558374873231654930175601980777872694630374546732003 3.87298334620741688517926539978239961083292170529159082658757376611348 4.00000000000000000000000000000000000000000000000000000000000000000000 4.12310562561766054982140985597407702514719922537362043439863357309495 4.24264068711928514640506617262909423570901562613084421953003921397219 4.35889894354067355223698198385961565913700392523244493689034413815955 4.47213595499957939281834733746255247088123671922305144854179449082104 4.58257569495584000658804719372800848898445657676797190260724212390686 4.69041575982342955456563011354446628058822835341173715360570189101702 4.79583152331271954159743806416269391999670704190412934648530911444825 4.89897948556635619639456814941178278393189496131334025686538513450192 5.00000000000000000000000000000000000000000000000000000000000000000000 5.09901951359278483002822410902278198956377094609959640758497080442593 5.19615242270663188058233902451761710082841576143114188416742093835579 5.29150262212918118100323150727852085142051836616490036073666891840213 5.38516480713450403125071049154032955629512016164478883768038867001664 5.47722557505166113456969782800802133952744694997983254226894449732493 5.56776436283002192211947129891854952047639337757041430396843258560358 5.65685424949238019520675489683879231427868750150779229270671895196292 5.74456264653802865985061146821892931822026445798279236769987747056590 5.83095189484530047087415287754558307652139833488597195445000674486781 5.91607978309961604256732829156161704841550123079434032287971966914282 6.00000000000000000000000000000000000000000000000000000000000000000000 6.08276253029821968899968424520206706208497009478641118641915304648633 6.16441400296897645025019238145424422523562402344457454487457207245839 6.24499799839839820584689312093979446107295997799165630845297193060961 6.32455532033675866399778708886543706743911027865043365371500970558518))) (let ((mxerr 0.0)) (do ((i 1 (+ i 1))) ((> i 40)) (let ((err (abs (- (sqrt i) (list-ref sqrts (- i 1)))))) (if (> err mxerr) (set! mxerr err)))) (test-assert (format #f "sqrt err: ~A" mxerr) (<= mxerr 1e-12)))) (test-end "sqrt") ;;; -------------------------------------------------------------------------------- ;;; exp ;;; -------------------------------------------------------------------------------- (test-begin "exp") (num-test (exp 0) 1.0) (num-test (exp 1) 2.71828182845905) (num-test (exp -1) 0.36787944117144) (num-test (exp 2) 7.38905609893065) (num-test (exp -2) 0.13533528323661) (num-test (exp 3) 20.08553692318767) (num-test (exp -3) 0.04978706836786) (num-test (exp 10) 22026.46579480671789) (num-test (exp -10) 0.00004539992976) (num-test (exp 0/1) 1.0) (num-test (exp 0/2) 1.0) (num-test (exp 0/3) 1.0) (num-test (exp 0/10) 1.0) (num-test (exp 0/1234) 1.0) (num-test (exp 0/1234000000) 1.0) (num-test (exp 0/500029) 1.0) (num-test (exp 0/362880) 1.0) (num-test (exp 1/1) 2.71828182845905) (num-test (exp -1/1) 0.36787944117144) (num-test (exp 1/2) 1.64872127070013) (num-test (exp -1/2) 0.60653065971263) (num-test (exp 1/3) 1.39561242508609) (num-test (exp -1/3) 0.71653131057379) (num-test (exp 1/10) 1.10517091807565) (num-test (exp -1/10) 0.90483741803596) (num-test (exp 1/1234) 1.00081070121220) (num-test (exp -1/1234) 0.99918995549186) (num-test (exp 1/1234000000) 1.00000000081037) (num-test (exp -1/1234000000) 0.99999999918963) (num-test (exp 1/500029) 1.00000199988601) (num-test (exp -1/500029) 0.99999800011799) (num-test (exp 1/362880) 1.00000275573572) (num-test (exp -1/362880) 0.99999724427187) (num-test (exp 2/1) 7.38905609893065) (num-test (exp -2/1) 0.13533528323661) (num-test (exp 2/2) 2.71828182845905) (num-test (exp -2/2) 0.36787944117144) (num-test (exp 2/3) 1.94773404105468) (num-test (exp -2/3) 0.51341711903259) (num-test (exp 2/10) 1.22140275816017) (num-test (exp -2/10) 0.81873075307798) (num-test (exp 2/1234) 1.00162205966086) (num-test (exp -2/1234) 0.99838056715583) (num-test (exp 2/1234000000) 1.00000000162075) (num-test (exp -2/1234000000) 0.99999999837925) (num-test (exp 2/500029) 1.00000399977601) (num-test (exp -2/500029) 0.99999600023999) (num-test (exp 2/362880) 1.00000551147903) (num-test (exp -2/362880) 0.99999448855134) (num-test (exp 3/1) 20.08553692318767) (num-test (exp -3/1) 0.04978706836786) (num-test (exp 3/2) 4.48168907033806) (num-test (exp -3/2) 0.22313016014843) (num-test (exp 3/3) 2.71828182845905) (num-test (exp -3/3) 0.36787944117144) (num-test (exp 3/10) 1.34985880757600) (num-test (exp -3/10) 0.74081822068172) (num-test (exp 3/1234) 1.00243407587880) (num-test (exp -3/1234) 0.99757183446037) (num-test (exp 3/1234000000) 1.00000000243112) (num-test (exp -3/1234000000) 0.99999999756888) (num-test (exp 3/500029) 1.00000599967002) (num-test (exp -3/500029) 0.99999400036598) (num-test (exp 3/362880) 1.00000826722994) (num-test (exp -3/362880) 0.99999173283841) (num-test (exp 10/1) 22026.46579480671789) (num-test (exp -10/1) 0.00004539992976) (num-test (exp 10/2) 148.41315910257660) (num-test (exp -10/2) 0.00673794699909) (num-test (exp 10/3) 28.03162489452614) (num-test (exp -10/3) 0.03567399334725) (num-test (exp 10/10) 2.71828182845905) (num-test (exp -10/10) 0.36787944117144) (num-test (exp 10/1234) 1.00813665179201) (num-test (exp -10/1234) 0.99192901897025) (num-test (exp 10/1234000000) 1.00000000810373) (num-test (exp -10/1234000000) 0.99999999189627) (num-test (exp 10/500029) 1.00001999904005) (num-test (exp -10/500029) 0.99998000135991) (num-test (exp 10/362880) 1.00002755769893) (num-test (exp -10/362880) 0.99997244306048) (num-test (exp 1234/1234) 2.71828182845905) (num-test (exp -1234/1234) 0.36787944117144) (num-test (exp 1234/1234000000) 1.00000100000050) (num-test (exp -1234/1234000000) 0.99999900000050) (num-test (exp 1234/500029) 1.00247090452960) (num-test (exp -1234/500029) 0.99753518579099) (num-test (exp 1234/362880) 1.00340636170081) (num-test (exp -1234/362880) 0.99660520220837) (num-test (exp 1234000000/1234000000) 2.71828182845905) (num-test (exp -1234000000/1234000000) 0.36787944117144) (num-test (exp 500029/1234000000) 1.00040529199516) (num-test (exp -500029/1234000000) 0.99959487219989) (num-test (exp 500029/500029) 2.71828182845905) (num-test (exp -500029/500029) 0.36787944117144) (num-test (exp 500029/362880) 3.96674507247837) (num-test (exp -500029/362880) 0.25209585736630) (num-test (exp 362880/1234000000) 1.00029411131357) (num-test (exp -362880/1234000000) 0.99970597516246) (num-test (exp 362880/500029) 2.06621391988774) (num-test (exp -362880/500029) 0.48397699307646) (num-test (exp 362880/362880) 2.71828182845905) (num-test (exp -362880/362880) 0.36787944117144) (num-test (exp 0.0) 1.0) (num-test (exp 0.00000001) 1.00000001) (num-test (exp -0.00000001) 0.99999999000000) (num-test (exp 1.0) 2.71828182845905) (num-test (exp -1.0) 0.36787944117144) (num-test (exp pi) 23.14069263277927) (num-test (exp -3.14159265358979) 0.04321391826377) (num-test (exp 2.71828182845905) 15.15426224147926) (num-test (exp -2.71828182845905) 0.06598803584531) (num-test (exp 0.0+0.0i) 1.0) (num-test (exp -0.0+0.0i) 1.0) (num-test (exp 0.0-0.0i) 1.0) (num-test (exp -0.0-0.0i) 1.0) (num-test (exp 0.0+0.00000001i) 1.0+0.00000001i) (num-test (exp -0.0+0.00000001i) 1.0+0.00000001i) (num-test (exp 0.0-0.00000001i) 1.0-0.00000001i) (num-test (exp -0.0-0.00000001i) 1.0-0.00000001i) (num-test (exp 0.0+1.0i) 0.54030230586814+0.84147098480790i) (num-test (exp -0.0+1.0i) 0.54030230586814+0.84147098480790i) (num-test (exp 0.0-1.0i) 0.54030230586814-0.84147098480790i) (num-test (exp -0.0-1.0i) 0.54030230586814-0.84147098480790i) (num-test (exp 0.0+3.14159265358979i) -1.0+0.0i) (num-test (exp -0.0+3.14159265358979i) -1.0+0.0i) (num-test (exp 0.0-3.14159265358979i) -1.0-0.0i) (num-test (exp -0.0-3.14159265358979i) -1.0-0.0i) (num-test (exp 0.0+2.71828182845905i) -0.91173391478697+0.41078129050291i) (num-test (exp -0.0+2.71828182845905i) -0.91173391478697+0.41078129050291i) (num-test (exp 0.0-2.71828182845905i) -0.91173391478697-0.41078129050291i) (num-test (exp -0.0-2.71828182845905i) -0.91173391478697-0.41078129050291i) (num-test (exp 0.00000001+0.0i) 1.00000001) (num-test (exp -0.00000001+0.0i) 0.99999999000000) (num-test (exp 0.00000001-0.0i) 1.00000001) (num-test (exp -0.00000001-0.0i) 0.99999999000000) (num-test (exp 0.00000001+0.00000001i) 1.00000001+0.00000001i) (num-test (exp -0.00000001+0.00000001i) 0.99999999000000+0.00000001i) (num-test (exp 0.00000001-0.00000001i) 1.00000001-0.00000001i) (num-test (exp -0.00000001-0.00000001i) 0.99999999000000-0.00000001i) (num-test (exp 0.00000001+1.0i) 0.54030231127116+0.84147099322261i) (num-test (exp -0.00000001+1.0i) 0.54030230046512+0.84147097639319i) (num-test (exp 0.00000001-1.0i) 0.54030231127116-0.84147099322261i) (num-test (exp -0.00000001-1.0i) 0.54030230046512-0.84147097639319i) (num-test (exp 0.00000001+3.14159265358979i) -1.00000001+0.0i) (num-test (exp -0.00000001+3.14159265358979i) -0.99999999000000+0.0i) (num-test (exp 0.00000001-3.14159265358979i) -1.00000001-0.0i) (num-test (exp -0.00000001-3.14159265358979i) -0.99999999000000-0.0i) (num-test (exp 0.00000001+2.71828182845905i) -0.91173392390430+0.41078129461072i) (num-test (exp -0.00000001+2.71828182845905i) -0.91173390566963+0.41078128639510i) (num-test (exp 0.00000001-2.71828182845905i) -0.91173392390430-0.41078129461072i) (num-test (exp -0.00000001-2.71828182845905i) -0.91173390566963-0.41078128639510i) (num-test (exp 1.0+0.0i) 2.71828182845905) (num-test (exp -1.0+0.0i) 0.36787944117144) (num-test (exp 1.0-0.0i) 2.71828182845905) (num-test (exp -1.0-0.0i) 0.36787944117144) (num-test (exp 1.0+0.00000001i) 2.71828182845905+0.00000002718282i) (num-test (exp -1.0+0.00000001i) 0.36787944117144+0.00000000367879i) (num-test (exp 1.0-0.00000001i) 2.71828182845905-0.00000002718282i) (num-test (exp -1.0-0.00000001i) 0.36787944117144-0.00000000367879i) (num-test (exp 1.0+1.0i) 1.46869393991589+2.28735528717884i) (num-test (exp -1.0+1.0i) 0.19876611034641+0.30955987565311i) (num-test (exp 1.0-1.0i) 1.46869393991589-2.28735528717884i) (num-test (exp -1.0-1.0i) 0.19876611034641-0.30955987565311i) (num-test (exp 1.0+3.14159265358979i) -2.71828182845905+0.0i) (num-test (exp -1.0+3.14159265358979i) -0.36787944117144+0.0i) (num-test (exp 1.0-3.14159265358979i) -2.71828182845905-0.0i) (num-test (exp -1.0-3.14159265358979i) -0.36787944117144-0.0i) (num-test (exp 1.0+2.71828182845905i) -2.47834973295523+1.11661931744501i) (num-test (exp -1.0+2.71828182845905i) -0.33540816306888+0.15111799159389i) (num-test (exp 1.0-2.71828182845905i) -2.47834973295523-1.11661931744501i) (num-test (exp -1.0-2.71828182845905i) -0.33540816306888-0.15111799159389i) (num-test (exp 3.14159265358979+0.0i) 23.14069263277927) (num-test (exp -3.14159265358979+0.0i) 0.04321391826377) (num-test (exp 3.14159265358979-0.0i) 23.14069263277927) (num-test (exp -3.14159265358979-0.0i) 0.04321391826377) (num-test (exp 3.14159265358979+0.00000001i) 23.14069263277926+0.00000023140693i) (num-test (exp -3.14159265358979+0.00000001i) 0.04321391826377+0.00000000043214i) (num-test (exp 3.14159265358979-0.00000001i) 23.14069263277926-0.00000023140693i) (num-test (exp -3.14159265358979-0.00000001i) 0.04321391826377-0.00000000043214i) (num-test (exp 3.14159265358979+1.0i) 12.50296958887651+19.47222141884161i) (num-test (exp -3.14159265358979+1.0i) 0.02334857968351+0.03636325835882i) (num-test (exp 3.14159265358979-1.0i) 12.50296958887651-19.47222141884161i) (num-test (exp -3.14159265358979-1.0i) 0.02334857968351-0.03636325835882i) (num-test (exp 3.14159265358979+3.14159265358979i) -23.14069263277927+0.0i) (num-test (exp -3.14159265358979+3.14159265358979i) -0.04321391826377+0.0i) (num-test (exp 3.14159265358979-3.14159265358979i) -23.14069263277927-0.0i) (num-test (exp -3.14159265358979-3.14159265358979i) -0.04321391826377-0.0i) (num-test (exp 3.14159265358979+2.71828182845905i) -21.09815428496572+9.50576358282422i) (num-test (exp -3.14159265358979+2.71828182845905i) -0.03939959487191+0.01775146911208i) (num-test (exp 3.14159265358979-2.71828182845905i) -21.09815428496572-9.50576358282422i) (num-test (exp -3.14159265358979-2.71828182845905i) -0.03939959487191-0.01775146911208i) (num-test (exp 2.71828182845905+0.0i) 15.15426224147926) (num-test (exp -2.71828182845905+0.0i) 0.06598803584531) (num-test (exp 2.71828182845905-0.0i) 15.15426224147926) (num-test (exp -2.71828182845905-0.0i) 0.06598803584531) (num-test (exp 2.71828182845905+0.00000001i) 15.15426224147926+0.00000015154262i) (num-test (exp -2.71828182845905+0.00000001i) 0.06598803584531+0.00000000065988i) (num-test (exp 2.71828182845905-0.00000001i) 15.15426224147926-0.00000015154262i) (num-test (exp -2.71828182845905-0.00000001i) 0.06598803584531-0.00000000065988i) (num-test (exp 2.71828182845905+1.0i) 8.18788283280173+12.75187197237468i) (num-test (exp -2.71828182845905+1.0i) 0.03565348792693+0.05552701750829i) (num-test (exp 2.71828182845905-1.0i) 8.18788283280173-12.75187197237468i) (num-test (exp -2.71828182845905-1.0i) 0.03565348792693-0.05552701750829i) (num-test (exp 2.71828182845905+3.14159265358979i) -15.15426224147926+0.0i) (num-test (exp -2.71828182845905+3.14159265358979i) -0.06598803584531+0.0i) (num-test (exp 2.71828182845905-3.14159265358979i) -15.15426224147926-0.0i) (num-test (exp -2.71828182845905-3.14159265358979i) -0.06598803584531-0.0i) (num-test (exp 2.71828182845905+2.71828182845905i) -13.81665483913218+6.22508740017436i) (num-test (exp -2.71828182845905+2.71828182845905i) -0.06016353025035+0.02710665052229i) (num-test (exp 2.71828182845905-2.71828182845905i) -13.81665483913218-6.22508740017436i) (num-test (exp -2.71828182845905-2.71828182845905i) -0.06016353025035-0.02710665052229i) (num-test (exp -1234.0+0.0i) 0.0) (num-test (exp -1234.0-0.0i) 0.0) (num-test (exp -1234.0+0.00000001i) 0.0) (num-test (exp -1234.0-0.00000001i) 0.0) (num-test (exp -1234.0+3.14159265358979i) 0.0) (num-test (exp -1234.0-3.14159265358979i) 0.0) (num-test (exp -1234.0+2.71828182845905i) 0.0) (num-test (exp -1234.0-2.71828182845905i) 0.0) (num-test (exp -1234000000.0+0.0i) 0.0) (num-test (exp -1234000000.0-0.0i) 0.0) (num-test (exp -1234000000.0+0.00000001i) 0.0) (num-test (exp -1234000000.0-0.00000001i) 0.0) (num-test (exp -1234000000.0+3.14159265358979i) 0.0) (num-test (exp -1234000000.0-3.14159265358979i) 0.0) (num-test (exp -1234000000.0+2.71828182845905i) 0.0) (num-test (exp -1234000000.0-2.71828182845905i) 0.0) (num-test (exp 10.0) 22026.46579480672) (num-test (exp 100.0) 2.688117141816135E+43) (num-test (exp -10.0) 4.5399929762484853E-5) (num-test (exp -100.0) 3.720075976020836E-44) (num-test (exp -7.080000e+02) 3.307553e-308) (num-test (exp 7.090000e+02) 8.218407461554972189241372386597816393254E307) (num-test (exp 0.00000001+1234.0i) -0.7985506315730906+0.601927660781774i) (num-test (exp 0.00000001+1234000000.0i) .1589091324793142-0.987293222712823i) (num-test (exp 3.14159265358979+1234.0i) -18.47901453215463+13.92902284602872i) (num-test (exp 3.14159265358979+1234000000.0i) 3.677267354472762-22.8466487767572i) (num-test (exp 2.71828182845905+1234.0i) -12.1014455629425+9.121769530669065i) (num-test (exp 2.71828182845905+1234000000.0i) 2.408150642075881-14.96170025660763i) (num-test (exp 0.0e+00-3.45266983001243932001e-04i) 9.9999994039535581673e-1-3.4526697614140534807e-4i) (num-test (exp 0.0e+00+3.45266983001243932001e-04i) 9.9999994039535581673e-1+3.4526697614140534807e-4i) (num-test (exp 0.0e+00+1.57045105981189525579e+00i) 3.4526697614152485627e-4+9.9999994039535581669e-1i) (num-test (exp 0.0e+00-1.57045105981189525579e+00i) 3.4526697614152485627e-4-9.9999994039535581669e-1i) (num-test (exp 0.0e+00+1.57114159377789786021e+00i) -3.4526697614140239160e-4+9.9999994039535581673e-1i) (num-test (exp 0.0e+00-1.57114159377789786021e+00i) -3.4526697614140239160e-4-9.9999994039535581673e-1i) (num-test (exp 0.0e+00+3.14124738660679181379e+00i) -9.9999994039535581667e-1+3.4526697614158608860e-4i) (num-test (exp 0.0e+00-3.14124738660679181379e+00i) -9.9999994039535581667e-1-3.4526697614158608860e-4i) (num-test (exp 0.0e+00+3.14193792057279441821e+00i) -9.9999994039535581675e-1-3.4526697614134115926e-4i) (num-test (exp 0.0e+00-3.14193792057279441821e+00i) -9.9999994039535581675e-1+3.4526697614134115926e-4i) (num-test (exp 0.0e+00+4.71204371340168837179e+00i) -3.4526697614164732094e-4-9.9999994039535581664e-1i) (num-test (exp 0.0e+00-4.71204371340168837179e+00i) -3.4526697614164732094e-4+9.9999994039535581664e-1i) (num-test (exp 0.0e+00+4.71273424736769097620e+00i) 3.4526697614127992692e-4-9.9999994039535581677e-1i) (num-test (exp 0.0e+00-4.71273424736769097620e+00i) 3.4526697614127992692e-4+9.9999994039535581677e-1i) (num-test (exp 0.0e+00+6.28284004019658492979e+00i) 9.9999994039535581662e-1-3.4526697614170855328e-4i) (num-test (exp 0.0e+00-6.28284004019658492979e+00i) 9.9999994039535581662e-1+3.4526697614170855328e-4i) (num-test (exp 0.0e+00+6.28353057416258753420e+00i) 9.9999994039535581679e-1+3.4526697614121869459e-4i) (num-test (exp 0.0e+00-6.28353057416258753420e+00i) 9.9999994039535581679e-1-3.4526697614121869459e-4i) (num-test (exp 0.0e+00+9.42443269378637893396e+00i) -9.9999994039535581689e-1+3.4526697614094283958e-4i) (num-test (exp 0.0e+00-9.42443269378637893396e+00i) -9.9999994039535581689e-1-3.4526697614094283958e-4i) (num-test (exp 0.0e+00+9.42512322775237976202e+00i) -9.9999994039535581714e-1-3.4526697614020805155e-4i) (num-test (exp 0.0e+00-9.42512322775237976202e+00i) -9.9999994039535581714e-1+3.4526697614020805155e-4i) (num-test (exp 1.19209289550781250e-07-3.45266983001243932001e-04i) 1.0000000596046453675e0-3.4526701730043873250e-4i) (num-test (exp 1.19209289550781250e-07+3.45266983001243932001e-04i) 1.0000000596046453675e0+3.4526701730043873250e-4i) (num-test (exp -1.19209289550781250e-07-3.45266983001243932001e-04i) 9.9999982118608047680e-1-3.4526693498237687017e-4i) (num-test (exp -1.19209289550781250e-07+3.45266983001243932001e-04i) 9.9999982118608047680e-1+3.4526693498237687017e-4i) (num-test (exp 1.19209289550781250e-07+1.57045105981189525579e+00i) 3.4526701730055824072e-4+1.0000000596046453675e0i) (num-test (exp 1.19209289550781250e-07-1.57045105981189525579e+00i) 3.4526701730055824072e-4-1.0000000596046453675e0i) (num-test (exp -1.19209289550781250e-07+1.57045105981189525579e+00i) 3.4526693498249637836e-4+9.9999982118608047676e-1i) (num-test (exp -1.19209289550781250e-07-1.57045105981189525579e+00i) 3.4526693498249637836e-4-9.9999982118608047676e-1i) (num-test (exp 1.19209289550781250e-07+1.57114159377789786021e+00i) -3.4526701730043577603e-4+1.0000000596046453675e0i) (num-test (exp 1.19209289550781250e-07-1.57114159377789786021e+00i) -3.4526701730043577603e-4-1.0000000596046453675e0i) (num-test (exp -1.19209289550781250e-07+1.57114159377789786021e+00i) -3.4526693498237391370e-4+9.9999982118608047680e-1i) (num-test (exp -1.19209289550781250e-07-1.57114159377789786021e+00i) -3.4526693498237391370e-4-9.9999982118608047680e-1i) (num-test (exp 1.19209289550781250e-07+3.14124738660679181379e+00i) -1.0000000596046453674e0+3.4526701730061947306e-4i) (num-test (exp 1.19209289550781250e-07-3.14124738660679181379e+00i) -1.0000000596046453674e0-3.4526701730061947306e-4i) (num-test (exp -1.19209289550781250e-07+3.14124738660679181379e+00i) -9.9999982118608047674e-1+3.4526693498255761069e-4i) (num-test (exp -1.19209289550781250e-07-3.14124738660679181379e+00i) -9.9999982118608047674e-1-3.4526693498255761069e-4i) (num-test (exp 1.19209289550781250e-07+3.14193792057279441821e+00i) -1.0000000596046453675e0-3.4526701730037454368e-4i) (num-test (exp 1.19209289550781250e-07-3.14193792057279441821e+00i) -1.0000000596046453675e0+3.4526701730037454368e-4i) (num-test (exp -1.19209289550781250e-07+3.14193792057279441821e+00i) -9.9999982118608047682e-1-3.4526693498231268137e-4i) (num-test (exp -1.19209289550781250e-07-3.14193792057279441821e+00i) -9.9999982118608047682e-1+3.4526693498231268137e-4i) (num-test (exp 1.19209289550781250e-07+4.71204371340168837179e+00i) -3.4526701730068070540e-4-1.0000000596046453674e0i) (num-test (exp 1.19209289550781250e-07-4.71204371340168837179e+00i) -3.4526701730068070540e-4+1.0000000596046453674e0i) (num-test (exp -1.19209289550781250e-07+4.71204371340168837179e+00i) -3.4526693498261884302e-4-9.9999982118608047672e-1i) (num-test (exp -1.19209289550781250e-07-4.71204371340168837179e+00i) -3.4526693498261884302e-4+9.9999982118608047672e-1i) (num-test (exp 1.19209289550781250e-07+4.71273424736769097620e+00i) 3.4526701730031331134e-4-1.0000000596046453676e0i) (num-test (exp 1.19209289550781250e-07-4.71273424736769097620e+00i) 3.4526701730031331134e-4+1.0000000596046453676e0i) (num-test (exp -1.19209289550781250e-07+4.71273424736769097620e+00i) 3.4526693498225144904e-4-9.9999982118608047684e-1i) (num-test (exp -1.19209289550781250e-07-4.71273424736769097620e+00i) 3.4526693498225144904e-4+9.9999982118608047684e-1i) (num-test (exp 1.19209289550781250e-07+6.28284004019658492979e+00i) 1.0000000596046453674e0-3.4526701730074193775e-4i) (num-test (exp 1.19209289550781250e-07-6.28284004019658492979e+00i) 1.0000000596046453674e0+3.4526701730074193775e-4i) (num-test (exp -1.19209289550781250e-07+6.28284004019658492979e+00i) 9.9999982118608047670e-1-3.4526693498268007535e-4i) (num-test (exp -1.19209289550781250e-07-6.28284004019658492979e+00i) 9.9999982118608047670e-1+3.4526693498268007535e-4i) (num-test (exp 1.19209289550781250e-07+6.28353057416258753420e+00i) 1.0000000596046453676e0+3.452670173002520790e-4i) (num-test (exp 1.19209289550781250e-07-6.28353057416258753420e+00i) 1.0000000596046453676e0-3.452670173002520790e-4i) (num-test (exp -1.19209289550781250e-07+6.28353057416258753420e+00i) 9.9999982118608047687e-1+3.4526693498219021671e-4i) (num-test (exp -1.19209289550781250e-07-6.28353057416258753420e+00i) 9.9999982118608047687e-1-3.4526693498219021671e-4i) (num-test (exp 1.19209289550781250e-07+9.42443269378637893396e+00i) -1.0000000596046453677e0+3.4526701729997622396e-4i) (num-test (exp 1.19209289550781250e-07-9.42443269378637893396e+00i) -1.0000000596046453677e0-3.4526701729997622396e-4i) (num-test (exp -1.19209289550781250e-07+9.42443269378637893396e+00i) -9.9999982118608047696e-1+3.4526693498191436174e-4i) (num-test (exp -1.19209289550781250e-07-9.42443269378637893396e+00i) -9.9999982118608047696e-1-3.4526693498191436174e-4i) (num-test (exp 1.19209289550781250e-07+9.42512322775237976202e+00i) -1.0000000596046453679e0-3.4526701729924143584e-4i) (num-test (exp 1.19209289550781250e-07-9.42512322775237976202e+00i) -1.0000000596046453679e0+3.4526701729924143584e-4i) (num-test (exp -1.19209289550781250e-07+9.42512322775237976202e+00i) -9.9999982118608047721e-1-3.4526693498117957380e-4i) (num-test (exp -1.19209289550781250e-07-9.42512322775237976202e+00i) -9.9999982118608047721e-1+3.4526693498117957380e-4i) (num-test (exp 5.0e-01-3.45266983001243932001e-04i) 1.6487211724286834494e0-5.6924900763464865323e-4i) (num-test (exp 5.0e-01+3.45266983001243932001e-04i) 1.6487211724286834494e0+5.6924900763464865323e-4i) (num-test (exp -5.0e-01-3.45266983001243932001e-04i) 6.0653062356058926519e-1-2.0941500681603265022e-4i) (num-test (exp -5.0e-01+3.45266983001243932001e-04i) 6.0653062356058926519e-1+2.0941500681603265022e-4i) (num-test (exp 5.0e-01+1.57045105981189525579e+00i) 5.6924900763484568894e-4+1.6487211724286834493e0i) (num-test (exp 5.0e-01-1.57045105981189525579e+00i) 5.6924900763484568894e-4-1.6487211724286834493e0i) (num-test (exp -5.0e-01+1.57045105981189525579e+00i) 2.0941500681610513560e-4+6.0653062356058926516e-1i) (num-test (exp -5.0e-01-1.57045105981189525579e+00i) 2.0941500681610513560e-4-6.0653062356058926516e-1i) (num-test (exp 5.0e-01+1.57114159377789786021e+00i) -5.6924900763464377883e-4+1.6487211724286834494e0i) (num-test (exp 5.0e-01-1.57114159377789786021e+00i) -5.6924900763464377883e-4-1.6487211724286834494e0i) (num-test (exp -5.0e-01+1.57114159377789786021e+00i) -2.0941500681603085702e-4+6.0653062356058926519e-1i) (num-test (exp -5.0e-01-1.57114159377789786021e+00i) -2.0941500681603085702e-4-6.0653062356058926519e-1i) (num-test (exp 5.0e-01+3.14124738660679181379e+00i) -1.6487211724286834493e0+5.6924900763494664399e-4i) (num-test (exp 5.0e-01-3.14124738660679181379e+00i) -1.6487211724286834493e0-5.6924900763494664399e-4i) (num-test (exp -5.0e-01+3.14124738660679181379e+00i) -6.0653062356058926515e-1+2.0941500681614227489e-4i) (num-test (exp -5.0e-01-3.14124738660679181379e+00i) -6.0653062356058926515e-1-2.0941500681614227489e-4i) (num-test (exp 5.0e-01+3.14193792057279441821e+00i) -1.6487211724286834494e0-5.6924900763454282377e-4i) (num-test (exp 5.0e-01-3.14193792057279441821e+00i) -1.6487211724286834494e0+5.6924900763454282377e-4i) (num-test (exp -5.0e-01+3.14193792057279441821e+00i) -6.0653062356058926520e-1-2.0941500681599371773e-4i) (num-test (exp -5.0e-01-3.14193792057279441821e+00i) -6.0653062356058926520e-1+2.0941500681599371773e-4i) (num-test (exp 5.0e-01+4.71204371340168837179e+00i) -5.6924900763504759905e-4-1.6487211724286834492e0i) (num-test (exp 5.0e-01-4.71204371340168837179e+00i) -5.6924900763504759905e-4+1.6487211724286834492e0i) (num-test (exp -5.0e-01+4.71204371340168837179e+00i) -2.0941500681617941418e-4-6.0653062356058926514e-1i) (num-test (exp -5.0e-01-4.71204371340168837179e+00i) -2.0941500681617941418e-4+6.0653062356058926514e-1i) (num-test (exp 5.0e-01+4.71273424736769097620e+00i) 5.6924900763444186872e-4-1.6487211724286834494e0i) (num-test (exp 5.0e-01-4.71273424736769097620e+00i) 5.6924900763444186872e-4+1.6487211724286834494e0i) (num-test (exp -5.0e-01+4.71273424736769097620e+00i) 2.0941500681595657844e-4-6.0653062356058926521e-1i) (num-test (exp -5.0e-01-4.71273424736769097620e+00i) 2.0941500681595657844e-4+6.0653062356058926521e-1i) (num-test (exp 5.0e-01+6.28284004019658492979e+00i) 1.6487211724286834492e0-5.6924900763514855410e-4i) (num-test (exp 5.0e-01-6.28284004019658492979e+00i) 1.6487211724286834492e0+5.6924900763514855410e-4i) (num-test (exp -5.0e-01+6.28284004019658492979e+00i) 6.0653062356058926512e-1-2.0941500681621655347e-4i) (num-test (exp -5.0e-01-6.28284004019658492979e+00i) 6.0653062356058926512e-1+2.0941500681621655347e-4i) (num-test (exp 5.0e-01+6.28353057416258753420e+00i) 1.6487211724286834495e0+5.6924900763434091366e-4i) (num-test (exp 5.0e-01-6.28353057416258753420e+00i) 1.6487211724286834495e0-5.6924900763434091366e-4i) (num-test (exp -5.0e-01+6.28353057416258753420e+00i) 6.0653062356058926523e-1+2.0941500681591943916e-4i) (num-test (exp -5.0e-01-6.28353057416258753420e+00i) 6.0653062356058926523e-1-2.0941500681591943916e-4i) (num-test (exp 5.0e-01+9.42443269378637893396e+00i) -1.6487211724286834496e0+5.6924900763388610565e-4i) (num-test (exp 5.0e-01-9.42443269378637893396e+00i) -1.6487211724286834496e0-5.6924900763388610565e-4i) (num-test (exp -5.0e-01+9.42443269378637893396e+00i) -6.0653062356058926528e-1+2.0941500681575212464e-4i) (num-test (exp -5.0e-01-9.42443269378637893396e+00i) -6.0653062356058926528e-1-2.0941500681575212464e-4i) (num-test (exp 5.0e-01+9.42512322775237976202e+00i) -1.6487211724286834501e0-5.6924900763267464498e-4i) (num-test (exp 5.0e-01-9.42512322775237976202e+00i) -1.6487211724286834501e0+5.6924900763267464498e-4i) (num-test (exp -5.0e-01+9.42512322775237976202e+00i) -6.0653062356058926544e-1-2.0941500681530645317e-4i) (num-test (exp -5.0e-01-9.42512322775237976202e+00i) -6.0653062356058926544e-1+2.0941500681530645317e-4i) (num-test (exp 1.0e+00-3.45266983001243932001e-04i) 2.7182816664368240602e0-9.3853294721218487636e-4i) (num-test (exp 1.0e+00+3.45266983001243932001e-04i) 2.7182816664368240602e0+9.3853294721218487636e-4i) (num-test (exp -1.0e+00-3.45266983001243932001e-04i) 3.6787941924411912823e-1-1.2701662223785390836e-4i) (num-test (exp -1.0e+00+3.45266983001243932001e-04i) 3.6787941924411912823e-1+1.2701662223785390836e-4i) (num-test (exp 1.0e+00+1.57045105981189525579e+00i) 9.3853294721250973333e-4+2.7182816664368240601e0i) (num-test (exp 1.0e+00-1.57045105981189525579e+00i) 9.3853294721250973333e-4-2.7182816664368240601e0i) (num-test (exp -1.0e+00+1.57045105981189525579e+00i) 1.2701662223789787297e-4+3.6787941924411912822e-1i) (num-test (exp -1.0e+00-1.57045105981189525579e+00i) 1.2701662223789787297e-4-3.6787941924411912822e-1i) (num-test (exp 1.0e+00+1.57114159377789786021e+00i) -9.3853294721217683983e-4+2.7182816664368240602e0i) (num-test (exp 1.0e+00-1.57114159377789786021e+00i) -9.3853294721217683983e-4-2.7182816664368240602e0i) (num-test (exp -1.0e+00+1.57114159377789786021e+00i) -1.2701662223785282074e-4+3.6787941924411912823e-1i) (num-test (exp -1.0e+00-1.57114159377789786021e+00i) -1.2701662223785282074e-4-3.6787941924411912823e-1i) (num-test (exp 1.0e+00+3.14124738660679181379e+00i) -2.718281666436824060e0+9.3853294721267618008e-4i) (num-test (exp 1.0e+00-3.14124738660679181379e+00i) -2.718281666436824060e0-9.3853294721267618008e-4i) (num-test (exp -1.0e+00+3.14124738660679181379e+00i) -3.6787941924411912821e-1+1.2701662223792039909e-4i) (num-test (exp -1.0e+00-3.14124738660679181379e+00i) -3.6787941924411912821e-1-1.2701662223792039909e-4i) (num-test (exp 1.0e+00+3.14193792057279441821e+00i) -2.7182816664368240603e0-9.3853294721201039309e-4i) (num-test (exp 1.0e+00-3.14193792057279441821e+00i) -2.7182816664368240603e0+9.3853294721201039309e-4i) (num-test (exp -1.0e+00+3.14193792057279441821e+00i) -3.6787941924411912824e-1-1.2701662223783029462e-4i) (num-test (exp -1.0e+00-3.14193792057279441821e+00i) -3.6787941924411912824e-1+1.2701662223783029462e-4i) (num-test (exp 1.0e+00+4.71204371340168837179e+00i) -9.3853294721284262682e-4-2.718281666436824060e0i) (num-test (exp 1.0e+00-4.71204371340168837179e+00i) -9.3853294721284262682e-4+2.718281666436824060e0i) (num-test (exp -1.0e+00+4.71204371340168837179e+00i) -1.2701662223794292521e-4-3.6787941924411912820e-1i) (num-test (exp -1.0e+00-4.71204371340168837179e+00i) -1.2701662223794292521e-4+3.6787941924411912820e-1i) (num-test (exp 1.0e+00+4.71273424736769097620e+00i) 9.3853294721184394634e-4-2.7182816664368240603e0i) (num-test (exp 1.0e+00-4.71273424736769097620e+00i) 9.3853294721184394634e-4+2.7182816664368240603e0i) (num-test (exp -1.0e+00+4.71273424736769097620e+00i) 1.2701662223780776850e-4-3.6787941924411912825e-1i) (num-test (exp -1.0e+00-4.71273424736769097620e+00i) 1.2701662223780776850e-4+3.6787941924411912825e-1i) (num-test (exp 1.0e+00+6.28284004019658492979e+00i) 2.7182816664368240599e0-9.3853294721300907357e-4i) (num-test (exp 1.0e+00-6.28284004019658492979e+00i) 2.7182816664368240599e0+9.3853294721300907357e-4i) (num-test (exp -1.0e+00+6.28284004019658492979e+00i) 3.6787941924411912819e-1-1.2701662223796545132e-4i) (num-test (exp -1.0e+00-6.28284004019658492979e+00i) 3.6787941924411912819e-1+1.2701662223796545132e-4i) (num-test (exp 1.0e+00+6.28353057416258753420e+00i) 2.7182816664368240604e0+9.3853294721167749959e-4i) (num-test (exp 1.0e+00-6.28353057416258753420e+00i) 2.7182816664368240604e0-9.3853294721167749959e-4i) (num-test (exp -1.0e+00+6.28353057416258753420e+00i) 3.6787941924411912825e-1+1.2701662223778524238e-4i) (num-test (exp -1.0e+00-6.28353057416258753420e+00i) 3.6787941924411912825e-1-1.2701662223778524238e-4i) (num-test (exp 1.0e+00+9.42443269378637893396e+00i) -2.7182816664368240606e0+9.3853294721092764795e-4i) (num-test (exp 1.0e+00-9.42443269378637893396e+00i) -2.7182816664368240606e0-9.3853294721092764795e-4i) (num-test (exp -1.0e+00+9.42443269378637893396e+00i) -3.6787941924411912829e-1+1.270166222376837610e-4i) (num-test (exp -1.0e+00-9.42443269378637893396e+00i) -3.6787941924411912829e-1-1.270166222376837610e-4i) (num-test (exp 1.0e+00+9.42512322775237976202e+00i) -2.7182816664368240613e0-9.3853294720893028698e-4i) (num-test (exp 1.0e+00-9.42512322775237976202e+00i) -2.7182816664368240613e0+9.3853294720893028698e-4i) (num-test (exp -1.0e+00+9.42512322775237976202e+00i) -3.6787941924411912838e-1-1.2701662223741344759e-4i) (num-test (exp -1.0e+00-9.42512322775237976202e+00i) -3.6787941924411912838e-1+1.2701662223741344759e-4i) (num-test (exp 2.0e+00-3.45266983001243932001e-04i) 7.3890556585085906002e0-2.5511970558169944872e-3i) (num-test (exp 2.0e+00+3.45266983001243932001e-04i) 7.3890556585085906002e0+2.5511970558169944872e-3i) (num-test (exp -2.0e+00-3.45266983001243932001e-04i) 1.3533527517000128913e-1-4.6726804008345889445e-5i) (num-test (exp -2.0e+00+3.45266983001243932001e-04i) 1.3533527517000128913e-1+4.6726804008345889445e-5i) (num-test (exp 2.0e+00+1.57045105981189525579e+00i) 2.551197055817877540e-3+7.3890556585085905999e0i) (num-test (exp 2.0e+00-1.57045105981189525579e+00i) 2.551197055817877540e-3-7.3890556585085905999e0i) (num-test (exp -2.0e+00+1.57045105981189525579e+00i) 4.6726804008362063122e-5+1.3533527517000128913e-1i) (num-test (exp -2.0e+00-1.57045105981189525579e+00i) 4.6726804008362063122e-5-1.3533527517000128913e-1i) (num-test (exp 2.0e+00+1.57114159377789786021e+00i) -2.5511970558169726417e-3+7.3890556585085906002e0i) (num-test (exp 2.0e+00-1.57114159377789786021e+00i) -2.5511970558169726417e-3-7.3890556585085906002e0i) (num-test (exp -2.0e+00+1.57114159377789786021e+00i) -4.6726804008345489330e-5+1.3533527517000128913e-1i) (num-test (exp -2.0e+00-1.57114159377789786021e+00i) -4.6726804008345489330e-5-1.3533527517000128913e-1i) (num-test (exp 2.0e+00+3.14124738660679181379e+00i) -7.3890556585085905998e0+2.5511970558183299892e-3i) (num-test (exp 2.0e+00-3.14124738660679181379e+00i) -7.3890556585085905998e0-2.5511970558183299892e-3i) (num-test (exp -2.0e+00+3.14124738660679181379e+00i) -1.3533527517000128912e-1+4.6726804008370350017e-5i) (num-test (exp -2.0e+00-3.14124738660679181379e+00i) -1.3533527517000128912e-1-4.6726804008370350017e-5i) (num-test (exp 2.0e+00+3.14193792057279441821e+00i) -7.3890556585085906004e0-2.5511970558165201925e-3i) (num-test (exp 2.0e+00-3.14193792057279441821e+00i) -7.3890556585085906004e0+2.5511970558165201925e-3i) (num-test (exp -2.0e+00+3.14193792057279441821e+00i) -1.3533527517000128914e-1-4.6726804008337202435e-5i) (num-test (exp -2.0e+00-3.14193792057279441821e+00i) -1.3533527517000128914e-1+4.6726804008337202435e-5i) (num-test (exp 2.0e+00+4.71204371340168837179e+00i) -2.5511970558187824384e-3-7.3890556585085905996e0i) (num-test (exp 2.0e+00-4.71204371340168837179e+00i) -2.5511970558187824384e-3+7.3890556585085905996e0i) (num-test (exp -2.0e+00+4.71204371340168837179e+00i) -4.6726804008378636913e-5-1.3533527517000128912e-1i) (num-test (exp -2.0e+00-4.71204371340168837179e+00i) -4.6726804008378636913e-5+1.3533527517000128912e-1i) (num-test (exp 2.0e+00+4.71273424736769097620e+00i) 2.5511970558160677434e-3-7.3890556585085906006e0i) (num-test (exp 2.0e+00-4.71273424736769097620e+00i) 2.5511970558160677434e-3+7.3890556585085906006e0i) (num-test (exp -2.0e+00+4.71273424736769097620e+00i) 4.6726804008328915539e-5-1.3533527517000128914e-1i) (num-test (exp -2.0e+00-4.71273424736769097620e+00i) 4.6726804008328915539e-5+1.3533527517000128914e-1i) (num-test (exp 2.0e+00+6.28284004019658492979e+00i) 7.3890556585085905995e0-2.5511970558192348875e-3i) (num-test (exp 2.0e+00-6.28284004019658492979e+00i) 7.3890556585085905995e0+2.5511970558192348875e-3i) (num-test (exp -2.0e+00+6.28284004019658492979e+00i) 1.3533527517000128912e-1-4.6726804008386923808e-5i) (num-test (exp -2.0e+00-6.28284004019658492979e+00i) 1.3533527517000128912e-1+4.6726804008386923808e-5i) (num-test (exp 2.0e+00+6.28353057416258753420e+00i) 7.3890556585085906007e0+2.5511970558156152942e-3i) (num-test (exp 2.0e+00-6.28353057416258753420e+00i) 7.3890556585085906007e0-2.5511970558156152942e-3i) (num-test (exp -2.0e+00+6.28353057416258753420e+00i) 1.3533527517000128914e-1+4.6726804008320628644e-5i) (num-test (exp -2.0e+00-6.28353057416258753420e+00i) 1.3533527517000128914e-1-4.6726804008320628644e-5i) (num-test (exp 2.0e+00+9.42443269378637893396e+00i) -7.3890556585085906014e0+2.5511970558135769861e-3i) (num-test (exp 2.0e+00-9.42443269378637893396e+00i) -7.3890556585085906014e0-2.5511970558135769861e-3i) (num-test (exp -2.0e+00+9.42443269378637893396e+00i) -1.3533527517000128916e-1+4.6726804008283295729e-5i) (num-test (exp -2.0e+00-9.42443269378637893396e+00i) -1.3533527517000128916e-1-4.6726804008283295729e-5i) (num-test (exp 2.0e+00+9.42512322775237976202e+00i) -7.3890556585085906033e0-2.5511970558081475961e-3i) (num-test (exp 2.0e+00-9.42512322775237976202e+00i) -7.3890556585085906033e0+2.5511970558081475961e-3i) (num-test (exp -2.0e+00+9.42512322775237976202e+00i) -1.3533527517000128919e-1-4.6726804008183852982e-5i) (num-test (exp -2.0e+00-9.42512322775237976202e+00i) -1.3533527517000128919e-1+4.6726804008183852982e-5i) (num-test (exp -1000) 0.0) (num-test (exp -1000000) 0.0) (num-test (exp (make-rectangular 0.0 (* 0.5 pi))) 0+i) (num-test (exp (make-rectangular 0.0 pi)) -1) (num-test (exp 100.0) 2.688117141816135e43) (num-test (exp 500.0) 1.40359221785284E+217) (num-test (exp -100.0) 3.720075976020836E-44) (num-test (exp -500.0) 7.12457640674129E-218) (num-test (exp 5e-10) 1.000000000500000000125000031161629077797E0) ;; XXX TODO flonum precision problem/overflow? ;(num-test (- (expt (exp 5e-8) 2e7) (exp 1)) 0.0) (num-test (exp -2.225073858507201399999999999999999999996E-308) 1.000E0) (num-test (exp 1.110223024625156799999999999999999999997E-16) 1.000000000000000111022302462515686162976E0) (num-test (exp 1/9223372036854775807) 1.000000000000000000108420217248550443418E0) (num-test (exp -1/9223372036854775807) 9.999999999999999998915797827514495565934E-1) (num-test (exp (* pi (sqrt 163))) 262537412640768743.999999999999) (num-test (exp (* pi (sqrt 17))) 422150.99767568) (num-test (exp (* pi (sqrt 18))) 614551.992885619) (num-test (exp (* pi (sqrt 22))) 2508951.998257424) (num-test (exp (* pi (sqrt 6))) 2197.9908695437) (num-test (exp (* pi (sqrt 719))) 3.8426143735395488914902942778058291929999e+36) (num-test (exp (make-rectangular 0.0 pi)) -1.0) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 exp num (exp num) val))) (list (list 0 1) (list 1 2.718281828459) (list 2 7.3890560989307) (list 3 20.085536923188) (list -1 0.36787944117144) (list -2 0.13533528323661) (list -3 0.049787068367864) (list -9223372036854775808 0.0) (list 1/2 1.6487212707001) (list 1/3 1.3956124250861) (list -1/2 0.60653065971263) (list -1/3 0.71653131057379) (list 1/9223372036854775807 1.0) (list 0.0 1.0) (list 1.0 2.718281828459) (list 2.0 7.3890560989307) (list -2.0 0.13533528323661) (list 1.000000000000000000000000000000000000002E-309 1.000E0) (list -inf.0 0.0) (list 0+1i 0.54030230586814+0.8414709848079i) (list 0+2i -0.41614683654714+0.90929742682568i) (list 0-1i 0.54030230586814-0.8414709848079i) (list 1+1i 1.4686939399159+2.2873552871788i) (list 1-1i 1.4686939399159-2.2873552871788i) (list -1+1i 0.19876611034641+0.30955987565311i) (list -1-1i 0.19876611034641-0.30955987565311i) (list 0.1+0.1i 1.0996496668294+0.1103329887302i) (list 1e-16+1e-16i 1+1e-16i) )) (s7-test (exp) 'error) (s7-test (exp "hi") 'error) (s7-test (exp 1.0+23.0i 1.0+23.0i) 'error) (s7-test (infinite? (exp (expt 2 16))) #t) (s7-test (infinite? (exp (expt 2 54))) #t) (s7-test (infinite? (exp (exp 1e3))) #t) (test-end "exp") ;;; -------------------------------------------------------------------------------- ;;; log ;;; -------------------------------------------------------------------------------- (test-begin "log") (num-test (* 0-2i (log 0+i)) pi) (num-test (* 2 0+i (log (/ 1-i 1+i))) pi) (num-test (+ 100 (expt 10.0 15) (- (expt 10.0 15))) 100.0) (num-test (/ (log -1) (sqrt -1)) pi) (num-test (/ (log -8) (log 2)) 3+4.5323601418272i) (num-test (/ 53453 (log 53453)) 4910.0000012208) (num-test (exp (log (expt 10.0 -16))) 1e-16) (num-test (exp (log (expt 10.0 -36))) 1e-36) (num-test (exp (log (expt 10.0 16))) 1e16) (num-test (exp (log (expt 10.0 36))) 1e36) (num-test (exp (log 1000)) 1000.0) (num-test (exp (log 1000000)) 1000000.0) (num-test (exp (log 1000000000)) 1000000000.0) (num-test (exp (log 8)) 8.0) (num-test (expt (+ 1 1e-10) (s7-log 100.0 (+ 1 1e-10))) 100.0) (num-test (expt (+ 1 1e-15) (s7-log 100.0 (+ 1 1e-15))) 100.0) ; 16 doesn't work if not gmp (num-test (expt -2.0 0.13926097063622-0.63118087262379i) 8.0) (num-test (expt -2.0 0.26160508088635-0.052598406051983i) 1.0+i) (num-test (expt 1.0+i 0.97790391649038-2.2161063668189i) 8.0) ;(num-test (log (/ (+ 1 (sqrt 5)) 2)) (acosh (/ (sqrt 5) 2))) (num-test (log (exp 0.0000001)) 0.0000001) (num-test (log (exp 0.0001)) 0.0001) (num-test (log (exp 0.1)) 0.1) (num-test (log (exp 8)) 8.0) (num-test (log (expt 2 1022)) 7.083964185322641062244112281302564525734E2) (num-test (log (expt 2 125)) 8.664339756999316367715401518227207100938E1) (num-test (s7-log (expt 3/2 10) 3/2) 10.0) (num-test (log (log (log -1))) 0.66457192224882+0.9410294873126i) (num-test (log (sqrt (- (expt 10 17) 1))) 1.957197329044938830915292736481709573957E1) (num-test (log (sqrt (- (expt 10 20) 1))) 2.302585092994045684017491454684364207599E1) (num-test (log (sqrt (- (expt 10 9) 1))) 1.036163291797320557783096154591297226743E1) (num-test (s7-log (sqrt -2) -2) 0.5) (num-test (s7-log (sqrt 1+i) 1+i) 0.5) (num-test (s7-log (sqrt 2) 2) 0.5) (num-test (log -0.0+0.00000001i) -18.42068074395237+1.57079632679490i) (num-test (log -0.0+1.0i) 0.0+1.57079632679490i) (num-test (log -0.0+1234.0i) 7.11801620446533+1.57079632679490i) (num-test (log -0.0+1234000000.0i) 20.93352676242961+1.57079632679490i) (num-test (log -0.0+2.71828182845905i) 1.0+1.57079632679490i) (num-test (log -0.0+3.14159265358979i) 1.14472988584940+1.57079632679490i) (num-test (log -0.0-0.00000001i) -18.42068074395237-1.57079632679490i) (num-test (log -0.0-1.0i) 0.0-1.57079632679490i) (num-test (log -0.0-1234.0i) 7.11801620446533-1.57079632679490i) (num-test (log -0.0-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log -0.0-2.71828182845905i) 1.0-1.57079632679490i) (num-test (log -0.0-3.14159265358979i) 1.14472988584940-1.57079632679490i) (num-test (log -0.00000001) -18.42068074395237+3.14159265358979i) (num-test (log -0.00000001+0.00000001i) -18.07410715367239+2.35619449019234i) (num-test (log -0.00000001+0.0i) -18.42068074395237+3.14159265358979i) (num-test (log -0.00000001+1.0i) 0.0+1.57079633679490i) (num-test (log -0.00000001+1234.0i) 7.11801620446533+1.57079632680300i) (num-test (log -0.00000001+1234000000.0i) 20.93352676242961+1.57079632679490i) (num-test (log -0.00000001+2.71828182845905i) 1.0+1.57079633047369i) (num-test (log -0.00000001+3.14159265358979i) 1.14472988584940+1.57079632997800i) (num-test (log -0.00000001-0.00000001i) -18.07410715367239-2.35619449019234i) (num-test (log -0.00000001-0.0i) -18.42068074395237+3.14159265358979i) (num-test (log -0.00000001-1.0i) 0.0-1.57079633679490i) (num-test (log -0.00000001-1234.0i) 7.11801620446533-1.57079632680300i) (num-test (log -0.00000001-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log -0.00000001-2.71828182845905i) 1.0-1.57079633047369i) (num-test (log -0.00000001-3.14159265358979i) 1.14472988584940-1.57079632997800i) (num-test (log -0.1e001) (make-rectangular 0.0 pi)) ;(num-test (log -1 -1) 1.0) (num-test (s7-log -1 -1) 1.0) (num-test (log -1) 0.0+3.141592653589793238462643383279502884197169399375105820974944592307816406286198E0i) (num-test (log -1) 0.0+3.14159265358979i) (num-test (log -1.0) 0.0+3.14159265358979i) (num-test (log -1.0+0.00000001i) 0.0+3.14159264358979i) (num-test (log -1.0+0.0i) 0.0+3.14159265358979i) (num-test (log -1.0+1.0i) 0.34657359027997+2.35619449019234i) (num-test (log -1.0+1234.0i) 7.11801653281724+1.57160669938898i) (num-test (log -1.0+1234000000.0i) 20.93352676242961+1.57079632760527i) (num-test (log -1.0+2.71828182845905i) 1.06346400552149+1.92330974857252i) (num-test (log -1.0+3.14159265358979i) 1.19298515341341+1.87896539791088i) (num-test (log -1.0-0.00000001i) 0.0-3.14159264358979i) (num-test (log -1.0-0.0i) 0.0+3.14159265358979i) (num-test (log -1.0-1.0i) 0.34657359027997-2.35619449019234i) (num-test (log -1.0-1234.0i) 7.11801653281724-1.57160669938898i) (num-test (log -1.0-1234000000.0i) 20.93352676242961-1.57079632760527i) (num-test (log -1.0-2.71828182845905i) 1.06346400552149-1.92330974857252i) (num-test (log -1.0-3.14159265358979i) 1.19298515341341-1.87896539791088i) (num-test (log -1.0e+00+0.0e+00i) 0+3.1415926535897932385e0i) (num-test (log -1.0e+00+1.0e+00i) 3.4657359027997265471e-1+2.3561944901923449288e0i) (num-test (log -1.0e+00+1.0e+00i) 3.4657359027997265471e-1+2.3561944901923449288e0i) (num-test (log -1.0e+00+1.19209289550781250e-07i) 7.1054273576009513716e-15+3.1415925343805036877e0i) (num-test (log -1.0e+00+1.19209289550781250e-07i) 7.1054273576009513716e-15+3.1415925343805036877e0i) (num-test (log -1.0e+00+2.0e+00i) 8.0471895621705018730e-1+2.0344439357957027354e0i) (num-test (log -1.0e+00+2.0e+00i) 8.0471895621705018730e-1+2.0344439357957027354e0i) (num-test (log -1.0e+00+5.0e-01i) 1.1157177565710487788e-1+2.6779450445889871222e0i) (num-test (log -1.0e+00+5.0e-01i) 1.1157177565710487788e-1+2.6779450445889871222e0i) (num-test (log -1.0e+00+8.3886080e+06i) 1.5942385152878749222e1+1.570796446004186170e0i) (num-test (log -1.0e+00+8.3886080e+06i) 1.5942385152878749222e1+1.570796446004186170e0i) (num-test (log -1.0e+00-1.0e+00i) 3.4657359027997265471e-1-2.3561944901923449288e0i) (num-test (log -1.0e+00-1.0e+00i) 3.4657359027997265471e-1-2.3561944901923449288e0i) (num-test (log -1.0e+00-1.19209289550781250e-07i) 7.1054273576009513716e-15-3.1415925343805036877e0i) (num-test (log -1.0e+00-1.19209289550781250e-07i) 7.1054273576009513716e-15-3.1415925343805036877e0i) (num-test (log -1.0e+00-2.0e+00i) 8.0471895621705018730e-1-2.0344439357957027354e0i) (num-test (log -1.0e+00-2.0e+00i) 8.0471895621705018730e-1-2.0344439357957027354e0i) (num-test (log -1.0e+00-5.0e-01i) 1.1157177565710487788e-1-2.6779450445889871222e0i) (num-test (log -1.0e+00-5.0e-01i) 1.1157177565710487788e-1-2.6779450445889871222e0i) (num-test (log -1.0e+00-8.3886080e+06i) 1.5942385152878749222e1-1.570796446004186170e0i) (num-test (log -1.0e+00-8.3886080e+06i) 1.5942385152878749222e1-1.570796446004186170e0i) (num-test (log -1.19209289550781250e-07+0.0e+00i) -1.5942385152878742117e1+3.1415926535897932385e0i) (num-test (log -1.19209289550781250e-07+1.0e+00i) 7.1054273576009513716e-15+1.570796446004186170e0i) (num-test (log -1.19209289550781250e-07+1.0e+00i) 7.1054273576009513716e-15+1.570796446004186170e0i) (num-test (log -1.19209289550781250e-07+1.19209289550781250e-07i) -1.5595811562598769462e1+2.3561944901923449288e0i) (num-test (log -1.19209289550781250e-07+1.19209289550781250e-07i) -1.5595811562598769462e1+2.3561944901923449288e0i) (num-test (log -1.19209289550781250e-07+2.0e+00i) 6.9314718055994708577e-1+1.5707963863995413946e0i) (num-test (log -1.19209289550781250e-07+2.0e+00i) 6.9314718055994708577e-1+1.5707963863995413946e0i) (num-test (log -1.19209289550781250e-07+5.0e-01i) -6.9314718055991688771e-1+1.5707965652134757208e0i) (num-test (log -1.19209289550781250e-07+5.0e-01i) -6.9314718055991688771e-1+1.5707965652134757208e0i) (num-test (log -1.19209289550781250e-07+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267949108301e0i) (num-test (log -1.19209289550781250e-07+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267949108301e0i) (num-test (log -1.19209289550781250e-07-1.0e+00i) 7.1054273576009513716e-15-1.570796446004186170e0i) (num-test (log -1.19209289550781250e-07-1.0e+00i) 7.1054273576009513716e-15-1.570796446004186170e0i) (num-test (log -1.19209289550781250e-07-1.19209289550781250e-07i) -1.5595811562598769462e1-2.3561944901923449288e0i) (num-test (log -1.19209289550781250e-07-1.19209289550781250e-07i) -1.5595811562598769462e1-2.3561944901923449288e0i) (num-test (log -1.19209289550781250e-07-2.0e+00i) 6.9314718055994708577e-1-1.5707963863995413946e0i) (num-test (log -1.19209289550781250e-07-2.0e+00i) 6.9314718055994708577e-1-1.5707963863995413946e0i) (num-test (log -1.19209289550781250e-07-5.0e-01i) -6.9314718055991688771e-1-1.5707965652134757208e0i) (num-test (log -1.19209289550781250e-07-5.0e-01i) -6.9314718055991688771e-1-1.5707965652134757208e0i) (num-test (log -1.19209289550781250e-07-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267949108301e0i) (num-test (log -1.19209289550781250e-07-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267949108301e0i) (num-test (log -1/1) 0.0+3.14159265358979i) (num-test (log -1/10) -2.30258509299405+3.14159265358979i) (num-test (log -1/1234) -7.11801620446533+3.14159265358979i) (num-test (log -1/1234000000) -20.93352676242961+3.14159265358979i) (num-test (log -1/2) -0.69314718055995+3.14159265358979i) (num-test (log -1/3) -1.09861228866811+3.14159265358979i) (num-test (log -1/362880) -12.80182748008147+3.14159265358979i) (num-test (log -1/500029) -13.12242137572239+3.14159265358979i) (num-test (log -10) 2.30258509299405+3.14159265358979i) (num-test (log -10/1) 2.30258509299405+3.14159265358979i) (num-test (log -10/10) 0.0+3.14159265358979i) (num-test (log -10/1234) -4.81543111147129+3.14159265358979i) (num-test (log -10/1234000000) -18.63094166943556+3.14159265358979i) (num-test (log -10/2) 1.60943791243410+3.14159265358979i) (num-test (log -10/3) 1.20397280432594+3.14159265358979i) (num-test (log -10/362880) -10.49924238708742+3.14159265358979i) (num-test (log -10/500029) -10.81983628272835+3.14159265358979i) (num-test (log -1234) 7.11801620446533+3.14159265358979i) (num-test (log -1234.0) 7.11801620446533+3.14159265358979i) (num-test (log -1234.0+0.00000001i) 7.11801620446533+3.14159265358169i) (num-test (log -1234.0+0.0i) 7.11801620446533+3.14159265358979i) (num-test (log -1234.0+1.0i) 7.11801653281724+3.14078228099571i) (num-test (log -1234.0+1234.0i) 7.46458979474531+2.35619449019234i) (num-test (log -1234.0+1234000000.0i) 20.93352676243011+1.57079732679490i) (num-test (log -1234.0+2.71828182845905i) 7.11801863067090+3.13938983557381i) (num-test (log -1234.0+3.14159265358979i) 7.11801944515932+3.13904679794449i) (num-test (log -1234.0-0.00000001i) 7.11801620446533-3.14159265358169i) (num-test (log -1234.0-0.0i) 7.11801620446533+3.14159265358979i) (num-test (log -1234.0-1.0i) 7.11801653281724-3.14078228099571i) (num-test (log -1234.0-1234.0i) 7.46458979474531-2.35619449019234i) (num-test (log -1234.0-1234000000.0i) 20.93352676243011-1.57079732679490i) (num-test (log -1234.0-2.71828182845905i) 7.11801863067090-3.13938983557381i) (num-test (log -1234.0-3.14159265358979i) 7.11801944515932-3.13904679794449i) (num-test (log -1234/1) 7.11801620446533+3.14159265358979i) (num-test (log -1234/10) 4.81543111147129+3.14159265358979i) (num-test (log -1234/1234) 0.0+3.14159265358979i) (num-test (log -1234/1234000000) -13.81551055796427+3.14159265358979i) (num-test (log -1234/2) 6.42486902390539+3.14159265358979i) (num-test (log -1234/3) 6.01940391579722+3.14159265358979i) (num-test (log -1234/362880) -5.68381127561614+3.14159265358979i) (num-test (log -1234/500029) -6.00440517125706+3.14159265358979i) (num-test (log -1234000000) 20.93352676242961+3.14159265358979i) (num-test (log -1234000000.0) 20.93352676242961+3.14159265358979i) (num-test (log -1234000000.0+0.00000001i) 20.93352676242961+3.14159265358979i) (num-test (log -1234000000.0+0.0i) 20.93352676242961+3.14159265358979i) (num-test (log -1234000000.0+1.0i) 20.93352676242961+3.14159265277942i) (num-test (log -1234000000.0+1234.0i) 20.93352676243011+3.14159165358979i) (num-test (log -1234000000.0+1234000000.0i) 21.28010035270958+2.35619449019234i) (num-test (log -1234000000.0+2.71828182845905i) 20.93352676242961+3.14159265138697i) (num-test (log -1234000000.0+3.14159265358979i) 20.93352676242961+3.14159265104393i) (num-test (log -1234000000.0-0.00000001i) 20.93352676242961-3.14159265358979i) (num-test (log -1234000000.0-0.0i) 20.93352676242961+3.14159265358979i) (num-test (log -1234000000.0-1.0i) 20.93352676242961-3.14159265277942i) (num-test (log -1234000000.0-1234.0i) 20.93352676243011-3.14159165358979i) (num-test (log -1234000000.0-1234000000.0i) 21.28010035270958-2.35619449019234i) (num-test (log -1234000000.0-2.71828182845905i) 20.93352676242961-3.14159265138697i) (num-test (log -1234000000.0-3.14159265358979i) 20.93352676242961-3.14159265104393i) (num-test (log -1234000000/1) 20.93352676242961+3.14159265358979i) (num-test (log -1234000000/10) 18.63094166943556+3.14159265358979i) (num-test (log -1234000000/1234) 13.81551055796427+3.14159265358979i) (num-test (log -1234000000/1234000000) 0.0+3.14159265358979i) (num-test (log -1234000000/2) 20.24037958186966+3.14159265358979i) (num-test (log -1234000000/3) 19.83491447376150+3.14159265358979i) (num-test (log -1234000000/362880) 8.13169928234814+3.14159265358979i) (num-test (log -1234000000/500029) 7.81110538670721+3.14159265358979i) (num-test (s7-log -2 -2) 1.0) (num-test (log -2) 0.69314718055995+3.14159265358979i) (num-test (log -2.0e+00+0.0e+00i) 6.9314718055994530942e-1+3.1415926535897932385e0i) (num-test (log -2.0e+00+1.0e+00i) 8.0471895621705018730e-1+2.6779450445889871222e0i) (num-test (log -2.0e+00+1.0e+00i) 8.0471895621705018730e-1+2.6779450445889871222e0i) (num-test (log -2.0e+00+1.19209289550781250e-07i) 6.9314718055994708577e-1+3.1415925939851484631e0i) (num-test (log -2.0e+00+1.19209289550781250e-07i) 6.9314718055994708577e-1+3.1415925939851484631e0i) (num-test (log -2.0e+00+2.0e+00i) 1.0397207708399179641e0+2.3561944901923449288e0i) (num-test (log -2.0e+00+2.0e+00i) 1.0397207708399179641e0+2.3561944901923449288e0i) (num-test (log -2.0e+00+5.0e-01i) 7.2345949146816273071e-1+2.8966139904629290843e0i) (num-test (log -2.0e+00+5.0e-01i) 7.2345949146816273071e-1+2.8966139904629290843e0i) (num-test (log -2.0e+00+8.3886080e+06i) 1.5942385152878770538e1+1.5707965652134757208e0i) (num-test (log -2.0e+00+8.3886080e+06i) 1.5942385152878770538e1+1.5707965652134757208e0i) (num-test (log -2.0e+00-1.0e+00i) 8.0471895621705018730e-1-2.6779450445889871222e0i) (num-test (log -2.0e+00-1.0e+00i) 8.0471895621705018730e-1-2.6779450445889871222e0i) (num-test (log -2.0e+00-1.19209289550781250e-07i) 6.9314718055994708577e-1-3.1415925939851484631e0i) (num-test (log -2.0e+00-1.19209289550781250e-07i) 6.9314718055994708577e-1-3.1415925939851484631e0i) (num-test (log -2.0e+00-2.0e+00i) 1.0397207708399179641e0-2.3561944901923449288e0i) (num-test (log -2.0e+00-2.0e+00i) 1.0397207708399179641e0-2.3561944901923449288e0i) (num-test (log -2.0e+00-5.0e-01i) 7.2345949146816273071e-1-2.8966139904629290843e0i) (num-test (log -2.0e+00-5.0e-01i) 7.2345949146816273071e-1-2.8966139904629290843e0i) (num-test (log -2.0e+00-8.3886080e+06i) 1.5942385152878770538e1-1.5707965652134757208e0i) (num-test (log -2.0e+00-8.3886080e+06i) 1.5942385152878770538e1-1.5707965652134757208e0i) (num-test (log -2.71828182845905) 1.0+3.14159265358979i) (num-test (log -2.71828182845905+0.00000001i) 1.0+3.14159264991100i) (num-test (log -2.71828182845905+0.0i) 1.0+3.14159265358979i) (num-test (log -2.71828182845905+1.0i) 1.06346400552149+2.78907923181217i) (num-test (log -2.71828182845905+1234.0i) 7.11801863067090+1.57299914481088i) (num-test (log -2.71828182845905+1234000000.0i) 20.93352676242961+1.57079632899772i) (num-test (log -2.71828182845905+2.71828182845905i) 1.34657359027997+2.35619449019234i) (num-test (log -2.71828182845905+3.14159265358979i) 1.42415703773030+2.28408086723395i) (num-test (log -2.71828182845905-0.00000001i) 1.0-3.14159264991100i) (num-test (log -2.71828182845905-0.0i) 1.0+3.14159265358979i) (num-test (log -2.71828182845905-1.0i) 1.06346400552149-2.78907923181217i) (num-test (log -2.71828182845905-1234.0i) 7.11801863067090-1.57299914481088i) (num-test (log -2.71828182845905-1234000000.0i) 20.93352676242961-1.57079632899772i) (num-test (log -2.71828182845905-2.71828182845905i) 1.34657359027997-2.35619449019234i) (num-test (log -2.71828182845905-3.14159265358979i) 1.42415703773030-2.28408086723395i) (num-test (log -2/1) 0.69314718055995+3.14159265358979i) (num-test (log -2/10) -1.60943791243410+3.14159265358979i) (num-test (log -2/1234) -6.42486902390539+3.14159265358979i) (num-test (log -2/1234000000) -20.24037958186966+3.14159265358979i) (num-test (log -2/2) 0.0+3.14159265358979i) (num-test (log -2/3) -0.40546510810816+3.14159265358979i) (num-test (log -2/362880) -12.10868029952152+3.14159265358979i) (num-test (log -2/500029) -12.42927419516245+3.14159265358979i) (num-test (log -3) 1.09861228866811+3.14159265358979i) (num-test (log -3.14159265358979) 1.14472988584940+3.14159265358979i) (num-test (log -3.14159265358979+0.00000001i) 1.14472988584940+3.14159265040669i) (num-test (log -3.14159265358979+0.0i) 1.14472988584940+3.14159265358979i) (num-test (log -3.14159265358979+1.0i) 1.19298515341341+2.83342358247381i) (num-test (log -3.14159265358979+1234.0i) 7.11801944515932+1.57334218244020i) (num-test (log -3.14159265358979+1234000000.0i) 20.93352676242961+1.57079632934076i) (num-test (log -3.14159265358979+2.71828182845905i) 1.42415703773030+2.42830811315074i) (num-test (log -3.14159265358979+3.14159265358979i) 1.49130347612937+2.35619449019234i) (num-test (log -3.14159265358979-0.00000001i) 1.14472988584940-3.14159265040669i) (num-test (log -3.14159265358979-0.0i) 1.14472988584940+3.14159265358979i) (num-test (log -3.14159265358979-1.0i) 1.19298515341341-2.83342358247381i) (num-test (log -3.14159265358979-1234.0i) 7.11801944515932-1.57334218244020i) (num-test (log -3.14159265358979-1234000000.0i) 20.93352676242961-1.57079632934076i) (num-test (log -3.14159265358979-2.71828182845905i) 1.42415703773030-2.42830811315074i) (num-test (log -3.14159265358979-3.14159265358979i) 1.49130347612937-2.35619449019234i) (num-test (log -3/1) 1.09861228866811+3.14159265358979i) (num-test (log -3/10) -1.20397280432594+3.14159265358979i) (num-test (log -3/1234) -6.01940391579722+3.14159265358979i) (num-test (log -3/1234000000) -19.83491447376150+3.14159265358979i) (num-test (log -3/2) 0.40546510810816+3.14159265358979i) (num-test (log -3/3) 0.0+3.14159265358979i) (num-test (log -3/362880) -11.70321519141336+3.14159265358979i) (num-test (log -3/500029) -12.02380908705428+3.14159265358979i) (num-test (log -362880) 12.80182748008147+3.14159265358979i) (num-test (log -362880/1) 12.80182748008147+3.14159265358979i) (num-test (log -362880/10) 10.49924238708742+3.14159265358979i) (num-test (log -362880/1234) 5.68381127561614+3.14159265358979i) (num-test (log -362880/1234000000) -8.13169928234814+3.14159265358979i) (num-test (log -362880/2) 12.10868029952152+3.14159265358979i) (num-test (log -362880/3) 11.70321519141336+3.14159265358979i) (num-test (log -362880/362880) 0.0+3.14159265358979i) (num-test (log -362880/500029) -0.32059389564092+3.14159265358979i) (num-test (log -5.0e-01+0.0e+00i) -6.9314718055994530942e-1+3.1415926535897932385e0i) (num-test (log -5.0e-01+1.0e+00i) 1.1157177565710487788e-1+2.0344439357957027354e0i) (num-test (log -5.0e-01+1.0e+00i) 1.1157177565710487788e-1+2.0344439357957027354e0i) (num-test (log -5.0e-01+1.19209289550781250e-07i) -6.9314718055991688771e-1+3.1415924151712141369e0i) (num-test (log -5.0e-01+1.19209289550781250e-07i) -6.9314718055991688771e-1+3.1415924151712141369e0i) (num-test (log -5.0e-01+2.0e+00i) 7.2345949146816273071e-1+1.8157749899217607734e0i) (num-test (log -5.0e-01+2.0e+00i) 7.2345949146816273071e-1+1.8157749899217607734e0i) (num-test (log -5.0e-01+5.0e-01i) -3.4657359027997265471e-1+2.3561944901923449288e0i) (num-test (log -5.0e-01+5.0e-01i) -3.4657359027997265471e-1+2.3561944901923449288e0i) (num-test (log -5.0e-01+8.3886080e+06i) 1.5942385152878743893e1+1.5707963863995413946e0i) (num-test (log -5.0e-01+8.3886080e+06i) 1.5942385152878743893e1+1.5707963863995413946e0i) (num-test (log -5.0e-01-1.0e+00i) 1.1157177565710487788e-1-2.0344439357957027354e0i) (num-test (log -5.0e-01-1.0e+00i) 1.1157177565710487788e-1-2.0344439357957027354e0i) (num-test (log -5.0e-01-1.19209289550781250e-07i) -6.9314718055991688771e-1-3.1415924151712141369e0i) (num-test (log -5.0e-01-1.19209289550781250e-07i) -6.9314718055991688771e-1-3.1415924151712141369e0i) (num-test (log -5.0e-01-2.0e+00i) 7.2345949146816273071e-1-1.8157749899217607734e0i) (num-test (log -5.0e-01-2.0e+00i) 7.2345949146816273071e-1-1.8157749899217607734e0i) (num-test (log -5.0e-01-5.0e-01i) -3.4657359027997265471e-1-2.3561944901923449288e0i) (num-test (log -5.0e-01-5.0e-01i) -3.4657359027997265471e-1-2.3561944901923449288e0i) (num-test (log -5.0e-01-8.3886080e+06i) 1.5942385152878743893e1-1.5707963863995413946e0i) (num-test (log -5.0e-01-8.3886080e+06i) 1.5942385152878743893e1-1.5707963863995413946e0i) (num-test (log -500029) 13.12242137572239+3.14159265358979i) (num-test (log -500029/1) 13.12242137572239+3.14159265358979i) (num-test (log -500029/10) 10.81983628272835+3.14159265358979i) (num-test (log -500029/1234) 6.00440517125706+3.14159265358979i) (num-test (log -500029/1234000000) -7.81110538670721+3.14159265358979i) (num-test (log -500029/2) 12.42927419516245+3.14159265358979i) (num-test (log -500029/3) 12.02380908705428+3.14159265358979i) (num-test (log -500029/362880) 0.32059389564092+3.14159265358979i) (num-test (log -500029/500029) 0.0+3.14159265358979i) (num-test (log -8.3886080e+06+0.0e+00i) 1.5942385152878742117e1+3.1415926535897932385e0i) (num-test (log -8.3886080e+06+1.0e+00i) 1.5942385152878749222e1+3.1415925343805036877e0i) (num-test (log -8.3886080e+06+1.0e+00i) 1.5942385152878749222e1+3.1415925343805036877e0i) (num-test (log -8.3886080e+06+1.19209289550781250e-07i) 1.5942385152878742117e1+3.1415926535897790276e0i) (num-test (log -8.3886080e+06+1.19209289550781250e-07i) 1.5942385152878742117e1+3.1415926535897790276e0i) (num-test (log -8.3886080e+06+2.0e+00i) 1.5942385152878770538e1+3.1415924151712141369e0i) (num-test (log -8.3886080e+06+2.0e+00i) 1.5942385152878770538e1+3.1415924151712141369e0i) (num-test (log -8.3886080e+06+5.0e-01i) 1.5942385152878743893e1+3.1415925939851484631e0i) (num-test (log -8.3886080e+06+5.0e-01i) 1.5942385152878743893e1+3.1415925939851484631e0i) (num-test (log -8.3886080e+06+8.3886080e+06i) 1.6288958743158714771e1+2.3561944901923449288e0i) (num-test (log -8.3886080e+06+8.3886080e+06i) 1.6288958743158714771e1+2.3561944901923449288e0i) (num-test (log -8.3886080e+06-1.0e+00i) 1.5942385152878749222e1-3.1415925343805036877e0i) (num-test (log -8.3886080e+06-1.0e+00i) 1.5942385152878749222e1-3.1415925343805036877e0i) (num-test (log -8.3886080e+06-1.19209289550781250e-07i) 1.5942385152878742117e1-3.1415926535897790276e0i) (num-test (log -8.3886080e+06-1.19209289550781250e-07i) 1.5942385152878742117e1-3.1415926535897790276e0i) (num-test (log -8.3886080e+06-2.0e+00i) 1.5942385152878770538e1-3.1415924151712141369e0i) (num-test (log -8.3886080e+06-2.0e+00i) 1.5942385152878770538e1-3.1415924151712141369e0i) (num-test (log -8.3886080e+06-5.0e-01i) 1.5942385152878743893e1-3.1415925939851484631e0i) (num-test (log -8.3886080e+06-5.0e-01i) 1.5942385152878743893e1-3.1415925939851484631e0i) (num-test (log -8.3886080e+06-8.3886080e+06i) 1.6288958743158714771e1-2.3561944901923449288e0i) (num-test (log -8.3886080e+06-8.3886080e+06i) 1.6288958743158714771e1-2.3561944901923449288e0i) (num-test (log -9223372036854775808) 4.366827237527655449328562365186512378885E1+3.141592653589793238462643383279502884195E0i) (num-test (log .3678794411714423) -1.0) (num-test (log 0+i) (make-rectangular 0.0 (* 0.5 pi))) (num-test (log 0-i) (make-rectangular 0.0 (* -0.5 pi))) (num-test (log 0.0+0.00000001i) -18.42068074395237+1.57079632679490i) (num-test (log 0.0+1.0i) 0.0+1.57079632679490i) (num-test (log 0.0+1234.0i) 7.11801620446533+1.57079632679490i) (num-test (log 0.0+1234000000.0i) 20.93352676242961+1.57079632679490i) (num-test (log 0.0+2.71828182845905i) 1.0+1.57079632679490i) (num-test (log 0.0+3.14159265358979i) 1.14472988584940+1.57079632679490i) (num-test (log 0.0-0.00000001i) -18.42068074395237-1.57079632679490i) (num-test (log 0.0-1.0i) 0.0-1.57079632679490i) (num-test (log 0.0-1234.0i) 7.11801620446533-1.57079632679490i) (num-test (log 0.0-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log 0.0-2.71828182845905i) 1.0-1.57079632679490i) (num-test (log 0.0-3.14159265358979i) 1.14472988584940-1.57079632679490i) (num-test (log 0.00000001) -18.42068074395237) (num-test (log 0.00000001+0.00000001i) -18.07410715367239+0.78539816339745i) (num-test (log 0.00000001+0.0i) -18.42068074395237) (num-test (log 0.00000001+1.0i) 0.0+1.57079631679490i) (num-test (log 0.00000001+1234.0i) 7.11801620446533+1.57079632678679i) (num-test (log 0.00000001+1234000000.0i) 20.93352676242961+1.57079632679490i) (num-test (log 0.00000001+2.71828182845905i) 1.0+1.57079632311610i) (num-test (log 0.00000001+3.14159265358979i) 1.14472988584940+1.57079632361180i) (num-test (log 0.00000001-0.00000001i) -18.07410715367239-0.78539816339745i) (num-test (log 0.00000001-0.0i) -18.42068074395237) (num-test (log 0.00000001-1.0i) 0.0-1.57079631679490i) (num-test (log 0.00000001-1234.0i) 7.11801620446533-1.57079632678679i) (num-test (log 0.00000001-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log 0.00000001-2.71828182845905i) 1.0-1.57079632311610i) (num-test (log 0.00000001-3.14159265358979i) 1.14472988584940-1.57079632361180i) (num-test (log 0.0e+00+1.0e+00i) 0+1.5707963267948966192e0i) (num-test (log 0.0e+00+1.19209289550781250e-07i) -1.5942385152878742117e1+1.5707963267948966192e0i) (num-test (log 0.0e+00+2.0e+00i) 6.9314718055994530942e-1+1.5707963267948966192e0i) (num-test (log 0.0e+00+5.0e-01i) -6.9314718055994530942e-1+1.5707963267948966192e0i) (num-test (log 0.0e+00+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267948966192e0i) (num-test (log 0.0e+00-1.0e+00i) 0-1.5707963267948966192e0i) (num-test (log 0.0e+00-1.19209289550781250e-07i) -1.5942385152878742117e1-1.5707963267948966192e0i) (num-test (log 0.0e+00-2.0e+00i) 6.9314718055994530942e-1-1.5707963267948966192e0i) (num-test (log 0.0e+00-5.0e-01i) -6.9314718055994530942e-1-1.5707963267948966192e0i) (num-test (log 0.0e+00-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267948966192e0i) (num-test (s7-log 1 -1) 0.0) (num-test (log 1) 0.0) (num-test (log 1.0) 0.0) (num-test (log 1.0+0.00000001i) 0.0+0.00000001i) (num-test (log 1.0+0.0i) 0.0) (num-test (log 1.0+1.0i) 0.34657359027997+0.78539816339745i) (num-test (log 1.0+1234.0i) 7.11801653281724+1.56998595420081i) (num-test (log 1.0+1234000000.0i) 20.93352676242961+1.57079632598452i) (num-test (log 1.0+2.71828182845905i) 1.06346400552149+1.21828290501728i) (num-test (log 1.0+3.14159265358979i) 1.19298515341341+1.26262725567891i) (num-test (s7-log 1.0+i -2.0) 0.26160508088635-0.052598406051983i) (num-test (log 1.0-0.00000001i) 0.0-0.00000001i) (num-test (log 1.0-0.0i) 0.0) (num-test (log 1.0-1.0i) 0.34657359027997-0.78539816339745i) (num-test (log 1.0-1234.0i) 7.11801653281724-1.56998595420081i) (num-test (log 1.0-1234000000.0i) 20.93352676242961-1.57079632598452i) (num-test (log 1.0-2.71828182845905i) 1.06346400552149-1.21828290501728i) (num-test (log 1.0-3.14159265358979i) 1.19298515341341-1.26262725567891i) (num-test (log 1.0e+00+0.0e+00i) 0e0+0.0i) (num-test (log 1.0e+00+1.0e+00i) 3.4657359027997265471e-1+7.8539816339744830962e-1i) (num-test (log 1.0e+00+1.0e+00i) 3.4657359027997265471e-1+7.8539816339744830962e-1i) (num-test (log 1.0e+00+1.19209289550781250e-07i) 7.1054273576009513716e-15+1.1920928955078068531e-7i) (num-test (log 1.0e+00+1.19209289550781250e-07i) 7.1054273576009513716e-15+1.1920928955078068531e-7i) (num-test (log 1.0e+00+2.0e+00i) 8.0471895621705018730e-1+1.1071487177940905030e0i) (num-test (log 1.0e+00+2.0e+00i) 8.0471895621705018730e-1+1.1071487177940905030e0i) (num-test (log 1.0e+00+5.0e-01i) 1.1157177565710487788e-1+4.6364760900080611621e-1i) (num-test (log 1.0e+00+5.0e-01i) 1.1157177565710487788e-1+4.6364760900080611621e-1i) (num-test (log 1.0e+00+8.3886080e+06i) 1.5942385152878749222e1+1.5707962075856070685e0i) (num-test (log 1.0e+00+8.3886080e+06i) 1.5942385152878749222e1+1.5707962075856070685e0i) (num-test (log 1.0e+00-1.0e+00i) 3.4657359027997265471e-1-7.8539816339744830962e-1i) (num-test (log 1.0e+00-1.0e+00i) 3.4657359027997265471e-1-7.8539816339744830962e-1i) (num-test (log 1.0e+00-1.19209289550781250e-07i) 7.1054273576009513716e-15-1.1920928955078068531e-7i) (num-test (log 1.0e+00-1.19209289550781250e-07i) 7.1054273576009513716e-15-1.1920928955078068531e-7i) (num-test (log 1.0e+00-2.0e+00i) 8.0471895621705018730e-1-1.1071487177940905030e0i) (num-test (log 1.0e+00-2.0e+00i) 8.0471895621705018730e-1-1.1071487177940905030e0i) (num-test (log 1.0e+00-5.0e-01i) 1.1157177565710487788e-1-4.6364760900080611621e-1i) (num-test (log 1.0e+00-5.0e-01i) 1.1157177565710487788e-1-4.6364760900080611621e-1i) (num-test (log 1.0e+00-8.3886080e+06i) 1.5942385152878749222e1-1.5707962075856070685e0i) (num-test (log 1.0e+00-8.3886080e+06i) 1.5942385152878749222e1-1.5707962075856070685e0i) (num-test (log 1.0e-12) -27.63102111592855) (num-test (log 1.0e-8) -18.42068074395237) (num-test (log 1.110223024625156799999999999999999999997E-16) -3.673680056967710116530769529852882544059E1) (num-test (log 1.19209289550781250e-07+0.0e+00i) -1.5942385152878742117e1+0.0i) (num-test (log 1.19209289550781250e-07+1.0e+00i) 7.1054273576009513716e-15+1.5707962075856070685e0i) (num-test (log 1.19209289550781250e-07+1.0e+00i) 7.1054273576009513716e-15+1.5707962075856070685e0i) (num-test (log 1.19209289550781250e-07+1.19209289550781250e-07i) -1.5595811562598769462e1+7.8539816339744830962e-1i) (num-test (log 1.19209289550781250e-07+1.19209289550781250e-07i) -1.5595811562598769462e1+7.8539816339744830962e-1i) (num-test (log 1.19209289550781250e-07+2.0e+00i) 6.9314718055994708577e-1+1.5707962671902518438e0i) (num-test (log 1.19209289550781250e-07+2.0e+00i) 6.9314718055994708577e-1+1.5707962671902518438e0i) (num-test (log 1.19209289550781250e-07+5.0e-01i) -6.9314718055991688771e-1+1.5707960883763175177e0i) (num-test (log 1.19209289550781250e-07+5.0e-01i) -6.9314718055991688771e-1+1.5707960883763175177e0i) (num-test (log 1.19209289550781250e-07+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267948824084e0i) (num-test (log 1.19209289550781250e-07+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267948824084e0i) (num-test (log 1.19209289550781250e-07-1.0e+00i) 7.1054273576009513716e-15-1.5707962075856070685e0i) (num-test (log 1.19209289550781250e-07-1.0e+00i) 7.1054273576009513716e-15-1.5707962075856070685e0i) (num-test (log 1.19209289550781250e-07-1.19209289550781250e-07i) -1.5595811562598769462e1-7.8539816339744830962e-1i) (num-test (log 1.19209289550781250e-07-1.19209289550781250e-07i) -1.5595811562598769462e1-7.8539816339744830962e-1i) (num-test (log 1.19209289550781250e-07-2.0e+00i) 6.9314718055994708577e-1-1.5707962671902518438e0i) (num-test (log 1.19209289550781250e-07-2.0e+00i) 6.9314718055994708577e-1-1.5707962671902518438e0i) (num-test (log 1.19209289550781250e-07-5.0e-01i) -6.9314718055991688771e-1-1.5707960883763175177e0i) (num-test (log 1.19209289550781250e-07-5.0e-01i) -6.9314718055991688771e-1-1.5707960883763175177e0i) (num-test (log 1.19209289550781250e-07-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267948824084e0i) (num-test (log 1.19209289550781250e-07-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267948824084e0i) (num-test (s7-log 1.5 -1) 0-0.12906355241341i) (num-test (log 1.7976931e+308) 709.78271287399) (num-test (log 1/1) 0.0) (num-test (log 1/10) -2.30258509299405) ;; XXX Exactness ;(num-test (log 1/1073741824 2) -30) (num-test (s7-log 1/1073741824 2) -30.0) ;(num-test (log 1/1152921504606846976 8) -20) (num-test (s7-log 1/1152921504606846976 8) -20.0) (num-test (log 1/1234) -7.11801620446533) (num-test (log 1/1234000000) -20.93352676242961) ;; XXX Exactness ;; (num-test (log 1/16777216 2) -24) ;; (num-test (log 1/18014398509481984 512) -6) ;; (num-test (log 1/2 1/4) 1/2) ;; (num-test (log 1/2 1/8) 1/3) ;; (num-test (log 1/2 8) -1/3) (num-test (s7-log 1/16777216 2) -24.0) (num-test (s7-log 1/18014398509481984 512) -6.0) (num-test (s7-log 1/2 1/4) 0.5) (num-test (s7-log 1/2 1/8) 0.33333333333333) (num-test (s7-log 1/2 8) -0.33333333333333) (num-test (log 1/2) -0.69314718055995) ;; (num-test (log 1/2147483648 2) -31) ;; (num-test (log 1/256 2) -8) (num-test (s7-log 1/2147483648 2) -31.0) (num-test (s7-log 1/256 2) -8.0) (num-test (log 1/3) -1.09861228866811) (num-test (log 1/362880) -12.80182748008147) ;(num-test (s7-log 1/4 1/2) 2) (num-test (s7-log 1/4 1/2) 2.0) (num-test (log 1/500029) -13.12242137572239) ;(num-test (s7-log 1/65536 2) -16) (num-test (s7-log 1/65536 2) -16.0) ;(num-test (s7-log 1/8192 2) -13) (num-test (s7-log 1/8192 2) -13.0) ;(num-test (s7-log 10 (real-part (log 0))) 0.0) ; ??? (num-test (log 10) 2.30258509299405) (num-test (s7-log 10.0 (exp -1)) (- (log 10.0))) (num-test (s7-log 10.0 (exp 1)) (log 10.0)) (num-test (s7-log 10.0 -0.001) -0.27620436338394-0.12561556740966i) (num-test (s7-log 10.0 0.001) -0.33333333333333) (num-test (s7-log 10.0 100.0) 0.5) (num-test (s7-log 10.0 1e-20) -0.05) (num-test (s7-log 10.0 1e20) 0.05) (num-test (s7-log 10.0 2124008553358849/781379079653017) 2.302585092994045684017991454684419658469E0) (num-test (log 10/1) 2.30258509299405) (num-test (log 10/10) 0.0) (num-test (log 10/1234) -4.81543111147129) (num-test (log 10/1234000000) -18.63094166943556) (num-test (log 10/2) 1.60943791243410) (num-test (log 10/3) 1.20397280432594) (num-test (log 10/362880) -10.49924238708742) (num-test (log 10/500029) -10.81983628272835) (num-test (s7-log 12/8 3/2) 1.0) (num-test (log 1234) 7.11801620446533) (num-test (log 1234.0) 7.11801620446533) (num-test (log 1234.0+0.00000001i) 7.11801620446533+0.00000000000810i) (num-test (log 1234.0+0.0i) 7.11801620446533) (num-test (log 1234.0+1.0i) 7.11801653281724+0.00081037259408i) (num-test (log 1234.0+1234.0i) 7.46458979474531+0.78539816339745i) (num-test (log 1234.0+1234000000.0i) 20.93352676243011+1.57079532679490i) (num-test (log 1234.0+2.71828182845905i) 7.11801863067090+0.00220281801598i) (num-test (log 1234.0+3.14159265358979i) 7.11801944515932+0.00254585564530i) (num-test (log 1234.0-0.00000001i) 7.11801620446533-0.00000000000810i) (num-test (log 1234.0-0.0i) 7.11801620446533) (num-test (log 1234.0-1.0i) 7.11801653281724-0.00081037259408i) (num-test (log 1234.0-1234.0i) 7.46458979474531-0.78539816339745i) (num-test (log 1234.0-1234000000.0i) 20.93352676243011-1.57079532679490i) (num-test (log 1234.0-2.71828182845905i) 7.11801863067090-0.00220281801598i) (num-test (log 1234.0-3.14159265358979i) 7.11801944515932-0.00254585564530i) (num-test (log 1234/1) 7.11801620446533) (num-test (log 1234/10) 4.81543111147129) (num-test (log 1234/1234) 0.0) (num-test (log 1234/1234000000) -13.81551055796427) (num-test (log 1234/2) 6.42486902390539) (num-test (log 1234/3) 6.01940391579722) (num-test (log 1234/362880) -5.68381127561614) (num-test (log 1234/500029) -6.00440517125706) (num-test (log 1234000000) 20.93352676242961) (num-test (log 1234000000.0) 20.93352676242961) (num-test (log 1234000000.0+0.00000001i) 20.93352676242961+0.0i) (num-test (log 1234000000.0+0.0i) 20.93352676242961) (num-test (log 1234000000.0+1.0i) 20.93352676242961+0.00000000081037i) (num-test (log 1234000000.0+1234.0i) 20.93352676243011+0.00000100000000i) (num-test (log 1234000000.0+1234000000.0i) 21.28010035270958+0.78539816339745i) (num-test (log 1234000000.0+2.71828182845905i) 20.93352676242961+0.00000000220282i) (num-test (log 1234000000.0+3.14159265358979i) 20.93352676242961+0.00000000254586i) (num-test (log 1234000000.0-0.00000001i) 20.93352676242961-0.0i) (num-test (log 1234000000.0-0.0i) 20.93352676242961) (num-test (log 1234000000.0-1.0i) 20.93352676242961-0.00000000081037i) (num-test (log 1234000000.0-1234.0i) 20.93352676243011-0.00000100000000i) (num-test (log 1234000000.0-1234000000.0i) 21.28010035270958-0.78539816339745i) (num-test (log 1234000000.0-2.71828182845905i) 20.93352676242961-0.00000000220282i) (num-test (log 1234000000.0-3.14159265358979i) 20.93352676242961-0.00000000254586i) (num-test (log 1234000000/1) 20.93352676242961) (num-test (log 1234000000/10) 18.63094166943556) (num-test (log 1234000000/1234) 13.81551055796427) (num-test (log 1234000000/1234000000) 0.0) (num-test (log 1234000000/2) 20.24037958186966) (num-test (log 1234000000/3) 19.83491447376150) (num-test (log 1234000000/362880) 8.13169928234814) (num-test (log 1234000000/500029) 7.81110538670721) (num-test (s7-log 15693/12583 24271/35566) -5.78025354982372501902371206100042173188E-1) (num-test (log 1e-100) -2.302585092994045684017991454684364207602E2) (num-test (log 1e-18) -4.144653167389282231232384618431855573682E1) (num-test (log 1e-300) -6.907755278982137052053974364053092622806E2) (num-test (s7-log 1e-50 10) -50.0) (num-test (log 1e100) 2.302585092994045684017991454684364207602E2) (num-test (log 1e18) 4.144653167389282231232384618431855573682E1) (num-test (log 1e300) 6.907755278982137052053974364053092622806E2) (num-test (s7-log 1e50 10) 50.0) ;; XXX Exactness? ;; (num-test (log 2 1/8) -1/3) ;; (num-test (log 2 2) 1) ;; (num-test (log 2 8) 1/3) (num-test (s7-log 2 1/8) -0.333333333333333333333) (num-test (s7-log 2 2) 1.0) (num-test (s7-log 2 8) 0.3333333333333333333333) (num-test (log 2) 0.69314718055995) (num-test (log 2.0e+00+0.0e+00i) 6.9314718055994530942e-1+0.0i) (num-test (log 2.0e+00+1.0e+00i) 8.0471895621705018730e-1+4.6364760900080611621e-1i) (num-test (log 2.0e+00+1.0e+00i) 8.0471895621705018730e-1+4.6364760900080611621e-1i) (num-test (log 2.0e+00+1.19209289550781250e-07i) 6.9314718055994708577e-1+5.9604644775390554414e-8i) (num-test (log 2.0e+00+1.19209289550781250e-07i) 6.9314718055994708577e-1+5.9604644775390554414e-8i) (num-test (log 2.0e+00+2.0e+00i) 1.0397207708399179641e0+7.8539816339744830962e-1i) (num-test (log 2.0e+00+2.0e+00i) 1.0397207708399179641e0+7.8539816339744830962e-1i) (num-test (log 2.0e+00+5.0e-01i) 7.2345949146816273071e-1+2.4497866312686415417e-1i) (num-test (log 2.0e+00+5.0e-01i) 7.2345949146816273071e-1+2.4497866312686415417e-1i) (num-test (log 2.0e+00+8.3886080e+06i) 1.5942385152878770538e1+1.5707960883763175177e0i) (num-test (log 2.0e+00+8.3886080e+06i) 1.5942385152878770538e1+1.5707960883763175177e0i) (num-test (log 2.0e+00-1.0e+00i) 8.0471895621705018730e-1-4.6364760900080611621e-1i) (num-test (log 2.0e+00-1.0e+00i) 8.0471895621705018730e-1-4.6364760900080611621e-1i) (num-test (log 2.0e+00-1.19209289550781250e-07i) 6.9314718055994708577e-1-5.9604644775390554414e-8i) (num-test (log 2.0e+00-1.19209289550781250e-07i) 6.9314718055994708577e-1-5.9604644775390554414e-8i) (num-test (log 2.0e+00-2.0e+00i) 1.0397207708399179641e0-7.8539816339744830962e-1i) (num-test (log 2.0e+00-2.0e+00i) 1.0397207708399179641e0-7.8539816339744830962e-1i) (num-test (log 2.0e+00-5.0e-01i) 7.2345949146816273071e-1-2.4497866312686415417e-1i) (num-test (log 2.0e+00-5.0e-01i) 7.2345949146816273071e-1-2.4497866312686415417e-1i) (num-test (log 2.0e+00-8.3886080e+06i) 1.5942385152878770538e1-1.5707960883763175177e0i) (num-test (log 2.0e+00-8.3886080e+06i) 1.5942385152878770538e1-1.5707960883763175177e0i) (num-test (log 2.2250739e-308) -708.39641851362) (num-test (log 2.688117141816135E+43) 100.0) (num-test (log 2.71828182845905) 1.0) (num-test (log 2.71828182845905+0.00000001i) 1.0+0.00000000367879i) (num-test (log 2.71828182845905+0.0i) 1.0) (num-test (log 2.71828182845905+1.0i) 1.06346400552149+0.35251342177762i) (num-test (log 2.71828182845905+1234.0i) 7.11801863067090+1.56859350877892i) (num-test (log 2.71828182845905+1234000000.0i) 20.93352676242961+1.57079632459208i) (num-test (log 2.71828182845905+2.71828182845905i) 1.34657359027997+0.78539816339745i) (num-test (log 2.71828182845905+3.14159265358979i) 1.42415703773030+0.85751178635585i) (num-test (log 2.71828182845905-0.00000001i) 1.0-0.00000000367879i) (num-test (log 2.71828182845905-0.0i) 1.0) (num-test (log 2.71828182845905-1.0i) 1.06346400552149-0.35251342177762i) (num-test (log 2.71828182845905-1234.0i) 7.11801863067090-1.56859350877892i) (num-test (log 2.71828182845905-1234000000.0i) 20.93352676242961-1.57079632459208i) (num-test (log 2.71828182845905-2.71828182845905i) 1.34657359027997-0.78539816339745i) (num-test (log 2.71828182845905-3.14159265358979i) 1.42415703773030-0.85751178635585i) (num-test (log 2/1) 0.69314718055995) (num-test (log 2/10) -1.60943791243410) (num-test (log 2/1234) -6.42486902390539) (num-test (log 2/1234000000) -20.24037958186966) (num-test (log 2/2) 0.0) (num-test (log 2/3) -0.40546510810816) (num-test (log 2/362880) -12.10868029952152) (num-test (log 2/500029) -12.42927419516245) (num-test (log 22026.46579480672) 10.0) (num-test (s7-log 24998/50401 24728/63453) 7.441028498776462417495086765025452881649E-1) (num-test (s7-log 25438/28960 36472/54817) 3.182468797561633550530828023298618520944E-1) ;; XXX Exactness? ;(num-test (s7-log 2921/7914 2921/7914) 1) (num-test (s7-log 2921/7914 2921/7914) 1.0) (num-test (log 3) 1.09861228866811) (num-test (log 3.14159265358979+0.00000001i) 1.14472988584940+0.00000000318310i) (num-test (log 3.14159265358979+0.0i) 1.14472988584940) (num-test (log 3.14159265358979+1.0i) 1.19298515341341+0.30816907111598i) (num-test (log 3.14159265358979+1234.0i) 7.11801944515932+1.56825047114960i) (num-test (log 3.14159265358979+1234000000.0i) 20.93352676242961+1.57079632424904i) (num-test (log 3.14159265358979+2.71828182845905i) 1.42415703773030+0.71328454043905i) (num-test (log 3.14159265358979+3.14159265358979i) 1.49130347612937+0.78539816339745i) (num-test (log 3.14159265358979-0.00000001i) 1.14472988584940-0.00000000318310i) (num-test (log 3.14159265358979-0.0i) 1.14472988584940) (num-test (log 3.14159265358979-1.0i) 1.19298515341341-0.30816907111598i) (num-test (log 3.14159265358979-1234.0i) 7.11801944515932-1.56825047114960i) (num-test (log 3.14159265358979-1234000000.0i) 20.93352676242961-1.57079632424904i) (num-test (log 3.14159265358979-2.71828182845905i) 1.42415703773030-0.71328454043905i) (num-test (log 3.14159265358979-3.14159265358979i) 1.49130347612937-0.78539816339745i) (num-test (log 3.720075976020836E-44) -100.0) (num-test (log 3/1) 1.09861228866811) (num-test (log 3/10) -1.20397280432594) (num-test (log 3/1234) -6.01940391579722) (num-test (log 3/1234000000) -19.83491447376150) (num-test (log 3/2) 0.40546510810816) (num-test (log 3/3) 0.0) (num-test (log 3/362880) -11.70321519141336) (num-test (log 3/500029) -12.02380908705428) (num-test (log 362880) 12.80182748008147) (num-test (log 362880/1) 12.80182748008147) (num-test (log 362880/10) 10.49924238708742) (num-test (log 362880/1234) 5.68381127561614) (num-test (log 362880/1234000000) -8.13169928234814) (num-test (log 362880/2) 12.10868029952152) (num-test (log 362880/3) 11.70321519141336) (num-test (log 362880/362880) 0.0) (num-test (log 362880/500029) -0.32059389564092) ;; XXX Exactness? ;(num-test (s7-log 4 1/2) -2) (num-test (s7-log 4 1/2) -2.0) (num-test (log 4.5399929762484853E-5) -10.0) (num-test (s7-log 42665/30784 48270/29769) 6.752638664357152674138191677370820431573E-1) (num-test (s7-log 43340/27863 27919/48593) -7.971826992064755184257579917033070384525E-1) (num-test (s7-log 43686/40844 3924/13265) -5.522724914533037935994124583907811339125E-2) (num-test (s7-log 46770/6899 56965/50618) 1.620137763694524415676013256791616662615E1) (num-test (log 5.0e-01+0.0e+00i) -6.9314718055994530942e-1+0.0i) (num-test (log 5.0e-01+1.0e+00i) 1.1157177565710487788e-1+1.1071487177940905030e0i) (num-test (log 5.0e-01+1.0e+00i) 1.1157177565710487788e-1+1.1071487177940905030e0i) (num-test (log 5.0e-01+1.19209289550781250e-07i) -6.9314718055991688771e-1+2.3841857910155798249e-7i) (num-test (log 5.0e-01+1.19209289550781250e-07i) -6.9314718055991688771e-1+2.3841857910155798249e-7i) (num-test (log 5.0e-01+2.0e+00i) 7.2345949146816273071e-1+1.3258176636680324651e0i) (num-test (log 5.0e-01+2.0e+00i) 7.2345949146816273071e-1+1.3258176636680324651e0i) (num-test (log 5.0e-01+5.0e-01i) -3.4657359027997265471e-1+7.8539816339744830962e-1i) (num-test (log 5.0e-01+5.0e-01i) -3.4657359027997265471e-1+7.8539816339744830962e-1i) (num-test (log 5.0e-01+8.3886080e+06i) 1.5942385152878743893e1+1.5707962671902518438e0i) (num-test (log 5.0e-01+8.3886080e+06i) 1.5942385152878743893e1+1.5707962671902518438e0i) (num-test (log 5.0e-01-1.0e+00i) 1.1157177565710487788e-1-1.1071487177940905030e0i) (num-test (log 5.0e-01-1.0e+00i) 1.1157177565710487788e-1-1.1071487177940905030e0i) (num-test (log 5.0e-01-1.19209289550781250e-07i) -6.9314718055991688771e-1-2.3841857910155798249e-7i) (num-test (log 5.0e-01-1.19209289550781250e-07i) -6.9314718055991688771e-1-2.3841857910155798249e-7i) (num-test (log 5.0e-01-2.0e+00i) 7.2345949146816273071e-1-1.3258176636680324651e0i) (num-test (log 5.0e-01-2.0e+00i) 7.2345949146816273071e-1-1.3258176636680324651e0i) (num-test (log 5.0e-01-5.0e-01i) -3.4657359027997265471e-1-7.8539816339744830962e-1i) (num-test (log 5.0e-01-5.0e-01i) -3.4657359027997265471e-1-7.8539816339744830962e-1i) (num-test (log 5.0e-01-8.3886080e+06i) 1.5942385152878743893e1-1.5707962671902518438e0i) (num-test (log 5.0e-01-8.3886080e+06i) 1.5942385152878743893e1-1.5707962671902518438e0i) (num-test (log 500029) 13.12242137572239) (num-test (log 500029/1) 13.12242137572239) (num-test (log 500029/10) 10.81983628272835) (num-test (log 500029/1234) 6.00440517125706) (num-test (log 500029/1234000000) -7.81110538670721) (num-test (log 500029/2) 12.42927419516245) (num-test (log 500029/3) 12.02380908705428) (num-test (log 500029/362880) 0.32059389564092) (num-test (log 500029/500029) 0.0) (num-test (s7-log 54595/38975 21029/18267) 2.393514540234982342775959084446190967875E0) ;; XXX Exactness? ;(num-test (s7-log 55510/63095 55510/63095) 1) (num-test (s7-log 55510/63095 55510/63095) 1.0) (num-test (s7-log 60726/29873 34251/53142) -1.615057368690198504993598764304726754524E0) (num-test (s7-log 62092/33540 1958/6237) -5.315823311016084206705945306286559292707E-1) ;; XXX Exactness? ;(num-test (s7-log 8 2) 3) (num-test (s7-log 8 2) 3.0) (num-test (s7-log 8.0 -2.0) 0.13926097063622-0.63118087262379i) (num-test (s7-log 8.0 1.0+i) 0.97790391649038-2.2161063668189i) (num-test (s7-log 8.0 2) 3.0) (num-test (log 8.3886080e+06+0.0e+00i) 1.5942385152878742117e1+0.0i) (num-test (log 8.3886080e+06+1.0e+00i) 1.5942385152878749222e1+1.1920928955078068531e-7i) (num-test (log 8.3886080e+06+1.0e+00i) 1.5942385152878749222e1+1.1920928955078068531e-7i) (num-test (log 8.3886080e+06+1.19209289550781250e-07i) 1.5942385152878742117e1+1.4210854715202003717e-14i) (num-test (log 8.3886080e+06+1.19209289550781250e-07i) 1.5942385152878742117e1+1.4210854715202003717e-14i) (num-test (log 8.3886080e+06+2.0e+00i) 1.5942385152878770538e1+2.3841857910155798249e-7i) (num-test (log 8.3886080e+06+2.0e+00i) 1.5942385152878770538e1+2.3841857910155798249e-7i) (num-test (log 8.3886080e+06+5.0e-01i) 1.5942385152878743893e1+5.9604644775390554414e-8i) (num-test (log 8.3886080e+06+5.0e-01i) 1.5942385152878743893e1+5.9604644775390554414e-8i) (num-test (log 8.3886080e+06+8.3886080e+06i) 1.6288958743158714771e1+7.8539816339744830962e-1i) (num-test (log 8.3886080e+06+8.3886080e+06i) 1.6288958743158714771e1+7.8539816339744830962e-1i) (num-test (log 8.3886080e+06-1.0e+00i) 1.5942385152878749222e1-1.1920928955078068531e-7i) (num-test (log 8.3886080e+06-1.0e+00i) 1.5942385152878749222e1-1.1920928955078068531e-7i) (num-test (log 8.3886080e+06-1.19209289550781250e-07i) 1.5942385152878742117e1-1.4210854715202003717e-14i) (num-test (log 8.3886080e+06-1.19209289550781250e-07i) 1.5942385152878742117e1-1.4210854715202003717e-14i) (num-test (log 8.3886080e+06-2.0e+00i) 1.5942385152878770538e1-2.3841857910155798249e-7i) (num-test (log 8.3886080e+06-2.0e+00i) 1.5942385152878770538e1-2.3841857910155798249e-7i) (num-test (log 8.3886080e+06-5.0e-01i) 1.5942385152878743893e1-5.9604644775390554414e-8i) (num-test (log 8.3886080e+06-5.0e-01i) 1.5942385152878743893e1-5.9604644775390554414e-8i) (num-test (log 8.3886080e+06-8.3886080e+06i) 1.6288958743158714771e1-7.8539816339744830962e-1i) (num-test (log 8.3886080e+06-8.3886080e+06i) 1.6288958743158714771e1-7.8539816339744830962e-1i) (num-test (s7-log 9.0 3.0) 2.0) (num-test (log 9223372036854775807) 4.366827237527655449317720343461657334526E1) (num-test (log pi) 1.14472988584940) (num-test (log (/ 1+i)) (log (/ 1 1+i))) (s7-test (< (real-part (log 0.0)) (real-part (- (log 0.0)))) #t) ;(s7-test (infinite? (random (log 0.0))) #t) ; should (random inf.0 inf.0) be 0? ;(num-test (log 1 1) 'error) ; (expt 1 0) is 1 but so is (expt 1 1) -- an ambiguous case (returns NaN in gmp) ;(num-test (log 2 1) 'error) ; now returns infinity (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 log num (log num) val))) (list (list 1 0.0) (list 2 0.69314718055995) (list 3 1.0986122886681) (list -1 0+3.1415926535898i) (list -2 0.69314718055995+3.1415926535898i) (list -3 1.0986122886681+3.1415926535898i) (list 9223372036854775807 43.668272375277) (list -9223372036854775808 43.668272375277+3.1415926535898i) (list 1/2 -0.69314718055995) (list 1/3 -1.0986122886681) (list -1/2 -0.69314718055995+3.1415926535898i) (list -1/3 -1.0986122886681+3.1415926535898i) (list 1/9223372036854775807 -43.668272375277) (list 1.0 0.0) (list 2.0 0.69314718055995) (list -2.0 0.69314718055995+3.1415926535898i) (list 1.000000000000000000000000000000000000002E-309 -7.114987937351601163615593594974685401477E2) (list 1e+16 36.841361487905) (list 0+1i 0+1.5707963267949i) (list 0+2i 0.69314718055995+1.5707963267949i) (list 0-1i 0-1.5707963267949i) (list 1+1i 0.34657359027997+0.78539816339745i) (list 1-1i 0.34657359027997-0.78539816339745i) (list -1+1i 0.34657359027997+2.3561944901923i) (list -1-1i 0.34657359027997-2.3561944901923i) (list 0.1+0.1i -1.9560115027141+0.78539816339745i) (list 1e+16+1e+16i 37.187935078185+0.78539816339745i) (list 1e-16+1e-16i -36.494787897625+0.78539816339745i) )) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x -10.0 (+ x .1))) ((= i 200)) (if (not (zero? x)) (let ((y (magnitude (- x (exp (log x)))))) (if (> y err) (begin (set! mx x) (set! err y)))))) (if (> err 1e-14) (format #t ";(exp (log ~A)) error: ~A~%" mx err))) (let ((err 0.0) (mx 0.0)) (do ((i 0 (+ i 1)) (x -10.0+i (+ x 0.1-0.1i))) ((= i 200)) (if (not (zero? x)) (let ((y (magnitude (- x (exp (log x)))))) (if (> y err) (begin (set! err y) (set! mx x)))))) (if (> err 1e-14) (format #t ";(exp (log ~A)) error: ~A~%" mx err))) (let ((logs-1 (list -4.60517018598809136803598290936872841520220297725754595206665580193514 -3.91202300542814605861875078791055184712670284289729069794597579244175 -3.50655789731998167664073767244620271055471241943479650033196146829765 -3.21887582486820074920151866645237527905120270853703544382529578294835 -2.99573227355399099343522357614254077567660162298902823015400791046096 -2.81341071676003636722350555098802614247921228507454124621128145880425 -2.65926003693277806293063016592554868556511824767568476360726565199756 -2.52572864430825543978428654499419871097570257417678018970461577345496 -2.40794560865187198524549243552367700590722186161204704859726713466015 -2.30258509299404568401799145468436420760110148862877297603332790096757 -2.20727491318972082397403933140359911538049612332012877684808809280457 -2.12026353620009105780627342952984957440371215071428599209060144931086 -2.04022082852655463198249546780340981039693503249733883564761029127168 -1.96611285637283275351339804446737211748961811331542950948658564250417 -1.89711998488588130203997833922001507102911106516627877841931357682347 -1.83258146374831013036705442353602214290020243981652493558393576396157 -1.77195684193187528778644829149560187961399996467180116476941806405285 -1.71479842809192667582826031406550043783172172725179179447658712516676 -1.66073120682165090802695547748087487796482371595841713352869556552585 -1.60943791243410037460075933322618763952560135426851772191264789147417)) (logs-2 (list 2.30258509299404568401799145468436420760110148862877297603332790096757 2.99573227355399099343522357614254077567660162298902823015400791046096 3.40119738166215537541323669160688991224859204645152242776802223460506 3.68887945411393630285245569760071734375210175734928348427468791995435 3.91202300542814605861875078791055184712670284289729069794597579244175 4.09434456222210068483046881306506648032409218081177768188870224409846 4.24849524204935898912334419812754393723818621821063416449271805090515 4.38202663467388161226968781905889391182760189170953873839536792944775 4.49980967033026506680848192852941561689608260427427187950271656824256 4.60517018598809136803598290936872841520220297725754595206665580193514 4.70048036579241622807993503264949350742280834256619015125189561009814 4.78749174278204599424770093452324304839959231517203293600938225359185 4.86753445045558242007147889624968281240636943338898009245237341163103 4.94164242260930429854057631958572050531368635257088941861339806039854 5.01063529409625575001399602483307755177419340072004014968067012607924 5.07517381523382692168691994051707047990310202606979399251604793894114 5.13579843705026176426752607255749074318930450121451776333056563884986 5.19295685089021037622571404998759218497158273863452713362339657773595 5.24702407216048614402701888657221774483848074992790179457128813737686 5.29831736654803667745321503082690498327770311161780120618733581142853))) (let ((mxerr 0.0)) (do ((i 0 (+ i 1)) (x 0.01 (+ x 0.01)) (y 10.0 (+ y 10.0))) ((= i 20)) (let ((err (max (abs (- (log x) (list-ref logs-1 i))) (abs (- (log y) (list-ref logs-2 i)))))) (if (> err mxerr) (set! mxerr err)))) (if (> mxerr 1e-12) (format #t "log err: ~A~%" mxerr)))) (s7-test (log) 'error) (s7-test (log "hi") 'error) (s7-test (log 1.0+23.0i 1.0+23.0i 1.0+23.0i) 'error) (s7-test (log "hi" (expt 2 30)) 'error) (s7-test (log (expt 2 30) #t) 'error) (s7-test (log 0 0) 'error) (s7-test (log 3 0) 'error) (for-each (lambda (arg) (s7-test (s7-log 10.0 arg) 'error)) (list "hi" #\a 0 '#(1 2 3) #t #f '() abs 'hi (list 1 2 3) '(1 . 2))) (test-end "log") ;;; -------------------------------------------------------------------------------- ;;; expt ;;; -------------------------------------------------------------------------------- (test-begin "expt") (num-test (* (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) 4098/1025) (num-test (* (/ (expt 2 21) (+ (expt 2 20) 1)) (/ (+ (expt 2 21) 1) (expt 2 20))) 4194306/1048577) (num-test (* (sqrt 2) (sqrt (- 31 (* 4 (sqrt (sqrt 3)) (sqrt (sqrt 5)))))) (+ (* (expt 3 1/4) (expt 5 3/4)) (- (* 2 (sqrt 5))) (* (expt 3 3/4) (expt 5 1/4)) (* 2 (sqrt 3)))) (num-test (* 1/18014398509481984 1/2) (expt 2 -55)) (num-test (+ (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) 4197377/1049600) (num-test (+ (/ (expt 2 21) (+ (expt 2 20) 1)) (/ (+ (expt 2 21) 1) (expt 2 20))) 4398049656833/1099512676352) (num-test (+ (/ (expt 2 28)) (/ (expt 3 17)) 1/7 1/29) 1247968828249346465/7037157104192323584) (num-test (+ (/ (expt 2 28)) (/ (expt 3 17)) 1/7 1/31) 1317300430901043787/7522478283791794176) (num-test (+ (/ (expt 2 29)) (/ (expt 3 18)) 1/31) 207994819909949399/6447838528964395008) (num-test (+ (/ (expt 2 30)) (/ (expt 3 18)) 1/13) 415989601508942005/5407864572679815168) (num-test (+ (/ (expt 2 30)) (/ (expt 3 18)) 1/5) 415989589819643501/2079947912569159680) (num-test (+ (/ (expt 2 30)) (/ (expt 3 20))) 4560526225/3743906242624487424) (num-test (+ (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) 4503601775902721/1099512676352) (num-test (+ (expt (+ 1/2 (/ (sqrt 69) 18)) 1/3) (/ (expt (+ 1/2 (/ (sqrt 69) 18)) -1/3) 3)) (* (/ (* 2 (sqrt 3)) 3) (cos (/ (acos (/ (* 3 (sqrt 3)) 2)) 3)))) (num-test (+ (expt 2 5) (expt 298 5) (expt 351 5) (expt 474 5) (expt 500 5)) (expt 575 5)) (num-test (+ (expt 2230 4) (expt 3196 4) (expt 5620 4) (expt 6995 4)) (expt 7703 4)) (num-test (+ (expt 415280564497/348671682660 3) (expt 676702467503/348671682660 3)) 9) (num-test (+ (expt 510 3) (expt 580 3)) (+ (expt 300 3) (expt 670 3))) (num-test (+ 1 (expt 2 54)) 18014398509481985) (num-test (+ 10000000000000000 1) 10000000000000001) (num-test (+ 2 (expt 276694819753963/226588 1/158)) pi) ; 23 digits (num-test (- (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) -3073/1049600) (num-test (- (/ (expt 2 21) (+ (expt 2 20) 1)) (/ (+ (expt 2 21) 1) (expt 2 20))) -3145729/1099512676352) (num-test (- (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) -2148532225/1099512676352) (num-test (- (expt 2 54) 18014398509481983) 1) (num-test (- (expt 2 54) 18014398509481984) 0) (num-test (- 10000000000000000 9999999999999999) 1) (num-test (/ (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) 2097152/2100225) (num-test (/ (/ (expt 2 21) (+ (expt 2 20) 1)) (/ (+ (expt 2 21) 1) (expt 2 20))) 2199023255552/2199026401281) (num-test (/ (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) 2251799813685248/2251801962217473) (num-test (/ (expt 10 -20) (expt 10 -20)) 1) (num-test (/ (expt 10 -200) (expt 10 -200)) 1) (num-test (/ (expt 2 -53) 2) (expt 2 -54)) (num-test (/ (expt 2.3 50) (expt 2.3 49)) 2.3) (num-test (/ (sqrt (* 7 (- 2 (expt 2 1/7)))) (expt 2 1/14)) (+ -1 (* 2 (expt 2 1/7)) (expt 2 3/7) (expt 2 5/7) (- (expt 2 6/7)))) (num-test (do ((i 1 (+ i 1)) (sum 0.0 (+ sum (expt (sin (/ (* pi i) (* 2 10))) 4)))) ((= i 11) sum)) 4.25) (num-test (expt #e1 -111) 1) (num-test (expt (+ (cos (/ (* 2 pi) 20)) (* 0+i (sin (/ (* 2 pi) 20)))) 20) 1.0) (num-test (expt (+ pi 20) 0+i) -0.99999999924368-3.8892669402222e-05i) (num-test (expt (- (expt 2 1/3) 1) 1/3) (+ (expt 1/9 1/3) (- (expt 2/9 1/3)) (expt 4/9 1/3))) (num-test (expt (- (expt 2 1/3) 1) 1/3) (+ (expt 1/9 1/3) (- (expt 2/9 1/3)) (expt 4/9 1/3))) (num-test (expt (- (expt 3 3/5) (expt 2 1/5)) 1/3) (/ (+ (- (* (expt 2 1/5) (expt 3 3/5))) (* (expt 2 3/5) (expt 3 2/5)) (expt 3 1/5) (expt 2 2/5)) (expt 5 2/3))) (num-test (expt (/ (+ 1 (sqrt 5)) 2) 5) (/ (+ 11 (* 5 (sqrt 5))) 2)) (num-test (expt (/ (log (+ (expt 640320 3) 744)) pi) 2) 163.0) ; rest is 2.32167e-29 (num-test (expt (expt -1 -1/2) -2) -1) (num-test (expt (expt -1 1/123) 123) -1) ;; XXX Exactness (this is due to the fact that all compnums are inexact) ;(num-test (expt (expt -1/2 -1/2) -2) -1/2) (num-test (expt (expt -1/2 -1/2) -2) -0.5) ;(num-test (expt (expt -1/2 1/2) -2) -1/2) (num-test (expt (expt -1/2 1/2) 2) -0.5) ;(num-test (expt (expt -1/3 -1/2) -2) -1/3) (num-test (expt (expt -1/3 -1/2) -2) -0.33333333333333) ;(num-test (expt (expt -1/3 1/2) 2) -1/3) (num-test (expt (expt -1/3 1/2) 2) -0.333333333333333) ;(num-test (expt (expt -1/3 1/3) 3) -1/3) (num-test (expt (expt -1/3 1/3) 3) -0.333333333333333) (num-test (expt (expt -2 -1/2) -2) -2) (num-test (expt (expt -2 1/2) 2) -2) (num-test (expt (expt 0+i -1/2) -2) 0+i) (num-test (expt (expt 0+i -1/3) -3) 0+i) (num-test (expt (expt 0+i -1/4) -4) 0+i) (num-test (expt (expt 0+i 0.5) 2) 0+i) (num-test (expt (expt 0+i 1/10) 10) 0+i) (num-test (expt (expt 0+i 1/3) 3) 0+i) (num-test (expt (expt 0+i 1/4) 4) 0+i) (num-test (expt (expt 1 -1/2) -2) 1) (num-test (expt (expt 1 1/123) 123) 1) (num-test (expt (expt 1+i 1/2) 2) 1+i) (num-test (expt (expt 1+i 1/3) 3) 1+i) (num-test (expt (expt 1+i 1/4) 4) 1+i) (num-test (expt (expt 1-i 1/2) 2) 1-i) (num-test (expt (expt 1-i 1/3) 3) 1-i) (num-test (expt (expt 1-i 1/4) 4) 1-i) ;; XXX Exactness (inexact compnums) ;(num-test (expt (expt 1/2 -1/2) -2) 1/2) (num-test (expt (expt 1/2 -1/2) -2) 0.5) ;(num-test (expt (expt 2 0+i) (/ 0+i)) 2) (num-test (expt (expt 2 0+i) (/ 0+i)) 2.0) ;(num-test (expt (expt 2 1/10) 10) 2) (num-test (expt (expt 2 1/10) 10) 2.0) ;(num-test (expt (expt 2 1/30) 30) 2) (num-test (expt (expt 2 1/30) 30) 2.0) (num-test (expt (expt 2 30) 1/30) 2) (num-test (expt (expt 2 50) 1/50) 2) (num-test (expt (expt 20 10) 1/10) 20) (num-test (expt (expt 40 10) 1/10) 40) (num-test (expt -0 -0) 1) (num-test (expt -0(quasiquote #e0)) 1) ;; This is wrong according to R7, so we check against 1.0 ;(num-test (expt -0.0 -0.0) 0.0) ;(num-test (expt -0.0 0) 0.0) (num-test (expt -0.0 -0.0) 1.0) (num-test (expt -0.0 0) 1.0) ;; We return nan.0+nan.0i; this is allowed by R7RS ;(num-test (expt -0.0 0-i) 0.0) (s7-test (nan? (expt -0.0 0-i)) #t) (num-test (expt -0.0 0.00000001) 0.0) (num-test (expt -0.0 1.0) 0.0) (num-test (expt -0.0 1234.0) 0.0) (num-test (expt -0.0 1234000000.0) 0.0) (num-test (expt -0.0 2.71828182845905) 0.0) (num-test (expt -0.0 pi) 0.0) (num-test (expt -0.0-1234000000.0i -1234000000.0-0.00000001i) 0.0) (num-test (expt -0.00000001 -0.0) 1.0) (num-test (expt -0.00000001 -0.00000001) 1.00000018420682-0.00000003141593i) (num-test (expt -0.00000001 -1) -100000000.00000017881393-0.00000001224606i) (num-test (expt -0.00000001 -1.0) -100000000.00000017881393-0.00000001224606i) (num-test (expt -0.00000001 0) 1.0) (num-test (expt -0.00000001 0.0) 1.0) (num-test (expt -0.00000001 0.00000001) 0.99999981579321+0.00000003141592i) (num-test (expt -0.00000001 1) -0.00000001+0.0i) (num-test (expt -0.00000001 1.0) -0.00000001+0.0i) ;; Unknown why s7 seems to think that this isn't 1e-80 ;(num-test (expt -0.00000001 10) 0.0-0.0i) (num-test (expt -0.00000001 10) 1e-80) (num-test (expt -0.00000001 1234) 0.0) (num-test (expt -0.00000001 1234.0) 0.0) (num-test (expt -0.00000001 1234000000) 0.0) (num-test (expt -0.00000001 1234000000.0) 0.0) ;; Unknown why s7 seems to think that this isn't 1e-16 ;(num-test (expt -0.00000001 2) 0.0-0.0i) (num-test (expt -0.00000001 2) 1e-16) (num-test (expt -0.00000001 2.71828182845905) -0.0+0.0i) ;; Unknown too ;(num-test (expt -0.00000001 3) -0.0+0.0i) (num-test (expt -0.00000001 3) -1e-24) (num-test (expt -0.00000001 362880) 0.0) (num-test (expt -0.00000001 500029) 0.0) (num-test (expt -0.00000001 pi) -0.0-0.0i) (num-test (expt -0.00000001+0.00000001i 1.0-0.0i) -0.00000001+0.00000001i) (num-test (expt -0.00000001+0.0i 0.00000001-0.00000001i) 0.99999984720911+0.00000021562270i) (num-test (expt -0.00000001-0.00000001i -1.0-0.0i) -50000000.00000003725290+50000000.00000004470348i) (num-test (expt -0.00000001-0.0i -0.00000001-0.00000001i) 1.00000021562275+0.00000015279091i) (num-test (expt -1 (+ 1 (expt 2 32))) -1) (num-test (expt -1 (- (expt 2 32))) 1) (num-test (expt -1 (expt 2 32)) 1) (num-test (expt -1 -0.0) 1.0) (num-test (expt -1 -100) 1) (num-test (expt -1 -1000) 1) (num-test (expt -1 -1001) -1) (num-test (expt -1 -101) -1) (num-test (expt -1 -255) -1) (num-test (expt -1 -256) 1) (num-test (expt -1 0) 1) (num-test (expt -1 0+i) 4.321391826377224977441773717172801127572810981063308298071968740105076575701806E-2) (num-test (expt -1 0-i) 2.314069263277926900572908636794854738026610624260021199344504640952434235069032E1) (num-test (expt -1 0.0) 1.0) (num-test (expt -1 0.00000001) 1.0+0.00000003141593i) (num-test (expt -1 1) -1) (num-test (expt -1 1.0) -1.0+0.0i) (num-test (expt -1 1/2) 0+i) (num-test (expt -1 10) 1) (num-test (expt -1 100) 1) (num-test (expt -1 1000) 1) (num-test (expt -1 1001) -1) (num-test (expt -1 101) -1) (num-test (expt -1 1234) 1) (num-test (expt -1 1234.0) 1.0) (num-test (expt -1 1234000000) 1) (num-test (expt -1 1234000000.0) 1.0) (num-test (expt -1 2) 1) (num-test (expt -1 2.71828182845905) -0.63325565131482+0.77394268526671i) (num-test (expt -1 255) -1) (num-test (expt -1 256) 1) (num-test (expt -1 3) -1) (num-test (expt -1 362880) 1) (num-test (expt -1 500029) -1) (num-test (expt -1 pi) -0.90268536193307-0.43030121700009i) (num-test (expt -1.0 -0.0) 1.0) (num-test (expt -1.0 -0.00000001) 1.0-0.00000003141593i) (num-test (expt -1.0 -1) -1.0-0.0i) (num-test (expt -1.0 -1.0) -1.0-0.0i) (num-test (expt -1.0 -10) 1.0+0.0i) (num-test (expt -1.0 -1234) 1.0) (num-test (expt -1.0 -1234.0) 1.0) (num-test (expt -1.0 -1234000000) 1.0) (num-test (expt -1.0 -1234000000.0) 1.0) (num-test (expt -1.0 -2) 1.0+0.0i) (num-test (expt -1.0 -2.71828182845905) -0.63325565131482-0.77394268526671i) (num-test (expt -1.0 -3) -1.0-0.0i) (num-test (expt -1.0 -3.14159265358979) -0.90268536193307+0.43030121700009i) (num-test (expt -1.0 -362880) 1.0) (num-test (expt -1.0 -500029) -1.0) (num-test (expt -1.0 0) 1.0) (num-test (expt -1.0 0.0) 1.0) (num-test (expt -1.0 0.00000001) 1.0+0.00000003141593i) (num-test (expt -1.0 1) -1.0+0.0i) (num-test (expt -1.0 1.0) -1.0+0.0i) (num-test (expt -1.0 1/2) 0+i) (num-test (expt -1.0 10) 1.0-0.0i) (num-test (expt -1.0 1234) 1.0) (num-test (expt -1.0 1234.0) 1.0) (num-test (expt -1.0 1234000000) 1.0) (num-test (expt -1.0 1234000000.0) 1.0) (num-test (expt -1.0 2) 1.0-0.0i) (num-test (expt -1.0 2.71828182845905) -0.63325565131482+0.77394268526671i) (num-test (expt -1.0 3) -1.0+0.0i) (num-test (expt -1.0 362880) 1.0) (num-test (expt -1.0 500029) -1.0) (num-test (expt -1.0 pi) -0.90268536193307-0.43030121700009i) (num-test (expt -1.0+0.00000001i 3.14159265358979-0.00000001i) -0.90268540381008-0.43030120215971i) (num-test (expt -1.0+1.0i 2.71828182845905-0.0i) 2.54637618158683+0.31121428769451i) (num-test (expt -1.0-0.00000001i -3.14159265358979-0.00000001i) -0.90268534709269-0.43030117512308i) (num-test (expt -1.0-1.0i -2.71828182845905-0.0i) 0.38693516117166+0.04729063656767i) (num-test (expt -1.0e+00+0.0e+00i -1.0e+00+0.0e+00i) -1e0+0.0i) (num-test (expt -1.0e+00+0.0e+00i 0.0e+00+0.0e+00i) 1e0+0.0i) (num-test (expt -1.0e+00+0.0e+00i 0.0e+00+1.0e+00i) 4.3213918263772249774e-2+0.0i) (num-test (expt -1.0e+00+0.0e+00i 0.0e+00-1.0e+00i) 2.3140692632779269006e1+0.0i) (num-test (expt -1.0e+00+0.0e+00i 1.0e+00+0.0e+00i) -1e0+0.0i) (num-test (expt -1.0e+00+0.0e+00i 5.0e-01+1.00000000000000005551e-01i) 0+7.3040269104864559813e-1i) (num-test (expt -1.0e+00+0.0e+00i 5.0e-01-1.00000000000000005551e-01i) 0+1.3691077706248469087e0i) (num-test (expt -1/10 1234/1234000000) 0.99999769741262+0.00000314158542i) ;; XXX NAN? ;(num-test (expt -1/2 (- (real-part (log 0)))) (expt -0.5 (- (real-part (log 0))))) (num-test (expt -1/2 3/362880) 0.99999426929571+0.00002597201266i) (num-test (expt -1/3 10/500029) 0.99997802729625+0.00006282682861i) (num-test (expt -1/362880 0/2) 1) ;; XXX TODO FIXME: This is a 1/X, where X is a huuuuge number ;; This shouldn't take ages to calculate though! (gambit and racket do better) ;(num-test (expt -1/500029 362880/3) 0.0) (num-test (expt -1/8 -3) -512) (num-test (expt -10 0) 1) (num-test (expt -10 0.0) 1.0) (num-test (expt -10 0.00000001) 1.00000002302585+0.00000003141593i) (num-test (expt -10 1) -10) (num-test (expt -10 1.0) -10.0+0.0i) (num-test (expt -10 2) 100) (num-test (expt -10 2.71828182845905) -331.02508265804954+404.56716151063557i) (num-test (expt -10 3) -1000) (num-test (expt -10 pi) -1250.63060831127905-596.16328730697728i) (num-test (expt -10/1234 0/362880) 1) (num-test (expt -10/1234000000 1/500029) 0.99996274095212+0.00000628258681i) (num-test (expt -10/362880 3/1234) 0.97476967459219+0.00744502948457i) (num-test (expt -10/500029 2/1234000000) 0.99999998246380+0.00000000509172i) (num-test (expt -1234 0) 1) (num-test (expt -1234 0.0) 1.0) (num-test (expt -1234 0.00000001) 1.00000007118016+0.00000003141593i) (num-test (expt -1234 1) -1234) (num-test (expt -1234 1.0) -1234.00000000000045+0.00000000000015i) (num-test (expt -1234 2) 1522756) (num-test (expt -1234 2.71828182845905) -160193503.19500353932381+195782840.25985893607140i) (num-test (expt -1234.0 -0.0) 1.0) (num-test (expt -1234.0 -0.00000001) 0.99999992881984-0.00000003141592i) (num-test (expt -1234.0 -1) -0.00081037277147-0.0i) (num-test (expt -1234.0 -1.0) -0.00081037277147-0.0i) (num-test (expt -1234.0 -2) 0.00000065670403+0.0i) (num-test (expt -1234.0 -2.71828182845905) -0.00000000250330-0.00000000305945i) (num-test (expt -1234.0 -3) -0.00000000053218-0.0i) (num-test (expt -1234.0 -3.14159265358979) -0.00000000017534+0.00000000008358i) (num-test (expt -1234.0 0) 1.0) (num-test (expt -1234.0 0.0) 1.0) (num-test (expt -1234.0 0.00000001) 1.00000007118016+0.00000003141593i) (num-test (expt -1234.0 1) -1234.00000000000045+0.00000000000015i) (num-test (expt -1234.0 1.0) -1234.00000000000045+0.00000000000015i) (num-test (expt -1234.0 2) 1522756.00000000093132-0.00000000037296i) (num-test (expt -1234.0 2.71828182845905) -160193503.19500353932381+195782840.25985893607140i) ;; XXX Flonum precision problem/overflow? ;(num-test (expt -1234.0+1234.0i 3.14159265358979-0.0i) 6676669154.05054950714111+13759228759.84499740600586i) (num-test (expt -1234.0+2.71828182845905i 1.0-0.00000001i) -1234.00003854658053+2.71836975014915i) (num-test (expt -1234.0-1234.0i -3.14159265358979-0.0i) 2.854567008891443E-11+5.882669873167984E-11i) (num-test (expt -1234.0-2.71828182845905i -1.0-0.00000001i) -0.00081036881365+0.00000178515559i) (num-test (expt -1234/10 0/1) 1) (num-test (expt -1234/1234000000 2/362880) 0.99992385906203+0.00001731345596i) (num-test (expt -1234/362880 10/1234000000) 0.99999995393994+0.00000002545861i) (num-test (expt -1234/500029 3/500029) 0.99996397612963+0.00001884778372i) (num-test (expt -1234000000 0) 1) (num-test (expt -1234000000 0.0) 1.0) (num-test (expt -1234000000 0.00000001) 1.00000020933529+0.00000003141593i) (num-test (expt -1234000000.0 -0.0) 1.0) (num-test (expt -1234000000.0 -0.00000001) 0.99999979066475-0.00000003141592i) (num-test (expt -1234000000.0 -1) -0.00000000081037-0.0i) (num-test (expt -1234000000.0 -1.0) -0.00000000081037-0.0i) (num-test (expt -1234000000.0 0) 1.0) (num-test (expt -1234000000.0 0.0) 1.0) (num-test (expt -1234000000.0 0.00000001) 1.00000020933529+0.00000003141593i) (num-test (expt -1234000000.0-1234.0i -2.71828182845905-0.00000001i) -0.0+0.0i) (num-test (expt -1234000000/10 1/2) 0.00000000000068+11108.55526159905094i) (num-test (expt -1234000000/3 0/3) 1) (num-test (expt -1234000000/362880 1234/500029) 1.02023991975054+0.00791007960266i) (num-test (expt -1234000000/500029 10/362880) 1.00021527254493+0.00008659250882i) (num-test (expt -2 0) 1) (num-test (expt -2 0.0) 1.0) (num-test (expt -2 0.00000001) 1.00000000693147+0.00000003141593i) (num-test (expt -2 1) -2) (num-test (expt -2 1.0) -2.0+0.0i) (num-test (expt -2 10) 1024) (num-test (expt -2 2) 4) (num-test (expt -2 2.71828182845905) -4.16738324447062+5.09322857532248i) (num-test (expt -2 3) -8) (num-test (expt -2 pi) -7.96617830388569-3.79739869898975i) (num-test (expt -2.71828182845905 -0.0) 1.0) (num-test (expt -2.71828182845905 -0.00000001) 0.99999999000000-0.00000003141593i) (num-test (expt -2.71828182845905 -1) -0.36787944117144-0.0i) (num-test (expt -2.71828182845905 -1.0) -0.36787944117144-0.0i) (num-test (expt -2.71828182845905 -10) 0.00004539992976+0.0i) (num-test (expt -2.71828182845905 -2) 0.13533528323661+0.0i) (num-test (expt -2.71828182845905 -2.71828182845905) -0.04178729661821-0.05107095765760i) (num-test (expt -2.71828182845905 -3) -0.04978706836786-0.0i) (num-test (expt -2.71828182845905 -3.14159265358979) -0.03900857144848+0.01859500162024i) (num-test (expt -2.71828182845905 0) 1.0) (num-test (expt -2.71828182845905 0.0) 1.0) (num-test (expt -2.71828182845905 0.00000001) 1.00000001+0.00000003141593i) (num-test (expt -2.71828182845905 1) -2.71828182845905+0.0i) (num-test (expt -2.71828182845905 1.0) -2.71828182845905+0.0i) (num-test (expt -2.71828182845905 10) 22026.46579480671789-0.00000000002697i) (num-test (expt -2.71828182845905 2) 7.38905609893065-0.0i) (num-test (expt -2.71828182845905 2.71828182845905) -9.59652220592352+11.72853041240636i) (num-test (expt -2.71828182845905 3) -20.08553692318767+0.00000000000001i) (num-test (expt -2.71828182845905 pi) -20.88876450460231-9.95746820210997i) (num-test (expt -2.71828182845905+2.71828182845905i 0.00000001-0.0i) 1.00000001346574+0.00000002356195i) (num-test (expt -2.71828182845905+3.14159265358979i 0.0-0.00000001i) 1.00000002284081-0.00000001424157i) (num-test (expt -2.71828182845905-2.71828182845905i -0.00000001-0.0i) 0.99999998653426+0.00000002356194i) (num-test (expt -2.71828182845905-3.14159265358979i -0.0-0.00000001i) 0.99999997715919-0.00000001424157i) (num-test (expt -2/1 3/1) -8) ;; XXX TODO FIXME: Takes a long long time on 32 bits platforms ;(num-test (expt -2/1234 500029/1234000000) 0.99739915734849+0.00126969420446i) (num-test (expt -2/3 1234/362880) 0.99856514997103+0.01066829281071i) (num-test (expt -2/500029 0/10) 1) (num-test (expt -256 0) 1) (num-test (expt -256 1) -256) (num-test (expt -2742638075.5 1/2) (sqrt -2742638075.5)) (num-test (expt -2742638075.5 2) (* -2742638075.5 -2742638075.5)) ; from bug-guile (num-test (expt -3 0) 1) (num-test (expt -3 0.0) 1.0) (num-test (expt -3 0.00000001) 1.00000001098612+0.00000003141593i) (num-test (expt -3 1) -3) (num-test (expt -3 1.0) -3.0+0.0i) (num-test (expt -3 10) 59049) (num-test (expt -3 2) 9) (num-test (expt -3 2.71828182845905) -12.54668835889338+15.33411926056231i) (num-test (expt -3 3) -27) (num-test (expt -3 pi) -28.47456044077623-13.57354237468751i) (num-test (expt -3.14159265358979 -0.0) 1.0) (num-test (expt -3.14159265358979 -0.00000001) 0.99999998855270-0.00000003141593i) (num-test (expt -3.14159265358979 -1) -0.31830988618379-0.0i) (num-test (expt -3.14159265358979 -1.0) -0.31830988618379-0.0i) (num-test (expt -3.14159265358979 -10) 0.00001067827923+0.0i) (num-test (expt -3.14159265358979 -2) 0.10132118364234+0.0i) (num-test (expt -3.14159265358979 -2.71828182845905) -0.02819587712308-0.03446000491078i) (num-test (expt -3.14159265358979 -3) -0.03225153443320-0.0i) (num-test (expt -3.14159265358979 -3.14159265358979) -0.02475677172327+0.01180130912803i) (num-test (expt -3.14159265358979 0) 1.0) (num-test (expt -3.14159265358979 0.0) 1.0) (num-test (expt -3.14159265358979 0.00000001) 1.00000001144730+0.00000003141593i) (num-test (expt -3.14159265358979 1) -3.14159265358979+0.0i) (num-test (expt -3.14159265358979 1.0) -3.14159265358979+0.0i) (num-test (expt -3.14159265358979 10) 93648.04747608296748) (num-test (expt -3.14159265358979 2) 9.86960440108936-0.0i) (num-test (expt -3.14159265358979 2.71828182845905) -14.22238854892297+17.38210083337688i) (num-test (expt -3.14159265358979 3) -31.00627668029983) (num-test (expt -3.14159265358979 pi) -32.91385774189388-15.68971165343314i) ;; XXX what's going on here? results in +nan.0+nan.0i in Chicken ;(num-test (expt -3.14159265358979-3.14159265358979i -1234000000.0-0.0i) 0.0) (num-test (expt -3/1 10/2) -243) (num-test (expt -3/10 500029/362880) -0.07120470796705-0.17650615015342i) (num-test (expt -3/1234 362880/500029) -0.00825127977478+0.00961700186370i) (num-test (expt -3/1234000000 0/1234000000) 1) (num-test (expt -3/362880 2/10) 0.07788060004397+0.05658356803852i) (num-test (expt -3/500029 1/1234) 0.99030033992383+0.00252117260474i) (num-test (expt -362880 0) 1) (num-test (expt -362880 0.0) 1.0) (num-test (expt -362880 0.00000001) 1.00000012801828+0.00000003141593i) (num-test (expt -362880 1) -362880) (num-test (expt -362880 1.0) -362879.99999999982538+0.00000000004444i) (num-test (expt -362880/1 0/500029) 1) (num-test (expt -362880/10 3/10) 13.71347740072436+18.87498236114703i) (num-test (expt -362880/1234 10/3) -84553109.08903615176678-146450280.88012450933456i) ;; This seems to be wrong in s7 ;(num-test (expt -362880/1234000000 1234/2) 0.0) (num-test (expt -362880/2 1/1234000000) 1.00000000981254+0.00000000254586i) (num-test (expt -362880/3 2/1234) 1.01913575690562+0.00518920109559i) (num-test (expt -500029 0) 1) (num-test (expt -500029 0.0) 1.0) (num-test (expt -500029 0.00000001) 1.00000013122422+0.00000003141593i) (num-test (expt -500029 1) -500029) (num-test (expt -500029 1.0) -500029.00000000040745+0.00000000006123i) (num-test (expt -500029/1 362880/1234000000) 1.00386591183654+0.00092741384842i) (num-test (expt -500029/10 2/3) -678.63064326537926+1175.42275370878747i) (num-test (expt -500029/1234 3/2) -0.00000000000150-8156.80442672750178i) ;; Seems to be wrong in s7 ;(num-test (expt -500029/1234000000 10/1) 0.0-0.0i) (num-test (expt -500029/2 0/1234) 1) (num-test (expt -500029/3 1/10) 3.16514579334680+1.02841820970710i) (num-test (expt .1 -1) 10.0) (num-test (expt .1 -2) 100.0) (num-test (expt 0 (expt 2 31)) 0) (num-test (expt 0 (expt 2 32)) 0) (num-test (expt 0 (expt 2 33)) 0) (num-test (expt 0 (expt 2 63)) 0) (num-test (expt 0 (expt 2 64)) 0) (num-test (expt 0 (expt 2 65)) 0) ;; This is wrong in s7 according to R7RS. So we check for 1.0 ;(num-test (expt 0 -0.0) 0.0) (num-test (expt 0 -0.0) 1.0) (num-test (expt 0 -0/4) 1) (num-test (expt 0 0) 1) ;(num-test (expt 0 0.0) 0.0) (num-test (expt 0 0.0) 1.0) (num-test (expt 0 0.00000001) 0.0) (num-test (expt 0 1) 0) (num-test (expt 0 1.0) 0.0) ;; XXX TODO FIXME shouldn't this be 0? ;(num-test (expt 0 1.0+i) 0.0) ; ?? (num-test (expt 0 1/10) 0) (num-test (expt 0 1/4) 0) (num-test (expt 0 10) 0) (num-test (expt 0 100) 0) (num-test (expt 0 1000) 0) (num-test (expt 0 1001) 0) (num-test (expt 0 101) 0) (num-test (expt 0 1234) 0) (num-test (expt 0 1234.0) 0.0) (num-test (expt 0 1234000000) 0) (num-test (expt 0 1234000000.0) 0.0) (num-test (expt 0 2) 0) (num-test (expt 0 2.71828182845905) 0.0) (num-test (expt 0 256) 0) (num-test (expt 0 3) 0) (num-test (expt 0 362880) 0) (num-test (expt 0 500029) 0) (num-test (expt 0 pi) 0.0) (num-test (expt 0+1e-15i 0-1e-15i) 1.0000000000000015707963267943015114538E0+3.453877639491074211979699606989171173842E-14i) (num-test (expt 0+1i 2) -1) (num-test (expt 0+i 0+i) 2.078795763507619085469556198349787700342E-1) (num-test (expt 0+i 0+i) (exp (/ pi -2))) (num-test (expt 0+i 0-i) 4.810477380965351655473035666703833126401E0) (num-test (expt 0+i 1/2) (make-rectangular (/ (sqrt 2)) (/ (sqrt 2)))) (num-test (expt 0+i 2) -1.0) (num-test (expt 0-i 1+i) 0.0-4.810477380965351655473035666703833126401E0i) (num-test (expt 0-i 1-i) 0.0-2.078795763507619085469556198349787700342E-1i) (num-test (expt 0-i 2) -1) (num-test (expt 0.0 (expt 2 31)) 0.0) (num-test (expt 0.0 (expt 2 32)) 0.0) (num-test (expt 0.0 (expt 2 33)) 0.0) (num-test (expt 0.0 (expt 2 63)) 0.0) (num-test (expt 0.0 (expt 2 64)) 0.0) (num-test (expt 0.0 (expt 2 65)) 0.0) ;; Should this be 0.0 or 1.0? ;(num-test (expt 0.0 0) 0.0) (num-test (expt 0.0 0) 1.0) ;; XXX NAN? ;(num-test (expt 0.0 0+i) 0.0) ; why would they be radically different? ;(num-test (expt 0.0 0-i) 0.0) ;; Should this be 0.0 or 1.0? ;(num-test (expt 0.0 0.0) 0.0) (num-test (expt 0.0 0.0) 1.0) (num-test (expt 0.0 0.00000001) 0.0) (num-test (expt 0.0 1) 0.0) (num-test (expt 0.0 1.0) 0.0) (num-test (expt 0.0 1234.0) 0.0) (num-test (expt 0.0 1234000000.0) 0.0) ;; XXX NAN? ;(num-test (expt 0.0 1e-15+i) 0.0) ;(num-test (expt 0.0 1e-15-i) 0.0) (num-test (expt 0.0 2.71828182845905) 0.0) (num-test (expt 0.0 pi) 0.0) (num-test (expt 0.0-1234000000.0i -1234000000.0+0.00000001i) 0.0) (num-test (expt 0.00000001 -0.0) 1.0) (num-test (expt 0.00000001 -0.00000001) 1.00000018420682) (num-test (expt 0.00000001 -1) 100000000.00000017881393) (num-test (expt 0.00000001 -1.0) 100000000.00000017881393) (num-test (expt 0.00000001 0) 1.0) (num-test (expt 0.00000001 0.0) 1.0) (num-test (expt 0.00000001 0.00000001) 0.99999981579321) (num-test (expt 0.00000001 1) 0.00000001) (num-test (expt 0.00000001 1.0) 0.00000001) ;; This looks like it's unrepresentable in s7 ;(num-test (expt 0.00000001 10) 0.0) (num-test (expt 0.00000001 10) 1e-80) (num-test (expt 0.00000001 1234) 0.0) (num-test (expt 0.00000001 1234.0) 0.0) (num-test (expt 0.00000001 1234000000) 0.0) (num-test (expt 0.00000001 1234000000.0) 0.0) ;; Unrepresentable in s7? ;(num-test (expt 0.00000001 2) 0.0) (num-test (expt 0.00000001 2) 1e-16) ;; Unrepresentable in s7? ;(num-test (expt 0.00000001 2.71828182845905) 0.0) ;(num-test (expt 0.00000001 3) 0.0) (num-test (expt 0.00000001 2.71828182845905) 1.79368167953759e-22) (num-test (expt 0.00000001 3) 1e-24) (num-test (expt 0.00000001 362880) 0.0) (num-test (expt 0.00000001 500029) 0.0) ;; Unrepresentable in s7? ;(num-test (expt 0.00000001 pi) 0.0) (num-test (expt 0.00000001 pi) 7.36645891976799e-26) (num-test (expt 0.00000001+0.00000001i 1.0+0.0i) 0.00000001+0.00000001i) (num-test (expt 0.00000001+0.0i 0.00000001+0.00000001i) 0.99999981579319-0.00000018420677i) (num-test (expt 0.00000001-0.00000001i -1.0+0.0i) 50000000.00000004470348+50000000.00000003725290i) (num-test (expt 0.00000001-0.0i -0.00000001+0.00000001i) 1.00000018420681-0.00000018420684i) (num-test (expt 0.0e+00+1.0e+00i -1.0e+00+0.0e+00i) 0-1i) (num-test (expt 0.0e+00+1.0e+00i 0.0e+00+0.0e+00i) 1e0+0.0i) (num-test (expt 0.0e+00+1.0e+00i 0.0e+00+1.0e+00i) 2.0787957635076190855e-1+0.0i) (num-test (expt 0.0e+00+1.0e+00i 0.0e+00-1.0e+00i) 4.8104773809653516555e0+0.0i) (num-test (expt 0.0e+00+1.0e+00i 1.0e+00+0.0e+00i) 0+1i) (num-test (expt 0.0e+00+1.0e+00i 5.0e-01+1.00000000000000005551e-01i) 6.0431891044739184057e-1+6.0431891044739184057e-1i) (num-test (expt 0.0e+00+1.0e+00i 5.0e-01-1.00000000000000005551e-01i) 8.2737771622906514822e-1+8.2737771622906514822e-1i) (num-test (expt 0.0e+00-1.0e+00i -1.0e+00+0.0e+00i) 0+1i) (num-test (expt 0.0e+00-1.0e+00i 0.0e+00+0.0e+00i) 1e0+0.0i) (num-test (expt 0.0e+00-1.0e+00i 0.0e+00+1.0e+00i) 4.8104773809653516555e0+0.0i) (num-test (expt 0.0e+00-1.0e+00i 0.0e+00-1.0e+00i) 2.0787957635076190855e-1+0.0i) (num-test (expt 0.0e+00-1.0e+00i 1.0e+00+0.0e+00i) 0-1i) (num-test (expt 0.0e+00-1.0e+00i 5.0e-01+1.00000000000000005551e-01i) 8.2737771622906514822e-1-8.2737771622906514822e-1i) (num-test (expt 0.0e+00-1.0e+00i 5.0e-01-1.00000000000000005551e-01i) 6.0431891044739184057e-1-6.0431891044739184057e-1i) (num-test (expt 0/1 1/362880) 0.0) (num-test (expt 0/10 10/1234) 0.0) (num-test (expt 0/11 000) 1) (num-test (expt 0/1234 1234/10) 0.0) (num-test (expt 0/2 2/500029) 0.0) (num-test (expt 0/3 3/1234000000) 0.0) (num-test (expt 0/362880 362880/1) 0) (num-test (expt 0/500029 500029/2) 0.0) (num-test (expt 1 (- (expt 2 32))) 1) (num-test (expt 1 (expt 2 32)) 1) ;; XXX NAN? ;(num-test (expt 1 (real-part (log 0))) (expt 1.0 (real-part (log 0)))) (num-test (expt 1 -0) 1) (num-test (expt 1 -0.0) 1.0) (num-test (expt 1 -0.00000001) 1.0) (num-test (expt 1 -1) 1) (num-test (expt 1 -1.0) 1.0) (num-test (expt 1 -10) 1) (num-test (expt 1 -100) 1) (num-test (expt 1 -1000) 1) (num-test (expt 1 -1001) 1) (num-test (expt 1 -101) 1) (num-test (expt 1 -1234) 1) (num-test (expt 1 -1234.0) 1.0) (num-test (expt 1 -1234000000) 1) (num-test (expt 1 -1234000000.0) 1.0) (num-test (expt 1 -1e-15) 1.0) (num-test (expt 1 -2) 1) (num-test (expt 1 -2.71828182845905) 1.0) (num-test (expt 1 -3) 1) (num-test (expt 1 -3.14159265358979) 1.0) (num-test (expt 1 -362880) 1) (num-test (expt 1 -500029) 1) (num-test (expt 1 0) 1) ;; XXX Exactness (inexact compnums) ;(num-test (expt 1 0+i) 1) (num-test (expt 1 0+i) 1.0) ;(num-test (expt 1 0-i) 1) (num-test (expt 1 0-i) 1.0) (num-test (expt 1 0.0) 1.0) (num-test (expt 1 0.00000001) 1.0) (num-test (expt 1 1) 1) ;; XXX Exactness (inexact compnums) ;(num-test (expt 1 1+i) 1) (num-test (expt 1 1+i) 1.0) (num-test (expt 1 1.0) 1.0) (num-test (expt 1 1/10) 1) (num-test (expt 1 10) 1) (num-test (expt 1 100) 1) (num-test (expt 1 1000) 1) (num-test (expt 1 1001) 1) (num-test (expt 1 101) 1) (num-test (expt 1 1234) 1) (num-test (expt 1 1234.0) 1.0) (num-test (expt 1 1234000000) 1) (num-test (expt 1 1234000000.0) 1.0) (num-test (expt 1 2) 1) (num-test (expt 1 2.71828182845905) 1.0) (num-test (expt 1 3) 1) (num-test (expt 1 362880) 1) (num-test (expt 1 500029) 1) (num-test (expt 1 most-negative-fixnum) 1) (num-test (expt 1 pi) 1.0) (num-test (expt 1+i 1) 1+i) (num-test (expt 1+i 1.0) 1.0+i) (num-test (expt 1.0 -0.0) 1.0) (num-test (expt 1.0 -0.00000001) 1.0) (num-test (expt 1.0 -1) 1.0) (num-test (expt 1.0 -1.0) 1.0) (num-test (expt 1.0 -1/2) 1.0) (num-test (expt 1.0 -10) 1.0) (num-test (expt 1.0 -1234) 1.0) (num-test (expt 1.0 -1234.0) 1.0) (num-test (expt 1.0 -1234000000) 1.0) (num-test (expt 1.0 -1234000000.0) 1.0) (num-test (expt 1.0 -2) 1.0) (num-test (expt 1.0 -2.71828182845905) 1.0) (num-test (expt 1.0 -3) 1.0) (num-test (expt 1.0 -3.14159265358979) 1.0) (num-test (expt 1.0 -362880) 1.0) (num-test (expt 1.0 -500029) 1.0) (num-test (expt 1.0 0) 1.0) (num-test (expt 1.0 0.0) 1.0) (num-test (expt 1.0 0.00000001) 1.0) (num-test (expt 1.0 1) 1.0) (num-test (expt 1.0 1.0) 1.0) (num-test (expt 1.0 1/2) 1.0) (num-test (expt 1.0 10) 1.0) (num-test (expt 1.0 1234) 1.0) (num-test (expt 1.0 1234.0) 1.0) (num-test (expt 1.0 1234000000) 1.0) (num-test (expt 1.0 1234000000.0) 1.0) (num-test (expt 1.0 2) 1.0) (num-test (expt 1.0 2.71828182845905) 1.0) (num-test (expt 1.0 3) 1.0) (num-test (expt 1.0 362880) 1.0) (num-test (expt 1.0 500029) 1.0) (num-test (expt 1.0 pi) 1.0) (num-test (expt 1.0+0.00000001i 3.14159265358979+0.00000001i) 1.0+0.00000003141593i) (num-test (expt 1.0+1.0i 2.71828182845905+0.0i) -1.37164508585166+2.16782742612896i) (num-test (expt 1.0-0.00000001i -3.14159265358979+0.00000001i) 1.0+0.00000003141593i) (num-test (expt 1.0-1.0i -2.71828182845905+0.0i) -0.20842863525121+0.32941270052205i) (num-test (expt 1.0e+00+0.0e+00i -1.0e+00+0.0e+00i) 1e0+0.0i) (num-test (expt 1.0e+00+0.0e+00i 0.0e+00+1.0e+00i) 1e0+0.0i) (num-test (expt 1.0e+00+0.0e+00i 0.0e+00-1.0e+00i) 1e0+0.0i) (num-test (expt 1.0e+00+0.0e+00i 1.0e+00+0.0e+00i) 1e0+0.0i) (num-test (expt 1.0e+00+0.0e+00i 5.0e-01+1.00000000000000005551e-01i) 1e0+0.0i) (num-test (expt 1.0e+00+0.0e+00i 5.0e-01-1.00000000000000005551e-01i) 1e0+0.0i) (num-test (expt 1/10 1234/1234000000) 0.99999769741756) (num-test (expt 1/1234000000 500029/10) 0.0) (num-test (expt 1/2 -10) 1024) (num-test (expt 1/2 -3) 8) (num-test (expt 1/2 1/3) 7.937005259840997373758528196361541301963E-1) (num-test (expt 1/2 10) 1/1024) (num-test (expt 1/2 3) 1/8) (num-test (expt 1/2 3/362880) 0.99999426963298) (num-test (expt 1/3 10/500029) 0.99997802926990) (num-test (expt 1/362880 0/2) 1) (num-test (expt 1/4 -2) 16) (num-test (expt 1/4 1/2) 1/2) (num-test (expt 1/4 1/2) 0.5) (num-test (expt 1/4 1/3) 6.299605249474365823836053036391141752849E-1) ;; XXX TODO FIXME: Infinite loop displaying an error for a huge bignum? ;(num-test (expt 1/500029 362880/3) 0.0) (num-test (expt 1/64 -1/2) 8) (num-test (expt 1/64 -1/3) 4) (num-test (expt 1/64 -2/3) 16) (num-test (expt 1/64 -3/2) 512) (num-test (expt 1/64 1/2) 1/8) (num-test (expt 1/64 1/3) 1/4) (num-test (expt 1/64 2/3) 1/16) (num-test (expt 1/64 3/2) 1/512) (num-test (expt 1/64 3/2) 0.001953125) (num-test (expt 10 -0.0) 1.0) (num-test (expt 10 -0.00000001) 0.99999997697415) (num-test (expt 10 -1) 1/10) (num-test (expt 10 -1.0) 0.1) (num-test (expt 10 -10) 1/10000000000) (num-test (expt 10 -2) 1/100) (num-test (expt 10 -2.71828182845905) 0.00191301410222) (num-test (expt 10 -3) 1/1000) (num-test (expt 10 -3.14159265358979) 0.00072178415907) (num-test (expt 10 0) 1) (num-test (expt 10 0.0) 1.0) (num-test (expt 10 0.00000001) 1.00000002302585) (num-test (expt 10 1) 10) (num-test (expt 10 1) 10) (num-test (expt 10 1.0) 10.0) (num-test (expt 10 10) 10000000000) (num-test (expt 10 2) 100) (num-test (expt 10 2.71828182845905) 522.73529967043669) (num-test (expt 10 3) 1000) (num-test (expt 10 pi) 1385.45573136701182) (num-test (expt 10/1234 0/362880) 1) (num-test (expt 10/1234000000 1/500029) 0.99996274097186) (num-test (expt 10/362880 3/1234) 0.97479810574733) (num-test (expt 10/500029 2/1234000000) 0.99999998246380) (num-test (expt 10000000000 1/10) 10) (num-test (expt 1024 1/10) 2) (num-test (expt 1048576 1/10) 4) (num-test (expt 1073741824 1/10) 8) (num-test (expt 11 10) 25937424601) (num-test (expt 1234 -0.0) 1.0) (num-test (expt 1234 -0.00000001) 0.99999992881984) (num-test (expt 1234 -1) 1/1234) (num-test (expt 1234 -1.0) 0.00081037277147) (num-test (expt 1234 -2) 1/1522756) (num-test (expt 1234 -2.71828182845905) 0.00000000395307) (num-test (expt 1234 -3) 1/1879080904) ;; Flonum precision problem? ;(num-test (expt 1234 -3.14159265358979) 0.00000000019424) (num-test (expt 1234 0) 1) (num-test (expt 1234 0.0) 1.0) (num-test (expt 1234 0.00000001) 1.00000007118016) (num-test (expt 1234 1) 1234) (num-test (expt 1234 1.0) 1234.00000000000045) (num-test (expt 1234 2) 1522756) (num-test (expt 1234 2.71828182845905) 252968138.32201290130615) (num-test (expt 1234.0 -0.0) 1.0) (num-test (expt 1234.0 -0.00000001) 0.99999992881984) (num-test (expt 1234.0 -1) 0.00081037277147) (num-test (expt 1234.0 -1.0) 0.00081037277147) (num-test (expt 1234.0 -2) 0.00000065670403) (num-test (expt 1234.0 -2.71828182845905) 0.00000000395307) (num-test (expt 1234.0 -3) 0.00000000053218) ;; Flonum precision problem? ;(num-test (expt 1234.0 -3.14159265358979) 0.00000000019424) (num-test (expt 1234.0 0) 1.0) (num-test (expt 1234.0 0.0) 1.0) (num-test (expt 1234.0 0.00000001) 1.00000007118016) (num-test (expt 1234.0 1) 1234.00000000000045) (num-test (expt 1234.0 1.0) 1234.00000000000045) (num-test (expt 1234.0 2) 1522756.00000000093132) (num-test (expt 1234.0 2.71828182845905) 252968138.32201290130615) ;; Flonum precision problem? ;(num-test (expt 1234.0+1234.0i 3.14159265358979+0.0i) -11947544392.17545890808105+9547275530.50568199157715i) (num-test (expt 1234.0+2.71828182845905i 1.0+0.00000001i) 1233.99999977932634+2.71836966474906i) (num-test (expt 1234.0-1234.0i -3.14159265358979+0.0i) -5.108095859217296E-11+4.081876325659167E-11i) (num-test (expt 1234.0-2.71828182845905i -1.0+0.00000001i) 0.00081036883911+0.00000178515565i) (num-test (expt 1234/10 0/1) 1) (num-test (expt 1234/1234000000 2/362880) 0.99992385921192) (num-test (expt 1234/362880 10/1234000000) 0.99999995393994) (num-test (expt 1234/500029 3/500029) 0.99996397630725) (num-test (expt 1234000000 -0.0) 1.0) (num-test (expt 1234000000 -0.00000001) 0.99999979066475) (num-test (expt 1234000000 -1) 1/1234000000) (num-test (expt 1234000000 -1.0) 0.00000000081037) (num-test (expt 1234000000 0) 1) (num-test (expt 1234000000 0.0) 1.0) (num-test (expt 1234000000 0.00000001) 1.00000020933529) (num-test (expt 1234000000.0 -0.0) 1.0) (num-test (expt 1234000000.0 -0.00000001) 0.99999979066475) (num-test (expt 1234000000.0 -1) 0.00000000081037) (num-test (expt 1234000000.0 -1.0) 0.00000000081037) (num-test (expt 1234000000.0 0) 1.0) (num-test (expt 1234000000.0 0.0) 1.0) (num-test (expt 1234000000.0 0.00000001) 1.00000020933529) (num-test (expt 1234000000.0-1234.0i -2.71828182845905+0.00000001i) 0.0+0.0i) (num-test (expt 1234000000/10 1/2) 11108.55526159905094) (num-test (expt 1234000000/3 0/3) 1) (num-test (expt 1234000000/362880 1234/500029) 1.02027058333165) (num-test (expt 1234000000/500029 10/362880) 1.00021527629325) (num-test (expt 14879/18662 14879/18662) 8.347553395975456341642526041524525735791E-1) (num-test (expt 16 1/4) 2) (num-test (expt 1e-1 1e1) 1e-10) (num-test (expt 1e-1 1e2) 1e-100) (num-test (expt 1e-15 -1e-15) 1.000000000000034538776394911284329951335E0) (num-test (expt 1e-15 0+i) -0.999824358967590-0.018741697229594i) (num-test (expt 1e-15 0-i) -0.999824358967590+0.018741697229594i) (num-test (expt 1e-15 1e-15) 9.99999999999965461223605089908597123527E-1) (num-test (expt 1e-15 1e100) 0.0) (num-test (expt 1e15 -1e1) 1e-150) (num-test (expt 1e15 1e1) 1e150) (num-test (expt 2 (real-part (log 0.0))) (expt 2.0 (real-part (log 0.0)))) (num-test (expt 2 -0.0) 1.0) (num-test (expt 2 -0.00000001) 0.99999999306853) (num-test (expt 2 -1) 1/2) (num-test (expt 2 -1.0) 0.50000000000000) (num-test (expt 2 -10) 1/1024) (num-test (expt 2 -2) 1/4) (num-test (expt 2 -2.71828182845905) 0.15195522325791) (num-test (expt 2 -3) 1/8) (num-test (expt 2 -3.14159265358979) 0.11331473229676) (num-test (expt 2 -9) 1/512) (num-test (expt 2 0) 1) (num-test (expt 2 0.0) 1.0) (num-test (expt 2 0.00000001) 1.00000000693147) (num-test (expt 2 1) 2) (num-test (expt 2 1+i) 1.538477802727944253156659987322541402879E0+1.277922552627269602300065822929403568513E0i) (num-test (expt 2 1.0) 2.0) (num-test (expt 2 1/3) 1.25992104989487316476721060727822835057E0) (num-test (expt 2 10) 1024) (num-test (expt 2 2) 4) (num-test (expt 2 2.71828182845905) 6.58088599101792) (num-test (expt 2 3) 8) (num-test (expt 2 9) 512) (num-test (expt 2 pi) 8.82497782707629) (num-test (expt 2.0 -1.0220000e+03) 2.225073858507201383090232717332404063624E-308) (num-test (expt 2.0 1.0230000e+03) 8.98846567431157953864652595394512365232E307) (num-test (expt 2.71828182845905 -0.0) 1.0) (num-test (expt 2.71828182845905 -0.00000001) 0.99999999000000) (num-test (expt 2.71828182845905 -1) 0.36787944117144) (num-test (expt 2.71828182845905 -1.0) 0.36787944117144) (num-test (expt 2.71828182845905 -10) 0.00004539992976) (num-test (expt 2.71828182845905 -2) 0.13533528323661) (num-test (expt 2.71828182845905 -2.71828182845905) 0.06598803584531) (num-test (expt 2.71828182845905 -3) 0.04978706836786) (num-test (expt 2.71828182845905 -3.14159265358979) 0.04321391826377) (num-test (expt 2.71828182845905 0) 1.0) (num-test (expt 2.71828182845905 0.0) 1.0) (num-test (expt 2.71828182845905 0.00000001) 1.00000001) (num-test (expt 2.71828182845905 1) 2.71828182845905) (num-test (expt 2.71828182845905 1.0) 2.71828182845905) (num-test (expt 2.71828182845905 10) 22026.46579480671789) (num-test (expt 2.71828182845905 2) 7.38905609893065) (num-test (expt 2.71828182845905 2.71828182845905) 15.15426224147926) (num-test (expt 2.71828182845905 3) 20.08553692318767) (num-test (expt 2.71828182845905 pi) 23.14069263277927) (num-test (expt 2.71828182845905+2.71828182845905i 0.00000001+0.0i) 1.00000001346574+0.00000000785398i) (num-test (expt 2.71828182845905+3.14159265358979i 0.0+0.00000001i) 0.99999999142488+0.00000001424157i) (num-test (expt 2.71828182845905-2.71828182845905i -0.00000001+0.0i) 0.99999998653426+0.00000000785398i) (num-test (expt 2.71828182845905-3.14159265358979i -0.0+0.00000001i) 1.00000000857512+0.00000001424157i) (num-test (expt 2/1 3/1) 8) (num-test (expt 2/10 1234000000/500029) 0.0) ;; XXX TODO FIXME: Takes a long long time on 32 bits platforms ;(num-test (expt 2/1234 500029/1234000000) 0.99739996551176) (num-test (expt 2/1234000000 362880/1234) 0.0) (num-test (expt 2/3 -5) (/ 1 (* 2/3 2/3 2/3 2/3 2/3))) (num-test (expt 2/3 1234/362880) 0.99862213634996) (num-test (expt 2/3 5) (* 2/3 2/3 2/3 2/3 2/3)) (num-test (expt 2/362880 1/3) 0.01766399721581) (num-test (expt 2/500029 0/10) 1) (num-test (expt 25 6) (+ (expt 1 6) (expt 2 6) (expt 3 6) (expt 5 6) (expt 6 6) (expt 7 6) (expt 8 6) (expt 9 6) (expt 10 6) (expt 12 6) (expt 13 6) (expt 15 6) (expt 16 6) (expt 17 6) (expt 18 6) (expt 23 6))) (num-test (expt 256 0) 1) (num-test (expt 256 1) 256) (num-test (expt 25937424601 1/10) 11) ;; XXX Why +nan.0? ;(num-test (expt 2718/1000 617/5) 3.858179469787681136058424024656091858698003418770850904916305853631035158956514884526199288e53) ; not an int! (num-test (expt 282475249 1/10) 7) (num-test (expt 29490/26049 29490/26049) 1.15080464191338725897675441635942490625E0) (num-test (expt 3 -0.0) 1.0) (num-test (expt 3 -0.00000001) 0.99999998901388) (num-test (expt 3 -1) 1/3) (num-test (expt 3 -1.0) 0.33333333333333) (num-test (expt 3 -10) 1/59049) (num-test (expt 3 -2) 1/9) (num-test (expt 3 -2.71828182845905) 0.05047193595639) (num-test (expt 3 -3) 1/27) (num-test (expt 3 -3.14159265358979) 0.03170146783514) (num-test (expt 3 0) 1) (num-test (expt 3 0.0) 1.0) (num-test (expt 3 0.00000001) 1.00000001098612) (num-test (expt 3 1) 3) (num-test (expt 3 1.0) 3.0) (num-test (expt 3 10) 59049) (num-test (expt 3 2) 9) (num-test (expt 3 2.71828182845905) 19.81299074527465) (num-test (expt 3 3) 27) (num-test (expt 3 9) (* 3 3 3 3 3 3 3 3 3)) (num-test (expt 3 pi) 31.54428070019755) (num-test (expt 3.0 0) 1.0) (num-test (expt 3.0 0.0) 1.0) (num-test (expt 3.0 1) 3.0) (num-test (expt 3.0 1.0) 3.0) (num-test (expt 3.14159265358979 -0.0) 1.0) (num-test (expt 3.14159265358979 -0.00000001) 0.99999998855270) (num-test (expt 3.14159265358979 -1) 0.31830988618379) (num-test (expt 3.14159265358979 -1.0) 0.31830988618379) (num-test (expt 3.14159265358979 -10) 0.00001067827923) (num-test (expt 3.14159265358979 -2) 0.10132118364234) (num-test (expt 3.14159265358979 -2.71828182845905) 0.04452526726692) (num-test (expt 3.14159265358979 -3) 0.03225153443320) (num-test (expt 3.14159265358979 -3.14159265358979) 0.02742569312330) (num-test (expt 3.14159265358979 0) 1.0) (num-test (expt 3.14159265358979 0.0) 1.0) (num-test (expt 3.14159265358979 0.00000001) 1.00000001144730) (num-test (expt 3.14159265358979 1) pi) (num-test (expt 3.14159265358979 1.0) pi) (num-test (expt 3.14159265358979 10) 93648.04747608296748) (num-test (expt 3.14159265358979 2) 9.86960440108936) (num-test (expt 3.14159265358979 2.71828182845905) 22.45915771836104) (num-test (expt 3.14159265358979 3) 31.00627668029983) (num-test (expt 3.14159265358979 pi) 36.46215960720790) ;; XXX Why +nan.0+nan.0i? ;(num-test (expt 3.14159265358979-3.14159265358979i -1234000000.0+0.0i) 0.0) (num-test (expt 3/1 10/2) 243) (num-test (expt 3/10 500029/362880) 0.19032743228093) (num-test (expt 3/1234 362880/500029) 0.01267163536282) (num-test (expt 3/1234000000 0/1234000000) 1) (num-test (expt 3/362880 2/10) 0.09626571578282) (num-test (expt 3/4 0) 1) (num-test (expt 3/4 0.0) 1.0) (num-test (expt 3/4 1) 3/4) (num-test (expt 3/4 1.0) 0.75) (num-test (expt 3/500029 1/1234) 0.99030354920325) (num-test (expt 3486784401 1/10) 9) (num-test (expt 362880 -0.0) 1.0) (num-test (expt 362880 -0.00000001) 0.99999987198173) (num-test (expt 362880 -1) 1/362880) (num-test (expt 362880 -1.0) 0.00000275573192) (num-test (expt 362880 -2) 1/131681894400) (num-test (expt 362880 0) 1) (num-test (expt 362880 0.0) 1.0) (num-test (expt 362880 0.00000001) 1.00000012801828) (num-test (expt 362880 1) 362880) (num-test (expt 362880 1.0) 362879.99999999982538) (num-test (expt 362880/1 0/500029) 1) (num-test (expt 362880/10 3/10) 23.33076127248722) (num-test (expt 362880/1234 10/3) 169106218.17807236313820) ;; This is incorrect in s7 too ;(num-test (expt 362880/1234000000 1234/2) 0.0) ;; XXX TODO FIXME: Takes a long long time on 32 bits platforms ;(num-test (expt 362880/2 1/1234000000) 1.00000000981254) (num-test (expt 362880/3 2/1234) 1.01914896791961) (num-test (expt 36836/40706 36836/40706) 9.135636805317119582757524254250295946631E-1) (num-test (expt 38246/41321 38246/41321) 9.309245639585393834533875308768247886091E-1) (num-test (expt 4 1/3) 1.587401051968199474751705639272308260393E0) (num-test (expt 4 10) 1048576) (num-test (expt 45692/25507 45692/25507) 2.841422098671431061341360858366953184273E0) (num-test (expt 46394/6866 46394/6866) 4.043224602803809364259118808807234861721E5) (num-test (expt 5 10) 9765625) (num-test (expt 5.0e-01+1.00000000000000005551e-01i -1.0e+00+0.0e+00i) 1.9230769230769230687e0-3.8461538461538463509e-1i) (num-test (expt 5.0e-01+1.00000000000000005551e-01i 0.0e+00+0.0e+00i) 1e0+0.0i) (num-test (expt 5.0e-01+1.00000000000000005551e-01i 0.0e+00+1.0e+00i) 6.4160554864378080418e-1-5.1201864456768275590e-1i) (num-test (expt 5.0e-01+1.00000000000000005551e-01i 0.0e+00-1.0e+00i) 9.5219021866126714108e-1+7.5987364224031834571e-1i) (num-test (expt 5.0e-01+1.00000000000000005551e-01i 1.0e+00+0.0e+00i) 5e-1+1.0000000000000000555e-1i) (num-test (expt 5.0e-01+1.00000000000000005551e-01i 5.0e-01+1.00000000000000005551e-01i) 6.9977300530987816719e-1+2.1940939105372143160e-2i) (num-test (expt 5.0e-01+1.00000000000000005551e-01i 5.0e-01-1.00000000000000005551e-01i) 7.1829191470060938876e-1+1.2038189555821612762e-1i) (num-test (expt 5.0e-01-1.00000000000000005551e-01i -1.0e+00+0.0e+00i) 1.9230769230769230687e0+3.8461538461538463509e-1i) (num-test (expt 5.0e-01-1.00000000000000005551e-01i 0.0e+00+0.0e+00i) 1e0+0.0i) (num-test (expt 5.0e-01-1.00000000000000005551e-01i 0.0e+00+1.0e+00i) 9.5219021866126714108e-1-7.5987364224031834571e-1i) (num-test (expt 5.0e-01-1.00000000000000005551e-01i 0.0e+00-1.0e+00i) 6.4160554864378080418e-1+5.1201864456768275590e-1i) (num-test (expt 5.0e-01-1.00000000000000005551e-01i 1.0e+00+0.0e+00i) 5e-1-1.0000000000000000555e-1i) (num-test (expt 5.0e-01-1.00000000000000005551e-01i 5.0e-01+1.00000000000000005551e-01i) 7.1829191470060938876e-1-1.2038189555821612762e-1i) (num-test (expt 5.0e-01-1.00000000000000005551e-01i 5.0e-01-1.00000000000000005551e-01i) 6.9977300530987816719e-1-2.1940939105372143160e-2i) (num-test (expt 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 9.999999999999958444410197170329529649165E-1) (num-test (expt 500029 -0.0) 1.0) (num-test (expt 500029 -0.00000001) 0.99999986877579) (num-test (expt 500029 -1) 1/500029) (num-test (expt 500029 -1.0) 0.00000199988401) (num-test (expt 500029 -2) 1/250029000841) (num-test (expt 500029 0) 1) (num-test (expt 500029 0.0) 1.0) (num-test (expt 500029 0.00000001) 1.00000013122422) (num-test (expt 500029 1) 500029) (num-test (expt 500029 1.0) 500029.00000000040745) (num-test (expt 500029/1 362880/1234000000) 1.00386634022855) (num-test (expt 500029/10 2/3) 1357.26128653075921) (num-test (expt 500029/1234 3/2) 8156.80442672750178) (num-test (expt 500029/1234000000 10/1) 977129054104898258427314355689841897479681961836578300201/8187505353567209228244052427776000000000000000000000000000000000000000000000000000000000000) (num-test (expt 500029/2 0/1234) 1) (num-test (expt 500029/3 1/10) 3.32803123591083) (num-test (expt 50664/22466 50664/22466) 6.258302816095884603297081160883745414829E0) (num-test (expt 512 1/9) 2) (num-test (expt 56052/41477 56052/41477) 1.502246288382607077882411462458143945519E0) (num-test (expt 58288/55799 58288/55799) 1.046641989822034585352255152505850793912E0) (num-test (expt 59049 1/10) 3) (num-test (expt 6 10) 60466176) (num-test (expt 60466176 1/10) 6) (num-test (expt 64 -1/2) 1/8) (num-test (expt 64 -1/3) 1/4) (num-test (expt 64 -1/6) 1/2) (num-test (expt 64 -2/3) 1/16) (num-test (expt 64 -3/2) 1/512) (num-test (expt 64 1/2) 8) (num-test (expt 64 1/3) 4) (num-test (expt 64 1/6) 2) (num-test (expt 64 2/3) 16) (num-test (expt 64 3/2) 512) (num-test (expt 64/81 1/2) 8/9) (num-test (expt 7 10) 282475249) (num-test (expt 747/28616 747/28616) 9.092208838715899745892490249764275628871E-1) (num-test (expt 8 1/3) 2) (num-test (expt 8 10) 1073741824) (num-test (expt 9 10) 3486784401) (num-test (expt 9765625 1/10) 5) (num-test (sqrt (- (expt 4 1/5) (expt 3 1/5))) (/ (+ (* (- (expt 2 3/5)) (expt 3 4/5)) (expt 3 3/5) (* 2 (expt 2 2/5) (expt 3 2/5)) (* (- (expt 2 4/5)) (expt 3 1/5)) (expt 2 1/5)) 5)) (num-test (sqrt (- (expt 4 2/3) (* (sqrt 3) (expt 5 1/6)))) (+ (/ (expt 5 1/3) (sqrt 6)) (- (/ (expt 5 5/6) (* 3 (sqrt 2)))) (/ (* (expt 2 1/6) (sqrt 5)) 3) (- (/ (* (expt 2 5/6) (expt 5 1/6)) 3)) (/ (expt 2 1/6) (sqrt 3)))) (num-test (sqrt (- (expt 5 1/3) (expt 4 1/3))) (/ (+ (expt 2 1/3) (expt 20 1/3) (- (expt 25 1/3))) 3)) (num-test (sqrt (- (expt 5 1/3) (expt 4 1/3))) (/ (+ (expt 2 1/3) (expt 20 1/3) (- (expt 25 1/3))) 3)) (num-test (sqrt (- 127 (* 4 (sqrt 6) (expt 7 1/4)))) (+ (/ (* (sqrt 3) (expt 7 3/4)) (sqrt 2)) (* 2 (sqrt 7)) (/ (* 3 (sqrt 3) (expt 7 1/4)) (sqrt 2)) -6)) (num-test (sqrt (- 161 (* 12 (expt 5 1/4)))) (+ (* 2 (expt 5 3/4)) (- (* 3 (sqrt 5))) (* 4 (sqrt (sqrt 5))) 6)) (num-test (sqrt (- 2 (expt 2 1/7))) (/ (* (expt 2 1/14) (+ (- (expt 2 6/7)) (expt 2 5/7) (expt 2 3/7) (* 2 (expt 2 1/7)) -1)) (sqrt 7))) (s7-test (= (+ (expt 2421 3) (expt 19083 3)) (+ (expt 5436 3) (expt 18948 3)) (+ (expt 10200 3) (expt 18072 3)) (+ (expt 13322 3) (expt 16630 3))) #t) (s7-test (expt -0.0 most-positive-fixnum) 0.0) (s7-test (expt 0 most-positive-fixnum) 0) (s7-test (expt 0 (- (expt 2 32))) 'error) (s7-test (expt 0 (- (expt 2.0 60))) 'error) (s7-test (expt 0 (make-rectangular (- (expt 2 60)) 1.0)) 'error) (s7-test (expt 0 -255) 'error) (s7-test (expt 0 most-negative-fixnum) 'error) ;; XXX: Probably equally valid (or even moreso?) We're not consistent with (expt 2.0 60) above ;(s7-test (expt 0.0 most-negative-fixnum) 'error) ;(s7-test (expt 0.0 most-negative-fixnum) +inf.0) ; Broken on NetBSD (returns -inf there) (num-test (expt 1 most-negative-fixnum) 1) (num-test (expt -1 most-negative-fixnum) 1) (s7-test (expt 1 most-positive-fixnum) 1) (s7-test (expt -1 most-positive-fixnum) -1) (num-test (expt 0+i (+ 0 (expt 2 16))) 1.0) (num-test (expt 0+i (+ 1 (expt 2 16))) 0+i) (num-test (expt 0+i (+ 2 (expt 2 16))) -1.0) (num-test (expt 0+i (+ 3 (expt 2 16))) 0-i) (num-test (expt 0-i (+ 0 (expt 2 16))) 1.0) (num-test (expt 0-i (+ 1 (expt 2 16))) 0-i) (num-test (expt 0-i (+ 2 (expt 2 16))) -1.0) (num-test (expt 0-i (+ 3 (expt 2 16))) 0+i) (num-test (expt 0+i (+ 0 (expt 2 54))) 1.0) (num-test (expt 0+i (+ 1 (expt 2 54))) 0+i) (num-test (expt 0+i (+ 2 (expt 2 54))) -1.0) (num-test (expt 0+i (+ 3 (expt 2 54))) 0-i) (num-test (expt 0-i (+ 0 (expt 2 54))) 1.0) (num-test (expt 0-i (+ 1 (expt 2 54))) 0-i) (num-test (expt 0-i (+ 2 (expt 2 54))) -1.0) (num-test (expt 0-i (+ 3 (expt 2 54))) 0+i) ;; (s7-test (expt 0 0-i) 0.0) ; sbcl and clisp say division by 0 here, guile says NaN ;; but (expt 0.0 1e-15-i) is 0.0?? ;; clisp says (expt 0 1+i) is 0, but (expt 0 0+i) is division by zero??) -- sbcl agrees ;; (do ((i 30 (+ i 1))) ;; ((= i 63)) ;; (format #t "~A: (- ~A ~A) -> ~A~%" i (+ (expt 2.0 i) 500) (+ (expt 2.0 i) 100) (- (+ (expt 2.0 i) 500) (+ (expt 2.0 i) 100)))) ;; 55: (- 3.6028797018964e+16 3.6028797018964e+16) -> 400.0 ;; 56: (- 7.2057594037928e+16 7.2057594037928e+16) -> 400.0 ;; 57: (- 1.4411518807586e+17 1.4411518807586e+17) -> 416.0 ;; 58: (- 2.8823037615171e+17 2.8823037615171e+17) -> 384.0 ;; 59: (- 5.7646075230342e+17 5.7646075230342e+17) -> 384.0 ;; 60: (- 1.1529215046068e+18 1.1529215046068e+18) -> 512.0 ;; 61: (- 2.3058430092137e+18 2.3058430092137e+18) -> 512.0 ;; 62: (- 4.6116860184274e+18 4.6116860184274e+18) -> 0.0 (s7-test (or (< (magnitude (- (expt -2/362880 1/3) 0.00883199860790+0.01529747032127i)) 1e-6) (< (magnitude (- (expt -2/362880 1/3) 0.00883199860790-0.01529747032127i)) 1e-6) (< (magnitude (- (expt -2/362880 1/3) -0.017663997215805)) 1e-6)) #t) (s7-test (< (abs (- (+ (make-rectangular 1.0 0.0) (make-polar 1.0 0.0) 1.0+0i (* -1.0 -1.0) (/ 1.0) (exp 0.0) (abs -1.0) (cos 0.0) (log (exp 1)) (magnitude 1.0+0i) (max 0.0 1.0) (min 1.0 2.0)) 12.0)) 1e-12) #t) ;; XXX This can't be true; exact ratnum exponentiation that's this precise #; (let ((xs (list 2 3 4 1/2 1/3 1/4 2.5 1+i 2.5+1.5i 2.5-.5i)) (ys (list 2 3 4 -2 -3 1/2 1/3 1/4 -1/2 -1/3 -1/4 2.5 -3.5 1+i -1+2i 2.5+1.5i 2.5-.5i))) (for-each (lambda (x) (for-each (lambda (y) (s7-test (format #f "(expt (expt ~A ~A) ~A) => ~A" x y (/ y) x) x (expt (expt x y) (/ y))) ;; (if (> (magnitude (- (expt (expt x y) (/ y)) x)) 1e-6) ;; (format #t ";(expt (expt ~A ~A) (/ ~A)) -> ~A (~A)~%" x y y (expt (expt x y) (/ y)) (magnitude (- (expt (expt x y) (/ y)) x)))) ) ys)) xs)) #; (if with-bignums (begin ;; from Knuth IIp245(3rd) (let* ((f (lambda (x) (/ (- 1 (expt x 107)) (- 1 x)))) (g (lambda (y) (f (* (- 1/3 (* y y)) (+ 3 (* 3.45 y y)))))) (gx (lambda (y) (+ 107 (* -10491.35 y y) (* 659749.9625 y y y y) (* 30141386.26625 (expt y 6)))))) (do ((i 3 (+ i 1))) ((> i 10)) (let ((g1 (g (expt 10 (- i)))) (g2 (gx (expt 10 (- i))))) (let ((diff (abs (- g1 g2)))) (if (or (nan? diff) (> diff (expt 10 (- -7 i)))) (format #t ";g(1e-~D) -> ~A ~A, diff: ~A~%" i g1 g2 (abs (- g1 g2)))))))) (let ((p (lambda (x y) (+ (* 2 y y) (* 9 x x x x) (* -1 y y y y))))) (num-test (p 408855776 708158977) 1)) (let ((p (lambda (x y) (+ (* 2 y y) (* (- (* 3 x x) (* y y)) (+ (* 3 x x) (* y y))))))) (num-test (p 408855776 708158977) 1)) )) (let ((top-exp 60)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (+ 2 (expt 2 i))) (val2 (- val1 1))) (if (not (> val1 val2)) (begin (set! happy #f) (display "(> ") (display val1) (display " ") (display val2) (display ") -> ") (display (> val1 val2)) (display "?") (newline))) (if (< val1 val2) (begin (set! happy #f) (display "(< ") (display val1) (display " ") (display val2) (display ") -> ") (display (< val1 val2)) (display "?") (newline)))))) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (/ (expt 2 i) 3)) (val2 (/ (+ 1 (expt 2 i)) 3))) (if (> val1 val2) (begin (set! happy #f) (display "(> ") (display val1) (display " ") (display val2) (display ") -> ") (display (> val1 val2)) (display "?") (newline))) (if (not (> val2 val1)) (begin (set! happy #f) (display "(> ") (display val1) (display " ") (display val2) (display ") -> ") (display (> val2 val1)) (display "?") (newline))) (if (not (< val1 val2)) (begin (set! happy #f) (display "(< ") (display val1) (display " ") (display val2) (display ") -> ") (display (< val1 val2)) (display "?") (newline))) (if (< val2 val1) (begin (set! happy #f) (display "(< ") (display val1) (display " ") (display val2) (display ") -> ") (display (< val2 val1)) (display "?") (newline))) )))) ;; Invalid hex numerical syntax (decimal dot is only defined for base 10 in the spec) ;; (let* ((x (* #x1.6000022202b1076a (expt 2 -58))) ;; (a (expt (- 1.01 x) (- 1.01 x))) ;; (b (expt x (- 1.01 (expt x (- 1.01 x)))))) ;; (num-test a 1.010100503341741589854787064753636627742E0) ;; (num-test b 3.201463978607038931337314838029261023486E-18) ;; (num-test x 4.770489999999999999978271189676737354422E-18) ;; (num-test (+ a b -1.01) 1.005033417415841744668463594232356924E-4) ;; (s7-test (positive? (+ a b -1.01)) #t)) (do ((k 1 (+ k 1))) ((= k 12)) (num-test (+ (expt 11 k) (expt 24 k) (expt 65 k) (expt 90 k) (expt 129 k) (expt 173 k) (expt 212 k) (expt 237 k) (expt 278 k) (expt 291 k) (expt 302 k)) (+ (expt 3 k) (expt 5 k) (expt 30 k) (expt 57 k) (expt 104 k) (expt 116 k) (expt 186 k) (expt 198 k) (expt 245 k) (expt 272 k) (expt 297 k) (expt 299 k)))) #; (let ((top 0)) (let ((x-10 (lambda (n) (- (expt n 10) (* n n n n n n n n n n))))) (let ((happy #t) (lim (if with-bignums 100 74))) (do ((i 1 (+ i 1))) ((or (not happy) (= i lim))) ; stop around 63 bits (let ((val (x-10 i))) (if (not (= val 0)) (begin (set! top (- i 1)) (set! happy #f) (display "(expt ") (display i) (display " 10) = ") (display (expt i 10)) (display " but (* ") (display i) (display "... 10x) = ") (display (* i i i i i i i i i i)) (newline))))))) (if (> top 63) (num-test (+ (expt 1 10) (expt 2 10) (expt 4 10) (expt 5 10) (expt 6 10) (expt 8 10) (expt 12 10) (expt 15 10) (expt 16 10) (expt 17 10) (expt 20 10) (expt 21 10) (expt 25 10) (expt 26 10) (expt 27 10) (expt 28 10) (expt 30 10) (expt 36 10) (expt 37 10) (expt 38 10) (expt 40 10) (expt 51 10) (expt 62 10)) (expt 63 10)))) #; (if with-bignums (num-test (let ((dickey (lambda (x y) ; from Kawa (+ (* 1335/4 (expt y 6)) (* (expt x 2) (- (* 11 (expt x 2) (expt y 2)) (expt y 6) (* 121 (expt y 4)) 2)) (* 11/2 (expt y 8)) (/ x (* 2 y)))))) (dickey 77617 33096)) -54767/66192)) #; (let ((x-10 (lambda (n) (- (expt n 10) (* n n n n n n n n n n))))) (let ((happy #t) (lim (if with-bignums 100 74))) (do ((i 1 (+ i 2))) ((or (not happy) (> i lim))) ; stop around 63 bits (let ((val (x-10 (/ i 2)))) (if (not (= val 0)) (begin (set! happy #f) (display "(expt ") (display i) (display "/2 10) = ") (display (expt (/ i 2) 10)) (display " but (* ") (display i) (display "/2 ... 10x) = ") (display (/ (* i i i i i i i i i i) 1024)) (newline))))))) #; (let ((x-10 (lambda (n) (- (expt n -10) (/ 1 (* n n n n n n n n n n)))))) (let ((happy #t) (lim (if with-bignums 100 74))) (do ((i 1 (+ i 2))) ((or (not happy) (> i lim))) ; stop around 63 bits (let ((val (x-10 (/ i 2)))) (if (not (= val 0)) (begin (set! happy #f) (display "(expt ") (display i) (display "/2 -10) = ") (display (expt (/ i 2) -10)) (display " but (* 1/(") (display i) (display "/2) ... 10x) = ") (display (/ 1024 (* i i i i i i i i i i))) (display " [diff=") (display val) (display "]") (newline))))))) #; (let ((happy #t) (lim (if with-bignums 50 19))) (do ((i 1 (+ i 1))) ((or (not happy) (> i lim))) (let* ((val1 (expt 3 i)) (val2 (sqrt (* val1 val1)))) (if (not (= val1 val2)) (begin (set! happy #f) (display "[3^i] (sqrt ") (display (* val1 val1)) (display " = ") (display val2) (display " but should be ") (display val1) (newline)))))) #; (if (not with-bignums) (begin (num-test (* (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) 4194300.0019569) (num-test (expt -2/10 1234000000/500029) 0.0) (num-test (expt -2/1234000000 362880/1234) 0.0) (num-test (expt -1/1234000000 500029/10) 0.0) (num-test (expt 3.14159265358979-1.0i -1234.0+0.00000001i) 0.0) (num-test (expt -3.14159265358979-1.0i -1234.0-0.00000001i) 0.0) (num-test (expt 1234000000.0-1234000000.0i -1234.0+0.0i) 0.0) (num-test (expt -1234000000.0-1234000000.0i -1234.0-0.0i) 0.0) ) (begin (num-test (* (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) 4398046513152/1048577) (s7-test (expt 1/2 9223372036854775807) 'error) ; gmp overflow (num-test (expt (expt -4722366482869645213696/6561 1/2) 2) -4722366482869645213696/6561) (num-test (expt 324518553658426726783156020576256.0 1/3) 68719476736.0) (num-test (expt 4722366482869645213696 1/2) 68719476736) (num-test (expt 4722366482869645213696.0 1/2) 68719476736.0) (num-test (expt 4722366482869645213696/6561 -1/2) (/ 68719476736/81)) (num-test (* (/ (expt 2 61) (+ (expt 2 40) 1)) (/ (+ (expt 2 61) 1) (expt 2 40))) 4835703278458516700921856/1099511627777) (num-test (+ (- 512 (expt 2.0 62)) (- (expt 2.0 62) 513)) -1.0) (num-test (+ (/ (expt 2 61) (+ (expt 2 40) 1)) (/ (+ (expt 2 61) 1) (expt 2 40))) 5070602400915223450095538143233/1208925819615728686333952) (num-test (+ (expt 2 61) (expt 2 62) (expt 2 61)) (/ (expt 2 64) 2)) (num-test (* 2 (expt 2 62)) (expt 2 63)) (num-test (* 8 (expt 2 30) (expt 2 30)) 9223372036854775808) (num-test (- (+ (expt 2.0 62) 500) (+ (expt 2.0 62) 100)) 4.000E2) (num-test (- (+ (expt 2.0 62) 512) (+ (expt 2.0 62) 513)) -1.0) (num-test (- (/ (expt 2 61) (+ (expt 2 40) 1)) (/ (+ (expt 2 61) 1) (expt 2 40))) -2305844108725321729/1208925819615728686333952) (num-test (/ (/ (expt 2 61) (+ (expt 2 40) 1)) (/ (+ (expt 2 61) 1) (expt 2 40))) 2535301200456458802993406410752/2535301200458764647102131732481) (num-test (/ (expt (* 1.2345e-170 1.2345e-170) 1/100)) 2.501325312985302606641508258507698932691E3) (num-test (/ (log (expt 2 32)) (log 2)) 32.0) (num-test 1180591620717411303424/1180591620717411303425 (/ (expt 2 70) (+ (expt 2 70) 1))) (s7-test (< (abs (- (expt (- (exp (* pi (sqrt (bignum "163")))) 744) 1/3) 6.4031999999999999999999999999939031735E5)) 1e-32) #t) (s7-test (> (+ (expt 2.0 62) 500) (+ (expt 2.0 62) 100)) #t) (num-test (expt -2/10 1234000000/500029) 9.92209574402351949043519108941671096176E-1726-4.788930572030484370393069119625570107346E-1726i) (num-test (expt -2/1234000000 362880/1234) 1.116318539471846948140196659021553350719E-2585+2.424343808068083320544106524660635302266E-2586i) (num-test (expt -1/1234000000 500029/10) -7.168156874677746632219778149112758764437E-454593+2.32907535423388290492582809530285175961E-454593i) (num-test (expt 3.14159265358979-1.0i -1234.0+0.00000001i) -4.480790643664505864348068449454625911766E-640-6.676876181099023202939008945839411012697E-641i) (num-test (expt -3.14159265358979-1.0i -1234.0-0.00000001i) -4.480790502896318391426668753233092987401E-640+6.676875971338774903151645323179283073828E-641i) (num-test (expt 1234000000.0-1234000000.0i -1234.0+0.0i) 0.0+3.815800046393940013006703716489144169017E-11405i) (num-test (expt -1234000000.0-1234000000.0i -1234.0-0.0i) 0.0-3.815800046393940013006703716489144169017E-11405i) (num-test (expt 2 1/3) 1.25992104989487316476721060727822835057E0) (s7-test (zero? (- (expt 2 1/3) 1.2599210498949)) #f) ; make sure it's not just libm's cbrt )) (for-each (lambda (data) (let ((num1 (car data)) (num2 (cadr data)) (val (caddr data))) (num-test-2 expt num1 num2 (expt num1 num2) val))) (list (list 0 0 1) (list 0 1 0) (list 0 2 0) (list 0 3 0) (list 0 1/2 0) (list 0 1/3 0) (list 0 0.0 0.0) (list 0 1.0 0.0) (list 0 2.0 0.0) (list 0 1.000000000000000000000000000000000000002E-309 0.0) (list 0 1e+16 0.0) (list 0 +inf.0 0.0) #;(list 0 0+1i 0.0) #;(list 0 0+2i 0.0) ;; undefined #;(list 0 0-1i 0.0) #;(list 0 1+1i 0.0) #;(list 0 1-1i 0.0) #;(list 0 0.1+0.1i 0.0) #;(list 0 1e+16+1e+16i 0.0) #;(list 0 1e-16+1e-16i 0.0) (list 1 0 1) (list 1 1 1) (list 1 2 1) (list 1 3 1) (list 1 -1 1) (list 1 -2 1) (list 1 -3 1) (list 1 1/2 1) (list 1 1/3 1.0) (list 1 -1/2 1.000E0) (list 1 -1/3 1.000E0) (list 1 0.0 1.000E0) (list 1 1.0 1.000E0) (list 1 2.0 1.000E0) (list 1 -2.0 1.000E0) (list 1 1.000000000000000000000000000000000000002E-309 1.000E0) (list 1 1e+16 1.000E0) (list 1 +inf.0 1.000E0) (list 1 -inf.0 1.000E0) (list 1 0+1i 1.0) (list 1 0+2i 1.0) (list 1 0-1i 1.0) (list 1 1+1i 1.0) (list 1 1-1i 1.0) (list 1 -1+1i 1.0) (list 1 -1-1i 1.0) (list 1 0.1+0.1i 1.0) (list 1 1e+16+1e+16i 1.0) (list 1 1e-16+1e-16i 1.0) (list 2 0 1) (list 2 1 2) (list 2 2 4) (list 2 3 8) (list 2 -1 1/2) (list 2 -2 1/4) (list 2 -3 1/8) (list 2 1/2 1.4142135623731) (list 2 1/3 1.2599210498949) (list 2 -1/2 7.071067811865475244008443621048490392845E-1) (list 2 -1/3 7.937005259840997475556964875637659160371E-1) (list 2 0.0 1.000E0) (list 2 1.0 2.000E0) (list 2 2.0 4.000E0) (list 2 -2.0 2.500E-1) (list 2 1.000000000000000000000000000000000000002E-309 1.000E0) (list 2 -inf.0 0.0) (list 2 0+1i 7.692389013639721265783299936612707014395E-1+6.389612763136348011500329114647017842567E-1i) (list 2 0+2i 1.83456974743301676839941236809235104518E-1+9.830277404112437205861648503427281526099E-1i) (list 2 0-1i 7.692389013639721265783299936612707014395E-1-6.389612763136348011500329114647017842567E-1i) (list 2 1+1i 1.538477802727944253156659987322541402879E0+1.277922552627269602300065822929403568513E0i) (list 2 1-1i 1.538477802727944253156659987322541402879E0-1.277922552627269602300065822929403568513E0i) (list 2 -1+1i 3.846194506819860632891649968306353507197E-1+3.194806381568174005750164557323508921283E-1i) (list 2 -1-1i 3.846194506819860632891649968306353507197E-1-3.194806381568174005750164557323508921283E-1i) (list 2 0.1+0.1i 1.069199809265204517687304849996528484166E0+7.423020183379063973209835788737470580225E-2i) (list 2 1e-16+1e-16i 1.00000000000000006931471805599452949289E0+6.931471805599453429742233135802455373554E-17i) (list 3 0 1) (list 3 1 3) (list 3 2 9) (list 3 3 27) (list 3 -1 1/3) (list 3 -2 1/9) (list 3 -3 1/27) (list 3 1/2 1.7320508075689) (list 3 1/3 1.4422495703074) (list 3 -1/2 5.773502691896257645091487805019574556475E-1) (list 3 -1/3 6.933612743506347189382852083362015558497E-1) (list 3 0.0 1.000E0) (list 3 1.0 3.000E0) (list 3 2.0 9.000E0) (list 3 -2.0 1.111111111111111111111111111111111111113E-1) (list 3 1.000000000000000000000000000000000000002E-309 1.000E0) (list 3 -inf.0 0.0) (list 3 0+1i 4.548324228266097550275651435950424840878E-1+8.905770416677470590749273065651780951036E-1i) (list 3 0+2i -5.862549342913521629213761016900936427016E-1+8.101266271509919688171526765177844453941E-1i) (list 3 0-1i 4.548324228266097550275651435950424840878E-1-8.905770416677470590749273065651780951036E-1i) (list 3 1+1i 1.364497268479829265082695430785127452266E0+2.671731125003241177224781919695534285314E0i) (list 3 1-1i 1.364497268479829265082695430785127452266E0-2.671731125003241177224781919695534285314E0i) (list 3 -1+1i 1.516108076088699183425217145316808280297E-1+2.968590138892490196916424355217260317017E-1i) (list 3 -1-1i 1.516108076088699183425217145316808280297E-1-2.968590138892490196916424355217260317017E-1i) (list 3 0.1+0.1i 1.109394427306365911813022078881836880638E0+1.223721548273860448930668229757603279477E-1i) (list 3 1e-16+1e-16i 1.00000000000000010986122886681096684318E0+1.098612288668109789126712952843432012306E-16i) (list -1 0 1) (list -1 1 -1) (list -1 2 1) (list -1 3 -1) (list -1 -1 -1) (list -1 -2 1) (list -1 -3 -1) (list -1 1/2 0+1i) (list -1 1/3 -1.0) (list -1 -1/2 0.0-1.00E0i) (list -1 -1/3 5.000000000000000503430454055824822034062E-1-8.660254037844386176981523540143355578944E-1i) (list -1 0.0 1.000E0) (list -1 1.0 -1.00E0) (list -1 2.0 1.000E0) (list -1 -2.0 1.000E0) (list -1 1e+16 1.000E0) (list -1 0+1i 4.321391826377224977441773717172801127579E-2) (list -1 0+2i 1.86744273170798881443021293482703039342E-3) (list -1 0-1i 2.314069263277926900572908636794854738031E1) (list -1 1+1i -4.321391826377224977441773717172801127579E-2) (list -1 1-1i -2.314069263277926900572908636794854738031E1) (list -1 -1+1i -4.321391826377224977441773717172801127579E-2) (list -1 -1-1i -2.314069263277926900572908636794854738031E1) (list -1 0.1+0.1i 6.946542388413302284911578278489504217747E-1+2.257068442712257901873502529761755278285E-1i) (list -1 1e+16+1e+16i 0.0) (list -1 1e-16+1e-16i 9.999999999999996858407346410206827203587E-1+3.141592653589792185835963602803850622895E-16i) (list -2 0 1) (list -2 1 -2) (list -2 2 4) (list -2 3 -8) (list -2 -1 -1/2) (list -2 -2 1/4) (list -2 -3 -1/8) (list -2 1/2 0+1.4142135623731i) (list -2 1/3 -1.2599210498949) (list -2 -1/2 0.0-7.071067811865475244008443621048490392845E-1i) (list -2 -1/3 3.968502629920499137351498618341152884837E-1-6.873648184993012989383839761489500939792E-1i) (list -2 0.0 1.000E0) (list -2 1.0 -2.00E0) (list -2 2.0 4.000E0) (list -2 -2.0 2.500E-1) (list -2 -inf.0 0.0) (list -2 0+1i 3.324182700885665525901791766265082328307E-2+2.761202036833300995082465454051316449496E-2i) (list -2 0+2i 3.425953940655147934023229852954811989202E-4+1.835748008898304681163796172161682131024E-3i) (list -2 0-1i 1.780072097764048857359856955378859222048E1-1.478600649942216768260366593652156810413E1i) (list -2 1+1i -6.648365401771331051803583532530164656613E-2-5.522404073666601990164930908102632898992E-2i) (list -2 1-1i -3.560144195528097714719713910757718444095E1+2.957201299884433536520733187304313620826E1i) (list -2 -1+1i -1.662091350442832762950895883132541164153E-2-1.380601018416650497541232727025658224748E-2i) (list -2 -1-1i -8.900360488820244286799284776894296110238E0+7.393003249711083841301832968260784052065E0i) (list -2 0.1+0.1i 7.259699150688950609812198701314241029302E-1+2.928900391985359860022641767906842987898E-1i) (list -2 1e+16+1e+16i 0.0) (list -2 1e-16+1e-16i 9.999999999999997551554526970151686615297E-1+3.834739834149737528810186916384012655492E-16i) (list -3 0 1) (list -3 1 -3) (list -3 2 9) (list -3 3 -27) (list -3 -1 -1/3) (list -3 -2 1/9) (list -3 -3 -1/27) (list -3 1/2 0+1.7320508075689i) (list -3 1/3 -1.4422495703074) (list -3 -1/2 0.0-5.773502691896257645091487805019574556475E-1i) (list -3 -1/3 3.466806371753173943750607212746369268463E-1-6.004684775880013553913614575447052401843E-1i) (list -3 0.0 1.000E0) (list -3 1.0 -3.00E0) (list -3 2.0 9.000E0) (list -3 -2.0 1.111111111111111111111111111111111111113E-1) (list -3 -inf.0 0.0) (list -3 0+1i 1.965509114374261361108537566165204334024E-2+3.848532348622211453375207440262631065206E-2i) (list -3 0+2i -1.094797515970330168691448329739632503045E-3+1.512865081636227781901948390654863520171E-3i) (list -3 0-1i 1.052513729605287378161514526579733692066E1-2.060856958704319044776041543097331663996E1i) (list -3 1+1i -5.896527343122784083325612698495613002091E-2-1.15455970458666343601256223207878931956E-1i) (list -3 1-1i -3.157541188815862134484543579739201076193E1+6.182570876112957134328124629291994991979E1i) (list -3 -1+1i -6.551697047914204537028458553884014446755E-3-1.282844116207403817791735813420877021735E-2i) (list -3 -1-1i -3.508379098684291260538381755265778973549E0+6.869523195681063482586805143657772213312E0i) (list -3 0.1+0.1i 7.430253085825579186796890883432274992943E-1+3.354042513063949187690186935389269335405E-1i) (list -3 1e+16+1e+16i 0.0) (list -3 1e-16+1e-16i 9.999999999999997957019635078315805356955E-1+4.240204942257901974962676555647136289098E-16i) (list 1/2 0 1) (list 1/2 1 1/2) (list 1/2 2 1/4) (list 1/2 3 1/8) (list 1/2 -1 2) (list 1/2 -2 4) (list 1/2 -3 8) (list 1/2 1/2 0.70710678118655) (list 1/2 1/3 0.7937005259841) (list 1/2 -1/2 1.414213562373095048801688724209698078569E0) (list 1/2 -1/3 1.259921049894873148607716059938123324722E0) (list 1/2 0.0 1.000E0) (list 1/2 1.0 5.000E-1) (list 1/2 2.0 2.500E-1) (list 1/2 -2.0 4.000E0) (list 1/2 1.000000000000000000000000000000000000002E-309 1.000E0) #;(list 1/2 1e+16 0.0) ;; XXX huge (list 1/2 +inf.0 0.0) (list 1/2 0+1i 7.692389013639721265783299936612707014395E-1-6.389612763136348011500329114647017842567E-1i) (list 1/2 0+2i 1.83456974743301676839941236809235104518E-1-9.830277404112437205861648503427281526099E-1i) (list 1/2 0-1i 7.692389013639721265783299936612707014395E-1+6.389612763136348011500329114647017842567E-1i) (list 1/2 1+1i 3.846194506819860632891649968306353507197E-1-3.194806381568174005750164557323508921283E-1i) (list 1/2 1-1i 3.846194506819860632891649968306353507197E-1+3.194806381568174005750164557323508921283E-1i) (list 1/2 -1+1i 1.538477802727944253156659987322541402879E0-1.277922552627269602300065822929403568513E0i) (list 1/2 -1-1i 1.538477802727944253156659987322541402879E0+1.277922552627269602300065822929403568513E0i) (list 1/2 0.1+0.1i 9.307924962319322751032548220951692988141E-1-6.462114401999142796156052473887795907618E-2i) (list 1/2 1e+16+1e+16i 0.0) (list 1/2 1e-16+1e-16i 9.999999999999999306852819440054705071071E-1-6.931471805599452468836205299399646209468E-17i) (list 1/3 0 1) (list 1/3 1 1/3) (list 1/3 2 1/9) (list 1/3 3 1/27) (list 1/3 -1 3) (list 1/3 -2 9) (list 1/3 -3 27) (list 1/3 1/2 0.57735026918963) (list 1/3 1/3 0.69336127435063) (list 1/3 -1/2 1.732050807568877341601513501094972563495E0) (list 1/3 -1/3 1.442249570307408379689974332217791378498E0) (list 1/3 0.0 1.000E0) (list 1/3 1.0 3.333333333333333148296162562473909929395E-1) (list 1/3 2.0 1.111111111111110987752997263871498932361E-1) (list 1/3 -2.0 9.000000000000000999200722162640969581442E0) (list 1/3 1.000000000000000000000000000000000000002E-309 1.000E0) #;(list 1/3 1e+16 0.0) ;; XXX huge (list 1/3 +inf.0 0.0) (list 1/3 0+1i 4.548324228266097055906083004905301340071E-1-8.905770416677470843231987149725161148001E-1i) (list 1/3 0+2i -5.862549342913522528634995341851693014879E-1-8.101266271509919037297800414810374565267E-1i) (list 1/3 0-1i 4.548324228266097055906083004905301340071E-1+8.905770416677470843231987149725161148001E-1i) (list 1/3 1+1i 1.516108076088698934474456306943980624137E-1-2.968590138892490116287472906226681453643E-1i) (list 1/3 1-1i 1.516108076088698934474456306943980624137E-1+2.968590138892490116287472906226681453643E-1i) (list 1/3 -1+1i 1.364497268479829192516639126693602447003E0-2.671731125003241401280466674231091613441E0i) (list 1/3 -1-1i 1.364497268479829192516639126693602447003E0+2.671731125003241401280466674231091613441E0i) (list 1/3 0.1+0.1i 8.905570151840088631186184238937353595899E-1-9.823321468210062916108146236871209771647E-2i) (list 1/3 1e+16+1e+16i 0.0) (list 1/3 1e-16+1e-16i 9.999999999999998901387711331890276057033E-1-1.098612288668109603248072021584861739285E-16i) (list -1/2 0 1) (list -1/2 1 -1/2) (list -1/2 2 1/4) (list -1/2 3 -1/8) (list -1/2 -1 -2) (list -1/2 -2 4) (list -1/2 -3 -8) (list -1/2 1/2 0+0.70710678118655i) (list -1/2 1/3 -0.7937005259841) (list -1/2 -1/2 0.0-1.414213562373095048801688724209698078569E0i) (list -1/2 -1/3 6.299605249474366377321206522758126486977E-1-1.09112363597172135294521532465807648133E0i) (list -1/2 0.0 1.000E0) (list -1/2 1.0 -5.00E-1) (list -1/2 2.0 2.500E-1) (list -1/2 -2.0 4.000E0) #;(list -1/2 1e+16 0.0) ;; XXX huge (list -1/2 +inf.0 0.0) (list -1/2 0+1i 3.324182700885665525901791766265082328307E-2-2.761202036833300995082465454051316449496E-2i) (list -1/2 0+2i 3.425953940655147934023229852954811989202E-4-1.835748008898304681163796172161682131024E-3i) (list -1/2 0-1i 1.780072097764048857359856955378859222048E1+1.478600649942216768260366593652156810413E1i) (list -1/2 1+1i -1.662091350442832762950895883132541164153E-2+1.380601018416650497541232727025658224748E-2i) (list -1/2 1-1i -8.900360488820244286799284776894296110238E0-7.393003249711083841301832968260784052065E0i) (list -1/2 -1+1i -6.648365401771331051803583532530164656613E-2+5.522404073666601990164930908102632898992E-2i) (list -1/2 -1-1i -3.560144195528097714719713910757718444095E1-2.957201299884433536520733187304313620826E1i) (list -1/2 0.1+0.1i 6.611643874791633083240145101585573999158E-1+1.651968853835831321053883592233542783317E-1i) (list -1/2 1e+16+1e+16i 0.0) (list -1/2 1e-16+1e-16i 9.999999999999996165260165850261967791906E-1+2.448445473029846938952343072863939318955E-16i) (list -1/3 0 1) (list -1/3 1 -1/3) (list -1/3 2 1/9) (list -1/3 3 -1/27) (list -1/3 -1 -3) (list -1/3 -2 9) (list -1/3 -3 -27) (list -1/3 1/2 0+0.57735026918963i) (list -1/3 1/3 -0.69336127435063) (list -1/3 -1/2 0.0-1.732050807568877341601513501094972563495E0i) (list -1/3 -1/3 7.211247851537042624522227702765802634347E-1-1.249024766483406435214284662923064132397E0i) (list -1/3 0.0 1.000E0) (list -1/3 1.0 -3.333333333333333148296162562473909929395E-1) (list -1/3 2.0 1.111111111111110987752997263871498932361E-1) (list -1/3 -2.0 9.000000000000000999200722162640969581442E0) #;(list -1/3 1e+16 0.0) ;; XXX huge (list -1/3 +inf.0 0.0) (list -1/3 0+1i 1.965509114374261147472076343409745270744E-2-3.848532348622211562482881134707887874423E-2i) (list -1/3 0+2i -1.094797515970330336653213008135348071651E-3-1.512865081636227660355007437386042651667E-3i) (list -1/3 0-1i 1.052513729605287263760972225954207976974E1+2.060856958704319103202290360191646176391E1i) (list -1/3 1+1i -6.551697047914203461214675496548324731564E-3+1.282844116207403782948806637317477237465E-2i) (list -1/3 1-1i -3.508379098684290684449078029532994204954E0-6.869523195681063296005826865220406716345E0i) (list -1/3 -1+1i -5.896527343122783769739250113564997536121E-2+1.154559704586663532835802707239006768699E-1i) (list -1/3 -1-1i -3.15754118881586196656166312914556280733E1-6.182570876112957652808497982451530065146E1i) (list -1/3 0.1+0.1i 6.408011144159694212372342969009069525835E-1+1.327666945668531521695779387535105337549E-1i) (list -1/3 1e+16+1e+16i 0.0) (list -1/3 1e-16+1e-16i 9.999999999999995759795057742097793539085E-1+2.042980364921682582587891581219059394882E-16i) (list 0.0 0 0.0) (list 0.0 1 0.0) (list 0.0 2 0.0) (list 0.0 3 0.0) (list 0.0 1/2 0.0) (list 0.0 1/3 0.0) (list 0.0 0.0 0.0) (list 0.0 1.0 0.0) (list 0.0 2.0 0.0) (list 0.0 1.000000000000000000000000000000000000002E-309 0.0) (list 0.0 1e+16 0.0) (list 0.0 +inf.0 0.0) (list 0.0 0+1i 0.0) (list 0.0 0+2i 0.0) (list 0.0 0-1i 0.0) (list 0.0 1+1i 0.0) (list 0.0 1-1i 0.0) (list 0.0 0.1+0.1i 0.0) (list 0.0 1e+16+1e+16i 0.0) (list 0.0 1e-16+1e-16i 0.0) (list 1.0 0 1.0) (list 1.0 1 1.0) (list 1.0 2 1.0) (list 1.0 3 1.0) (list 1.0 -1 1.0) (list 1.0 -2 1.0) (list 1.0 -3 1.0) (list 1.0 1/2 1.0) (list 1.0 1/3 1.0) (list 1.0 -1/2 1.000E0) (list 1.0 -1/3 1.000E0) (list 1.0 0.0 1.000E0) (list 1.0 1.0 1.000E0) (list 1.0 2.0 1.000E0) (list 1.0 -2.0 1.000E0) (list 1.0 1.000000000000000000000000000000000000002E-309 1.000E0) (list 1.0 1e+16 1.000E0) (list 1.0 +inf.0 1.000E0) (list 1.0 -inf.0 1.000E0) (list 1.0 0+1i 1) (list 1.0 0+2i 1) (list 1.0 0-1i 1) (list 1.0 1+1i 1) (list 1.0 1-1i 1) (list 1.0 -1+1i 1) (list 1.0 -1-1i 1) (list 1.0 0.1+0.1i 1) (list 1.0 1e+16+1e+16i 1) (list 1.0 1e-16+1e-16i 1) (list 2.0 0 1.0) (list 2.0 1 2.0) (list 2.0 2 4.000E0) (list 2.0 3 8.000E0) (list 2.0 -1 5.000E-1) (list 2.0 -2 2.500E-1) (list 2.0 -3 1.250E-1) (list 2.0 1/2 1.4142135623731) (list 2.0 1/3 1.2599210498949) (list 2.0 -1/2 7.071067811865475244008443621048490392845E-1) (list 2.0 -1/3 7.937005259840997475556964875637659160371E-1) (list 2.0 0.0 1.000E0) (list 2.0 1.0 2.000E0) (list 2.0 2.0 4.000E0) (list 2.0 -2.0 2.500E-1) (list 2.0 1.000000000000000000000000000000000000002E-309 1.000E0) (list 2.0 -inf.0 0.0) (list 2.0 0+1i 7.692389013639721265783299936612707014395E-1+6.389612763136348011500329114647017842567E-1i) (list 2.0 0+2i 1.83456974743301676839941236809235104518E-1+9.830277404112437205861648503427281526099E-1i) (list 2.0 0-1i 7.692389013639721265783299936612707014395E-1-6.389612763136348011500329114647017842567E-1i) (list 2.0 1+1i 1.538477802727944253156659987322541402879E0+1.277922552627269602300065822929403568513E0i) (list 2.0 1-1i 1.538477802727944253156659987322541402879E0-1.277922552627269602300065822929403568513E0i) (list 2.0 -1+1i 3.846194506819860632891649968306353507197E-1+3.194806381568174005750164557323508921283E-1i) (list 2.0 -1-1i 3.846194506819860632891649968306353507197E-1-3.194806381568174005750164557323508921283E-1i) (list 2.0 0.1+0.1i 1.069199809265204517687304849996528484166E0+7.423020183379063973209835788737470580225E-2i) (list 2.0 1e-16+1e-16i 1.00000000000000006931471805599452949289E0+6.931471805599453429742233135802455373554E-17i) (list -2.0 0 1.0) (list -2.0 1 -2.0) (list -2.0 2 4.000E0) (list -2.0 3 -8.00E0) (list -2.0 -1 -5.00E-1) (list -2.0 -2 2.500E-1) (list -2.0 -3 -1.25E-1) (list -2.0 1/2 0+1.4142135623731i) (list -2.0 1/3 -1.2599210498949) (list -2.0 -1/2 0.0-7.071067811865475244008443621048490392845E-1i) (list -2.0 -1/3 3.968502629920499137351498618341152884837E-1-6.873648184993012989383839761489500939792E-1i) (list -2.0 0.0 1.000E0) (list -2.0 1.0 -2.00E0) (list -2.0 2.0 4.000E0) (list -2.0 -2.0 2.500E-1) (list -2.0 -inf.0 0.0) (list -2.0 0+1i 3.324182700885665525901791766265082328307E-2+2.761202036833300995082465454051316449496E-2i) (list -2.0 0+2i 3.425953940655147934023229852954811989202E-4+1.835748008898304681163796172161682131024E-3i) (list -2.0 0-1i 1.780072097764048857359856955378859222048E1-1.478600649942216768260366593652156810413E1i) (list -2.0 1+1i -6.648365401771331051803583532530164656613E-2-5.522404073666601990164930908102632898992E-2i) (list -2.0 1-1i -3.560144195528097714719713910757718444095E1+2.957201299884433536520733187304313620826E1i) (list -2.0 -1+1i -1.662091350442832762950895883132541164153E-2-1.380601018416650497541232727025658224748E-2i) (list -2.0 -1-1i -8.900360488820244286799284776894296110238E0+7.393003249711083841301832968260784052065E0i) (list -2.0 0.1+0.1i 7.259699150688950609812198701314241029302E-1+2.928900391985359860022641767906842987898E-1i) (list -2.0 1e+16+1e+16i 0.0) (list -2.0 1e-16+1e-16i 9.999999999999997551554526970151686615297E-1+3.834739834149737528810186916384012655492E-16i) (list 1.000000000000000000000000000000000000002E-309 0 1.0) (list 1.000000000000000000000000000000000000002E-309 1 1.000000000000000000000000000000000000002E-309) (list 1.000000000000000000000000000000000000002E-309 2 1.000000000000000000000000000000000000006E-618) (list 1.000000000000000000000000000000000000002E-309 3 1.000000000000000000000000000000000000006E-927) (list 1.000000000000000000000000000000000000002E-309 1/2 3.162277660168379331998893544432718533725E-155) (list 1.000000000000000000000000000000000000002E-309 1/3 1.000000000000000000000000000000000000001E-103) (list 1.000000000000000000000000000000000000002E-309 -1/2 3.162277660168379331998893544432718533715E154) (list 1.000000000000000000000000000000000000002E-309 -1/3 9.999999999999868346276200367559315452517E102) (list 1.000000000000000000000000000000000000002E-309 0.0 1.000E0) (list 1.000000000000000000000000000000000000002E-309 1.0 1.000000000000000000000000000000000000002E-309) (list 1.000000000000000000000000000000000000002E-309 2.0 1.000000000000000000000000000000000000006E-618) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309 1.000E0) (list 1.000000000000000000000000000000000000002E-309 1e+16 0.0) (list 1.000000000000000000000000000000000000002E-309 +inf.0 0.0) (list 1.000000000000000000000000000000000000002E-309 0+1i 7.188026041688456386956035152151008205727E-2-9.974132684912512522858369772702724490842E-1i) (list 1.000000000000000000000000000000000000002E-309 0+2i -9.896664563248017162886921042023427507381E-1-1.433886509648142863446390724753118562651E-1i) (list 1.000000000000000000000000000000000000002E-309 0-1i 7.188026041688456386956035152151008205727E-2+9.974132684912512522858369772702724490842E-1i) (list 1.000000000000000000000000000000000000002E-309 1+1i 7.188026041688456386956035152151008205733E-311-9.974132684912512522858369772702724490883E-310i) (list 1.000000000000000000000000000000000000002E-309 1-1i 7.188026041688456386956035152151008205733E-311+9.974132684912512522858369772702724490883E-310i) (list 1.000000000000000000000000000000000000002E-309 0.1+0.1i -5.63455610426506242496256141630861088283E-32-1.125793483521731083006048050604051624164E-31i) (list 1.000000000000000000000000000000000000002E-309 1e+16+1e+16i 0.0) (list 1.000000000000000000000000000000000000002E-309 1e-16+1e-16i 9.999999999999288501206264839898510340166E-1-7.114987937351094784363111696637191907549E-14i) (list 1e+16 0 1.0) (list 1e+16 1 1e+16) (list 1e+16 2 1.000E32) (list 1e+16 3 1.000E48) (list 1e+16 -1 1.000000000000000000000000000000000000001E-16) (list 1e+16 -2 9.999999999999999999999999999999999999998E-33) (list 1e+16 -3 9.999999999999999999999999999999999999991E-49) (list 1e+16 1/2 100000000.0) (list 1e+16 1/3 215443.46900319) (list 1e+16 -1/2 9.99999999999999999999999999999999999999E-9) (list 1e+16 -1/3 4.641588833612782056591069448235278756067E-6) (list 1e+16 0.0 1.000E0) (list 1e+16 1.0 1.000E16) (list 1e+16 2.0 1.000E32) (list 1e+16 -2.0 9.999999999999999999999999999999999999998E-33) (list 1e+16 1.000000000000000000000000000000000000002E-309 1.000E0) (list 1e+16 -inf.0 0.0) (list 1e+16 0+1i 6.541406923671771082966425998087477095845E-1-7.563728938753623529733450264648351927405E-1i) (list 1e+16 0+2i -1.441999091787803208994630162235380065937E-1-9.895485769747898065837021120946943010267E-1i) (list 1e+16 0-1i 6.541406923671771082966425998087477095845E-1+7.563728938753623529733450264648351927405E-1i) (list 1e+16 1+1i 6.541406923671771082966425998087477095832E15-7.563728938753623529733450264648351927387E15i) (list 1e+16 1-1i 6.541406923671771082966425998087477095832E15+7.563728938753623529733450264648351927387E15i) (list 1e+16 -1+1i 6.541406923671771082966425998087477095825E-17-7.563728938753623529733450264648351927399E-17i) (list 1e+16 -1-1i 6.541406923671771082966425998087477095825E-17+7.563728938753623529733450264648351927399E-17i) (list 1e+16 0.1+0.1i -3.409382666305111714726686098434812471081E1-2.055490637125206804018448749591854294103E1i) (list 1e+16 1e-16+1e-16i 1.000000000000003684136148790473017422188E0+3.684136148790486590281349632497736627823E-15i) (list +inf.0 0 1.0) (list +inf.0 -1 0.0) (list +inf.0 -2 0.0) (list +inf.0 -3 0.0) (list +inf.0 -1/2 0.0) (list +inf.0 -1/3 0.0) (list +inf.0 0.0 1.000E0) (list +inf.0 -2.0 0.0) (list +inf.0 -inf.0 0.0) (list +inf.0 -1+1i 0.0) (list +inf.0 -1-1i 0.0) (list -inf.0 0 1.0) (list -inf.0 -1 0.0) (list -inf.0 -2 0.0) (list -inf.0 -3 0.0) (list -inf.0 -1/2 0.0) (list -inf.0 -1/3 0.0) (list -inf.0 0.0 1.000E0) (list -inf.0 -2.0 0.0) (list -inf.0 -inf.0 0.0) (list -inf.0 -1+1i 0.0) (list -inf.0 -1-1i 0.0) (list 0+1i 0 1.0) (list 0+1i 1 0+1i) (list 0+1i 2 -1.00E0) (list 0+1i 3 0.0-1.00E0i) (list 0+1i -1 0.0-1.00E0i) (list 0+1i -2 -1.00E0) (list 0+1i -3 0.0+1.000E0i) (list 0+1i 1/2 0.70710678118655+0.70710678118655i) (list 0+1i 1/3 8.660254037844386612965085791222353988232E-1+4.999999999999999748284772972087582646907E-1i) (list 0+1i -1/2 7.071067811865475244008443621048490392845E-1-7.071067811865475244008443621048490392845E-1i) (list 0+1i -1/3 8.660254037844386612965085791222353988232E-1-4.999999999999999748284772972087582646907E-1i) (list 0+1i 0.0 1.000E0) (list 0+1i 1.0 0.0+1.000E0i) (list 0+1i 2.0 -1.00E0) (list 0+1i -2.0 -1.00E0) (list 0+1i 1.000000000000000000000000000000000000002E-309 1.000E0+1.570796326794896619231321691639751442098E-309i) (list 0+1i 1e+16 1.000E0) (list 0+1i 0+1i 2.078795763507619085469556198349787700342E-1) (list 0+1i 0+2i 4.321391826377224977441773717172801127579E-2) (list 0+1i 0-1i 4.810477380965351655473035666703833126401E0) (list 0+1i 1+1i 0.0+2.078795763507619085469556198349787700342E-1i) (list 0+1i 1-1i 0.0+4.810477380965351655473035666703833126401E0i) (list 0+1i -1+1i 0.0-2.078795763507619085469556198349787700342E-1i) (list 0+1i -1-1i 0.0-4.810477380965351655473035666703833126401E0i) (list 0+1i 0.1+0.1i 8.441140118165246481415723784169170682829E-1+1.336945253316592796595429310740609657101E-1i) (list 0+1i 1e+16+1e+16i 0.0) (list 0+1i 1e-16+1e-16i 9.999999999999998429203673205103413601794E-1+1.570796326794896339658091828635841709635E-16i) (list 0+2i 0 1.0) (list 0+2i 1 0+2i) (list 0+2i 2 -4.00E0) (list 0+2i 3 0.0-8.00E0i) (list 0+2i -1 0.0-5.00E-1i) (list 0+2i -2 -2.50E-1) (list 0+2i -3 0.0+1.250E-1i) (list 0+2i 1/2 1+1i) (list 0+2i 1/3 1.09112363597172140787570207348670009638E0+6.299605249474365425897267188156853709001E-1i) (list 0+2i -1/2 5.000E-1-5.00E-1i) (list 0+2i -1/3 6.873648184993013335424222440592397343418E-1-3.968502629920498537991974347557662898919E-1i) (list 0+2i 0.0 1.000E0) (list 0+2i 1.0 0.0+2.000E0i) (list 0+2i 2.0 -4.00E0) (list 0+2i -2.0 -2.50E-1) (list 0+2i 1.000000000000000000000000000000000000002E-309 1.000E0+1.570796326794896619231321691639751442098E-309i) (list 0+2i -inf.0 0.0) (list 0+2i 0+1i 1.599090569280680525199117755445296515815E-1+1.328269994246205222492823642245871455648E-1i) (list 0+2i 0+2i 7.927894711475968677072935966913922424434E-3+4.248048042515221109836149914964543748435E-2i) (list 0+2i 0-1i 3.700406335570025108741522919010577122043E0-3.073708767019492322385562434551223151799E0i) (list 0+2i 1+1i -2.656539988492410444985647284491742911296E-1+3.19818113856136105039823551089059303163E-1i) (list 0+2i 1-1i 6.147417534038984644771124869102446303599E0+7.400812671140050217483045838021154244087E0i) (list 0+2i -1+1i 6.641349971231026112464118211229357278239E-2-7.995452846403402625995588777226482579074E-2i) (list 0+2i -1-1i -1.5368543835097461611927812172756115759E0-1.850203167785012554370761459505288561022E0i) (list 0+2i 0.1+0.1i 8.926023688328728424160522546503419745435E-1+2.056049144522835172454080598405456305612E-1i) (list 0+2i 1e+16+1e+16i 0.0) (list 0+2i 1e-16+1e-16i 9.999999999999999122350853765048490772098E-1+2.263943507354841682632315142216062597333E-16i) (list 0-1i 0 1.0) (list 0-1i 1 0-1i) (list 0-1i 2 -1.00E0) (list 0-1i 3 0.0+1.000E0i) (list 0-1i -1 0.0+1.000E0i) (list 0-1i -2 -1.00E0) (list 0-1i -3 0.0-1.00E0i) (list 0-1i 1/2 0.70710678118655-0.70710678118655i) (list 0-1i 1/3 8.660254037844386612965085791222353988232E-1-4.999999999999999748284772972087582646907E-1i) (list 0-1i -1/2 7.071067811865475244008443621048490392845E-1+7.071067811865475244008443621048490392845E-1i) (list 0-1i -1/3 8.660254037844386612965085791222353988232E-1+4.999999999999999748284772972087582646907E-1i) (list 0-1i 0.0 1.000E0) (list 0-1i 1.0 0.0-1.00E0i) (list 0-1i 2.0 -1.00E0) (list 0-1i -2.0 -1.00E0) (list 0-1i 1.000000000000000000000000000000000000002E-309 1.000E0-1.570796326794896619231321691639751442098E-309i) (list 0-1i 1e+16 1.000E0) (list 0-1i 0+1i 4.810477380965351655473035666703833126401E0) (list 0-1i 0+2i 2.314069263277926900572908636794854738031E1) (list 0-1i 0-1i 2.078795763507619085469556198349787700342E-1) (list 0-1i 1+1i 0.0-4.810477380965351655473035666703833126401E0i) (list 0-1i 1-1i 0.0-2.078795763507619085469556198349787700342E-1i) (list 0-1i -1+1i 0.0+4.810477380965351655473035666703833126401E0i) (list 0-1i -1-1i 0.0+2.078795763507619085469556198349787700342E-1i) (list 0-1i 0.1+0.1i 1.15568305287131774105188044357174956096E0-1.830422135215751576397991439148491080012E-1i) (list 0-1i 1e-16+1e-16i 1.000000000000000157079632679489658639818E0-1.570796326794896833138311883103752021701E-16i) (list 1+1i 0 1.0) (list 1+1i 1 1+1i) (list 1+1i 2 0.0+2.000E0i) (list 1+1i 3 -2.00E0+2.000E0i) (list 1+1i -1 5.000E-1-5.00E-1i) (list 1+1i -2 0.0-5.00E-1i) (list 1+1i -3 -2.50E-1-2.50E-1i) (list 1+1i 1/2 1.0986841134678+0.45508986056223i) (list 1+1i 1/3 1.084215081491351179148689172984121435876E0+2.905145555072514268841073782856571173254E-1i) (list 1+1i -1/2 7.768869870150186536720794765315734740815E-1-3.217971264527913123677217187091049044625E-1i) (list 1+1i -1/3 8.605420804595790018414012402960957705697E-1-2.305815555121423995608566442452670487351E-1i) (list 1+1i 0.0 1.000E0) (list 1+1i 1.0 1.000E0+1.000E0i) (list 1+1i 2.0 0.0+2.000E0i) (list 1+1i -2.0 0.0-5.00E-1i) (list 1+1i 1.000000000000000000000000000000000000002E-309 1.000E0+7.853981633974483096156608458198757210488E-310i) (list 1+1i -inf.0 0.0) (list 1+1i 0+1i 4.288290062943678493226520070973354996125E-1+1.548717524642467781923098896798325813036E-1i) (list 1+1i 0+2i 1.599090569280680525199117755445296515815E-1+1.328269994246205222492823642245871455648E-1i) (list 1+1i 0-1i 2.062872235080904951706990637170143171029E0-7.450070621797240878593548325920103204625E-1i) (list 1+1i 1+1i 2.739572538301210711303421174175029183081E-1+5.837007587586146275149618967771680809154E-1i) (list 1+1i 1-1i 2.807879297260629039566345469762153491497E0+1.317865172901180863847635804578132850572E0i) (list 1+1i -1+1i 2.918503793793073137574809483885840404577E-1-1.369786269150605355651710587087514591541E-1i) (list 1+1i -1-1i 6.589325864505904319238179022890664252861E-1-1.403939648630314519783172734881076745749E0i) (list 1+1i 0.1+0.1i 9.509412581367732262071184402582209392577E-1+1.08106001655210286400223506650660553711E-1i) (list 1+1i 1e+16+1e+16i 0.0) (list 1+1i 1e-16+1e-16i 9.99999999999999956117542688252429982572E-1+1.131971753677420890989859729961488955736E-16i) (list 1-1i 0 1.0) (list 1-1i 1 1-1i) (list 1-1i 2 0.0-2.00E0i) (list 1-1i 3 -2.00E0-2.00E0i) (list 1-1i -1 5.000E-1+5.000E-1i) (list 1-1i -2 0.0+5.000E-1i) (list 1-1i -3 -2.50E-1+2.500E-1i) (list 1-1i 1/2 1.0986841134678-0.45508986056223i) (list 1-1i 1/3 1.084215081491351179148689172984121435876E0-2.905145555072514268841073782856571173254E-1i) (list 1-1i -1/2 7.768869870150186536720794765315734740815E-1+3.217971264527913123677217187091049044625E-1i) (list 1-1i -1/3 8.605420804595790018414012402960957705697E-1+2.305815555121423995608566442452670487351E-1i) (list 1-1i 0.0 1.000E0) (list 1-1i 1.0 1.000E0-1.00E0i) (list 1-1i 2.0 0.0-2.00E0i) (list 1-1i -2.0 0.0+5.000E-1i) (list 1-1i 1.000000000000000000000000000000000000002E-309 1.000E0-7.853981633974483096156608458198757210488E-310i) (list 1-1i -inf.0 0.0) (list 1-1i 0+1i 2.062872235080904951706990637170143171029E0+7.450070621797240878593548325920103204625E-1i) (list 1-1i 0+2i 3.700406335570025108741522919010577122043E0+3.073708767019492322385562434551223151799E0i) (list 1-1i 0-1i 4.288290062943678493226520070973354996125E-1-1.548717524642467781923098896798325813036E-1i) (list 1-1i 1+1i 2.807879297260629039566345469762153491497E0-1.317865172901180863847635804578132850572E0i) (list 1-1i 1-1i 2.739572538301210711303421174175029183081E-1-5.837007587586146275149618967771680809154E-1i) (list 1-1i -1+1i 6.589325864505904319238179022890664252861E-1+1.403939648630314519783172734881076745749E0i) (list 1-1i -1-1i 2.918503793793073137574809483885840404577E-1+1.369786269150605355651710587087514591541E-1i) (list 1-1i 0.1+0.1i 1.118774658142734663065880800594211744947E0-4.912611879174141197780391086654035970153E-2i) (list 1-1i 1e-16+1e-16i 1.000000000000000113197175367742099510321E0-4.388245731174756954083421259082963337401E-17i) (list -1+1i 0 1.0) (list -1+1i 1 -1+1i) (list -1+1i 2 0.0-2.00E0i) (list -1+1i 3 2.000E0+2.000E0i) (list -1+1i -1 -5.00E-1-5.00E-1i) (list -1+1i -2 0.0+5.000E-1i) (list -1+1i -3 2.500E-1-2.50E-1i) (list -1+1i 1/2 0.45508986056223+1.0986841134678i) (list -1+1i 1/3 7.937005259840997668899692535826356354889E-1+7.937005259840996976818927177620594283082E-1i) (list -1+1i -1/2 3.217971264527913123677217187091049044625E-1-7.768869870150186536720794765315734740815E-1i) (list -1+1i -1/3 6.299605249474366138887223148884515164688E-1-6.299605249474365589582355660598282273075E-1i) (list -1+1i 0.0 1.000E0) (list -1+1i 1.0 -1.00E0+1.000E0i) (list -1+1i 2.0 0.0-2.00E0i) (list -1+1i -2.0 0.0+5.000E-1i) (list -1+1i 1.000000000000000000000000000000000000002E-309 1.000E0+2.35619449019234492884698253745962716315E-309i) (list -1+1i -inf.0 0.0) (list -1+1i 0+1i 8.914479215539140039333169785416699948907E-2+3.219467429096768688435430339284927790439E-2i) (list -1+1i 0+2i 6.910296915726436425237112293342453374671E-3+5.7399750963576748986151091014202337188E-3i) (list -1+1i 0-1i 9.923400226678132867281183645053121674554E0-3.583839621275010020102858511593195855531E0i) (list -1+1i 1+1i -1.213394664463590872776860012470162773935E-1+5.695011786442371350897739446131772158468E-2i) (list -1+1i 1-1i -6.339560605403122847178325133459925819034E0+1.350723984795314288738404215664631753007E1i) (list -1+1i -1+1i -2.847505893221185675448869723065886079234E-2-6.066973322317954363884300062350813869673E-2i) (list -1+1i -1-1i -6.753619923976571443692021078323158765037E0-3.169780302701561423589162566729962909517E0i) (list -1+1i 0.1+0.1i 7.882496598308880991233017323974702727041E-1+2.1838943088351018304792416348997040808E-1i) (list -1+1i 1e+16+1e+16i 0.0) (list -1+1i 1e-16+1e-16i 9.999999999999997990379100087627604548201E-1+2.702768080472316983907841531363385588262E-16i) (list -1-1i 0 1.0) (list -1-1i 1 -1-1i) (list -1-1i 2 0.0+2.000E0i) (list -1-1i 3 2.000E0-2.00E0i) (list -1-1i -1 -5.00E-1+5.000E-1i) (list -1-1i -2 0.0-5.00E-1i) (list -1-1i -3 2.500E-1+2.500E-1i) (list -1-1i 1/2 0.45508986056223-1.0986841134678i) (list -1-1i 1/3 7.937005259840997668899692535826356354889E-1-7.937005259840996976818927177620594283082E-1i) (list -1-1i -1/2 3.217971264527913123677217187091049044625E-1+7.768869870150186536720794765315734740815E-1i) (list -1-1i -1/3 6.299605249474366138887223148884515164688E-1+6.299605249474365589582355660598282273075E-1i) (list -1-1i 0.0 1.000E0) (list -1-1i 1.0 -1.00E0-1.00E0i) (list -1-1i 2.0 0.0+2.000E0i) (list -1-1i -2.0 0.0-5.00E-1i) (list -1-1i 1.000000000000000000000000000000000000002E-309 1.000E0-2.35619449019234492884698253745962716315E-309i) (list -1-1i -inf.0 0.0) (list -1-1i 0+1i 9.923400226678132867281183645053121674554E0+3.583839621275010020102858511593195855531E0i) (list -1-1i 0+2i 8.562996562781501151982322359385576132148E1+7.112774982027701655978420905114385775416E1i) (list -1-1i 0-1i 8.914479215539140039333169785416699948907E-2-3.219467429096768688435430339284927790439E-2i) (list -1-1i 1+1i -6.339560605403122847178325133459925819034E0-1.350723984795314288738404215664631753007E1i) (list -1-1i 1-1i -1.213394664463590872776860012470162773935E-1-5.695011786442371350897739446131772158468E-2i) (list -1-1i -1+1i -6.753619923976571443692021078323158765037E0+3.169780302701561423589162566729962909517E0i) (list -1-1i -1-1i -2.847505893221185675448869723065886079234E-2+6.066973322317954363884300062350813869673E-2i) (list -1-1i 0.1+0.1i 1.283956758872096257591990187677552600208E0-2.615572127992484175251616566885584992446E-1i) (list -1-1i 1e-16+1e-16i 1.000000000000000270276808047231769038073E0-2.009620899912372775286764036246047795846E-16i) (list 0.1+0.1i 0 1.0) (list 0.1+0.1i 1 0.1+0.1i) (list 0.1+0.1i 2 0.0+2.000000000000000222044604925031314247702E-2i) (list 0.1+0.1i 3 -2.000000000000000333066907387546980616012E-3+2.000000000000000333066907387546980616012E-3i) (list 0.1+0.1i -1 4.999999999999999722444243843710880301532E0-4.999999999999999722444243843710880301532E0i) (list 0.1+0.1i -2 0.0-4.999999999999999444888487687421776010503E1i) (list 0.1+0.1i -3 -2.499999999999999583666365765566343563457E2-2.499999999999999583666365765566343563457E2i) (list 0.1+0.1i 1/2 0.34743442276012+0.14391204994251i) (list 0.1+0.1i 1/3 5.032480615484825043523903544407412355396E-1+1.348449116844438143505188591437346924604E-1i) (list 0.1+0.1i -1/2 2.45673236351311521671469493547019420871E0-1.017611864088040968689409531603674348818E0i) (list 0.1+0.1i -1/3 1.853981710374325315321217484547221353494E0-4.967729020768720696346827580207236635648E-1i) (list 0.1+0.1i 0.0 1.000E0) (list 0.1+0.1i 1.0 1.000000000000000055511151231257827021182E-1+1.000000000000000055511151231257827021182E-1i) (list 0.1+0.1i 2.0 0.0+2.000000000000000222044604925031314247702E-2i) (list 0.1+0.1i -2.0 0.0-4.999999999999999444888487687421776010503E1i) (list 0.1+0.1i 1.000000000000000000000000000000000000002E-309 1.000E0+7.853981633974483096156608458198757210488E-310i) (list 0.1+0.1i 1e+16 0.0) (list 0.1+0.1i +inf.0 0.0) (list 0.1+0.1i 0+1i -1.713226510357599956083331913106303247236E-1-4.22525887482460786856087271691853977193E-1i) (list 0.1+0.1i 0+2i -1.491766748349203175549260651566533449245E-1+1.447765103494648437770214174856742113327E-1i) (list 0.1+0.1i 0-1i -8.241437376545436347801862567004657850891E-1+2.032551224606688826869616254728598600103E0i) (list 0.1+0.1i 1+1i 2.512032364467008051923349285554493285946E-2-5.938485385182208154296364931488770060654E-2i) (list 0.1+0.1i 1-1i -2.856694962261232620228228583084710444815E-1+1.208407486952145259169520755212883935691E-1i) (list 0.1+0.1i -1+1i -2.969242692591103747496022164280467138525E0-1.256016182233503886515866161034993752114E0i) (list 0.1+0.1i -1-1i 6.042037434760725625046696204216927090118E0+1.428347481130616151535688219886713564214E1i) (list 0.1+0.1i 0.1+0.1i 7.550220306566742029451631510549876832316E-1-8.878982993466537268563019824356751882119E-2i) (list 0.1+0.1i 1e+16+1e+16i 0.0) (list 0.1+0.1i 1e-16+1e-16i 9.999999999999997258590333888479081137213E-1-1.170613339316624318801081266623392933101E-16i) (list 1e+16+1e+16i 0 1.0) (list 1e+16+1e+16i 1 1e+16+1e+16i) (list 1e+16+1e+16i 2 0.0+2.000E32i) (list 1e+16+1e+16i 3 -2.00E48+2.000E48i) (list 1e+16+1e+16i -1 5.000000000000000000000000000000000000004E-17-5.000000000000000000000000000000000000004E-17i) (list 1e+16+1e+16i -2 0.0-4.999999999999999999999999999999999999999E-33i) (list 1e+16+1e+16i -3 -2.499999999999999999999999999999999999998E-49-2.499999999999999999999999999999999999998E-49i) (list 1e+16+1e+16i 1/2 109868411.34678+45508986.056223i) (list 1e+16+1e+16i 1/3 2.335870583020711134947889498537726801442E5+6.258946363440152792122310286091229534238E4i) (list 1e+16+1e+16i -1/2 7.76886987015018653672079476531573474081E-9-3.217971264527913123677217187091049044617E-9i) (list 1e+16+1e+16i -1/3 3.994282511515094148675512812353991597295E-6-1.070264773302225997506194769200154785053E-6i) (list 1e+16+1e+16i 0.0 1.000E0) (list 1e+16+1e+16i 1.0 1.000E16+1.000E16i) (list 1e+16+1e+16i 2.0 0.0+2.000E32i) (list 1e+16+1e+16i -2.0 0.0-4.999999999999999999999999999999999999999E-33i) (list 1e+16+1e+16i 1.000000000000000000000000000000000000002E-309 1.000E0+7.853981633974483096156608458198757210488E-310i) (list 1e+16+1e+16i -inf.0 0.0) (list 1e+16+1e+16i 0+1i 3.97655298675457451476815297378330384373E-1-2.23046721083486532799277949440696753733E-1i) (list 1e+16+1e+16i 0+2i 1.083798967785726369788640263558841648425E-1-1.773914209820705797251910148995630479122E-1i) (list 1e+16+1e+16i 0-1i 1.912911819699309232365644880468914363155E0+1.072961206670599579011330828139081101248E0i) (list 1e+16+1e+16i 1+1i 6.207020197589439842760932468190271381067E15+1.746085775919709186775373479376336306396E15i) (list 1e+16+1e+16i 1-1i 8.39950613028709653354314052329833261908E15+2.985873026369908811376975708607995464407E16i) (list 1e+16+1e+16i -1+1i 8.730428879598545933876867396881681532013E-18-3.103510098794719921380466234095135690525E-17i) (list 1e+16+1e+16i -1-1i 1.492936513184954405688487854303997732202E-16-4.19975306514354826677157026164916630953E-17i) (list 1e+16+1e+16i 0.1+0.1i -3.019911767946562559553699791129052056384E1-2.323225580723027414176687762549620584343E1i) (list 1e+16+1e+16i 1e-16+1e-16i 1.000000000000003640253691478724868702006E0+3.797333324158228934745194038802400084708E-15i) (list 1e-16+1e-16i 0 1.0) (list 1e-16+1e-16i 1 1e-16+1e-16i) (list 1e-16+1e-16i 2 0.0+1.999999999999999916391146896138415121169E-32i) (list 1e-16+1e-16i 3 -1.999999999999999874586720344207623992465E-48+1.999999999999999874586720344207623992465E-48i) (list 1e-16+1e-16i -1 5.000000000000000104511066379826984375319E15-5.000000000000000104511066379826984375319E15i) (list 1e-16+1e-16i -2 0.0-5.00000000000000020902213275965397093513E31i) (list 1e-16+1e-16i -3 -2.500000000000000156766599569740479839725E47-2.500000000000000156766599569740479839725E47i) (list 1e-16+1e-16i 1/2 1.0986841134678e-08+4.5508986056223e-09i) (list 1e-16+1e-16i 1/3 5.032480615484828131577934532998162284517E-6+1.348449116844438970946772378503363059943E-6i) (list 1e-16+1e-16i -1/2 7.768869870150186617914082234866133300043E7-3.217971264527913157308578030636299721171E7i) (list 1e-16+1e-16i -1/3 1.853981710374324177672385518009559821262E5-4.967729020768717648025969623769604859166E4i) (list 1e-16+1e-16i 0.0 1.000E0) (list 1e-16+1e-16i 1.0 9.999999999999999790977867240346035618411E-17+9.999999999999999790977867240346035618411E-17i) (list 1e-16+1e-16i 2.0 0.0+1.999999999999999916391146896138415121169E-32i) (list 1e-16+1e-16i -2.0 0.0-5.00000000000000020902213275965397093513E31i) (list 1e-16+1e-16i 1.000000000000000000000000000000000000002E-309 1.000E0+7.853981633974483096156608458198757210488E-310i) (list 1e-16+1e-16i 1e+16 0.0) (list 1e-16+1e-16i +inf.0 0.0) (list 1e-16+1e-16i 0+1i 1.633737074935952277071942452600366041402E-1+4.256625518536474393286932017574035701805E-1i) (list 1e-16+1e-16i 0+2i -1.544976397503562816275493845355474590488E-1+1.390841384750302156856253710476447606724E-1i) (list 1e-16+1e-16i 0-1i 7.859055245423894167511168257029299588438E-1-2.047640077615962126490396474363177248838E0i) (list 1e-16+1e-16i 1+1i -2.622888443600522061390815917770620324788E-17+5.890362593472426547237259268645081580369E-17i) (list 1e-16+1e-16i 1-1i 2.833545602158351484014138796578448096738E-16-1.26173455307357268336623492266154970137E-16i) (list 1e-16+1e-16i -1+1i 2.945181296736213396740244835851862239781E15+1.311444221800261085519581606088360070987E15i) (list 1e-16+1e-16i -1-1i -6.308672765367863680561621873294727149409E15-1.416772801079175801234443901776883778303E16i) (list 1e-16+1e-16i 0.1+0.1i -2.185846675892145203322615268234771243738E-2+1.000746379588156995072970612624735653063E-2i) (list 1e-16+1e-16i 1e+16+1e+16i 0.0) (list 1e-16+1e-16i 1e-16+1e-16i 9.999999999999962719813938977799891729155E-1-3.570938973422717612919117771011138615376E-15i) )) ;; there's a difference here between gmp/non-gmp: ; (s7-test (expt 0 (real-part (log 0))) (expt 0.0 (real-part (log 0)))) ; (num-test (expt 1.0 (/ (real-part (log 0)) (real-part (log 0)))) (expt 1 (/ (real-part (log 0)) (real-part (log 0))))) ; (num-test (expt 0.0 (/ (real-part (log 0)) (real-part (log 0)))) (expt 0 (/ (real-part (log 0)) (real-part (log 0))))) #;(let ((eps 1e-7)) (do ((i 0 (+ i 1))) ((= i 1000)) (let ((val (- (random 1000.0) 500.0))) (let ((rval (rationalize val)) (ival (floor val))) (let ((frval (exact->inexact rval)) (fival (exact->inexact ival))) (for-each (lambda (e) (if (> (magnitude (- (expt rval e) (expt frval e))) eps) (format #t "~A: ;(expt ~A e) != (expt ~A e) -> ~A~%" e rval frval (magnitude (- (expt rval e) (expt frval e))))) (if (> (magnitude (- (expt ival e) (expt fival e))) eps) (format #t "~A ;(expt ~A e) != (expt ~A e) -> ~A~%" e ival fival (magnitude (- (expt ival e) (expt fival e)))))) (list 0 0.0 (log 0) (real-part (log 0)) (- (real-part (log 0)))))))))) ;; table[(1/10^k)/(((1/10^k)^(1/10^k)) - 1), {k, 1, 30}] ;; the test came from calc_errors.txt from the web by "dave" (let ((expts (list -0.48621160938616180680870317336747983548142173621715706851490974881717 -0.22218561601345857583044966876729715619642038672598556073380084629504 -0.14526540294689938889864991134840220307566223888497162784858064408875 -0.10862362815109649171007844591526444220973735508130191198062253212652 -0.08686389647659141105044978528770239308857034812798554177686261943193 -0.07238291365169326382168151357331039782973682143307349669152489742891 -0.06204211884333512141082278643490234288550259196615819050849846987015 -0.05428681523790663196206398113420109019962541643547760927657854324749 -0.04825494293369464924373092184737925979664303236414611590980578553450 -0.04342944824032518278430110099994422226122739720915846151097610557365 -0.03948131654165925705940460838351885560840418164027583205682137097699 -0.03619120682577098563759637916147675090355043511246085981138602579761 -0.03340726783876167905008686486133377017608955166698061593202699553920 -0.03102103442166584483222349447696386196557178259759899539894506586562 -0.02895296546021728851007526126398523685253569082526692705926181546848 -0.02714340511895328922819555743231851877797306680518273360154914602559 -0.02554673422960305368536052464215356633451937057629542604571806752914 -0.02412747121684732425839605105092250802578858425793889081112350331353 -0.02285760431069746466321731152192658331511007129540571803806313398860 -0.02171472409516259138755644594583025411510361447234900258639235440074 -0.02068068961444056322198232947221928963307055360980162368063530687389 -0.01974065826832962852964676904166386737701808793240851850210059107980 -0.01888236877840225337614103995289587314323465286757518193028428290776 -0.01809560341263549281879753828819187842893320857975794377409033233328 -0.01737177927613007310604520675666420329177588023219463316734886061171 -0.01670363391935583952504342495833096470363065406937228989783888395986 -0.01608498081123154917226403453394833638127396317791358170357400676126 -0.01551051721083042241611174715416446722479989306441666312924319204483 -0.01497567178976730440176306617453810628601368985529884710795141610434 -0.01447648273010839425503763063105350274314656686012221887048754923492))) (let ((happy #t)) (do ((i 1 (+ i 1))) ((or (= i (length expts)) (not happy))) (handle-exceptions exn (printf "expt not accurate below around 2^~A\n" (/ (log (expt .1 i)) (log 2))) (let ((val (/ (expt .1 i) (- (expt (expt .1 i) (expt .1 i)) 1)))) (if (> (abs (- val (list-ref expts (- i 1)))) 1e-6) (begin (set! happy #f) (display "expt error > 1e-6 around 2^") (display (/ (log (expt .1 i)) (log 2))) (newline)))))))) (s7-test (expt) 'error) (s7-test (expt 1) 'error) (s7-test (expt 1.0+23.0i) 'error) (s7-test (expt "hi" "hi") 'error) (s7-test (expt 1.0+23.0i 1.0+23.0i 1.0+23.0i) 'error) (s7-test (expt #t 0) 'error) (s7-test (expt 0 -1) 'error) (s7-test (expt 0 -1/4) 'error) ;; "Division by zero" in s7. It's an inexact though so infinity is okay too ;(s7-test (expt 0.0 -1.0) 'error) ;(s7-test (expt 0.0 -0.1) 'error) (s7-test (expt 0 -1.0) 'error) (s7-test (expt 0 -1.0+i) 'error) (test-end "expt") (test-begin "various log, exp and trig tests") (let ((f= (lambda (a b) (< (abs (- a b)) 1.0e-15)))) (let ((log2 0.69314718055994530941723212145817656807550013436025525412068000949339362196969471560586332699641868754200148102057068573368552023575813055703267075163507596193072757082837143519030703862389167347112335011536449795523912047517268157493206515552473413952588295045300709532636664265410423915781495204374043038550080194417064167151864471283996817178454695702627163106454615025720740248163777338963855069526066834113727387372292895649354702576265209885969320196505855476470330679365443254763274495125040606943814710468994650622016772042452452961268794654619316517468139267250410380254625965686914419287160829380317271436778265487756648508567407764845146443994046142260319309673540257444607030809608504748663852313818167675143866747664789088143714198549423151997354880375165861275352916610007105355824987941472950929311389715599820565439287170007218085761025236889213244971389320378439353088774825970171559107088236836275898425891853530243634214367061189236789192372314672321720534016492568727477823445353476481149418642386776774406069562657379600867076257199184734022651462837904883062033061144630073719489002743643965002580936519443041191150608094879306786515887090060520346842973619384128965255653968602219412292420757432175748909770675268711581705113700915894266547859596489065305846025866838294002283300538207400567705304678700184162404418833232798386349001563121889560650553151272199398332030751408426091479001265168243443893572472788205486271552741877243002489794540196187233980860831664811490930667519339312890431641370681397776498176974868903887789991296503619270710889264105230924783917373501229842420499568935992206602204654941510613918788574424557751020683703086661948089641218680779020818158858000168811597305618667619918739520076671921459223672060253959543654165531129517598994005600036651356756905124592682574394648316833262490180382424082423145230614096380570070255138770268178516306902551370323405380214501901537402950994226299577964742713815736380172987394070424217997226696297993931270694) (log3 1.09861228866810969139524523692252570464749055782274945173469433363749429321860896687361575481373208878797002906595786574236800422593051982105280187076727741060316276918338136717937369884436095990374257031679591152114559191775067134705494016677558022220317025294689756069010652150564286813803631737329857778236699165479213181814902003010382363012224865274819822599109745249089645805346700884596508574844411901885708764749486707961308582941160216612118400140982551439194876889367984943022557315353296853452952514592138764946859325627944165569415782723103551688661021184698904399430631382552857364668828249881368228006341439107868932514564375102044516275619349739821169415857405353617589009751222337977369696877543547951357129821770175812421223514058101632724655889372495649191852429607966842346470693772372526550820320783339280558928531468730951326064583091843974968222303257654675333118230196492752575991322178513533902374829643395025460742458249346668661218814365265654295427676105054777954229339733234011737431939745798470185595484940594783539438410106029307622922281312074893063445340252777326856271480016818715472439782071878034446780216178158419042820076721243255738014364178876826161041016818724240687908909929874208152183237528942752732534071002835750695062403965462752244308462588450859786253083224774538885068003488324340490083990058080943565282122370388702036804548600776214244088697259413584365999226211739670804950952792714363154640444623089158185367119608370304853520909672629582415040355995121355450332241748474100331981487832452569334704949937301656336660991903957122822844881674312150628569993874038819012744839564791034772885972119850649422796985791669956418551265041502191554719665856929726606523573293736830027830921776605387030462007661584946700226011756797518003934791763277844935142634968360037557857160700498181519184373438290934746660457750659273670121115370582496479847930404205823964753857850960626093389914706120130243108260518262958640076003059494321166880446106134684533980)) (test-assert (sprintf "(- (log 3.0) true-log-3) = ~A (should be close to zero)" (- log3 (log 3.0))) (f= log3 (log 3.0))) (test-assert (sprintf "(- (log 2.0) true-log-2) = ~A (should be close to zero)" (- log2 (log 2.0))) (f= log2 (log 2.0))) (test-assert (sprintf "(- 3.0 (exp log3)) = ~A (should be close to zero)" (- 3.0 (exp log3))) (f= 3.0 (exp log3))) (test-assert (sprintf "(- 2.0 (exp log2)) = ~A (should be close to zero)" (- 2.0 (exp log2))) (f= 2.0 (exp log2)))) (let ((sin1 8.414709848078965066525023216302989996225630607983710656727517099919104043912396689486397435430526959e-1) (cos1 5.403023058681397174009366074429766037323104206179222276700972553811003947744717645179518560871830894e-1) (tan1 1.557407724654902230506974807458360173087250772381520038383946605698861397151727289555099965202242984e0)) (test-assert (sprintf "(- (sin 1) true-sin-1) = ~A (should be close to zero)" (- sin1 (sin 1))) (f= sin1 (sin 1))) (test-assert (sprintf "(- (asin (sin 1)) 1) = ~A (should be close to zero)" (- (asin sin1) 1)) (f= (asin sin1) 1.0)) (test-assert (sprintf "(- (cos 1) true-cos-1) = ~A (should be close to zero)" (- cos1 (cos 1))) (f= cos1 (cos 1))) (test-assert (sprintf "(- (acos (cos 1)) 1) = ~A (should be close to zero)" (- (acos cos1) 1)) (f= (acos cos1) 1.0)) (test-assert (sprintf "(- (tan 1) true-tan-1) = ~A (should be close to zero)" (- tan1 (tan 1))) (f= tan1 (tan 1))) (test-assert (sprintf "(- (atan (tan 1)) 1) = ~A (should be close to zero)" (- (atan tan1) 1)) (f= (atan tan1) 1.0)) (set! sin1 -.3056143888882523) (set! cos1 -.9521553682590148) (set! tan1 .3209711346238149) (test-assert (sprintf "(- (sin 10000) true-sin-10000) = ~A (should be close to zero)" (- sin1 (sin 10000))) (f= sin1 (sin 10000))) (test-assert (sprintf "(- (cos 10000) true-cos-10000) = ~A (should be close to zero)" (- cos1 (cos 10000))) (f= cos1 (cos 10000))) (test-assert (sprintf "(- (tan 10000) true-tan-10000) = ~A (should be close to zero)" (- tan1 (tan 10000))) (f= tan1 (tan 10000))) ) ;; We don't have these #;(let ((sinh1 1.175201193643801456882381850595600815155717981334095870229565413013307567304323895607117452089623392e0) (cosh1 1.543080634815243778477905620757061682601529112365863704737402214710769063049223698964264726435543036e0) (tanh1 7.615941559557648881194582826047935904127685972579365515968105001219532445766384834589475216736767144e-1)) (if (not (f= sinh1 (sinh 1))) (begin (display "(- (sinh 1) true-sinh-1) = ") (display (- sinh1 (sinh 1))) (newline))) (if (not (f= (asinh sinh1) 1.0)) (begin (display "(- (asinh (sinh 1)) 1) = ") (display (- (asinh sinh1) 1)) (newline))) (if (not (f= cosh1 (cosh 1))) (begin (display "(- (cosh 1) true-cosh-1) = ") (display (- cosh1 (cosh 1))) (newline))) (if (not (f= (acosh cosh1) 1.0)) (begin (display "(- (acosh (cosh 1)) 1) = ") (display (- (acosh cosh1) 1)) (newline))) (if (not (f= tanh1 (tanh 1))) (begin (display "(- (tanh 1) true-tanh-1) = ") (display (- tanh1 (tanh 1))) (newline))) (if (not (f= (atanh tanh1) 1.0)) (begin (display "(- (atanh (tanh 1)) 1) = ") (display (- (atanh tanh1) 1)) (newline))) )) (test-end "various log, exp and trig tests") ;;; -------------------------------------------------------------------------------- ;;; * ;;; -------------------------------------------------------------------------------- (test-begin "*") (num-test (* -0.0) 0.0) (num-test (* -0.0+0.00000001i) -0.0+0.00000001i) (num-test (* -1.0) -1.0) (num-test (* -1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (* -1.0+1.0i 0) 0.0) (num-test (* -1.0+1.0i 0.0) 0.0) (num-test (* -1.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (* -1.0+1.0i 1) -1.0+1.0i) (num-test (* -1.0+1.0i 1.0) -1.0+1.0i) (num-test (* -1.0+1.0i 1.0+1.0i) -2.0) (num-test (* -1.0+1.0i 1.234+1.234i) -2.468) (num-test (* -1.0+1.0i 1/1) -1.0+1.0i) (num-test (* -1.0+1.0i 123.4) -123.4+123.4i) (num-test (* -1.0+1.0i 1234) -1234.0+1234.0i) (num-test (* -1.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (* -1.0+1.0i) -1.0+1.0i) (num-test (* -10) -10) (num-test (* -10/3) -10/3) (num-test (* -1234000000) -1234000000) (num-test (* -1234000000.0) -1234000000.0) (num-test (* -1234000000.0+2.71828182845905i) -1234000000.0+2.71828182845905i) (num-test (* -1234000000/10) -1234000000/10) (num-test (* -2) -2) (num-test (* -2.71828182845905) -2.71828182845905) (num-test (* -2.71828182845905+3.14159265358979i) -2.71828182845905+3.14159265358979i) (num-test (* -2/2) -2/2) (num-test (* -362880) -362880) (num-test (* -362880/1234) -362880/1234) (num-test (* 0 -1.0+1.0i) 0.0) (num-test (* 0 0) 0) (num-test (* 0 0.0) 0.0) (num-test (* 0 0.0+1.0i) 0.0) (num-test (* 0 1 -1.0+1.0i) 0.0) (num-test (* 0 1 0) 0) (num-test (* 0 1 0.0) 0.0) (num-test (* 0 1 0.0+1.0i) 0.0) (num-test (* 0 1 1) 0) (num-test (* 0 1 1.0) 0.0) (num-test (* 0 1 1.0+1.0i) 0.0) (num-test (* 0 1 1.234+1.234i) 0.0) (num-test (* 0 1 1/1) 0) (num-test (* 0 1 123.4) 0.0) (num-test (* 0 1 1234) 0) (num-test (* 0 1 1234/11) 0) (num-test (* 0 1) 0) (num-test (* 0 1.0 -1.0+1.0i) 0.0) (num-test (* 0 1.0 0) 0.0) (num-test (* 0 1.0 0.0) 0.0) (num-test (* 0 1.0 0.0+1.0i) 0.0) (num-test (* 0 1.0 1) 0.0) (num-test (* 0 1.0 1.0) 0.0) (num-test (* 0 1.0 1.0+1.0i) 0.0) (num-test (* 0 1.0 1.234+1.234i) 0.0) (num-test (* 0 1.0 1/1) 0.0) (num-test (* 0 1.0 123.4) 0.0) (num-test (* 0 1.0 1234) 0.0) (num-test (* 0 1.0 1234/11) 0.0) (num-test (* 0 1.0) 0.0) (num-test (* 0 1.0+1.0i -1.0+1.0i) 0.0) (num-test (* 0 1.0+1.0i 0) 0.0) (num-test (* 0 1.0+1.0i 0.0) 0.0) (num-test (* 0 1.0+1.0i 0.0+1.0i) 0.0) (num-test (* 0 1.0+1.0i 1) 0.0) (num-test (* 0 1.0+1.0i 1.0) 0.0) (num-test (* 0 1.0+1.0i 1.0+1.0i) 0.0) (num-test (* 0 1.0+1.0i 1.234+1.234i) 0.0) (num-test (* 0 1.0+1.0i 1/1) 0.0) (num-test (* 0 1.0+1.0i 123.4) 0.0) (num-test (* 0 1.0+1.0i 1234) 0.0) (num-test (* 0 1.0+1.0i 1234/11) 0.0) (num-test (* 0 1.0+1.0i) 0.0) (num-test (* 0 1.234+1.234i) 0.0) (num-test (* 0 1/1 -1.0+1.0i) 0.0) (num-test (* 0 123.4) 0.0) (num-test (* 0 1234) 0) (num-test (* 0 1234/11) 0) (num-test (* 0) 0) (num-test (* 0) 0) (num-test (* 0.0 -1.0+1.0i -1.0+1.0i) 0.0) (num-test (* 0.0 -1.0+1.0i 0) 0.0) (num-test (* 0.0 -1.0+1.0i 0.0) 0.0) (num-test (* 0.0 -1.0+1.0i 0.0+1.0i) 0.0) (num-test (* 0.0 -1.0+1.0i 1) 0.0) (num-test (* 0.0 -1.0+1.0i 1.0) 0.0) (num-test (* 0.0 -1.0+1.0i 1.0+1.0i) 0.0) (num-test (* 0.0 -1.0+1.0i 1.234+1.234i) 0.0) (num-test (* 0.0 -1.0+1.0i 1/1) 0.0) (num-test (* 0.0 -1.0+1.0i 123.4) 0.0) (num-test (* 0.0 -1.0+1.0i 1234) 0.0) (num-test (* 0.0 -1.0+1.0i 1234/11) 0.0) (num-test (* 0.0 -1.0+1.0i) 0.0) (num-test (* 0.0 0 -1.0+1.0i) 0.0) (num-test (* 0.0 0 0) 0.0) (num-test (* 0.0 0 0.0) 0.0) (num-test (* 0.0 0 0.0+1.0i) 0.0) (num-test (* 0.0 0 1) 0.0) (num-test (* 0.0 0 1.0) 0.0) (num-test (* 0.0 0 1.0+1.0i) 0.0) (num-test (* 0.0 0 1.234+1.234i) 0.0) (num-test (* 0.0 0 1/1) 0.0) (num-test (* 0.0 0 123.4) 0.0) (num-test (* 0.0 0 1234) 0.0) (num-test (* 0.0 0 1234/11) 0.0) (num-test (* 0.0 0) 0.0) (num-test (* 0.0 0.0 -1.0+1.0i) 0.0) (num-test (* 0.0 0.0 0) 0.0) (num-test (* 0.0 0.0 0.0) 0.0) (num-test (* 0.0 0.0 0.0+1.0i) 0.0) (num-test (* 0.0 0.0 1) 0.0) (num-test (* 0.0 0.0 1.0) 0.0) (num-test (* 0.0 0.0 1.0+1.0i) 0.0) (num-test (* 0.0 0.0 1.234+1.234i) 0.0) (num-test (* 0.0 0.0 1/1) 0.0) (num-test (* 0.0 0.0 123.4) 0.0) (num-test (* 0.0 0.0 1234) 0.0) (num-test (* 0.0 0.0 1234/11) 0.0) (num-test (* 0.0 0.0) 0.0) (num-test (* 0.0 0.0+1.0i -1.0+1.0i) 0.0) (num-test (* 0.0 0.0+1.0i 0) 0.0) (num-test (* 0.0 0.0+1.0i 0.0) 0.0) (num-test (* 0.0 0.0+1.0i 0.0+1.0i) 0.0) (num-test (* 0.0 0.0+1.0i 1) 0.0) (num-test (* 0.0 0.0+1.0i 1.0) 0.0) (num-test (* 0.0 0.0+1.0i 1.0+1.0i) 0.0) (num-test (* 0.0 0.0+1.0i 1.234+1.234i) 0.0) (num-test (* 0.0 0.0+1.0i 1/1) 0.0) (num-test (* 0.0 0.0+1.0i 123.4) 0.0) (num-test (* 0.0 0.0+1.0i 1234) 0.0) (num-test (* 0.0 0.0+1.0i 1234/11) 0.0) (num-test (* 0.0 0.0+1.0i) 0.0) (num-test (* 0.0 1 -1.0+1.0i) 0.0) (num-test (* 0.0 1 0) 0.0) (num-test (* 0.0 1 0.0) 0.0) (num-test (* 0.0 1 0.0+1.0i) 0.0) (num-test (* 0.0 1 1.0) 0.0) (num-test (* 0.0 1 1.0+1.0i) 0.0) (num-test (* 0.0 1 1.234+1.234i) 0.0) (num-test (* 0.0 1 1/1) 0.0) (num-test (* 0.0 1 123.4) 0.0) (num-test (* 0.0 1 1234) 0.0) (num-test (* 0.0 1 1234/11) 0.0) (num-test (* 0.0 1) 0.0) (num-test (* 0.0 1.0 -1.0+1.0i) 0.0) (num-test (* 0.0 1.0 0) 0.0) (num-test (* 0.0 1.0 0.0) 0.0) (num-test (* 0.0 1.0 0.0+1.0i) 0.0) (num-test (* 0.0 1.0 1) 0.0) (num-test (* 0.0 1.0 1.0) 0.0) (num-test (* 0.0 1.0 1.0+1.0i) 0.0) (num-test (* 0.0 1.0 1.234+1.234i) 0.0) (num-test (* 0.0 1.0 1/1) 0.0) (num-test (* 0.0 1.0 123.4) 0.0) (num-test (* 0.0 1.0 1234) 0.0) (num-test (* 0.0 1.0 1234/11) 0.0) (num-test (* 0.0 1.0) 0.0) (num-test (* 0.0 1.0+1.0i -1.0+1.0i) 0.0) (num-test (* 0.0 1.0+1.0i 0) 0.0) (num-test (* 0.0 1.0+1.0i 0.0) 0.0) (num-test (* 0.0 1.0+1.0i 0.0+1.0i) 0.0) (num-test (* 0.0 1.0+1.0i 1) 0.0) (num-test (* 0.0 1.0+1.0i 1.0) 0.0) (num-test (* 0.0 1.0+1.0i 1.0+1.0i) 0.0) (num-test (* 0.0 1.0+1.0i 1.234+1.234i) 0.0) (num-test (* 0.0 1.0+1.0i 1/1) 0.0) (num-test (* 0.0 1.0+1.0i 123.4) 0.0) (num-test (* 0.0 1.0+1.0i 1234) 0.0) (num-test (* 0.0 1.0+1.0i 1234/11) 0.0) (num-test (* 0.0 1.0+1.0i) 0.0) (num-test (* 0.0 1.234+1.234i -1.0+1.0i) 0.0) (num-test (* 0.0 1.234+1.234i 0) 0.0) (num-test (* 0.0 1.234+1.234i 0.0) 0.0) (num-test (* 0.0 1.234+1.234i 0.0+1.0i) 0.0) (num-test (* 0.0 1.234+1.234i 1) 0.0) (num-test (* 0.0 1.234+1.234i 1.0) 0.0) (num-test (* 0.0 1.234+1.234i 1.0+1.0i) 0.0) (num-test (* 0.0 1.234+1.234i 1.234+1.234i) 0.0) (num-test (* 0.0 1.234+1.234i 1/1) 0.0) (num-test (* 0.0 1.234+1.234i 123.4) 0.0) (num-test (* 0.0 1.234+1.234i 1234) 0.0) (num-test (* 0.0 1.234+1.234i 1234/11) 0.0) (num-test (* 0.0 1.234+1.234i) 0.0) (num-test (* 0.0 123.4 -1.0+1.0i) 0.0) (num-test (* 0.0 123.4 0) 0.0) (num-test (* 0.0 123.4 0.0) 0.0) (num-test (* 0.0 123.4 0.0+1.0i) 0.0) (num-test (* 0.0 123.4 1) 0.0) (num-test (* 0.0 123.4 1.0) 0.0) (num-test (* 0.0 123.4 1.0+1.0i) 0.0) (num-test (* 0.0 123.4 1.234+1.234i) 0.0) (num-test (* 0.0 123.4 1/1) 0.0) (num-test (* 0.0 123.4 123.4) 0.0) (num-test (* 0.0 123.4 1234) 0.0) (num-test (* 0.0 123.4 1234/11) 0.0) (num-test (* 0.0 123.4) 0.0) (num-test (* 0.0 1234 -1.0+1.0i) 0.0) (num-test (* 0.0 1234 0) 0.0) (num-test (* 0.0 1234 0.0) 0.0) (num-test (* 0.0 1234 0.0+1.0i) 0.0) (num-test (* 0.0 1234 1) 0.0) (num-test (* 0.0 1234 1.0) 0.0) (num-test (* 0.0 1234 1.0+1.0i) 0.0) (num-test (* 0.0 1234 1.234+1.234i) 0.0) (num-test (* 0.0 1234 1/1) 0.0) (num-test (* 0.0 1234 123.4) 0.0) (num-test (* 0.0 1234 1234) 0.0) (num-test (* 0.0 1234 1234/11) 0.0) (num-test (* 0.0 1234) 0.0) (num-test (* 0.0 1234/11 -1.0+1.0i) 0.0) (num-test (* 0.0 1234/11 0) 0.0) (num-test (* 0.0 1234/11 0.0) 0.0) (num-test (* 0.0 1234/11 0.0+1.0i) 0.0) (num-test (* 0.0 1234/11 1) 0.0) (num-test (* 0.0 1234/11 1.0) 0.0) (num-test (* 0.0 1234/11 1.0+1.0i) 0.0) (num-test (* 0.0 1234/11 1.234+1.234i) 0.0) (num-test (* 0.0 1234/11 1/1) 0.0) (num-test (* 0.0 1234/11 123.4) 0.0) (num-test (* 0.0 1234/11 1234) 0.0) (num-test (* 0.0 1234/11 1234/11) 0.0) (num-test (* 0.0 1234/11) 0.0) (num-test (* 0.0) 0.0) (num-test (* 0.0+0.00000001i) 0.0+0.00000001i) (num-test (* 0.0+1.0i -1.0+1.0i) -1.0-1.0i) (num-test (* 0.0+1.0i 0) 0.0) (num-test (* 0.0+1.0i 0.0) 0.0) (num-test (* 0.0+1.0i 0.0+1.0i) -1.0) (num-test (* 0.0+1.0i 1) 0.0+1.0i) (num-test (* 0.0+1.0i 1.0) 0.0+1.0i) (num-test (* 0.0+1.0i 1.0+1.0i) -1.0+1.0i) (num-test (* 0.0+1.0i 1.234+1.234i) -1.234+1.234i) (num-test (* 0.0+1.0i 1/1) 0.0+1.0i) (num-test (* 0.0+1.0i 123.4) 0.0+123.4i) (num-test (* 0.0+1.0i 1234) 0.0+1234.0i) (num-test (* 0.0+1.0i 1234/11) 0.0+112.18181818181819i) (num-test (* 0/1) 0/1) (num-test (* 0/1) 0/1) (num-test (* 1 -1.0+1.0i) -1.0+1.0i) (num-test (* 1 0) 0) (num-test (* 1 0.0) 0.0) (num-test (* 1 0.0+1.0i) 0.0+1.0i) (num-test (* 1 1 -1.0+1.0i) -1.0+1.0i) (num-test (* 1 1 0) 0) (num-test (* 1 1 0.0) 0.0) (num-test (* 1 1 0.0+1.0i) 0.0+1.0i) (num-test (* 1 1 1) 1) (num-test (* 1 1 1.0) 1.0) (num-test (* 1 1 1.0+1.0i) 1.0+1.0i) (num-test (* 1 1 1.234+1.234i) 1.234+1.234i) (num-test (* 1 1 1/1) 1) (num-test (* 1 1 123.4) 123.4) (num-test (* 1 1 1234) 1234) (num-test (* 1 1 1234/11) 1234/11) (num-test (* 1 1) 1) (num-test (* 1 1.0 -1.0+1.0i) -1.0+1.0i) (num-test (* 1 1.0 0) 0.0) (num-test (* 1 1.0 0.0) 0.0) (num-test (* 1 1.0 0.0+1.0i) 0.0+1.0i) (num-test (* 1 1.0 1) 1.0) (num-test (* 1 1.0 1.0) 1.0) (num-test (* 1 1.0 1.0+1.0i) 1.0+1.0i) (num-test (* 1 1.0 1.234+1.234i) 1.234+1.234i) (num-test (* 1 1.0 1/1) 1.0) (num-test (* 1 1.0 123.4) 123.4) (num-test (* 1 1.0 1234) 1234.0) (num-test (* 1 1.0 1234/11) 112.18181818181819) (num-test (* 1 1.0) 1.0) (num-test (* 1 1.0+1.0i -1.0+1.0i) -2.0) (num-test (* 1 1.0+1.0i 0) 0.0) (num-test (* 1 1.0+1.0i 0.0) 0.0) (num-test (* 1 1.0+1.0i 0.0+1.0i) -1.0+1.0i) (num-test (* 1 1.0+1.0i 1) 1.0+1.0i) (num-test (* 1 1.0+1.0i 1.0) 1.0+1.0i) (num-test (* 1 1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (* 1 1.0+1.0i 1.234+1.234i) 0.0+2.468i) (num-test (* 1 1.0+1.0i 1/1) 1.0+1.0i) (num-test (* 1 1.0+1.0i 123.4) 123.4+123.4i) (num-test (* 1 1.0+1.0i 1234) 1234.0+1234.0i) (num-test (* 1 1.0+1.0i 1234/11) 112.18181818181819+112.18181818181819i) (num-test (* 1 1.0+1.0i) 1.0+1.0i) (num-test (* 1 1.234+1.234i) 1.234+1.234i) (num-test (* 1 123.4) 123.4) (num-test (* 1 1234) 1234) (num-test (* 1 1234/11) 1234/11) (num-test (* 1.0 -1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (* 1.0 -1.0+1.0i 0) 0.0) (num-test (* 1.0 -1.0+1.0i 0.0) 0.0) (num-test (* 1.0 -1.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (* 1.0 -1.0+1.0i 1) -1.0+1.0i) (num-test (* 1.0 -1.0+1.0i 1.0) -1.0+1.0i) (num-test (* 1.0 -1.0+1.0i 1.0+1.0i) -2.0) (num-test (* 1.0 -1.0+1.0i 1.234+1.234i) -2.468) (num-test (* 1.0 -1.0+1.0i 1/1) -1.0+1.0i) (num-test (* 1.0 -1.0+1.0i 123.4) -123.4+123.4i) (num-test (* 1.0 -1.0+1.0i 1234) -1234.0+1234.0i) (num-test (* 1.0 -1.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (* 1.0 -1.0+1.0i) -1.0+1.0i) (num-test (* 1.0 0 -1.0+1.0i) 0.0) (num-test (* 1.0 0 0) 0.0) (num-test (* 1.0 0 0.0) 0.0) (num-test (* 1.0 0 0.0+1.0i) 0.0) (num-test (* 1.0 0 1) 0.0) (num-test (* 1.0 0 1.0) 0.0) (num-test (* 1.0 0 1.0+1.0i) 0.0) (num-test (* 1.0 0 1.234+1.234i) 0.0) (num-test (* 1.0 0 1/1) 0.0) (num-test (* 1.0 0 123.4) 0.0) (num-test (* 1.0 0 1234) 0.0) (num-test (* 1.0 0 1234/11) 0.0) (num-test (* 1.0 0) 0.0) (num-test (* 1.0 0.0 -1.0+1.0i) 0.0) (num-test (* 1.0 0.0 0) 0.0) (num-test (* 1.0 0.0 0.0) 0.0) (num-test (* 1.0 0.0 0.0+1.0i) 0.0) (num-test (* 1.0 0.0 1) 0.0) (num-test (* 1.0 0.0 1.0) 0.0) (num-test (* 1.0 0.0 1.0+1.0i) 0.0) (num-test (* 1.0 0.0 1.234+1.234i) 0.0) (num-test (* 1.0 0.0 1/1) 0.0) (num-test (* 1.0 0.0 123.4) 0.0) (num-test (* 1.0 0.0 1234) 0.0) (num-test (* 1.0 0.0 1234/11) 0.0) (num-test (* 1.0 0.0) 0.0) (num-test (* 1.0 0.0+1.0i -1.0+1.0i) -1.0-1.0i) (num-test (* 1.0 0.0+1.0i 0) 0.0) (num-test (* 1.0 0.0+1.0i 0.0) 0.0) (num-test (* 1.0 0.0+1.0i 0.0+1.0i) -1.0) (num-test (* 1.0 0.0+1.0i 1) 0.0+1.0i) (num-test (* 1.0 0.0+1.0i 1.0) 0.0+1.0i) (num-test (* 1.0 0.0+1.0i 1.0+1.0i) -1.0+1.0i) (num-test (* 1.0 0.0+1.0i 1.234+1.234i) -1.234+1.234i) (num-test (* 1.0 0.0+1.0i 1/1) 0.0+1.0i) (num-test (* 1.0 0.0+1.0i 123.4) 0.0+123.4i) (num-test (* 1.0 0.0+1.0i 1234) 0.0+1234.0i) (num-test (* 1.0 0.0+1.0i 1234/11) 0.0+112.18181818181819i) (num-test (* 1.0 0.0+1.0i) 0.0+1.0i) (num-test (* 1.0 1 -1.0+1.0i) -1.0+1.0i) (num-test (* 1.0 1 0) 0.0) (num-test (* 1.0 1 0.0) 0.0) (num-test (* 1.0 1 0.0+1.0i) 0.0+1.0i) (num-test (* 1.0 1 1) 1.0) (num-test (* 1.0 1 1.0) 1.0) (num-test (* 1.0 1 1.0+1.0i) 1.0+1.0i) (num-test (* 1.0 1 1.234+1.234i) 1.234+1.234i) (num-test (* 1.0 1 1/1) 1.0) (num-test (* 1.0 1 123.4) 123.4) (num-test (* 1.0 1 1234) 1234.0) (num-test (* 1.0 1 1234/11) 112.18181818181819) (num-test (* 1.0 1) 1.0) (num-test (* 1.0 1.0 -1.0+1.0i) -1.0+1.0i) (num-test (* 1.0 1.0 0) 0.0) (num-test (* 1.0 1.0 0.0) 0.0) (num-test (* 1.0 1.0 0.0+1.0i) 0.0+1.0i) (num-test (* 1.0 1.0 1) 1.0) (num-test (* 1.0 1.0 1.0) 1.0) (num-test (* 1.0 1.0 1.0+1.0i) 1.0+1.0i) (num-test (* 1.0 1.0 1.234+1.234i) 1.234+1.234i) (num-test (* 1.0 1.0 1/1) 1.0) (num-test (* 1.0 1.0 123.4) 123.4) (num-test (* 1.0 1.0 1234) 1234.0) (num-test (* 1.0 1.0 1234/11) 112.18181818181819) (num-test (* 1.0 1.0) 1.0) (num-test (* 1.0 1.0+1.0i -1.0+1.0i) -2.0) (num-test (* 1.0 1.0+1.0i 0) 0.0) (num-test (* 1.0 1.0+1.0i 0.0) 0.0) (num-test (* 1.0 1.0+1.0i 0.0+1.0i) -1.0+1.0i) (num-test (* 1.0 1.0+1.0i 1) 1.0+1.0i) (num-test (* 1.0 1.0+1.0i 1.0) 1.0+1.0i) (num-test (* 1.0 1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (* 1.0 1.0+1.0i 1.234+1.234i) 0.0+2.468i) (num-test (* 1.0 1.0+1.0i 1/1) 1.0+1.0i) (num-test (* 1.0 1.0+1.0i 123.4) 123.4+123.4i) (num-test (* 1.0 1.0+1.0i 1234) 1234.0+1234.0i) (num-test (* 1.0 1.0+1.0i 1234/11) 112.18181818181819+112.18181818181819i) (num-test (* 1.0 1.0+1.0i) 1.0+1.0i) (num-test (* 1.0 1.234+1.234i -1.0+1.0i) -2.468) (num-test (* 1.0 1.234+1.234i 0) 0.0) (num-test (* 1.0 1.234+1.234i 0.0) 0.0) (num-test (* 1.0 1.234+1.234i 0.0+1.0i) -1.234+1.234i) (num-test (* 1.0 1.234+1.234i 1) 1.234+1.234i) (num-test (* 1.0 1.234+1.234i 1.0) 1.234+1.234i) (num-test (* 1.0 1.234+1.234i 1.0+1.0i) 0.0+2.468i) (num-test (* 1.0 1.234+1.234i 1.234+1.234i) 0.0+3.04551200000000i) (num-test (* 1.0 1.234+1.234i 1/1) 1.234+1.234i) (num-test (* 1.0 1.234+1.234i 123.4) 152.2756+152.2756i) (num-test (* 1.0 1.234+1.234i 1234) 1522.756+1522.756i) (num-test (* 1.0 1.234+1.234i 1234/11) 138.43236363636365+138.43236363636365i) (num-test (* 1.0 1.234+1.234i) 1.234+1.234i) (num-test (* 1.0 1/1 -1.0+1.0i) -1.0+1.0i) (num-test (* 1.0 123.4 -1.0+1.0i) -123.4+123.4i) (num-test (* 1.0 123.4 0) 0.0) (num-test (* 1.0 123.4 0.0) 0.0) (num-test (* 1.0 123.4 0.0+1.0i) 0.0+123.4i) (num-test (* 1.0 123.4 1) 123.4) (num-test (* 1.0 123.4 1.0) 123.4) (num-test (* 1.0 123.4 1.0+1.0i) 123.4+123.4i) (num-test (* 1.0 123.4 1.234+1.234i) 152.2756+152.2756i) (num-test (* 1.0 123.4 1/1) 123.4) (num-test (* 1.0 123.4 123.4) 15227.56000000000131) (num-test (* 1.0 123.4 1234) 152275.60000000000582) (num-test (* 1.0 123.4 1234/11) 13843.23636363636433) (num-test (* 1.0 123.4) 123.4) (num-test (* 1.0 1234 -1.0+1.0i) -1234.0+1234.0i) (num-test (* 1.0 1234 0) 0.0) (num-test (* 1.0 1234 0.0) 0.0) (num-test (* 1.0 1234 0.0+1.0i) 0.0+1234.0i) (num-test (* 1.0 1234 1) 1234.0) (num-test (* 1.0 1234 1.0) 1234.0) (num-test (* 1.0 1234 1.0+1.0i) 1234.0+1234.0i) (num-test (* 1.0 1234 1.234+1.234i) 1522.756+1522.756i) (num-test (* 1.0 1234 1/1) 1234.0) (num-test (* 1.0 1234 123.4) 152275.60000000000582) (num-test (* 1.0 1234 1234) 1522756.0) (num-test (* 1.0 1234 1234/11) 138432.36363636364695) (num-test (* 1.0 1234) 1234.0) (num-test (* 1.0 1234/11 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (* 1.0 1234/11 0) 0.0) (num-test (* 1.0 1234/11 0.0) 0.0) (num-test (* 1.0 1234/11 0.0+1.0i) 0.0+112.18181818181819i) (num-test (* 1.0 1234/11 1) 112.18181818181819) (num-test (* 1.0 1234/11 1.0) 112.18181818181819) (num-test (* 1.0 1234/11 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (* 1.0 1234/11 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (* 1.0 1234/11 1/1) 112.18181818181819) (num-test (* 1.0 1234/11 123.4) 13843.23636363636433) (num-test (* 1.0 1234/11 1234) 138432.36363636364695) (num-test (* 1.0 1234/11 1234/11) 12584.76033057851237) (num-test (* 1.0 1234/11) 112.18181818181819) (num-test (* 1.0) 1.0) (num-test (* 1.0+1.0i -1.0+1.0i -1.0+1.0i) 2.0-2.0i) (num-test (* 1.0+1.0i -1.0+1.0i 0) 0.0) (num-test (* 1.0+1.0i -1.0+1.0i 0.0) 0.0) (num-test (* 1.0+1.0i -1.0+1.0i 0.0+1.0i) -0.0-2.0i) (num-test (* 1.0+1.0i -1.0+1.0i 1) -2.0) (num-test (* 1.0+1.0i -1.0+1.0i 1.0) -2.0) (num-test (* 1.0+1.0i -1.0+1.0i 1.0+1.0i) -2.0-2.0i) (num-test (* 1.0+1.0i -1.0+1.0i 1.234+1.234i) -2.468-2.468i) (num-test (* 1.0+1.0i -1.0+1.0i 1/1) -2.0) (num-test (* 1.0+1.0i -1.0+1.0i 123.4) -246.8) (num-test (* 1.0+1.0i -1.0+1.0i 1234) -2468.0) (num-test (* 1.0+1.0i -1.0+1.0i 1234/11) -224.36363636363637) (num-test (* 1.0+1.0i -1.0+1.0i) -2.0) (num-test (* 1.0+1.0i 0 -1.0+1.0i) 0.0) (num-test (* 1.0+1.0i 0 0) 0.0) (num-test (* 1.0+1.0i 0 0.0) 0.0) (num-test (* 1.0+1.0i 0 0.0+1.0i) 0.0) (num-test (* 1.0+1.0i 0 1) 0.0) (num-test (* 1.0+1.0i 0 1.0) 0.0) (num-test (* 1.0+1.0i 0 1.0+1.0i) 0.0) (num-test (* 1.0+1.0i 0 1.234+1.234i) 0.0) (num-test (* 1.0+1.0i 0 1/1) 0.0) (num-test (* 1.0+1.0i 0 123.4) 0.0) (num-test (* 1.0+1.0i 0 1234) 0.0) (num-test (* 1.0+1.0i 0 1234/11) 0.0) (num-test (* 1.0+1.0i 0) 0.0) (num-test (* 1.0+1.0i 0.0 -1.0+1.0i) 0.0) (num-test (* 1.0+1.0i 0.0 0) 0.0) (num-test (* 1.0+1.0i 0.0 0.0) 0.0) (num-test (* 1.0+1.0i 0.0 0.0+1.0i) 0.0) (num-test (* 1.0+1.0i 0.0 1) 0.0) (num-test (* 1.0+1.0i 0.0 1.0) 0.0) (num-test (* 1.0+1.0i 0.0 1.0+1.0i) 0.0) (num-test (* 1.0+1.0i 0.0 1.234+1.234i) 0.0) (num-test (* 1.0+1.0i 0.0 1/1) 0.0) (num-test (* 1.0+1.0i 0.0 123.4) 0.0) (num-test (* 1.0+1.0i 0.0 1234) 0.0) (num-test (* 1.0+1.0i 0.0 1234/11) 0.0) (num-test (* 1.0+1.0i 0.0) 0.0) (num-test (* 1.0+1.0i 0.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (* 1.0+1.0i 0.0+1.0i 0) 0.0) (num-test (* 1.0+1.0i 0.0+1.0i 0.0) 0.0) (num-test (* 1.0+1.0i 0.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (* 1.0+1.0i 0.0+1.0i 1) -1.0+1.0i) (num-test (* 1.0+1.0i 0.0+1.0i 1.0) -1.0+1.0i) (num-test (* 1.0+1.0i 0.0+1.0i 1.0+1.0i) -2.0) (num-test (* 1.0+1.0i 0.0+1.0i 1.234+1.234i) -2.468) (num-test (* 1.0+1.0i 0.0+1.0i 1/1) -1.0+1.0i) (num-test (* 1.0+1.0i 0.0+1.0i 123.4) -123.4+123.4i) (num-test (* 1.0+1.0i 0.0+1.0i 1234) -1234.0+1234.0i) (num-test (* 1.0+1.0i 0.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i 0.0+1.0i) -1.0+1.0i) (num-test (* 1.0+1.0i 1 -1.0+1.0i) -2.0) (num-test (* 1.0+1.0i 1 0) 0.0) (num-test (* 1.0+1.0i 1 0.0) 0.0) (num-test (* 1.0+1.0i 1 0.0+1.0i) -1.0+1.0i) (num-test (* 1.0+1.0i 1 1) 1.0+1.0i) (num-test (* 1.0+1.0i 1 1.0) 1.0+1.0i) (num-test (* 1.0+1.0i 1 1.0+1.0i) 0.0+2.0i) (num-test (* 1.0+1.0i 1 1.234+1.234i) 0.0+2.468i) (num-test (* 1.0+1.0i 1 1/1) 1.0+1.0i) (num-test (* 1.0+1.0i 1 123.4) 123.4+123.4i) (num-test (* 1.0+1.0i 1 1234) 1234.0+1234.0i) (num-test (* 1.0+1.0i 1 1234/11) 112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i 1) 1.0+1.0i) (num-test (* 1.0+1.0i 1.0 -1.0+1.0i) -2.0) (num-test (* 1.0+1.0i 1.0 0) 0.0) (num-test (* 1.0+1.0i 1.0 0.0) 0.0) (num-test (* 1.0+1.0i 1.0 0.0+1.0i) -1.0+1.0i) (num-test (* 1.0+1.0i 1.0 1) 1.0+1.0i) (num-test (* 1.0+1.0i 1.0 1.0) 1.0+1.0i) (num-test (* 1.0+1.0i 1.0 1.0+1.0i) 0.0+2.0i) (num-test (* 1.0+1.0i 1.0 1.234+1.234i) 0.0+2.468i) (num-test (* 1.0+1.0i 1.0 1/1) 1.0+1.0i) (num-test (* 1.0+1.0i 1.0 123.4) 123.4+123.4i) (num-test (* 1.0+1.0i 1.0 1234) 1234.0+1234.0i) (num-test (* 1.0+1.0i 1.0 1234/11) 112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i 1.0) 1.0+1.0i) (num-test (* 1.0+1.0i 1.0+1.0i -1.0+1.0i) -2.0-2.0i) (num-test (* 1.0+1.0i 1.0+1.0i 0) 0.0) (num-test (* 1.0+1.0i 1.0+1.0i 0.0) 0.0) (num-test (* 1.0+1.0i 1.0+1.0i 0.0+1.0i) -2.0) (num-test (* 1.0+1.0i 1.0+1.0i 1) 0.0+2.0i) (num-test (* 1.0+1.0i 1.0+1.0i 1.0) 0.0+2.0i) (num-test (* 1.0+1.0i 1.0+1.0i 1.0+1.0i) -2.0+2.0i) (num-test (* 1.0+1.0i 1.0+1.0i 1.234+1.234i) -2.468+2.468i) (num-test (* 1.0+1.0i 1.0+1.0i 1/1) 0.0+2.0i) (num-test (* 1.0+1.0i 1.0+1.0i 123.4) 0.0+246.8i) (num-test (* 1.0+1.0i 1.0+1.0i 1234) 0.0+2468.0i) (num-test (* 1.0+1.0i 1.0+1.0i 1234/11) 0.0+224.36363636363637i) (num-test (* 1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (* 1.0+1.0i 1.234+1.234i -1.0+1.0i) -2.468-2.468i) (num-test (* 1.0+1.0i 1.234+1.234i 0) 0.0) (num-test (* 1.0+1.0i 1.234+1.234i 0.0) 0.0) (num-test (* 1.0+1.0i 1.234+1.234i 0.0+1.0i) -2.468) (num-test (* 1.0+1.0i 1.234+1.234i 1) 0.0+2.468i) (num-test (* 1.0+1.0i 1.234+1.234i 1.0) 0.0+2.468i) (num-test (* 1.0+1.0i 1.234+1.234i 1.0+1.0i) -2.468+2.468i) (num-test (* 1.0+1.0i 1.234+1.234i 1.234+1.234i) -3.04551200000000+3.04551200000000i) (num-test (* 1.0+1.0i 1.234+1.234i 1/1) 0.0+2.468i) (num-test (* 1.0+1.0i 1.234+1.234i 123.4) 0.0+304.55119999999999i) (num-test (* 1.0+1.0i 1.234+1.234i 1234) 0.0+3045.51200000000017i) (num-test (* 1.0+1.0i 1.234+1.234i 1234/11) 0.0+276.86472727272729i) (num-test (* 1.0+1.0i 1.234+1.234i) 0.0+2.468i) (num-test (* 1.0+1.0i 123.4 -1.0+1.0i) -246.8) (num-test (* 1.0+1.0i 123.4 0) 0.0) (num-test (* 1.0+1.0i 123.4 0.0) 0.0) (num-test (* 1.0+1.0i 123.4 0.0+1.0i) -123.4+123.4i) (num-test (* 1.0+1.0i 123.4 1) 123.4+123.4i) (num-test (* 1.0+1.0i 123.4 1.0) 123.4+123.4i) (num-test (* 1.0+1.0i 123.4 1.0+1.0i) 0.0+246.8i) (num-test (* 1.0+1.0i 123.4 1.234+1.234i) 0.0+304.55119999999999i) (num-test (* 1.0+1.0i 123.4 1/1) 123.4+123.4i) (num-test (* 1.0+1.0i 123.4 123.4) 15227.56000000000131+15227.56000000000131i) (num-test (* 1.0+1.0i 123.4 1234) 152275.60000000000582+152275.60000000000582i) (num-test (* 1.0+1.0i 123.4 1234/11) 13843.23636363636433+13843.23636363636433i) (num-test (* 1.0+1.0i 123.4) 123.4+123.4i) (num-test (* 1.0+1.0i 1234 -1.0+1.0i) -2468.0) (num-test (* 1.0+1.0i 1234 0) 0.0) (num-test (* 1.0+1.0i 1234 0.0) 0.0) (num-test (* 1.0+1.0i 1234 0.0+1.0i) -1234.0+1234.0i) (num-test (* 1.0+1.0i 1234 1) 1234.0+1234.0i) (num-test (* 1.0+1.0i 1234 1.0) 1234.0+1234.0i) (num-test (* 1.0+1.0i 1234 1.0+1.0i) 0.0+2468.0i) (num-test (* 1.0+1.0i 1234 1.234+1.234i) 0.0+3045.51200000000017i) (num-test (* 1.0+1.0i 1234 1/1) 1234.0+1234.0i) (num-test (* 1.0+1.0i 1234 123.4) 152275.60000000000582+152275.60000000000582i) (num-test (* 1.0+1.0i 1234 1234) 1522756.0+1522756.0i) (num-test (* 1.0+1.0i 1234 1234/11) 138432.36363636364695+138432.36363636364695i) (num-test (* 1.0+1.0i 1234) 1234.0+1234.0i) (num-test (* 1.0+1.0i 1234/11 -1.0+1.0i) -224.36363636363637) (num-test (* 1.0+1.0i 1234/11 0) 0.0) (num-test (* 1.0+1.0i 1234/11 0.0) 0.0) (num-test (* 1.0+1.0i 1234/11 0.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i 1234/11 1) 112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i 1234/11 1.0) 112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i 1234/11 1.0+1.0i) 0.0+224.36363636363637i) (num-test (* 1.0+1.0i 1234/11 1.234+1.234i) 0.0+276.86472727272729i) (num-test (* 1.0+1.0i 1234/11 1/1) 112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i 1234/11 123.4) 13843.23636363636433+13843.23636363636433i) (num-test (* 1.0+1.0i 1234/11 1234) 138432.36363636364695+138432.36363636364695i) (num-test (* 1.0+1.0i 1234/11 1234/11) 12584.76033057851419+12584.76033057851419i) (num-test (* 1.0+1.0i 1234/11) 112.18181818181819+112.18181818181819i) (num-test (* 1.0+1.0i) 1.0+1.0i) (num-test (* 1.234+1.234i -1.0+1.0i) -2.468) (num-test (* 1.234+1.234i 0) 0.0) (num-test (* 1.234+1.234i 0.0) 0.0) (num-test (* 1.234+1.234i 0.0+1.0i) -1.234+1.234i) (num-test (* 1.234+1.234i 1) 1.234+1.234i) (num-test (* 1.234+1.234i 1.0) 1.234+1.234i) (num-test (* 1.234+1.234i 1.0+1.0i) 0.0+2.468i) (num-test (* 1.234+1.234i 1.234+1.234i) 0.0+3.04551200000000i) (num-test (* 1.234+1.234i 1/1) 1.234+1.234i) (num-test (* 1.234+1.234i 123.4) 152.2756+152.2756i) (num-test (* 1.234+1.234i 1234) 1522.756+1522.756i) (num-test (* 1.234+1.234i 1234/11) 138.43236363636365+138.43236363636365i) (num-test (* 10) 10) (num-test (* 10/3) 10/3) (num-test (* 123.4 -1.0+1.0i -1.0+1.0i) 0.0-246.8i) (num-test (* 123.4 -1.0+1.0i 0) 0.0) (num-test (* 123.4 -1.0+1.0i 0.0) 0.0) (num-test (* 123.4 -1.0+1.0i 0.0+1.0i) -123.4-123.4i) (num-test (* 123.4 -1.0+1.0i 1) -123.4+123.4i) (num-test (* 123.4 -1.0+1.0i 1.0) -123.4+123.4i) (num-test (* 123.4 -1.0+1.0i 1.0+1.0i) -246.8) (num-test (* 123.4 -1.0+1.0i 1.234+1.234i) -304.55119999999999) (num-test (* 123.4 -1.0+1.0i 1/1) -123.4+123.4i) (num-test (* 123.4 -1.0+1.0i 123.4) -15227.56000000000131+15227.56000000000131i) (num-test (* 123.4 -1.0+1.0i 1234) -152275.60000000000582+152275.60000000000582i) (num-test (* 123.4 -1.0+1.0i 1234/11) -13843.23636363636433+13843.23636363636433i) (num-test (* 123.4 -1.0+1.0i) -123.4+123.4i) (num-test (* 123.4 0 -1.0+1.0i) 0.0) (num-test (* 123.4 0 0) 0.0) (num-test (* 123.4 0 0.0) 0.0) (num-test (* 123.4 0 0.0+1.0i) 0.0) (num-test (* 123.4 0 1) 0.0) (num-test (* 123.4 0 1.0) 0.0) (num-test (* 123.4 0 1.0+1.0i) 0.0) (num-test (* 123.4 0 1.234+1.234i) 0.0) (num-test (* 123.4 0 1/1) 0.0) (num-test (* 123.4 0 123.4) 0.0) (num-test (* 123.4 0 1234) 0.0) (num-test (* 123.4 0 1234/11) 0.0) (num-test (* 123.4 0) 0.0) (num-test (* 123.4 0.0 -1.0+1.0i) 0.0) (num-test (* 123.4 0.0 0) 0.0) (num-test (* 123.4 0.0 0.0) 0.0) (num-test (* 123.4 0.0 0.0+1.0i) 0.0) (num-test (* 123.4 0.0 1) 0.0) (num-test (* 123.4 0.0 1.0) 0.0) (num-test (* 123.4 0.0 1.0+1.0i) 0.0) (num-test (* 123.4 0.0 1.234+1.234i) 0.0) (num-test (* 123.4 0.0 1/1) 0.0) (num-test (* 123.4 0.0 123.4) 0.0) (num-test (* 123.4 0.0 1234) 0.0) (num-test (* 123.4 0.0 1234/11) 0.0) (num-test (* 123.4 0.0) 0.0) (num-test (* 123.4 0.0+1.0i -1.0+1.0i) -123.4-123.4i) (num-test (* 123.4 0.0+1.0i 0) 0.0) (num-test (* 123.4 0.0+1.0i 0.0) 0.0) (num-test (* 123.4 0.0+1.0i 0.0+1.0i) -123.4) (num-test (* 123.4 0.0+1.0i 1) 0.0+123.4i) (num-test (* 123.4 0.0+1.0i 1.0) 0.0+123.4i) (num-test (* 123.4 0.0+1.0i 1.0+1.0i) -123.4+123.4i) (num-test (* 123.4 0.0+1.0i 1.234+1.234i) -152.2756+152.2756i) (num-test (* 123.4 0.0+1.0i 1/1) 0.0+123.4i) (num-test (* 123.4 0.0+1.0i 123.4) 0.0+15227.56000000000131i) (num-test (* 123.4 0.0+1.0i 1234) 0.0+152275.60000000000582i) (num-test (* 123.4 0.0+1.0i 1234/11) 0.0+13843.23636363636433i) (num-test (* 123.4 0.0+1.0i) 0.0+123.4i) (num-test (* 123.4 1 -1.0+1.0i) -123.4+123.4i) (num-test (* 123.4 1 0) 0.0) (num-test (* 123.4 1 0.0) 0.0) (num-test (* 123.4 1 0.0+1.0i) 0.0+123.4i) (num-test (* 123.4 1 1) 123.4) (num-test (* 123.4 1 1.0) 123.4) (num-test (* 123.4 1 1.0+1.0i) 123.4+123.4i) (num-test (* 123.4 1 1.234+1.234i) 152.2756+152.2756i) (num-test (* 123.4 1 1/1) 123.4) (num-test (* 123.4 1 123.4) 15227.56000000000131) (num-test (* 123.4 1 1234) 152275.60000000000582) (num-test (* 123.4 1 1234/11) 13843.23636363636433) (num-test (* 123.4 1) 123.4) (num-test (* 123.4 1.0 -1.0+1.0i) -123.4+123.4i) (num-test (* 123.4 1.0 0) 0.0) (num-test (* 123.4 1.0 0.0) 0.0) (num-test (* 123.4 1.0 0.0+1.0i) 0.0+123.4i) (num-test (* 123.4 1.0 1) 123.4) (num-test (* 123.4 1.0 1.0) 123.4) (num-test (* 123.4 1.0 1.0+1.0i) 123.4+123.4i) (num-test (* 123.4 1.0 1.234+1.234i) 152.2756+152.2756i) (num-test (* 123.4 1.0 1/1) 123.4) (num-test (* 123.4 1.0 123.4) 15227.56000000000131) (num-test (* 123.4 1.0 1234) 152275.60000000000582) (num-test (* 123.4 1.0 1234/11) 13843.23636363636433) (num-test (* 123.4 1.0) 123.4) (num-test (* 123.4 1.0+1.0i -1.0+1.0i) -246.8) (num-test (* 123.4 1.0+1.0i 0) 0.0) (num-test (* 123.4 1.0+1.0i 0.0) 0.0) (num-test (* 123.4 1.0+1.0i 0.0+1.0i) -123.4+123.4i) (num-test (* 123.4 1.0+1.0i 1) 123.4+123.4i) (num-test (* 123.4 1.0+1.0i 1.0) 123.4+123.4i) (num-test (* 123.4 1.0+1.0i 1.0+1.0i) 0.0+246.8i) (num-test (* 123.4 1.0+1.0i 1.234+1.234i) 0.0+304.55119999999999i) (num-test (* 123.4 1.0+1.0i 1/1) 123.4+123.4i) (num-test (* 123.4 1.0+1.0i 123.4) 15227.56000000000131+15227.56000000000131i) (num-test (* 123.4 1.0+1.0i 1234) 152275.60000000000582+152275.60000000000582i) (num-test (* 123.4 1.0+1.0i 1234/11) 13843.23636363636433+13843.23636363636433i) (num-test (* 123.4 1.0+1.0i) 123.4+123.4i) (num-test (* 123.4 1.234+1.234i -1.0+1.0i) -304.55119999999999) (num-test (* 123.4 1.234+1.234i 0) 0.0) (num-test (* 123.4 1.234+1.234i 0.0) 0.0) (num-test (* 123.4 1.234+1.234i 0.0+1.0i) -152.2756+152.2756i) (num-test (* 123.4 1.234+1.234i 1) 152.2756+152.2756i) (num-test (* 123.4 1.234+1.234i 1.0) 152.2756+152.2756i) (num-test (* 123.4 1.234+1.234i 1.0+1.0i) 0.0+304.55119999999999i) (num-test (* 123.4 1.234+1.234i 1.234+1.234i) 0.0+375.81618079999998i) (num-test (* 123.4 1.234+1.234i 1/1) 152.2756+152.2756i) (num-test (* 123.4 1.234+1.234i 123.4) 18790.80904000000010+18790.80904000000010i) (num-test (* 123.4 1.234+1.234i 1234) 187908.09039999998640+187908.09039999998640i) (num-test (* 123.4 1.234+1.234i 1234/11) 17082.55367272727381+17082.55367272727381i) (num-test (* 123.4 1.234+1.234i) 152.2756+152.2756i) (num-test (* 123.4 1/1 -1.0+1.0i) -123.4+123.4i) (num-test (* 123.4 123.4 -1.0+1.0i) -15227.56000000000131+15227.56000000000131i) (num-test (* 123.4 123.4 0) 0.0) (num-test (* 123.4 123.4 0.0) 0.0) (num-test (* 123.4 123.4 0.0+1.0i) 0.0+15227.56000000000131i) (num-test (* 123.4 123.4 1) 15227.56000000000131) (num-test (* 123.4 123.4 1.0) 15227.56000000000131) (num-test (* 123.4 123.4 1.0+1.0i) 15227.56000000000131+15227.56000000000131i) (num-test (* 123.4 123.4 1.234+1.234i) 18790.80904000000010+18790.80904000000010i) (num-test (* 123.4 123.4 1/1) 15227.56000000000131) (num-test (* 123.4 123.4 123.4) 1879080.90400000032969) (num-test (* 123.4 123.4 1234) 18790809.04000000283122) (num-test (* 123.4 123.4 1234/11) 1708255.36727272742428) (num-test (* 123.4 123.4) 15227.56000000000131) (num-test (* 123.4 1234 -1.0+1.0i) -152275.60000000000582+152275.60000000000582i) (num-test (* 123.4 1234 0) 0.0) (num-test (* 123.4 1234 0.0) 0.0) (num-test (* 123.4 1234 0.0+1.0i) 0.0+152275.60000000000582i) (num-test (* 123.4 1234 1) 152275.60000000000582) (num-test (* 123.4 1234 1.0) 152275.60000000000582) (num-test (* 123.4 1234 1.0+1.0i) 152275.60000000000582+152275.60000000000582i) (num-test (* 123.4 1234 1.234+1.234i) 187908.09040000001551+187908.09040000001551i) (num-test (* 123.4 1234 1/1) 152275.60000000000582) (num-test (* 123.4 1234 123.4) 18790809.04000000283122) (num-test (* 123.4 1234 1234) 187908090.40000000596046) (num-test (* 123.4 1234 1234/11) 17082553.67272727191448) (num-test (* 123.4 1234) 152275.60000000000582) (num-test (* 123.4 1234/11 -1.0+1.0i) -13843.23636363636433+13843.23636363636433i) (num-test (* 123.4 1234/11 0) 0.0) (num-test (* 123.4 1234/11 0.0) 0.0) (num-test (* 123.4 1234/11 0.0+1.0i) 0.0+13843.23636363636433i) (num-test (* 123.4 1234/11 1) 13843.23636363636433) (num-test (* 123.4 1234/11 1.0) 13843.23636363636433) (num-test (* 123.4 1234/11 1.0+1.0i) 13843.23636363636433+13843.23636363636433i) (num-test (* 123.4 1234/11 1.234+1.234i) 17082.55367272727381+17082.55367272727381i) (num-test (* 123.4 1234/11 1/1) 13843.23636363636433) (num-test (* 123.4 1234/11 123.4) 1708255.36727272742428) (num-test (* 123.4 1234/11 1234) 17082553.67272727191448) (num-test (* 123.4 1234/11 1234/11) 1552959.42479338846169) (num-test (* 123.4 1234/11) 13843.23636363636433) (num-test (* 1234 -1.0+1.0i) -1234.0+1234.0i) (num-test (* 1234 0) 0) (num-test (* 1234 0.0) 0.0) (num-test (* 1234 0.0+1.0i) 0.0+1234.0i) (num-test (* 1234 1) 1234) (num-test (* 1234 1.0) 1234.0) (num-test (* 1234 1.0+1.0i) 1234.0+1234.0i) (num-test (* 1234 1.234+1.234i) 1522.756+1522.756i) (num-test (* 1234 1/1) 1234) (num-test (* 1234 123.4) 152275.60000000000582) (num-test (* 1234 1234) 1522756) (num-test (* 1234 1234/11) 1522756/11) (num-test (* 1234/11 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (* 1234/11 0) 0) (num-test (* 1234/11 0.0) 0.0) (num-test (* 1234/11 0.0+1.0i) 0.0+112.18181818181819i) (num-test (* 1234/11 1) 1234/11) (num-test (* 1234/11 1.0) 112.18181818181819) (num-test (* 1234/11 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (* 1234/11 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (* 1234/11 1/1) 1234/11) (num-test (* 1234/11 123.4) 13843.23636363636433) (num-test (* 1234/11 1234) 1522756/11) (num-test (* 1234/11 1234/11) 1522756/121) (num-test (* 1234000000) 1234000000) (num-test (* 1234000000.0) 1234000000.0) (num-test (* 1234000000.0+2.71828182845905i) 1234000000.0+2.71828182845905i) (num-test (* 1234000000/10) 1234000000/10) (num-test (* 2) 2) (num-test (* 2.71828182845905) 2.71828182845905) (num-test (* 2.71828182845905+3.14159265358979i) 2.71828182845905+3.14159265358979i) (num-test (* 2/2) 2/2) (num-test (* 362880) 362880) (num-test (* 362880/1234) 362880/1234) (num-test (let ((x 1) (y 2)) (set! x (* 0 (let () (set! y 32) 1))) y) 32) (num-test (* 4) 4 ) (num-test (* 7 6 5 4 3 2 1) 5040) (num-test (*) 1 ) (num-test (* (+ 1 3 5) (* 1 3 5)) 135) (num-test (* -1/2147483648 1/4294967296) -1/9223372036854775808) (num-test (* -2147483648 4294967296) -9223372036854775808) (num-test (* .000000000000123 .000000000000123) 1.5129e-26) (num-test (* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20) 2432902008176640000) (num-test (* 1/98947 2/97499 3/76847) 6/741360956847391) (num-test (* 11/1234 1234/11 11/1234 1234/11 11/1234 1234/11) 1) (num-test (* 12 (/ 13591409 (expt 640320 3/2))) (/ pi)) (num-test (* 1e100 0.001) 1e97) (num-test (* 1e100 1e-100) 1.0) (num-test (* 1e200 1e-200) 1.0) (num-test (* 1e300 1e-300) 1.0) (num-test (* 500009/500029 500057/500041) 250033000513/250035001189) (num-test (* -9223372036854775808 5.551115123125783999999999999999999999984E-17) -5.120000000000001197084708550423347199985E2) (num-test (* -9223372036854775808) -9223372036854775808) (num-test (* 1.110223024625156799999999999999999999997E-16 -9223372036854775808) -1.024000000000000239416941710084669439997E3) (num-test (* 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) 3.340955887615246120290922872835723707327E-52) (num-test (* 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 6.162975822039157611655737122931199999952E-33) (num-test (* 9223372036854775807 (/ 9223372036854775807)) 1) (num-test (* 1234567890e24 1e-33) 1.23456789) (num-test (* 1234567890e-24 1e20) 123456.789) (num-test (* 92233720/9221 -92233720/9221 9221/92233720 -9221/92233720) 1) (num-test (* 9221/92233720 -9221/92233720 92233720/9221 -92233720/9221) 1) #; (for-each-permutation (lambda (a b c d) (if (not (< (magnitude (- (* a b c d) 0.25+0.25i)) 1e-15)) (format #t "~A: (* ~A ~A ~A ~A) -> ~A?~%" (port-line-number) a b c d (* a b c d)))) '(1 1/2 0.5 1+i)) #; (for-each-permutation (lambda (a b c d e f g h) (if (not (< (magnitude (- (* a b c d e f g h) 1.0)) 1e-15)) (format #t "~A: (* ~A ~A ~A ~A ~A ~A ~A ~A) -> ~A?~%" (port-line-number) a b c d e f g h (* a b c d e f g h)))) '(5 1/3 0.5 1+i 1/5 3 2.0 0.5-0.5i)) (num-test (* -0.2554913394465045E0 0.27042187315261135E0) -6.909044658739340841916780452607499999997E-2) (num-test (* -0.4489211233229662E0 -0.42892136850270857E0) 1.925518625654598642702435865603340000003E-1) (num-test (* -0.44586465919973783E0 -0.15168042462027043E0) 6.762894083058839862686475970136690000031E-2) (num-test (* 0.5509395670465355E0 0.3577558280766836E0) 1.971018410289428517174637096677999999998E-1) (num-test (* -0.42780066410606965E0 0.22704747885906007E0) -9.713106223951470697784938095387549999991E-2) (num-test (* 0.20955388816500042E0 0.605628751935113E0) 1.269118597525194529275610775776050864747E-1) (num-test (* 0.9993471610818964E0 -4.363771855901198E9) -4.360923015803940523218504871887199999987E9) (num-test (* 0.10502219375257282E0 3.425205053451057E9) 3.597225487658284459716764716837978363041E8) (num-test (* 0.7768651149081368E0 1.666066330143864E9) 1.294308811011790623456907580692100524906E9) (num-test (* -0.6438389801759042E0 2.8922130868526487E9) -1.862119524290613178578671687454540000003E9) (num-test (* -0.7427680566504474E0 6.763974500466173E9) -5.024064194944440168218138681386184692391E9) (num-test (* -0.8563035843259611E0 2.9100478627456827E9) -2.491884415429230578930028553142970000007E9) (num-test (* 0.6219502737119671E0 2.8868752190811842E-11) 1.795492832679837500144381979439820000005E-11) (num-test (* 0.6767479505813657E0 2.9324524289075574E-11) 1.98453117144053746900587234314118E-11) (num-test (* 0.7944531541461581E0 8.282076647859848E-11) 6.579721915772496180466156449968800000014E-11) (num-test (* -0.4662914070981966E0 -6.921260263903422E-11) 3.22732418734836218212517276876520000001E-11) (num-test (* 0.037804762510578516E0 -3.044514833184461E-11) -1.150971602284721156705916516398760000005E-12) (num-test (* -0.5364168049485208E0 -3.695280705974925E-11) 1.982210669686983584095600640940000000003E-11) (num-test (* 0.10343751426551051E0 4.8902635121181385E19) 5.058367017968254798845671333856350000002E18) (num-test (* -0.45511004829813784E0 1.8210069906740634E19) -8.287585794769196371535086060990559999988E18) (num-test (* -0.9675158737162977E0 8.097401718869682E19) -7.834364698864051180664785816331399999997E19) (num-test (* -0.06573561186185628E0 2.6049125586869125E19) -1.712355208919177984462215919354999999997E18) (num-test (* -0.5574365795036731E0 -8.822383181882661E19) 4.917919103979402413863422702119099999985E19) (num-test (* -0.4222667103024276E0 -1.8561723355961213E19) 7.837997859065477747526525340678799999995E18) (num-test (* -0.8412207478192143E0 2.3416069046402696E-22) -1.969808311420123220453436412175280000003E-22) (num-test (* 0.24291385591230452E0 -9.448120185342916E-21) -2.295079305344524973092760016780319999996E-21) (num-test (* -0.37792600430678414E0 -2.3929024368177364E-21) 9.043400566424941101603791982206959999978E-22) (num-test (* -0.007648867433060369E0 -5.3162210182098465E-21) 4.066306981313632980042734472335849999998E-23) (num-test (* -0.7631807323096114E0 -4.534410248041209E-21) 3.460574533692296555855373976182600000004E-21) (num-test (* 0.4735366300649959E0 -1.3895270471326203E-21) -6.579919552833457409343160757567699999986E-22) (num-test (* -8.64834403600587E9 -0.14057280586223464E0) 1.215721987203268063989050502795104980466E9) (num-test (* -1.5525713051163936E9 0.10621224657238759E0) -1.649020862802360033147528021954240000002E8) (num-test (* 3.297132746298694E9 0.05318660311813239E0) 1.753632908051865357781730185173082351681E8) (num-test (* 2.1659831568875275E9 0.11704159596099262E0) 2.535101255067452830195785975470499999995E8) (num-test (* -5.533403510176525E9 0.37778599060251605E0) -2.090442326495477997892444645726250000003E9) (num-test (* -2.4217306331294374E9 0.6051350227557695E0) -1.465474021787126179631541139079300000002E9) (num-test (* 1.4048311850866513E9 -4.304799039580996E9) -6.047515936334448947178704758694799999987E18) (num-test (* -5.070278162013437E9 -9.116233758795675E9) 4.622184094703138120556628748497500000004E19) (num-test (* 8.452801605894673E9 -9.002885976919611E9) -7.609960904339272295066535438875484466566E19) (num-test (* 6.352601599408395E9 -4.484034289922495E9) -2.84852834019637276707985964548254013062E19) (num-test (* -6.565407710101401E8 -6.718825369609182E9) 4.411182788445701880089696066398200000001E18) (num-test (* -9.37193973536698E9 9.577576231327314E9) -8.976046725088278448381480077370724757202E19) (num-test (* -1.7766859308675253E9 -4.079350537765101E-11) 7.247724707524128390808760574555300000015E-2) (num-test (* 2.3810136983742104E9 9.195156930614704E-11) 2.189379461049416913728349262972160000005E-1) (num-test (* -3.313966320976337E9 -3.44704749912067E-11) 1.142339931889161000998337758579000000001E-1) (num-test (* 6.598963960681895E9 -2.4298605961767928E-11) -1.6034562503651679888964996364737701416E-1) (num-test (* 7.908258993705348E9 1.528909719631646E-11) 1.209101404084048656249131044486427307128E-1) (num-test (* -5.906667889594469E9 5.917852809041966E-11) -3.4954791162514609467168142486054E-1) (num-test (* 4.86261281419926E9 -2.3925611132123714E19) -1.1634098327861323021375513143190574646E29) (num-test (* -9.753392818607462E9 -2.5653634777279775E18) 2.502099772078991953507318766810499999998E28) (num-test (* 1.5861252889272392E9 5.12939252547053E19) 8.135859201483165467280698143134187520016E28) (num-test (* -8.422142961023593E8 1.0428099441045047E19) -8.782694430425160722507674279387100000022E27) (num-test (* -3.109042783121446E9 -4.138252722536039E19) 1.286600476173334775049764879239400000004E29) (num-test (* -6.459303282089468E8 1.8408981660472957E19) -1.18909195659417795593544068516876E28) (num-test (* -1.432764110232635E9 8.98766033001457E-21) -1.287719715580647603395563949195000000001E-11) (num-test (* 8.539623949953406E9 -3.498784805440049E-21) -2.987830652026891151867478398400020599353E-11) (num-test (* 7.336784327799637E9 -1.048985206018761E-21) -7.696178219612118988966933703567504882842E-12) (num-test (* -4.320357143553698E9 2.591531476439043E-21) -1.119634152697768142457549423101400000004E-11) (num-test (* -9.374098076239548E9 5.5773248420603045E-21) -5.2282390072520541300690003822366E-11) (num-test (* 9.118926580475056E9 -1.379170270330765E-21) -1.257655243712018104094987568109512329098E-11) (num-test (* 8.145792307872788E-11 -0.06511382435429458E0) -5.304036895613925967063321178890399999982E-12) (num-test (* -6.1928426627437E-11 0.2526275616632321E0) -1.564482741652978543296795912770000000003E-11) (num-test (* -8.555119338859813E-11 -0.8366318482083728E0) 7.157485304113477734096792042286400000002E-11) (num-test (* 8.243060442429263E-12 0.3939656708074719E0) 3.247482836708180702664407610209699999993E-12) (num-test (* 8.600529286105945E-11 -0.891441509265547E0) -7.666868807288821095008580376914999999987E-11) (num-test (* -7.531046724969747E-11 0.24398797995196886E0) -1.837484877349259372047496586078419999997E-11) (num-test (* -3.7666526619188126E-12 4.659322150343885E9) -1.755004818033008198811983615043067932129E-2) (num-test (* 3.032501107241211E-11 -9.592046453776636E9) -2.908789149178678011789796814619600000006E-1) (num-test (* 7.311626957349528E-11 -9.061108567148174E9) -6.625144566303134478698468496187199999991E-1) (num-test (* 4.898078204161461E-11 8.88014689134599E9) 4.34956539382539434542556734824485778809E-1) (num-test (* 1.278207138618518E-11 -4.279966992086118E9) -5.470684362336102162321405533123999999992E-2) (num-test (* -8.538580654966055E-11 -5.191059833953482E8) 4.432428307696650304902715905351E-2) (num-test (* 4.0761422500127225E-11 1.527607426117321E-11) 6.226745171030000570391027616422499999987E-22) (num-test (* -9.186363051001198E-11 8.557763803549676E-11) -7.861472520412421845045812851184799999979E-21) (num-test (* -9.89183505930065E-11 9.717968160611499E-11) -9.61285381563042758142312881743500000002E-21) (num-test (* 7.440627873114725E-12 -4.535521332601712E-11) -3.374712644646273959960130740919999999997E-22) (num-test (* 8.701410920357686E-11 -7.032883383151379E-12) -6.119600827175551716944456414899399999975E-22) (num-test (* 9.866226673114161E-11 -2.814669610817353E-11) -2.777016839025002299729708883583300000003E-21) (num-test (* 5.192240545105114E-11 -3.366056660574579E19) -1.747737587015645175992519129700599999996E9) (num-test (* -1.372355669576939E-11 -4.819955130360066E19) 6.614692750256090679268960117974000000002E8) (num-test (* 3.637511103766519E-11 -4.071776382810416E19) -1.481113180452716050522430526190399999997E9) (num-test (* 7.446388208685151E-13 2.7760294268649034E19) 2.06713927911698144246650226294134E7) (num-test (* 6.267855179410938E-11 7.471751480940298E19) 4.683185621908299321917798617952399999997E9) (num-test (* -4.336562006766369E-11 8.143188451558233E19) -3.531344165296609191472762946597699999996E9) (num-test (* -1.0432655006975122E-11 -9.379512413340694E-21) 9.785321714202410134613576821466799999983E-32) (num-test (* -8.167646898574611E-11 -5.810795749825724E-21) 4.746052788431460582580726109336400000004E-31) (num-test (* -4.33805459341994E-11 -2.4289860591796017E-21) 1.053707413137706937228749003789799999998E-31) (num-test (* -1.384613082275421E-11 2.2174009100764947E-21) -3.070242308741338958377843646768700000007E-32) (num-test (* -4.910905591314494E-11 -5.456657623752349E-21) 2.679713043437427118620763024640600000007E-31) (num-test (* 1.3653011366548008E-11 -3.925911962906968E-21) -5.3600520653635635667567009719744E-32) (num-test (* 7.641468950470222E19 0.9034599537348024E0) 6.903761184457755820350566254132800000009E19) (num-test (* 5.146778093125584E19 -0.2791459460022878E0) -1.436702239669392041403916711075200000002E19) (num-test (* -8.874303077863696E19 -0.23153988023519345E0) 2.054755071819368785424861291991199999996E19) (num-test (* 7.10798162637783E19 -0.4719034863212067E0) -3.354281310194779040746230255943679999999E19) (num-test (* -9.820386602197546E19 0.03346146041258036E0) -3.286044775256677372510003197965599999991E18) (num-test (* -5.210458089116161E19 0.11173798093222442E0) -5.822060666098160855554015008516199999997E18) (num-test (* 3.257626718953688E18 -6.150510855712356E9) -2.003606849878328222529021336892800000007E28) (num-test (* -7.755105754004988E19 5.514896832715505E9) -4.276860816013589383294629509647750854492E29) (num-test (* 2.426235084788384E19 8.685431434428486E9) 2.10728984727342930836693974581298828125E29) (num-test (* -2.847383850475709E19 -2.412830829567453E9) 6.870255538040273498936753499177000000002E28) (num-test (* 1.4664659669727164E19 -4.8673539253155E9) -7.137808880686241930432174599520111083984E28) (num-test (* -4.24770317054668E19 1.3102543269150825E9) -5.5655714586597020914994623011E28) (num-test (* 2.17116835964837E19 -3.654789326884115E-11) -7.935162947711353824080778955354111999976E8) (num-test (* -1.8125809977916906E17 -5.944782899600832E-11) 1.077540051981345570924422644657920000001E7) (num-test (* -7.915462827540546E19 9.762153025588201E-11) -7.727195939080587759467382669774600000011E9) (num-test (* -4.360953588949649E19 -7.152431005584812E-11) 3.119141966351983288172806713098800000002E9) (num-test (* 3.550776271395866E19 -6.387656982922894E-11) -2.268114084477872045705002835620399999998E9) (num-test (* -8.278954580496595E19 -7.359178231519021E-11) 6.09263023285252303789473682334949999999E9) (num-test (* -5.5022682113038156E19 -8.979630229039327E19) 4.94083339585058897667477175561012E39) (num-test (* 1.1716230943203277E19 5.5764415854118265E19) 6.53348774559675813536051493554405E38) (num-test (* 7.462799608352103E19 6.061883497941003E19) 4.5238621794310193360802344979309E39) (num-test (* -3.2160334983646097E19 -3.8817785710003675E19) 1.248392991757108737054938769406475E39) (num-test (* 5.868090263060238E19 -8.37300331667736E19) -4.913353923516549470233569081168E39) (num-test (* -7.3652924769962656E19 9.725738480757314E19) -7.16329084655549342691442378865984E39) (num-test (* -6.447063647969567E19 4.0587529685661844E-21) -2.616703871973161409821231651015480000002E-1) (num-test (* -3.1999317568381926E17 3.015031281949113E-21) -9.647894346969533174030688093163799999993E-4) (num-test (* -1.5005852398726605E19 5.391316601974659E-21) -8.090130116403600588996007910269500000005E-2) (num-test (* 1.0084552719733576E19 2.78150956101201E-21) 2.805027980846861049488413624776000000002E-2) (num-test (* -7.171404412051077E19 1.4733392992015492E-21) -1.056591195074223176150038792848839999998E-1) (num-test (* -5.909802783283228E19 5.356071274587122E-21) -3.165332492601832012651928738981599999998E-1) (num-test (* 8.272641144282955E-22 -0.16191056182923802E0) -1.339427975482523749443486923949099999995E-22) (num-test (* 8.410471541398583E-21 -0.43256058128353736E0) -3.638038458816019512260007931560879999991E-21) (num-test (* -7.887238384137063E-22 0.5589746137044918E0) -4.408766028968254895651429959583400000002E-22) (num-test (* 4.778995446616728E-21 0.21608373898977795E0) 1.0326632047200663557809034755476E-21) (num-test (* 3.992449163872154E-21 0.9593422165456676E0) 3.830125030315009512425388980010399999991E-21) (num-test (* -9.700320218813958E-21 -0.42620535269852766E0) 4.134328400148261975602018057078279999983E-21) (num-test (* -1.7901566262876555E-21 9.461674014776534E8) -1.693787843332593653628245958251059055323E-12) (num-test (* 1.0928019952544443E-22 8.279199780524873E9) 9.047526039267738313652918648958873748777E-13) (num-test (* 9.942869097320962E-21 9.523169242022762E9) 9.46876251650656124754254949341964721678E-11) (num-test (* -2.7432601692209267E-21 -4.922145522647528E9) 1.350272575938808435595052562419760000003E-11) (num-test (* -5.97929682563092E-21 -6.147792689359443E8) 3.675947731212389417723913477756000000004E-12) (num-test (* -1.3564305221188254E-21 1.0862842413758955E9) -1.4734691006989580907776383331457E-12) (num-test (* -5.446806293721964E-21 -1.5358504316888942E-11) 8.365479797538664267835041412208799999977E-32) (num-test (* -1.0222776562632463E-21 -1.9781477525280056E-11) 2.022216248196737715829186720579279999999E-32) (num-test (* 8.192540157543917E-21 3.3215076993103644E-11) 2.721158521019146605658900627335480000005E-31) (num-test (* 9.685592607330157E-21 6.034805605641166E-11) 5.845066856067266821880143244306199999988E-31) (num-test (* 6.671870463340688E-21 -9.07657686679269E-11) -6.055774510579551477490933797071999999989E-31) (num-test (* -1.109409648670322E-21 -4.7905821901849965E-11) 5.314718104539438656835419223873000000025E-32) (num-test (* -3.9052432481663676E-22 2.0306112771345453E19) -7.930030979680167745084943578652280000005E-3) (num-test (* 8.596834841113507E-21 -9.453548987989818E19) -8.127059931212420192062869827172600000005E-1) (num-test (* 3.946325780779758E-21 -9.084484011754447E19) -3.585033346066809630978128408382600000004E-1) (num-test (* 5.3518824877647604E-21 -6.814116447592617E19) -3.64683504854607466529059878139668000001E-1) (num-test (* -7.456278485417833E-22 9.61914445493285E19) -7.172301984744205963559813785437470719996E-2) (num-test (* -5.0781537010216826E-21 9.216915512986622E19) -4.680491362427717476508990573017719999994E-1) (num-test (* 3.2906792172396555E-22 4.571445785546992E-21) 1.504316163923729767672342114125599999998E-42) (num-test (* 5.39814714322422E-21 6.687033308557664E-21) 3.609758975123575798079875142208000000008E-41) (num-test (* 4.3506183844841724E-21 7.266196706225928E-21) 3.161244897538486151238585450198720000008E-41) (num-test (* 6.910763289107986E-21 3.910584203890238E-21) 2.702512175521023610171407324066800000011E-41) (num-test (* -4.6131515924393325E-21 5.228174479773633E-21) -2.411836142691841383820888561997250000001E-41) (num-test (* -2.1886866436065787E-21 6.29322016055891E-22) -1.377388691069093503544474490121700000002E-42) (num-test (* 19813/30200 41168/38464 2571/31632) 43688873593/765502835200) (num-test (* 16476/12673 40086/15929) 38850408/11874601) (num-test (* 22713/35036 2008/41994 58982/21726 37919/44341 59831/3870) 608349727545125531/546777281752405290) (num-test (* 26100/43623 64347/64939 51424/56858) 4798021185600/8948293077857) (num-test (* 13336/48674 21323/50854 60055/14813) 4269362918510/9166534724887) (num-test (* 33457/53498 45548/13003 50476/8209 9613/3657) 369717652332927784/10441582621738311) (num-test (* 31186/2829 35725/62132) 557059925/87885714) (num-test (* 28682/22045 54652/61935 19725/39778 14431/165 5682/36504) 54173177045874781/6989848058967345) (num-test (* 6054/59436 53485/47493 65091/13749 59111/51596) 5324119682728535/8557570117787688) (num-test (* 26270/51496 62100/14371 9302/6501 11918/55524) 627970006908375/927532016146043) (num-test (* 6865/57699 53935/1664 25223/46128 13016/30664) 15194818521234275/16975596844836864) (num-test (* 0110/001) 110) (num-test (* 14000000000000 524288) 7340032000000000000) (num-test (* 17500000000000 524288) 9175040000000000000) (num-test (* 1907348632812 524288) 999999999999737856) (num-test (* 524288 14000000000000) 7340032000000000000) (num-test (* 524288 17500000000000) 9175040000000000000) (num-test (* 524288 1907348632812) 999999999999737856) (num-test (* 9223372036854775807 1/9223372036854775807) 1.0) (let ((bes-i0 (lambda (x) ;I0(x) (if (< (abs x) 3.75) (let* ((y (expt (/ x 3.75) 2))) (+ 1.0 (* y (+ 3.5156229 (* y (+ 3.0899424 (* y (+ 1.2067492 (* y (+ 0.2659732 (* y (+ 0.360768e-1 (* y 0.45813e-2))))))))))))) (let* ((ax (abs x)) (y (/ 3.75 ax))) (* (/ (exp ax) (sqrt ax)) (+ 0.39894228 (* y (+ 0.1328592e-1 (* y (+ 0.225319e-2 (* y (+ -0.157565e-2 (* y (+ 0.916281e-2 (* y (+ -0.2057706e-1 (* y (+ 0.2635537e-1 (* y (+ -0.1647633e-1 (* y 0.392377e-2)))))))))))))))))))))) (num-test (bes-i0 1.0) 1.266065877752009) (num-test (bes-i0 2.0) 2.279585302336067) (num-test (bes-i0 5.0) 27.23987182360445) (num-test (bes-i0 10.0) 2815.716628466254) (num-test (bes-i0 50.0) 2.93255291463847587034176447517387076592E20) ;2.932553783849336E+20) arprec (num-test (bes-i0 100.0) 1.073751199431789167620943174959211991306E42)) (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139) ;0.00083910652502692 (let ((twos (make-vector 30))) (do ((i 0 (+ i 1)) (t2 1 (* t2 8))) ((= i 30)) (vector-set! twos i t2)) (do ((i 0 (+ i 1))) ((= i 29)) (if (not (= (vector-ref twos (+ i 1)) (* 8 (vector-ref twos i)))) (format #t "~A * 8 -> ~A (~A)~%" (vector-ref twos i) (* 8 (vector-ref twos i)) (vector-ref twos (+ i 1)))) (if (not (= (+ (vector-ref twos (+ i 1)) (* 8 (vector-ref twos i))) (* 2 (vector-ref twos (+ i 1))))) (format #t "~A + ~A -> ~A (~A)~%" (* 8 (vector-ref twos i)) (vector-ref twos (+ i 1)) (* 2 (vector-ref twos (+ i 1))))) (if (not (= (/ (vector-ref twos (+ i 1)) (vector-ref twos i)) 8)) (format #t "~A / ~A = ~A (8)~%" (vector-ref twos (+ i 1)) (vector-ref twos i) (/ (vector-ref twos (+ i 1)) (vector-ref twos i)))) (if (not (= (- (vector-ref twos (+ i 1)) (* 8 (vector-ref twos i))) 0)) (format #t "~A - ~A -> ~A (0)~%" (* 8 (vector-ref twos i)) (vector-ref twos (+ i 1)) (- (vector-ref twos (+ i 1)) (* 8 (vector-ref twos i))))))) (letrec ((factorial (lambda (n i) (if (positive? n) (factorial (- n 1) (* i n)) i)))) (num-test (/ (factorial 100 1) (factorial 99 1)) 100) (num-test (/ (factorial 1000 1) (factorial 999 1)) 1000) (num-test (factorial 100 1) 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000) (num-test (factorial 200 1) 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000) (num-test (* (factorial 3 1) (factorial 5 1) (factorial 7 1)) (factorial 10 1))) (num-test (* 30370004999 30370004999) 922337203639284990001) (num-test (* 12345678901234567890 1e-19) 1.234567890123456789E0) (num-test (* 12345678901234567890123456789 1e-29) 1.2345678901234567890123456789e-1) (num-test (* -1.797693134862315699999999999999999999998E308 -9223372036854775808) 1.658079259093488393947175407121858559998E327) (num-test (* -1/21 -1/2432902008176640000) 1/51090942171709440000) (num-test (* -1/21 1/2432902008176640000) -1/51090942171709440000) (num-test (* -1/2432902008176640000 -1/21) 1/51090942171709440000) (num-test (* -1/2432902008176640000 1/21) -1/51090942171709440000) (num-test (* -1/2432902008176640000 2432902008176640000) -1) (num-test (* -21 -2432902008176640000) 51090942171709440000) (num-test (* -21 2432902008176640000) -51090942171709440000) (num-test (* -2432902008176640000 -21) 51090942171709440000) (num-test (* -2432902008176640000 21) -51090942171709440000) (num-test (* -524288 -17600000000000) 9227468800000000000) (num-test (* -9223372036854775808 -9223372036854775808) 85070591730234615865843651857942052864) (num-test (* -9223372036854775808 9223372036854775807 -9223372036854775808) 784637716923335095394403086170723686146950778700062261248) (num-test (* 0+1e20i 0+1e20i) -1e40) (num-test (* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23) 25852016738884976640000) (num-test (* 1.0e70+i 1.0e70-i) 1.0e140) (num-test (* 1/1024 -1/9765625 -1/512 1/1953125) 1/10000000000000000000) (num-test (* 1/1024 1/9765625 1/512 1/1953125) 1/10000000000000000000) (num-test (* 1/21 -1/2432902008176640000) -1/51090942171709440000) (num-test (* 1/21 1/2432902008176640000) 1/51090942171709440000) (num-test (* 1/2432902008176640000 -1/21) -1/51090942171709440000) (num-test (* 1/2432902008176640000 1/21) 1/51090942171709440000) (num-test (* 1/9223372036854775807 1/9223372036854775806) 1/85070591730234615838173535747377725442) (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 720/183561983334767209753061626751) (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981) 120/2756144552405627689570151) (num-test (* 1000000.0 (+ 1.0 1.2345e-10 -1.0)) 1.2345e-4) (num-test (* 1000000.0 (- 1.0 -1.2345e-10 1.0)) 1.2345e-4) (num-test (* 1000000000 1000000000 1000000000) 1000000000000000000000000000) (num-test (* 1024 -9765625 512 -1953125) 10000000000000000000) (num-test (* 1024 9765625 512 1953125) 10000000000000000000) (num-test (* 132120577/12 33292289/6 260046847/4) 1143841133453061178785791/288) (num-test (* 2 12345678901234567890+12345678901234567890i) 2.469135780246913578E19+2.469135780246913578E19i) ;; IEEE flonums are not this precise ;(num-test (* 2.0e-170 3.0e-170 4.0e170 5.0e170) 120.0) (num-test (* 21 -2432902008176640000) -51090942171709440000) (num-test (* 21 2432902008176640000) 51090942171709440000) (num-test (* 2432902008176640000 -21) -51090942171709440000) (num-test (* 2432902008176640000 21) 51090942171709440000) ;; IEEE flonums are not this precise ;(num-test (* 4.0e170 5.0e170 2.0e-170 3.0e-170) 120.0) (num-test (* 4294967296 4294967296) 18446744073709551616) (num-test (* 500009/500029 500057/500041 500083/500069) 125037252995542579/125034753009582041) (num-test (* 524288 -19073486328125) -10000000000000000000) (num-test (* 524288 -19073486328125) -10000000000000000000) (num-test (* 524288 17600000000000) 9227468800000000000) (num-test (* 9223372036854775807 -9223372036854775808) -85070591730234615856620279821087277056) (num-test (* 9223372036854775807 9223372036854775807) 85070591730234615847396907784232501249) (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139) (num-test (* 8736/53718 63349/36593 2595/65149 64793/55654 43939/26485) 1390659088083157464/64205855201422018751) (num-test (* 54969/62648 20435/1782 23198/40155 17874/3641 36734/7395 36402/62041) 13827254253801875273/166253154009320895) (num-test (* 60943/34150 48303/50035 11510/48029 47829/30632 32873/18834 22417/2481 33058/12503 17309/26655) 1265424338804436192426278624740533/72495658400472874898571063803000) (num-test (* 27004/45232 47028/36314 65506/17434 26523/52475 51611/16322 12090/12813 11405/42722) 3271229108161979601346009209/2797073684091589444785715868) (num-test (* 49543/13313 13047/51213 291/3256 62128/1256 22252/50000 6721/49922 20433/22341) 13848375453906602673519/60295540932769356700000) (num-test (* 24886/21411 24103/16998 16669/52061 10869/30910 63499/50270 23235/64564 6966/28625 26608/32424 957/55396 36661/63680) 252953666671747144783991553669663/1509848199529034284126219405993600000) (num-test (* 10658/5373 33874/4120 50218/27624 32003/31997 36890/5232 20975/22222 42566/23821 32593/38877) 79446367034396970532424018904275/268718417239101417993099877056) (num-test (* 47540/33937 9597/40213 20965/57592 33167/35761 51930/46345 5554/50786 22141/42957 38576/15987 33878/10223) 94287693697494661741863470671584800/1654020197364120441179131115365910721) (num-test (* 25521/34695 63478/8947 53875/28904 102/42469 1068/32213 42994/18166 58634/22402 26266/21149 46345/3896 12489/21331) 2213218340996076291055274962125/53325428353972306616141560355198) (num-test (* 40953/64127 12327/6961 22167/29019 49635/32796 7657/16493 22904/2449 61975/28667 20516/6004) 4090451708614082328368601750/97539662436128754819974369) (num-test (* 10109/23696 35613/28646 25222/28402 1339/25272 54032/1074 54456/39833 38346/15060 41802/41388 56761/38781 54798/1261) 8983158114946791370557093367421339/31998667830808722335250880339080) (num-test (* 3039/17717 46858/6352 49984/23638 8924/34958 34932/46369 4022/13488 38433/34538 46750/2645 43883/61392) 6694310491567033247725656525/3103280388958588906030059796) (num-test (* 31536/12807 62185/56296 30389/6526 53321/20781 58342/28759 39269/53225) 108723306155880938114002/2235179806925856029655) (num-test (* 58784/29145 14245/16217 32388/51826 46401/13774 59002/56853 35615/17085 41786/53891 41646/4047 49564/4554 33807/36767) 2545383335773830668541245993741980009984/3950524525412306420222230035841219227) (num-test (* 39890/59976 16641/39135 36632/15382 4037/16674 32789/39049 5621/24393 7230/37552) 4325746891228381220240705/712068637373286863948894448) (num-test (* 64658/532 12056/22843 48004/41965 17525/20404 46987/34608 39890/37132 32167/52059 26352/16429 62428/21665 39941/30015 19743/16456) 24452413077816850567396233613920457829/58345020552056693855433778720676771) (num-test (* 46215/56564 13217/15837 35488/45940 34754/59356 39024/37453 37845/19747 12129/17699 11475/23380 3024/11313) 9665517455334091811247537600/174562349461714107552224378659) (num-test (* 20849/43211 44644/8350 39144/3119 26169/58795 48540/58870 53603/35775 50387/50026) 1503119635914748931419827344/83828469729567613584821875) (num-test (* -1412797070596191471 -15492755620416346417) 21888119755986895161222137392796809407) (num-test (* 16686841096925954110 1491135775021813104) 24882345731730524499708005167300657440) (num-test (* 13262412958100188045 -18379071970155621919) -243750842254847872704698616507823758355) (num-test (* 889503034794263569 -16600674457216690894) -14766350309325860687849239111838240686) (num-test (* 3148165694020236318 -11771070679825280729) -37057280896113409834434531491271315822) (num-test (* -4443818546267181727 -12001052312087213799) 53330498839175802532024121011435050873) (num-test (* 8305259347214213793 -229351169208067535459370186456659711595) -1904820941859811670566233132773219565154696335396051029835) (num-test (* -18273334758510166901 290047155020180552782039318570071650475) -5300128759437251944808204783222405076790289915320785927975) (num-test (* -703280433697652940 91110448009482115063492795153459771021) -64076195390496041906141380919369524419358692517527451740) (num-test (* 15279634596127882146 -220998726467849290098339792307263567896) -3376779786638352686104608499923871317791563686466157184816) (num-test (* -4472497681184076830 325612942672822430032905460436166528379) -1456303131067722058341139305566346079551678140995111358570) (num-test (* -6180420673489141029 -161157288800853703711204405567379740552) 996019839388256252540244286609069684717518686623358308008) (num-test (* 14044956603588468379 10163190459901171254101452124764637970005230126310661589196828892266636678427020930101076689732526935899135126391465178494895371156141265424428405590113790) 142741568963316278148132287599703960511135825069792278910440475692913696263448088587778211787403889397993501704943449376875999977937418748662459138952952917221024170426846410) (num-test (* 2133283347509865817 10577710515843519541178984366353275630877942729579274295972091544607384358263130633386329706527832990861547566574369528634541156662300858851752195966167381) 22565253698228972909216255630133478029433774404794962869038558824053350969301054394347471181756471783852326407546652836376109109470959746153989521923555764579738243072315277) (num-test (* 7812722507014599311 -5055959518947106416800910724733658104378582281318226107212861190073091017493970778425583956006925004399967175604321778956828368132273155364830637407968648) -39500808728232764770485117356353304373275127104839804121600969932458363071148383405901570717732548020267052999198017578112731079638156026910705662052515278317807704170401528) (num-test (* -17560801708050275829 9842515227842383346577123873881045824143545509071137371075701856197189100217561683579562062872293951325890789283651221922663521213150065638405410634222129) -172842458224605375239887212582262805312641302639067963604956593404910080268476692854082531021580381176489626536608405283010496488558204787140272050713264572452317265305619941) (num-test (* 16743386830114877156 7347065846171565625701636575261347705942035850951855454324853850791855951431141198155170102434274509450315416946729031216385536668189501958761688618635668) 123014765528775807847206414290825117502032199391400884957413813554539073118943905948723779020186281150198999824020769031248882909461419778092564985979904308229718874140000208) (num-test (* 12697192948029671719 -11416780209809507417142822520376617951137069007568339428552592261458272400645205700952156716454820410468812274673183389934216970221062627926131479014990611) -144961061169197993494569769162151457365959287966302572862364500950127981616038900865036521107816831702945678695331078399461327412574397914795455218447174498277798426197230309) (num-test (* 17005139720743105479 -29990519259587469661876904501488342396062731024702923152492275204626478246142153608222329335341363164148761307659972897552084842238285026253664841395295138667328930482145590159132144957515157474957872335043653264146346772142483721767458961320947069718037828473530001033848282453826154763424789967441239969918856795769965946388666154136004597297855416503729657013008165049478441197537144135384444157408972370236442813734429031404855591324183846423588871065272526864866155918285777640819778251612915859290336548446745308788013234099839998683451658620461972798204104633072664604846231692505409653434538208644416538994256) -509992970306921990341332390474393215554862069848994183152714032617297815196921655222705396130464246880845576204295466273071779248718654338767559016551390771145212884412809612574391658668778295682412755916528976282396155832617323980694289208942491001345059122414240884660276842648466533488559879226195446807748573906940273568334343093922652142252689341425941673567630236228358747411926991658260241924294146562230425295426217833820067881064577380516936937782688004146531121831211284735538742160763820814174631414364095096099434285754767091040812242751724012532803037860394426031234340719537172735695313262283511554154662650333168783128624) (num-test (* -15877530153400521290 27863984127681242643954505352420303514833683768731313003271701952957204538094398204984051331105594788039352443762851136101330385230866919393696564428736685568762923746771275677491379334452751710169529933675128178840986001684425353245791752781476028565228371147542431713985092322787978914276414008774443194161599919167210582437024618824616489802661351916633993681556274980075051797120207655478780052593534285265078265845445633803877185868676955831374479850746658711791169579387317321983669227930929736238215792068273805543745311609083833407544342964285215427999724272264458975101474080574470499647168865409458531868592) -442411248181132450919255517905812929771246981404050821923231762557171158858876183536414772404562764742655092127161703706239729646027465795612501446223663310668879007072125975886873343449629108246953385822769744013416908613100114754904323190537317463286500657291202287742354250227377164455244103312266617146454847578457073139633297517170508179596166314955134347046515455569689877574427319658085169791949003021426613961459610227430636932814700361914589752207776142403364490846294795496119883683491811246550808038342285518518431538295199537270236275774546666026424361019715280652576803278928827199810150387207105149968313623040090578323680) (num-test (* -14162897687527555611 -23016403916121951319848021112075986869602408568431399211927062304968548663313037929311574133954267816204873252195499803324830278637331653769648377216095499136975244697758388851688873078022850203685120154634090802825656419418077380419130449990938627982123188424119187922828250625318327074513352279785514062876718714640725789938556578327139793467832731546881422469843509318627826856881082450937188956068348931459011923844607158528494902828851692203126881727638511348944908726926619613375594042390434147948508706733126737304560579515324106834237197081860910657003346633962662773394999353766192391746258372744063777808796) 325978973798843759388794644178802841408656469654887121096165875654577046313115917671847505813174070119516580105483409446057747653173640660143855580491229746795572929387698247460831363721394707501497262525550824977473864621747159715947297817600227665840640555029633517390896890601028716769035575763283168066843141870124768085499453574902575378368669494153555135898430469356384416638130459557518713454927909937610851489821263029886989981438507377741962130296498574556444168140838201069779040087521405032426995145166201901368032136008107323350679784004016321425234898132080844200202007395427054392280809376612533414505539109579739614954356) (num-test (* 10844738523441551664 13010289169828379103330191247192587220592807931898339555723704078985668371901953113936581573750666143303899278973814509164982887504269303358034042953769514772858989849512527461308415676004712388964136857232374888643347097138114199889581495448978914022318770898259317738823514820591042321773469959130347470144905381758960436645008051488666423115693738341045851119808222048272924385188356021826450267608127588500233526688704136268009202730309974485584784539415807259862449203760469406037505772435323036790641520939576046423540699016607317147689982042035523118533555744274806239272109508745089640043900389441390176681340) 141093184161152226992592021994885140117836445291515772908453669279294934817987511015413332614094493905560980363483549300117114491702466085602279965168041684355125886388302948336158133555051817733078300668260616983283027038746214728386770752826764135491650323133831923154477800324207350667020747545837613879364064704092093040155243919335078139087599906324684688427176309081290932504214653249366429592335409761783188358003723753633106574740731573467850133547164922532633897844647383889253777956821171583261238607289172489135768839436605233457738153233579088224808850428203888700116300637190661108848906846940291749737998056247719674749760) (num-test (* -16402132873169057380 8202725117980211375579199554494319645475746305836527475507064811368616698686329266053570766100878145903342129595869654087772486685252653587846560946850102095086896668181099435964053041678323706849735936082196618754721606824996486473796843333331029865501790248862590712245450877098960007272754260813822886287008295409755783478345202299352891066800825979067590290793893933819913530599309037639082839491869155044147367415785329077864525961799400923643936705317921900308490987828345313709179960659814100113658528990241758360711799009722683007157350272749544178688961738222930753008443755881419398858537860612954576778456) -134542187307192759584182063854799850608007421111316277594191532129597970622559949723743396309231347084450105499455916612009290113746722460358793168839937004812915757145655285798961178877391232945062437277255128401572171216279188126380587081673725314534095093062983435026047851041796084651601813918099532876684901239903769891552275465470747567830660442193995685219383258617057944010709906130655663966913354414611799232001438943448374556294933488875450563987147224709383408815994320229340710143082135667640802837699940654151297907451396297241124380508001357553893328703788960812706653503939250831164194874527033594779746890593262611805280) (num-test (* -12094905083549825231 -7303327854122277566083382629094740392048421584433028903125893639493993705575691832165314461496849401726460344615713884253150283931509897329926825128629833541892164122168618243719393446304446866677253728405617434021389128710195093788280203239300086905325641224801020413858421914412156234316517981228056539721130386645649016559425091470643854813419057026759188125291655398451427686659900364573485593902992038773538760663063071699966278379037038361219424927031644750173900916227834573604566165762753650347331082640552394430002401423199016978155236550541225512734287851807727860645247391524620773399994302380387697957581) 88333057189654571362020288527489792875655269960629008914349561689924145109953656394378545526256758871407020025766992398117775520525507898420898102744530402370720932219749861094609497366188371774072368034971851022164946370916317410415503705484491514312339956381120953283812334833067601825812118392757289250628861166579446800637104996060739031010579056633535166403083327528575504427815713481850979373113173151813491831551023902022537957860211597622343157802805275942920911544696695931809085743355666792408029743911424760065578742910735408262758198787195579745280191859776661700139596074108035867940154338953640690242795671183308201526211) (num-test (* -81618231044418675360403541307856740187 9751573706924018395) -795906195858402819552264165081526765614024708979523739865) (num-test (* -167600745660011044249531125104202473984 -12960244919927910377) 2172146712516287908809731894157839567367040369214826131968) (num-test (* 90306383312124738690336097936949488486 156109477991590792) 14097682358164298866835386043901377722456291173827620912) (num-test (* 126202800261728727198105694812165074067 -17404362862588500316) -2196479330029905727399352310201914876903532806486592905172) (num-test (* -80093647977875266525946940496137725572 -9499399805878278852) 760841584053111508349403804472960020663660465509267203344) (num-test (* 304052889577333477963637861956318521374 7233536405885618691) 2199377646072361697737485358722028853038393128548297401434) (num-test (* -124787646062877233829165925777950698937 -125798384154373172164515376683173327013) 15698084237137783175768362160964949930745617334715009097620154581879012485181) (num-test (* 259623502197082370239517374851053110076 307089583871541575627915295134832918432) 79727673252974285068387698133566605944659309374400074880377824560177225320832) (num-test (* -245358177397026033963771466683003477163 -285087883756432161967673595037725276963) 69948643556453419103498093570621669430956866597291662675473644085666220495969) (num-test (* 46731711386059374483493216849082745840 -216522280665540473581476116002923812173) -10118456728713381305690589407461434638634240429858378588644634276171257110320) (num-test (* -301422430661955757433852743238845048860 -737194742467573013847855072675441356) 222207031145790358162820429948896977201848379524899474475604149595884654160) (num-test (* 109781582310220385246795023904554278713 -273317662617851276579672019029762858338) -30005245475518685175699313262818315773200953201653075289648004177366787958994) (num-test (* -312236719893391897821327608828679767006 -661158307192284418474080017860142217763949256471548515134335997907628404839044913830388499435166012788226998900468665646723366842553747501004752506346280) 206437901167986463762021023207669068873036145952740267172145693855475451354717023377588805030022300923600718715029262618794758202955817341818233889201852381575043965927328029955969846754837680) (num-test (* -134379788461141842858846278268259347105 -5535479645589936472405910397299739073641612836770238183712206042659632410776896398062277742229906915852933418684231779996404071421767274180368154310128427) 743856583805332082970350662728998610690268824090148728726850517499798631519601137183443104910590855501252539324674812560702657332874686395923181633958702249128106139207076314713649515720653835) (num-test (* 278271843790644800793473851247546123375 -3845690285506025443856370771250487683891303505653819308540635173436088084480277686684743918745832832765066355874381847690771330587033980524869033600561589) -1070147326395532917564114389205677334125034378502074943828571411806344559859053091006175486397820822872698474899835730026158782698085673635033947150554253148685482702599776833910878579880042875) (num-test (* 22345490710865165412267189692679994671 -13168094845644809414256057134926669929759930873747535851687323456073141938879368460977723280750841588750507348317544461824280674332488497533955177541413394) -294247541053147552931885013427268298282376074124656716577088212043667912662239091316191145352314750820026626159649861330384837204227899202392764926604802655267738710003310052268554637728023374) (num-test (* -223445051950608517881717261787296926498 -2609806601119499724524852022247741111662431776874117401343811680374867931883996125145979162937751368655661775097445043144114599069842524778189198926688379) 583148371568187658089071213924575304457465978545376486297236105670932990897420147110485946155066725440999079357995678147717407410446012970360780626554347417807723098476525833332400212113766742) (num-test (* 12604140228725912459681435851589379433 10671266866958584640992033560488052420339425977492420594983497264069815016478448589306666811246532193922229713077112601565462530332258877522384022088660628) 134502144009302626262781543880199144227907004673612064586081220538754991037447647926963488301214672345398823354945333417956344119228084327815583754032364976497975702972112644238248704660063924) (num-test (* -221289678591114384943252477126208006780 20020996887149770966522122735176842174467884990518978494604707026520269232864200848420530223248762875769520715632742683760311747174524709550334825291720803698613541109690224185041740294906022358446325921538593105347423518731748623037078340006459454656405997570119591344894717789372844612253617591807770017562530034107842444403952657949565007792107071767260484233194674888488789619319597151367813735192433631007526015463229060702510632792171187339118004038505860316305860704455466207113207893106982258864355430481457640304138738182009363353560090082819036973601710432437342931523433079941958203038050750205966472435692) -4430439966231074415853738608900692925851705818190624801199561884242897308817127146763274284287396980593383317678766559004881552228480591814939402896201244425805503258878061459604511214900528594870260206969839682573246490602076070316760182753341371682323914671418233629420599310422437691170629449435494697829163966912842611408632129590129483811802031178053300073562716917597174161526976287351465154825036851645956354853960835948518860624747958440181683978083391663149733813297698623499283645627889274004656942800842013709298338912226207338477579862672216831422765369078886850523202897989792734789430796029206661261129141144642117177625405158700499049991760) (num-test (* 180785619668676509441152734583033930295 -11909038209406834057075682058438206007134213485822042209417443270921391661498900475635417780140585878716264253792335317341527677051828500780153492153490249297998660274828986996948999762620400587091118252205695562417522111840305140989214300921122857271717052213225664738544344394774362885331856170636862181712515248810239601812262573113794334115259873527539564296101166439562124016438281173202196876398090029995104489712272260608848551754611421227761245487365953257890749115194455096508613617028024932657498899001119282498614739316599704645009607294747043489655424155986912576002393048535846081096337705941547991821928) -2152982852345560218506186041143281789706715672110278207735389192913214838321097754496849942223194392302524369156102301165660674797665128931611291246607346536492650554391248756408556789391955568308599431054809433808337036546281323840555452571430884302696950144068129601527530304907460164571704857360215834011779559395577299313379666503707563751314135201994045874159291100986903645360754621200008830207429980872071814202801994486961737459218017354210479544121100423399040398021780750351097082070296255480707530391964970754186799748521538525274241709676878827522138880241734356460339681718690408853314007343934035505873192699052380699509877559455199604508760) (num-test (* -196121729286794751535600080816329923561 31755463535476988506639447113088283661031267977524968610501132544098607201258848456920865390506381665724254592728643925608893982794532243733117636645689751360224314774452374503339856173343683819017479955914451013484169313685311530532055735999039466721411777061709328450052490025363788971916050033904534189719389237878257877112162843506491071470067738867693853480174965212750301808781573369342701195147083717623066339671595077736036738235636996351642097684597005928843274525502529735435418805821748637387888409663397547514467435322454217015563134545731593492200855670248739786405074231658957946422903165662016649229286) -6227936422881500100190187768375947805694946596622670066116457374856427496311253030141271922822486386675428302332027411428470488965226898801659352566022706152307022438261392466548357753526474097246042956052374187605144719189465046544498482461077851578811186829094445089366592317045580466302238653533114619908864036973070346979261546801894831273337217021756025770590122176562027129481076270727248949609326868225755958667670279949371399535144788247565199415296122873444199709788941984099349149684384486618280260678252604631431089580057102263617056951788273430713908768738965854953667135156866028646584137788146112300214498814212865170902491169332389942607446) (num-test (* -149247491509558553673630984739524508601 -9241905448313719916485289537122695595500213295294799660583133638026091750542612875183284894676615989153030773719811347110864468582634048542108726080717551794580656021381515769591713295631818532114918070215760259364277583650102628486861397602958930509695263902920994329409932518607260720657755504091822028630927071374796474717671220452208310602827254296323761245420486376569048549643478954846020045263141546849795367522490793641049509748005893155533480849922847230018411440739584477452313387881413141538766185123978087175960946255649923135634987656065468774634483495944248865774633962770893338531522570776854773975281) 1379331204929344851843348280532786532350930013132149419346606977890849868537539899667631713548510207947097949976792337278764045110931774279794402312944786743575421497528669859045492875676005849752425421867514661792129580445000023570590786705609341859529483054902802038173138834528021423393677908655442991197348183257271932188161681770513283703502340499171444058119260228931558784004778969491586252899270869275893402714040693571919281494643765571068045362364213060063345212881008657925426024923296369533374671614852576576041747836643356665301762059898161073609265572267138950725010661453917338098901465732991316661901878681888138048552901254914604845891881) (num-test (* -246070233154436622785727814428081917418 29761582253452470642591719346200231425423204062498655510037025199574178834762931489817919404889920159374886981199608181795387339523762458361385170203883094308920011218315748466148953320570427838912637152446837553950810011344492780712558515815917745810385725989241835877316836808088478276603934260581342710503593237081689944686263274319354100341139245512159619947319496638082702549196795236216458749363904150768879765280332386830831409591769966706351022328535490587838695167807967607003680703048770719240872629379640571077329748828739281770075441660330884779539288220944313294762143588847790653176774089774033399559617) -7323439484151992757431054484912931979861244043627630118213112440051387392428853497035249623931234821362770902740177541812170377563064854590834087655133962963430877452052749127605572395112726398103244974178157574726551814002744001021805127518246639418981066588073652668879613252372759895389345727455380224104332342029151667860553645106555190741775758687650292791318963679857313030729683299101577207875499929500963723267185390425716927303375831321783415003339099100562942730763231688479910689887284950156875532151104047755803876078837921949287811575034368641167438367411569736575067233548122814012421044943430647665260439418887639347030312118291762161708906) (num-test (* 203826295936164259559522643510940430939 428315860474710981601019542870649234168732095026625500771233691514247613083810271191136212287636290276352210600151884730196161003906066671915478570992925366265552107746965374246537358349673161970290367972281768471743836339191023211359427335141701167253694144280251188008871929010775436125645541749886873478179599464478734149706121117222690271210887178499620737860802605991262799781279373870647695125320153193063528861104479576369448865373971847676465682752435142074973627172566791961541105525781297462635428308325033717669972726101583722868689418677558787287897456521530400671342257419067050354522203242849353639864) 87302035331271280954456598486072605056704393103691656908943847729634903654600322194677794243221825233700566108459784062758955025931450719283517278054268553004951352280583820782976072352456972931479389375165173986780482062859853305469143408707179895843295115510597584169486406323435925707638987591151227843652210256611991940374072593149367903739596883229844326054223707236369465710416960023659329202073724249764308867733476242261506975691004092043954515337899900837434270833782490145948781128533218641649564543508314976001614187701395586824982250794852925954991265270537649691628899148413763865280007928191637215283244406869662872539567459561720369352296) (num-test (* -5899540498246269366107488541138263797694914692322476860852796858749106720144552037986906792251681094769894732746138541066810195167688318229720888479512583 5834015210744942902) -34418009003174534626858248456163154666511779871358190892629413477534042866009573638264296461516598238780495750056279721797403178867717911762916049857737963922333901125535866) (num-test (* -7558198374656605586076446665394545534375963428962439959101805545423930654069723860456022097647139432324162475685494459942871728608277717748075653794546685 -2079670855873590264) 15718564882684481784074014915267371190416032453294568239793060140651422710113447422494938907375595456199203928496644205320139985222135619659630853564447794621716315309474840) (num-test (* -9442744083812363570102321552182535031605446031706376100893354933468482520577272174689455502380973733378565213055641110431767353396963744600184737808983381 -7204974197101757391) 68034727473703353914019458883709211780958983263702756416891835054494728840771498925306650413027883039860202168095834137357212487561983607389479135319040711944281262212918971) (num-test (* -10658732210276096534851972646242288663170038580488752611749460640657411087860047053151548660331707024718100598181073744715506934778234716535781332588396176 9193953347013373121) -97995886679587166046252015742839992974979220158813197140160489510432960510418039749924861744197553021702396544307690217470606424904065359660871469041838900287446937257585296) (num-test (* 3330096979672637104536573277593029682675932033891010715180474877149733802060455951241981993421466123791200840797318740359792251505430948855600408060492000 -9413190658845804679) -31346837782105095097578725347257193539696338226258990009265748336528353873277500144838721882313026604404426563737656928378230261942407473822851842589487713775609448642068000) (num-test (* 2224201331350479188470378485954814766783857696988331736807430786504130570570323948774102396158334805040994159865821844362926631687258969480929122732089195 10226747830478556903) 22746346139936030910929166328517425029735137934434969334578972386859485783192993228082340012742115893176871887387993591191632260444955081663604449277961804869872353878963085) (num-test (* -12394770820700925077767705800588617445613665027183406054209162910642613421436080064653443098327137503596792411463268187212855350864330592654862321763110243 336135860956209890623046930607725140868) -4166326961171213704571179876442248501325782360170764344978629523457550315208845439497110652079907652744850691289494398473488033083739905461347650605270023127087625641779424751335704552988710924) (num-test (* 11792778994619176404079667787533709801900490264171877873621265044313417667869688303207909681289642260521608966405181881416781694320672906600599581862090088 -197661229068721548419113517262926820105) -2330975190212228827672814304508257223671550753091700552243633152084831515892056240354560520878171696176381845689952044935988868477421447557890739834031207059212175922089523097911477486879619240) (num-test (* 11608994516281296345925963401821217560860934641820086911326880657644311461955556832927259499969983808078591149768068360172431078248807463030805586293656663 -40654941048774156019243747229920736005) -471962987694958552110784676392477007070112288398143925079396435246284471999814508543057304008480666763661066976653446723271982094424149279649226771823800871458389214002872916339341019732251315) (num-test (* 4821517917539756801293776911844480642406562140007084392649374723119190602353617113036081438891134008988421494142194891002983491670246762173236312873933599 -255528396376819316172341014108564420589) -1232034741571035406264710387186737842510579499938716343220834781077329515145216794636313459582844773420679078031627466542930137302257934575129329529129776153159694412903937370462708576694469811) (num-test (* 7638751115643228563298483305056828584775811590562130101723525925933790010789130133831569153863129513189315440899053288261039147463032870669035935364282061 114438828287750304954799140618669114911) 874169727255956505920153418854946321208907128396839975975317705220623267360648189969313978740314703015845506506608054761304647627635292132043887080298168302864314697920637105700927041824911571) (num-test (* -3653826017463740005170218884285271512636869606149686475539243914909566619638259666405831445823138528809165270360144267462878986866506114069923299116957450 215752050445782448772085819939961259625) -788320455239949216234629350585027855111249573063377172522422069903710014529292638311216050777840734448624510386643245486023092483841464815987597578151663227035102742664709136512524899527956250) (num-test (* -43242564273985683175827997542883970694363047476880657467026050730764924897992516355909421962249292250047896135687573746158665836208681548975073555418266 4424346097667245771102179669235543742385176589624011161914909311078645828684936231569739522607200308028372644149306431599085361996722603718517735348761218) -191320070498733614136284309000213964486426347688040889144514933290125387693498098446328694172047943298442181705949005984031677324306763731212307716485454004382079159622650481983102917517993601466178931324415483972311904823997211920702201161092866663969163567426868740120661073974542958600768774774949607988) (num-test (* -5093597555679260616199210906198149266592665304134802327659606846977583233938836318559188141955851256260954289429418183711191354912372372976165948043123133 -2240632735861652612028397136046974907251405868353380459030143407902436514978447480884513019736738955326732458088791830752499716417751919868492224207936623) 11412881426559848135724717164530530041659963797467536748076144863846600718211858527283843975968920120508569299672573958424908957105703597501013710262110218780710678312197455759181436286391257283676806548463507528765947919856827004176416634630489598937924092540289712219714362500246928243091408698274649199859) (num-test (* 6049789822056553589237940133475342650218069231558204589924996117723031491205673061674252841792149409384720347601549237626288416453061224734057079515141650 -826416247951451524584060567988229017033981218652490450160817307801130685352465013890931297548015267655971295627931896259998420078888499206031390299169584) -4999644605638856588581238481465237523157457201817697008198975191261856978252081380810200468420738807464233192102972784271159116426108806200426852134469939032473362689081653859652824862066224063273799612269941254948709760659691148103622071316554194507524610166457990087959160807415102946877307193349131573600) (num-test (* -1175978338162966145239180473229656000174129248706173549637767835154921467129547950144109700900405904250603515318348888619371004435353505449762899046094747 8633693716102199391202401198009047492431980605560930404972542822133579985462906768067706391388213605203282586546130434156768523403030127356256666478340720) -10153036788469908062299722391986722149392791936544969945546931764708792252481931153733789787389051773529081688846141949513463792442701686406966696738286561777611293604311491896230769507535896070984747493738525389837795316954065260075941524322954935690803870500012809797698319359975893462672845329776468197840) (num-test (* -5083395547684319640767882199938390155755986838939007846911062687871291096073452055061784159768637502151635665247461348347470360218957222873087414506633886 10813098236568616588240471432239693891825284805405416395976866126102880121934298269375465735278296789484402954117593716698067735458182402220278016922449294) -54967255432446073625448401244836956268872685687128644401372608170106281377801209665004925733448944141633739594240156882328181133879414641109484442890809130544146420476457200729843868300396656004198615619691952536924980482714767859804902602805398865249514544806725162402291122143659939645240358379962457176484) (num-test (* -8944626200084865988157251013718979706166428261352840753194709093968177704853157211364231059892647813839391802007588961807572842923682104089512428902387812 3814836951264415657788614449012480613328314590744410079075164918748648723114236698412482309581077603776489883375576245233128800002373843611668945838558629) -34122290543331565327874124324135450224668275222811493728051290368641401807963502623692504750924543845019291736982354932620821594287780848608647686402233097059022704206628297180782771812500512744911371653368388270442874670230118309469599458827222162362901084328510647514081302476000779049412605744638457029748) (num-test (* 5186176030253526423885531264483408352469356233262336223619904269047786350470477526433506158542551137478071074193659876898065998079440819597952826155782068 21428324964794197485898135923805540163916541943812058590308650649384013587098638034673796533027113673143959572855470411726978105342739938341516634354246514986124789451866589211982659199267654387148420461876524076040233779391563396552267276880650559148637067641021059664960876301072636635299261389450890094318429077561092553337025096293793433968243940381587994428364726938534453507046761494257538813861046058298873206568935790790373886840765817404479239485444563488020955730741209738203470138117422899051269778988135668626686262669881048094388220931264751830393793846372816717368806996496715219806062282836392457741918) 111131065300898907482632501071313138589398597291097276435916516379173430095773463468344138866282820740991088290299992221985607057347883717514843661030457396422379155394966857856069231504805779448809986906434617741485942621643754096548512120178021034054648207248963478122178145159262707381679354401629366698488021743300737044695960363216253889163551918513521913593214414139637549577618641974388739304727218804595402055185824193445089425262833385286117064481648652550355832014346131722965510192584901901111154083186713580209077544982897821477349293279848852596241762198202012197892321827305803333334823616660229870976569043453639028059771892706354703750763908127611939169337399882784092285804830644630059487027413697220038110815990084742241055099963659761569486906596326424) (num-test (* -12615422028124847936088012564413126213419674293830655240645918456932358053670311316461359727921727680491520480380615359506308571290338231702217134487397730 21538722931308708400287621200994476771789912594554241036641406577761480056366647329031140922034590767810855360008375309986798226712928670905618807986829790199948665185268081173685941421700542631395958882077936923141152528333121096909688700106365468854487023847026564219531968849793109908193037522063952753477768381591929787242143631287330811801315216116212154423972654430356675401769729358415036943501470085182304183033246682446978634892995900678975109490698283226559860736462409705544079080978470202336645384768211440438501339641775269445439018148409151795830925198162301321965042997632479354427154223366199106583051) -271720079725309675925162538296715595434811519956795637977932956405490708202732964133816538801099235844279338645471102896234318181092598033040518838847055114923365599862266767493227393553801736813141780001130539648588341196802606083178208108557367013886856183999712817955194261262279080641101769944037282423238147653270651419282545398168930625797556638625301898893565965773914460998322350526545278664715332414172614761548301364063397364632709194713561073496860524124460861314674679928692398440036071116570829193414179054372604203478369755566003622621281005164747628075596444178089558747835994702060740334079222508147598079351187013336751322569865313532407367116553748939535664259669808534100091049960040092785009707220249025633808590643620557093069849490009472441113874230) (num-test (* 10381022953674450046578890619826448644067144294659610359943634722044183130638243233110364436029778310048006743033299956844491228999113516347401915490861208 -20974871685432829994714153210121536409377362402944992609230062091789259307033495284524234519701670462495676590513192861649457148897274608767543942797542628100823017887236899471151903799837558453043431373811892813126194662218472834650841742305925226558315372771353677064933578639099452438843500601586038910108679737480263349221244638463171088589123712367802373159421798288708123925853179931628847579314900787361946716531755600236755527982132768286927549323465697241340003870259800347640599467922823203446834792229595507968354687630029075884034263531531423883902851487995214646322431057626558858528344843531280263328354) -217740624416854507100100919338835880277259264187442792458843251425095703739537223785767883764746809214920580060316177442387941385712712426957388995082877226019966428812240179251716274377143798847348759498926420314709056615470455134468678662646006408843897699718742372199854223008996321568642038054564397441209859567556502098420151667437837356649730396360374136203172669776530655738388121236079327354422138744456395348910073462618440421257604563050031602590345028438897601523520973759458890228893913090702884911857207117714231568437403212806578764580006787626657709435954760239671948147344463295520930250155876010414461245194991189183956653772752290656063730950237649394743456230607077768595983629559996700837383822873994717987698780007691157576205450973669241823945091632) (num-test (* -3984492646329789478973994496812455855595578196959138558282015917391108383154917581748539892089090551298072688793487597623310815918942283997753800645644511 22199897116873160263914990610762123553075230334116099569358672964060004245706770678771431369917479502828754815568950371273785689812698287446020480951417047185190067265849637510591502642000414540862689426343523077229502494771352820057572619644085930901096534031496492870227890836816886496090287321502805172125273822231241073590840684742085641304915656543831190976008986490532066597410386596132766422026234488163435487889876791504407434387555507637783709991326338482319227500686541368087892665100076351075069628862376686619537655838590687615291898971286325099164241688147975845320979841704002364545072665891829427213069) -88455326811459002089798581395024759975871889172872668466370443703433800509268320055453743803627754859670391415348970278548381190662701716228279482045339649051139909543850883613464992501666524385524517648069873862957915620016943364950043289963237718026629805297916194484838158010754666017024585366330526135823515744339445036315966714684052345462172808299142368905939297220895721123725415007532441824406115746741972351142687017849809593982432484296719999502992792447259391592152463664807498752410740679664044620898308783634092355737296495489953554685938970593890496829484673393665321572846542839714620847185428664388282452532264810310019327395691530430185946743995669191791841546685206884247468693248673484055915613115527492005264289557719000245333079386593840592027314259) (num-test (* -10672574004830373997900438516438419278676753890756925443116289034080220708922677740383425352837266631691319394850521121221541344600832530724104047804922665 -7307684417326792807224298894786988180161884427390942431653062127076829842696634441114228528164049031680536693195116703321494895319862805505304314401000204515985676763063862569446064343853536464020413910728442475032187317639476018710375702206456631041987826826225461927793241495220512935434301833094232834266749666697332380140380619185254354273073522191066457437931022783436360434167505326773192959291779779370530770935758482422581712556111319611455306383173529090289274267200543081481693078804068524057891845603351773722737987393428313340760607600482724483853560340630587029610437280601010173185018227638972500038072) 77991802747865927212086621295493124451256238920588746597961055391511562690441964216934615500942858653797884925704270904527938466874924049039962754703188019915846345804228044693122758075602494985337649496117180241872910247079655077012999375809878184011356481981590430241786534827516536543734645410817621964035091467871491521760928486006653992134635010794346993161329777270345449763927429735191213854873362673179799811714902439637861750855639857969259787075469241319618538795721956528400353086156169058060112255274542232054021662809196965752800525093125763127895334967094763817500702626282397394521201385439419885607578137159972521677923972708827090645776826953976605193554447841693259586575931864396484621463004541561908426383260772786784541411548146173991869741515701880) (num-test (* 1420855003086789510813111205540636553863493314684153860389816109865085846062678305775289632805233481596171530412925552158799875183492757047174905459819169 13897739053062356545217161606361735964779941697726983959749295377836209520566715597422965426908191354971972501742952706730523748574796773473606175934144970768662226027157110240776527834790487577863781140089347362129598158760833470434895693782503529955845076709376071972727346128409008293671217324995682020009675316075606538241192607139905488719485728099428376369506685875348346231688684483781160648420909364963718027571565217314827671844485031440079254478598236877074793221578612249882886835580737423192061550370069895525711885220268707201966615936769696379335772521903910689934596134239331592980694745008817040569590) 19746672065138309742065153069587996891492444461032276894328314121573439684229636534026409362850111716212254549198595854140809664451286626009917828620279583631575940837712663100442879662416765138504151063632823014639305658882804073655537352377258786105147057375069447099908107785635606190515362082317465738205179108333064680370909383338688734129396788764959056886328471374018961975554190739706996184818378586233017775166959010668462907838359485424792026496574369912033757997469014639705459505746723512361959074802456098328538419933637295482429555127226978561859965498424173552676019033370307387047798600024901453757451579262061785051932535359410827170361533603618131510421439128567361259204833501190218719779570258541358012741265599985490513564378203502703406698160470710) (num-test (* -25117824099635104147178796272946098711514362630774369209876335291088434247131228189812265510495277875692804180473811834186270331245779845635089547499275113671007257221593872123397418355506777725721168216892830217596134983713752526559153149600553468865338887605949011743043425900799896245185282419637806859906582214420191794114207677635194054239563071023206500505880052007267243210206807805387341085613436600843317096291021780624738422589234020279836961194869688005260369009833026575446099544900581955685627511787510900479881434909308757027825050977932238481841909425598834367032841935054158448815026264505726593064239 7846111496222858966) -197077248428250572361351389692146917243277049539013604789802566767174747369897711991559940484392921619974209620152008632450612546796556905740493507885376190913893140368029841033442857949219716681475253727058707723386016055991276120001690579154370788782636181079931076758384034193266737114305362492836167078199155929937891579224024229182935372106924021709421948701131654358516297806197381566809357458374057189773041520552821330635689748583803171230633654728360451100477472934847975252390985102859262992904778849652221553818627134153578436315973777720706502751232660284910468721430874674021521629540714057383398858244828214000543075116874) (num-test (* -12000343217458212092754251360179138661969968218789048702097501439124892987400633614429800307263114371624489988815324366411323242909652002510513570900627875514001409309670202055060404640758548257776155562167062337394219073071639153822126554525439988062676648294108951003012550815746564810508912122306190725453386412796036693387315128514162061147675205485143205925649214342646148112549805850530430229663418469577245456944558387628002442451042105749848177325651852669794048215063957689756465788955050513359977166122710392613631703123491357791351447110169966270916789849428298930624807758982400706608788793481972190953569 15463017349709835150) -185561515374029078700596518575548896805308728003103939537818954646551372890610870275966055765608887701776880889777402229764948269089126750201922167386201171243298907675542965323275634529293654817279957832652909009385491998537031060285890512199675273422070784691446251899120095880199298512230290860589352290462643231396804350623684034400741386070220057232978556614620855818271117742675632435727751812101639747357642295230273344552327870600519422276996860893842363996198017494117619585153346745838853026029459826407782259598477529242420507010652705302341725948095720110508044256096963772599572721279996322424269691990173052929936294150350) (num-test (* 20244597897909303129995907707212050478823487084391413473821544089492035634291726811145005824559631386634261268723753786161463497881725871168747275110149007801865428978596190887145324535224079986377522166727137028753272158887188902047835658826867304220850429481233026043496635847568448251753504834367809877190895369288045026559783632709799678639927825194847005181499299410953860627694080906167346078299421796974815616608326704894611151743720515377248152215241639534004099341398238713597030368980166731393247619511322804984829747216779359780372801101821087516269912916462719248736442644433057333788741151270815989388229 17931151643499274580) 363008954869078360197158713265773114114991766614027768774402465306840646219477262855625957403406166192075865834283840624408916170935610374573318606346031792128003204902147985329385955814330782527184421959263266167048755628089412213360508944817963403092490479480264538027768728303095523018598016863928762335410109567604756183580676503045557867957273324581082608248341332512325136675167966306268035077761004923732568405295901819511346235524577361289712297365403327125212199451099538443576479787130510546755789504852631291774614010584650672707483555436445926222945298928326313943231688436271883746272589347954697213098866117569339490918820) (num-test (* 18134862906191691435095953372467318196853760384894170022863300447691250350836421337333332682828557871096554531436829166444150586004379181099133295174348038948038399079336722004125999533719492457544642570217406286811480006881054375314838605871238868968956868878182133492469763282800195060849734382249696543089869191257451321764806079423169235271658993054867624410589213892458246001270123109841429271429275464249821855221014782727398959126117031823977229309775211695677345378510417534328974531801634095862859684508240122911023047425473036305928743193594967362216559973174709883576295373749738633873828863608550295977368 15082354452174510460) 273516430292774638949326170314933525797985748367549139070674899956657807928629067317576809269188258819686207094298714770978509118959142516619521080722291318367607601498107007447014759288176261262818034997399866363248136237609824401265450913244758024085739876914482935655100890803279961929047974391299795570244708811454483314898873277493486428279875241232025231140855860469097028388778917980779775554139507550577255217032521719099071084956515691364008526064349956553916033914728254580848198941020806723485184338914882588931083516851849558411503129184026079582257756707601984686901646494090820169212279581209612798749779318126482639269280) (num-test (* 19213874382308276075905228027166553836726993832150876980655958901416537033385379180983129528081628446454583401834309285184752924794893846406622935494758142810049493348116192315865522516744262115026742103678965417868790607689989205765793528434388393584537260717130892518011447327847533083474230074174308157934463971640826422302901570010591182715932658037868980053012095115562188975692530473556182305847290196895478280679341869546292639446526021874910117953225154204035612531584978136604161393474554294315903436682283787080297348697922389355209790646124024053098888687638640826064745026930980189268652291562437512941810 3155416591710364359) 60627778016974262766014671335614995348970065077989108071534610098195400001445248886220725085881796599270026085183075312353388418711598523030563716616967792282609748819081238929738105086199457414615236966895805539596649555457494710621217412773036416007129418290246899690911654008867819945724649185574237527152410775686803449108977881160831441280833577932476667657759420192656716352190871667386955409426879693856001112340390304980532208752863058384169885129364117656404549585836664647784765508649117301622797243353610345828189312360124462238989888436478381583689386509617357901461416012201469794664889076397809504626996523928173064949790) (num-test (* -6561903839860415551587224953276060627466820222543175464705113686962550773423611522044145975606965294164125376820288981286542044306677764776675868357117109664125730405280822770267329297542599719353907954399688197248115043785617436343303277493146049939491224480136371029084354063731401026459653680017632996944506546122253686805764620116169065663214526857151412139439538335533979733329962892417175374550305659302592107472151941922230309227785266745974334776462642676959433923828440435340579340133192678341787895007461237846313005612116885419002449356480017828933592324336731295317076205553526568668826499450826560670163 14908715577157091280) -97829557993133908713082095435440645457469053259814412551982534425389603663024461131358343104414088618618030154957456050473312402460589893359522167472060177968099538846750606564761307960896264958539903740023783283814849937681270591589750181462708056758506230073751440847913386576449367635057595344744119561166438538811561109125506233466453974371464999669336530949393433719456191822836826214814780222021267726528396849558417851727452246676857867278196266042327956933753121947589485377148388716839519782819642328655117625818256334190717182923260613562191698788004591479576661108985313450029332968584240383859113741485244318702724563478640) (num-test (* -10378013547095983701124686671659666242518351347561698092030999302329372512356819420877395264401390796163955327080881297568412490286247154759694714275858127906305200295043241717769593877683535229411640745872559018085757273530771413156968541499388413497221629366848027355125816131586610997516488552323667400115617175682996681969687885201321292153656071894385242141321468096793766926179134511319941715949712230831768643024119693594235207988046511542691719002262040067921088838755337917414526554050602539873232518619281766327369577617796816586064895744680567067970817494102948032924671421242699225194947982378019119315136 30004910492448871409155105619400474385) -311391367570036811050052853596227388481520279736812036769684195465110674594690412517879149770622679377262288447706750813509857551308594851067359841826754786725926298013483569424123912020079066150719085450400229896983461212531213110847425940968466564079253939695853896434719530729030897976597410468081535234663568150722646854183317007227669132983719314653861536414057481478039579810285535699518386214012059191958557306338432321511585867535008319640705419431310336566447165302011113284064246284641707577414470505948868362067233709611758700034131461348997580441628136979257037186480770286846026250437141175360847735150981343952303257191661069675154710791360) (num-test (* 6311357747888359229575837883366949670125882865462293491587368290797766017168248637163030339387377997726585769250585768079027576213724941259801478313127113803503561717311996500019522893295813684259416551410025111443510215766297835872165689077882298506134885487991732718254835036694083204758447948541157893533099634169589161496492972953698758234452126564385255035294546278732684663873459439615228706684138982066055370429797835904846166362278557095045056472775166294675997320598469599722704075215700819354957397052721573993997624711445698656580401684113096559767093466880001548887739825916626416328760047783071058963451 -212654096583990292869707082365869207538) -1342136080095566600483524091094048745061145155430997807005186206704767933140306297188996797343723817220160636373424666345108189275851749622201429179882167381735732553825696482751584102093819432866729465599060815670807282181979889263381844726842751894916887860819210652174987999919869623292751389157233409465756974677789790982740267208982768450215563288024088369480574425410032306456026930809228182100949940216614156925537929648841127727165386031716586596638254705402653861723407930666152691102484352058909219619985877341630210918347460471644327858114815713557305185589162775699323253049631349906791700893878999711846225062306568467992135934882289075693638) (num-test (* 25104391676237653962996674810232896003857294806799086059884413856421530328279649263948893056601611073815235439115612155497964541323584159786678357898152394779494741995735881624055133443980324145256438160990490767324719276757840825641421547232460969806196141938571103617707677351907526127993230143577974386169402623023560579220343920203666762052525898442578990183400559087522259053245822827313206196194989095468393682721753147596892214609346047051670610252732846805143964713621673722554204896154742594858056891979146566683467510164875593192581407047920719605560716270697985110227952698114701527191421628561835164291236 -205991315859231724218751687295926841150) -5171286675233738337789203670843122752625713948587464573381323151628930998435518250812603433784823922283042037694290795352461861058217142213862777203850665369756106838860420507328654214723398688455622487003912073924323587826356928211672752672052670663842775836967587150049181838707784871641183683742967716787111671792311389517753578360293551031540853470719098360013225516593755039537796518619542838794169319227197212817921098393499332268929332950035803734983497370378852859829228973012039890600437082235032378948656232679080766068869430262740600476498399803176452431728914806536862849281928869092524387549297345184969051926149006293586531930828748109161400) (num-test (* -25971587288596053786734900662696128734726180676323130693160397208008930123341700520454723462226657743365779183466120836187720332442041321870351823609046027805781414454998487673927365486893294110931852680018706479684281928396163669935417207859889405108139261480861908067489849403284000981453574189898304616775302917687860062501465417706095450121596418236563421425311420755550335597318818628123183624214438801254105808079227429950505879366254661664881055965092586612702279548151277733307180663770432418397550642136953750720624507617115504303570076531620003848642167562950736271141440609700821621532583527124386811144839 -182748557863603655835821910989658558236) 4746270122419629115710902425435990509747636609113505336611751359043717100752575149404352359855260443259846554733621122684788488984010741203981300775978945529551335641218319619542248418128319220383298229263331638090009313676486209764655429828385994626323209879925281409485074778611946493692237774852428345451174837474328995186242262565013937544898941834362941815633750896882758939509605799422068815435202904271722442099465950700886702949580264958171808372530471918175963644209760378395316412115175988232945569517230829200985652504383431054550902852797293952515652017940918628980037316292352828228005975466732028971159947131994753006597870175664981312344004) (num-test (* 2117427896392849163304163145095251890404997781812823978967013619233450901604407363671467658244435728579079751353560538034596183240362499870272373308111405924505741579887345118857908796509418246599428633956038017783178050402412769812823236255234302205027282366926174916871858199918908361186936687654278623156607813451034087735179167324944824913226799346886951212979149617678949292799645035425029596869092844906629996914674904522806258932192931217652241231736891642224851547474205131131019084734780208254203537633402057673465583362982905095029133132240839391503135932501785844503813910210348239157828902668852795945482 -296778668392678698960782643314222141731) -628407431508980610909134894336322264939705333430111861505965183839156278363647883745193463537783397824947515214540990712455315080515980803996660089847066076833542492719707493333185909990202372284811233272987993068106356248349054482194817336258302692039392400931536481136340269417905505366385505196886218794044229758585631131853635721528813397816307666671727692971421531381290925317161326036075629905443938124481334173158440927555118173661486114828362551889594188958723424604273078091320087897088472418346754088900034854230711982602435635574895960156993014703292551046970069204857846207328434544990709459402656908170089318995291341536347275682867153109342) (num-test (* 24743327715258194976385899813930363006464428087412805068703455203318769863096919192538751530954777047772548306936907016751357570434930538612382851621309732767199276228580401695793317612267605312672263736938703887622824117576912830029817460033437752668221355377879837833796222831371174014543622739933433581963103361464022058091243110136610854806189138108937004805781857031030005354158991203388998364340053773883952742645161560754545458260688560269655272249435540890073696261770299845722705104648358053080678920468895189601731801025555650490534399590288852165862135571140382055044665678298182909026026068995867606241201 309156501491030456401354118244509785044) 7649560631695275371386748526795333430293346807872366006552933839286343590101586516802834568317627508914888989005968805867728947519409222814667350103434422356009252082456906520988877859152125402282765775845766265340707473525444185795403554160270722809642681642831847296672303556012796775586274347178092325226458743113317655523655255626670958156216225968018208281266858684283741496986683426354716284780229004376492833583965647875097951642088252875535823145900129967026856898970545720526282798418382467634180690243423325770596949644122541224189780082061715230852249880601371985342796525016176048518593825361248232406051886794538203297084423942036889326397844) (num-test (* 31345149697924857384985323414506591310628538098830133854928154990821019223495435414394178930529373634315044777562902565397455028894455733092896622048288278424884040917250546068175763309233883078972879622697667174865833277342334219810618450605650614585133187005110148963483824629405555603493157452295284935004578187488673124814714326405406894084902824045787647963172437833905574178160343833139650913077173865287057167288286708807322607983179910358234015596109655900840652230258122852488289951986129788952718105898226951651151495867246384586164892018870981480003722043190639707903266193064807571586900961788679579912089 2067227180806746570739122295766566373146995767544546241400900414826379465803168632854028593293108913670556431832056563218709444199286888840721753894461468) 64797545442006646811970698282511426059102976298051534827345388707272469591333019870381858263624490336448197115781363489554169207652559213486772008013638214870324260793199674746523791257170452738018910619029072942848422098770309928561867618844814267276213608306045020686764830302020953883994906997293368193331696747777630621086600981981357507299729947717565760536305785574555255589190221698706036770081438750974356437738060098906046001271392354762036427049946092656701257615490057677558059955825843182799904828201890893555678855718728417223845757559310912618029462136640226686626513375024547351747669476392735304999046232068947570708757930233036922714350584650744960478326257916948676866148362166017752159953504981324652709881831381637989229842766220141292801807437886652) (num-test (* 1965759082776833678304908699214846485256126608825750175641683294458978302204367346739996602241053060915897480812220051082619942907491598551933638540412113496542245474287364500698693202553692963910123752514310355402167440783023542848697962967771951714434359320001430281377747193083851165947498546085410216620013287853719686698746328198021011905482303248172483782066908570502837009924228011993318265674390462360820566174204659723461994730913995303015012684826295802887547970851558451858623353950391701673651959262042520584275132971807158231859672678070714276061110616753309305801080136339206017351200193800253572481467 -11092241138073130060021642325471345789108575712118027611362686690749327689527135459714040658411176246054106270789083336195599640521602432629024562630323934) -21804673765518097879589124792137157558586438669762099454880024920520894260754279593873244443852337739758694535682558790532827482894104906218015712179591886600693703465749571299271429989154199263793230178266758966678432691901731270899259065726530463438316383699558373053423999416350780342222940065486831353604365192968606300436304827279383661172824549131179471364227618431414928702407510473319879188990689163932586727702195573766225861364297410904859137393184592815970592502081722125458353280743087607273547490382023433724488604177909671497082747464946083901888849483505451426245881736990810339421864101129619181017696837017966116165703320918568645290788634265522956017905246042460811062666193790657969385648522736090098231379029903772234867701846824572274796526421531178) (num-test (* -4067457132547237558852016696244696525033953641638067592741078194074861352472861925779476293767777560910963786727886946479865734639031042985368829200802420611189793957001730656623744670821921724417176679009632346904384261431052972127975733031277489967119978909321422086102208644766894305071609385305464547231057263658903212521469801833214062476735046735467944834107695748433481665714184831786462886261252526036621257865158497049125410241033365487816324425563483999957660557670189397770488996359512245971368638615503320507431381893539767352426795415898379765583574977542068222040889423739693921998717145084904555464058 9635268828818063607505341812331931088336041632536136269505180222913464638532245578488168867093853062326136774925531196873279749483997619950077042084971972) -39191042921786100943542578352486285322085069425292685238158202937549417928185097567102615300826629615520476316505465412722375794150552330462353356124896483739321653441446703127728441315609093330694305784991844511900128172079464896650958648496336601612657347012294121239821167759496102233234525084695798195547141521849769350204659392602605928907953707277320590923278178152903602506284861018886300148663530071056792375593665422754923886137410482547324901798328311927545105456397213670390651819229021443747424183114992653572959318104053511452473611466305149349027962240989590453237778130260105665310067480846969449221473610614214933278048389171979184119355459010233147440293881252851501522689209874112819966647846701257081192324007280573826673895648273593609466000383382376) (num-test (* -22047771987573494284336211037167956208924595972749016352929724093971147687332865088249749580556015503923927321586913446367676445848750229391300778587369581738560634537089081840938984779012854694220894920437076215176060179241185151442003472788530160589267677502568156006531439509890061829154786579353177129190813899423306499631144919702707240832059008168851983259611724134448165201725432622521420667808597545410136493805873769372831833878868603946583848422310946469083400330960925084024624317866822897278934924368888332618046649078771617892961267312226309927786691384460940015979582201446635756024251269978545916298961 7481502540911026808093162425787184755732317118387068406204973030847892995155568099553397887864257088525242568880427634318737874025160499293315047534753494) -164950462146458057264341765173378248123415893870534274075422323606836246718538063890359159423074703472625232511667875897808555123518162244263016096627959208397334135559180524195701526029092734741010866589515172934676451385008535538102832400604699294088534999994990970130226363762230944961249818769566697211068918154629209895730969522747736738946126971914549491889482944152891334838234907190697109929512401661529882587076352559260375439428815896053844621297552401396168240947357044985051323834074355418902009161796886350497072010833513601114819625605048943438304411954380599728561071485061414856047768286383287807924135081902458690495890129203192613070824670256334683011083767124852354110322463725619194174195587835939047474059288568764831570274891727391545546467943319734) (num-test (* 22607201423790553279447786193696575272983924506336369475058795405894123712509544256099524616893423762658394830755129501447553593365768543361107397299007141714383407862976654294384881771985218996697067215804348472693636567074361380875512341556932579903687576929186215185312685712277482751425466251201421842248749944123326048360909954588266368306843116245625635467041934524547983478110533044085242847795585598341867070787331785945399446665919396062565614516404861115244243161694059679274045050270546536781907061002623188435269769778378780371158624481539046590932125320888745103158180784231722265376331553893647061533815 10075764395489719205294189472045365742345400155046712954334138069917417587273618147303160957788995022989479371576840422540097479703418600112174202202728054) 227784835187493343385594867881830022845566753253174983274076326016001091958812135049265213053390506720261776960833046225700903422206015373488419693650378821159134369608830936915027161415300759990632038898164509761337714774392506802504397626551196717184785586630245704512525844329038355790338277254618639554796026366029578805283659986085947726260520495140332204643887370987929304924491772630534558682402396784510750317396488402942581973350428066695976988812610467654886227733900635715495731445319565054848075104982244316563526232071957624002266648721592744376122065531440026836549316222728280595228806728872537793522244957258060730038589170810090676474272044568671474692128168357087077816573419470273384256552275636517940058764711467508281344270125535855785388198570146010) (num-test (* 21997874907846585575969651776904015812729615626636027149446399573806943459105370044846476738175828244018281160136531735881270437472624605280356112191272531838028896521621800558410217146758345955334174583639352151367532676985598470747138461153212653362188252002768647808852054182649808145379073620834551216386805267446360709820441771932135218282126427988826945094538034579367527908530151926679515746133600376612899354099328788736038811470295396365432559354070365548930628714861826464935305416998192532029724853617023971964507955475554955277722555849603716733374588174421463022213135839490633927005539569058361144905451 -1400498192750070094581812894241996480373581610489471746158083224360249880335094841398529960182484181641387946900090289855375996313447832474435929084180606) -30807984052781257825246153008277875918087659020905755686964119182052911551148620538090633516362197112383237624321406969368641524681503231262834662890145617622830207559490089313283375890353617292096501953380469351747504928597461154633889236826060654886877907382241867167198409355653371944304660938495445848950444683274236538890057643038410268234731745456035923559528706349316582901179686671568504971088561096469997823300883298811440849031903066114422309644669680078733839046643542078157684064686933779591609758494599988463628362190034612412739669041368897594110022347872452261447359402810277413572637740870748949093642723240662839444216981630862346445890780016393330114883270596630385367407921496982236074288475142085411632630374714528706189796772213264952893973677883306) (num-test (* -270155241925436273159477510619232592261228150696806729750247050 15545126743930076938536195287546926534964892301082800206802745964245668351235397 72127079799316080210744562119267314209211162112457416152560774669179705347659265 58427280233475514109627698916382980237252687770812483048907352594138577656301900 91336330475502063985843547526216808965829995610054777216888670176112782119332811 99495081134815818196404370468895496198561677002653930126818668800341380375657337 6904264296552316628911621065724553059847235903647375662685025031963599691416829398469283631386160328944460790101458427909545198569619131058877708293713734 -16074984786353617526516141164566295497596312655026144270863093715961484079732496604871734572736757225277596743795506589617891195569235287256031608792067121393492186703333733526879481948463529609113624075923052999494363547340563039654910799974388353472433635130983731604982117092991918514078659590068643956240711810902756784590442416249652077644077280371860780741318193975770906075446772544431670392964384669681404295839302410058434872964315897505894833409101781069230919347279857855594782111721176074849502391457684148683668165019969667481755384384017844104770253558111588611189351637275389688093074751942960310850074) 17849860827147993486644896214424106325295064110723402251474432199595968349198253682890653243676378684005650871261983711134190416277366473221365848417375107498764965893729640224952922241531788638514200018520970345581414705756736222535562338748426356003659523260330725662384208724142177900990027225665451069059291754155591197426279006090296512196415617974140965334686090032257444820748820516976632201388937358434205022475303705442914044454220818215336283948743042841946229853366515552653568436171217572212088935263340599371830215580988184775240338748954666846379831467518505260487989636951404886967842600777836444030434816421999334066711024026401362115623932221335906548647785232855815515579448393689650116225664467056283988125816950714780486880294535933597118808163054631168063568847830481653855357008353733414826165759079092633441356914450038756281940532159493763482047244493174370100586359619040444818634156576789665732998111907245928253704097384811414269835758656988678207624731164159069547745777423464124959379113843649940896359346515513936964849811155238140671698227057228045173997904545787593258286212427476788605370334985423461194148838623911634821153061693257996982252745844329344589168264774527631972524787804330730506700000) (num-test (* 6411564443509812216548163965666668398784964137255201222920640150 65325385402074288043601436729391841747319174569548241717675134253657593233436152 63305037198546989906433329294566491017476837189978173607681765241525113921707860 72383582945810879300930057856704905379805338886592055772943486702915907397618845 35525980101796892634292856352740658817031405780112750352735419884048051630180860 47579150292602967366908574298176357632207539947399443701205872093150879604391127 7775494633965874654516687741429737470333189902121089184439228657893110997221737422210698789286625633365548095171257583020272703565350668755439139356570 -7847653632223099338936161226557020783515367997970448568586056286591257384101422312757649765574456754668588904917800060981155642916520580540801153603733496143328839018174649200566737789874193483124577734129346933208306772618814806884416239295732454033604210880463262467564639515484363761639994642888910703066277724414372379965872478153546766131136324967950786993982228851928269842355632200589446224738709869729930285189047112131897218464505263042012855229737941639093204086147932759923796947642895167078971517834730472596647456786099215405165290569214043431009370032818978995463168133051136053246705694337584724712230) -197949741939898550383903354028842356745461597695099989904494711851411610441324234089773644533872304737431480244289438922163630848266242200711131210228027234579469457105291847132071566876246332653149194709623963836885480655282595345693084881617726426841183231475364991154699746506928116505297453355016975688761948609740314324443406930215518937775475617384099331839748494157863510168743547396262979908353122625808170296763676837551973930928848463398657587603606321137626467028732193151671337338929938959296176472483674270114824853018199281637976410726195357458134038379491704909997939715446657856320452698914513791221947734373322868574099599391493563479057703049036936132407025278683219316357543078875410080612067641232277376174351958080693019953378024732243763129075732499165068171168470237875348580987967740148512425201518758344757030205911031119619416763996490581551977913711646761182756531618786226541010835120092904291975494846126923510483263978074437667987560077422810120462938292680423746968095994108344184522240467647491991837793653579480334442342102339933473270535800619630342940590477752278184994533764839125736268376640933720554199782388890444619996919031351334561766248781813883867406045414518951152508504891407920000000) (num-test (* 1669833986019218156514274418186396165434871163342486930502417566 58528969848472951398118375496887849181512821636583415470809040929690124231959506 50098163184827557635697120379841225459445103589988345336880332217224622666020381 90445522698871905833766573423181067004916996574451008349087758531794463581708977 92366726802191504770638415639612204654473958526592425718659284841373421985393966 69096133232785816552402133765198624674167660496399099321713067612475604030259084 323971624832697152056406152359288553860210436839331005469891386690556929684663075996719803995137130737141925308417709520389528780839777347463558171582753 2635514624483961079560488004237441873979133312246005082134175818331132377114926863102436691793380965631848192666106793612266994709357524826644421074908075389316030912936338175907209987972553710900613011802455058538786723149316934049388525865455871552882282353445228425640452635081303490379594663330152071465360003249884180020993032086861074931796165970076448856988084523672973069824258299029863033098237556417571526135639288006133579174344589248428714474318969988990720790226604664141927030250855550010512291136517209169959021730625428868037074528890516086527430801590050720467893089085308995719513895962750896813152) 2413207990093478676325592386500172980330574558867366638913149256222218924700401110600319869300256745035993991818342784487193857053589994816247466074246569162659879368383295411190237107255160498774228460295857931362161062884154872938368166514128474751716517750517217000290486110198899480877593169193610813452614906598055909439037075588626529658637140089909227353944313408987644743661503976835580507054926908821206921014266535160031749397432350114673787218438589065861056449106115395189057409933330355574558853874223262465965933679584884152813357065227868165556818717270584803360466149860292769520737249610469675917864449261901859162854558012721179400237645357401213337423255109839806528503425658270050436129019270883446965562683284298538825840361267548675967778385927410390726055957928634152514415917053614892441910675109517307682075989998558764742821214685548219206933043196677521610851950501225469125512893859254575460130829051324112015464552874242522140166275233893076603452098841950130740353331198999756316969161591691095397245996664755249875720008141774247384884623389430842799829690618405724986702942913150258769060684255363816662231923570491001519802836627028431389746450987110456127797025006251203111629141890634728548553728) (num-test (* -6520062188352981842/3213004995534018829 -3812444292971845716/15284944374811818089) 24857373879807849010516976362973488872/49110602632729971801355498746248797781) (num-test (* -844583948128454879/4750740551331102615 -1309778567130405125/4885884698278749707) 221243590680205607733892613510570975/4642314113048197066962569716783636761) (num-test (* -4579815856418431271/16947444571374397297 7990245706938186906/12540719430158043191) -36593853985314806270746820601513137526/212533147427761354206383017714519654727) (num-test (* -3587966953201943536/3194797554208122281 975954052071387816/2707062718507963111) -3501690886675668292903668827990357376/8648517352177231144330968693325176191) (num-test (* 710265334225408429/567023629756400552 -5578988760400430103/4131535930210536898) -3962562316545608552741467762441538187/2342678499616965424161446427863567696) (num-test (* 18305319006789031727/4480148641441744463 -1641093267260986094/16028097657311023719) -30040735777106040963634910981471804338/71808259944297590021537032075729917897) (num-test (* 522499067029593907/142530390958606446621834761330018829110 1567459634764499377/31663510497342378306792964160850079086) 818996196770998943862055820464495939/4513012530308148429025282037949729145117603192483641232823845248212618993460) (num-test (* 6214041481074460220/139497414619784295310756757536261769729 12187470171919324678/129216394212432939561557938117593031955) 15146689039532873328968703771155061832/3605070583825050709361064709099418651298807367637359842488375232197429738039) (num-test (* 10022419596195177499/91129297586760817507648681092594591108 239769653037576215/24086455608554015268646156321002022494) 104481394312031409685890479072416795/95433990476618390508514520731482064738017476445225501421324446942302103624) (num-test (* 127731839927226607/59760640855511386051149338950192132591 3679984267166095161/269870724770589242613062477043917992045) 470051161348371979221331000573148727/16127647460431744118786930146746069875784110572380855085272434637353123238595) (num-test (* 4919926511230586366/29288587285987487013553554568227355149 -2914615432991234299/34407808954885309804037535414452526052) -7169846869407694119621783007930483717/503878057947370143933800273784055481319429768630967123178484618174989420874) (num-test (* -4322680734125283661/246950524730861178141734701180345535020 11581515233057355754/82204027418720951285150957025638971309) -3575942340708251875937466941988609671/1450023407574517046920597087724458064116343346221474061477327267648859624370) (num-test (* -5552456004563371781/36434418778024040927761226774271610950778609263056622471030041615086459120568 233319937833204741/228703279535756717601739981368829304509550463672786894384479957768850829340) -1295498689806330283646616799874813721/8332671062513255913250553083541810221054209355142441164334390514659539371361850837178162594438925276666798780352514152276296209564179606228713851865120) (num-test (* 7279569964232187047/36316165899095632459738478614507512808578186173163489609755035948221062420580 4568992288187244990/18279847281938710983382796940666233712517527808023718591530848159479207220137) 1108676634263212048809114991909788151/22128465550033953372731954247755694375180631486898426116907313824243654714198100644737500721615620412852035450119116976232805701601749863504629937973982) (num-test (* -8689289043809733973/34365105035540924847908154205433563929060132734873649554594240958996510665976 281724695877043289/3383396067954681850718083474385093262190311835985400909911383280975222535225) -2447987313255021583629117408894957197/116270761252098802423406562021935246701911690887646043563899994409915142686943691634418411056232663942535537938126289647041118885713303684881867869004600) (num-test (* -4176416206981759902/47077361360975682486641492558477246171356187409295624938308162261216397376441 -10870319933050648575/51626085927005484523186190379579228801774286705829757742503501130303410401261) 2670528255498212232918897515060496450/142965876637554026205455979922464979254073063785755559223760631646970673683621524411341782655829702451013418009338618833412062193643308417898164204593653) (num-test (* 4496049401725150702/8024116634872885909638996643719901973664008349644172107626390134736213108465 -5231341280619167012/99267989241776204190444307671763754306088564051099822830201760217121508089279) -23520368834947889555464127765407042424/796537923785319116837266627763277272873506235001122453584405648384893204423914484193595265931840447141766909166026026228531619859740155558402735330646735) (num-test (* -2488955833769033882/80573015130339486598712021266263458487997757617589137912729682647628329090307 17723590657579960683/79078600039601362101827108583564759878924923849842119643649415446502020994810) -22056617181258995266120581914227430703/3185800618738432636378738398589185111057563002909241393794402306079667392482341108052833514927720630087013771419748846412352850012097731569487991234153335) (num-test (* 24410613567363183821142175154197794689/2233491913446620869 -289777146895293391500645889398422195537/12394177861163531771) -7073637953514043162500219088395995153310329907185649946877180402954938102993/27682296026727883467940485833673128999) (num-test (* 15029397898618080393623393093137341347/9939158597399833599 268484092305118852707129202725716126526/9752180454987984749) 1345051417567645337656755504737828287428006597367109244226136136424901090174/32309489404196149853047846865649927217) (num-test (* 175291724581304230067306380062677652261/4791591464449055089 -207911166974886786162808240992513636954/957635297799905137) -36445107018739410292029741836217649994267718828374576884161821761303211252994/4588597118993154438342028473487092193) (num-test (* 208446980882041538439350888438428103817/11756453246592156788 -99855903858077543170703702663212319708/7775813092266901197) -1734555140205305628415286772698507060801514301420325900368570916304368260453/7617998589456250715053087609460739603) (num-test (* -49595797981179247160347259926801311825/16426101929443877636 104499598328969971414586784725010079457/3085074725343747115) -1036548193567594227670217621556353400490405002875929378150074378019016735805/10135150379689493069951723318357604028) (num-test (* -288919818051255959565698296502103975540/9373352185361138021 77343596824463059344208562767410464067/8355013728778983070) -319229970313622361785032672064391711775428287673147624981393545586243098874/1118778374191039878067165437747032921) (num-test (* 301194765217764762175383920433701358543/150076401641721289621709469985978858175 -109319143590504335906407585568245068241/158084148208214805386290412276525928977) -32926353787549066990014316879429253235742017240010356390402491456481443332863/23724700119685440084214937112355810539035473428177368317381421021523605836975) (num-test (* 14575317438235510996984657523859363247/6747043355688580686998987940004831062 -98472042392613093668204392119412188287/152397803267436514292317070561082866275) -1435261276663720115408306632770383012566806521695455296458086302958691687889/1028234585957093005711368462502470683211464374115746651290896689614112234050) (num-test (* 7543367187310376010646193530301789591/61115754966424662873097894247178344192 309940239796651595482411737112678240799/200261667764086238794802895148430893795) 2337993034909171213000031444662193658341848356694420878002930517675329723209/12239143016237439360279809707749702660797878084581096344749106125186707088640) (num-test (* 306232835922656327867425959604977465100/55646521674811091128956181530575055283 45245255551837746690160535427248646677/3669533234425940180962041078287629087) 13855582919684583969821610044729507626133731299765443289084519977056998472700/204196760665922729081584465192637337445710456706084552841012480810023816621) (num-test (* -280037880297253633994139513185953058494/23798550327416056573646642830182072429 13967268482262630670960486883264178489/7947215947745048068401387767511847243) -434596028812829556627014314125713048434599389957141408329542154357763726174/21014690966139335562014814134594464675233042588696546668504776333756662583) (num-test (* 87160410649223805266866345018804635271/204719779683096591635231158476535039583 91197762560765392928084914476898132964/277206223024759381433146631560580134513) 7948834435086720002947247338196997812861466884983039250681993725808882173244/56749596904412078223459353928850191672356004665473536520452927516595919428079) (num-test (* 272801380449749740391855824723351316848/2170368723435176720708253536680067463416474841046765138040214254204061862261 14545537787709209389572055399030228996/8381323291479119825335849511027103148981778425333781230074116361235206363821) 3968042787871071204066360146704950989545352280096012736206796950415592924608/18190561932825050861659739926693806725838682397154479213760300500132465705680046683155463862909993066621811136554677896021527098482779305371951555659281) (num-test (* 58980225701104541897366713189611773567/10973700523953435846969235385386214078292603476932194022615006557054104506344 21633357583056027790037764923811848217/41236459355840549300942497778444413350482341379076368704834339005347182486274) 1275940312921345964633100864283753667394719832288287163056787891633576680039/452516555639171997520308257003811683819837367444947027711901120987864272999978391252372420644671039873982401560595091423172287702745925783369137325922256) (num-test (* -39569537110370574225194522625562874655/36290593978404925051095380486087641410218299612051669925683823165483928853304 39273660356839128453616088747231247259/28875229647500294680887983884278577441525691250738380954940513956990510132534) -1554040560950035541902707236381071410695075315482961522429891905381129320645/1047899235170633560739863801929205639611958070150694189488499584527041043137082563721218908614201921449076002548982308540689571766482794493357171683792336) (num-test (* 8957762734053174688386697837976422606/712105675122280831038408324375785815130945929819518342973925027507219300067 118977607972668646264715307919875588738/36563306353035936296510796886853084280648109576589600551753305930842020963283) 355257727628119695756412145322380851760544279491883270008434507085780737076/8678979318410478400681656718586483785992423192579006235728835173903750764880944673586689792087386144715446501744012435157310426693657188196381455479987) (num-test (* 114386050140129336980347743358441052599/11994188887964574384037137314302737861703229337059619512751326848591488081229 -50822174853799566513638003084407139228/97406657802317796912648600328217961853548397771614449630742570869667560514587) -5813347841057137571369557065847591420664634372223088557679866032754664253572/1168313852626327929522799656188055465298138284154709873285311568978496136227795809646907486798429717114923178357702460243511883684964123937654308495387423) (num-test (* -22147677230189664783449572410799931501/75580058176304394102183955194485040346816524663599269056794063928343401057143 -127672554664595215026114551202414743739/35777311684781371234035985601066874920871049301826919955489852676067316906014) 2827650531865200718433745248471704607394596478050653604940563621773668622239/2704051298527551014378337257898371613519363350219566689647796093438747503077807722203668806231503452508016974614236112792032033672965127824348803574358002) (num-test (* 3468729773587632113679855593063165286551216344725198121609354788619580819847/7106612002452012151 20863200733446307102600190583661606839853255577505815215312643683864543217073/5700246487811068117) 72368805556440529088812813715602124890901251289457147618293618526488567540302416253970205832659523238561757581481150988870947074663135867252252227647831/40509440107213064064897416415172689667) (num-test (* 43306673717838918980731699770600730039727453611468399058203483818093233880231/6173575908538565981 106634227988568775671050783423559067905086861634892257032833451008548321218936/17988169594879808463) 1539324572884864883885215269788177741067901747630436643318399808029602335378536990210735234944615096105103848497832537965483619535769637171783464984418072/37017110149885307295697375341989232401) (num-test (* 61636028396239445662576777415312348317278054920190931147781159688109244233565/149659999183936017 50280832809996410949441105432174396823883728565382915986396125237655209339731/3406752842984125790) 206607389257567119017662603624829733217835095238758046754428174885007999774491792658838812826043033826701244157167565054600950156595290052398436186551401/33990308513391731439280046802638562) (num-test (* -100579490802304807750359433955474958462342659278486016345156932756807754105945/15683759624513404963 7314396152134987983181095955389244247502417255088677055075146925285457081540/950287995699608967) -735678240508074701153113537069655056596152436111651040530896921701439724727486696483134676487497031899584038731663111390949471467249259023050011663755300/14904088498613295322494450308817103221) (num-test (* 25984831699359211750216710442693374608159925357093100400945034699383345074385/10463598404993207796 -2395913226491242076662067669730978955981403048697660449593722338244504668974/7015215522730452775) -6225740195664363384298636893730784883811595661227613249243163802476751022407971476247993440178871949687923603921101094083879668063131450147131783163099/7340439795432595812648347200273983390) (num-test (* 5173661857391320950903772549611256023540539838210520778403003347430938670915/2590493168574884173 100300641976357496491877756123729102910724064566692821682523911939220592349990/15304416107565779147) 518921605664943617990486317157527087053001312760892500249127957517476408720600460633868004681188890038115877413554399588737851074382787744833707113540850/39645985375676570588146199684023740431) (num-test (* 30299639015164203561126609159677900559022306879488518544803392527841364186955/97638167801975054493877206805944332747 -50150465496280036231382225902610460555496341860773955714344071185921583266663/170117675960786609061777750278261277482) -1519541000979732808188648781832621044050652591754537200855596768903085847105531546641139177813880505696192826380113425984545675787584857974943247950981165/16609978191541300835961154615181304582159561006676548938424954151558306303054) (num-test (* -34494394944257769716276791009665812125094062960425641316440943461722789694119/69239821080832171466311153221314488591 -68027404272124217088707268142523090163964888591405843143848585935878552833247/257149529774225346004390673137885895872) 2346564149995340998782934409780604815295734898030424565252099571337345550054284934036215402972664245125313098735082896555892607540059632597741979943574393/17804987432587488254198543762235568841018786223139145264591718687823557996352) (num-test (* 22330754509472350470460807673039908304726422770752644988051418230315708975569/141163736844241522445115344332946835969 -3776092949566234532895208849184634613770861313997034923686862122594334787771/22367110097535579962848998753563258272) -9369222740190326741203615957382420344247102784278353165345406236082475331042528539717966581690645628370939381978953360215380653092335198860022382107411/350824982641632215769272917522017419782283768012468846380070797128085153952) (num-test (* 1376215273451682681102140384578115142238259557166158859699272578561460124263/3593386179017642636485249017714833669104405991325015697577507088650274886871 37146275008876311604039415809582675415172661567487888072055609579242279390723/55424998453085285819414374477780690192979527887019008768378662580126754826472) 51121271019052119686352858568900325361226598163234091421115939503875711782442415328681175322030659510284806538410228985354770913411724825992699509412149/199163423413390889071651575953261174839972499014963134990506980080139461063269751906284862132821075544766093817070661266293471833091996501160433036049112) (num-test (* -88175289711320073148300791156190227927348022787624424521937188958291199926437/38194742314758366741668899229532351990874883495690656157862650973602784662629 93421911195279228911508870033119580111709458306921869937709821511660370035352/66371395138592894543765954603571534463846496049156722497129962530412046587003) -8237504085028962150049531747535213236460729066521397582683209771842938254589363802757604921456170821878391951762499073662677974506165863935238701489400824/2535038334389561782321790943041741331416028402594806464107449488311138037598457377927652600804722340759363172755193254192462811091332303758223034251210887) (num-test (* -88364214910455569163017945328431687038422451206033411348821431934742389780753/43010507830592044720656702803904712217809857004582018186125828892174875808576 10405170283887792832024806983921158923908589830001636723872220129826733402834/4055629711949631304631599195955105801456753694558712994574702123032807265321) -459722351572673455425943766571506569631562018487574498847133029199411842205331593858852090421782204158679934054007027833206633183796877753882057444427001/87217346741895687976684378003169607737518608233754137677854312677618987931466495788077930577814677920791330694741284253568592140275298729115088619596448) (let ((val1 (handle-exceptions exn 'error (* 1.0 0.0))) (val2 (handle-exceptions exn 'error (* 1.0 -0.0)))) (s7-test (equal? val1 val2) #t)) (num-test (let ((n 40) (s 1)) (do ((i 0 (+ i 1))) ((= i n) s) (set! s (* s 2/3)))) 1099511627776/12157665459056928801) (num-test (expt 2 40) 1099511627776) (num-test (expt 3 40) 12157665459056928801) (num-test (let ((n 40) (s 1)) (do ((i 0 (+ i 1))) ((= i n) s) (set! s (* s 2/3)))) 9.043772683816628192400549525035572818665E-8) (s7-test (* 0 1 "hi") 'error) (s7-test (* 0.0 "hi") 'error) (s7-test (* 0.0+0.0i "hi") 'error) (s7-test (* 0/1 "hi") 'error) (s7-test (* 1 0.0 #\a) 'error) (s7-test (* 2 2 2.0 2) 16.0) (test-end "*") ;;; -------------------------------------------------------------------------------- ;;; + ;;; -------------------------------------------------------------------------------- (test-begin "+") (num-test (+ -0.0) 0.0) (num-test (+ -0.0+0.00000001i) -0.0+0.00000001i) (num-test (+ -1.0) -1.0) (num-test (+ -1.0+1.0i -1.0+1.0i) -2.0+2.0i) (num-test (+ -1.0+1.0i 0) -1.0+1.0i) (num-test (+ -1.0+1.0i 0.0) -1.0+1.0i) (num-test (+ -1.0+1.0i 0.0+1.0i) -1.0+2.0i) (num-test (+ -1.0+1.0i 1) 0.0+1.0i) (num-test (+ -1.0+1.0i 1.0) 0.0+1.0i) (num-test (+ -1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (+ -1.0+1.0i 1.234+1.234i) 0.234+2.234i) (num-test (+ -1.0+1.0i 1/1) 0.0+1.0i) (num-test (+ -1.0+1.0i 123.4) 122.4+1.0i) (num-test (+ -1.0+1.0i 1234) 1233.0+1.0i) (num-test (+ -1.0+1.0i 1234/11) 111.18181818181819+1.0i) (num-test (+ -1.0+1.0i) -1.0+1.0i) (num-test (+ -10) -10) (num-test (+ -10/3) -10/3) (num-test (+ -1234000000) -1234000000) (num-test (+ -1234000000.0) -1234000000.0) (num-test (+ -1234000000.0+2.71828182845905i) -1234000000.0+2.71828182845905i) (num-test (+ -1234000000/10) -1234000000/10) (num-test (+ -2) -2) (num-test (+ -2.71828182845905) -2.71828182845905) (num-test (+ -2.71828182845905+3.14159265358979i) -2.71828182845905+3.14159265358979i) (num-test (+ -2/2) -2/2) (num-test (+ -362880) -362880) (num-test (+ -362880/1234) -362880/1234) (num-test (+ 0 -1.0+1.0i) -1.0+1.0i) (num-test (+ 0 0) 0) (num-test (+ 0 0.0) 0.0) (num-test (+ 0 0.0+1.0i) 0.0+1.0i) (num-test (+ 0 1 -1.0+1.0i) 0.0+1.0i) (num-test (+ 0 1 0) 1) (num-test (+ 0 1 0.0) 1.0) (num-test (+ 0 1 0.0+1.0i) 1.0+1.0i) (num-test (+ 0 1 1) 2) (num-test (+ 0 1 1.0) 2.0) (num-test (+ 0 1 1.0+1.0i) 2.0+1.0i) (num-test (+ 0 1 1.234+1.234i) 2.234+1.234i) (num-test (+ 0 1 1/1) 2) (num-test (+ 0 1 123.4) 124.4) (num-test (+ 0 1 1234) 1235) (num-test (+ 0 1 1234/11) 1245/11) (num-test (+ 0 1) 1) (num-test (+ 0 1.0 -1.0+1.0i) 0.0+1.0i) (num-test (+ 0 1.0 0) 1.0) (num-test (+ 0 1.0 0.0) 1.0) (num-test (+ 0 1.0 0.0+1.0i) 1.0+1.0i) (num-test (+ 0 1.0 1) 2.0) (num-test (+ 0 1.0 1.0) 2.0) (num-test (+ 0 1.0 1.0+1.0i) 2.0+1.0i) (num-test (+ 0 1.0 1.234+1.234i) 2.234+1.234i) (num-test (+ 0 1.0 1/1) 2.0) (num-test (+ 0 1.0 123.4) 124.4) (num-test (+ 0 1.0 1234) 1235.0) (num-test (+ 0 1.0 1234/11) 113.18181818181819) (num-test (+ 0 1.0) 1.0) (num-test (+ 0 1.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (+ 0 1.0+1.0i 0) 1.0+1.0i) (num-test (+ 0 1.0+1.0i 0.0) 1.0+1.0i) (num-test (+ 0 1.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (+ 0 1.0+1.0i 1) 2.0+1.0i) (num-test (+ 0 1.0+1.0i 1.0) 2.0+1.0i) (num-test (+ 0 1.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (+ 0 1.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (+ 0 1.0+1.0i 1/1) 2.0+1.0i) (num-test (+ 0 1.0+1.0i 123.4) 124.4+1.0i) (num-test (+ 0 1.0+1.0i 1234) 1235.0+1.0i) (num-test (+ 0 1.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (+ 0 1.0+1.0i) 1.0+1.0i) (num-test (+ 0 1.234+1.234i) 1.234+1.234i) (num-test (+ 0 1/1 -1.0+1.0i) 0.0+1.0i) (num-test (+ 0 123.4) 123.4) (num-test (+ 0 1234) 1234) (num-test (+ 0 1234/11) 1234/11) (num-test (+ 0) 0) (num-test (+ 0.0 -1.0+1.0i -1.0+1.0i) -2.0+2.0i) (num-test (+ 0.0 -1.0+1.0i 0) -1.0+1.0i) (num-test (+ 0.0 -1.0+1.0i 0.0) -1.0+1.0i) (num-test (+ 0.0 -1.0+1.0i 0.0+1.0i) -1.0+2.0i) (num-test (+ 0.0 -1.0+1.0i 1) 0.0+1.0i) (num-test (+ 0.0 -1.0+1.0i 1.0) 0.0+1.0i) (num-test (+ 0.0 -1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (+ 0.0 -1.0+1.0i 1.234+1.234i) 0.234+2.234i) (num-test (+ 0.0 -1.0+1.0i 1/1) 0.0+1.0i) (num-test (+ 0.0 -1.0+1.0i 123.4) 122.4+1.0i) (num-test (+ 0.0 -1.0+1.0i 1234) 1233.0+1.0i) (num-test (+ 0.0 -1.0+1.0i 1234/11) 111.18181818181819+1.0i) (num-test (+ 0.0 -1.0+1.0i) -1.0+1.0i) (num-test (+ 0.0 0 -1.0+1.0i) -1.0+1.0i) (num-test (+ 0.0 0 0) 0.0) (num-test (+ 0.0 0 0.0) 0.0) (num-test (+ 0.0 0 0.0+1.0i) 0.0+1.0i) (num-test (+ 0.0 0 1) 1.0) (num-test (+ 0.0 0 1.0) 1.0) (num-test (+ 0.0 0 1.0+1.0i) 1.0+1.0i) (num-test (+ 0.0 0 1.234+1.234i) 1.234+1.234i) (num-test (+ 0.0 0 1/1) 1.0) (num-test (+ 0.0 0 123.4) 123.4) (num-test (+ 0.0 0 1234) 1234.0) (num-test (+ 0.0 0 1234/11) 112.18181818181819) (num-test (+ 0.0 0) 0.0) (num-test (+ 0.0 0.0 -1.0+1.0i) -1.0+1.0i) (num-test (+ 0.0 0.0 0) 0.0) (num-test (+ 0.0 0.0 0.0) 0.0) (num-test (+ 0.0 0.0 0.0+1.0i) 0.0+1.0i) (num-test (+ 0.0 0.0 1) 1.0) (num-test (+ 0.0 0.0 1.0) 1.0) (num-test (+ 0.0 0.0 1.0+1.0i) 1.0+1.0i) (num-test (+ 0.0 0.0 1.234+1.234i) 1.234+1.234i) (num-test (+ 0.0 0.0 1/1) 1.0) (num-test (+ 0.0 0.0 123.4) 123.4) (num-test (+ 0.0 0.0 1234) 1234.0) (num-test (+ 0.0 0.0 1234/11) 112.18181818181819) (num-test (+ 0.0 0.0) 0.0) (num-test (+ 0.0 0.0+1.0i -1.0+1.0i) -1.0+2.0i) (num-test (+ 0.0 0.0+1.0i 0) 0.0+1.0i) (num-test (+ 0.0 0.0+1.0i 0.0) 0.0+1.0i) (num-test (+ 0.0 0.0+1.0i 0.0+1.0i) 0.0+2.0i) (num-test (+ 0.0 0.0+1.0i 1) 1.0+1.0i) (num-test (+ 0.0 0.0+1.0i 1.0) 1.0+1.0i) (num-test (+ 0.0 0.0+1.0i 1.0+1.0i) 1.0+2.0i) (num-test (+ 0.0 0.0+1.0i 1.234+1.234i) 1.234+2.234i) (num-test (+ 0.0 0.0+1.0i 1/1) 1.0+1.0i) (num-test (+ 0.0 0.0+1.0i 123.4) 123.4+1.0i) (num-test (+ 0.0 0.0+1.0i 1234) 1234.0+1.0i) (num-test (+ 0.0 0.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (+ 0.0 0.0+1.0i) 0.0+1.0i) (num-test (+ 0.0 1 -1.0+1.0i) 0.0+1.0i) (num-test (+ 0.0 1 0) 1.0) (num-test (+ 0.0 1 0.0) 1.0) (num-test (+ 0.0 1 0.0+1.0i) 1.0+1.0i) (num-test (+ 0.0 1 1.0) 2.0) (num-test (+ 0.0 1 1.0+1.0i) 2.0+1.0i) (num-test (+ 0.0 1 1.234+1.234i) 2.234+1.234i) (num-test (+ 0.0 1 1/1) 2.0) (num-test (+ 0.0 1 123.4) 124.4) (num-test (+ 0.0 1 1234) 1235.0) (num-test (+ 0.0 1 1234/11) 113.18181818181819) (num-test (+ 0.0 1) 1.0) (num-test (+ 0.0 1.0 -1.0+1.0i) 0.0+1.0i) (num-test (+ 0.0 1.0 0) 1.0) (num-test (+ 0.0 1.0 0.0) 1.0) (num-test (+ 0.0 1.0 0.0+1.0i) 1.0+1.0i) (num-test (+ 0.0 1.0 1) 2.0) (num-test (+ 0.0 1.0 1.0) 2.0) (num-test (+ 0.0 1.0 1.0+1.0i) 2.0+1.0i) (num-test (+ 0.0 1.0 1.234+1.234i) 2.234+1.234i) (num-test (+ 0.0 1.0 1/1) 2.0) (num-test (+ 0.0 1.0 123.4) 124.4) (num-test (+ 0.0 1.0 1234) 1235.0) (num-test (+ 0.0 1.0 1234/11) 113.18181818181819) (num-test (+ 0.0 1.0) 1.0) (num-test (+ 0.0 1.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (+ 0.0 1.0+1.0i 0) 1.0+1.0i) (num-test (+ 0.0 1.0+1.0i 0.0) 1.0+1.0i) (num-test (+ 0.0 1.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (+ 0.0 1.0+1.0i 1) 2.0+1.0i) (num-test (+ 0.0 1.0+1.0i 1.0) 2.0+1.0i) (num-test (+ 0.0 1.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (+ 0.0 1.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (+ 0.0 1.0+1.0i 1/1) 2.0+1.0i) (num-test (+ 0.0 1.0+1.0i 123.4) 124.4+1.0i) (num-test (+ 0.0 1.0+1.0i 1234) 1235.0+1.0i) (num-test (+ 0.0 1.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (+ 0.0 1.0+1.0i) 1.0+1.0i) (num-test (+ 0.0 1.234+1.234i -1.0+1.0i) 0.234+2.234i) (num-test (+ 0.0 1.234+1.234i 0) 1.234+1.234i) (num-test (+ 0.0 1.234+1.234i 0.0) 1.234+1.234i) (num-test (+ 0.0 1.234+1.234i 0.0+1.0i) 1.234+2.234i) (num-test (+ 0.0 1.234+1.234i 1) 2.234+1.234i) (num-test (+ 0.0 1.234+1.234i 1.0) 2.234+1.234i) (num-test (+ 0.0 1.234+1.234i 1.0+1.0i) 2.234+2.234i) (num-test (+ 0.0 1.234+1.234i 1.234+1.234i) 2.468+2.468i) (num-test (+ 0.0 1.234+1.234i 1/1) 2.234+1.234i) (num-test (+ 0.0 1.234+1.234i 123.4) 124.634+1.234i) (num-test (+ 0.0 1.234+1.234i 1234) 1235.23399999999992+1.234i) (num-test (+ 0.0 1.234+1.234i 1234/11) 113.41581818181818+1.234i) (num-test (+ 0.0 1.234+1.234i) 1.234+1.234i) (num-test (+ 0.0 1/1 -1.0+1.0i) 0.0+1.0i) (num-test (+ 0.0 123.4 -1.0+1.0i) 122.4+1.0i) (num-test (+ 0.0 123.4 0) 123.4) (num-test (+ 0.0 123.4 0.0) 123.4) (num-test (+ 0.0 123.4 0.0+1.0i) 123.4+1.0i) (num-test (+ 0.0 123.4 1) 124.4) (num-test (+ 0.0 123.4 1.0) 124.4) (num-test (+ 0.0 123.4 1.0+1.0i) 124.4+1.0i) (num-test (+ 0.0 123.4 1.234+1.234i) 124.634+1.234i) (num-test (+ 0.0 123.4 1/1) 124.4) (num-test (+ 0.0 123.4 123.4) 246.8) (num-test (+ 0.0 123.4 1234) 1357.4) (num-test (+ 0.0 123.4 1234/11) 235.58181818181819) (num-test (+ 0.0 123.4) 123.4) (num-test (+ 0.0 1234 -1.0+1.0i) 1233.0+1.0i) (num-test (+ 0.0 1234 0) 1234.0) (num-test (+ 0.0 1234 0.0) 1234.0) (num-test (+ 0.0 1234 0.0+1.0i) 1234.0+1.0i) (num-test (+ 0.0 1234 1) 1235.0) (num-test (+ 0.0 1234 1.0) 1235.0) (num-test (+ 0.0 1234 1.0+1.0i) 1235.0+1.0i) (num-test (+ 0.0 1234 1.234+1.234i) 1235.23399999999992+1.234i) (num-test (+ 0.0 1234 1/1) 1235.0) (num-test (+ 0.0 1234 123.4) 1357.4) (num-test (+ 0.0 1234 1234) 2468.0) (num-test (+ 0.0 1234 1234/11) 1346.18181818181824) (num-test (+ 0.0 1234) 1234.0) (num-test (+ 0.0 1234/11 -1.0+1.0i) 111.18181818181819+1.0i) (num-test (+ 0.0 1234/11 0) 112.18181818181819) (num-test (+ 0.0 1234/11 0.0) 112.18181818181819) (num-test (+ 0.0 1234/11 0.0+1.0i) 112.18181818181819+1.0i) (num-test (+ 0.0 1234/11 1) 113.18181818181819) (num-test (+ 0.0 1234/11 1.0) 113.18181818181819) (num-test (+ 0.0 1234/11 1.0+1.0i) 113.18181818181819+1.0i) (num-test (+ 0.0 1234/11 1.234+1.234i) 113.41581818181818+1.234i) (num-test (+ 0.0 1234/11 1/1) 113.18181818181819) (num-test (+ 0.0 1234/11 123.4) 235.58181818181819) (num-test (+ 0.0 1234/11 1234) 1346.18181818181824) (num-test (+ 0.0 1234/11 1234/11) 224.36363636363637) (num-test (+ 0.0 1234/11) 112.18181818181819) (num-test (+ 0.0) 0.0) (num-test (+ 0.0+0.00000001i) 0.0+0.00000001i) (num-test (+ 0.0+1.0i -1.0+1.0i) -1.0+2.0i) (num-test (+ 0.0+1.0i 0) 0.0+1.0i) (num-test (+ 0.0+1.0i 0.0) 0.0+1.0i) (num-test (+ 0.0+1.0i 0.0+1.0i) 0.0+2.0i) (num-test (+ 0.0+1.0i 1) 1.0+1.0i) (num-test (+ 0.0+1.0i 1.0) 1.0+1.0i) (num-test (+ 0.0+1.0i 1.0+1.0i) 1.0+2.0i) (num-test (+ 0.0+1.0i 1.234+1.234i) 1.234+2.234i) (num-test (+ 0.0+1.0i 1/1) 1.0+1.0i) (num-test (+ 0.0+1.0i 123.4) 123.4+1.0i) (num-test (+ 0.0+1.0i 1234) 1234.0+1.0i) (num-test (+ 0.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (+ 0/1) 0/1) (num-test (+ 0/1) 0/1) (num-test (+ 1 -1.0+1.0i) 0.0+1.0i) (num-test (+ 1 0) 1) (num-test (+ 1 0.0) 1.0) (num-test (+ 1 0.0+1.0i) 1.0+1.0i) (num-test (+ 1 1 -1.0+1.0i) 1.0+1.0i) (num-test (+ 1 1 0) 2) (num-test (+ 1 1 0.0) 2.0) (num-test (+ 1 1 0.0+1.0i) 2.0+1.0i) (num-test (+ 1 1 1) 3) (num-test (+ 1 1 1.0) 3.0) (num-test (+ 1 1 1.0+1.0i) 3.0+1.0i) (num-test (+ 1 1 1.234+1.234i) 3.234+1.234i) (num-test (+ 1 1 1/1) 3) (num-test (+ 1 1 123.4) 125.4) (num-test (+ 1 1 1234) 1236) (num-test (+ 1 1 1234/11) 1256/11) (num-test (+ 1 1) 2) (num-test (+ 1 1.0 -1.0+1.0i) 1.0+1.0i) (num-test (+ 1 1.0 0) 2.0) (num-test (+ 1 1.0 0.0) 2.0) (num-test (+ 1 1.0 0.0+1.0i) 2.0+1.0i) (num-test (+ 1 1.0 1) 3.0) (num-test (+ 1 1.0 1.0) 3.0) (num-test (+ 1 1.0 1.0+1.0i) 3.0+1.0i) (num-test (+ 1 1.0 1.234+1.234i) 3.234+1.234i) (num-test (+ 1 1.0 1/1) 3.0) (num-test (+ 1 1.0 123.4) 125.4) (num-test (+ 1 1.0 1234) 1236.0) (num-test (+ 1 1.0 1234/11) 114.18181818181819) (num-test (+ 1 1.0) 2.0) (num-test (+ 1 1.0+1.0i -1.0+1.0i) 1.0+2.0i) (num-test (+ 1 1.0+1.0i 0) 2.0+1.0i) (num-test (+ 1 1.0+1.0i 0.0) 2.0+1.0i) (num-test (+ 1 1.0+1.0i 0.0+1.0i) 2.0+2.0i) (num-test (+ 1 1.0+1.0i 1) 3.0+1.0i) (num-test (+ 1 1.0+1.0i 1.0) 3.0+1.0i) (num-test (+ 1 1.0+1.0i 1.0+1.0i) 3.0+2.0i) (num-test (+ 1 1.0+1.0i 1.234+1.234i) 3.234+2.234i) (num-test (+ 1 1.0+1.0i 1/1) 3.0+1.0i) (num-test (+ 1 1.0+1.0i 123.4) 125.4+1.0i) (num-test (+ 1 1.0+1.0i 1234) 1236.0+1.0i) (num-test (+ 1 1.0+1.0i 1234/11) 114.18181818181819+1.0i) (num-test (+ 1 1.0+1.0i) 2.0+1.0i) (num-test (+ 1 1.234+1.234i) 2.234+1.234i) (num-test (+ 1 123.4) 124.4) (num-test (+ 1 1234) 1235) (num-test (+ 1 1234/11) 1245/11) (num-test (+ 1.0 -1.0+1.0i -1.0+1.0i) -1.0+2.0i) (num-test (+ 1.0 -1.0+1.0i 0) 0.0+1.0i) (num-test (+ 1.0 -1.0+1.0i 0.0) 0.0+1.0i) (num-test (+ 1.0 -1.0+1.0i 0.0+1.0i) 0.0+2.0i) (num-test (+ 1.0 -1.0+1.0i 1) 1.0+1.0i) (num-test (+ 1.0 -1.0+1.0i 1.0) 1.0+1.0i) (num-test (+ 1.0 -1.0+1.0i 1.0+1.0i) 1.0+2.0i) (num-test (+ 1.0 -1.0+1.0i 1.234+1.234i) 1.234+2.234i) (num-test (+ 1.0 -1.0+1.0i 1/1) 1.0+1.0i) (num-test (+ 1.0 -1.0+1.0i 123.4) 123.4+1.0i) (num-test (+ 1.0 -1.0+1.0i 1234) 1234.0+1.0i) (num-test (+ 1.0 -1.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (+ 1.0 -1.0+1.0i) 0.0+1.0i) (num-test (+ 1.0 0 -1.0+1.0i) 0.0+1.0i) (num-test (+ 1.0 0 0) 1.0) (num-test (+ 1.0 0 0.0) 1.0) (num-test (+ 1.0 0 0.0+1.0i) 1.0+1.0i) (num-test (+ 1.0 0 1) 2.0) (num-test (+ 1.0 0 1.0) 2.0) (num-test (+ 1.0 0 1.0+1.0i) 2.0+1.0i) (num-test (+ 1.0 0 1.234+1.234i) 2.234+1.234i) (num-test (+ 1.0 0 1/1) 2.0) (num-test (+ 1.0 0 123.4) 124.4) (num-test (+ 1.0 0 1234) 1235.0) (num-test (+ 1.0 0 1234/11) 113.18181818181819) (num-test (+ 1.0 0) 1.0) (num-test (+ 1.0 0.0 -1.0+1.0i) 0.0+1.0i) (num-test (+ 1.0 0.0 0) 1.0) (num-test (+ 1.0 0.0 0.0) 1.0) (num-test (+ 1.0 0.0 0.0+1.0i) 1.0+1.0i) (num-test (+ 1.0 0.0 1) 2.0) (num-test (+ 1.0 0.0 1.0) 2.0) (num-test (+ 1.0 0.0 1.0+1.0i) 2.0+1.0i) (num-test (+ 1.0 0.0 1.234+1.234i) 2.234+1.234i) (num-test (+ 1.0 0.0 1/1) 2.0) (num-test (+ 1.0 0.0 123.4) 124.4) (num-test (+ 1.0 0.0 1234) 1235.0) (num-test (+ 1.0 0.0 1234/11) 113.18181818181819) (num-test (+ 1.0 0.0) 1.0) (num-test (+ 1.0 0.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (+ 1.0 0.0+1.0i 0) 1.0+1.0i) (num-test (+ 1.0 0.0+1.0i 0.0) 1.0+1.0i) (num-test (+ 1.0 0.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (+ 1.0 0.0+1.0i 1) 2.0+1.0i) (num-test (+ 1.0 0.0+1.0i 1.0) 2.0+1.0i) (num-test (+ 1.0 0.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (+ 1.0 0.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (+ 1.0 0.0+1.0i 1/1) 2.0+1.0i) (num-test (+ 1.0 0.0+1.0i 123.4) 124.4+1.0i) (num-test (+ 1.0 0.0+1.0i 1234) 1235.0+1.0i) (num-test (+ 1.0 0.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (+ 1.0 0.0+1.0i) 1.0+1.0i) (num-test (+ 1.0 1 -1.0+1.0i) 1.0+1.0i) (num-test (+ 1.0 1 0) 2.0) (num-test (+ 1.0 1 0.0) 2.0) (num-test (+ 1.0 1 0.0+1.0i) 2.0+1.0i) (num-test (+ 1.0 1 1) 3.0) (num-test (+ 1.0 1 1.0) 3.0) (num-test (+ 1.0 1 1.0+1.0i) 3.0+1.0i) (num-test (+ 1.0 1 1.234+1.234i) 3.234+1.234i) (num-test (+ 1.0 1 1/1) 3.0) (num-test (+ 1.0 1 123.4) 125.4) (num-test (+ 1.0 1 1234) 1236.0) (num-test (+ 1.0 1 1234/11) 114.18181818181819) (num-test (+ 1.0 1) 2.0) (num-test (+ 1.0 1.0 -1.0+1.0i) 1.0+1.0i) (num-test (+ 1.0 1.0 0) 2.0) (num-test (+ 1.0 1.0 0.0) 2.0) (num-test (+ 1.0 1.0 0.0+1.0i) 2.0+1.0i) (num-test (+ 1.0 1.0 1) 3.0) (num-test (+ 1.0 1.0 1.0) 3.0) (num-test (+ 1.0 1.0 1.0+1.0i) 3.0+1.0i) (num-test (+ 1.0 1.0 1.234+1.234i) 3.234+1.234i) (num-test (+ 1.0 1.0 1/1) 3.0) (num-test (+ 1.0 1.0 123.4) 125.4) (num-test (+ 1.0 1.0 1234) 1236.0) (num-test (+ 1.0 1.0 1234/11) 114.18181818181819) (num-test (+ 1.0 1.0) 2.0) (num-test (+ 1.0 1.0+1.0i -1.0+1.0i) 1.0+2.0i) (num-test (+ 1.0 1.0+1.0i 0) 2.0+1.0i) (num-test (+ 1.0 1.0+1.0i 0.0) 2.0+1.0i) (num-test (+ 1.0 1.0+1.0i 0.0+1.0i) 2.0+2.0i) (num-test (+ 1.0 1.0+1.0i 1) 3.0+1.0i) (num-test (+ 1.0 1.0+1.0i 1.0) 3.0+1.0i) (num-test (+ 1.0 1.0+1.0i 1.0+1.0i) 3.0+2.0i) (num-test (+ 1.0 1.0+1.0i 1.234+1.234i) 3.234+2.234i) (num-test (+ 1.0 1.0+1.0i 1/1) 3.0+1.0i) (num-test (+ 1.0 1.0+1.0i 123.4) 125.4+1.0i) (num-test (+ 1.0 1.0+1.0i 1234) 1236.0+1.0i) (num-test (+ 1.0 1.0+1.0i 1234/11) 114.18181818181819+1.0i) (num-test (+ 1.0 1.0+1.0i) 2.0+1.0i) (num-test (+ 1.0 1.234+1.234i -1.0+1.0i) 1.234+2.234i) (num-test (+ 1.0 1.234+1.234i 0) 2.234+1.234i) (num-test (+ 1.0 1.234+1.234i 0.0) 2.234+1.234i) (num-test (+ 1.0 1.234+1.234i 0.0+1.0i) 2.234+2.234i) (num-test (+ 1.0 1.234+1.234i 1) 3.234+1.234i) (num-test (+ 1.0 1.234+1.234i 1.0) 3.234+1.234i) (num-test (+ 1.0 1.234+1.234i 1.0+1.0i) 3.234+2.234i) (num-test (+ 1.0 1.234+1.234i 1.234+1.234i) 3.468+2.468i) (num-test (+ 1.0 1.234+1.234i 1/1) 3.234+1.234i) (num-test (+ 1.0 1.234+1.234i 123.4) 125.634+1.234i) (num-test (+ 1.0 1.234+1.234i 1234) 1236.23399999999992+1.234i) (num-test (+ 1.0 1.234+1.234i 1234/11) 114.41581818181818+1.234i) (num-test (+ 1.0 1.234+1.234i) 2.234+1.234i) (num-test (+ 1.0 1/1 -1.0+1.0i) 1.0+1.0i) (num-test (+ 1.0 123.4 -1.0+1.0i) 123.4+1.0i) (num-test (+ 1.0 123.4 0) 124.4) (num-test (+ 1.0 123.4 0.0) 124.4) (num-test (+ 1.0 123.4 0.0+1.0i) 124.4+1.0i) (num-test (+ 1.0 123.4 1) 125.4) (num-test (+ 1.0 123.4 1.0) 125.4) (num-test (+ 1.0 123.4 1.0+1.0i) 125.4+1.0i) (num-test (+ 1.0 123.4 1.234+1.234i) 125.634+1.234i) (num-test (+ 1.0 123.4 1/1) 125.4) (num-test (+ 1.0 123.4 123.4) 247.8) (num-test (+ 1.0 123.4 1234) 1358.4) (num-test (+ 1.0 123.4 1234/11) 236.58181818181819) (num-test (+ 1.0 123.4) 124.4) (num-test (+ 1.0 1234 -1.0+1.0i) 1234.0+1.0i) (num-test (+ 1.0 1234 0) 1235.0) (num-test (+ 1.0 1234 0.0) 1235.0) (num-test (+ 1.0 1234 0.0+1.0i) 1235.0+1.0i) (num-test (+ 1.0 1234 1) 1236.0) (num-test (+ 1.0 1234 1.0) 1236.0) (num-test (+ 1.0 1234 1.0+1.0i) 1236.0+1.0i) (num-test (+ 1.0 1234 1.234+1.234i) 1236.23399999999992+1.234i) (num-test (+ 1.0 1234 1/1) 1236.0) (num-test (+ 1.0 1234 123.4) 1358.4) (num-test (+ 1.0 1234 1234) 2469.0) (num-test (+ 1.0 1234 1234/11) 1347.18181818181824) (num-test (+ 1.0 1234) 1235.0) (num-test (+ 1.0 1234/11 -1.0+1.0i) 112.18181818181819+1.0i) (num-test (+ 1.0 1234/11 0) 113.18181818181819) (num-test (+ 1.0 1234/11 0.0) 113.18181818181819) (num-test (+ 1.0 1234/11 0.0+1.0i) 113.18181818181819+1.0i) (num-test (+ 1.0 1234/11 1) 114.18181818181819) (num-test (+ 1.0 1234/11 1.0) 114.18181818181819) (num-test (+ 1.0 1234/11 1.0+1.0i) 114.18181818181819+1.0i) (num-test (+ 1.0 1234/11 1.234+1.234i) 114.41581818181818+1.234i) (num-test (+ 1.0 1234/11 1/1) 114.18181818181819) (num-test (+ 1.0 1234/11 123.4) 236.58181818181819) (num-test (+ 1.0 1234/11 1234) 1347.18181818181824) (num-test (+ 1.0 1234/11 1234/11) 225.36363636363637) (num-test (+ 1.0 1234/11) 113.18181818181819) (num-test (+ 1.0) 1.0) (num-test (+ 1.0+1.0i -1.0+1.0i -1.0+1.0i) -1.0+3.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 0) 0.0+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 0.0) 0.0+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 0.0+1.0i) 0.0+3.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 1) 1.0+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 1.0) 1.0+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 1.0+1.0i) 1.0+3.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 1.234+1.234i) 1.234+3.234i) (num-test (+ 1.0+1.0i -1.0+1.0i 1/1) 1.0+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 123.4) 123.4+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 1234) 1234.0+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i 1234/11) 112.18181818181819+2.0i) (num-test (+ 1.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (+ 1.0+1.0i 0 -1.0+1.0i) 0.0+2.0i) (num-test (+ 1.0+1.0i 0 0) 1.0+1.0i) (num-test (+ 1.0+1.0i 0 0.0) 1.0+1.0i) (num-test (+ 1.0+1.0i 0 0.0+1.0i) 1.0+2.0i) (num-test (+ 1.0+1.0i 0 1) 2.0+1.0i) (num-test (+ 1.0+1.0i 0 1.0) 2.0+1.0i) (num-test (+ 1.0+1.0i 0 1.0+1.0i) 2.0+2.0i) (num-test (+ 1.0+1.0i 0 1.234+1.234i) 2.234+2.234i) (num-test (+ 1.0+1.0i 0 1/1) 2.0+1.0i) (num-test (+ 1.0+1.0i 0 123.4) 124.4+1.0i) (num-test (+ 1.0+1.0i 0 1234) 1235.0+1.0i) (num-test (+ 1.0+1.0i 0 1234/11) 113.18181818181819+1.0i) (num-test (+ 1.0+1.0i 0) 1.0+1.0i) (num-test (+ 1.0+1.0i 0.0 -1.0+1.0i) 0.0+2.0i) (num-test (+ 1.0+1.0i 0.0 0) 1.0+1.0i) (num-test (+ 1.0+1.0i 0.0 0.0) 1.0+1.0i) (num-test (+ 1.0+1.0i 0.0 0.0+1.0i) 1.0+2.0i) (num-test (+ 1.0+1.0i 0.0 1) 2.0+1.0i) (num-test (+ 1.0+1.0i 0.0 1.0) 2.0+1.0i) (num-test (+ 1.0+1.0i 0.0 1.0+1.0i) 2.0+2.0i) (num-test (+ 1.0+1.0i 0.0 1.234+1.234i) 2.234+2.234i) (num-test (+ 1.0+1.0i 0.0 1/1) 2.0+1.0i) (num-test (+ 1.0+1.0i 0.0 123.4) 124.4+1.0i) (num-test (+ 1.0+1.0i 0.0 1234) 1235.0+1.0i) (num-test (+ 1.0+1.0i 0.0 1234/11) 113.18181818181819+1.0i) (num-test (+ 1.0+1.0i 0.0) 1.0+1.0i) (num-test (+ 1.0+1.0i 0.0+1.0i -1.0+1.0i) 0.0+3.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 0) 1.0+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 0.0) 1.0+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 0.0+1.0i) 1.0+3.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 1) 2.0+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 1.0) 2.0+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 1.0+1.0i) 2.0+3.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 1.234+1.234i) 2.234+3.234i) (num-test (+ 1.0+1.0i 0.0+1.0i 1/1) 2.0+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 123.4) 124.4+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 1234) 1235.0+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i 1234/11) 113.18181818181819+2.0i) (num-test (+ 1.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (+ 1.0+1.0i 1 -1.0+1.0i) 1.0+2.0i) (num-test (+ 1.0+1.0i 1 0) 2.0+1.0i) (num-test (+ 1.0+1.0i 1 0.0) 2.0+1.0i) (num-test (+ 1.0+1.0i 1 0.0+1.0i) 2.0+2.0i) (num-test (+ 1.0+1.0i 1 1) 3.0+1.0i) (num-test (+ 1.0+1.0i 1 1.0) 3.0+1.0i) (num-test (+ 1.0+1.0i 1 1.0+1.0i) 3.0+2.0i) (num-test (+ 1.0+1.0i 1 1.234+1.234i) 3.234+2.234i) (num-test (+ 1.0+1.0i 1 1/1) 3.0+1.0i) (num-test (+ 1.0+1.0i 1 123.4) 125.4+1.0i) (num-test (+ 1.0+1.0i 1 1234) 1236.0+1.0i) (num-test (+ 1.0+1.0i 1 1234/11) 114.18181818181819+1.0i) (num-test (+ 1.0+1.0i 1) 2.0+1.0i) (num-test (+ 1.0+1.0i 1.0 -1.0+1.0i) 1.0+2.0i) (num-test (+ 1.0+1.0i 1.0 0) 2.0+1.0i) (num-test (+ 1.0+1.0i 1.0 0.0) 2.0+1.0i) (num-test (+ 1.0+1.0i 1.0 0.0+1.0i) 2.0+2.0i) (num-test (+ 1.0+1.0i 1.0 1) 3.0+1.0i) (num-test (+ 1.0+1.0i 1.0 1.0) 3.0+1.0i) (num-test (+ 1.0+1.0i 1.0 1.0+1.0i) 3.0+2.0i) (num-test (+ 1.0+1.0i 1.0 1.234+1.234i) 3.234+2.234i) (num-test (+ 1.0+1.0i 1.0 1/1) 3.0+1.0i) (num-test (+ 1.0+1.0i 1.0 123.4) 125.4+1.0i) (num-test (+ 1.0+1.0i 1.0 1234) 1236.0+1.0i) (num-test (+ 1.0+1.0i 1.0 1234/11) 114.18181818181819+1.0i) (num-test (+ 1.0+1.0i 1.0) 2.0+1.0i) (num-test (+ 1.0+1.0i 1.0+1.0i -1.0+1.0i) 1.0+3.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 0) 2.0+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 0.0) 2.0+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 0.0+1.0i) 2.0+3.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 1) 3.0+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 1.0) 3.0+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 1.0+1.0i) 3.0+3.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 1.234+1.234i) 3.234+3.234i) (num-test (+ 1.0+1.0i 1.0+1.0i 1/1) 3.0+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 123.4) 125.4+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 1234) 1236.0+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i 1234/11) 114.18181818181819+2.0i) (num-test (+ 1.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (+ 1.0+1.0i 1.234+1.234i -1.0+1.0i) 1.234+3.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 0) 2.234+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 0.0) 2.234+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 0.0+1.0i) 2.234+3.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 1) 3.234+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 1.0) 3.234+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 1.0+1.0i) 3.234+3.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 1.234+1.234i) 3.468+3.468i) (num-test (+ 1.0+1.0i 1.234+1.234i 1/1) 3.234+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 123.4) 125.634+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 1234) 1236.23399999999992+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i 1234/11) 114.41581818181818+2.234i) (num-test (+ 1.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (+ 1.0+1.0i 123.4 -1.0+1.0i) 123.4+2.0i) (num-test (+ 1.0+1.0i 123.4 0) 124.4+1.0i) (num-test (+ 1.0+1.0i 123.4 0.0) 124.4+1.0i) (num-test (+ 1.0+1.0i 123.4 0.0+1.0i) 124.4+2.0i) (num-test (+ 1.0+1.0i 123.4 1) 125.4+1.0i) (num-test (+ 1.0+1.0i 123.4 1.0) 125.4+1.0i) (num-test (+ 1.0+1.0i 123.4 1.0+1.0i) 125.4+2.0i) (num-test (+ 1.0+1.0i 123.4 1.234+1.234i) 125.634+2.234i) (num-test (+ 1.0+1.0i 123.4 1/1) 125.4+1.0i) (num-test (+ 1.0+1.0i 123.4 123.4) 247.8+1.0i) (num-test (+ 1.0+1.0i 123.4 1234) 1358.4+1.0i) (num-test (+ 1.0+1.0i 123.4 1234/11) 236.58181818181819+1.0i) (num-test (+ 1.0+1.0i 123.4) 124.4+1.0i) (num-test (+ 1.0+1.0i 1234 -1.0+1.0i) 1234.0+2.0i) (num-test (+ 1.0+1.0i 1234 0) 1235.0+1.0i) (num-test (+ 1.0+1.0i 1234 0.0) 1235.0+1.0i) (num-test (+ 1.0+1.0i 1234 0.0+1.0i) 1235.0+2.0i) (num-test (+ 1.0+1.0i 1234 1) 1236.0+1.0i) (num-test (+ 1.0+1.0i 1234 1.0) 1236.0+1.0i) (num-test (+ 1.0+1.0i 1234 1.0+1.0i) 1236.0+2.0i) (num-test (+ 1.0+1.0i 1234 1.234+1.234i) 1236.23399999999992+2.234i) (num-test (+ 1.0+1.0i 1234 1/1) 1236.0+1.0i) (num-test (+ 1.0+1.0i 1234 123.4) 1358.4+1.0i) (num-test (+ 1.0+1.0i 1234 1234) 2469.0+1.0i) (num-test (+ 1.0+1.0i 1234 1234/11) 1347.18181818181824+1.0i) (num-test (+ 1.0+1.0i 1234) 1235.0+1.0i) (num-test (+ 1.0+1.0i 1234/11 -1.0+1.0i) 112.18181818181819+2.0i) (num-test (+ 1.0+1.0i 1234/11 0) 113.18181818181819+1.0i) (num-test (+ 1.0+1.0i 1234/11 0.0) 113.18181818181819+1.0i) (num-test (+ 1.0+1.0i 1234/11 0.0+1.0i) 113.18181818181819+2.0i) (num-test (+ 1.0+1.0i 1234/11 1) 114.18181818181819+1.0i) (num-test (+ 1.0+1.0i 1234/11 1.0) 114.18181818181819+1.0i) (num-test (+ 1.0+1.0i 1234/11 1.0+1.0i) 114.18181818181819+2.0i) (num-test (+ 1.0+1.0i 1234/11 1.234+1.234i) 114.41581818181818+2.234i) (num-test (+ 1.0+1.0i 1234/11 1/1) 114.18181818181819+1.0i) (num-test (+ 1.0+1.0i 1234/11 123.4) 236.58181818181819+1.0i) (num-test (+ 1.0+1.0i 1234/11 1234) 1347.18181818181824+1.0i) (num-test (+ 1.0+1.0i 1234/11 1234/11) 225.36363636363637+1.0i) (num-test (+ 1.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (+ 1.0+1.0i) 1.0+1.0i) (num-test (+ 1.234+1.234i -1.0+1.0i) 0.234+2.234i) (num-test (+ 1.234+1.234i 0) 1.234+1.234i) (num-test (+ 1.234+1.234i 0.0) 1.234+1.234i) (num-test (+ 1.234+1.234i 0.0+1.0i) 1.234+2.234i) (num-test (+ 1.234+1.234i 1) 2.234+1.234i) (num-test (+ 1.234+1.234i 1.0) 2.234+1.234i) (num-test (+ 1.234+1.234i 1.0+1.0i) 2.234+2.234i) (num-test (+ 1.234+1.234i 1.234+1.234i) 2.468+2.468i) (num-test (+ 1.234+1.234i 1/1) 2.234+1.234i) (num-test (+ 1.234+1.234i 123.4) 124.634+1.234i) (num-test (+ 1.234+1.234i 1234) 1235.23399999999992+1.234i) (num-test (+ 1.234+1.234i 1234/11) 113.41581818181818+1.234i) (num-test (+ 10) 10) (num-test (+ 10/3) 10/3) (num-test (+ 123.4 -1.0+1.0i -1.0+1.0i) 121.4+2.0i) (num-test (+ 123.4 -1.0+1.0i 0) 122.4+1.0i) (num-test (+ 123.4 -1.0+1.0i 0.0) 122.4+1.0i) (num-test (+ 123.4 -1.0+1.0i 0.0+1.0i) 122.4+2.0i) (num-test (+ 123.4 -1.0+1.0i 1) 123.4+1.0i) (num-test (+ 123.4 -1.0+1.0i 1.0) 123.4+1.0i) (num-test (+ 123.4 -1.0+1.0i 1.0+1.0i) 123.4+2.0i) (num-test (+ 123.4 -1.0+1.0i 1.234+1.234i) 123.634+2.234i) (num-test (+ 123.4 -1.0+1.0i 1/1) 123.4+1.0i) (num-test (+ 123.4 -1.0+1.0i 123.4) 245.8+1.0i) (num-test (+ 123.4 -1.0+1.0i 1234) 1356.4+1.0i) (num-test (+ 123.4 -1.0+1.0i 1234/11) 234.58181818181819+1.0i) (num-test (+ 123.4 -1.0+1.0i) 122.4+1.0i) (num-test (+ 123.4 0 -1.0+1.0i) 122.4+1.0i) (num-test (+ 123.4 0 0) 123.4) (num-test (+ 123.4 0 0.0) 123.4) (num-test (+ 123.4 0 0.0+1.0i) 123.4+1.0i) (num-test (+ 123.4 0 1) 124.4) (num-test (+ 123.4 0 1.0) 124.4) (num-test (+ 123.4 0 1.0+1.0i) 124.4+1.0i) (num-test (+ 123.4 0 1.234+1.234i) 124.634+1.234i) (num-test (+ 123.4 0 1/1) 124.4) (num-test (+ 123.4 0 123.4) 246.8) (num-test (+ 123.4 0 1234) 1357.4) (num-test (+ 123.4 0 1234/11) 235.58181818181819) (num-test (+ 123.4 0) 123.4) (num-test (+ 123.4 0.0 -1.0+1.0i) 122.4+1.0i) (num-test (+ 123.4 0.0 0) 123.4) (num-test (+ 123.4 0.0 0.0) 123.4) (num-test (+ 123.4 0.0 0.0+1.0i) 123.4+1.0i) (num-test (+ 123.4 0.0 1) 124.4) (num-test (+ 123.4 0.0 1.0) 124.4) (num-test (+ 123.4 0.0 1.0+1.0i) 124.4+1.0i) (num-test (+ 123.4 0.0 1.234+1.234i) 124.634+1.234i) (num-test (+ 123.4 0.0 1/1) 124.4) (num-test (+ 123.4 0.0 123.4) 246.8) (num-test (+ 123.4 0.0 1234) 1357.4) (num-test (+ 123.4 0.0 1234/11) 235.58181818181819) (num-test (+ 123.4 0.0) 123.4) (num-test (+ 123.4 0.0+1.0i -1.0+1.0i) 122.4+2.0i) (num-test (+ 123.4 0.0+1.0i 0) 123.4+1.0i) (num-test (+ 123.4 0.0+1.0i 0.0) 123.4+1.0i) (num-test (+ 123.4 0.0+1.0i 0.0+1.0i) 123.4+2.0i) (num-test (+ 123.4 0.0+1.0i 1) 124.4+1.0i) (num-test (+ 123.4 0.0+1.0i 1.0) 124.4+1.0i) (num-test (+ 123.4 0.0+1.0i 1.0+1.0i) 124.4+2.0i) (num-test (+ 123.4 0.0+1.0i 1.234+1.234i) 124.634+2.234i) (num-test (+ 123.4 0.0+1.0i 1/1) 124.4+1.0i) (num-test (+ 123.4 0.0+1.0i 123.4) 246.8+1.0i) (num-test (+ 123.4 0.0+1.0i 1234) 1357.4+1.0i) (num-test (+ 123.4 0.0+1.0i 1234/11) 235.58181818181819+1.0i) (num-test (+ 123.4 0.0+1.0i) 123.4+1.0i) (num-test (+ 123.4 1 -1.0+1.0i) 123.4+1.0i) (num-test (+ 123.4 1 0) 124.4) (num-test (+ 123.4 1 0.0) 124.4) (num-test (+ 123.4 1 0.0+1.0i) 124.4+1.0i) (num-test (+ 123.4 1 1) 125.4) (num-test (+ 123.4 1 1.0) 125.4) (num-test (+ 123.4 1 1.0+1.0i) 125.4+1.0i) (num-test (+ 123.4 1 1.234+1.234i) 125.634+1.234i) (num-test (+ 123.4 1 1/1) 125.4) (num-test (+ 123.4 1 123.4) 247.8) (num-test (+ 123.4 1 1234) 1358.4) (num-test (+ 123.4 1 1234/11) 236.58181818181819) (num-test (+ 123.4 1) 124.4) (num-test (+ 123.4 1.0 -1.0+1.0i) 123.4+1.0i) (num-test (+ 123.4 1.0 0) 124.4) (num-test (+ 123.4 1.0 0.0) 124.4) (num-test (+ 123.4 1.0 0.0+1.0i) 124.4+1.0i) (num-test (+ 123.4 1.0 1) 125.4) (num-test (+ 123.4 1.0 1.0) 125.4) (num-test (+ 123.4 1.0 1.0+1.0i) 125.4+1.0i) (num-test (+ 123.4 1.0 1.234+1.234i) 125.634+1.234i) (num-test (+ 123.4 1.0 1/1) 125.4) (num-test (+ 123.4 1.0 123.4) 247.8) (num-test (+ 123.4 1.0 1234) 1358.4) (num-test (+ 123.4 1.0 1234/11) 236.58181818181819) (num-test (+ 123.4 1.0) 124.4) (num-test (+ 123.4 1.0+1.0i -1.0+1.0i) 123.4+2.0i) (num-test (+ 123.4 1.0+1.0i 0) 124.4+1.0i) (num-test (+ 123.4 1.0+1.0i 0.0) 124.4+1.0i) (num-test (+ 123.4 1.0+1.0i 0.0+1.0i) 124.4+2.0i) (num-test (+ 123.4 1.0+1.0i 1) 125.4+1.0i) (num-test (+ 123.4 1.0+1.0i 1.0) 125.4+1.0i) (num-test (+ 123.4 1.0+1.0i 1.0+1.0i) 125.4+2.0i) (num-test (+ 123.4 1.0+1.0i 1.234+1.234i) 125.634+2.234i) (num-test (+ 123.4 1.0+1.0i 1/1) 125.4+1.0i) (num-test (+ 123.4 1.0+1.0i 123.4) 247.8+1.0i) (num-test (+ 123.4 1.0+1.0i 1234) 1358.4+1.0i) (num-test (+ 123.4 1.0+1.0i 1234/11) 236.58181818181819+1.0i) (num-test (+ 123.4 1.0+1.0i) 124.4+1.0i) (num-test (+ 123.4 1.234+1.234i -1.0+1.0i) 123.634+2.234i) (num-test (+ 123.4 1.234+1.234i 0) 124.634+1.234i) (num-test (+ 123.4 1.234+1.234i 0.0) 124.634+1.234i) (num-test (+ 123.4 1.234+1.234i 0.0+1.0i) 124.634+2.234i) (num-test (+ 123.4 1.234+1.234i 1) 125.634+1.234i) (num-test (+ 123.4 1.234+1.234i 1.0) 125.634+1.234i) (num-test (+ 123.4 1.234+1.234i 1.0+1.0i) 125.634+2.234i) (num-test (+ 123.4 1.234+1.234i 1.234+1.234i) 125.86799999999999+2.468i) (num-test (+ 123.4 1.234+1.234i 1/1) 125.634+1.234i) (num-test (+ 123.4 1.234+1.234i 123.4) 248.03399999999999+1.234i) (num-test (+ 123.4 1.234+1.234i 1234) 1358.63400000000001+1.234i) (num-test (+ 123.4 1.234+1.234i 1234/11) 236.81581818181817+1.234i) (num-test (+ 123.4 1.234+1.234i) 124.634+1.234i) (num-test (+ 123.4 1/1 -1.0+1.0i) 123.4+1.0i) (num-test (+ 123.4 123.4 -1.0+1.0i) 245.8+1.0i) (num-test (+ 123.4 123.4 0) 246.8) (num-test (+ 123.4 123.4 0.0) 246.8) (num-test (+ 123.4 123.4 0.0+1.0i) 246.8+1.0i) (num-test (+ 123.4 123.4 1) 247.8) (num-test (+ 123.4 123.4 1.0) 247.8) (num-test (+ 123.4 123.4 1.0+1.0i) 247.8+1.0i) (num-test (+ 123.4 123.4 1.234+1.234i) 248.03400000000002+1.234i) (num-test (+ 123.4 123.4 1/1) 247.8) (num-test (+ 123.4 123.4 123.4) 370.20000000000005) (num-test (+ 123.4 123.4 1234) 1480.79999999999995) (num-test (+ 123.4 123.4 1234/11) 358.98181818181820) (num-test (+ 123.4 123.4) 246.8) (num-test (+ 123.4 1234 -1.0+1.0i) 1356.4+1.0i) (num-test (+ 123.4 1234 0) 1357.4) (num-test (+ 123.4 1234 0.0) 1357.4) (num-test (+ 123.4 1234 0.0+1.0i) 1357.4+1.0i) (num-test (+ 123.4 1234 1) 1358.4) (num-test (+ 123.4 1234 1.0) 1358.4) (num-test (+ 123.4 1234 1.0+1.0i) 1358.4+1.0i) (num-test (+ 123.4 1234 1.234+1.234i) 1358.63400000000001+1.234i) (num-test (+ 123.4 1234 1/1) 1358.4) (num-test (+ 123.4 1234 123.4) 1480.80000000000018) (num-test (+ 123.4 1234 1234) 2591.4) (num-test (+ 123.4 1234 1234/11) 1469.58181818181833) (num-test (+ 123.4 1234) 1357.4) (num-test (+ 123.4 1234/11 -1.0+1.0i) 234.58181818181819+1.0i) (num-test (+ 123.4 1234/11 0) 235.58181818181819) (num-test (+ 123.4 1234/11 0.0) 235.58181818181819) (num-test (+ 123.4 1234/11 0.0+1.0i) 235.58181818181819+1.0i) (num-test (+ 123.4 1234/11 1) 236.58181818181819) (num-test (+ 123.4 1234/11 1.0) 236.58181818181819) (num-test (+ 123.4 1234/11 1.0+1.0i) 236.58181818181819+1.0i) (num-test (+ 123.4 1234/11 1.234+1.234i) 236.81581818181820+1.234i) (num-test (+ 123.4 1234/11 1/1) 236.58181818181819) (num-test (+ 123.4 1234/11 123.4) 358.98181818181820) (num-test (+ 123.4 1234/11 1234) 1469.58181818181811) (num-test (+ 123.4 1234/11 1234/11) 347.76363636363635) (num-test (+ 123.4 1234/11) 235.58181818181819) (num-test (+ 1234 -1.0+1.0i) 1233.0+1.0i) (num-test (+ 1234 0) 1234) (num-test (+ 1234 0.0) 1234.0) (num-test (+ 1234 0.0+1.0i) 1234.0+1.0i) (num-test (+ 1234 1) 1235) (num-test (+ 1234 1.0) 1235.0) (num-test (+ 1234 1.0+1.0i) 1235.0+1.0i) (num-test (+ 1234 1.234+1.234i) 1235.23399999999992+1.234i) (num-test (+ 1234 1/1) 1235) (num-test (+ 1234 123.4) 1357.4) (num-test (+ 1234 1234) 2468) (num-test (+ 1234 1234/11) 14808/11) (num-test (+ 1234/11 -1.0+1.0i) 111.18181818181819+1.0i) (num-test (+ 1234/11 0) 1234/11) (num-test (+ 1234/11 0.0) 112.18181818181819) (num-test (+ 1234/11 0.0+1.0i) 112.18181818181819+1.0i) (num-test (+ 1234/11 1) 1245/11) (num-test (+ 1234/11 1.0) 113.18181818181819) (num-test (+ 1234/11 1.0+1.0i) 113.18181818181819+1.0i) (num-test (+ 1234/11 1.234+1.234i) 113.41581818181818+1.234i) (num-test (+ 1234/11 1/1) 1245/11) (num-test (+ 1234/11 123.4) 235.58181818181819) (num-test (+ 1234/11 1234) 14808/11) (num-test (+ 1234/11 1234/11) 2468/11) (num-test (+ 1234000000) 1234000000) (num-test (+ 1234000000.0) 1234000000.0) (num-test (+ 1234000000.0+2.71828182845905i) 1234000000.0+2.71828182845905i) (num-test (+ 1234000000.0-2.71828182845905i) 1234000000.0-2.71828182845905i) (num-test (+ 1234000000/10) 1234000000/10) (num-test (+ 2) 2) (num-test (+ 2.71828182845905) 2.71828182845905) (num-test (+ 2.71828182845905+3.14159265358979i) 2.71828182845905+3.14159265358979i) (num-test (+ 2.71828182845905-3.14159265358979i) 2.71828182845905-3.14159265358979i) (num-test (+ 2/2) 2/2) (num-test (+ 362880) 362880) (num-test (+ 362880/1234) 362880/1234) #;(for-each-permutation (lambda (a b c d) (if (not (= (+ a b c d) 3+i)) (format #t "~A: (+ ~A ~A ~A ~A) -> ~A?~%" (port-line-number) a b c d (+ a b c d)))) '(1 1/2 0.5 1+i)) #;(for-each-permutation (lambda (a b c d e f g h) (if (not (zero? (+ a b c d e f g h))) (format #t "~A: (+ ~A ~A ~A ~A ~A ~A ~A ~A) -> ~A?~%" (port-line-number) a b c d e f g h (+ a b c d e f g h)))) '(1 1/2 0.5 1+i -1/2 -1 -0.5 -1-i)) (s7-test (integer? (+ 1/100 99/100 (- most-positive-fixnum 2))) #t) (s7-test (integer? (+ 1/1000 999/1000 (- most-positive-fixnum 9223372036854775807))) #t) (s7-test (integer? (+ 1/1000 999/1000 (- most-positive-fixnum 9200000000000000000))) #t) (s7-test (< (+ 0.7 8388608) 8388609) #t) ; false in clisp! (num-test (+ -1.797693134862315699999999999999999999998E308 -9223372036854775808) -1.797693134862315699999999999999999999998E308) (num-test (+ -9223372036854775808 5.551115123125783999999999999999999999984E-17) -9.223372036854775807999999999999999944489E18) (num-test (+ -9223372036854775808 9223372036854775807 -9223372036854775808) -9223372036854775809) (num-test (+ -9223372036854775808) -9223372036854775808) (num-test (+ 1.110223024625156799999999999999999999997E-16 -9223372036854775808) -9.223372036854775807999999999999999888978E18) (num-test (+ 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) 1.665876638023977952217059999999999999994E-16) (num-test (+ 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 1.665334536937735199999999999999999999992E-16) (num-test (+ 9223372036854775807 -9223372036854775808) -1) (num-test (+ 0.(*)) 1.0) (num-test (+ 0.(+)) 0.0) (num-test (+ 1/9223372036854775807 1/9223372036854775807) 2/9223372036854775807) (num-test (+ 10000000/9223372036854775807 1/3) 3.333333333344175355058188377674583355698E-1) (num-test (+ 1073741824 1073741824 1073741824 1073741824) (* 4 1073741824)) (num-test (+ 268435456/129140163 129140163/268435456 7/19 29/19) 2933929486555791403/658650172313567232) (num-test (+ 268435456/129140163 129140163/268435456 7/29 29/19) 4.327416192871913348352681814704887193821E0) (num-test (+ -9223372036854775808 9223372036854775807) -1) (num-test (+ -9221/92233720 -92233720/9221 9221/92233720 92233720/9221) 0) (num-test (+ 0.6049332056786565E0 -0.9611373574853808E0) -3.562041518067242999999999999999999999981E-1) (num-test (+ -0.4763715667865308E0 0.25936932107685584E0) -2.170022457096749600000000000000000000008E-1) (num-test (+ 0.2666481927718355E0 -0.04984768063142031E0) 2.168005121404151899999999999999999999994E-1) (num-test (+ -0.29478659758474846E0 0.3371004337672615E0) 4.231383618251304000000000000000000000076E-2) (num-test (+ 0.8203063910979178E0 0.28968607542857916E0) 1.109992466526496959999999999999999999999E0) (num-test (+ -0.08207985138263585E0 0.4368723951711785E0) 3.5479254378854265E-1) (num-test (+ -0.8659875373355486E0 -6.631430771196765E9) -6.6314307720627525373355486E9) (num-test (+ 0.15071385783307878E0 -7.154424279496395E9) -7.154424279345681142166921220000000000013E9) (num-test (+ -0.8969642760814789E0 -2.4070067380831727E8) -2.407006747052815460814789000000000000005E8) (num-test (+ -0.9610362081435054E0 9.070410778399954E9) 9.070410777438917634019580537500000000004E9) (num-test (+ 0.5129052501104072E0 -7.47841120327471E9) -7.478411202761804451427678737500000000008E9) (num-test (+ 0.3840242289740675E0 7.793048210060242E9) 7.793048210444265928192817499999999999991E9) (num-test (+ 0.07603066126204616E0 5.215008470388369E-11) 7.603066131419624470388369000000000000006E-2) (num-test (+ -0.17187858025312586E0 -5.116645189173968E-11) -1.718785803042923118917396799999999999997E-1) (num-test (+ 0.2521315816245864E0 8.603210607505339E-11) 2.521315817106185060750533899999999999992E-1) (num-test (+ -0.3557185853193914E0 -2.0371324697272998E-11) -3.557185853397627246972729979999999999995E-1) (num-test (+ 0.7142792289542045E0 -7.106356053331326E-11) 7.142792288831409394666867399999999999997E-1) (num-test (+ 0.4380415886629452E0 -3.069969538383403E-11) 4.380415886322455046161659700000000000005E-1) (num-test (+ 0.24798614227178573E0 3.972393639614975E19) 3.972393639614975000024798614227178572989E19) (num-test (+ -0.5210677288128815E0 4.846393336901129E19) 4.846393336901128999947893227118711850007E19) (num-test (+ 0.5825404819115E0 1.9710987361264255E19) 1.971098736126425500058254048191149998548E19) (num-test (+ 0.9105175208730549E0 2.391166552096775E19) 2.391166552096775000091051752087305489998E19) (num-test (+ 0.48414423368371695E0 -9.696117779740095E19) -9.696117779740094999951585576631628304997E19) (num-test (+ 0.25780758450697716E0 6.094683117025535E19) 6.094683117025535000025780758450697715991E19) (num-test (+ 0.9824539149570484E0 -5.4680066990812835E-21) 9.824539149570483999945319933009187165013E-1) (num-test (+ -0.9520982941158654E0 3.2513564801568073E-21) -9.520982941158653999967486435198431927013E-1) (num-test (+ 0.0630170624560149E0 -9.858852595793203E-21) 6.301706245601489999014114740420679700008E-2) (num-test (+ 0.24705141169888878E0 1.4582081178692862E-22) 2.470514116988887800001458208117869286195E-1) (num-test (+ 0.7440948700757135E0 -3.0932442581890818E-21) 7.440948700757134999969067557418109181978E-1) (num-test (+ -0.5055970869515372E0 4.0277457257516025E-21) -5.055970869515371999959722542742483974988E-1) (num-test (+ 1.672355787134947E9 0.0064909681594120805E0) 1.6723557871414380296981083695625E9) (num-test (+ -9.694504381396599E9 -0.8925470085542831E0) -9.694504382289146008554283099999999999987E9) (num-test (+ -1.6695005924298635E9 -0.34426964741306E0) -1.669500592774133147413059987073324919041E9) (num-test (+ -6.085591212594774E9 0.5107956920100049E0) -6.085591212083978307989995100000000000004E9) (num-test (+ 7.457486660952688E9 -0.4323787588338597E0) 7.457486660520309458329226237499999999989E9) (num-test (+ -8.790796444526546E9 0.911415263281967E0) -8.790796443615130736718033019187146237507E9) (num-test (+ 9.667548804251982E9 -1.266547751029956E8) 9.54089402914898613522949218749999999999E9) (num-test (+ -6.169561898845145E9 9.627911197121864E9) 3.458349298276719318847656250000000000009E9) (num-test (+ -9.870287253215279E9 9.004242781937655E8) -8.969862975021513478950500488281249999995E9) (num-test (+ -8.175630881172554E9 -4.08632236263908E9) -1.226195324381163404760742187500000000002E10) (num-test (+ 2.9069444232153206E9 -7.961831315741894E9) -5.054886892526573399999999999999999999977E9) (num-test (+ -7.003647401371184E9 -1.768371514817526E9) -8.772018916188710000000000000000000000001E9) (num-test (+ -6.418847599138249E9 2.755257250162372E-11) -6.418847599138248999972447427498376279997E9) (num-test (+ 2.3093152687241793E9 1.2205440142364766E-11) 2.309315268724179300012205440142364766011E9) (num-test (+ 8.634577667577518E9 -9.065714034538668E-11) 8.634577667577518463044108484654613319994E9) (num-test (+ 1.711283212591781E9 -3.235019197733951E-11) 1.71128321259178090092285000333516049E9) (num-test (+ 2.583886638357791E9 -8.199109798920928E-11) 2.583886638357790946878458120760790719997E9) (num-test (+ -7.517123950474774E9 5.2057802142431697E-11) -7.51712395047477399994794219785756830298E9) (num-test (+ 3.266571938086574E9 -4.4782768261898355E19) -4.478276825863178306191342592239379882812E19) (num-test (+ 2.1000389219899452E9 -8.547158903365463E19) -8.547158903155459107801005480000000000002E19) (num-test (+ -3.9140926801217155E9 7.387959860641422E19) 7.387959860250012731987828450000000000009E19) (num-test (+ -7.087607465790431E9 7.96875093387599E19) 7.968750933167229781420956900000000000008E19) (num-test (+ -8.341000808926519E9 6.9360028397637304E19) 6.936002838929630319107348100000000000009E19) (num-test (+ -5.507940634743809E9 9.760028858210094E19) 9.760028857659299936525619099999999999989E19) (num-test (+ 8.492522971238823E9 -2.8253881864964467E-22) 8.492522971238822937011718749999717461174E9) (num-test (+ 1.2731765723336241E9 -5.8473937102910264E-21) 1.273176572333624099999999999994152606294E9) (num-test (+ 9.654280758878323E9 -4.2332114049658973E-22) 9.654280758878322601318359374999576678861E9) (num-test (+ -6.864618926120946E9 -1.245648314796599E-21) -6.864618926120946000000000000001245648334E9) (num-test (+ -3.9916044043798673E8 1.697737588450543E-21) -3.991604404379867299999999999983022624115E8) (num-test (+ -7.818041624198686E9 4.635421587404246E-21) -7.818041624198685999999999999995364578418E9) (num-test (+ 2.0609929543990767E-12 -0.2126306554359736E0) -2.126306554339126070456009232999999999998E-1) (num-test (+ -1.5923091695877845E-11 0.515731533720818E0) 5.157315337048949444413677540931484848253E-1) (num-test (+ 4.794527092905871E-11 -0.9066947202676092E0) -9.0669472021966392907094129E-1) (num-test (+ -8.63854477728633E-11 0.3122982022565777E0) 3.122982021701922522271366999999999999999E-1) (num-test (+ -7.577966666552416E-11 -0.24137602092437593E0) -2.413760210001555966655241600000000000004E-1) (num-test (+ -4.971730475882754E-11 -0.8202688719750202E0) -8.202688720247375047588275400000000000012E-1) (num-test (+ -5.249369194379291E-11 -8.546120620321186E9) -8.546120620321186000052493691943792910002E9) (num-test (+ 8.280786962526793E-11 5.758373397436368E9) 5.758373397436367988669233650875267930002E9) (num-test (+ 6.370323595535815E-11 -8.470663335712393E9) -8.470663335712392999936296764044641849996E9) (num-test (+ 3.59771226839467E-11 3.5042505440266216E8) 3.504250544026621600359771226839466999997E8) (num-test (+ -3.945501687396375E-11 -5.082779978069177E9) -5.082779978069177000039455016873963749988E9) (num-test (+ 9.780590963267516E-11 -5.05591945120475E9) -5.055919451204750060937350340367324839998E9) (num-test (+ 6.323293597096768E-11 -7.208898910487284E-11) -8.856053133905159999999999999999999999986E-12) (num-test (+ -4.549781732354749E-11 -6.095452636416357E-11) -1.064523436877110600000000000000000000002E-10) (num-test (+ -5.372680267837374E-11 2.0748354219485134E-11) -3.297844845888860599999999999999999999998E-11) (num-test (+ 3.550879553916665E-11 -4.374873254056574E-11) -8.239937001399090000000000000000000000007E-12) (num-test (+ -6.746002242414832E-11 3.0803985031459436E-11) -3.665603739268888400000000000000000000013E-11) (num-test (+ -7.902512161494214E-11 -8.907842858073236E-11) -1.681035501956744999999999999999999999998E-10) (num-test (+ -4.1465935469350415E-11 6.244210696961323E19) 6.24421069696132299999999999999585340645E19) (num-test (+ 4.921297536286578E-11 -1.694436650099881E19) -1.694436650099880999999999999995078702462E19) (num-test (+ -7.879478980672654E-11 6.41757969360492E19) 6.41757969360491970559999999999212052103E19) (num-test (+ -8.200749317872953E-11 -9.490225542618815E19) -9.490225542618815000000000000008200749324E19) (num-test (+ -7.572981329795812E-11 -3.350367078181029E19) -3.350367078181029000000000000007572981326E19) (num-test (+ -5.955255565125549E-11 -5.009913629288125E19) -5.00991362928812500000000000000595525556E19) (num-test (+ -9.818180775332558E-11 -7.926156011681593E-21) -9.818180776125173601168159300000000000011E-11) (num-test (+ -5.2466438379505935E-12 8.468830229031857E-21) -5.246643829481763270968143000000000000009E-12) (num-test (+ 3.582774358441715E-11 3.6865211729351863E-22) 3.582774358478580211729351862999999999999E-11) (num-test (+ 7.169296413565744E-11 -9.974881413980864E-21) 7.169296412568255858601913599999999999987E-11) (num-test (+ -9.615073655516977E-11 4.9552491300097786E-21) -9.615073655021452086999022140000000000005E-11) (num-test (+ 6.7696956269187E-11 4.1431488006404866E-21) 6.769695627333015423852294397336791395272E-11) (num-test (+ -4.663397365185298E19 0.9758464195927673E0) -4.663397365185297999902415358040723270005E19) (num-test (+ -4.77977261393851E19 0.04145189313162445E0) -4.779772613938509999995854810686837555009E19) (num-test (+ 7.195364554121596E19 0.5169917736820715E0) 7.195364554121596000051699177368207149992E19) (num-test (+ -7.766254779507882E19 0.5919134938460356E0) -7.766254779507881999940808650615396440016E19) (num-test (+ -8.411122653901408E19 -0.14463225181516137E0) -8.411122653901408000014463225181516137013E19) (num-test (+ -9.101920591747218E19 0.23349918704239836E0) -9.101920591747217999976650081295760164003E19) (num-test (+ 7.037477746142529E18 -3.250947575909365E9) 7.037477742891581424090634999999999999988E18) (num-test (+ -6.864341752972099E19 -4.0510449339565725E9) -6.864341753377203493395657250000000000004E19) (num-test (+ -5.329540273290228E19 8.14869777458878E9) -5.329540272475358222541121959686279296875E19) (num-test (+ -9.726234388247201E19 2.053976989398215E9) -9.726234388041803301060178494453430175781E19) (num-test (+ -1.910324088450308E19 6.247052535748024E9) -1.910324087825602746425197601318359375E19) (num-test (+ -6.079933001949367E18 6.316829148809886E9) -6.07993299563253785119011402130126953125E18) (num-test (+ -4.499107911798452E19 9.659763881732633E-11) -4.499107911798451999999999999990340236126E19) (num-test (+ -3.0972208018542522E19 -9.077209886078653E-11) -3.097220801854252200000000000009077209882E19) (num-test (+ -2.3000547840875442E19 -3.2043634522621155E-11) -2.300054784087544200000000000003204363456E19) (num-test (+ 2.124555308489292E19 2.252166800652451E-11) 2.124555308489292000000000000002252166802E19) (num-test (+ -7.74280238703686E19 1.7289553748884322E-11) -7.74280238703685999999999999999827104461E19) (num-test (+ -8.119446783121816E19 -4.3461802389685114E-11) -8.11944678312181600000000000000434618023E19) (num-test (+ -4.70848534032654E18 -4.698316648967506E19) -5.16916518300016E19) (num-test (+ 2.853799842810312E19 -5.56805968603395E19) -2.714259843223638E19) (num-test (+ -2.9128622996090335E19 -5.153369106520702E19) -8.0662314061297355E19) (num-test (+ -5.415993984772977E19 4.481932558278175E19) -9.34061426494802E18) (num-test (+ -1.4652301908531261E19 7.89284449966826E19) 6.4276143088151335352E19) (num-test (+ -8.241911630479252E19 5.377001886877124E19) -2.864909743602128E19) (num-test (+ -6.923631123395076E19 7.100129853298664E-22) -6.923631123395076E19) (num-test (+ -5.864213410820717E19 -2.649878514627326E-21) -5.864213410820717E19) (num-test (+ 8.660575002861176E19 2.751926085897399E-21) 8.660575002861176E19) (num-test (+ -3.0252871646631318E19 6.852831573716124E-21) -3.0252871646631318E19) (num-test (+ -9.155476807340938E19 -5.552907466957205E-21) -9.155476807340938E19) (num-test (+ -4.03382621358461E19 6.670808279457885E-21) -4.03382621358461E19) (num-test (+ 8.842980509187577E-21 0.5028466982188534E0) 5.028466982188534000088429805091875769998E-1) (num-test (+ 1.7292043381396136E-21 0.19490424064972922E0) 1.949042406497292200017292043381396136E-1) (num-test (+ -5.854820918836103E-21 -0.6700030154364615E0) -6.700030154364615000058548209188361029995E-1) (num-test (+ -2.152396491682048E-21 0.5002930268902921E0) 5.002930268902920999978476035083179519998E-1) (num-test (+ -1.0897149666610629E-21 0.16555534170490604E0) 1.655553417049060399989102850333389370996E-1) (num-test (+ 6.321421497987867E-24 -0.08008112131564671E0) -8.008112131564670999999367857850201213302E-2) (num-test (+ -6.1552667309563055E-21 7.235074489769488E9) 7.23507448976948833465576171874384473328E9) (num-test (+ -2.2311335001219955E-22 1.220011008333989E9) 1.220011008333988904953002929687276886647E9) (num-test (+ 8.523565724937177E-23 -4.1650242034123087E9) -4.165024203412308699999999999999914764338E9) (num-test (+ -2.4400041303825447E-21 4.435554678685388E9) 4.435554678685387611389160156247559995867E9) (num-test (+ -3.4479065449345757E-22 8.491084033112451E8) 8.491084033112450838088989257809052093456E8) (num-test (+ -7.919939059912893E-21 -7.610637842585286E9) -7.610637842585286000000000000007919939044E9) (num-test (+ 4.4958602369105625E-21 5.758376768873417E-11) 5.758376769323003023691056249999999999989E-11) (num-test (+ 2.4375297386412195E-21 9.417086717671841E-11) 9.41708671791559397386412194999999999998E-11) (num-test (+ 1.0040647133383462E-21 3.4701016271268983E-12) 3.470101628130963013338346199999999999999E-12) (num-test (+ -3.885093055726793E-21 -8.523534862249969E-11) -8.523534862638478305572679299999999999995E-11) (num-test (+ 1.027951323422187E-21 -7.65508060829868E-11) -7.655080608195884867657781300000000000011E-11) (num-test (+ -9.83813940552434E-21 -5.048380063082019E-11) -5.048380064065832940552434000000000000001E-11) (num-test (+ -7.640856498925806E-21 -5.743808556015994E19) -5.743808556015994E19) (num-test (+ 8.053891045717591E-21 4.0840032650134725E19) 4.0840032650134725E19) (num-test (+ -4.794782783871528E-21 -3.431216587740782E18) -3.431216587740782E18) (num-test (+ 1.860870988390988E-21 -3.757945694933625E19) -3.757945694933625E19) (num-test (+ 5.445498222566789E-21 7.575823566817991E19) 7.575823566817991E19) (num-test (+ 2.631896745307223E-21 4.906449817201212E19) 4.906449817201212E19) (num-test (+ -6.61689881073516E-21 5.357007670385275E-21) -1.25989114034988500000000000000000000001E-21) (num-test (+ 3.0173001109587537E-21 5.2947222461350496E-21) 8.312022357093803300000000000000000000009E-21) (num-test (+ -8.792518441030627E-21 -1.0516787854168774E-21) -9.84419722644750439999999999999999999997E-21) (num-test (+ 7.349451992884509E-21 -8.427997362671486E-21) -1.078545369786976999999999999999999999993E-21) (num-test (+ -7.881179611953633E-21 3.2080446524364824E-21) -4.673134959517150599999999999999999999987E-21) (num-test (+ -9.614117725927607E-21 -5.35667712698602E-21) -1.4970794852913627E-20) (num-test (+ 763661/10959 314049/215772 801211/520111) 29795593575023947/409959352197876) (num-test (+ 754684/707399 364133/66140) 43928874261/6683909980) (num-test (+ 440608/272315 551945/732519 640011/210080) 45409303060766899/8381179896953760) (num-test (+ 6567/58532 12009/41861 51413/44691) 169671941552201/109502248051932) (num-test (+ 24362/18498 57440/40727 22449/57480) 22502908640629/7217265880680) (num-test (+ 31721/56074 60995/54239) 5140748949/3041397686) (num-test (+ 53838/33670 41433/21212 18707/18707 38145/30697 18708/22768) 51605878718885969/7799478725530310) (num-test (+ 28104/38994 16087/7686 61878/25480) 238289915659/45455695740) (num-test (+ 19084/1172 31274/36894 58813/47401 21693/36339) 58866653148990514/3103363080883923) (num-test (+ 46622/34221 37123/47024 30488/35441) 2816139009923/934950024624) (num-test (+ 5132/18296 39996/45879 41433/58822 63206/41458) 72097712837475423/21322935628641329) (num-test (+ 2203/36057 55977/14559 48383/64098 9101/28942) 134587284141221743/27051518778595353) (num-test (+ 32375/41641 50274/42858 18792/37422 7370/20399) 1314683476492406/467198461232349) (num-test (+ 13733/12161 54393/23682 3717/60389) 2888390497365/828182803618) (num-test (+ 62280/7667 54471/23126 54070/62784) 31558604335387/2783011331232) (num-test (+ 11072/35120 33950/8514 59489/8783 38683/16720) 66811589960405/4989817212336) (num-test (+ 20220/12370 24149/50379 63926/10436) 2679308820467/325179618414) (num-test (+ 26718/50103 44333/20749 6375/11441 47216/19118) 12699871541397230/2229293103730143) (num-test (+ 38673/65491 57303/2569 40991/55309) 219956905519979/9305538976111) (num-test (+ 1/98947 2/97499 3/76847) 51641766530/741360956847391) (num-test (+ 123456789/3 3/123456789 -123456789/3 -3/123456789) 0) (num-test (+ 1e100 -1e100) 0.0) (num-test (+ 1e100 1e100) 2e100) (num-test (+ 1e200 -1e200) 0.0) (num-test (+ 1e300 -1e300) 0.0) (num-test (+ 500009/500029 500057/500041) 500068002022/250035001189) (num-test (+ 0.5 -0.5 1/2) 0.5) (num-test (+ 1 1/2 0.5 3.0+5.5i) 5.0+5.5i) (num-test (+ 1/2 0.5) 1.0) (num-test (+ 3 4) 7 ) (num-test (+ 3) '3 ) (num-test (+) 0 ) (num-test (+ 123123123123123 123123123123123) 246246246246246) (num-test (+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99) 4950) (num-test (+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999) 499500) (num-test (+ 1 (+ 2 (+ 3 (+ 4 (+ 5 (+ 6 (+ 7 (+ 8 (+ 9 (+ 10 (+ 11 (+ 12 (+ 13 (+ 14 (+ 15 (+ 16 (+ 17 (+ 18 (+ 19 (+ 20 (+ 21 (+ 22 (+ 23 (+ 24 (+ 25 (+ 26 (+ 27 (+ 28 (+ 29 (+ 30 (+ 31 (+ 32 (+ 33 (+ 34 (+ 35 (+ 36 (+ 37 (+ 38 (+ 39 (+ 40 (+ 41 (+ 42 (+ 43 (+ 44 (+ 45 (+ 46 (+ 47 (+ 48 (+ 49 (+ 50 (+ 51 (+ 52 (+ 53 (+ 54 (+ 55 (+ 56 (+ 57 (+ 58 (+ 59 (+ 60 (+ 61 (+ 62 (+ 63 (+ 64 (+ 65 (+ 66 (+ 67 (+ 68 (+ 69 (+ 70 (+ 71 (+ 72 (+ 73 (+ 74 (+ 75 (+ 76 (+ 77 (+ 78 (+ 79 (+ 80 (+ 81 (+ 82 (+ 83 (+ 84 (+ 85 (+ 86 (+ 87 (+ 88 (+ 89 (+ 90 (+ 91 (+ 92 (+ 93 (+ 94 (+ 95 (+ 96 (+ 97 (+ 98 (+ 99))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4950) (num-test (+ 1 (+ 2 (+ 3 (+ 4 (+ 5 (+ 6 (+ 7 (+ 8 (+ 9 (+ 10 (+ 11 (+ 12 (+ 13 (+ 14 (+ 15 (+ 16 (+ 17 (+ 18 (+ 19 (+ 20 (+ 21 (+ 22 (+ 23 (+ 24 (+ 25 (+ 26 (+ 27 (+ 28 (+ 29 (+ 30 (+ 31 (+ 32 (+ 33 (+ 34 (+ 35 (+ 36 (+ 37 (+ 38 (+ 39 (+ 40 (+ 41 (+ 42 (+ 43 (+ 44 (+ 45 (+ 46 (+ 47 (+ 48 (+ 49 (+ 50 (+ 51 (+ 52 (+ 53 (+ 54 (+ 55 (+ 56 (+ 57 (+ 58 (+ 59 (+ 60 (+ 61 (+ 62 (+ 63 (+ 64 (+ 65 (+ 66 (+ 67 (+ 68 (+ 69 (+ 70 (+ 71 (+ 72 (+ 73 (+ 74 (+ 75 (+ 76 (+ 77 (+ 78 (+ 79 (+ 80 (+ 81 (+ 82 (+ 83 (+ 84 (+ 85 (+ 86 (+ 87 (+ 88 (+ 89 (+ 90 (+ 91 (+ 92 (+ 93 (+ 94 (+ 95 (+ 96 (+ 97 (+ 98 (+ 99 (+ 100 (+ 101 (+ 102 (+ 103 (+ 104 (+ 105 (+ 106 (+ 107 (+ 108 (+ 109 (+ 110 (+ 111 (+ 112 (+ 113 (+ 114 (+ 115 (+ 116 (+ 117 (+ 118 (+ 119 (+ 120 (+ 121 (+ 122 (+ 123 (+ 124 (+ 125 (+ 126 (+ 127 (+ 128 (+ 129 (+ 130 (+ 131 (+ 132 (+ 133 (+ 134 (+ 135 (+ 136 (+ 137 (+ 138 (+ 139 (+ 140 (+ 141 (+ 142 (+ 143 (+ 144 (+ 145 (+ 146 (+ 147 (+ 148 (+ 149 (+ 150 (+ 151 (+ 152 (+ 153 (+ 154 (+ 155 (+ 156 (+ 157 (+ 158 (+ 159 (+ 160 (+ 161 (+ 162 (+ 163 (+ 164 (+ 165 (+ 166 (+ 167 (+ 168 (+ 169 (+ 170 (+ 171 (+ 172 (+ 173 (+ 174 (+ 175 (+ 176 (+ 177 (+ 178 (+ 179 (+ 180 (+ 181 (+ 182 (+ 183 (+ 184 (+ 185 (+ 186 (+ 187 (+ 188 (+ 189 (+ 190 (+ 191 (+ 192 (+ 193 (+ 194 (+ 195 (+ 196 (+ 197 (+ 198 (+ 199 (+ 200 (+ 201 (+ 202 (+ 203 (+ 204 (+ 205 (+ 206 (+ 207 (+ 208 (+ 209 (+ 210 (+ 211 (+ 212 (+ 213 (+ 214 (+ 215 (+ 216 (+ 217 (+ 218 (+ 219 (+ 220 (+ 221 (+ 222 (+ 223 (+ 224 (+ 225 (+ 226 (+ 227 (+ 228 (+ 229 (+ 230 (+ 231 (+ 232 (+ 233 (+ 234 (+ 235 (+ 236 (+ 237 (+ 238 (+ 239 (+ 240 (+ 241 (+ 242 (+ 243 (+ 244 (+ 245 (+ 246 (+ 247 (+ 248 (+ 249 (+ 250 (+ 251 (+ 252 (+ 253 (+ 254 (+ 255 (+ 256 (+ 257 (+ 258 (+ 259 (+ 260 (+ 261 (+ 262 (+ 263 (+ 264 (+ 265 (+ 266 (+ 267 (+ 268 (+ 269 (+ 270 (+ 271 (+ 272 (+ 273 (+ 274 (+ 275 (+ 276 (+ 277 (+ 278 (+ 279 (+ 280 (+ 281 (+ 282 (+ 283 (+ 284 (+ 285 (+ 286 (+ 287 (+ 288 (+ 289 (+ 290 (+ 291 (+ 292 (+ 293 (+ 294 (+ 295 (+ 296 (+ 297 (+ 298 (+ 299 (+ 300 (+ 301 (+ 302 (+ 303 (+ 304 (+ 305 (+ 306 (+ 307 (+ 308 (+ 309 (+ 310 (+ 311 (+ 312 (+ 313 (+ 314 (+ 315 (+ 316 (+ 317 (+ 318 (+ 319 (+ 320 (+ 321 (+ 322 (+ 323 (+ 324 (+ 325 (+ 326 (+ 327 (+ 328 (+ 329 (+ 330 (+ 331 (+ 332 (+ 333 (+ 334 (+ 335 (+ 336 (+ 337 (+ 338 (+ 339 (+ 340 (+ 341 (+ 342 (+ 343 (+ 344 (+ 345 (+ 346 (+ 347 (+ 348 (+ 349 (+ 350 (+ 351 (+ 352 (+ 353 (+ 354 (+ 355 (+ 356 (+ 357 (+ 358 (+ 359 (+ 360 (+ 361 (+ 362 (+ 363 (+ 364 (+ 365 (+ 366 (+ 367 (+ 368 (+ 369 (+ 370 (+ 371 (+ 372 (+ 373 (+ 374 (+ 375 (+ 376 (+ 377 (+ 378 (+ 379 (+ 380 (+ 381 (+ 382 (+ 383 (+ 384 (+ 385 (+ 386 (+ 387 (+ 388 (+ 389 (+ 390 (+ 391 (+ 392 (+ 393 (+ 394 (+ 395 (+ 396 (+ 397 (+ 398 (+ 399 (+ 400 (+ 401 (+ 402 (+ 403 (+ 404 (+ 405 (+ 406 (+ 407 (+ 408 (+ 409 (+ 410 (+ 411 (+ 412 (+ 413 (+ 414 (+ 415 (+ 416 (+ 417 (+ 418 (+ 419 (+ 420 (+ 421 (+ 422 (+ 423 (+ 424 (+ 425 (+ 426 (+ 427 (+ 428 (+ 429 (+ 430 (+ 431 (+ 432 (+ 433 (+ 434 (+ 435 (+ 436 (+ 437 (+ 438 (+ 439 (+ 440 (+ 441 (+ 442 (+ 443 (+ 444 (+ 445 (+ 446 (+ 447 (+ 448 (+ 449 (+ 450 (+ 451 (+ 452 (+ 453 (+ 454 (+ 455 (+ 456 (+ 457 (+ 458 (+ 459 (+ 460 (+ 461 (+ 462 (+ 463 (+ 464 (+ 465 (+ 466 (+ 467 (+ 468 (+ 469 (+ 470 (+ 471 (+ 472 (+ 473 (+ 474 (+ 475 (+ 476 (+ 477 (+ 478 (+ 479 (+ 480 (+ 481 (+ 482 (+ 483 (+ 484 (+ 485 (+ 486 (+ 487 (+ 488 (+ 489 (+ 490 (+ 491 (+ 492 (+ 493 (+ 494 (+ 495 (+ 496 (+ 497 (+ 498 (+ 499 (+ 500 (+ 501 (+ 502 (+ 503 (+ 504 (+ 505 (+ 506 (+ 507 (+ 508 (+ 509 (+ 510 (+ 511 (+ 512 (+ 513 (+ 514 (+ 515 (+ 516 (+ 517 (+ 518 (+ 519 (+ 520 (+ 521 (+ 522 (+ 523 (+ 524 (+ 525 (+ 526 (+ 527 (+ 528 (+ 529 (+ 530 (+ 531 (+ 532 (+ 533 (+ 534 (+ 535 (+ 536 (+ 537 (+ 538 (+ 539 (+ 540 (+ 541 (+ 542 (+ 543 (+ 544 (+ 545 (+ 546 (+ 547 (+ 548 (+ 549 (+ 550 (+ 551 (+ 552 (+ 553 (+ 554 (+ 555 (+ 556 (+ 557 (+ 558 (+ 559 (+ 560 (+ 561 (+ 562 (+ 563 (+ 564 (+ 565 (+ 566 (+ 567 (+ 568 (+ 569 (+ 570 (+ 571 (+ 572 (+ 573 (+ 574 (+ 575 (+ 576 (+ 577 (+ 578 (+ 579 (+ 580 (+ 581 (+ 582 (+ 583 (+ 584 (+ 585 (+ 586 (+ 587 (+ 588 (+ 589 (+ 590 (+ 591 (+ 592 (+ 593 (+ 594 (+ 595 (+ 596 (+ 597 (+ 598 (+ 599 (+ 600 (+ 601 (+ 602 (+ 603 (+ 604 (+ 605 (+ 606 (+ 607 (+ 608 (+ 609 (+ 610 (+ 611 (+ 612 (+ 613 (+ 614 (+ 615 (+ 616 (+ 617 (+ 618 (+ 619 (+ 620 (+ 621 (+ 622 (+ 623 (+ 624 (+ 625 (+ 626 (+ 627 (+ 628 (+ 629 (+ 630 (+ 631 (+ 632 (+ 633 (+ 634 (+ 635 (+ 636 (+ 637 (+ 638 (+ 639 (+ 640 (+ 641 (+ 642 (+ 643 (+ 644 (+ 645 (+ 646 (+ 647 (+ 648 (+ 649 (+ 650 (+ 651 (+ 652 (+ 653 (+ 654 (+ 655 (+ 656 (+ 657 (+ 658 (+ 659 (+ 660 (+ 661 (+ 662 (+ 663 (+ 664 (+ 665 (+ 666 (+ 667 (+ 668 (+ 669 (+ 670 (+ 671 (+ 672 (+ 673 (+ 674 (+ 675 (+ 676 (+ 677 (+ 678 (+ 679 (+ 680 (+ 681 (+ 682 (+ 683 (+ 684 (+ 685 (+ 686 (+ 687 (+ 688 (+ 689 (+ 690 (+ 691 (+ 692 (+ 693 (+ 694 (+ 695 (+ 696 (+ 697 (+ 698 (+ 699 (+ 700 (+ 701 (+ 702 (+ 703 (+ 704 (+ 705 (+ 706 (+ 707 (+ 708 (+ 709 (+ 710 (+ 711 (+ 712 (+ 713 (+ 714 (+ 715 (+ 716 (+ 717 (+ 718 (+ 719 (+ 720 (+ 721 (+ 722 (+ 723 (+ 724 (+ 725 (+ 726 (+ 727 (+ 728 (+ 729 (+ 730 (+ 731 (+ 732 (+ 733 (+ 734 (+ 735 (+ 736 (+ 737 (+ 738 (+ 739 (+ 740 (+ 741 (+ 742 (+ 743 (+ 744 (+ 745 (+ 746 (+ 747 (+ 748 (+ 749 (+ 750 (+ 751 (+ 752 (+ 753 (+ 754 (+ 755 (+ 756 (+ 757 (+ 758 (+ 759 (+ 760 (+ 761 (+ 762 (+ 763 (+ 764 (+ 765 (+ 766 (+ 767 (+ 768 (+ 769 (+ 770 (+ 771 (+ 772 (+ 773 (+ 774 (+ 775 (+ 776 (+ 777 (+ 778 (+ 779 (+ 780 (+ 781 (+ 782 (+ 783 (+ 784 (+ 785 (+ 786 (+ 787 (+ 788 (+ 789 (+ 790 (+ 791 (+ 792 (+ 793 (+ 794 (+ 795 (+ 796 (+ 797 (+ 798 (+ 799 (+ 800 (+ 801 (+ 802 (+ 803 (+ 804 (+ 805 (+ 806 (+ 807 (+ 808 (+ 809 (+ 810 (+ 811 (+ 812 (+ 813 (+ 814 (+ 815 (+ 816 (+ 817 (+ 818 (+ 819 (+ 820 (+ 821 (+ 822 (+ 823 (+ 824 (+ 825 (+ 826 (+ 827 (+ 828 (+ 829 (+ 830 (+ 831 (+ 832 (+ 833 (+ 834 (+ 835 (+ 836 (+ 837 (+ 838 (+ 839 (+ 840 (+ 841 (+ 842 (+ 843 (+ 844 (+ 845 (+ 846 (+ 847 (+ 848 (+ 849 (+ 850 (+ 851 (+ 852 (+ 853 (+ 854 (+ 855 (+ 856 (+ 857 (+ 858 (+ 859 (+ 860 (+ 861 (+ 862 (+ 863 (+ 864 (+ 865 (+ 866 (+ 867 (+ 868 (+ 869 (+ 870 (+ 871 (+ 872 (+ 873 (+ 874 (+ 875 (+ 876 (+ 877 (+ 878 (+ 879 (+ 880 (+ 881 (+ 882 (+ 883 (+ 884 (+ 885 (+ 886 (+ 887 (+ 888 (+ 889 (+ 890 (+ 891 (+ 892 (+ 893 (+ 894 (+ 895 (+ 896 (+ 897 (+ 898 (+ 899 (+ 900 (+ 901 (+ 902 (+ 903 (+ 904 (+ 905 (+ 906 (+ 907 (+ 908 (+ 909 (+ 910 (+ 911 (+ 912 (+ 913 (+ 914 (+ 915 (+ 916 (+ 917 (+ 918 (+ 919 (+ 920 (+ 921 (+ 922 (+ 923 (+ 924 (+ 925 (+ 926 (+ 927 (+ 928 (+ 929 (+ 930 (+ 931 (+ 932 (+ 933 (+ 934 (+ 935 (+ 936 (+ 937 (+ 938 (+ 939 (+ 940 (+ 941 (+ 942 (+ 943 (+ 944 (+ 945 (+ 946 (+ 947 (+ 948 (+ 949 (+ 950 (+ 951 (+ 952 (+ 953 (+ 954 (+ 955 (+ 956 (+ 957 (+ 958 (+ 959 (+ 960 (+ 961 (+ 962 (+ 963 (+ 964 (+ 965 (+ 966 (+ 967 (+ 968 (+ 969 (+ 970 (+ 971 (+ 972 (+ 973 (+ 974 (+ 975 (+ 976 (+ 977 (+ 978 (+ 979 (+ 980 (+ 981 (+ 982 (+ 983 (+ 984 (+ 985 (+ 986 (+ 987 (+ 988 (+ 989 (+ 990 (+ 991 (+ 992 (+ 993 (+ 994 (+ 995 (+ 996 (+ 997 (+ 998 (+ 999))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 499500) (let () (define (fact n) (if (<= n 1) 1 (* n (fact (- n 1))))) (num-test (fact 7) 5040) (num-test (fact 20) 2432902008176640000) (do ((i 2 (+ i 1))) ((= i 21)) (num-test (* i (fact (- i 1))) (fact i)) (num-test (/ (* i (fact (- i 1)))) (/ (fact i)))) (num-test (fact 21) 51090942171709440000) (num-test (fact 32) 263130836933693530167218012160000000) (do ((i 20 (+ i 1))) ((= i 40)) (num-test (* i (fact (- i 1))) (fact i)))) (num-test (let ((pi2 0.0) (ais (vector 1 -3 -2 -3 1 0))) (do ((i 1 (+ i 1)) (two 2 (* two 2))) ((= i 30) (* 36 pi2)) (set! pi2 (+ pi2 (/ (vector-ref ais (modulo (- i 1) 6)) (* two i i)))))) (* pi pi)) (num-test (let ((log2 0.0) (ais (vector 2 -10 -7 -10 2 -1))) (do ((i 1 (+ i 1)) (two 2 (* two 2))) ((= i 30) (* 2 log2)) (set! log2 (+ log2 (/ (vector-ref ais (modulo (- i 1) 6)) (* two i i)))))) (* (log 2) (log 2))) (s7-test (< (abs (- (do ((x0 11/2) (x1 61/11) (i 0 (+ i 1))) ((= i 100) x1) (let ((tmp x1)) (set! x1 (- 111 (/ (- 1130 (/ 3000 x0)) x1))) (set! x0 tmp))) 6)) ; (6 - 1/(1+(6/5)^k)) 0.00001) #t) ;; in floats this heads for 100: ;; (do ((x0 (exact->inexact 11/2)) (x1 (exact->inexact 61/11)) (i 0 (+ i 1))) ((= i 100) x1) (let ((tmp x1)) (set! x1 (- 111 (/ (- 1130 (/ 3000 x0)) x1))) (set! x0 tmp))) (num-test (+ 0.999999995 8388608) 8388608.999999995) (num-test (+ (+ 1.0e-30 1.0e30) -1.0e30) (+ 1.0e-30 (+ 1.0e30 -1.0e30))) ;; Flonum precision ;(num-test (+ 11111111111111113.0 (+ -11111111111111111.0 7.5111111111111)) (+ (+ 11111111111111113.0 -11111111111111111.0) 7.5111111111111)) (num-test (+ -1000000000 -1000000000 -1000000000) -3000000000) (num-test (+ -8589934591 -4611686018427387904) -4611686027017322495) (num-test (+ -8589934591 4611686018427387904) 4611686009837453313) (num-test (+ -9223372036854775807 -1) -9223372036854775808) (num-test (+ -9223372036854775807 1) -9223372036854775806) (num-test (+ -9223372036854775808 -9223372036854775808) -18446744073709551616) (num-test (+ 1 1/2 0+9223372036854775808.0i 0-i) 1.5+9.223372036854775807E18i) (num-test (+ 1 1/2 9223372036854775808.0 0+i) 9.2233720368547758095E18+1.0i) (num-test (+ 1 1/2 9223372036854775808.0 0-i) 9.2233720368547758095E18-1.0i) (num-test (+ 1 1/2 9223372036854775808.0) 9.2233720368547758095E18) (num-test (+ 1.0 12345678901234567890) 1.2345678901234567891E19) (num-test (+ 1.0e80+i 1.0e80+i) 2.0e80+2.0i) (num-test (+ 1.0e80+i 1.0e80-i) 2.0e80) (num-test (+ 1.5 9223372036854775808.0) 9.2233720368547758095E18) (num-test (+ 1/1231234567891234567891 1/4) 1231234567891234567895/4924938271564938271564) (num-test (+ 1/2147483648 1/2147483647) 4294967295/4611686016279904256) (num-test (+ 1/3 (* 13835058055282163710 2/3)) 9223372036854775807) ; would be nice if this worked... (num-test (+ 1/65537 -1/65536) -1/4295032832) (num-test (+ 1/65537 -1/65538) 1/4295163906) (num-test (+ 1/65537 1/65536) 131073/4295032832) (num-test (+ 1/65537 1/65538) 131075/4295163906) (num-test (+ 1/9223372036854775807 1/9223372036854775806) 18446744073709551613/85070591730234615838173535747377725442) (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 56471455498794722585779775/183561983334767209753061626751) (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981) 599609438061905323469/2756144552405627689570151) (num-test (+ 10 9223372036854775800) 9223372036854775810) (num-test (+ 1000000000 1000000000 1000000000) 3000000000) (num-test (+ 1073741825 1073741825) 2147483650) (num-test (+ 1099511627775 9223372036854775807) 9223373136366403582) (num-test (+ 1180591620717411303424+i 1+1180591620717411303424i) 1.180591620717411303425E21+1.180591620717411303425E21i) (num-test (+ 1180591620717411303424.0+i 1+1180591620717411303424.0i) 1.180591620717411303425E21+1.180591620717411303425E21i) (num-test (+ 12345678901234567890+12345678901234567890i 12345678901234567890-12345678901234567890i) 2.469135780246913578E19) (num-test (+ 132120577/12 33292289/6 260046847/4) 244711424/3) (num-test (+ 18446744082299486212 1) 18446744082299486213) (num-test (+ 1e400 1e399) 1.1e400) (num-test (+ 2147483647 1) 2147483648) (num-test (+ 2147483647 2) 2147483649) (num-test (+ 2147483647 4611686018427387904) 4611686020574871551) (num-test (+ 2147483648 -1) 2147483647) (num-test (+ 2147483648 -2) 2147483646) (num-test (+ 2147483648 1) 2147483649) (num-test (+ 2147483648 4611686018427387904) 4611686020574871552) (num-test (+ 2147483648) 2147483648) (num-test (+ 2147483649 -1) 2147483648) (num-test (+ 2147483649 -4611686018427387904 -2147483649 4611686018427387904) 0) (num-test (+ 2147483649 4611686018427387904 2147483649 4611686018427387904) 9223372041149743106) (num-test (+ 2147483649 4611686018427387904) 4611686020574871553) (num-test (+ 3 9223372036854775807/4) 9223372036854775819/4) (num-test (+ 3 9223372036854775808/4) 2305843009213693955) (num-test (+ 3/2 9223372036854775808.0) 9.2233720368547758095E18) (num-test (+ 3/4 9223372036854775807/4) 4611686018427387905/2) (num-test (+ 3/4 9223372036854775808) 36893488147419103235/4) (num-test (+ 4611686018427387904 -1) 4611686018427387903) (num-test (+ 4611686018427387904 -4611686018427387904) 0) (num-test (+ 4611686018427387904 1) 4611686018427387905) ; (expt 2 62) + 1 -- should work in both cases (num-test (+ 4611686018427387904 4611686018427387904) 9223372036854775808) (num-test (+ 4611686018427387904 4611686018427387906) 9223372036854775810) (num-test (+ 500009/500029 500057/500041 500083/500069) 375106759202738205/125034753009582041) (num-test (+ 8589934591 -4611686018427387904) -4611686009837453313) (num-test (+ 8589934591 4611686018427387904) 4611686027017322495) (num-test (+ 8589934592 4611686018427387904) 4611686027017322496) (num-test (+ 9223372036854775800 10) 9223372036854775810) (num-test (+ 9223372036854775807 -1) 9223372036854775806) (num-test (+ 9223372036854775807 1) 9223372036854775808) (num-test (+ 9223372036854775807 2) 9223372036854775809) (num-test (+ 9223372036854775807 9223372036854775807) 18446744073709551614) (num-test (+ 9223372036854775807/4 3) 9223372036854775819/4) (num-test (+ 9223372036854775807/4 3/4 4611686018427387905/2) 4611686018427387905) (num-test (+ 9223372036854775807/4 3/4) 4611686018427387905/2) (num-test (+ 9223372036854775807/4 4611686018427387905/3) 46116860184273879041/12) (num-test (+ 9223372036854775808 -1) 9223372036854775807) (num-test (+ 9223372036854775808 -2) 9223372036854775806) (num-test (+ 9223372036854775808 1) 9223372036854775809) (num-test (+ 9223372036854775808 3/4) 36893488147419103235/4) (num-test (+ 9223372036854775808.0 3.4) 9.2233720368547758114E18) (num-test (+ 9223372036854775808.0+1.5i 3.4) 9.2233720368547758114E18+1.5i) (num-test (+ 9223372036854775808/4 3) 2305843009213693955) (num-test (+ 9223372036854775808/9223372036854775808) 1) (num-test (+ 9223372036854775809 -1) 9223372036854775808) (num-test (+ 9223372041149743106 -9223372041149743106) 0) (num-test (+ 9223372041149743106 9223372041149743106) 18446744082299486212) (num-test (+ 98947 2/97499 76847 4/61981 5/59981) 63720106179329487759/362470312515139) (num-test (+ 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488 576460752303423488) 9223372036854775808) (num-test (+ -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488) -9223372036854775808) ; this fits in both cases = -(expt 2 63) (num-test (+ 12766/44484 39852/43605 31122/19043 51508/63811 36845/41288 28101/14083 56682/37410 47892/22120 39412/22980 60124/55166 42856/59693) 208780620213964670464533749059169842219977/15202497819117370814835285951563379420520) (num-test (+ 63216/39382 57676/45091 53354/2630 1048/39076 16116/23210 42095/55806 27474/26658 50811/59328) 191349291372060004326881331664759/7211602793633848370218614932160) (num-test (+ 59885/27233 26245/45891 40482/5828 51990/36443 9623/46196) 34799310234648621493801/3065498111736131980788) (num-test (+ 37870/11132 60558/48391 53644/64989 60943/2780 9073/15664 15430/61388 55088/37713) 49618689694342545850764990997/1671112820517946923490092720) (num-test (+ 37890/11488 45896/14037 3589/36071 22835/41473 42331/17823 42800/56681) 420312190408065989902262231/40617147626636993628447504) (num-test (+ 26660/49395 52605/23369 30235/15203 37926/38348 54028/49472 32407/12923 20689/1984 27919/46263) 69930317632493223450434305725419/3428000885137780298513956804672) (num-test (+ 56351/21775 14958/21250 13859/32508 24968/65124 885/6861 3913/38588 90/55711 12269/37075 6579/33653) 201796703852921650643001395969752/41522567198031666874435508825625) (num-test (+ 8582/48034 27069/11031 29676/5507 56684/32514 25699/47391 44069/2704 18193/3289) 5684819414248430672302049/176897854654356635413328) (num-test (+ 421240/871225 1021193/39462 252094/592111 2478/11660) 32043461749854904862/1186809749708031735) (num-test (+ 149278/597089 747410/315908 218673/956214 174632/245649 45750/515909) 165277142441527691870266634/45353662154623612097256297) (num-test (+ 361087/1038423 629417/722796 693707/392139 237025/961767 88560/187279) 2426130069686588061565863289/654491499930590555724694236) (num-test (+ 94466/1038229 807503/592385 802950/953585 954630/176875) 6384533383241957925411/829875721759976907875) (num-test (+ 913461/774815 817965/788155 237677/532117 542827/225728 343160/431483) 2183257313717880748058258989/372346251755101707126455360) (num-test (+ 888429/600657 680124/108845 265059/727366 395224/748135) 20445657641208104518701/2371792747070499020510) (num-test (+ 37622/1698 9183/57409 12127/36899 11451/26597 64339/35514) 14092685195493114237067/566256574856769105474) (num-test (+ 24122/8583 41997/57541 42760/57555 40699/12923 30325/37640) 1518749441232333398909/184353450944764326984) (num-test (+ 16104/12728 32020/64625 35345/37481 29241/50823 13216/61075 11245/2022) 751811438787510154499/83010789184720173150) (num-test (+ 4312/48465 44171/56694 8599/3231 46048/62568 2132/45901 24407/26161) 455702434782048082459/86885567283849955830) (num-test (+ 59496/7030 37058/2679 2158/41193 48873/59329 52768/30853 34749/39139) 339576145632874325598832/13177075606485410552535) (num-test (+ 131/58542 41136/2572 43951/20070 63439/14560 33259/63731 10981/51495 49078/63698 10727/32805 29362/30842) 51962727546984124809096307414129847/2051626916225689647807786049306080) (num-test (+ 16640/40785 56062/38132 43843/29406 5867/50944 19248/58540) 1083456041462784832133/284138789764221200640) (num-test (+ 34314/54910 54195/13905 32762/15225 20808/42764 20977/59771 26320/20306 53116/23035 30385/31200 57396/3367 58378/6806 5724/29599) 39875514688522166158239445824103603/1051980164901898842922034228906400) (num-test (+ 40391/35273 27957/29448 52381/18500 60009/3366 27528/2124 62426/65445 43110/25891 40183/26944 30274/1504 27638/40611) 15253761502587455936752727098716743/251570544261187774378167518568000) (num-test (+ 52269/62857 21518/38958 29849/9192 27730/2604 20427/36068) 116322789710447328047/7340588373519969288) (num-test (+ 17009115185923538769 -12047631083067675031) 4961484102855863738) (num-test (+ 12677011568664239747 3269056182420253574) 15946067751084493321) (num-test (+ 9315504781982082433 13857624532376678678) 23173129314358761111) (num-test (+ 15226508728194069537 11481952022080775416) 26708460750274844953) (num-test (+ 7461641943684774743 12249026721402718630) 19710668665087493373) (num-test (+ 1180469445886971055 -3208456171287181032) -2027986725400209977) (num-test (+ 18358552990465743315 221529797579218180385160273426219343697) 221529797579218180403518826416685087012) (num-test (+ -14819874956616484359 30498815629431206969122152847973230849) 30498815629431206954302277891356746490) (num-test (+ -11781881800334342169 112219460388643619332860331282276228017) 112219460388643619321078449481941885848) (num-test (+ 3570694277032201957 284821691832196381859344006870088122712) 284821691832196381862914701147120324669) (num-test (+ -17005463295060938595 69162171850264911722979835561124066203) 69162171850264911705974372266063127608) (num-test (+ 15647113311796203488 150750467185419235519670165664526735459) 150750467185419235535317278976322938947) (num-test (+ -14330150541101371097 -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886421335353882155416908) -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886435665504423256788005) (num-test (+ 7406427184711759740 -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336084100766391093756252) -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336076694339206381996512) (num-test (+ 8819522415901031498 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363793325150672647162846) 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363802144673088548194344) (num-test (+ -7242932332215698200 -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159009687703010657137320) -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159016930635342872835520) (num-test (+ 9794320575955609492 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470325394342993771343357) 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470335188663569726952849) (num-test (+ -18404048401680891243 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224482801864925665484770) 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224464397816523984593527) (num-test (+ -10763220363947284865 -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521301209899829037444385) -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521311973120192984729250) (num-test (+ -12742462236537568498 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747534683311506465130527) 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747521940849269927562029) (num-test (+ 9991390529516174614 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538345749595968764873879) 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538355740986498281048493) (num-test (+ 831234034418847630 -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606507809487462642341164) -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606506978253428223493534) (num-test (+ -6996572501442843347 -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314889561060687692538144) -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314896557633189135381491) (num-test (+ -8920936222630165483 -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973494705119572045938607) -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973503626055794676104090) (num-test (+ -243510292488206214847646757340020705642 5940577100149745132) -243510292488206214841706180239870960510) (num-test (+ 35446324064743728955945058978206455057 -6248622708755929572) 35446324064743728949696436269450525485) (num-test (+ -285342226760657637664173494795024413673 -11942737781617905307) -285342226760657637676116232576642318980) (num-test (+ 180790435817422032042321866247362452865 12401641959336396832) 180790435817422032054723508206698849697) (num-test (+ -179994871947239535956826388240542999950 13573822506399140772) -179994871947239535943252565734143859178) (num-test (+ -308198027295905163635866438671452347268 -8790069282378476990) -308198027295905163644656507953830824258) (num-test (+ -139324757925833055762410227358605285566 -190622873846936719063564661032771271922) -329947631772769774825974888391376557488) (num-test (+ 332866352618304570046318203427223999347 147978646177673305481282943528696833018) 480844998795977875527601146955920832365) (num-test (+ -39471620476300923970352914034802271156 28992893610776120142668950821916856486) -10478726865524803827683963212885414670) (num-test (+ 274120253734611965146455315763505869288 254675910805265090692978775702306142625) 528796164539877055839434091465812011913) (num-test (+ -122086811464559635596206661886176775901 287312583034687582188356355813963609701) 165225771570127946592149693927786833800) (num-test (+ 288576174771266329955482943556556984728 -57843540651903655425270706396868707777) 230732634119362674530212237159688276951) (num-test (+ -47977736580820486006305788441965482221 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126881113426109906085249657168046936670489) 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126833135689529085599243351379604971188268) (num-test (+ 21225484205143479814642328762121362291 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974867770082516862899595554460170417713940) 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974888995566722006379410196788932539076231) (num-test (+ -193095363331703875886398909106293703000 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388168068485304437343508442251302846768269976) 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388167875389941105639632555852393740474566976) (num-test (+ -14827657635864183514988182371035598180 -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660185258676369175307019300952192657194576) -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660200086334005039490534289134563692792756) (num-test (+ 54301423175725658626298504084995819705 -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941312995898184903431893212829646845766101) -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941258694475009177773266914325561849946396) (num-test (+ 195114404067053480147948948510253723990 -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176374041758276069255591562198514767063594) -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176178927354209015775443613250004513339604) (num-test (+ -308030589512186791277525017840002670741 -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550454815591457829485684936036414823492160) -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550762846180970016276962461054254826162901) (num-test (+ -172649878347923210775992373331623646864 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447760919715595005106669653475931803053499) 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447588269837247081895893661102600179406635) (num-test (+ 17539006966816771902104329685391462527 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507917720426571969997513984360849930719808) 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507935259433538786769416088690535322182335) (num-test (+ 244901855797156286376563377540855746602 -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760396535767621855642720080219960822554492) -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760151633911824699356343516842419966807890) (num-test (+ -119403662992279138748600939857239307122 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953732384499190437432898387573320391878853) 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953612980836198158294149786633463152571731) (num-test (+ 313963939617834410089002930298454269912 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864354021315490712575535559549015858088608) 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864667985255108546985624562479314312358520) (num-test (+ 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160643580198590073658869 -17993015014355471903) 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160625587183575718186966) (num-test (+ 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942609010590873980143878 15372278140141207703) 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942624382869014121351581) (num-test (+ -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044148223082253439210893 -14793401891248640808) -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044163016484144687851701) (num-test (+ 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149274871082481174186606 8699133332160461067) 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149283570215813334647673) (num-test (+ -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146471920873844686294838 -13079925952361275418) -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146485000799797047570256) (num-test (+ -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311445471793936775767736 -9381557743227419896) -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311454853351680003187632) (num-test (+ -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094956858541960962483734293877093635361160 277811698220276334443479876776376776138) -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094679046843740686149290814000317258585022) (num-test (+ 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240709059499894818265755197559390728940140016 -118940994129137705779355371753506018694) 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240708940558900689128049418204018975434121322) (num-test (+ -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454778025302197744540571159656556971614966757 120224841184491944160266976391113485817) -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454777905077356560048626999389580580501480940) (num-test (+ 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237448178553189381274150213236222139873594 106674783386899772113212633712093787897) 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237554853336576281046263425869934233661491) (num-test (+ -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448907193562300482925125162731530249763801 192969103435503875767216559494769734726) -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448714224458864979049357946172035480029075) (num-test (+ 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994228143957746922511631911996296931168332 -211230038021470285136061932161632203274) 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994016913919725452226495850064135298965058) (num-test (+ -2935941510094051560788359387128767361559188973149773593522440619832472030019457317998381634585179453958737810428870232715146002408187749944694186205812791 -1221176156661231926164756142840452419679061324806989304452215660535991083923207702827717652226257158321829748247784282139952864899457896871473184473608543) -4157117666755283486953115529969219781238250297956762897974656280368463113942665020826099286811436612280567558676654514855098867307645646816167370679421334) (num-test (+ -1338674579024795395027232680327531457830908239605718353094975139226848400289367913459076082700361212506196070727982446232782659114647371030398516119682505 -1298372177520411182435886041880377054374169787570856408996533471838082317927648953576721017727347029007573543972764860712708420553928791798580799809858729) -2637046756545206577463118722207908512205078027176574762091508611064930718217016867035797100427708241513769614700747306945491079668576162828979315929541234) (num-test (+ -2072456075229532951804023218627137969798924912365258263779029006567941400203608770518731715660383378937120213112973528605594220795605977413985543331908189 -9744489461776287963808523409593616918248399004543154581056479712028497082820841423941781438667661074968238703192056877665754560746003512076830245760254982) -11816945537005820915612546628220754888047323916908412844835508718596438483024450194460513154328044453905358916305030406271348781541609489490815789092163171) (num-test (+ -2570682164188734368809161664810917340861573482754788446510182252413437925852206735928397938304353826925422441004271229738766803460790995673395984247950088 656920705293329551826685120408221577679101260931105312141757138825917579070505267306626244216341686712802796891966598838285570807961966448181138356047523) -1913761458895404816982476544402695763182472221823683134368425113587520346781701468621771694088012140212619644112304630900481232652829029225214845891902565) (num-test (+ 7846359203342053693101523606887617345982401999003795257520576318451663998927274759872692123323796450295314377046602880394071105863527900699633560551732837 3683380639347829102597675045842249667669675715600522157867595962635108482512780509393310714588544837398923613138772339053021025559943198965234376657126821) 11529739842689882795699198652729867013652077714604317415388172281086772481440055269266002837912341287694237990185375219447092131423471099664867937208859658) (num-test (+ -11692323148567132684205145901751681947225824260005631214936266006610207543813382900867093989444659986091234552140689684476541703112098935301322850961583953 -8534276689564199122569555420819240948691777228327984555753862457592427992599992931175844172478864477440165366128106812103785256271256853749622592560655914) -20226599838131331806774701322570922895917601488333615770690128464202635536413375832042938161923524463531399918268796496580326959383355789050945443522239867) (num-test (+ -10734754884168724884333968138739681643742524619139397687680049322697740991391014196697040576174049452737571835233123127815762146577096625434481167057340772 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797378799103456094203126081464905326203083057134061673694975250599375795827437561275156235513192978645909947341297774926450637694325145427434486258223666250272) 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797368064348571925478241747496766586521439314609442534297287570550053098086446170260959538472616804596457209769462541803322821932178568330809051777056608909500) (num-test (+ 1982582032974021971225071139786536402936929744496433027195224299475980201425925452469321205602618940472354066218156609448199804973454183972974358405933935 -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565757325842468006824235119684861972224857533964558963441079998949499582965764591461900562931342373507763081479989957632695010603500633322408246084430203281475) -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565755343260435032802263894613722185688454597034814467008052803725200106985563165536448093610136770888822609125923739476085562403695659868224273110071797347540) (num-test (+ 11532228364136654310006206557545352284448588590560137249197311142901246089838098630841794341370689745410654263817911440601934362503092628725755210859171724 -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425483901920822837775032295913486152631638908227467242772081310515646217115760180349854601959031626524004201825198439309850266508687796415478396821644422350208) -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425472369692458701120722289706928607279354459638876682634832113204503315869670342251223760164690255834258791170934621398409664574325293322849671066433563178484) (num-test (+ -2603756427337798371354526130541868239006085657393372011847827118826669474695402075575479286172808099892726251004549675772420422527946534088483901153485670 -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463663570751134804664228918188923926951933302878771189484614604311920655871182974081898031051411394311700207305532216445616083858025977851570522763537300875989) -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463666174507562142462600272715054468820172308964428582856626452139039482540657669483973606530697567119800100031783220995291856278448505798104611247438454361659) (num-test (+ -5929887196386997518766568868806997104240129372360669348628384183712406620199102166145939206783172815805659513128544493795329100599632286529420772709366102 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250682015641747568282510036326125505522447591703308661608718100933027549520132308555240654655887041040427813131621391320267698106519650611462269033902177180035) 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250676085754551181284991269757256698525343351573936300939369472548843837113512109453074508716680257867612007472108262775773902777419050979175739613129467813933) (num-test (+ -8848084327536592532063677611386811805244460767433749071435930786126721080365289638381557872263825830664387392539638767251180242665642373539064690745095464 -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033893238864631158195280554850035949666897861529711006187241710164902350100555999894332438423857208747342184052953230247487231455921360593096823760117493579248) -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033902086948958694787812618527647336478703105990478439936313146095688476821636365183970819981729472573172848440345769886254482636164026235470362824808238674712) (num-test (+ -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679396721657020438979754 12553426083939460917) -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679384168230936499518837) (num-test (+ 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269660274683400619225321 11620128128044940816) 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269671894811528664166137) (num-test (+ -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936248281049628734475702 2380166482232871816) -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936245900883146501603886) (num-test (+ -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203373153221004361953729 -10586442965055062759) -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203383739663969417016488) (num-test (+ 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642592954601418753021512 -12227722924075527556) 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642580726878494677493956) (num-test (+ -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662935026125770444036994 -7349798942312432150) -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662942375924712756469144) (num-test (+ 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391843039459733925494003066841874935048611 -66646390577667468207341453008390168215) 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391776393069156258025795725388866544880396) (num-test (+ 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506419828208611247177336492131262918439281 -164048419232636429449474429717211197442) 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506255779789378610747887017701545707241839) (num-test (+ -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300146993858360430784079225137421074839819 117460076430162201914796277915447781936) -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300029533781930268582164428859505627057883) (num-test (+ 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707453499030166286828319347894538505334235 -59175168207571178843658955348404514921) 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707394323861958715649475688939190100819314) (num-test (+ 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851829184120171969918537718488250577987049 -151873924489040812813761508259707631973) 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851677310195682929105723956979990870355076) (num-test (+ 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821222597665222975816418433744748143385431 -43245950360315656184924888243641533635) 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821179351714862660160233508856504501851796) (num-test (+ 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830415574905929299482373462584995162798576853564481617711234957058703455021082855018642616999836886763535412642684228990890160568207941504887072856663966242787 1954009743321912552050341299974626734964446274711484506734354360114801426013796892421541915293157994203607853436799102383078659985249097057923578528366737) 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830417528915672621394925512926295137425311818010756329195741691413063569822508868815535038541752179921529616250537665789992543646867926753984130780242494609524) (num-test (+ 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730196110477118156871579503345757821268248575583821695674912517830056856597644827244194658166928026249459511837772775196175188368236573504643083995409774002567 -5513982495816270388232134254127393284677692173792609278582774509636977743203029647121158805174638642867428501907786521939155900331399058909602425073976766) 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730190596494622340601191271211503693874963897891647903065633935055547219619901624214547537008122851610816644409270867409653249212336242105584174392984700025801) (num-test (+ -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550976844117943559190671369193871330514473741920389633762695829790016565565261170688485790141638094160105909405353382982945608773290740598479367828342651860878 3451570547959142767282758882796967240086418127970526029661337442068316209707489088420708984628065070358319478649952710478991064476168799556496237099109563) -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550973392547395600047904086434988533547233655502261663236666168452574497249051463199397369432653466095035551085874733030235129782226264429679811332105552751315) (num-test (+ 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623397410528064697616617917065021866397277409044449982605591256067763430930720398889239414812509701319783809830072841056369381573100589260104551934136733317845 -9461623592584966196513107657889418526847060851423069480904645009418813160370721071067349946095573698635859409908288864150475056170059858850823883834932131) 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623387948904472112650421403957363976978750561983598559536110351422754012117560028168168347462563605746085173970662932767505231098044419200245701110252898385714) (num-test (+ 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787710331228500533067546198458251241005176280410230146430275074766072259256583499095689284871987010372039977403712023630453400259082684930755893684499232318008 12330599952818018622104330691506128012101935028731995985677032980931398338453806827555760801312052792065671886621851470997557806941112316627790755867100463) 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787722661828453351086168302788942747133188382345258878426260751799053190654921952902516840632788322424832043075598645481924397816889626043072521475255099418471) (num-test (+ -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027771176714559050403098437684091684851207513969915720607528045624635094984539637789113651579846373399975502788877555747414523231999341294756679330384323996 764238600803843266244444637050072967342049538611688895792923539838804953492110953673720766879606601435939162680753428779068917662740403667549850724878795) -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027006938113755207136853993047041611883865464431304031711735122084796290031047526835439930812966766798539563626196802318635454314336600891089129479659445201) (num-test (+ 6243894672855694190803081952962387322599009058758027960092936187687064819462191583137945440936085088260632250436567758576422207449236613172605950116622271404444221039084346501796818945639456207912207604248991842124079786471250102192718092353598850889806607728696519257402580732995770031331187089424192803722612735557735028710899438934171272639518928194764526910590046378401600819132587804143949995694950116915803127294011661411525934100144319021440919928013617766507409909846670172516021888661284467975865076091834094160862228180625536450124272957206172214541444266874056050295270719541605687740822711659847211976891 11877496607682442993105675644902145742318375725225741293060927105303783712520284640625374957608051032540491531573337817824773543104969422017506696018037874641947740606655370938613842356322585858034851150595788166740174872996252792014218946552442572806242471174234462119454014379628228878122072189387777413014452140618318641689597452676091677588204537830401725113931418426919671512011822864583481449136550835952005765386885680701637038206002172218712504732572449659704181315669255320876647592649071711438131711904976335957846353867776093588236311654631696625859173554395714740218099921290128795607292259527492722462071) 18121391280538137183908757597864533064917384783983769253153863292990848531982476223763320398544136120801123782009905576401195750554206035190112646134660146046391961645739717440410661301962042065947058754844780008864254659467502894206937038906041423696049078902930981376856595112623998909453259278811970216737064876176053670400496891610262950227723466025166252024521464805321272331144410668727431444831500952867808892680897342113162972306146491240153424660586067426211591225515925493392669481310356179413996787996810430118708582048401630038360584611837868840400617821269770790513370640831734483348114971187339934438962) (num-test (+ -24023960171862805266003610953999097357395283354964456554686635290239019705581779621120391229617494503580661676939681517550103414632840981987397485411400553792707518662609532504246677658012933762605038799352109564432278094548068984563394926376371580465135388578139331334464060067790936072127680597181415407099723844313625277987147283697141407959289588588489162704824409673099509423520008795428217612706997355591985894255450783091681112776112997887084157623388943538145736618168104404283342039105202585543852590302154958791010622670839015475427693311663800177428904406869645066988663292128104453773413982185343111560886 -31939808827732134714870375774276102357277346245583282398423150631754622253109692213928642228787888509211781331649081002266227303203259124984426497846441848502574293640959494009564992092503141598640200823656998243767453860939156780549404892392521391484933772285520949470194562525777116137058001008184603332597820522016200623301007194309404025522056113671560767212894303567191067178003014955596425115379852712737129325098876542459702682095445350281859042779889411325882123213577906096942649941285655935053362468972482748617111598313960198743596285343178242282172686940700127068972627110105953098737923773182254460772630) -55963768999594939980873986728275199714672629600547738953109785921993641958691471835049033458405383012792443008588762519816330717836100106971823983257842402295281812303569026513811669750516075361245239623009107808199731955487225765112799818768892971950069160863660280804658622593568052209185681605366018739697544366329825901288154478006545433481345702260049929917718713240290576601523023751024642728086850068329115219354327325551383794871558348168943200403278354864027859831746010501225991980390858520597215059274637707408122220984799214219023978654842042459601591347569772135961290402234057552511337755367597572333516) (num-test (+ 14513652183174940741664411990199277445706189147726874603036586212536012746892966848269748909379750612027025331446918381470766609543142456872580466135425754204680927122749772612276850998180593344389487924747722210296498854143380696064338777945015153982467675141485724865534995199700908286263993697988986805404864429385840512740226775506122190698806967785494289035976495492863456705096841250592980439363856397663738211335801835896091823148249303370609165910779981271035234045185574995335952208702661648744928539539455138167482396767268362221492607154709559716065850417221174683768503217544145599044845325824451589309835 -12814535978730024053359592817368712576084646962861720729844389627130663192435154658607204342320327460695280260731620465435530495952836598646143907272825807563512741964987882356778796849529260646503692618525570185450780889283642116889481314560395290434301143877809550098309214046129802023655714098730144464028249594406616074059558969757405392170810220921023905546104487938441503430332099605473144930508420331873995741851604525954472341693863067199617721032815462094767522339305487934030130207039176659398466616780628644572276059410087128533031562978399689702766028716401176531098447698206272762966470643604141938670152) 1699116204444916688304819172830564869621542184865153873192196585405349554457812189662544567059423151331745070715297916035236113590305858226436558862599946641168185157761890255498054148651332697885795306222152024845717964859738579174857463384619863548166531263676174767225781153571106262608279599258842341376614834979224438680667805748716798527996746864470383489872007554421953274764741645119835508855436065789742469484197309941619481454386236170991444877964519176267711705880087061305822001663484989346461922758826493595206337357181233688461044176309870013299821700819998152670055519337872836078374682220309650639683) (num-test (+ 11356479761814008572465147431830778885327227506593483181241437802252618729479905490826767363633131720717461693888023278837835457496021519184903984385091047829540007466025527592005114414671285638168997562037691602144751434208304408870143450743278437854754504713023422097017723330207792526222436928747286558205279330508360438281011315147578105966454344087225699378388309094140949428028313539634103047841948634832398526343605363013644180832752120081735152285507591096001749463421326282317713079361827765412853023201330345752038722069405404812511739634687282327711258974520622248165974215116400638833123609666501349513623 -2451734542868054449539778460457497703609327132304922810342762480808881050209276687756391911546806187586640918078231508181876445466503459873508196878629364924241891220686182517218825181707207808769770392864734466652524094735160185556148554260517746279303022469784592528209667497664672945900929888144529727881050106027775707933311860110618130543481573815538047460723253898548348335762406437618625388229555824532715231231491787570056329865617082709588903922431713098922691537317839185452018617461891748518176708607861270770493263960554805373552348256747200291438630960804647686832667981625018361034564086859426490014044) 8904745218945954122925368971373281181717900374288560370898675321443737679270628803070375452086325533130820775809791770655959012029518059311395787506461682905298116245339345074786289232964077829399227169172957135492227339473144223313994896482760691575451482243238829568808055832543119580321507040602756830324229224480584730347699455036959975422972770271687651917665055195592601092265907102015477659612392810299683295112113575443587850967135037372146248363075877997079057926103487096865694461899936016894676314593469074981545458108850599438959391377940082036272628013715974561333306233491382277798559522807074859499579) (num-test (+ -1814184401790217165873937825605141478060935014868566665644215718762341535891730598045990231798382966074312671040257824056876679135909008140059087311700216658095793352051583071432744886316274989901835606602224927350560604355249919901932382803472476702792978322468747380191775778902733911968522382089332819162367884984027854067607561808704316828316820133400099093450636968732151876570835173932998599031643640476109466728761033062776578175554441947411139184426213290292577467587355369954997241091769769542810051228504545831588488726789173405585678190671534386784806998695797717346491308862362775748058331375692317599945 15466182953987394334491149436346080039471412309427279110582769586053943302670765125931570041904640518032832554998553018838321871748542118021556398569294085708441934948186080236498081517178574839977996802813431873543309853609838200338534343580791382510179184571852290959723696010410340740895530535423959476873857191548113125728667781953125153120447892632916574768078583174099545013854248664119997703948998871566374080719541931440495888606776561795893839624084254684939434035018741535261951124673664746010067859317726891535170781460914710499572006592206360512398012457295755926986236618644330364227754380084585899275327) 13651998552197177168617211610740938561410477294558712444938553867291601766779034527885579810106257551958519883958295194781445192612633109881497311257593869050346141596134497165065336630862299850076161196211206946192749249254588280436601960777318905807386206249383543579531920231507606828927008153334626657711489306564085271661060220144420836292131072499516475674627946205367393137283413490186999104917355231090264613990780898377719310431222119848482700439658041394646856567431386165306953883581894976467257808089222345703582292734125537093986328401534826125613205458599958209639745309781967588479696048708893581675382) (num-test (+ -27127130599753372624001250456405972983012981437652156246797208697430661165612459362971759027335854588888552031022264244768883843080959804690580574272908031271224646245152017114094021048441971097191444782106551075175878815012595015584723250801765859461211934306789890718268168352614164589637346918581658850565274510502652089457352942736418509881708568727739912127781455473660768550022762222130489047215089836402367851853412705556570667960548570630054608024914653686223423908494006675057953013815512203710764854485332282975729323105427143207127239069826750682633272289409910001698385240596625059970587393681128674617278 5719655139276246085992066702308194672442413085748146924567717361937179810269300239821879673460959112727066470468217892213025828988023367028158410455624528688729907493639908638553730770145274142147983721694721139760883483821883267129411125364089207412089113869427479340283853501026803387874124668123626271531796990801822527792189514551888019206405597994403243358155410088320317141454525417323186389587327532772638942220300149829241141659063128602316305332848477566686425551944956989370838072872906293845914921103561360871571846865478762953536949621421094416539099628942010528483544062050170673327754206501716239719529) -21407475460477126538009183754097778310570568351904009322229491335493481355343159123149879353874895476161485560554046352555858014092936437662422163817283502582494738751512108475540290278296696955043461060411829935414995331190711748455312125437676652049122820437362411377984314851587361201763222250458032579033477519700829561665163428184530490675302970733336668769626045385340451408568236804807302657627762303629728909633112555727329526301485442027738302692066176119536998356549049685687114940942605909864849933381770922104157476239948380253590289448405656266094172660467899473214841178546454386642833187179412434897749) (num-test (+ -6069217517368004039/4076344942716985944 -399587800008780737/578697755310708616) -321318766345655960630110128852941297/147435729263904928853096856396980844) (num-test (+ -41285036778370718/305793940074617155 -1396094619926552183/15846027887642356854) -1081121118676718273499338028514700537/4845619302294419132297197085940230370) (num-test (+ 15975644088444536091/18063939613598316583 17501188199168431305/2979264551795273683) 363736076920798535449296038324193823968/53817254956563877935003279344562385189) (num-test (+ 10197734562406803221/17452826108659293487 14639450560606090654/236781760961536951) 257914422508077920978698094723491089669/4132510899763835955061848877304138137) (num-test (+ -16810360766832230069/13652857552883800956 5011749175730438558/4169057419710079215) -184295743992738197672588473692806043/6324394120121667288243293659228081060) (num-test (+ 2234573531734039025/1128831476977636536 5842177084459535064/10255356071975483971) 29511180623959738330730559435115466579/11576568741659658592450950022331964456) (num-test (+ 2268894928233321367/45672733521488298991909987382109984899 -10510750087507287356/187832098427494353069556175466145198255) -53883392376116199828369509984040539934420061636271022459/8578805378260910951788610598591490227836321974082207035230408675959411151245) (num-test (+ 14273433611429514043/7774518083776389556784045601066955324 17247074371340283485/225579726714102822702316919752160926694) 1676942472465190408518249346164012571239098147062478293991/876886832336064155131767120243155911448808491410701588797601053820468509428) (num-test (+ -384768590020206817/26284423885474502132625533495652664626 -913687410374243983/254477371735734658619949996700223764026) -10160887225658731404416073535892287983824191154410167550/557399258996959835387173465565070652935481894323496556880024318994528462023) (num-test (+ -4465222504572200650/89674568206322981678158378582739708537 4148550863841320780/74302497820894496090312266744880513261) 2118016946376507498169590394563632549990739165791772590/350686547828419379316750498534703170285368675911953477374458878558215968903) (num-test (+ -4466938407638238142/281859125741189685767904931589784285893 7302241525893379697/204618108204962312932373858463395271264) 1144186926000295881841982161759159994442430111060328362933/57673481089466829503954266461746705742702466399988738560842837126631263478752) (num-test (+ 6692616266348342275/280491911593106290120490189988812804382 5414100524539959087/183579771905991028181574615911067652873) 2747240373316006570071525025488180559154305534334705425309/51492641151737853299832848099101317109893853469394209716061486746077629289486) (num-test (+ -2794289802081124319/15768464977850217600859580216291365931410230647587457388598921425875331529149 10869776169503285673/33805119742344157512165738805682358903614971418053290198565741206390317449856) 76938383491719886409504555688515759257937029058461512747558964579607347503639994773101488934213/533054846729186819415263583890627325668798847177803707144003483502948153457972377767011992167761176556555806720273883868208938866192358148729990609852544) (num-test (+ -253222140119290489/2123024034843473393742534167007121513293496410591072104903085284304117612082 17957334013642389787/32058972871090153103034645121513493401113378486125580864856088310966601405847) 30005809992231287609744177955201962181880644831204431411802631067134766877061419104162728517351/68061969937719269465960475690278941280799593161143759512261685488134507341176789799765185182008442410081522124548392827986923668912612728349293792643454) (num-test (+ -13318881947309618/3105936147298438543619802738126617974207009907186580731552500517452462642139 1850968757748704519/36469179946212878965111748233319050931475015876401494718861814560453153824935) 5263262069792987469108717688485565287648879759118200779949761992573778798556738644541735401311/113270944257273905484832818286307416845956086746130199501242465128236430928807948126409718436237517505516279133169796919230385184900609912160483959935965) (num-test (+ -9937822914683494298/36414156259035675966580098631253549474580108307284844243190992829476777586283 -13712605099585970325/17758145954890657915358548152198427387923366136638180213650029984340849686198) -675810254607579372158951115566887998278519717754376916387787672973408477396668549189167387350979/646647901672150721610792561233068038707362067627156669418022102308446036384411330678972562863413004325878365438890328206637571985169324874284800419222034) (num-test (+ 2479135971595944301/28169711053558469409458629766960029324030958129245230797895768033968717159836 3427244662960653095/28446538857424788738244844756675951434179713170118835630969510829753715142438) 83533664807147783700314944003289704497366290621039272787320536148072960487262393639109696219129/400665390043739792096386856839000624247597803909916773326187593475005945995926511155915226239317839405221783416485999405286913042389632370302962776360084) (num-test (+ 14865500635281371370/56222262470894935247131881777606182311286871927285650835673424014252462156319 6436092572090050725/19282524131572095520593158313261757267758159099923763177708581262473988426947) 648496060602737474174747620183913927791943082591316359990137585798909535115053578637078811588665/1084107132826611778585714784136700465449309125114745313342842325649687943726086785657821763235618936882528385000712567133180567926723616940173290425928093) (num-test (+ 340196811925805824067049620503247332111/14422464039094716975 51285507111580975533385007190438537498/3230944134273302873) 1838820276033673324738967436225477772648372110186756083453/46598175588880723338390245118389369175) (num-test (+ -210449319160504160992731982827917332322/5436857856220342451 251628249079137248539965770847855056283/4323109210037952829) 458271632943884346915405609513071881239303671882386130695/23504130271893362375786510953364243879) (num-test (+ -40984360445255688839942109197081457275/6593417935076565019 -138094174027187773198981391229349265879/7135512300754720691) -1202957011856131413678873259651070808566709454882536663726/47047414779755620074837011989046108129) (num-test (+ -289704472880230079383856507128133962457/10452740760651010288 -55251460678415911958671096669490155237/10333740726609314202) -1785630052601050832889834016432677758176770083879794496285/54007956451514283340719766211063255088) (num-test (+ 276702099951674677215621541062877777467/3899918017008359516 42623843937285717338660228144403811741/1973785812353331893) 712380176058162142132059442064597996057720566915757732387/7697602851312240113570356856612843788) (num-test (+ -323480614013303716597188084301661616596/12957985934572321773 -72966206939397711493108854138997499334/4539020357040680881) -2413780175334213399707013296172687953960842714316410700258/58816561943270580900205343368941122013) (num-test (+ 65443777543319569578713907336699651721/218804857459609839540825438673960136766 -61986861924091374470669233802827103921/65997977315012279293170493460332070399) -9243869541956614722377007489838492339200370508580665293676272508698701352807/14440678019033825487758061900150103876633207457375858942267120523885980189634) (num-test (+ 75417845823236070411341994633288547531/70553457686181702397810927701121800017 -7132208259849175775323757110664708879/24379326462014713478002790304943339422) 1335434330716260509518880689691257567128541829706203586134358870209350816139/1720045777955364955754847231620711706115121721983605654691934662747636370174) (num-test (+ -144692585186931942602350348772472248638/135233395864627580439431775527364081053 282512666765911374279543408363363928190/317835040256607665191397469890906044457) -7783226336195038987381961251409043080655184208289882004756343793157154115496/42981911818671667582796085276418080952868666330715445603855323471628969373221) (num-test (+ 44888992584766727877549626240272070725/30583318432547259097085073976959329092 8004917623696885952432014881247978821/22005016116109025986417835664774768346) 616299974987760892931461886440810919939264155149950328291076750435394215691/336493207496148335911511951044490614757807556827643881435283379298939260916) (num-test (+ 78378756441281199312006031491361997668/175125578595003447448566412156266355477 41128705932035853424044828385766740319/216359823601433445464965619660717081261) 24160702340946845080381231961736762955784254747832931999121777482667650876511/37890139292913914697800186893609983979783140570423836226844401085057321416497) (num-test (+ -36669293296367265584135816683983780855/7341750629088488427994322429098120058 -110335983484012479290765295565662258281/5944410911181873015545360879141666465) -1028036623331099574157832708037007047972965676333418398303213384036005227873/43642382546729990922161061763293407461832155878510163500678954788762454970) (num-test (+ 228535455883892721240720366651075744967/13353170075841095813026701300679754576855418298534901819672803635370738730013 50622643250826426975012800479360461693/18462345430382979738234695697296360785230118465695284267226773073149552698303) 4895273294635392498665165879164922265508724130843670837390305811645771221742112327485665544066552056189958877583010/246530838530831602270074647792752210668736478466245992891169449973883874207653264921203783108295835419855394180777469634862446033810927048792871560267939) (num-test (+ 11355068601761731966774720678777239425/4604724775053993730579400400679579947095967462408565975449642189823843820753 140083339434585694465706029861026468774/44667214322013486680993684507177513903616004462434123967566781106229226297333) 1152244506542792151980649054527153167035843960949499862764543674633978109831264344257976000890169981044543787620347/205680228421222079539939271800361418862113882206694593495620042859527547538342323521609420336002641308832164587573546802806916292021672743366881933951749) (num-test (+ -1347509007210283053816302848714698886/1127513773036247565111791991337919355855664936242166138889250311777351432819 -29464928273311615445392112247506626497/61933028109313748081628643142485450090725737246358993405254280723087421657760) -116677425670791909053501267317366054796703074907755330120413752187834449333299886015456661052906469074533366060403/69830342199092322009251417145364324484174202256910311362396720371574344280505889954115533896831727771442604285956749924105078563356474162416148250025440) (num-test (+ -324250487660721070279458563122233299722/81069650926979269606211148691445887485067008319429991878657612702576019034861 221744296343315457943731256980089803078/69422237643162665956763790134527973903052044485041686255401689654420090859107) -1511153903564243978242173323335554031611949546418082039382510246845821774680210236992700372319944685567533765722032/1876012190766999122356500320654631447623282613780323887424324139799202291067983209550065997185860196433399782230215269625922714982832188312141580824109709) (num-test (+ -5518324152042099343909980322067306333/114786626838714403445081775763480415805466836213320421844559660900880511042496 -34415425451618992284220085078832944671/96012285963709194218263616278916829663708037691620330613749177799086889040577) -121088040955051148243092870850103339772063863319219725752028251933576579890093496821887384992074112246777968211161/297862876779681729593084954525306275464788137269287692384941959703420459939692410434239827100068259769782676124741025632728203586961467995819025176090816) (num-test (+ -14763921690861243371082340598041267817/5580497386043551028888310256097864185640794395615400088682607872958152738111 -37917865546640067592937379176813765341/6460563866107795917092814416816176677900242086501650458839130903088333290440) -306983808565398982164654624310995401934900925070311336095043743767915008644459192438083753301097540174379867380331/36053159767181973313125557585868206969047484351694148822117591172786449966899079869470557965303954072842600790897257698854023751399649072014440219958840) (num-test (+ -50167218239107621378232529938205077788547946059832391744348095230748591585676/15685777859540025727 2959973815535345735348053015389999235839609978295604181643547897863515739931/7556072538495923601) -332637648328710384664787658442281566361265475773778265650094684540358159241317316408573560734439/118522875329417757148187346888166482927) (num-test (+ 36275100136090483878026478935942224245036692059657264537598788566553406654319/7192442039871568876 31833552596558882106090352174644817045294359487590746360517241517440556146007/5115621724114081523) 6795584791386081942310910570767193224876510928834120433155946649367201608618436115134135392229/603177258173744207443043238127434068) (num-test (+ 1518304705177739493483387141342904186483658277690975456045607777812450680478/1837349761252804045 -98159070764971437450169149833809835519268242923913777966502463698396945141091/17238232824535200528) -154179655228376218743158291724235398278770272999447263973992852061897564252670941977524115620711/31672662964580000612902147746364535760) (num-test (+ -16820231344048323866426670709751443650129113909724546927974450301780935205864/4879137683452153951 41987219452495799378686134495924115238909423831017150785452046648616005475639/10470103987572807938) 28751853386830083847297108941057082854166610198448421498169760256533906032780671559334244751257/51085078915429149801779227663330863038) (num-test (+ 106981694162678522688926793970551228214793665448093395251834862896418045995969/12359470989873920972 57736849967187961211538031441400807467468650239660040144967046985609433512403/9148121311784151716) 211534804819567028232303054650327703050869189253958355919997046592895748577556985792570078031065/14133242495605447754080611005730273494) (num-test (+ 32477400086615533920132766925666506741908300936974348739732763951610256880146/9045135183308696243 -27444990730472195954051975667481893116650518055101159075033425831129583042846/14815776448343565085) 232934248044934592851252865496377968609159820017147884670610366058217203617961573611006127074832/134010700820948737148715427669965475655) (num-test (+ -110053921687226074580746319073262192216481755737797790655164396095655530752161/255625377233605953547425802301922658850 104095037267817888539158192425982072195078148060302393917025130946535913363779/52156238014583575190277280296975732513) 20869334635774913818120011435677143948904421430726712952150525645851498022294865158343391008006649321440592131083557/13332458017563665620865770931104425383051282278510599570476131200251352190050) (num-test (+ -29732769078100192507326444863945498799317005912797369958801703828462203585495/153426302667449722633466432797809987061 36094569840376017510791155197897623093337784636438580042046806320700826250193/73286165979315961333009750429763545174) 3358855747298609357265422062476767573626163217619249414656940907348235709105513077913806378841119674678021275101643/11244025482879487592663298816607141776071841230792806495601092332558428993614) (num-test (+ -5942892427460131788264792587455286675871284855854073854440582948253436001319/42136930106315714728428443448730580823 4013357443728612356640061171485791666303136232331145404661874650095235381569/4039594279673425548586623641599574814) 48367895947790658831309709091377784501687363167039737892874371817395083020674648576881857510385191335175551957207/56738700606823969419119152217721454504573192499839513549171731025354063974) (num-test (+ 83833896550100013648317056712064289497247852876055488793078639582729685477353/188580876675619574786621140720273228537 -94310653397371924313725082402708514144086936359594289802762093989853507835016/223423274286761439988276492107364036191) 945257965914081840217765265999453398105151083284254483307155736205796420255026737575918161700355729594975143830831/42133356934734885127066999419230498520039134905254787577957770920054881982567) (num-test (+ -14753992026457621496269953958381833108089826525439816493815533773338622353285/187171041855711408638339193132645929319 41340837577662628944845446369855468662228665858415210386857356535970453143469/322471558852595372991189266479896691326) 993354944176102401496932276511264091214577507066786487301109889019709943488537161608732610457423116833164991120567/20119112546425211128699888199278894685207186285215928241217590790016852128998) (num-test (+ 1370528773439579327226257222995383030603284075640526658282329726447335048230/305600505683287165495713194488435114383 65450762047588146235054351616480175308174618406941901794570541085963681607527/78934496562987400429145916504112602768) 2234440886428442112499564751364146150136438855986167755259621093816030535881959724370423862435538502079424185584609/2680269118389404699570998335430047660909241475691839354273569734988880268016) (num-test (+ -76890617375308981455205142622328108690129081798840077873315966300000409208129/15716637731576156581128288257209679492686622162926707938907282962815471734862 38716252217351070567267262306332875768795464072349655597599997486613800623507/8966639693620677733207403249675415446338239705879120765911896990394928596139) -80961151400006413290662155450270992168701818633203071886556882897757813544592915596861717853520674107309124394292702460320442121704840951425284048212897/140925427734207212133604717335369986754855062343668899363006574618520848268718851310007161609443093589067206438198588881828988648068282656538084484897818) (num-test (+ -43290760758277846058307167265569849910514905939554272559141355223092464986939/39390771697068809730875092892395235497943839933482798653607450783947201796777 -34021960935937170163894986285771504067448629886312440795733904794894095253649/106500928228745564800818258673435811176493306775154643113582742982704678574998) -5950657500399238361998292872481533631424138885403498309639150240712482075115081624153513501886127772738596607451116548616099047843190357858736503567640395/4195153749384427435979718872073512266029328962522899010907363614544821318917440413166534226890289043064894115954085809567292470182917919104836361549181446) (num-test (+ 17906146982204022925114071077515882010955693727109005464426577098738402001871/11978213712662686419384559301746021856683603106261241838035626618416021524231 37108371752538653389309509075248119316034595087990649061240232817571629131708/23044877611981158676785639370406786635050056158699399001947422631523989139615) 857136973087880657664203854652754375000000796400911171478039451763440064550649429609696307332611304395324153178602635490321877797571177424460384122636213/276036469018466057777760709173569478463866562650149880633721199971933767458324034017734890892482223472007882939609440193626728031771767304374122564511065) (num-test (+ -77062185592993847534024832256462395143306675613123510837298699277378172890089/108133793614758275822883834459865239455798743725021300772336023406871185253111 11169356025540464491224577661206910726665825152149521753528516637690366838655/6369000033300801574913390611244042297918207179453133439308688067382050608197) 716975776667538986425481530620118513423964367153518065425241139444161780269039780459555836804116752462325735011822817367819625929553250251515977390346172/688704135133337463423649074673019029541747166391680122270752018123634233590688096940261480888455237095078029621363428114402137147558304641222314936350867) (num-test (+ 13583698920327742567560325715281067532806062839142769830536738488850089822247/37364394142255392010559408553278838878570049727027927213977555360874308098434 89809462356450792524214360688853318641058652796345720882094866396911421360072/67457610947238032712889230619376608100793287037427539672885124981055281513463) 4272000026182362299819817378001862956001381379478285995446709640464951377212652125169846305230835604666564953883168949950485767679005929254184987140738609/2520512763327523955464432226120154092742373168521113224665257966793820057379494860454732800329019773731110452438496395974166220481124541266348389100216942) (num-test (+ -56124163112538495128545947597589743957824668875494126834084658670528264380488/4752969512023182700122983723156599300062332404522277372984645779569746369511 -24794747728228571193100294011820993825205231022194400752319729320185378063197/98168688073468429337427023004226732413974455700654808087001957859427678524065) -5627484141989830997868845457242226973925524393512774885292323552602180052845805156311097870316601631410500655735815037997645271136502511615781690896430387/466592781448509275992390948177487068548424631274164031114910250651063315574511979617153568070687706304645818907382693929886654490427484894987856595782215) (num-test (+ 17009115185923538769.0 -12047631083067675031.0) 4961484102855863738.0) (num-test (+ 12677011568664239747.0 3269056182420253574.0) 15946067751084493321.0) (num-test (+ 9315504781982082433.0 13857624532376678678.0) 23173129314358761111.0) (num-test (+ 15226508728194069537.0 11481952022080775416.0) 26708460750274844953.0) (num-test (+ 7461641943684774743.0 12249026721402718630.0) 19710668665087493373.0) (num-test (+ 1180469445886971055.0 -3208456171287181032.0) -2027986725400209977.0) (s7-test (+ 1 #f) 'error) (s7-test (+ 1 #t) 'error) (s7-test (+ 1 + 2) 'error) (s7-test (+ 1 - 2) 'error) ;(s7-test (+ 1 2 . 3) 'error) ;(s7-test (+ 1 . 2) 'error) ;;; an optimizer test (let () (define (hi a b c) (+ (+ 1 (* 2 b)) (+ a (* b c)) (+ (* a b) c) (+ (* a 3) 4))) (num-test (hi 5 6 7) 116)) (test-end "+") ;;; -------------------------------------------------------------------------------- ;;; - ;;; -------------------------------------------------------------------------------- (test-begin "-") (num-test (- -0) 0) (num-test (- -0.0) 0.0) (num-test (- -0.0+0.00000001i) 0.0-0.00000001i) (num-test (- -1.0 0.0) -1.0) (num-test (- -1.0) 1.0) (num-test (- -1.0+1.0i -1.0+1.0i) 0.0) (num-test (- -1.0+1.0i 0) -1.0+1.0i) (num-test (- -1.0+1.0i 0.0) -1.0+1.0i) (num-test (- -1.0+1.0i 0.0) -1.0+1.0i) (num-test (- -1.0+1.0i 0.0+1.0i) -1.0) (num-test (- -1.0+1.0i 1) -2.0+1.0i) (num-test (- -1.0+1.0i 1.0) -2.0+1.0i) (num-test (- -1.0+1.0i 1.0+1.0i) -2.0) (num-test (- -1.0+1.0i 1.234+1.234i) -2.234-0.234i) (num-test (- -1.0+1.0i 1/1) -2.0+1.0i) (num-test (- -1.0+1.0i 123.4) -124.4+1.0i) (num-test (- -1.0+1.0i 1234) -1235.0+1.0i) (num-test (- -1.0+1.0i 1234/11) -113.18181818181819+1.0i) (num-test (- -1.0+1.0i) 1.0-1.0i) (num-test (- -10) 10) (num-test (- -10/3) 10/3) (num-test (- -1234000000) 1234000000) (num-test (- -1234000000.0) 1234000000.0) (num-test (- -1234000000.0+2.71828182845905i) 1234000000.0-2.71828182845905i) (num-test (- -1234000000/10) 1234000000/10) (num-test (- -2 0) -2) (num-test (- -2) 2) (num-test (- -2.71828182845905) 2.71828182845905) (num-test (- -2.71828182845905+3.14159265358979i) 2.71828182845905-3.14159265358979i) (num-test (- -2.71828182845905-3.14159265358979i) 2.71828182845905+3.14159265358979i) (num-test (- -2/2 0/1) -2/2) (num-test (- -362880) 362880) (num-test (- -362880/1234) 362880/1234) (num-test (- 0 -1.0+1.0i) 1.0-1.0i) (num-test (- 0 0) 0) (num-test (- 0 0.0) 0.0) (num-test (- 0 0.0+1.0i) 0.0-1.0i) (num-test (- 0 1 -1.0+1.0i) 0.0-1.0i) (num-test (- 0 1 0) -1) (num-test (- 0 1 0.0) -1.0) (num-test (- 0 1 0.0+1.0i) -1.0-1.0i) (num-test (- 0 1 1) -2) (num-test (- 0 1 1.0) -2.0) (num-test (- 0 1 1.0+1.0i) -2.0-1.0i) (num-test (- 0 1 1.234+1.234i) -2.234-1.234i) (num-test (- 0 1 1/1) -2) (num-test (- 0 1 123.4) -124.4) (num-test (- 0 1 1234) -1235) (num-test (- 0 1 1234/11) -1245/11) (num-test (- 0 1) -1) (num-test (- 0 1.0 -1.0+1.0i) 0.0-1.0i) (num-test (- 0 1.0 0) -1.0) (num-test (- 0 1.0 0.0) -1.0) (num-test (- 0 1.0 0.0+1.0i) -1.0-1.0i) (num-test (- 0 1.0 1) -2.0) (num-test (- 0 1.0 1.0) -2.0) (num-test (- 0 1.0 1.0+1.0i) -2.0-1.0i) (num-test (- 0 1.0 1.234+1.234i) -2.234-1.234i) (num-test (- 0 1.0 1/1) -2.0) (num-test (- 0 1.0 123.4) -124.4) (num-test (- 0 1.0 1234) -1235.0) (num-test (- 0 1.0 1234/11) -113.18181818181819) (num-test (- 0 1.0) -1.0) (num-test (- 0 1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (- 0 1.0+1.0i 0) -1.0-1.0i) (num-test (- 0 1.0+1.0i 0.0) -1.0-1.0i) (num-test (- 0 1.0+1.0i 0.0+1.0i) -1.0-2.0i) (num-test (- 0 1.0+1.0i 1) -2.0-1.0i) (num-test (- 0 1.0+1.0i 1.0) -2.0-1.0i) (num-test (- 0 1.0+1.0i 1.0+1.0i) -2.0-2.0i) (num-test (- 0 1.0+1.0i 1.234+1.234i) -2.234-2.234i) (num-test (- 0 1.0+1.0i 1/1) -2.0-1.0i) (num-test (- 0 1.0+1.0i 123.4) -124.4-1.0i) (num-test (- 0 1.0+1.0i 1234) -1235.0-1.0i) (num-test (- 0 1.0+1.0i 1234/11) -113.18181818181819-1.0i) (num-test (- 0 1.0+1.0i) -1.0-1.0i) (num-test (- 0 1.234+1.234i) -1.234-1.234i) (num-test (- 0 123.4) -123.4) (num-test (- 0 1234) -1234) (num-test (- 0 1234/11) -1234/11) (num-test (- 0) 0) (num-test (- 0) 0) (num-test (- 0.0 -1.0+1.0i -1.0+1.0i) 2.0-2.0i) (num-test (- 0.0 -1.0+1.0i 0) 1.0-1.0i) (num-test (- 0.0 -1.0+1.0i 0.0) 1.0-1.0i) (num-test (- 0.0 -1.0+1.0i 0.0+1.0i) 1.0-2.0i) (num-test (- 0.0 -1.0+1.0i 1) 0.0-1.0i) (num-test (- 0.0 -1.0+1.0i 1.0) 0.0-1.0i) (num-test (- 0.0 -1.0+1.0i 1.0+1.0i) 0.0-2.0i) (num-test (- 0.0 -1.0+1.0i 1.234+1.234i) -0.234-2.234i) (num-test (- 0.0 -1.0+1.0i 1/1) 0.0-1.0i) (num-test (- 0.0 -1.0+1.0i 123.4) -122.4-1.0i) (num-test (- 0.0 -1.0+1.0i 1234) -1233.0-1.0i) (num-test (- 0.0 -1.0+1.0i 1234/11) -111.18181818181819-1.0i) (num-test (- 0.0 -1.0+1.0i) 1.0-1.0i) (num-test (- 0.0 0 -1.0+1.0i) 1.0-1.0i) (num-test (- 0.0 0 0) 0.0) (num-test (- 0.0 0 0.0) 0.0) (num-test (- 0.0 0 0.0+1.0i) 0.0-1.0i) (num-test (- 0.0 0 1) -1.0) (num-test (- 0.0 0 1.0) -1.0) (num-test (- 0.0 0 1.0+1.0i) -1.0-1.0i) (num-test (- 0.0 0 1.234+1.234i) -1.234-1.234i) (num-test (- 0.0 0 1/1) -1.0) (num-test (- 0.0 0 123.4) -123.4) (num-test (- 0.0 0 1234) -1234.0) (num-test (- 0.0 0 1234/11) -112.18181818181819) (num-test (- 0.0 0) 0.0) (num-test (- 0.0 0.0 -1.0+1.0i) 1.0-1.0i) (num-test (- 0.0 0.0 0) 0.0) (num-test (- 0.0 0.0 0.0) 0.0) (num-test (- 0.0 0.0 0.0+1.0i) 0.0-1.0i) (num-test (- 0.0 0.0 1) -1.0) (num-test (- 0.0 0.0 1.0) -1.0) (num-test (- 0.0 0.0 1.0+1.0i) -1.0-1.0i) (num-test (- 0.0 0.0 1.234+1.234i) -1.234-1.234i) (num-test (- 0.0 0.0 1/1) -1.0) (num-test (- 0.0 0.0 123.4) -123.4) (num-test (- 0.0 0.0 1234) -1234.0) (num-test (- 0.0 0.0 1234/11) -112.18181818181819) (num-test (- 0.0 0.0) 0.0) (num-test (- 0.0 0.0+1.0i -1.0+1.0i) 1.0-2.0i) (num-test (- 0.0 0.0+1.0i 0) 0.0-1.0i) (num-test (- 0.0 0.0+1.0i 0.0) 0.0-1.0i) (num-test (- 0.0 0.0+1.0i 0.0+1.0i) 0.0-2.0i) (num-test (- 0.0 0.0+1.0i 1) -1.0-1.0i) (num-test (- 0.0 0.0+1.0i 1.0) -1.0-1.0i) (num-test (- 0.0 0.0+1.0i 1.0+1.0i) -1.0-2.0i) (num-test (- 0.0 0.0+1.0i 1.234+1.234i) -1.234-2.234i) (num-test (- 0.0 0.0+1.0i 1/1) -1.0-1.0i) (num-test (- 0.0 0.0+1.0i 123.4) -123.4-1.0i) (num-test (- 0.0 0.0+1.0i 1234) -1234.0-1.0i) (num-test (- 0.0 0.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (- 0.0 0.0+1.0i) 0.0-1.0i) (num-test (- 0.0 1 -1.0+1.0i) 0.0-1.0i) (num-test (- 0.0 1 0) -1.0) (num-test (- 0.0 1 0.0) -1.0) (num-test (- 0.0 1 0.0+1.0i) -1.0-1.0i) (num-test (- 0.0 1 1.0) -2.0) (num-test (- 0.0 1 1.0+1.0i) -2.0-1.0i) (num-test (- 0.0 1 1.234+1.234i) -2.234-1.234i) (num-test (- 0.0 1 1/1) -2.0) (num-test (- 0.0 1 123.4) -124.4) (num-test (- 0.0 1 1234) -1235.0) (num-test (- 0.0 1 1234/11) -113.18181818181819) (num-test (- 0.0 1) -1.0) (num-test (- 0.0 1.0 -1.0+1.0i) 0.0-1.0i) (num-test (- 0.0 1.0 0) -1.0) (num-test (- 0.0 1.0 0.0) -1.0) (num-test (- 0.0 1.0 0.0+1.0i) -1.0-1.0i) (num-test (- 0.0 1.0 1) -2.0) (num-test (- 0.0 1.0 1.0) -2.0) (num-test (- 0.0 1.0 1.0+1.0i) -2.0-1.0i) (num-test (- 0.0 1.0 1.234+1.234i) -2.234-1.234i) (num-test (- 0.0 1.0 1/1) -2.0) (num-test (- 0.0 1.0 123.4) -124.4) (num-test (- 0.0 1.0 1234) -1235.0) (num-test (- 0.0 1.0 1234/11) -113.18181818181819) (num-test (- 0.0 1.0) -1.0) (num-test (- 0.0 1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (- 0.0 1.0+1.0i 0) -1.0-1.0i) (num-test (- 0.0 1.0+1.0i 0.0) -1.0-1.0i) (num-test (- 0.0 1.0+1.0i 0.0+1.0i) -1.0-2.0i) (num-test (- 0.0 1.0+1.0i 1) -2.0-1.0i) (num-test (- 0.0 1.0+1.0i 1.0) -2.0-1.0i) (num-test (- 0.0 1.0+1.0i 1.0+1.0i) -2.0-2.0i) (num-test (- 0.0 1.0+1.0i 1.234+1.234i) -2.234-2.234i) (num-test (- 0.0 1.0+1.0i 1/1) -2.0-1.0i) (num-test (- 0.0 1.0+1.0i 123.4) -124.4-1.0i) (num-test (- 0.0 1.0+1.0i 1234) -1235.0-1.0i) (num-test (- 0.0 1.0+1.0i 1234/11) -113.18181818181819-1.0i) (num-test (- 0.0 1.0+1.0i) -1.0-1.0i) (num-test (- 0.0 1.234+1.234i -1.0+1.0i) -0.234-2.234i) (num-test (- 0.0 1.234+1.234i 0) -1.234-1.234i) (num-test (- 0.0 1.234+1.234i 0.0) -1.234-1.234i) (num-test (- 0.0 1.234+1.234i 0.0+1.0i) -1.234-2.234i) (num-test (- 0.0 1.234+1.234i 1) -2.234-1.234i) (num-test (- 0.0 1.234+1.234i 1.0) -2.234-1.234i) (num-test (- 0.0 1.234+1.234i 1.0+1.0i) -2.234-2.234i) (num-test (- 0.0 1.234+1.234i 1.234+1.234i) -2.468-2.468i) (num-test (- 0.0 1.234+1.234i 1/1) -2.234-1.234i) (num-test (- 0.0 1.234+1.234i 123.4) -124.634-1.234i) (num-test (- 0.0 1.234+1.234i 1234) -1235.23399999999992-1.234i) (num-test (- 0.0 1.234+1.234i 1234/11) -113.41581818181818-1.234i) (num-test (- 0.0 1.234+1.234i) -1.234-1.234i) (num-test (- 0.0 1/1 -1.0+1.0i) 0.0-1.0i) (num-test (- 0.0 123.4 -1.0+1.0i) -122.4-1.0i) (num-test (- 0.0 123.4 0) -123.4) (num-test (- 0.0 123.4 0.0) -123.4) (num-test (- 0.0 123.4 0.0+1.0i) -123.4-1.0i) (num-test (- 0.0 123.4 1) -124.4) (num-test (- 0.0 123.4 1.0) -124.4) (num-test (- 0.0 123.4 1.0+1.0i) -124.4-1.0i) (num-test (- 0.0 123.4 1.234+1.234i) -124.634-1.234i) (num-test (- 0.0 123.4 1/1) -124.4) (num-test (- 0.0 123.4 123.4) -246.8) (num-test (- 0.0 123.4 1234) -1357.4) (num-test (- 0.0 123.4 1234/11) -235.58181818181819) (num-test (- 0.0 123.4) -123.4) (num-test (- 0.0 1234 -1.0+1.0i) -1233.0-1.0i) (num-test (- 0.0 1234 0) -1234.0) (num-test (- 0.0 1234 0.0) -1234.0) (num-test (- 0.0 1234 0.0+1.0i) -1234.0-1.0i) (num-test (- 0.0 1234 1) -1235.0) (num-test (- 0.0 1234 1.0) -1235.0) (num-test (- 0.0 1234 1.0+1.0i) -1235.0-1.0i) (num-test (- 0.0 1234 1.234+1.234i) -1235.23399999999992-1.234i) (num-test (- 0.0 1234 1/1) -1235.0) (num-test (- 0.0 1234 123.4) -1357.4) (num-test (- 0.0 1234 1234) -2468.0) (num-test (- 0.0 1234 1234/11) -1346.18181818181824) (num-test (- 0.0 1234) -1234.0) (num-test (- 0.0 1234/11 -1.0+1.0i) -111.18181818181819-1.0i) (num-test (- 0.0 1234/11 0) -112.18181818181819) (num-test (- 0.0 1234/11 0.0) -112.18181818181819) (num-test (- 0.0 1234/11 0.0+1.0i) -112.18181818181819-1.0i) (num-test (- 0.0 1234/11 1) -113.18181818181819) (num-test (- 0.0 1234/11 1.0) -113.18181818181819) (num-test (- 0.0 1234/11 1.0+1.0i) -113.18181818181819-1.0i) (num-test (- 0.0 1234/11 1.234+1.234i) -113.41581818181818-1.234i) (num-test (- 0.0 1234/11 1/1) -113.18181818181819) (num-test (- 0.0 1234/11 123.4) -235.58181818181819) (num-test (- 0.0 1234/11 1234) -1346.18181818181824) (num-test (- 0.0 1234/11 1234/11) -224.36363636363637) (num-test (- 0.0 1234/11) -112.18181818181819) (num-test (- 0.0) -0.0) (num-test (- 0.0+0.00000001i) -0.0-0.00000001i) (num-test (- 0.0+1.0i -1.0+1.0i) 1.0) (num-test (- 0.0+1.0i 0) 0.0+1.0i) (num-test (- 0.0+1.0i 0.0) 0.0+1.0i) (num-test (- 0.0+1.0i 0.0+1.0i) 0.0) (num-test (- 0.0+1.0i 1) -1.0+1.0i) (num-test (- 0.0+1.0i 1.0) -1.0+1.0i) (num-test (- 0.0+1.0i 1.0+1.0i) -1.0) (num-test (- 0.0+1.0i 1.234+1.234i) -1.234-0.234i) (num-test (- 0.0+1.0i 1/1) -1.0+1.0i) (num-test (- 0.0+1.0i 123.4) -123.4+1.0i) (num-test (- 0.0+1.0i 1234) -1234.0+1.0i) (num-test (- 0.0+1.0i 1234/11) -112.18181818181819+1.0i) (num-test (- 0.0-0.00000001i) -0.0+0.00000001i) (num-test (- 0/1) 0/1) (num-test (- 0/1) 0/1) (num-test (- 1 -1.0+1.0i) 2.0-1.0i) (num-test (- 1 0) 1) (num-test (- 1 0.0) 1.0) (num-test (- 1 0.0+1.0i) 1.0-1.0i) (num-test (- 1 1 -1.0+1.0i) 1.0-1.0i) (num-test (- 1 1 0) 0) (num-test (- 1 1 0.0) 0.0) (num-test (- 1 1 0.0+1.0i) 0.0-1.0i) (num-test (- 1 1 1) -1) (num-test (- 1 1 1.0) -1.0) (num-test (- 1 1 1.0+1.0i) -1.0-1.0i) (num-test (- 1 1 1.234+1.234i) -1.234-1.234i) (num-test (- 1 1 1/1) -1) (num-test (- 1 1 123.4) -123.4) (num-test (- 1 1 1234) -1234) (num-test (- 1 1 1234/11) -1234/11) (num-test (- 1 1) 0) (num-test (- 1 1.0 -1.0+1.0i) 1.0-1.0i) (num-test (- 1 1.0 0) 0.0) (num-test (- 1 1.0 0.0) 0.0) (num-test (- 1 1.0 0.0+1.0i) 0.0-1.0i) (num-test (- 1 1.0 1) -1.0) (num-test (- 1 1.0 1.0) -1.0) (num-test (- 1 1.0 1.0+1.0i) -1.0-1.0i) (num-test (- 1 1.0 1.234+1.234i) -1.234-1.234i) (num-test (- 1 1.0 1/1) -1.0) (num-test (- 1 1.0 123.4) -123.4) (num-test (- 1 1.0 1234) -1234.0) (num-test (- 1 1.0 1234/11) -112.18181818181819) (num-test (- 1 1.0) 0.0) (num-test (- 1 1.0+1.0i -1.0+1.0i) 1.0-2.0i) (num-test (- 1 1.0+1.0i 0) 0.0-1.0i) (num-test (- 1 1.0+1.0i 0.0) 0.0-1.0i) (num-test (- 1 1.0+1.0i 0.0+1.0i) 0.0-2.0i) (num-test (- 1 1.0+1.0i 1) -1.0-1.0i) (num-test (- 1 1.0+1.0i 1.0) -1.0-1.0i) (num-test (- 1 1.0+1.0i 1.0+1.0i) -1.0-2.0i) (num-test (- 1 1.0+1.0i 1.234+1.234i) -1.234-2.234i) (num-test (- 1 1.0+1.0i 1/1) -1.0-1.0i) (num-test (- 1 1.0+1.0i 123.4) -123.4-1.0i) (num-test (- 1 1.0+1.0i 1234) -1234.0-1.0i) (num-test (- 1 1.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (- 1 1.0+1.0i) 0.0-1.0i) (num-test (- 1 1.234+1.234i) -0.234-1.234i) (num-test (- 1 1/1 -1.0+1.0i) 1.0-1.0i) (num-test (- 1 123.4) -122.4) (num-test (- 1 1234) -1233) (num-test (- 1 1234/11) -1223/11) (num-test (- 1.0 -1.0+1.0i -1.0+1.0i) 3.0-2.0i) (num-test (- 1.0 -1.0+1.0i 0) 2.0-1.0i) (num-test (- 1.0 -1.0+1.0i 0.0) 2.0-1.0i) (num-test (- 1.0 -1.0+1.0i 0.0+1.0i) 2.0-2.0i) (num-test (- 1.0 -1.0+1.0i 1) 1.0-1.0i) (num-test (- 1.0 -1.0+1.0i 1.0) 1.0-1.0i) (num-test (- 1.0 -1.0+1.0i 1.0+1.0i) 1.0-2.0i) (num-test (- 1.0 -1.0+1.0i 1.234+1.234i) 0.766-2.234i) (num-test (- 1.0 -1.0+1.0i 1/1) 1.0-1.0i) (num-test (- 1.0 -1.0+1.0i 123.4) -121.4-1.0i) (num-test (- 1.0 -1.0+1.0i 1234) -1232.0-1.0i) (num-test (- 1.0 -1.0+1.0i 1234/11) -110.18181818181819-1.0i) (num-test (- 1.0 -1.0+1.0i) 2.0-1.0i) (num-test (- 1.0 0 -1.0+1.0i) 2.0-1.0i) (num-test (- 1.0 0 0) 1.0) (num-test (- 1.0 0 0.0) 1.0) (num-test (- 1.0 0 0.0+1.0i) 1.0-1.0i) (num-test (- 1.0 0 1) 0.0) (num-test (- 1.0 0 1.0) 0.0) (num-test (- 1.0 0 1.0+1.0i) 0.0-1.0i) (num-test (- 1.0 0 1.234+1.234i) -0.234-1.234i) (num-test (- 1.0 0 1/1) 0.0) (num-test (- 1.0 0 123.4) -122.4) (num-test (- 1.0 0 1234) -1233.0) (num-test (- 1.0 0 1234/11) -111.18181818181819) (num-test (- 1.0 0) 1.0) (num-test (- 1.0 0.0 -1.0+1.0i) 2.0-1.0i) (num-test (- 1.0 0.0 0) 1.0) (num-test (- 1.0 0.0 0.0) 1.0) (num-test (- 1.0 0.0 0.0+1.0i) 1.0-1.0i) (num-test (- 1.0 0.0 1) 0.0) (num-test (- 1.0 0.0 1.0) 0.0) (num-test (- 1.0 0.0 1.0+1.0i) 0.0-1.0i) (num-test (- 1.0 0.0 1.234+1.234i) -0.234-1.234i) (num-test (- 1.0 0.0 1/1) 0.0) (num-test (- 1.0 0.0 123.4) -122.4) (num-test (- 1.0 0.0 1234) -1233.0) (num-test (- 1.0 0.0 1234/11) -111.18181818181819) (num-test (- 1.0 0.0) 1.0) (num-test (- 1.0 0.0+1.0i -1.0+1.0i) 2.0-2.0i) (num-test (- 1.0 0.0+1.0i 0) 1.0-1.0i) (num-test (- 1.0 0.0+1.0i 0.0) 1.0-1.0i) (num-test (- 1.0 0.0+1.0i 0.0+1.0i) 1.0-2.0i) (num-test (- 1.0 0.0+1.0i 1) 0.0-1.0i) (num-test (- 1.0 0.0+1.0i 1.0) 0.0-1.0i) (num-test (- 1.0 0.0+1.0i 1.0+1.0i) 0.0-2.0i) (num-test (- 1.0 0.0+1.0i 1.234+1.234i) -0.234-2.234i) (num-test (- 1.0 0.0+1.0i 1/1) 0.0-1.0i) (num-test (- 1.0 0.0+1.0i 123.4) -122.4-1.0i) (num-test (- 1.0 0.0+1.0i 1234) -1233.0-1.0i) (num-test (- 1.0 0.0+1.0i 1234/11) -111.18181818181819-1.0i) (num-test (- 1.0 0.0+1.0i) 1.0-1.0i) (num-test (- 1.0 1 -1.0+1.0i) 1.0-1.0i) (num-test (- 1.0 1 0) 0.0) (num-test (- 1.0 1 0.0) 0.0) (num-test (- 1.0 1 0.0+1.0i) 0.0-1.0i) (num-test (- 1.0 1 1) -1.0) (num-test (- 1.0 1 1.0) -1.0) (num-test (- 1.0 1 1.0+1.0i) -1.0-1.0i) (num-test (- 1.0 1 1.234+1.234i) -1.234-1.234i) (num-test (- 1.0 1 1/1) -1.0) (num-test (- 1.0 1 123.4) -123.4) (num-test (- 1.0 1 1234) -1234.0) (num-test (- 1.0 1 1234/11) -112.18181818181819) (num-test (- 1.0 1) 0.0) (num-test (- 1.0 1.0 -1.0+1.0i) 1.0-1.0i) (num-test (- 1.0 1.0 0) 0.0) (num-test (- 1.0 1.0 0.0) 0.0) (num-test (- 1.0 1.0 0.0+1.0i) 0.0-1.0i) (num-test (- 1.0 1.0 1) -1.0) (num-test (- 1.0 1.0 1.0) -1.0) (num-test (- 1.0 1.0 1.0+1.0i) -1.0-1.0i) (num-test (- 1.0 1.0 1.234+1.234i) -1.234-1.234i) (num-test (- 1.0 1.0 1/1) -1.0) (num-test (- 1.0 1.0 123.4) -123.4) (num-test (- 1.0 1.0 1234) -1234.0) (num-test (- 1.0 1.0 1234/11) -112.18181818181819) (num-test (- 1.0 1.0) 0.0) (num-test (- 1.0 1.0+1.0i -1.0+1.0i) 1.0-2.0i) (num-test (- 1.0 1.0+1.0i 0) 0.0-1.0i) (num-test (- 1.0 1.0+1.0i 0.0) 0.0-1.0i) (num-test (- 1.0 1.0+1.0i 0.0+1.0i) 0.0-2.0i) (num-test (- 1.0 1.0+1.0i 1) -1.0-1.0i) (num-test (- 1.0 1.0+1.0i 1.0) -1.0-1.0i) (num-test (- 1.0 1.0+1.0i 1.0+1.0i) -1.0-2.0i) (num-test (- 1.0 1.0+1.0i 1.234+1.234i) -1.234-2.234i) (num-test (- 1.0 1.0+1.0i 1/1) -1.0-1.0i) (num-test (- 1.0 1.0+1.0i 123.4) -123.4-1.0i) (num-test (- 1.0 1.0+1.0i 1234) -1234.0-1.0i) (num-test (- 1.0 1.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (- 1.0 1.0+1.0i) 0.0-1.0i) (num-test (- 1.0 1.234+1.234i -1.0+1.0i) 0.766-2.234i) (num-test (- 1.0 1.234+1.234i 0) -0.234-1.234i) (num-test (- 1.0 1.234+1.234i 0.0) -0.234-1.234i) (num-test (- 1.0 1.234+1.234i 0.0+1.0i) -0.234-2.234i) (num-test (- 1.0 1.234+1.234i 1) -1.234-1.234i) (num-test (- 1.0 1.234+1.234i 1.0) -1.234-1.234i) (num-test (- 1.0 1.234+1.234i 1.0+1.0i) -1.234-2.234i) (num-test (- 1.0 1.234+1.234i 1.234+1.234i) -1.468-2.468i) (num-test (- 1.0 1.234+1.234i 1/1) -1.234-1.234i) (num-test (- 1.0 1.234+1.234i 123.4) -123.634-1.234i) (num-test (- 1.0 1.234+1.234i 1234) -1234.23399999999992-1.234i) (num-test (- 1.0 1.234+1.234i 1234/11) -112.41581818181818-1.234i) (num-test (- 1.0 1.234+1.234i) -0.234-1.234i) (num-test (- 1.0 1/1 -1.0+1.0i) 1.0-1.0i) (num-test (- 1.0 123.4 -1.0+1.0i) -121.4-1.0i) (num-test (- 1.0 123.4 0) -122.4) (num-test (- 1.0 123.4 0.0) -122.4) (num-test (- 1.0 123.4 0.0+1.0i) -122.4-1.0i) (num-test (- 1.0 123.4 1) -123.4) (num-test (- 1.0 123.4 1.0) -123.4) (num-test (- 1.0 123.4 1.0+1.0i) -123.4-1.0i) (num-test (- 1.0 123.4 1.234+1.234i) -123.634-1.234i) (num-test (- 1.0 123.4 1/1) -123.4) (num-test (- 1.0 123.4 123.4) -245.8) (num-test (- 1.0 123.4 1234) -1356.4) (num-test (- 1.0 123.4 1234/11) -234.58181818181819) (num-test (- 1.0 123.4) -122.4) (num-test (- 1.0 1234 -1.0+1.0i) -1232.0-1.0i) (num-test (- 1.0 1234 0) -1233.0) (num-test (- 1.0 1234 0.0) -1233.0) (num-test (- 1.0 1234 0.0+1.0i) -1233.0-1.0i) (num-test (- 1.0 1234 1) -1234.0) (num-test (- 1.0 1234 1.0) -1234.0) (num-test (- 1.0 1234 1.0+1.0i) -1234.0-1.0i) (num-test (- 1.0 1234 1.234+1.234i) -1234.23399999999992-1.234i) (num-test (- 1.0 1234 1/1) -1234.0) (num-test (- 1.0 1234 123.4) -1356.4) (num-test (- 1.0 1234 1234) -2467.0) (num-test (- 1.0 1234 1234/11) -1345.18181818181824) (num-test (- 1.0 1234) -1233.0) (num-test (- 1.0 1234/11 -1.0+1.0i) -110.18181818181819-1.0i) (num-test (- 1.0 1234/11 0) -111.18181818181819) (num-test (- 1.0 1234/11 0.0) -111.18181818181819) (num-test (- 1.0 1234/11 0.0+1.0i) -111.18181818181819-1.0i) (num-test (- 1.0 1234/11 1) -112.18181818181819) (num-test (- 1.0 1234/11 1.0) -112.18181818181819) (num-test (- 1.0 1234/11 1.0+1.0i) -112.18181818181819-1.0i) (num-test (- 1.0 1234/11 1.234+1.234i) -112.41581818181818-1.234i) (num-test (- 1.0 1234/11 1/1) -112.18181818181819) (num-test (- 1.0 1234/11 123.4) -234.58181818181819) (num-test (- 1.0 1234/11 1234) -1345.18181818181824) (num-test (- 1.0 1234/11 1234/11) -223.36363636363637) (num-test (- 1.0 1234/11) -111.18181818181819) (num-test (- 1.0) -1.0) (num-test (- 1.0+1.0i -1.0+1.0i -1.0+1.0i) 3.0-1.0i) (num-test (- 1.0+1.0i -1.0+1.0i 0) 2.0) (num-test (- 1.0+1.0i -1.0+1.0i 0.0) 2.0) (num-test (- 1.0+1.0i -1.0+1.0i 0.0+1.0i) 2.0-1.0i) (num-test (- 1.0+1.0i -1.0+1.0i 1) 1.0) (num-test (- 1.0+1.0i -1.0+1.0i 1.0) 1.0) (num-test (- 1.0+1.0i -1.0+1.0i 1.0+1.0i) 1.0-1.0i) (num-test (- 1.0+1.0i -1.0+1.0i 1.234+1.234i) 0.766-1.234i) (num-test (- 1.0+1.0i -1.0+1.0i 1/1) 1.0) (num-test (- 1.0+1.0i -1.0+1.0i 123.4) -121.4) (num-test (- 1.0+1.0i -1.0+1.0i 1234) -1232.0) (num-test (- 1.0+1.0i -1.0+1.0i 1234/11) -110.18181818181819) (num-test (- 1.0+1.0i -1.0+1.0i) 2.0) (num-test (- 1.0+1.0i 0 -1.0+1.0i) 2.0) (num-test (- 1.0+1.0i 0 0) 1.0+1.0i) (num-test (- 1.0+1.0i 0 0.0) 1.0+1.0i) (num-test (- 1.0+1.0i 0 0.0+1.0i) 1.0) (num-test (- 1.0+1.0i 0 1) 0.0+1.0i) (num-test (- 1.0+1.0i 0 1.0) 0.0+1.0i) (num-test (- 1.0+1.0i 0 1.0+1.0i) 0.0) (num-test (- 1.0+1.0i 0 1.234+1.234i) -0.234-0.234i) (num-test (- 1.0+1.0i 0 1/1) 0.0+1.0i) (num-test (- 1.0+1.0i 0 123.4) -122.4+1.0i) (num-test (- 1.0+1.0i 0 1234) -1233.0+1.0i) (num-test (- 1.0+1.0i 0 1234/11) -111.18181818181819+1.0i) (num-test (- 1.0+1.0i 0) 1.0+1.0i) (num-test (- 1.0+1.0i 0.0 -1.0+1.0i) 2.0) (num-test (- 1.0+1.0i 0.0 0) 1.0+1.0i) (num-test (- 1.0+1.0i 0.0 0.0) 1.0+1.0i) (num-test (- 1.0+1.0i 0.0 0.0+1.0i) 1.0) (num-test (- 1.0+1.0i 0.0 1) 0.0+1.0i) (num-test (- 1.0+1.0i 0.0 1.0) 0.0+1.0i) (num-test (- 1.0+1.0i 0.0 1.0+1.0i) 0.0) (num-test (- 1.0+1.0i 0.0 1.234+1.234i) -0.234-0.234i) (num-test (- 1.0+1.0i 0.0 1/1) 0.0+1.0i) (num-test (- 1.0+1.0i 0.0 123.4) -122.4+1.0i) (num-test (- 1.0+1.0i 0.0 1234) -1233.0+1.0i) (num-test (- 1.0+1.0i 0.0 1234/11) -111.18181818181819+1.0i) (num-test (- 1.0+1.0i 0.0) 1.0+1.0i) (num-test (- 1.0+1.0i 0.0+1.0i -1.0+1.0i) 2.0-1.0i) (num-test (- 1.0+1.0i 0.0+1.0i 0) 1.0) (num-test (- 1.0+1.0i 0.0+1.0i 0.0) 1.0) (num-test (- 1.0+1.0i 0.0+1.0i 0.0+1.0i) 1.0-1.0i) (num-test (- 1.0+1.0i 0.0+1.0i 1) 0.0) (num-test (- 1.0+1.0i 0.0+1.0i 1.0) 0.0) (num-test (- 1.0+1.0i 0.0+1.0i 1.0+1.0i) 0.0-1.0i) (num-test (- 1.0+1.0i 0.0+1.0i 1.234+1.234i) -0.234-1.234i) (num-test (- 1.0+1.0i 0.0+1.0i 1/1) 0.0) (num-test (- 1.0+1.0i 0.0+1.0i 123.4) -122.4) (num-test (- 1.0+1.0i 0.0+1.0i 1234) -1233.0) (num-test (- 1.0+1.0i 0.0+1.0i 1234/11) -111.18181818181819) (num-test (- 1.0+1.0i 0.0+1.0i) 1.0) (num-test (- 1.0+1.0i 1 -1.0+1.0i) 1.0) (num-test (- 1.0+1.0i 1 0) 0.0+1.0i) (num-test (- 1.0+1.0i 1 0.0) 0.0+1.0i) (num-test (- 1.0+1.0i 1 0.0+1.0i) 0.0) (num-test (- 1.0+1.0i 1 1) -1.0+1.0i) (num-test (- 1.0+1.0i 1 1.0) -1.0+1.0i) (num-test (- 1.0+1.0i 1 1.0+1.0i) -1.0) (num-test (- 1.0+1.0i 1 1.234+1.234i) -1.234-0.234i) (num-test (- 1.0+1.0i 1 1/1) -1.0+1.0i) (num-test (- 1.0+1.0i 1 123.4) -123.4+1.0i) (num-test (- 1.0+1.0i 1 1234) -1234.0+1.0i) (num-test (- 1.0+1.0i 1 1234/11) -112.18181818181819+1.0i) (num-test (- 1.0+1.0i 1) 0.0+1.0i) (num-test (- 1.0+1.0i 1.0 -1.0+1.0i) 1.0) (num-test (- 1.0+1.0i 1.0 0) 0.0+1.0i) (num-test (- 1.0+1.0i 1.0 0.0) 0.0+1.0i) (num-test (- 1.0+1.0i 1.0 0.0+1.0i) 0.0) (num-test (- 1.0+1.0i 1.0 1) -1.0+1.0i) (num-test (- 1.0+1.0i 1.0 1.0) -1.0+1.0i) (num-test (- 1.0+1.0i 1.0 1.0+1.0i) -1.0) (num-test (- 1.0+1.0i 1.0 1.234+1.234i) -1.234-0.234i) (num-test (- 1.0+1.0i 1.0 1/1) -1.0+1.0i) (num-test (- 1.0+1.0i 1.0 123.4) -123.4+1.0i) (num-test (- 1.0+1.0i 1.0 1234) -1234.0+1.0i) (num-test (- 1.0+1.0i 1.0 1234/11) -112.18181818181819+1.0i) (num-test (- 1.0+1.0i 1.0) 0.0+1.0i) (num-test (- 1.0+1.0i 1.0+1.0i -1.0+1.0i) 1.0-1.0i) (num-test (- 1.0+1.0i 1.0+1.0i 0) 0.0) (num-test (- 1.0+1.0i 1.0+1.0i 0.0) 0.0) (num-test (- 1.0+1.0i 1.0+1.0i 0.0+1.0i) 0.0-1.0i) (num-test (- 1.0+1.0i 1.0+1.0i 1) -1.0) (num-test (- 1.0+1.0i 1.0+1.0i 1.0) -1.0) (num-test (- 1.0+1.0i 1.0+1.0i 1.0+1.0i) -1.0-1.0i) (num-test (- 1.0+1.0i 1.0+1.0i 1.234+1.234i) -1.234-1.234i) (num-test (- 1.0+1.0i 1.0+1.0i 1/1) -1.0) (num-test (- 1.0+1.0i 1.0+1.0i 123.4) -123.4) (num-test (- 1.0+1.0i 1.0+1.0i 1234) -1234.0) (num-test (- 1.0+1.0i 1.0+1.0i 1234/11) -112.18181818181819) (num-test (- 1.0+1.0i 1.0+1.0i) 0.0) (num-test (- 1.0+1.0i 1.234+1.234i -1.0+1.0i) 0.766-1.234i) (num-test (- 1.0+1.0i 1.234+1.234i 0) -0.234-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i 0.0) -0.234-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i 0.0+1.0i) -0.234-1.234i) (num-test (- 1.0+1.0i 1.234+1.234i 1) -1.234-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i 1.0) -1.234-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i 1.0+1.0i) -1.234-1.234i) (num-test (- 1.0+1.0i 1.234+1.234i 1.234+1.234i) -1.468-1.468i) (num-test (- 1.0+1.0i 1.234+1.234i 1/1) -1.234-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i 123.4) -123.634-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i 1234) -1234.23399999999992-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i 1234/11) -112.41581818181818-0.234i) (num-test (- 1.0+1.0i 1.234+1.234i) -0.234-0.234i) (num-test (- 1.0+1.0i 1/1 -1.0+1.0i) 1.0) (num-test (- 1.0+1.0i 123.4 -1.0+1.0i) -121.4) (num-test (- 1.0+1.0i 123.4 0) -122.4+1.0i) (num-test (- 1.0+1.0i 123.4 0.0) -122.4+1.0i) (num-test (- 1.0+1.0i 123.4 0.0+1.0i) -122.4) (num-test (- 1.0+1.0i 123.4 1) -123.4+1.0i) (num-test (- 1.0+1.0i 123.4 1.0) -123.4+1.0i) (num-test (- 1.0+1.0i 123.4 1.0+1.0i) -123.4) (num-test (- 1.0+1.0i 123.4 1.234+1.234i) -123.634-0.234i) (num-test (- 1.0+1.0i 123.4 1/1) -123.4+1.0i) (num-test (- 1.0+1.0i 123.4 123.4) -245.8+1.0i) (num-test (- 1.0+1.0i 123.4 1234) -1356.4+1.0i) (num-test (- 1.0+1.0i 123.4 1234/11) -234.58181818181819+1.0i) (num-test (- 1.0+1.0i 123.4) -122.4+1.0i) (num-test (- 1.0+1.0i 1234 -1.0+1.0i) -1232.0) (num-test (- 1.0+1.0i 1234 0) -1233.0+1.0i) (num-test (- 1.0+1.0i 1234 0.0) -1233.0+1.0i) (num-test (- 1.0+1.0i 1234 0.0+1.0i) -1233.0) (num-test (- 1.0+1.0i 1234 1) -1234.0+1.0i) (num-test (- 1.0+1.0i 1234 1.0) -1234.0+1.0i) (num-test (- 1.0+1.0i 1234 1.0+1.0i) -1234.0) (num-test (- 1.0+1.0i 1234 1.234+1.234i) -1234.23399999999992-0.234i) (num-test (- 1.0+1.0i 1234 1/1) -1234.0+1.0i) (num-test (- 1.0+1.0i 1234 123.4) -1356.4+1.0i) (num-test (- 1.0+1.0i 1234 1234) -2467.0+1.0i) (num-test (- 1.0+1.0i 1234 1234/11) -1345.18181818181824+1.0i) (num-test (- 1.0+1.0i 1234) -1233.0+1.0i) (num-test (- 1.0+1.0i 1234/11 -1.0+1.0i) -110.18181818181819) (num-test (- 1.0+1.0i 1234/11 0) -111.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 0.0) -111.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 0.0+1.0i) -111.18181818181819) (num-test (- 1.0+1.0i 1234/11 1) -112.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 1.0) -112.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 1.0+1.0i) -112.18181818181819) (num-test (- 1.0+1.0i 1234/11 1.234+1.234i) -112.41581818181818-0.234i) (num-test (- 1.0+1.0i 1234/11 1/1) -112.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 123.4) -234.58181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 1234) -1345.18181818181824+1.0i) (num-test (- 1.0+1.0i 1234/11 1234/11) -223.36363636363637+1.0i) (num-test (- 1.0+1.0i 1234/11) -111.18181818181819+1.0i) (num-test (- 1.0+1.0i) -1.0-1.0i) (num-test (- 1.234+1.234i -1.0+1.0i) 2.234+0.234i) (num-test (- 1.234+1.234i 0) 1.234+1.234i) (num-test (- 1.234+1.234i 0.0) 1.234+1.234i) (num-test (- 1.234+1.234i 0.0+1.0i) 1.234+0.234i) (num-test (- 1.234+1.234i 1) 0.234+1.234i) (num-test (- 1.234+1.234i 1.0) 0.234+1.234i) (num-test (- 1.234+1.234i 1.0+1.0i) 0.234+0.234i) (num-test (- 1.234+1.234i 1.234+1.234i) 0.0) (num-test (- 1.234+1.234i 1/1) 0.234+1.234i) (num-test (- 1.234+1.234i 123.4) -122.16600000000001+1.234i) (num-test (- 1.234+1.234i 1234) -1232.766+1.234i) (num-test (- 1.234+1.234i 1234/11) -110.94781818181818+1.234i) (num-test (- 10) -10) (num-test (- 10/3) -10/3) (num-test (- 123.4 -1.0+1.0i -1.0+1.0i) 125.4-2.0i) (num-test (- 123.4 -1.0+1.0i 0) 124.4-1.0i) (num-test (- 123.4 -1.0+1.0i 0.0) 124.4-1.0i) (num-test (- 123.4 -1.0+1.0i 0.0+1.0i) 124.4-2.0i) (num-test (- 123.4 -1.0+1.0i 1) 123.4-1.0i) (num-test (- 123.4 -1.0+1.0i 1.0) 123.4-1.0i) (num-test (- 123.4 -1.0+1.0i 1.0+1.0i) 123.4-2.0i) (num-test (- 123.4 -1.0+1.0i 1.234+1.234i) 123.16600000000001-2.234i) (num-test (- 123.4 -1.0+1.0i 1/1) 123.4-1.0i) (num-test (- 123.4 -1.0+1.0i 123.4) 1.0-1.0i) (num-test (- 123.4 -1.0+1.0i 1234) -1109.59999999999991-1.0i) (num-test (- 123.4 -1.0+1.0i 1234/11) 12.21818181818182-1.0i) (num-test (- 123.4 -1.0+1.0i) 124.4-1.0i) (num-test (- 123.4 0 -1.0+1.0i) 124.4-1.0i) (num-test (- 123.4 0 0) 123.4) (num-test (- 123.4 0 0.0) 123.4) (num-test (- 123.4 0 0.0+1.0i) 123.4-1.0i) (num-test (- 123.4 0 1) 122.4) (num-test (- 123.4 0 1.0) 122.4) (num-test (- 123.4 0 1.0+1.0i) 122.4-1.0i) (num-test (- 123.4 0 1.234+1.234i) 122.16600000000001-1.234i) (num-test (- 123.4 0 1/1) 122.4) (num-test (- 123.4 0 123.4) 0.0) (num-test (- 123.4 0 1234) -1110.59999999999991) (num-test (- 123.4 0 1234/11) 11.21818181818182) (num-test (- 123.4 0) 123.4) (num-test (- 123.4 0.0 -1.0+1.0i) 124.4-1.0i) (num-test (- 123.4 0.0 0) 123.4) (num-test (- 123.4 0.0 0.0) 123.4) (num-test (- 123.4 0.0 0.0+1.0i) 123.4-1.0i) (num-test (- 123.4 0.0 1) 122.4) (num-test (- 123.4 0.0 1.0) 122.4) (num-test (- 123.4 0.0 1.0+1.0i) 122.4-1.0i) (num-test (- 123.4 0.0 1.234+1.234i) 122.16600000000001-1.234i) (num-test (- 123.4 0.0 1/1) 122.4) (num-test (- 123.4 0.0 123.4) 0.0) (num-test (- 123.4 0.0 1234) -1110.59999999999991) (num-test (- 123.4 0.0 1234/11) 11.21818181818182) (num-test (- 123.4 0.0) 123.4) (num-test (- 123.4 0.0+1.0i -1.0+1.0i) 124.4-2.0i) (num-test (- 123.4 0.0+1.0i 0) 123.4-1.0i) (num-test (- 123.4 0.0+1.0i 0.0) 123.4-1.0i) (num-test (- 123.4 0.0+1.0i 0.0+1.0i) 123.4-2.0i) (num-test (- 123.4 0.0+1.0i 1) 122.4-1.0i) (num-test (- 123.4 0.0+1.0i 1.0) 122.4-1.0i) (num-test (- 123.4 0.0+1.0i 1.0+1.0i) 122.4-2.0i) (num-test (- 123.4 0.0+1.0i 1.234+1.234i) 122.16600000000001-2.234i) (num-test (- 123.4 0.0+1.0i 1/1) 122.4-1.0i) (num-test (- 123.4 0.0+1.0i 123.4) 0.0-1.0i) (num-test (- 123.4 0.0+1.0i 1234) -1110.59999999999991-1.0i) (num-test (- 123.4 0.0+1.0i 1234/11) 11.21818181818182-1.0i) (num-test (- 123.4 0.0+1.0i) 123.4-1.0i) (num-test (- 123.4 1 -1.0+1.0i) 123.4-1.0i) (num-test (- 123.4 1 0) 122.4) (num-test (- 123.4 1 0.0) 122.4) (num-test (- 123.4 1 0.0+1.0i) 122.4-1.0i) (num-test (- 123.4 1 1) 121.4) (num-test (- 123.4 1 1.0) 121.4) (num-test (- 123.4 1 1.0+1.0i) 121.4-1.0i) (num-test (- 123.4 1 1.234+1.234i) 121.16600000000001-1.234i) (num-test (- 123.4 1 1/1) 121.4) (num-test (- 123.4 1 123.4) -1.0) (num-test (- 123.4 1 1234) -1111.59999999999991) (num-test (- 123.4 1 1234/11) 10.21818181818182) (num-test (- 123.4 1) 122.4) (num-test (- 123.4 1.0 -1.0+1.0i) 123.4-1.0i) (num-test (- 123.4 1.0 0) 122.4) (num-test (- 123.4 1.0 0.0) 122.4) (num-test (- 123.4 1.0 0.0+1.0i) 122.4-1.0i) (num-test (- 123.4 1.0 1) 121.4) (num-test (- 123.4 1.0 1.0) 121.4) (num-test (- 123.4 1.0 1.0+1.0i) 121.4-1.0i) (num-test (- 123.4 1.0 1.234+1.234i) 121.16600000000001-1.234i) (num-test (- 123.4 1.0 1/1) 121.4) (num-test (- 123.4 1.0 123.4) -1.0) (num-test (- 123.4 1.0 1234) -1111.59999999999991) (num-test (- 123.4 1.0 1234/11) 10.21818181818182) (num-test (- 123.4 1.0) 122.4) (num-test (- 123.4 1.0+1.0i -1.0+1.0i) 123.4-2.0i) (num-test (- 123.4 1.0+1.0i 0) 122.4-1.0i) (num-test (- 123.4 1.0+1.0i 0.0) 122.4-1.0i) (num-test (- 123.4 1.0+1.0i 0.0+1.0i) 122.4-2.0i) (num-test (- 123.4 1.0+1.0i 1) 121.4-1.0i) (num-test (- 123.4 1.0+1.0i 1.0) 121.4-1.0i) (num-test (- 123.4 1.0+1.0i 1.0+1.0i) 121.4-2.0i) (num-test (- 123.4 1.0+1.0i 1.234+1.234i) 121.16600000000001-2.234i) (num-test (- 123.4 1.0+1.0i 1/1) 121.4-1.0i) (num-test (- 123.4 1.0+1.0i 123.4) -1.0-1.0i) (num-test (- 123.4 1.0+1.0i 1234) -1111.59999999999991-1.0i) (num-test (- 123.4 1.0+1.0i 1234/11) 10.21818181818182-1.0i) (num-test (- 123.4 1.0+1.0i) 122.4-1.0i) (num-test (- 123.4 1.234+1.234i -1.0+1.0i) 123.16600000000001-2.234i) (num-test (- 123.4 1.234+1.234i 0) 122.16600000000001-1.234i) (num-test (- 123.4 1.234+1.234i 0.0) 122.16600000000001-1.234i) (num-test (- 123.4 1.234+1.234i 0.0+1.0i) 122.16600000000001-2.234i) (num-test (- 123.4 1.234+1.234i 1) 121.16600000000001-1.234i) (num-test (- 123.4 1.234+1.234i 1.0) 121.16600000000001-1.234i) (num-test (- 123.4 1.234+1.234i 1.0+1.0i) 121.16600000000001-2.234i) (num-test (- 123.4 1.234+1.234i 1.234+1.234i) 120.93200000000002-2.468i) (num-test (- 123.4 1.234+1.234i 1/1) 121.16600000000001-1.234i) (num-test (- 123.4 1.234+1.234i 123.4) -1.23399999999999-1.234i) (num-test (- 123.4 1.234+1.234i 1234) -1111.83400000000006-1.234i) (num-test (- 123.4 1.234+1.234i 1234/11) 9.98418181818183-1.234i) (num-test (- 123.4 1.234+1.234i) 122.16600000000001-1.234i) (num-test (- 123.4 1/1 -1.0+1.0i) 123.4-1.0i) (num-test (- 123.4 123.4 -1.0+1.0i) 1.0-1.0i) (num-test (- 123.4 123.4 0) 0.0) (num-test (- 123.4 123.4 0.0) 0.0) (num-test (- 123.4 123.4 0.0+1.0i) 0.0-1.0i) (num-test (- 123.4 123.4 1) -1.0) (num-test (- 123.4 123.4 1.0) -1.0) (num-test (- 123.4 123.4 1.0+1.0i) -1.0-1.0i) (num-test (- 123.4 123.4 1.234+1.234i) -1.234-1.234i) (num-test (- 123.4 123.4 1/1) -1.0) (num-test (- 123.4 123.4 123.4) -123.4) (num-test (- 123.4 123.4 1234) -1234.0) (num-test (- 123.4 123.4 1234/11) -112.18181818181819) (num-test (- 123.4 123.4) 0.0) (num-test (- 123.4 1234 -1.0+1.0i) -1109.59999999999991-1.0i) (num-test (- 123.4 1234 0) -1110.59999999999991) (num-test (- 123.4 1234 0.0) -1110.59999999999991) (num-test (- 123.4 1234 0.0+1.0i) -1110.59999999999991-1.0i) (num-test (- 123.4 1234 1) -1111.59999999999991) (num-test (- 123.4 1234 1.0) -1111.59999999999991) (num-test (- 123.4 1234 1.0+1.0i) -1111.59999999999991-1.0i) (num-test (- 123.4 1234 1.234+1.234i) -1111.83399999999983-1.234i) (num-test (- 123.4 1234 1/1) -1111.59999999999991) (num-test (- 123.4 1234 123.4) -1234.0) (num-test (- 123.4 1234 1234) -2344.59999999999991) (num-test (- 123.4 1234 1234/11) -1222.78181818181815) (num-test (- 123.4 1234) -1110.59999999999991) (num-test (- 123.4 1234/11 -1.0+1.0i) 12.21818181818182-1.0i) (num-test (- 123.4 1234/11 0) 11.21818181818182) (num-test (- 123.4 1234/11 0.0) 11.21818181818182) (num-test (- 123.4 1234/11 0.0+1.0i) 11.21818181818182-1.0i) (num-test (- 123.4 1234/11 1) 10.21818181818182) (num-test (- 123.4 1234/11 1.0) 10.21818181818182) (num-test (- 123.4 1234/11 1.0+1.0i) 10.21818181818182-1.0i) (num-test (- 123.4 1234/11 1.234+1.234i) 9.98418181818182-1.234i) (num-test (- 123.4 1234/11 1/1) 10.21818181818182) (num-test (- 123.4 1234/11 123.4) -112.18181818181819) (num-test (- 123.4 1234/11 1234) -1222.78181818181815) (num-test (- 123.4 1234/11 1234/11) -100.96363636363635) (num-test (- 123.4 1234/11) 11.21818181818182) (num-test (- 1234 -1.0+1.0i) 1235.0-1.0i) (num-test (- 1234 0) 1234) (num-test (- 1234 0.0) 1234.0) (num-test (- 1234 0.0+1.0i) 1234.0-1.0i) (num-test (- 1234 1) 1233) (num-test (- 1234 1.0) 1233.0) (num-test (- 1234 1.0+1.0i) 1233.0-1.0i) (num-test (- 1234 1.234+1.234i) 1232.766-1.234i) (num-test (- 1234 1/1) 1233) (num-test (- 1234 123.4) 1110.59999999999991) (num-test (- 1234 1234) 0) (num-test (- 1234 1234/11) 12340/11) (num-test (- 1234/11 -1.0+1.0i) 113.18181818181819-1.0i) (num-test (- 1234/11 0) 1234/11) (num-test (- 1234/11 0.0) 112.18181818181819) (num-test (- 1234/11 0.0+1.0i) 112.18181818181819-1.0i) (num-test (- 1234/11 1) 1223/11) (num-test (- 1234/11 1.0) 111.18181818181819) (num-test (- 1234/11 1.0+1.0i) 111.18181818181819-1.0i) (num-test (- 1234/11 1.234+1.234i) 110.94781818181819-1.234i) (num-test (- 1234/11 1/1) 1223/11) (num-test (- 1234/11 123.4) -11.21818181818182) (num-test (- 1234/11 1234) -12340/11) (num-test (- 1234/11 1234/11) 0) (num-test (- 1234000000) -1234000000) (num-test (- 1234000000.0) -1234000000.0) (num-test (- 1234000000.0+2.71828182845905i) -1234000000.0-2.71828182845905i) (num-test (- 1234000000.0-2.71828182845905i) -1234000000.0+2.71828182845905i) (num-test (- 1234000000/10) -1234000000/10) (num-test (- 2) -2) (num-test (- 2.71828182845905) -2.71828182845905) (num-test (- 2.71828182845905+3.14159265358979i) -2.71828182845905-3.14159265358979i) (num-test (- 2.71828182845905-3.14159265358979i) -2.71828182845905+3.14159265358979i) (num-test (- 2/2) -2/2) (num-test (- 362880) -362880) (num-test (- 362880/1234) -362880/1234) (num-test (- 0+6i 1/4 0.5 7) -7.75+6.0i) (num-test (- 1/2 0.5e0) 0.0e0) (num-test (- 100000000000000.0 100000000000001.0) -1.0) (num-test (- 1000000000000000000/3 1000000000000000001/3) -1/3) (num-test (- 3 0 3 5 -6) 1) (num-test (- 3 4) -1 ) (num-test (- 3) -3 ) #; (for-each-permutation (lambda (a b c d) (if (not (= (- a b c d) (- a (+ b c d)))) (format #t "~A: ~A != ~A?~%" (port-line-number) (- a b c d) (- a (+ b c d))))) '(1 1/2 0.5 1+i)) #; (for-each-permutation (lambda (a b c d e f g h) (if (not (= (- a b c d e f g h) (+ a (- (+ b c d e f g h))))) (format #t "~A: (- ~A ~A ~A ~A ~A ~A ~A ~A) -> ~A?~%" (port-line-number) a b c d e f g h (- a b c d e f g h)))) '(1 1/2 0.5 1+i -1/2 -1 -0.5 -1-i)) (num-test (- -1.797693134862315699999999999999999999998E308 -9223372036854775808) -1.797693134862315699999999999999999999998E308) (num-test (- -9223372036854775808 -9223372036854775808) 0) (num-test (- -9223372036854775808 5.551115123125783999999999999999999999984E-17) -9.223372036854775808000000000000000055511E18) (num-test (- -9223372036854775808 9223372036854775807 -9223372036854775808) -9223372036854775807) (num-test (- -9223372036854775808) 9223372036854775808) (num-test (- 1.110223024625156799999999999999999999997E-16 -9223372036854775808) 9.223372036854775808000000000000000111022E18) (num-test (- 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) 5.545694112263356477829399999999999999977E-17) (num-test (- 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) -5.551115123125783999999999999999999999984E-17) (num-test (- 9223372036854775807 9223372036854775807) 0) (num-test (- .(1.1)) -1.1) (num-test (- 1. .()) -1.0) (num-test (- 1/9223372036854775807 1/9223372036854775807) 0) (num-test (- 1/98947 2/97499 3/76847) -36656755224/741360956847391) (num-test (- 500009/500029 500057/500041) -18001284/250035001189) (num-test (- -0.011326914400453525E0 -0.6668141757661364E0) 6.554872613656828749999999999999999999976E-1) (num-test (- -0.46185382764946437E0 0.7488210697846337E0) -1.210674897434098070000000000000000000001E0) (num-test (- -0.35834120541234993E0 -0.30919976341834987E0) -4.914144199400005999999999999999999999972E-2) (num-test (- 0.44705025064976966E0 -0.9277893553610955E0) 1.374839606010865160000000000000000000002E0) (num-test (- -0.47647537517067917E0 0.29158058381073604E0) -7.680559589814152099999999999999999999997E-1) (num-test (- -0.021697999002707746E0 0.1779871773524142E0) -1.996851763551219460000000000000000000001E-1) (num-test (- 0.4179484378019861E0 9.9990307469939E9) -9.999030746575951861270279525000000000019E9) (num-test (- -0.7475415524823718E0 1.3993312799214797E9) -1.399331280669021252482371799999999999998E9) (num-test (- 0.2519442433861928E0 -6.699632771871848E9) 6.699632772123792243386192799999999999993E9) (num-test (- -0.5124988631497671E0 2.7959244812290273E9) -2.795924481741526163149767100000000000009E9) (num-test (- -0.6870193827604301E0 4.851102442573468E9) -4.851102443260487591073418381249999999995E9) (num-test (- 0.7609656780357723E0 7.481252865855436E8) -7.481252858245779544715519187499999999991E8) (num-test (- -0.6301276042170191E0 -7.099314875214215E-11) -6.301276041460259512478578500000000000002E-1) (num-test (- -0.4139053484357884E0 -2.897413526398709E-11) -4.139053484068142647360129100000000000006E-1) (num-test (- -0.6944623060197281E0 -3.291569879873739E-11) -6.94462305986812401201262610000000000001E-1) (num-test (- -0.2057822500703933E0 3.6505182026159854E-11) -2.057822501068984820261598540000000000004E-1) (num-test (- -0.8792706674467908E0 8.094527736950817E-11) -8.792706675277360773695081699999999999978E-1) (num-test (- -0.6888184243601332E0 9.127622796988807E-11) -6.888184244514094279698880700000000000006E-1) (num-test (- -0.980711030497252E0 8.752272461345245E19) -8.752272461345245000098071103049725200009E19) (num-test (- 0.8035082489836539E0 -3.903355151264917E19) 3.90335515126491700008035082489836539001E19) (num-test (- -0.7537841372394811E0 -5.879942447417834E19) 5.879942447417833999924621586276051889998E19) (num-test (- -0.6877475951546845E0 -2.3972266191169642E19) 2.397226619116964199931225240484531550001E19) (num-test (- -0.43128282112433525E0 -5.422824998003439E19) 5.422824998003438999956871717887566474998E19) (num-test (- 0.29538116818276694E0 1.1291858990580939E19) -1.129185899058093899970461883181723306002E19) (num-test (- 0.9166687388673976E0 6.395175407123937E-21) 9.166687388673975999936048245928760629984E-1) (num-test (- 0.41840538498193025E0 -2.6655662412599155E-21) 4.18405384981930250002665566241259915501E-1) (num-test (- -0.8036940092501853E0 6.7473779576832565E-21) -8.036940092501853000067473779576832565009E-1) (num-test (- 0.8555054025209989E0 -7.939970418096797E-21) 8.55505402520998900007939970418096796999E-1) (num-test (- 0.3365495704567003E0 8.694519827555395E-21) 3.365495704567002999913054801724446050001E-1) (num-test (- -0.7430322011471231E0 7.430332379292914E-22) -7.430322011471231000007430332379292914019E-1) (num-test (- 5.102372414731216E9 -0.5073635765350494E0) 5.102372415238580007199111899999999999994E9) (num-test (- 4.629827365822252E9 0.6534380055543355E0) 4.629827365168814268005234812499999999993E9) (num-test (- 7.218192507117569E9 0.9781542046565127E0) 7.21819250613941476507004979999999999999E9) (num-test (- 6.595760326622413E8 0.7339510561932947E0) 6.595760319282902834902380148437500000014E8) (num-test (- 7.191166637703489E9 0.80792475493853E0) 7.191166636895564548650337188817616151937E9) (num-test (- -7.95531405213956E9 0.5353636841430115E0) -7.955314052674923429931585718750000000006E9) (num-test (- 5.438904545553836E8 6.533536518165114E9) -5.98964606360973083972930908203125E9) (num-test (- -7.389650313101625E8 -9.983943153365381E9) 9.244978122055218499999999999999999999979E9) (num-test (- 8.364404619492165E9 -7.600563055115287E9) 1.596496767460745161181640624999999999997E10) (num-test (- 2.070813748323649E9 6.421052769114957E9) -4.350239020791307926177978515625E9) (num-test (- -2.8555256820439434E9 -3.4077342921686625E8) -2.514752252827077150000000000000000000005E9) (num-test (- 9.147878229420991E8 8.439982790150545E9) -7.525194967208446025848388671875E9) (num-test (- -4.315772980070098E9 -6.48869466068404E-11) -4.315772980070097999935113053393159599999E9) (num-test (- -3.5186299785635023E9 3.990046539849716E-11) -3.518629978563502300039900465398497159997E9) (num-test (- 2.5645532837267537E9 8.566645694205622E-13) 2.564553283726753699999143335430579437802E9) (num-test (- 6.145110896031829E9 -9.242734002954773E-11) 6.145110896031828880402485933779547730013E9) (num-test (- -6.6836855975624E9 9.117930361283473E-11) -6.683685597562399864287956647362834729995E9) (num-test (- -1.7472828462085754E8 -5.125838712019503E-11) -1.747282846208575399487416128798049699998E8) (num-test (- 9.05675399397055E9 9.086705650502484E19) -9.0867056495968086006029449462890625E19) (num-test (- -5.834806594586836E9 9.981576053842906E19) -9.981576054426386659458683599999999999999E19) (num-test (- 3.047010922754272E9 1.1715352070471352E19) -1.171535206742434107724572801589965820312E19) (num-test (- 7.294295638574767E9 2.845702947515113E19) -2.845702946785683436142523288726806640625E19) (num-test (- 8.264143132493019E9 -1.6322956072452289E19) 1.632295608071643213249301910400390625E19) (num-test (- -9.597823287256088E9 3.954126758718671E19) -3.95412675967845332872560880000000000001E19) (num-test (- 3.229389511771705E9 -4.329831377266493E-21) 3.229389511771705150604248046879329831377E9) (num-test (- 6.897089200279753E9 2.4428208790287663E-21) 6.897089200279752731323242187497557179116E9) (num-test (- 2.3579775300187545E9 4.729400988996349E-21) 2.357977530018754499999999999995270599018E9) (num-test (- 1.6718929117460046E9 5.8162277016717065E-21) 1.671892911746004599999999999994183772301E9) (num-test (- 2.537177500868296E9 1.4856605280697543E-21) 2.537177500868296146392822265623514339469E9) (num-test (- 6.117674696930935E9 -1.6187214719634357E-21) 6.117674696930934906005859375001618721474E9) (num-test (- 4.1877888304549216E-11 -0.06920550501017497E0) 6.920550505205285830454921600000000000007E-2) (num-test (- 9.61054846124015E-11 0.885309193732889E0) -8.85309193636783481398417376384291797877E-1) (num-test (- 2.5559085051828467E-11 -0.8112181469812297E0) 8.112181470067887850518284670000000000006E-1) (num-test (- -1.4549570208293283E-12 -0.5049325945871657E0) 5.049325945857107429791706717000000000005E-1) (num-test (- -7.091628047158497E-11 0.61946884965934E0) -6.194688497302562955729347334266968816526E-1) (num-test (- 2.877466355456826E-11 0.4496491857374E0) -4.49649185708625317645189543551619872451E-1) (num-test (- 1.3041612488449928E-12 5.408018587130755E9) -5.40801858713075542449820755750115500719E9) (num-test (- -5.379752339715717E-11 -4.009594691514288E9) 4.009594691514287999946202476602842829998E9) (num-test (- 7.023042501342336E-12 -3.4153434285746374E9) 3.415343428574637400007023042501342336004E9) (num-test (- 6.968174934871611E-11 4.713087404332662E9) -4.713087404332661628653462781901283890003E9) (num-test (- -5.153562653896506E-11 -8.44732228013254E8) 8.447322280132540463885888851797849400006E8) (num-test (- -8.424177457818745E-11 1.6817117809824567E9) -1.681711780982456700084241774578187449998E9) (num-test (- 3.374755984316538E-11 8.893678266883364E-11) -5.518922282566826000000000000000000000009E-11) (num-test (- -8.684123447823306E-11 -7.888825869147879E-11) -7.952975786754269999999999999999999999987E-12) (num-test (- 7.788477523205632E-11 1.741674745286914E-11) 6.046802777918717999999999999999999999988E-11) (num-test (- 6.546622477606044E-11 -4.7719651007530584E-11) 1.131858757835910240000000000000000000001E-10) (num-test (- -1.8595152377503265E-11 5.7288738553553045E-11) -7.588389093105630999999999999999999999984E-11) (num-test (- -8.184033550427558E-11 -8.834399228929296E-11) 6.503656785017380000000000000000000000234E-12) (num-test (- 5.749469292140762E-11 7.493129199779113E19) -7.493129199779112999999999999994250530697E19) (num-test (- -5.2285095120702066E-11 -2.0611179974216552E19) 2.061117997421655199999999999994771490491E19) (num-test (- -8.84727820032067E-11 4.7423077384022024E19) -4.742307738402202400000000000008847278205E19) (num-test (- 3.437676989338625E-11 -3.5368755480277647E19) 3.536875548027764700000000000003437676988E19) (num-test (- 2.2665031619145437E-11 -6.072845659234921E19) 6.072845659234921000000000000002266503153E19) (num-test (- -8.429070146313393E-11 5.134329153614969E18) -5.134329153614969000000000000084290701453E18) (num-test (- -9.009531819191212E-11 2.301790665456671E-22) -9.009531819214229906654566710000000000025E-11) (num-test (- -2.706942469371907E-11 9.282350542107287E-21) -2.706942470300142054210728700000000000001E-11) (num-test (- 5.358266626996117E-11 -4.409057695582885E-22) 5.358266627040207576955828850000000000004E-11) (num-test (- -7.189537285608088E-11 9.569273217393917E-21) -7.189537286565015321739391700000000000027E-11) (num-test (- -4.160295905335358E-11 5.930867524794025E-21) -4.160295905928444752479402499999999999992E-11) (num-test (- 6.7922062777334035E-12 -7.747524338474154E-22) 6.792206278508155933847415400000000000006E-12) (num-test (- -9.038821102045805E19 0.04779131019959271E0) -9.038821102045805000004779131019959271002E19) (num-test (- 2.2020595055495963E19 -0.424631558292516E0) 2.202059505549596300042463155829251600002E19) (num-test (- -8.164003027214308E19 0.6832198147365239E0) -8.164003027214308000068321981473652389997E19) (num-test (- -3.878233560364984E19 -0.28756619113600546E0) -3.878233560364983999971243380886399453999E19) (num-test (- 7.0829003521450525E19 -0.6071548125948544E0) 7.08290035214505250006071548125948544E19) (num-test (- 5.968540808784698E19 0.7674294173432648E0) 5.968540808784697999923257058265673519995E19) (num-test (- -2.2143621795153547E19 -2.443529365769125E9) -2.214362179271001763423087500000000000004E19) (num-test (- -9.77092538926342E18 5.903189771537687E8) -9.770925389853738977153768658638000488281E18) (num-test (- 9.974714452399537E19 -6.980456691485629E9) 9.974714453097582669148562899999999999991E19) (num-test (- 1.7428950527159094E18 3.68843657888816E9) 1.742895049027472821111839771270751953125E18) (num-test (- -1.1094381875350845E19 -7.157723640671709E9) -1.109438186819312135932829100000000000002E19) (num-test (- -3.638795590369631E19 6.9246542750294075E9) -3.638795591062096427502940750000000000005E19) (num-test (- -5.66543282261991E19 -5.1005028153082024E-11) -5.665432822619909999999999999994899497189E19) (num-test (- -3.901527864456216E19 -1.064153465992923E-12) -3.901527864456215999999999999999893584646E19) (num-test (- 1.1477489418879848E19 3.327888063907735E-11) 1.147748941887984799999999999996672111937E19) (num-test (- 3.508978072054437E19 9.238453417997638E-11) 3.508978072054436999999999999990761546584E19) (num-test (- -4.7642024461416964E19 -4.758309941438892E-11) -4.764202446141696399999999999995241690065E19) (num-test (- -8.307715835429606E19 3.313910202186439E-11) -8.307715835429606000000000000003313910214E19) (num-test (- 2.704675010192592E18 -2.6840207147078365E19) 2.9544882157270957E19) (num-test (- -9.860969100714668E18 -4.719594638795429E19) 3.7334977287239622E19) (num-test (- 7.87799781828944E18 -6.657221298850535E19) 7.4450210806794789744E19) (num-test (- -3.3937781740759863E19 4.783805995045389E19) -8.1775841691213753E19) (num-test (- -1.0747572720102216E19 -1.7144708598072445E19) 6.397135877970229E18) (num-test (- 1.3938845733158445E19 5.604369854609131E19) -4.2104852812932865E19) (num-test (- 6.0938348303695315E19 1.1005522580049531E-21) 6.0938348303695315E19) (num-test (- -2.4870844028694925E19 1.5391650322730598E-22) -2.4870844028694925E19) (num-test (- 7.323118607079343E19 6.637280375859432E-21) 7.323118607079343E19) (num-test (- -4.181201584825501E19 4.768935182006663E-21) -4.181201584825501E19) (num-test (- 4.1225910279381205E19 6.117191687463543E-21) 4.1225910279381205E19) (num-test (- 6.438313875980151E17 -1.4883489002691529E-21) 6.438313875980151E17) (num-test (- -4.573961206963222E-21 0.3586300020381973E0) -3.586300020381973000045739612069632220001E-1) (num-test (- 7.74206782371325E-22 0.23168389210368656E0) -2.316838921036865599992257932176286750005E-1) (num-test (- 8.572446613640605E-21 0.6114581963443891E0) -6.114581963443890999914275533863593949978E-1) (num-test (- -8.539467934859551E-21 0.33474735899049E0) -3.347473589904900182020371578704711119401E-1) (num-test (- -5.55811309570968E-21 -0.9637216018651454E0) 9.637216018651453999944418869042903199998E-1) (num-test (- -6.705839413964189E-21 0.3787619614522374E0) -3.787619614522374000067058394139641890005E-1) (num-test (- 1.338539206480238E-22 6.683968625235106E9) -6.683968625235106468200683593749866146082E9) (num-test (- -9.64078167549023E-21 3.291420859310843E9) -3.291420859310842990875244140634640781671E9) (num-test (- -9.26536204591093E-22 2.9839295142529476E8) -2.98392951425294760000000000000926536205E8) (num-test (- -3.647737608953592E-21 6.115300020921433E8) -6.115300020921432971954345703161477376078E8) (num-test (- 1.4069763806331204E-21 -1.183109060480878E9) 1.18310906048087800000000000000140697638E9) (num-test (- -6.0037865798761924E-21 -7.442246743849378E9) 7.442246743849377999999999999993996213425E9) (num-test (- -5.994118986299138E-21 -9.091558282012836E-11) 9.091558281413424101370086199999999999991E-11) (num-test (- 6.969393585974241E-21 3.435352867093995E-11) -3.435352866397055641402575899999999999989E-11) (num-test (- -6.278554484817533E-22 -4.7211920270841604E-11) 4.721192027021374855151824670000000000001E-11) (num-test (- -8.603262886304741E-21 1.7296517702077242E-11) -1.729651771068050488630474100000000000006E-11) (num-test (- 4.104502790901735E-21 -4.8473213720301105E-11) 4.847321372440560779090173499999999999986E-11) (num-test (- -4.449725859444968E-21 -8.944265568403936E-11) 8.944265567958963414055503200000000000002E-11) (num-test (- 4.828216540804827E-21 -1.1712152029346877E19) 1.1712152029346877E19) (num-test (- -5.65034940464881E-21 -9.445303840982011E19) 9.445303840982011E19) (num-test (- -7.24107519738777E-21 2.340578690102746E19) -2.340578690102746E19) (num-test (- 1.7659593956231534E-21 -8.048768257390671E18) 8.048768257390671E18) (num-test (- -3.0538518255248124E-21 8.834631867521575E19) -8.834631867521575E19) (num-test (- 8.57952908388053E-21 -5.730742870111307E19) 5.730742870111307E19) (num-test (- -4.5090103564928485E-21 1.8907114777916313E-21) -6.399721834284479799999999999999999999996E-21) (num-test (- -3.8487625143236447E-22 5.354282198078924E-21) -5.739158449511288470000000000000000000003E-21) (num-test (- 2.6660110440404615E-22 3.833744224501756E-22) -1.167733180461294499999999999999999999996E-22) (num-test (- -7.503762004261027E-22 -9.623906576475644E-21) 8.873530376049541300000000000000000000014E-21) (num-test (- -9.113431042260725E-21 -3.5516521546085545E-21) -5.561778887652170499999999999999999999997E-21) (num-test (- -3.4813735333296525E-21 -2.6602650182385188E-21) -8.211085150911336999999999999999999999942E-22) (num-test (- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99) -4948) (num-test (- -4611686018427387904 4611686018427387906) -9223372036854775810) (num-test (- -9223372036854775800 10) -9223372036854775810) (num-test (- 1/9223372036854775807 1/9223372036854775806) -1/85070591730234615838173535747377725442) (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) -52761146275983172771170709/183561983334767209753061626751) (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981) -543899925850203550003/2756144552405627689570151) (num-test (- 1e40+1e30i 1e40-1e30i) 0+2e30i) (num-test (- 2 12345678901234567890+12345678901234567890i) -12345678901234567888-12345678901234567890i) (num-test (- 500009/500029 500057/500041 500083/500069) -125047255383687283/125034753009582041) (num-test (- 9223372036854775807 -9223372036854775808) 18446744073709551615) (num-test (- 98947 2/97499 76847 4/61981 5/59981) 8010593845541429507/362470312515139) (num-test (- 3872339191937382556 13437882608410293981) -9565543416472911425) (num-test (- 12702320881720530101 13823645380834800545) -1121324499114270444) (num-test (- 10222969257152373972 -3454292165863475982) 13677261423015849954) (num-test (- 591233951053628288 -17639978232337836611) 18231212183391464899) (num-test (- -7878405903223218778 9050739027069287469) -16929144930292506247) (num-test (- 11347120771894057376 8443917396834074370) 2903203375059983006) (num-test (- 7831959259127703467 -257470007821066702597399141202130667973) 257470007821066702605231100461258371440) (num-test (- 1092406341647857980 -325710450166845666190895573961860069495) 325710450166845666191987980303507927475) (num-test (- -4220606126689357919 73461013742902296577411907972196819778) -73461013742902296581632514098886177697) (num-test (- -5112059189225304080 334306213789148650102245018234146620793) -334306213789148650107357077423371924873) (num-test (- 3093346224554776175 -204967241927023874963787190016588249299) 204967241927023874966880536241143025474) (num-test (- -5735747638156472357 -3881750746805128137401544408305666047) 3881750746805128131665796770149193690) (num-test (- 17639095392510638323 13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131453861285495087665017) -13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131436222190102577026694) (num-test (- 16304056910692545233 1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417465834928609990708982) -1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417449530871699298163749) (num-test (- -10347586523508777315 12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173691528917744363375331) -12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173701876504267872152646) (num-test (- 16875252323587344863 -10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527788318592431794213674) 10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527805193844755381558537) (num-test (- 8574302739232756920 2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503759011790017443478716) -2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503750437487278210721796) (num-test (- -17657597319577965851 -470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715357800461845632614015) 470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715340142864526054648164) (num-test (- 11472336850218354926 16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290339231792790773612376) -16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290327759455940555257450) (num-test (- 12682607562584942903 32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884157735553718792115929) -32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884145052946156207173026) (num-test (- 14621880654476679971 -10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579655168106377696154728) 10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579669789987032172834699) (num-test (- -3220156644655019630 -8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543667539444686619670713) 8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543664319288041964651083) (num-test (- 11628988978410243120 21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111014116286675587727714) -21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111002487297697177484594) (num-test (- -15960716439913426281 18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592227795474197104696127) -18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592243756190637018122408) (num-test (- -181065640455671431985325539445069267017 14120143334024043377) -181065640455671431999445682779093310394) (num-test (- -91295299684959299024846233061686623774 6891102275697080803) -91295299684959299031737335337383704577) (num-test (- -252582289949155881579950873916766853744 883304029266526072) -252582289949155881580834177946033379816) (num-test (- -10104159950635417603045689770006558103 17251490913777465304) -10104159950635417620297180683784023407) (num-test (- 288463495341489091297108607960869684860 -16376960611483226267) 288463495341489091313485568572352911127) (num-test (- 204661965092367792468062569536290631004 7774991291341524479) 204661965092367792460287578244949106525) (num-test (- 174559967167400201536723778015754014369 168183438971818617783400303174116396891) 6376528195581583753323474841637617478) (num-test (- -253300708624436983509156598368557395374 -77166863757693227553099778725240875400) -176133844866743755956056819643316519974) (num-test (- -38587765028356074196061530813295290944 5999161273284748726648331130480323187) -44586926301640822922709861943775614131) (num-test (- -236400856885875891058508662756360145662 222191413471626205952456600591947275777) -458592270357502097010965263348307421439) (num-test (- 212937903940173587742882129816769611096 336470165768472077447806282475185249734) -123532261828298489704924152658415638638) (num-test (- -264812595676159375893264580577855253845 -247068943830535581577267897204259299723) -17743651845623794315996683373595954122) (num-test (- -1725732715479127274526681751197327660 -2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500508887739763323997191435566266331339917) 2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500507162007047844869916908884515134012257) (num-test (- -220007189346579184019349894240059989979 9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517057595815179415042385175627374957565803) -9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517277603004525994226404525521615017555782) (num-test (- 139683266109784685815165642637380856544 5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108688202931002414214353708335212597807345) -5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108548519664892629528538542692575216950801) (num-test (- 239160165978290709841254489756277328273 5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464958986304380141364542178714472948085275) -5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464719826138401850654700924224716670757002) (num-test (- 315772704643232632782106484978382006176 -3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184616218582046814434719444842678248982224) 3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184931991286690047067501551327656630988400) (num-test (- 82735713197488344149642668226610301853 -12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097816492579684543651922277865558518876774) 12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097899228292882031996071920533785129178627) (num-test (- 63472235942371758467270296983419551089 -7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656218937984504828452980698439495961392749596) 7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656219001456740770824739165709792944812300685) (num-test (- -284018520801241078671538235859630240269 -5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682401429552174530714298081464588450842581) 5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682117411031373289635626543228728820602312) (num-test (- -171812101820192353275910956459431262142 11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870235074909890698574792562001595287630131) -11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870406887011710890928068472958054718892273) (num-test (- -243638660221338112796448050030955119997 -32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408826226326879491415484319411662301650468948) 32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408825982688219270077371522963612270695348951) (num-test (- -126332081511349770866908261827634312283 31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799809203410103682003414364238243553515261) -31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799935535491615031774281272500071187827544) (num-test (- 219979452670016849533060110266815720199 3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063325766995908926108582896362623757323811) -3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063105787543238909259049836252356941603612) (num-test (- 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493643522748210870974797 -1855792162818946202) 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493645378540373689920999) (num-test (- -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396746566100575461602162 18009081534399282710) -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396764575182109860884872) (num-test (- -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580214088920441698992069 -4827559068742614723) -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580209261361372956377346) (num-test (- 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693871318067007752043113 17597810481352184048) 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693853720256526399859065) (num-test (- -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778775472609306735864748 -3892174127829225880) -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778771580435178906638868) (num-test (- 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676743031117653237018365 -12861394200627120797) 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676755892511853864139162) (num-test (- 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971731015312020770945603825344926844435936044 236396022362585261770052671762207864597) 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971730778915998408360342055292255082228071447) (num-test (- 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903680828294561265828775791256812588754280222 -276673555533799047589626400978981416789) 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903681104968116799627823380883213567735697011) (num-test (- -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565826229169313660087149542130819663319659 -157671440495648010763311068579191828684) -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565668557728818012076386231062240471490975) (num-test (- 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053785280430612875488847226724390758938740 54361107931665215623681874454167019934) 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053730919322681210273223544849936591918806) (num-test (- 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942391817131531474661895913650810587431606 -50508350367572393968128467319633674717) 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942442325481899047055864042118130221106323) (num-test (- 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306794511840379704578900504784165956486985 170502882789371639987361620116696459267) 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306624008957590332938913143164049260027718) (num-test (- -10859007735074693411217019392659638207496329895257318665547454149984863458541990037760564769787816800806064437172810158051442267508476778676439633382657890 -7558060977666720080449823996328496253877735754811271086853901493753796001778345391546991917892931500169890406340928835457635973812901681485438886367096185) -3300946757407973330767195396331141953618594140446047578693552656231067456763644646213572851894885300636174030831881322593806293695575097191000747015561705) (num-test (- 9842028993407961669727766131360795288615020071102475108883839785397865740828387076847892646234215787999498419839351470775471313077046438080666908734795616 8259939762466350877481193620364896193464602165170783019804380181692322874550956777598992104871440502758410340359413403619753571535498118388286469082729503) 1582089230941610792246572510995899095150417905931692089079459603705542866277430299248900541362775285241088079479938067155717741541548319692380439652066113) (num-test (- 3122315115429970622394662815735050825423438028108957393747131991771456957037829402044934484343765915727397519247940959221091465331254497476137639859816450 10737995515603450913722681305571315249864367824351372254572936648132763616823019940208526402092654554035074813865303483747097673960803093638463005072804384) -7615680400173480291328018489836264424440929796242414860825804656361306659785190538163591917748888638307677294617362524526006208629548596162325365212987934) (num-test (- 11618335890332522671268040181306950825004789685088262996478365976802329054158653675768163009290064139158450983598701977173152384425333441365287895694522192 -13130287008197231017935223399369698658354829835061356451363818961959486828237111511740029441613108087354987794332115218978284937263725126538295501305403242) 24748622898529753689203263580676649483359619520149619447842184938761815882395765187508192450903172226513438777930817196151437321689058567903583396999925434) (num-test (- -4829477140897377009195646150061276059814366801005389903693533021027427566117360765323647260121062827801190746646296803957067548167571028717513392985791293 10716557117391614298810040587314742187092120526669273567183969821384063434473189717686678450880765426943205955814024872764413373364846268902370055526485180) -15546034258288991308005686737376018246906487327674663470877502842411491000590550483010325711001828254744396702460321676721480921532417297619883448512276473) (num-test (- 1560421244904974852620371975782132605421448226892487453928759432083522187778803424020804578027100625536441377609275030418285893555753560195716001014786650 -11797558308994912054526619290334311429749533070145154703018977152548370444659962978040151671210413666186432921816690953994784423526183449271023503069393845) 13357979553899886907146991266116444035170981297037642156947736584631892632438766402060956249237514291722874299425965984413070317081937009466739504084180495) (num-test (- -7701347923966912534344428538744620884561375267012102797292378941649984539207353887059064943586048644516121387166836442084007442716291792933061162738380376 5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642478870844024835907350391770605391526921411004262446196112836319091260967898895009427182171643279100998182191816962677328417390867021108292139204864164048286) -5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642486572191948802819884736199144136147805972379529458298910128698032910952438102363314241236586865149642698313204129513770501398309737400085072266026902428662) (num-test (- 9733743430220591762422540139212426729307515492818443460852332805653889275463385649305231919846970974905736816260992940027028218064265519723018527155353151 -29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453255593120138178690189726206775893096279000909079330468718593887702543025737308336025198677457129910473491269839827087491228569718246503140134413881896746751) 29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453265326863568399281952148746915105523008308424572148912179446220508196915012771721674503909376976881448397006656088080431255597936310768659857432409052099902) (num-test (- -276731217243271862683214238489380950428392903790808046630969592255272629537001990355375434170910931115552132394269672247616298060929507021008951190291387 100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150102261744547461816282538319258966892339056695718919291240188920586288417893106046698069355647145603908383687239983874164793005765733782432717429040621674) -100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150378992961790733678965752557748347842767449599509727337871158512841561047430108037053444789818056535023935819634253546412409303826663289453726380230913061) (num-test (- 8505070389896098095621766692413480203366379968950158493268895987250690600795955783113900096527432416791184386061684833478921638080978014176210898461637606 -16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728677459134022062202283647690649100602260948409511070624300011106517649666031530376191755817891213910847547809248990517666613043010292627100428536737652546738) 16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728685964204411958300379269457341514082464314789480020782793280002504900356632326331974869717987741343264338993635052202500091964648373605114604747636114184344) (num-test (- -12618010259109779267590315037969998053964054382853891516547435925972388025118492931596200697357628900783311183940584302426381939302632641549019984810957030 -30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476306906983993748299291616038887011943864441807818857508443930272872365334665976442185494702520760793786640113779099219233665607521784524244604432396247693263) 30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476294288973734638520024025723849041945810477753436003616927382836946392946640857949253898501823403164885856802595158634931239225582481891603055412411436736233) (num-test (- 793528769616879938852241178439496352527042950647521648629732169156958768358523029837406526207126598190786120139491813624819360632811627576064199559812277 -7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323018004882611048769247228828875493680284766874334247375868318795940759082324831733175858991629741478124633015067484305547002438816473086042218906532116413) 7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323811533652227928708099470007314990032811809824981769024498050965097717850683354763013265517836868076315419135206976119171821799449284713618283106091928690) (num-test (- 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554199017672360091721648 9164115638960783470) 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554189853556721130938178) (num-test (- -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769237154904791412049964 16928681651977808800) -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769254083586443389858764) (num-test (- -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289916823063616573634058 -10755560408227106818) -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289906067503208346527240) (num-test (- 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427134042574317487793 -126159569916621842) 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427260202144234109635) (num-test (- -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617308447853505824391099 13449070890444925581) -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617321896924396269316680) (num-test (- -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414447893892341891463988 4431555062692055371) -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414452325447404583519359) (num-test (- 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637382775371488874447622330992324750207465 329466253508616383200261654231797136951) 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637053309117980258064422069338092953070514) (num-test (- 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708269410828528742743794495302359380494607 126536164564464424337714470705049463978) 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708142874663964278319456780831654331030629) (num-test (- 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199731850712255885395479903525322397561293553 -169494171680584797187706369710105239124) 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199732020206427565980277091231692107666532677) (num-test (- -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152307499446188262820058714564165108542508 -26845770031559702758807696432929071597) -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152280653676156703117299906867732179470911) (num-test (- -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789655406716271370732069643455590690035701 -321447426701397438572265325285879998363) -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789333959289569973293497378130304810037338) (num-test (- -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955696690287600957842671916189752415855520 132223863177855649509430852484092802671) -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955828914150778813492181347042236508658191) (num-test (- 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912743446197670724757690108283368934769626461285961947257397454619164856011847736479229692086038931510067165282571276049292116713101550911614590774659556899356 -6114512833799784097991148713266650451765474382378581896952003894922931741133332233338460555227243451198289670274036744955599177213449957470212981501678055) 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912749560710504524541788099432082201420078226760344325839294406623059778943588869811463030546594158753518363572241550086037072312278764361572060987641058577411) (num-test (- -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912449969621455596132708975438173455827361542712483153981422051943690720556013580161324856788091093465837542336129629269227369781823515673967591796132853515009 3321161637038961370471515250185392889390643163295535903347391615170504064647249127732639364682803744773593849851778894972403397573953564801884397178069327) -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912453290783092635094079446953423641220250933355646449517325399335305891060078227410452589427455776269582315929979481048122342185221089627532393680530031584336) (num-test (- 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741918196732794332451120218658490129307932187658010681746557120172585093207839141764683325214902696969028472942954863209641597556494684135445935915485525220911 204625459185084436546676461283890328511903949966691877662249903659689934813784661695047569885195881142676761876303280806728760511429260843727967794322777) 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741917992107335147366683671982028845417603675754060715054679457922681433517904327980021630167332811773147330266192986906360790827734172706185092187517730898134) (num-test (- 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321037694842089561504643350632756961329867761604760788760440497535611072991056505806805291706178639395690245460397975614715123591611301423752799666149495108752 994321141213369910357526037382331323092462599623554452705525887587326552002660849455542761618020243106424015447778226642816634338781654345001677083881111) 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321036700520948348134732993106719578998544669142161165205987792009723485664504503145955836163417021375447139036382527836488480774976962642098454664472411227641) (num-test (- -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316157215551931810740200836725504693738229444336470213883741520460842708733150362983831267583568258736572295448486287825894301201018490203520738439038977754991 -7402949251688548738762242219263594861535354011996392637087346760786292549376145193266590582054224293289596877537643409310483743293801574030358189880866069) -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316149812602680122191462074483285430143367908982458217491104433114081922440600986838638000992986204512279005851608750182484990717275196401946708080849096888922) (num-test (- -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264269215878469013316796620921077244799814690434355127994011220041638393750697699141479399553359747084811371804524490919966410379714725200415331414459870271869 -9247155945465656153397925559476432992975541781462281935278489123804934847762489500833913193183733932905776020790478662969835879365116238125565077744775032) -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264259968722523547660643222995517768366821714892573665712075941552514588815849936651978565640166563350878466028503700441303440543835360084177205849382125496837) (num-test (- -17010604274474750006607667808593883725990508452473783283717890546525148212376267233909567638545898628257361383837671935903199638230375408397752251127816717091041943873728526445398525706450929660366518707254053655364610471112296477865068960744948010561798109833411657930112293904378353445961131058136287425064317621271289456901138718557297733713446119244533144377470099270824020439428168481914824420861176457152299497728390918971852021025089592998997807574907789524112450146545688385954763667980124432645276563626082835790429598328230426471161191074551543308732791287559033843466623138171520961684959997180979203053477 -17319079025684619178510812811805110270463447771889107440996086020812918555191263705580533644731591929176480040622705607552852994906782176254877135818109655911838591767583157894999741648979817400330572419476101372927546509769818404491634583907246692993992514876697330603464497645633398167129555001859772111887143352351860130929715392173452396253437927361301990735683539169040916027268831202732178553152351117118606495416985612909248422655861312689027789401950549626643389790516560291620711705848717875304929186131258525831197192620523261738944873398924939726689336762464320190834794155527335576391767307110012289717973) 308474751209869171903145003211226544472939319415324157278195474287770342814996471670966006185693300919118656785033671649653356676406767857124884690292938820796647893854631449601215942528887739964053712222047717562936038657521926626565623162298682432194405043285672673352203741255044721168423943723484686822825731080570674028576673616154662539991808116768846358213439898216895587840662720817354132291174659966306997688594693937396401630771719690029981827042760102530939643970871905665948037868593442659652622505175690040767594292292835267783682324373396417956545474905286347368171017355814614706807309929033086664496) (num-test (- -28362352496476494327713713233021518136860402239251781438945998574753662942796270292818595738100959519541952077905620088422871490191217157269435052965329201030095268586136492980900212955645939325800541690754639292707053269767151001292253701853012092829784482071789669480438026889625605099744553642207773753943711175375843649210118677569597324789367425691177169929576236753018329085700397911235750600921874606148324025962628852167093806152864269874177214562322576097931390470469397118268354868919899638376323751276807304678316688836173746719723312665764603485606350244811113608471530958617108833879194264695174468397461 -4081062111675377984305281082755054920741203741273067094307824323728798665450292976016160959354997082250970415737745853292134965575242789548167162064123232363464302136338349828801951197252612093077640695564825095503535921549690447893467349156939791370286866987224201115453216606688305427702274940837032716124925028835914047967887674858015919302546781010326385758988488478290741665427521820112231266659657169118374988259423444686317389869729817643396097464874333968181509317307320406521221309011946212308190273531009796563611621389720223920155554879800901239072885025170342349379379336047732368458185953903872634982504) -24281290384801116343408432150266463216119198497978714344638174251024864277345977316802434778745962437290981662167874235130736524615974367721267890901205968666630966449798143152098261758393327232722900995189814197203517348217460553398786352696072301459497615084565468364984810282937299672042278701370741037818786146539929601242231002711581405486820644680850784170587748274727587420272876091123519334262217437029949037703205407480776416283134452230781117097448242129749881153162076711747133559907953426068133477745797508114705067446453522799567757785963702246533465219640771259092151622569376465421008310791301833414957) (num-test (- 10367142604728811799331249565431331488313655422005202933702176605382043644320209814639311439871418581341534233560256605231366966869093495784665834232350567124110194965198962966795893926025854156729633358240069116588609932539289897499402463770167927610848388138020589286461244557962368497723086593344721146859584146431437967506007518396464517349944129896971137720357645026281243138165214047233258394590454775153944241555543594427555914116439316287902470043292624597940465373006598913770411505099332700167695871387948271302951230983772351549087620538875967635100644404345317626621438913980275970160864401622986870735123 -13323117602411502623386235160326625769048477819798659261203460002048250420188223753407093545503703207645050883770850457071863684414849353264890601744588860687970804808452855795406182324143949747985869939791374195222513169904228914579995165180964917538177994190229733465224857616114628815752065632238207474599531507602861647623695058640735949593381112671690796335596142010430124683781417828023076027476816068202219709673411776556090962187853799456968290579708094595903778622705850818245685205707447012659247018940946510378371952655457988959551256869060428488498330109152756599450626641948447980234503249330875085656261) 23690260207140314422717484725757957257362133241803862194905636607430294064508433568046404985375121788986585117331107062303230651283942849049556435976939427812080999773651818762202076250169803904715503298031443311811123102443518812079397628951132845149026382328250322751686102174076997313475152225582928621459115654034299615129702577037200466943325242568661934055953787036711367821946631875256334422067270843356163951228955370983646876304293115744870760623000719193844243995712449732016096710806779712826942890328894781681323183639230340508638877407936396123598974513498074226072065555928723950395367650953861956391384) (num-test (- -25321281404861286799950777949097462701962113587443565138655462269365151737118518315058035825695270231347401755128007072923189452859397209062457461602335603630181865680063451525170253746137368267674863889514153713728814272332433431604233690200451816570240227260445028630591376891139306370205846627093813889699170594185178241812081296510140572331372738998993116117098817936927692238682202717231675283209016857095739468507690090676681400453024293870135659990528969837132054786661560150259115734877162158755858653364070279937027014730947342216816307219127474721622123875699701715404820384545693058511056735799834754890692 -15870257059811626693754498423136372480069134596343998984549199283973854570508228359295418026089909378687774627821225399931314225867711515277913855368473873536462450935842786002269065816311054834857109074848803122494252885020527074586145467185882674518032764708782999568002770206995683800833252068328835778749976046128872525287656002968632147457840467536682726059599593635219947081138082647985895437016641903078766878782632503812736486529143041369932038649270950453231711525943737962179463585338023463992816994328519710963267459007592689204838965317062070771191372220277256094361390952025057574056586665509010902583686) -9451024345049660106196279525961090221892978991099566154106262985391297166610289955762617799605360852659627127306781672991875226991685693784543606233861730093719414744220665522901187929826313432817754814665350591234561387311906357018088223014569142052207462551662029062588606684143622569372594558764978110949194548056305716524425293541508424873532271462310390057499224301707745157544120069245779846192374954016972589725057586863944913923881252500203621341258019383900343260717822188079652149539138694763041659035550568973759555723354653011977341902065403950430751655422445621043429432520635484454470070290823852307006) (num-test (- -10064759312484387184876313010284016458560725440641239737323234767636591183611201479885347260175161165340917225306019885202675573016295152797559983194160634880140345743489989007821872426587698574795394887035658449467358615185057180305109018898637903449135520486663185036663238956537895356325733583128141439025002140924158670346599492383552938312402521066705186885506193758499006001382444818328802338159713646715901977137011576113434170842422373328479181457354927400927267448788528116619711184792932525071391797130057189079431487557270366699175956757661488296856660145077706273571985222726397848614141194988258117115194 -3689074607001776735792882994440038588887963294487080609346609068733026224735369468180206799966728461935654851527895876039403151156669223687679382665269013769686991783531091821265184956524448064027733731862929686596729449196238312997460578818232100254940830907672953344544031914926653652310468671685310332327057444910423081752028857828828473637496272809899061573593874011995802487442092326045415689987885712749026491545159340468151000027397821404233369034594141219014219707193746581364791219277489927025992135462852894714639406751538919395016165215641239054420028872350709704191189169571752512626755385998505584006855) -6375684705482610449083430015843977869672762146154159127976625698903564958875832011705140460208432703405262373778124009163272421859625929109880600528891621110453353959958897186556687470063250510767661155172728762870629165988818867307648440080405803194194689578990231692119207041611241704015264911442831106697944696013735588594570634554724464674906248256806125311912319746503203513940352492283386648171827933966875485591852235645283170815024551924245812422760786181913047741594781535254919965515442598045399661667204294364792080805731447304159791542020249242436631272726996569380796053154645335987385808989752533108339) (num-test (- -4621513851362114851854472268081584822344822740665629177305004335694395719163541988311496405455186973857145245414214464449674464879082042971313025249648887349614046805778335573547862191522938924075560443632614665169520240664970180760364771373836023824195690134618554368845612471858027311791638881380352344527105480173917778084361560336490212845414303819150625355111300877737042696291233444311426721588476948565949641149735838580313236869041013210454558557732497012037162735013212361842433337324577522358968152852532145622765032318936569346015498130151789662274686368870963891262060214274101000058555635785833724062234 20283847238128227963042817384468009365120280641032764409860857066215336820785816567924217697745867082423864450685360959383940995237907453126362378908108545669654749698030305432673477271848544313029448526561606175059997663752601262173667861202924953502866611309434183496911206954880840674239880495147451496219568787221129244201657487090244435562896841733049066453539864301122516559479757096183362477594406691085946787803323712522074578611082872627361465163804239673539339633332349145205596371287028267780080937728455742966681547897652607170788637996317683436193829274172400558140357237480809582038468874094877651383053) -24905361089490342814897289652549594187465103381698393587165861401909732539949358556235714103201054056281009696099575423833615460116989496097675404157757433019268796503808641006221339463371483237105008970194220840229517904417571442934032632576760977327062301444052737865756819426738867986031519376527803840746674267395047022286019047426734648408311145552199691808651165178859559255770990540494789199182883639651896428953059551102387815480123885837816023721536736685576502368345561507048029708611605790139049090580987888589446580216589176516804136126469473098468515643043364449402417451754910582097024509880711375445287) (num-test (- 8229768172162771789/4094631553683915058 14916542302144281688/9648520391570031013) 18327341244785642013243791303754634353/39507136041685332578233153660317693754) (num-test (- 13554976081719376860/5850035209629724601 -6813034992928443315/16012083383654426278) 256899901877002811987490932642058619395/93671251573905451634945335611797465078) (num-test (- -221798849980968127/896588178875000428 -10118632981534633697/16809799818197706916) 333990778095757160537366868413422249/941966737890699707694484674257410003) (num-test (- -10398409463665680242/10672871071680021919 908300169382593227/1663860017749090135) -2076589873614048366639515256135965791/1366012573135328609279238070700513005) (num-test (- -2198518713248421187/494031967775171833 162489257999262168/3608560229859558061) -8013762081101965644053022173225152351/1782744111192743850497670941715295813) (num-test (- 4025149216228566945/640594137312937394 5467380276809034025/15813352732084653151) 60148732603712157399679443099667862845/10129941051434949990590527231467828494) (num-test (- 45649282670476595/278386580761220266717341154184065537 -8637266763647548631/320617180101036447149595031898805939080) 17040443444897688379155017841073877168061229451634462447/89255520501631886327999278515127058459530587144975987720686743155549485960) (num-test (- 5648415331928005377/86815630814151297970860026950116430492 -3858618729527320883/27855468652821710859204555976171379400) 123081918822962876101148539477322308270739795776139149559/604572520679633516300271119677141637780408278090307422820905500994965166200) (num-test (- 9781572955588417059/112881800445343004034168709823458687843 -5059688483724168531/4577416283528891230944530353546966748) 615921077060787960354561606126348783111829996215681822765/516706991472571912574910836774186280180852506048696459094758451180832844564) (num-test (- -4967914039344839478/238170260180199675500515253723794945205 1851848905279976507/5731170327270969184071911155742503278) -469527297115675955424190428047537920421409443442551107819/1364994327983166854234805393053180119374354994464588574791772715189542881990) (num-test (- -16853061581795824324/96404437352723357070647888504166371117 2887610208906060444/32980643277330946266739822018299212963) -834203249643667606680245846951263316484378801689149307960/3179480358681967952651970543397987660141008737601948320258541111852875189671) (num-test (- -10766003534404571638/1736320411127247334175538439020437437 -220564366893542891/24024005562370344889629855466198025799) -11228676451427374102904112111967705085778332338188090365/1813624835433832784217556253227924899981441517333394378436857197512671181) (num-test (- -4039872531792560303/2717817538621352660433068255065439787147153801016478776178010367557953211548 -17969900169229544519/10371230759745501411127733226376204123221866394120596070959771442399588297129) 6940459580028931824293913174633904994365279610168782399332846513086074139209123514834476635325/28187112855925579976299840753672542065528422968220885043792832460046226866036339425358907691441054924266606457279617295071355282523744922239122018045692) (num-test (- 11905720953886477738/26349991043344773150817457299711471013733618033386232710348739943906972457535 -1868508269239354100/7915113871665192715310471309271830385175189228544536787145345883401181858893) 15941145914794937177093386304443205602552827651536706608400845076162777444155363739893353329726/23173686625047977587990304423741788120258508897732978034793987736019678129860415537604628640859289817332994555163435451240013483415438259775849311623195) (num-test (- -2449440712560236858/3924161613720467738425590715321110829708355586356453490516463081317902575263 3313932993860824279/18392642760231276916239249302906853654153090246504347205856270072174622214792) -19352032211145724571420568734409847660231095572377236173431089875006133635431666731719362137971/24058567564857748536604240288023690440577404826273237225585673569644473540232022448230431237781096357243673961302816983638647478040822458289501843963432) (num-test (- 2375854596996813469/17171542567603713573317138241061150416263899780234956304631913156611236192733 -1690236091628058998/115698505401619203741389026136939663329574241316722960060260525901879106902321) 303906786920788985464713527121698374469813384178920405503303785899916213843318155692692663023083/1986721810512032345893371071989737461519340072368099757524397292434629497187713075053126253107235936414498803590298681018206068059043963268488989361033293) (num-test (- -9066703779833220052/53996509329904595759286231403247566365148374715934463324003880626270687736687 10104829441267883881/34350188217372122913844475743718288066233853695548819225257606841719829170673) -857068498550946301314281599902676812596945461499639532351672507051201056365247232693696093577243/1854790258563312749374056592838765632813507083399863975139987272744324437901043103651094837595789610803765303659351781344942305171362498886075754606580351) (num-test (- -712905705954993103/38361275706852471555340413672243335795384295466685977818182375699688812583403 -3487523845474404757/24004509207225606167828624323100421869226668573968691661898194620137716910067) 116672912187985693533424614379662678476187446315443107971581372764612623068602629062267386180170/920843595906060126846114857872490000269306626188013726759480780006531676144330596572087176480154495471428384288229491172449159350622326294294528887818001) (num-test (- -104068455909264700529593875361271227125/3443783531459345396 94266182755532992545775726171008609186/10986871169556601787) -1468019045636814162670978305715811638938423723806410280031/37836405995984502494576730289263822652) (num-test (- 6250188382163250356218308848100308290/74975517450841979 10057222263694104272437942231238950849/1377150882331486572) 7853407001895533030925726629648778749078643531548391709/103252600010686800286181264132405988) (num-test (- -325869560300902552275820653500571757882/6390430580148850471 94468553562411191993094256419298214695/11908765973274803007) -4484399064985071999330976874105690617426359030318059422519/76102142247451389303559481900024166297) (num-test (- -93570528036598407567281714804477572547/1681213810574384291 -244906502561054838674546679498356325029/6878656438675875801) -231899320744132980638168050942881155823492361410591515708/11564492202898292712047439710761442091) (num-test (- -81411835730261219386583131450337332863/716127167248934 305772198898084305417824619321954306670/5852119619187572757) -476650772889757879179369019399921041943854248979406203071/4190861845290706865359628655691038) (num-test (- 8378821874364768218652992773582270365/264620166167099506 -235085292482743132422942426826553295351/5218853722286899445) 105936154887632142427944491040385766054707164161382644031/1381013939193345109641609957531174170) (num-test (- -46932041053326337601984043288899377207/83004348019257810472659105973646518650 -172752976692389001100875729845538600392/64697064048458368935602368307247306331) 11302882932785858045495103305619355060523322049764297548269071809310077113283/5370137620102451116225827082734739449691101289924623877117727128768254573150) (num-test (- -5215113722152182902641295804790889582/37267147737183802417372262122851319461 -174324915479281952095382231256728338942/198797486533978895289571841018885549001) 1819946959828587625889363843813156766676787993042778284071188313098762447560/2469538433480866339929667414220581052912334718874062150193407525506073469487) (num-test (- -308468863588547635528373349890793262605/277175417813474671446046438490775760091 -88071245580784145343997181342216325733/109042592277517238289414020635536175644) -9225060231388102579469362745283215538990500777711808852192407359260779270917/30223926073985207174135233898799350451872811382182855106546181559011381423604) (num-test (- -139281160373255540085888405052544101003/21590054032847718908692432707921390245 -175128181843395150044469443628898278945/101874815793501611839718166887463701141) -10408215647857282226079103083273257459322595128147732742048301223816698452898/2199482777568107961766315941206227462112836158088743951492692685709912769545) (num-test (- -13653637423911886957204229566898836211/6724361745919744069899921221745423919 60537422461958273742622747790343370991/323722395245687564470126807800714703749) -4827063738484690108652046326448960810791170812913084889649499536314520788768/2176826490887613088066161490358401961235974091796973399049221882998503572331) (num-test (- 207284509647982883454717074874778610186/315575836476247924963087075944676754095 59454580888278446469281150437143941047/3799382139920332759258392540934029749) -17974876032324524053425850245755672169670471578477359535347261991433397414151/1198993196898275844180025803639723883733761367273976879884312817813487572155) (num-test (- -149255714031984711085009662216310611563/61209488724728410476016289765233999883959861482512968048939594260689484910535 -206353007879160639705730135450663155/12341134377195982958424940281067948493740598784362073339140017508008773524522) -1829354061323966095884091779117676852909282652562065419187935424186237303685407507859167669375269438805585201409961/755394525511335693198081866608161950899365908489933659716533239785460293292606918153507868614180865950008697266433342863460741791684603303270127798639270) (num-test (- 286228990947356503137685907205210886138/64525193112922470913382853022276019736227442678252533126077234112153953877503 -93778927468512815169462456699065596479/70019706577332037325570327903202382111804035215024271930215402736305222068556) 26092773364888269343302672267572690894453186378630697330693315371426642609003667116358459590920104883240139740188665/4518035088612517412858008269349176355736855744033363257986123715832709510554983209440815107866748014413528943649032845277041680450752670951433682692095668) (num-test (- 128067958966292694713545212085241612749/50804897676960765097908813878456128842417954009101908722816951877006748778869 -331437715897535092432788513322484606485/102911257177761006574263802557003927106564530572416215828322919550454967864323) 30018293903870953799879886574342637699455128356488843398998059810000258259055116602688738404467489640369684487419392/5228395890723542025866546462435908982096651119675992137235094920338650164475761939608730060759309002063498665792819192135030537577109853650729817121390687) (num-test (- 27065789167947870065829490227927612633/10795458608984562931374526676297845621730864739104955678079256994070639461197 53314096352440087811254806167289750292/44807028208492548064750449353871285104149154384082409595945081934090139448067) 637187458285170434834128234123875152637450428605039275620795715002449318075555518355578432548587274399560043210887/483712418416385035748598509413117409273155809870339120248356475239836262578288026980177669113025449532258001487616187498682131415946755647640047843156199) (num-test (- 275528434092876314751862670579225752027/23290954563951481764306221308726902093226107549717031306984541394996363441752 118398743375843543978994815511147957868/26050691402435592629863948804505350954161759382372519491414484055670238339031) 4420086456754111377514058698455330162869575963826459083894390154200727636413353382047981846196341965799691593361101/606745469813648893293125236863835131523556569847025597910312571817347251611730291043895952533706547565767925058454286630395458711598751591845070996622312) (num-test (- -263828172858355421790882308711676546531/27836884730007976814146538035133148053942251062564400015534567388490010158584 31580638196736633522674344981675107601/26210154715367115936541726366619494863883445533448748701891278370021519416412) -1948520953518189888695889830515156795224640917019574042614412953331052369986548949517168001067643449389746489215939/182402263891837359872743630675214135004512597266032306942151126033873543370078488920825920736994254287019873146147276876145783659805845233146169813070152) (num-test (- 43029409555492054023102681165249027816896930295612442385573977041111849786681/17478431621804970398 -63831159286570708329826084149841946467426290005331979697932225104261019322894/15909114936773208135) 1800228375210677909820927489860838061135888931548234366640994061734196466170531105718785437541747/278066377585826623354880511023167787730) (num-test (- -34677827126365037739221949705076349308552841821108642369491195428278121711851/12321935233094032355 2466652720703038662112375481129216761044838204088317060529010755963314905661/458077759838279587) -46279076433142446690218423399092373290016631287423134630356063713373023144989129659854095947192/5644404488448083755690706619714037385) (num-test (- 75657421640076548917316021979547903196453821552146142751737530624725671569062/5416811919979369403 -51031635143911513328361770575139950616395278082588474953679149885798666896870/16274277637120569843) 1507698654622877634185545368063085304919907004898369478770589865697455127479301592176158803465876/88154701093808389139357381843158713729) (num-test (- -86696779369804422745383183615836359604633179506005810847902134850836986706763/15354752711854066426 83875579121692496325618937810567731584819474189441279434601944065565889174333/1890321146489013312) -725886765676185953186290796464189476910148783977596698524963064505627422317719186476684911836457/14512706875163632554860591439823131456) (num-test (- -2824584270835350806110810310308644313069326027498380007733023821989145840779/3128200028313826545 -16485532380752962986834975164722153533427821569516340079793116204530103476885/4044901389917631001) 40144878017198534388242075435853869853984060096218401720566307902396394251666454424383286522546/12653260642466969643085415999628721545) (num-test (- -71140717297594692514165816539390347954764512441693085945645019026357644035048/15130773661553937219 106518314860779634188990156539381479314908411240039365434170935270962911954978/11202282371121185733) -267626990691150539404999353980899804835901788880218020004516046839225745741587662342920970677374/18833244338916713919008552672213388503) (num-test (- -31372444086039981530710911528326367048894875160807395940269724829549418985367/149682691887362386596593782520991059630 13980025800771566396092717430902170466939197897483207383178768135899198010674/143215924045734814208985239450703841431) -6585601463869631351127457963734548845246885851328680299125624347680443020577881573937479731612385878788264587830797/21436945032301618223045694723696447349670080755369221855700055538448185530530) (num-test (- 60002561005149795132492915799111287923312170708430066011808292212167201814322/16346766380600148228286881361520329811 104734497917913613491539581495799848702023341599268915776996571583385896191203/61937476024742321910315674059586179787) 19844918952732846654680216616282727016967753441473733514766184661191061075852141231786969917096326062063227788681/10024529215648371311559365663430434349900555024451481776473735938354274557) (num-test (- 78980655687309201443760271907411093305339297143458162112992101000746746121121/24094471248783344167514231679460830840 10562090177736342378322146805187203837437609238688017154037816697523731420573/74961473522415640988394298626742882726) 2833009175986364875175323375606672657538996734036576482627590142336455915129629838687125527863027857335645122892263/903078534276138789186206765245648729133926893901427360507431923032322034920) (num-test (- 96507496069338193466683209170737942070468924698476218759487496209308948365/19252547784216386872197161331387216893 12563973560096321588715986952435909079270363887929001032891628645353358046011/79879611474172059435223762585596250921) -234179520035021783886726161079163865833895106001667476480293126893061678147610754451356994012799045797572757769658/1537886036891137155393554113191390737924110193971845147480358562685078008453) (num-test (- -95307376781556674397571761484869767912211504027346871580288574968524683908606/128329921725822403056205582017133271311 36170894925879686192917617159219095595164782822289198001474013555499918728596/240886887357120796976726436320063138705) -27600105449672599524131749634403660999916186956076872373762346977331203119722064380924286397976905109959929163304586/30912995399316310109755266138690547023211992922143297688759057498082990192255) (num-test (- -22104893896795356297688360407985617971036912713007110938688208155601366216839/5790727918973991999188987227357894380 -2339372311396919406471876113751500811577555408710269902369834593304924842262/12937689744925498650506694361349920911) -90813196841584888136609582546105640167792279132393576014002859436259486025871518847027719826829986116492656710923/24972880404321196721702428178050372850585634300866259560981343234830460060) (num-test (- -3426218098660813853559652497557253942819662042768623922183022792185928242671/2077407536662385613357832628600529321326686191757127715026249042748302985178 102639297566540827510784861997871251414598617775200449087621943894148321803293/83089038429507982364103335021257902316010144851865721965726693103637274338545) -497904817589969304680335736144278473886197067420059149312627956679073246109792679236301202959163792633927112737045328517845259242265445360227131779644849/172609794647490471018785535271654901168315737813115654161745630290269473799997219289162551586864155467201760250711449118429648095083028041134558889086010) (num-test (- 1543899448831604569141696144740105016328586790221799945430718394112623114412/1094690716976737526626281319975432667416762320123576900412499904933271786567 -101835025746074730017715423582062511397387458863000475669454309217160145993/55116548932808468782187525862059393507883043749327746382569396580129398962) 196572266866178229534134252625134989714563665559807019513454337864363053729628560611312158082929567528955985669620113192156991984486011150099776316375/60335574468539540262844259780498204139853746803235564167348945699931512713417761400790104247218084745081610815218855896912895393599203789305655343454) (num-test (- -37581128364300495505521143552535972339959603365602244668159915869829949338997/42947503543372015019662104425995959382231280059683481488692141811517675950053 -64888994735350842409379226446854438865448614840503930577860382883594178287934/83188698741706753136718468601650233481619465918167616089202536622553688681087) -339504834548876267781536981106771553482515399809961247195394672491113984585270709765073243997043174508213253440272888923497173265137136111635177948889237/3572746933977957867604303713153220827104741303667912510494658617478381525690274918494624922428110123336345510454960178899375325287131764283538305257747611) (num-test (- -16230533405187239318665866908175768720879595131719076634847964191318368133798/22572606803697929681675696479626869642065470042484269772607381297011844085929 -3238806615045730440879378702226410558103197865253164974472379309242480970831/7167633180423354812410246140643720752789573307606828791458541239290047771821) -43226201536346598702395278529841763047400215735214225929426206339139243925579733185594282160061132691154727543083543034702325848468839969037250195569159/161792165494835249202675342837643048016103040739685489755239980324180308179745586573032524649518850731442178659412287492012066453331740508600962908806709) (num-test (- -58154703770626762920775801228739843350302933064569814497417973139312614069763/25655935043535628671780902110427599603857741303802203417196105196580175051005 2291927744682353823611191393035210406213286149316388597509251757479544491322/2075117977066796442381930295725401140983312287419314083032058820231519915051) -2848879691864593463404526996418656511058536739346277043463623510210968076493148319480555434626780964688210750895957968447300033820091387019574369485421/845064952814266442598400897276554701819815257830830535600041451476645443978805142044657833921127247033533628716506571358424324423237490438402971304385) (num-test (- 16233726784138742204308718138203086218138595789383817317246449554340898453104/16370584482945481446847872945862788646563748664837147378940234530469832625057 14431071141710676049963542765626402177344958369162454874051268130438178883381/21166786163219212747261378458659387864767326410261049063051557406799162784072) 107370754167217929909136144689909613387440429633745577224054233373886366171618903318258855919060113440621302505589923655976636732694637334616990468681771/346512661117421566971293748815177161526095870176610277140325665174756629068111228154091043637596506814557119477231243643171068111260010676990408227692104) (s7-test (- - 1) 'error) (s7-test (-) 'error) (s7-test (- 1 #f) 'error) (s7-test (- 1 #t) 'error) (s7-test (- 1 + 2) 'error) (s7-test (- 1 - 2) 'error) ;(s7-test (- 1 2 . 3) 'error) ;(s7-test (- 1 . 2) 'error) (test-end "-") ;;; -------------------------------------------------------------------------------- ;;; / ;;; -------------------------------------------------------------------------------- (test-begin "/") (num-test (/ -0.0+0.00000001i) 0.0-100000000.0i) (num-test (/ -1.0) -1.0) (num-test (/ -1.0+1.0i -1.0+1.0i) 1.0) (num-test (/ -1.0+1.0i 0.0+1.0i) 1.0+1.0i) (num-test (/ -1.0+1.0i 1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1.0) -1.0+1.0i) (num-test (/ -1.0+1.0i 1.0+1.0i) 0.0+1.0i) (num-test (/ -1.0+1.0i 1.234+1.234i) 0.0+0.81037277147488i) (num-test (/ -1.0+1.0i 1/1) -1.0+1.0i) (num-test (/ -1.0+1.0i 123.4) -0.00810372771475+0.00810372771475i) (num-test (/ -1.0+1.0i 1234) -0.00081037277147+0.00081037277147i) (num-test (/ -1.0+1.0i 1234/11) -0.00891410048622+0.00891410048622i) (num-test (/ -1.0+1.0i) -0.5-0.5i) (num-test (/ -10) -1/10) (num-test (/ -10/3) -3/10) (num-test (/ -10 3) -10/3) (num-test (/ -1234000000) -1/1234000000) (num-test (/ -1234000000.0) -0.00000000081037) (num-test (/ -1234000000.0+2.71828182845905i) -0.00000000081037-0.0i) (num-test (/ -1234000000/10) -10/1234000000) (num-test (/ -2) -1/2) (num-test (/ -2.71828182845905) -0.36787944117144) (num-test (/ -2.71828182845905+3.14159265358979i) -0.15750247989732-0.18202992367723i) (num-test (/ -2/2) -2/2) (num-test (/ -362880) -1/362880) (num-test (/ -362880/1234) -1234/362880) (num-test (/ 0 -1.0+1.0i) 0.0) (num-test (/ 0 0.0+1.0i) 0.0) (num-test (/ 0 1 -1.0+1.0i) 0.0) (num-test (/ 0 1 0.0+1.0i) 0.0) (num-test (/ 0 1 1) 0) (num-test (/ 0 1 1.0) 0.0) (num-test (/ 0 1 1.0+1.0i) 0.0) (num-test (/ 0 1 1.234+1.234i) 0.0) (num-test (/ 0 1 1/1) 0) (num-test (/ 0 1 123.4) 0.0) (num-test (/ 0 1 1234) 0) (num-test (/ 0 1 1234/11) 0) (num-test (/ 0 1) 0) (num-test (/ 0 1.0 -1.0+1.0i) 0.0) (num-test (/ 0 1.0 0.0+1.0i) 0.0) (num-test (/ 0 1.0 1) 0.0) (num-test (/ 0 1.0 1.0) 0.0) (num-test (/ 0 1.0 1.0+1.0i) 0.0) (num-test (/ 0 1.0 1.234+1.234i) 0.0) (num-test (/ 0 1.0 1/1) 0.0) (num-test (/ 0 1.0 123.4) 0.0) (num-test (/ 0 1.0 1234) 0.0) (num-test (/ 0 1.0 1234/11) 0.0) (num-test (/ 0 1.0) 0.0) (num-test (/ 0 1.0+1.0i -1.0+1.0i) 0.0) (num-test (/ 0 1.0+1.0i 0.0+1.0i) 0.0) (num-test (/ 0 1.0+1.0i 1) 0.0) (num-test (/ 0 1.0+1.0i 1.0) 0.0) (num-test (/ 0 1.0+1.0i 1.0+1.0i) 0.0) (num-test (/ 0 1.0+1.0i 1.234+1.234i) 0.0) (num-test (/ 0 1.0+1.0i 1/1) 0.0) (num-test (/ 0 1.0+1.0i 123.4) 0.0) (num-test (/ 0 1.0+1.0i 1234) 0.0) (num-test (/ 0 1.0+1.0i 1234/11) 0.0) (num-test (/ 0 1.0+1.0i) 0.0) (num-test (/ 0 1.234+1.234i) 0.0) (num-test (/ 0 1/1 -1.0+1.0i) 0.0) (num-test (/ 0 123.4) 0.0) (num-test (/ 0 1234) 0) (num-test (/ 0 1234/11) 0) (num-test (/ 0.0 -1.0+1.0i -1.0+1.0i) 0.0) (num-test (/ 0.0 -1.0+1.0i 0.0+1.0i) 0.0) (num-test (/ 0.0 -1.0+1.0i 1) 0.0) (num-test (/ 0.0 -1.0+1.0i 1.0) 0.0) (num-test (/ 0.0 -1.0+1.0i 1.0+1.0i) 0.0) (num-test (/ 0.0 -1.0+1.0i 1.234+1.234i) 0.0) (num-test (/ 0.0 -1.0+1.0i 1/1) 0.0) (num-test (/ 0.0 -1.0+1.0i 123.4) 0.0) (num-test (/ 0.0 -1.0+1.0i 1234) 0.0) (num-test (/ 0.0 -1.0+1.0i 1234/11) 0.0) (num-test (/ 0.0 -1.0+1.0i) 0.0) (num-test (/ 0.0 0.0+1.0i -1.0+1.0i) 0.0) (num-test (/ 0.0 0.0+1.0i 0.0+1.0i) 0.0) (num-test (/ 0.0 0.0+1.0i 1) 0.0) (num-test (/ 0.0 0.0+1.0i 1.0) 0.0) (num-test (/ 0.0 0.0+1.0i 1.0+1.0i) 0.0) (num-test (/ 0.0 0.0+1.0i 1.234+1.234i) 0.0) (num-test (/ 0.0 0.0+1.0i 1/1) 0.0) (num-test (/ 0.0 0.0+1.0i 123.4) 0.0) (num-test (/ 0.0 0.0+1.0i 1234) 0.0) (num-test (/ 0.0 0.0+1.0i 1234/11) 0.0) (num-test (/ 0.0 0.0+1.0i) 0.0) (num-test (/ 0.0 1 -1.0+1.0i) 0.0) (num-test (/ 0.0 1 0.0+1.0i) 0.0) (num-test (/ 0.0 1 1.0) 0.0) (num-test (/ 0.0 1 1.0+1.0i) 0.0) (num-test (/ 0.0 1 1.234+1.234i) 0.0) (num-test (/ 0.0 1 1/1) 0.0) (num-test (/ 0.0 1 123.4) 0.0) (num-test (/ 0.0 1 1234) 0.0) (num-test (/ 0.0 1 1234/11) 0.0) (num-test (/ 0.0 1) 0.0) (num-test (/ 0.0 1.0 -1.0+1.0i) 0.0) (num-test (/ 0.0 1.0 0.0+1.0i) 0.0) (num-test (/ 0.0 1.0 1) 0.0) (num-test (/ 0.0 1.0 1.0) 0.0) (num-test (/ 0.0 1.0 1.0+1.0i) 0.0) (num-test (/ 0.0 1.0 1.234+1.234i) 0.0) (num-test (/ 0.0 1.0 1/1) 0.0) (num-test (/ 0.0 1.0 123.4) 0.0) (num-test (/ 0.0 1.0 1234) 0.0) (num-test (/ 0.0 1.0 1234/11) 0.0) (num-test (/ 0.0 1.0) 0.0) (num-test (/ 0.0 1.0+1.0i -1.0+1.0i) 0.0) (num-test (/ 0.0 1.0+1.0i 0.0+1.0i) 0.0) (num-test (/ 0.0 1.0+1.0i 1) 0.0) (num-test (/ 0.0 1.0+1.0i 1.0) 0.0) (num-test (/ 0.0 1.0+1.0i 1.0+1.0i) 0.0) (num-test (/ 0.0 1.0+1.0i 1.234+1.234i) 0.0) (num-test (/ 0.0 1.0+1.0i 1/1) 0.0) (num-test (/ 0.0 1.0+1.0i 123.4) 0.0) (num-test (/ 0.0 1.0+1.0i 1234) 0.0) (num-test (/ 0.0 1.0+1.0i 1234/11) 0.0) (num-test (/ 0.0 1.0+1.0i) 0.0) (num-test (/ 0.0 1.234+1.234i -1.0+1.0i) 0.0) (num-test (/ 0.0 1.234+1.234i 0.0+1.0i) 0.0) (num-test (/ 0.0 1.234+1.234i 1) 0.0) (num-test (/ 0.0 1.234+1.234i 1.0) 0.0) (num-test (/ 0.0 1.234+1.234i 1.0+1.0i) 0.0) (num-test (/ 0.0 1.234+1.234i 1.234+1.234i) 0.0) (num-test (/ 0.0 1.234+1.234i 1/1) 0.0) (num-test (/ 0.0 1.234+1.234i 123.4) 0.0) (num-test (/ 0.0 1.234+1.234i 1234) 0.0) (num-test (/ 0.0 1.234+1.234i 1234/11) 0.0) (num-test (/ 0.0 1.234+1.234i) 0.0) (num-test (/ 0.0 1/1 -1.0+1.0i) 0.0) (num-test (/ 0.0 123.4 -1.0+1.0i) 0.0) (num-test (/ 0.0 123.4 0.0+1.0i) 0.0) (num-test (/ 0.0 123.4 1) 0.0) (num-test (/ 0.0 123.4 1.0) 0.0) (num-test (/ 0.0 123.4 1.0+1.0i) 0.0) (num-test (/ 0.0 123.4 1.234+1.234i) 0.0) (num-test (/ 0.0 123.4 1/1) 0.0) (num-test (/ 0.0 123.4 123.4) 0.0) (num-test (/ 0.0 123.4 1234) 0.0) (num-test (/ 0.0 123.4 1234/11) 0.0) (num-test (/ 0.0 123.4) 0.0) (num-test (/ 0.0 1234 -1.0+1.0i) 0.0) (num-test (/ 0.0 1234 0.0+1.0i) 0.0) (num-test (/ 0.0 1234 1) 0.0) (num-test (/ 0.0 1234 1.0) 0.0) (num-test (/ 0.0 1234 1.0+1.0i) 0.0) (num-test (/ 0.0 1234 1.234+1.234i) 0.0) (num-test (/ 0.0 1234 1/1) 0.0) (num-test (/ 0.0 1234 123.4) 0.0) (num-test (/ 0.0 1234 1234) 0.0) (num-test (/ 0.0 1234 1234/11) 0.0) (num-test (/ 0.0 1234) 0.0) (num-test (/ 0.0 1234/11 -1.0+1.0i) 0.0) (num-test (/ 0.0 1234/11 0.0+1.0i) 0.0) (num-test (/ 0.0 1234/11 1) 0.0) (num-test (/ 0.0 1234/11 1.0) 0.0) (num-test (/ 0.0 1234/11 1.0+1.0i) 0.0) (num-test (/ 0.0 1234/11 1.234+1.234i) 0.0) (num-test (/ 0.0 1234/11 1/1) 0.0) (num-test (/ 0.0 1234/11 123.4) 0.0) (num-test (/ 0.0 1234/11 1234) 0.0) (num-test (/ 0.0 1234/11 1234/11) 0.0) (num-test (/ 0.0 1234/11) 0.0) (num-test (/ 0.0+0.00000001i) 0.0-100000000.0i) (num-test (/ 0.0+1.0i -1.0+1.0i) 0.5-0.5i) (num-test (/ 0.0+1.0i 0.0+1.0i) 1.0) (num-test (/ 0.0+1.0i 1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1.0) 0.0+1.0i) (num-test (/ 0.0+1.0i 1.0+1.0i) 0.5+0.5i) (num-test (/ 0.0+1.0i 1.234+1.234i) 0.40518638573744+0.40518638573744i) (num-test (/ 0.0+1.0i 1/1) 0.0+1.0i) (num-test (/ 0.0+1.0i 123.4) 0.0+0.00810372771475i) (num-test (/ 0.0+1.0i 1234) 0.0+0.00081037277147i) (num-test (/ 0.0+1.0i 1234/11) 0.0+0.00891410048622i) (num-test (/ 1 -1.0+1.0i) -0.5-0.5i) (num-test (/ 1 0.0+1.0i) 0.0-1.0i) (num-test (/ 1 1 -1.0+1.0i) -0.5-0.5i) (num-test (/ 1 1 0.0+1.0i) 0.0-1.0i) (num-test (/ 1 1 1) 1) (num-test (/ 1 1 1.0) 1.0) (num-test (/ 1 1 1.0+1.0i) 0.5-0.5i) (num-test (/ 1 1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 1 1 1/1) 1) (num-test (/ 1 1 123.4) 0.00810372771475) (num-test (/ 1 1 1234) 1/1234) (num-test (/ 1 1 1234/11) 11/1234) (num-test (/ 1 1) 1) (num-test (/ 1 1.0 -1.0+1.0i) -0.5-0.5i) (num-test (/ 1 1.0 0.0+1.0i) 0.0-1.0i) (num-test (/ 1 1.0 1) 1.0) (num-test (/ 1 1.0 1.0) 1.0) (num-test (/ 1 1.0 1.0+1.0i) 0.5-0.5i) (num-test (/ 1 1.0 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 1 1.0 1/1) 1.0) (num-test (/ 1 1.0 123.4) 0.00810372771475) (num-test (/ 1 1.0 1234) 0.00081037277147) (num-test (/ 1 1.0 1234/11) 0.00891410048622) (num-test (/ 1 1.0) 1.0) (num-test (/ 1 1.0+1.0i -1.0+1.0i) -0.5) (num-test (/ 1 1.0+1.0i 0.0+1.0i) -0.5-0.5i) (num-test (/ 1 1.0+1.0i 1) 0.5-0.5i) (num-test (/ 1 1.0+1.0i 1.0) 0.5-0.5i) (num-test (/ 1 1.0+1.0i 1.0+1.0i) 0.0-0.5i) (num-test (/ 1 1.0+1.0i 1.234+1.234i) 0.0-0.40518638573744i) (num-test (/ 1 1.0+1.0i 1/1) 0.5-0.5i) (num-test (/ 1 1.0+1.0i 123.4) 0.00405186385737-0.00405186385737i) (num-test (/ 1 1.0+1.0i 1234) 0.00040518638574-0.00040518638574i) (num-test (/ 1 1.0+1.0i 1234/11) 0.00445705024311-0.00445705024311i) (num-test (/ 1 1.0+1.0i) 0.5-0.5i) (num-test (/ 1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 1 123.4) 0.00810372771475) (num-test (/ 1 1234) 1/1234) (num-test (/ 1 1234/11) 11/1234) (num-test (/ 1.0 -1.0+1.0i -1.0+1.0i) -0.0+0.5i) (num-test (/ 1.0 -1.0+1.0i 0.0+1.0i) -0.5+0.5i) (num-test (/ 1.0 -1.0+1.0i 1) -0.5-0.5i) (num-test (/ 1.0 -1.0+1.0i 1.0) -0.5-0.5i) (num-test (/ 1.0 -1.0+1.0i 1.0+1.0i) -0.5) (num-test (/ 1.0 -1.0+1.0i 1.234+1.234i) -0.40518638573744) (num-test (/ 1.0 -1.0+1.0i 1/1) -0.5-0.5i) (num-test (/ 1.0 -1.0+1.0i 123.4) -0.00405186385737-0.00405186385737i) (num-test (/ 1.0 -1.0+1.0i 1234) -0.00040518638574-0.00040518638574i) (num-test (/ 1.0 -1.0+1.0i 1234/11) -0.00445705024311-0.00445705024311i) (num-test (/ 1.0 -1.0+1.0i) -0.5-0.5i) (num-test (/ 1.0 0.0+1.0i -1.0+1.0i) -0.5+0.5i) (num-test (/ 1.0 0.0+1.0i 0.0+1.0i) -1.0) (num-test (/ 1.0 0.0+1.0i 1) 0.0-1.0i) (num-test (/ 1.0 0.0+1.0i 1.0) 0.0-1.0i) (num-test (/ 1.0 0.0+1.0i 1.0+1.0i) -0.5-0.5i) (num-test (/ 1.0 0.0+1.0i 1.234+1.234i) -0.40518638573744-0.40518638573744i) (num-test (/ 1.0 0.0+1.0i 1/1) 0.0-1.0i) (num-test (/ 1.0 0.0+1.0i 123.4) 0.0-0.00810372771475i) (num-test (/ 1.0 0.0+1.0i 1234) 0.0-0.00081037277147i) (num-test (/ 1.0 0.0+1.0i 1234/11) 0.0-0.00891410048622i) (num-test (/ 1.0 0.0+1.0i) 0.0-1.0i) (num-test (/ 1.0 1 -1.0+1.0i) -0.5-0.5i) (num-test (/ 1.0 1 0.0+1.0i) 0.0-1.0i) (num-test (/ 1.0 1 1) 1.0) (num-test (/ 1.0 1 1.0) 1.0) (num-test (/ 1.0 1 1.0+1.0i) 0.5-0.5i) (num-test (/ 1.0 1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0 1 1/1) 1.0) (num-test (/ 1.0 1 123.4) 0.00810372771475) (num-test (/ 1.0 1 1234) 0.00081037277147) (num-test (/ 1.0 1 1234/11) 0.00891410048622) (num-test (/ 1.0 1) 1.0) (num-test (/ 1.0 1.0 -1.0+1.0i) -0.5-0.5i) (num-test (/ 1.0 1.0 0.0+1.0i) 0.0-1.0i) (num-test (/ 1.0 1.0 1) 1.0) (num-test (/ 1.0 1.0 1.0) 1.0) (num-test (/ 1.0 1.0 1.0+1.0i) 0.5-0.5i) (num-test (/ 1.0 1.0 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0 1.0 1/1) 1.0) (num-test (/ 1.0 1.0 123.4) 0.00810372771475) (num-test (/ 1.0 1.0 1234) 0.00081037277147) (num-test (/ 1.0 1.0 1234/11) 0.00891410048622) (num-test (/ 1.0 1.0) 1.0) (num-test (/ 1.0 1.0+1.0i -1.0+1.0i) -0.5) (num-test (/ 1.0 1.0+1.0i 0.0+1.0i) -0.5-0.5i) (num-test (/ 1.0 1.0+1.0i 1) 0.5-0.5i) (num-test (/ 1.0 1.0+1.0i 1.0) 0.5-0.5i) (num-test (/ 1.0 1.0+1.0i 1.0+1.0i) 0.0-0.5i) (num-test (/ 1.0 1.0+1.0i 1.234+1.234i) 0.0-0.40518638573744i) (num-test (/ 1.0 1.0+1.0i 1/1) 0.5-0.5i) (num-test (/ 1.0 1.0+1.0i 123.4) 0.00405186385737-0.00405186385737i) (num-test (/ 1.0 1.0+1.0i 1234) 0.00040518638574-0.00040518638574i) (num-test (/ 1.0 1.0+1.0i 1234/11) 0.00445705024311-0.00445705024311i) (num-test (/ 1.0 1.0+1.0i) 0.5-0.5i) (num-test (/ 1.0 1.234+1.234i -1.0+1.0i) -0.40518638573744) (num-test (/ 1.0 1.234+1.234i 0.0+1.0i) -0.40518638573744-0.40518638573744i) (num-test (/ 1.0 1.234+1.234i 1) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0 1.234+1.234i 1.0) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0 1.234+1.234i 1.0+1.0i) 0.0-0.40518638573744i) (num-test (/ 1.0 1.234+1.234i 1.234+1.234i) 0.0-0.32835201437394i) (num-test (/ 1.0 1.234+1.234i 1/1) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0 1.234+1.234i 123.4) 0.00328352014374-0.00328352014374i) (num-test (/ 1.0 1.234+1.234i 1234) 0.00032835201437-0.00032835201437i) (num-test (/ 1.0 1.234+1.234i 1234/11) 0.00361187215811-0.00361187215811i) (num-test (/ 1.0 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0 1/1 -1.0+1.0i) -0.5-0.5i) (num-test (/ 1.0 1/1 0.0+1.0i) 0.0-1.0i) (num-test (/ 1.0 123.4 -1.0+1.0i) -0.00405186385737-0.00405186385737i) (num-test (/ 1.0 123.4 0.0+1.0i) 0.0-0.00810372771475i) (num-test (/ 1.0 123.4 1) 0.00810372771475) (num-test (/ 1.0 123.4 1.0) 0.00810372771475) (num-test (/ 1.0 123.4 1.0+1.0i) 0.00405186385737-0.00405186385737i) (num-test (/ 1.0 123.4 1.234+1.234i) 0.00328352014374-0.00328352014374i) (num-test (/ 1.0 123.4 1/1) 0.00810372771475) (num-test (/ 1.0 123.4 123.4) 0.00006567040287) (num-test (/ 1.0 123.4 1234) 0.00000656704029) (num-test (/ 1.0 123.4 1234/11) 0.00007223744316) (num-test (/ 1.0 123.4) 0.00810372771475) (num-test (/ 1.0 1234 -1.0+1.0i) -0.00040518638574-0.00040518638574i) (num-test (/ 1.0 1234 0.0+1.0i) 0.0-0.00081037277147i) (num-test (/ 1.0 1234 1) 0.00081037277147) (num-test (/ 1.0 1234 1.0) 0.00081037277147) (num-test (/ 1.0 1234 1.0+1.0i) 0.00040518638574-0.00040518638574i) (num-test (/ 1.0 1234 1.234+1.234i) 0.00032835201437-0.00032835201437i) (num-test (/ 1.0 1234 1/1) 0.00081037277147) (num-test (/ 1.0 1234 123.4) 0.00000656704029) (num-test (/ 1.0 1234 1234) 0.00000065670403) (num-test (/ 1.0 1234 1234/11) 0.00000722374432) (num-test (/ 1.0 1234) 0.00081037277147) (num-test (/ 1.0 1234/11 -1.0+1.0i) -0.00445705024311-0.00445705024311i) (num-test (/ 1.0 1234/11 0.0+1.0i) 0.0-0.00891410048622i) (num-test (/ 1.0 1234/11 1) 0.00891410048622) (num-test (/ 1.0 1234/11 1.0) 0.00891410048622) (num-test (/ 1.0 1234/11 1.0+1.0i) 0.00445705024311-0.00445705024311i) (num-test (/ 1.0 1234/11 1.234+1.234i) 0.00361187215811-0.00361187215811i) (num-test (/ 1.0 1234/11 1/1) 0.00891410048622) (num-test (/ 1.0 1234/11 123.4) 0.00007223744316) (num-test (/ 1.0 1234/11 1234) 0.00000722374432) (num-test (/ 1.0 1234/11 1234/11) 0.00007946118748) (num-test (/ 1.0 1234/11) 0.00891410048622) (num-test (/ 1.0) 1.0) (num-test (/ 1.0+1.0i -1.0+1.0i -1.0+1.0i) -0.5+0.5i) (num-test (/ 1.0+1.0i -1.0+1.0i 0.0+1.0i) -1.0) (num-test (/ 1.0+1.0i -1.0+1.0i 1) -0.0-1.0i) (num-test (/ 1.0+1.0i -1.0+1.0i 1.0) -0.0-1.0i) (num-test (/ 1.0+1.0i -1.0+1.0i 1.0+1.0i) -0.5-0.5i) (num-test (/ 1.0+1.0i -1.0+1.0i 1.234+1.234i) -0.40518638573744-0.40518638573744i) (num-test (/ 1.0+1.0i -1.0+1.0i 1/1) -0.0-1.0i) (num-test (/ 1.0+1.0i -1.0+1.0i 123.4) -0.0-0.00810372771475i) (num-test (/ 1.0+1.0i -1.0+1.0i 1234) -0.0-0.00081037277147i) (num-test (/ 1.0+1.0i -1.0+1.0i 1234/11) -0.0-0.00891410048622i) (num-test (/ 1.0+1.0i -1.0+1.0i) -0.0-1.0i) (num-test (/ 1.0+1.0i 0.0+1.0i -1.0+1.0i) -1.0) (num-test (/ 1.0+1.0i 0.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (/ 1.0+1.0i 0.0+1.0i 1) 1.0-1.0i) (num-test (/ 1.0+1.0i 0.0+1.0i 1.0) 1.0-1.0i) (num-test (/ 1.0+1.0i 0.0+1.0i 1.0+1.0i) 0.0-1.0i) (num-test (/ 1.0+1.0i 0.0+1.0i 1.234+1.234i) 0.0-0.81037277147488i) (num-test (/ 1.0+1.0i 0.0+1.0i 1/1) 1.0-1.0i) (num-test (/ 1.0+1.0i 0.0+1.0i 123.4) 0.00810372771475-0.00810372771475i) (num-test (/ 1.0+1.0i 0.0+1.0i 1234) 0.00081037277147-0.00081037277147i) (num-test (/ 1.0+1.0i 0.0+1.0i 1234/11) 0.00891410048622-0.00891410048622i) (num-test (/ 1.0+1.0i 0.0+1.0i) 1.0-1.0i) (num-test (/ 1.0+1.0i 1 -1.0+1.0i) -0.0-1.0i) (num-test (/ 1.0+1.0i 1 0.0+1.0i) 1.0-1.0i) (num-test (/ 1.0+1.0i 1 1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1 1.0) 1.0+1.0i) (num-test (/ 1.0+1.0i 1 1.0+1.0i) 1.0) (num-test (/ 1.0+1.0i 1 1.234+1.234i) 0.81037277147488) (num-test (/ 1.0+1.0i 1 1/1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1 123.4) 0.00810372771475+0.00810372771475i) (num-test (/ 1.0+1.0i 1 1234) 0.00081037277147+0.00081037277147i) (num-test (/ 1.0+1.0i 1 1234/11) 0.00891410048622+0.00891410048622i) (num-test (/ 1.0+1.0i 1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1.0 -1.0+1.0i) -0.0-1.0i) (num-test (/ 1.0+1.0i 1.0 0.0+1.0i) 1.0-1.0i) (num-test (/ 1.0+1.0i 1.0 1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1.0 1.0) 1.0+1.0i) (num-test (/ 1.0+1.0i 1.0 1.0+1.0i) 1.0) (num-test (/ 1.0+1.0i 1.0 1.234+1.234i) 0.81037277147488) (num-test (/ 1.0+1.0i 1.0 1/1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1.0 123.4) 0.00810372771475+0.00810372771475i) (num-test (/ 1.0+1.0i 1.0 1234) 0.00081037277147+0.00081037277147i) (num-test (/ 1.0+1.0i 1.0 1234/11) 0.00891410048622+0.00891410048622i) (num-test (/ 1.0+1.0i 1.0) 1.0+1.0i) (num-test (/ 1.0+1.0i 1.0+1.0i -1.0+1.0i) -0.5-0.5i) (num-test (/ 1.0+1.0i 1.0+1.0i 0.0+1.0i) 0.0-1.0i) (num-test (/ 1.0+1.0i 1.0+1.0i 1) 1.0) (num-test (/ 1.0+1.0i 1.0+1.0i 1.0) 1.0) (num-test (/ 1.0+1.0i 1.0+1.0i 1.0+1.0i) 0.5-0.5i) (num-test (/ 1.0+1.0i 1.0+1.0i 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0+1.0i 1.0+1.0i 1/1) 1.0) (num-test (/ 1.0+1.0i 1.0+1.0i 123.4) 0.00810372771475) (num-test (/ 1.0+1.0i 1.0+1.0i 1234) 0.00081037277147) (num-test (/ 1.0+1.0i 1.0+1.0i 1234/11) 0.00891410048622) (num-test (/ 1.0+1.0i 1.0+1.0i) 1.0) (num-test (/ 1.0+1.0i 1.234+1.234i -1.0+1.0i) -0.40518638573744-0.40518638573744i) (num-test (/ 1.0+1.0i 1.234+1.234i 0.0+1.0i) 0.0-0.81037277147488i) (num-test (/ 1.0+1.0i 1.234+1.234i 1) 0.81037277147488) (num-test (/ 1.0+1.0i 1.234+1.234i 1.0) 0.81037277147488) (num-test (/ 1.0+1.0i 1.234+1.234i 1.0+1.0i) 0.40518638573744-0.40518638573744i) (num-test (/ 1.0+1.0i 1.234+1.234i 1.234+1.234i) 0.32835201437394-0.32835201437394i) (num-test (/ 1.0+1.0i 1.234+1.234i 1/1) 0.81037277147488) (num-test (/ 1.0+1.0i 1.234+1.234i 123.4) 0.00656704028748) (num-test (/ 1.0+1.0i 1.234+1.234i 1234) 0.00065670402875) (num-test (/ 1.0+1.0i 1.234+1.234i 1234/11) 0.00722374431623) (num-test (/ 1.0+1.0i 1.234+1.234i) 0.81037277147488) (num-test (/ 1.0+1.0i 1/1 -1.0+1.0i) -0.0-1.0i) (num-test (/ 1.0+1.0i 1/1 0.0+1.0i) 1.0-1.0i) (num-test (/ 1.0+1.0i 123.4 -1.0+1.0i) -0.0-0.00810372771475i) (num-test (/ 1.0+1.0i 123.4 0.0+1.0i) 0.00810372771475-0.00810372771475i) (num-test (/ 1.0+1.0i 123.4 1) 0.00810372771475+0.00810372771475i) (num-test (/ 1.0+1.0i 123.4 1.0) 0.00810372771475+0.00810372771475i) (num-test (/ 1.0+1.0i 123.4 1.0+1.0i) 0.00810372771475) (num-test (/ 1.0+1.0i 123.4 1.234+1.234i) 0.00656704028748) (num-test (/ 1.0+1.0i 123.4 1/1) 0.00810372771475+0.00810372771475i) (num-test (/ 1.0+1.0i 123.4 123.4) 0.00006567040287+0.00006567040287i) (num-test (/ 1.0+1.0i 123.4 1234) 0.00000656704029+0.00000656704029i) (num-test (/ 1.0+1.0i 123.4 1234/11) 0.00007223744316+0.00007223744316i) (num-test (/ 1.0+1.0i 123.4) 0.00810372771475+0.00810372771475i) (num-test (/ 1.0+1.0i 1234 -1.0+1.0i) -0.0-0.00081037277147i) (num-test (/ 1.0+1.0i 1234 0.0+1.0i) 0.00081037277147-0.00081037277147i) (num-test (/ 1.0+1.0i 1234 1) 0.00081037277147+0.00081037277147i) (num-test (/ 1.0+1.0i 1234 1.0) 0.00081037277147+0.00081037277147i) (num-test (/ 1.0+1.0i 1234 1.0+1.0i) 0.00081037277147) (num-test (/ 1.0+1.0i 1234 1.234+1.234i) 0.00065670402875) (num-test (/ 1.0+1.0i 1234 1/1) 0.00081037277147+0.00081037277147i) (num-test (/ 1.0+1.0i 1234 123.4) 0.00000656704029+0.00000656704029i) (num-test (/ 1.0+1.0i 1234 1234) 0.00000065670403+0.00000065670403i) (num-test (/ 1.0+1.0i 1234 1234/11) 0.00000722374432+0.00000722374432i) (num-test (/ 1.0+1.0i 1234) 0.00081037277147+0.00081037277147i) (num-test (/ 1.0+1.0i 1234/11 -1.0+1.0i) -0.0-0.00891410048622i) (num-test (/ 1.0+1.0i 1234/11 0.0+1.0i) 0.00891410048622-0.00891410048622i) (num-test (/ 1.0+1.0i 1234/11 1) 0.00891410048622+0.00891410048622i) (num-test (/ 1.0+1.0i 1234/11 1.0) 0.00891410048622+0.00891410048622i) (num-test (/ 1.0+1.0i 1234/11 1.0+1.0i) 0.00891410048622) (num-test (/ 1.0+1.0i 1234/11 1.234+1.234i) 0.00722374431623) (num-test (/ 1.0+1.0i 1234/11 1/1) 0.00891410048622+0.00891410048622i) (num-test (/ 1.0+1.0i 1234/11 123.4) 0.00007223744316+0.00007223744316i) (num-test (/ 1.0+1.0i 1234/11 1234) 0.00000722374432+0.00000722374432i) (num-test (/ 1.0+1.0i 1234/11 1234/11) 0.00007946118748+0.00007946118748i) (num-test (/ 1.0+1.0i 1234/11) 0.00891410048622+0.00891410048622i) (num-test (/ 1.0+1.0i) 0.5-0.5i) (num-test (/ 1.234+1.234i -1.0+1.0i) -0.0-1.234i) (num-test (/ 1.234+1.234i 0.0+1.0i) 1.234-1.234i) (num-test (/ 1.234+1.234i 1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1.0) 1.234+1.234i) (num-test (/ 1.234+1.234i 1.0+1.0i) 1.234) (num-test (/ 1.234+1.234i 1.234+1.234i) 1.0) (num-test (/ 1.234+1.234i 1/1) 1.234+1.234i) (num-test (/ 1.234+1.234i 123.4) 0.01+0.01i) (num-test (/ 1.234+1.234i 1234) 0.001+0.001i) (num-test (/ 1.234+1.234i 1234/11) 0.011+0.011i) (num-test (/ 10) 1/10) (num-test (/ 10/3) 3/10) (num-test (/ 10 3) 10/3) (num-test (/ 10 -3) -10/3) (num-test (/ -10 -3) 10/3) (num-test (/ 11) 1/11) (num-test (/ 123.4 -1.0+1.0i -1.0+1.0i) -0.0+61.7i) (num-test (/ 123.4 -1.0+1.0i 0.0+1.0i) -61.7+61.7i) (num-test (/ 123.4 -1.0+1.0i 1) -61.7-61.7i) (num-test (/ 123.4 -1.0+1.0i 1.0) -61.7-61.7i) (num-test (/ 123.4 -1.0+1.0i 1.0+1.0i) -61.7) (num-test (/ 123.4 -1.0+1.0i 1.234+1.234i) -50.0) (num-test (/ 123.4 -1.0+1.0i 1/1) -61.7-61.7i) (num-test (/ 123.4 -1.0+1.0i 123.4) -0.5-0.5i) (num-test (/ 123.4 -1.0+1.0i 1234) -0.05000000000000-0.05000000000000i) (num-test (/ 123.4 -1.0+1.0i 1234/11) -0.55000000000000-0.55000000000000i) (num-test (/ 123.4 -1.0+1.0i) -61.7-61.7i) (num-test (/ 123.4 0.0+1.0i -1.0+1.0i) -61.7+61.7i) (num-test (/ 123.4 0.0+1.0i 0.0+1.0i) -123.4) (num-test (/ 123.4 0.0+1.0i 1) 0.0-123.4i) (num-test (/ 123.4 0.0+1.0i 1.0) 0.0-123.4i) (num-test (/ 123.4 0.0+1.0i 1.0+1.0i) -61.7-61.7i) (num-test (/ 123.4 0.0+1.0i 1.234+1.234i) -50.0-50.0i) (num-test (/ 123.4 0.0+1.0i 1/1) 0.0-123.4i) (num-test (/ 123.4 0.0+1.0i 123.4) 0.0-1.0i) (num-test (/ 123.4 0.0+1.0i 1234) 0.0-0.1i) (num-test (/ 123.4 0.0+1.0i 1234/11) 0.0-1.10000000000000i) (num-test (/ 123.4 0.0+1.0i) 0.0-123.4i) (num-test (/ 123.4 1 -1.0+1.0i) -61.7-61.7i) (num-test (/ 123.4 1 0.0+1.0i) 0.0-123.4i) (num-test (/ 123.4 1 1) 123.4) (num-test (/ 123.4 1 1.0) 123.4) (num-test (/ 123.4 1 1.0+1.0i) 61.7-61.7i) (num-test (/ 123.4 1 1.234+1.234i) 50.0-50.0i) (num-test (/ 123.4 1 1/1) 123.4) (num-test (/ 123.4 1 123.4) 1.0) (num-test (/ 123.4 1 1234) 0.1) (num-test (/ 123.4 1 1234/11) 1.10000000000000) (num-test (/ 123.4 1) 123.4) (num-test (/ 123.4 1.0 -1.0+1.0i) -61.7-61.7i) (num-test (/ 123.4 1.0 0.0+1.0i) 0.0-123.4i) (num-test (/ 123.4 1.0 1) 123.4) (num-test (/ 123.4 1.0 1.0) 123.4) (num-test (/ 123.4 1.0 1.0+1.0i) 61.7-61.7i) (num-test (/ 123.4 1.0 1.234+1.234i) 50.0-50.0i) (num-test (/ 123.4 1.0 1/1) 123.4) (num-test (/ 123.4 1.0 123.4) 1.0) (num-test (/ 123.4 1.0 1234) 0.1) (num-test (/ 123.4 1.0 1234/11) 1.10000000000000) (num-test (/ 123.4 1.0) 123.4) (num-test (/ 123.4 1.0+1.0i -1.0+1.0i) -61.7) (num-test (/ 123.4 1.0+1.0i 0.0+1.0i) -61.7-61.7i) (num-test (/ 123.4 1.0+1.0i 1) 61.7-61.7i) (num-test (/ 123.4 1.0+1.0i 1.0) 61.7-61.7i) (num-test (/ 123.4 1.0+1.0i 1.0+1.0i) 0.0-61.7i) (num-test (/ 123.4 1.0+1.0i 1.234+1.234i) 0.0-50.0i) (num-test (/ 123.4 1.0+1.0i 1/1) 61.7-61.7i) (num-test (/ 123.4 1.0+1.0i 123.4) 0.5-0.5i) (num-test (/ 123.4 1.0+1.0i 1234) 0.05000000000000-0.05000000000000i) (num-test (/ 123.4 1.0+1.0i 1234/11) 0.55000000000000-0.55000000000000i) (num-test (/ 123.4 1.0+1.0i) 61.7-61.7i) (num-test (/ 123.4 1.234+1.234i -1.0+1.0i) -50.0) (num-test (/ 123.4 1.234+1.234i 0.0+1.0i) -50.0-50.0i) (num-test (/ 123.4 1.234+1.234i 1) 50.0-50.0i) (num-test (/ 123.4 1.234+1.234i 1.0) 50.0-50.0i) (num-test (/ 123.4 1.234+1.234i 1.0+1.0i) 0.0-50.0i) (num-test (/ 123.4 1.234+1.234i 1.234+1.234i) 0.0-40.51863857374392i) (num-test (/ 123.4 1.234+1.234i 1/1) 50.0-50.0i) (num-test (/ 123.4 1.234+1.234i 123.4) 0.40518638573744-0.40518638573744i) (num-test (/ 123.4 1.234+1.234i 1234) 0.04051863857374-0.04051863857374i) (num-test (/ 123.4 1.234+1.234i 1234/11) 0.44570502431118-0.44570502431118i) (num-test (/ 123.4 1.234+1.234i) 50.0-50.0i) (num-test (/ 123.4 1/1 -1.0+1.0i) -61.7-61.7i) (num-test (/ 123.4 1/1 0.0+1.0i) 0.0-123.4i) (num-test (/ 123.4 123.4 -1.0+1.0i) -0.5-0.5i) (num-test (/ 123.4 123.4 0.0+1.0i) 0.0-1.0i) (num-test (/ 123.4 123.4 1) 1.0) (num-test (/ 123.4 123.4 1.0) 1.0) (num-test (/ 123.4 123.4 1.0+1.0i) 0.5-0.5i) (num-test (/ 123.4 123.4 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (/ 123.4 123.4 1/1) 1.0) (num-test (/ 123.4 123.4 123.4) 0.00810372771475) (num-test (/ 123.4 123.4 1234) 0.00081037277147) (num-test (/ 123.4 123.4 1234/11) 0.00891410048622) (num-test (/ 123.4 123.4) 1.0) (num-test (/ 123.4 1234 -1.0+1.0i) -0.05000000000000-0.05000000000000i) (num-test (/ 123.4 1234 0.0+1.0i) 0.0-0.1i) (num-test (/ 123.4 1234 1) 0.1) (num-test (/ 123.4 1234 1.0) 0.1) (num-test (/ 123.4 1234 1.0+1.0i) 0.05000000000000-0.05000000000000i) (num-test (/ 123.4 1234 1.234+1.234i) 0.04051863857374-0.04051863857374i) (num-test (/ 123.4 1234 1/1) 0.1) (num-test (/ 123.4 1234 123.4) 0.00081037277147) (num-test (/ 123.4 1234 1234) 0.00008103727715) (num-test (/ 123.4 1234 1234/11) 0.00089141004862) (num-test (/ 123.4 1234) 0.1) (num-test (/ 123.4 1234/11 -1.0+1.0i) -0.55000000000000-0.55000000000000i) (num-test (/ 123.4 1234/11 0.0+1.0i) 0.0-1.10000000000000i) (num-test (/ 123.4 1234/11 1) 1.10000000000000) (num-test (/ 123.4 1234/11 1.0) 1.10000000000000) (num-test (/ 123.4 1234/11 1.0+1.0i) 0.55000000000000-0.55000000000000i) (num-test (/ 123.4 1234/11 1.234+1.234i) 0.44570502431118-0.44570502431118i) (num-test (/ 123.4 1234/11 1/1) 1.10000000000000) (num-test (/ 123.4 1234/11 123.4) 0.00891410048622) (num-test (/ 123.4 1234/11 1234) 0.00089141004862) (num-test (/ 123.4 1234/11 1234/11) 0.00980551053485) (num-test (/ 123.4 1234/11) 1.10000000000000) (num-test (/ 1234 -1.0+1.0i) -617.0-617.0i) (num-test (/ 1234 0.0+1.0i) 0.0-1234.0i) (num-test (/ 1234 1) 1234) (num-test (/ 1234 1.0) 1234.0) (num-test (/ 1234 1.0+1.0i) 617.0-617.0i) (num-test (/ 1234 1.234+1.234i) 500.0-500.0i) (num-test (/ 1234 1/1) 1234) (num-test (/ 1234 123.4) 10.0) (num-test (/ 1234 1234) 1) (num-test (/ 1234 1234/11) 11) (num-test (/ 1234/11 -1.0+1.0i) -56.09090909090909-56.09090909090909i) (num-test (/ 1234/11 0.0+1.0i) 0.0-112.18181818181819i) (num-test (/ 1234/11 1) 1234/11) (num-test (/ 1234/11 1.0) 112.18181818181819) (num-test (/ 1234/11 1.0+1.0i) 56.09090909090909-56.09090909090909i) (num-test (/ 1234/11 1.234+1.234i) 45.45454545454546-45.45454545454546i) (num-test (/ 1234/11 1/1) 1234/11) (num-test (/ 1234/11 123.4) 0.90909090909091) (num-test (/ 1234/11 1234) 1/11) (num-test (/ 1234/11 1234/11) 1) (num-test (/ 1234000000) 1/1234000000) (num-test (/ 1234000000.0) 0.00000000081037) (num-test (/ 1234000000.0+2.71828182845905i) 0.00000000081037-0.0i) (num-test (/ 1234000000/10) 10/1234000000) (num-test (/ 2) 1/2) (num-test (/ 2.71828182845905) 0.36787944117144) (num-test (/ 2.71828182845905+3.14159265358979i) 0.15750247989732-0.18202992367723i) (num-test (/ 2/2) 2/2) (num-test (/ 362880) 1/362880) (num-test (/ 362880/1234) 1234/362880) #; (for-each-permutation (lambda (a b c d) (if (not (= (/ a b c d) (/ a (* b c d)))) (format #t "~A: ~A != ~A?~%" (port-line-number) (/ a b c d) (/ a (* b c d))))) '(1 1/2 0.5 1+i)) (num-test (/ -9223372036854775808 5.551115123125783999999999999999999999984E-17) -1.661534994731144452653560599947843044136E35) (num-test (/ 1.110223024625156799999999999999999999997E-16 -9223372036854775808) -1.203706215242022689593248685469006886702E-35) (num-test (/ 1.110223024625156799999999999999999999997E-16 5.551115123125783999999999999999999999984E-17 5.42101086242752217060000000000000000001E-20) 3.689348814741910322817021726897015792169E19) (num-test (/ 5.551115123125783999999999999999999999984E-17 1.110223024625156799999999999999999999997E-16) 5.000E-1) (num-test (/ 9223372036854775807 9223372036854775807) 1) (num-test (/ (* 2 3 4 5 6 7 8 9 10) (* 2 (expt (log 2) 11))) 102247563.00527) (num-test (/ 1 (/ 1 1234)) 1234) (num-test (/ 1.0 (/ 1.0 1.0+1.0i)) 1.0+1.0i) (num-test (/ 1.0 (/ 1.0 pi)) pi) (num-test (/ 1/123412341234) 123412341234) (num-test (/ 1/98947 2/97499 3/76847) 7492505653/593682) (num-test (/ 123412341234) 1/123412341234) (num-test (/ 500009/500029 500057/500041) 250025000369/250043001653) (num-test (/ -9223372036854775808 -9223372036854775808 4) 1/4) (num-test (/ -9223372036854775808 2) -4611686018427387904) (num-test (/ 0 -00-1i) 0.0) (num-test (/ 0+i) 0-1i) (num-test (/ 0-i) 0+i) (num-test (/ 1+i) 1/2-1/2i); (num-test (/ 1.0 1/524288 1/19073486328125) 1.000000000000000024754073164739868757037E19) (num-test (/ 1/10 010) 1/100) (num-test (/ 1/9223372036854775807 1/9223372036854775807) 1) (num-test (/ 1234567890/9223372036854775807 123456789/9223372036854775807) 10) (num-test (/ 2 -9223372036854775808) -1/4611686018427387904) (num-test (/ 2/9223372036854775807 2/3) 3/9223372036854775807) (num-test (/ 9223372036854775807/123456789 9223372036854775807/123456789) 1) (num-test (/ 9223372036854775807/1234567890 9223372036854775807/12345678900) 10) (num-test (/ most-negative-fixnum most-negative-fixnum 2) 1/2) (num-test (/ most-negative-fixnum most-negative-fixnum) 1) (num-test (/(*(/(*)))) 1) (num-test (/ 12341234/111 123456789 12341234/111) 1/123456789) (num-test (/ 1e63 1e-63) 1e126) (num-test (/ 1e154 1e-154) 1e308) ; else inf (num-test (/ 1e-200 1e200) 0.0) ;;; inaccuracies creep in (/ 1e-200 1e123) => 9.8813129168249e-324 ;;; or (/ 10e307 1e309) => 0.0 and (/ 10e308 1e308) => inf ;;; might be neat to handle these (if exps= just divide mant? (num-test (/ -0.651381628953465E0 -0.9237050214744277E0) 7.051835962889135018948026610294923703508E-1) (num-test (/ 0.5067986732438687E0 0.6260017267692811E0) 8.095803119575965307784422745290898299591E-1) (num-test (/ -0.8399445051045212E0 0.1829250718359493E0) -4.591740742120902283769244624290448381427E0) (num-test (/ -0.5987041550692662E0 -0.4124053212463479E0) 1.451737221187875469260813375116670894624E0) (num-test (/ 0.5861382519823647E0 -0.7560374696447822E0) -7.752767230673855251634630463492900473644E-1) (num-test (/ -0.012882644582824954E0 -0.4671067448591679E0) 2.757965866390787237919533761751626109973E-2) (num-test (/ -0.7830198970435231E0 2.1690164135025935E9) -3.610022921767930828778117437420472499541E-10) (num-test (/ -0.2339206226652567E0 2.729373380002701E9) -8.570488170622710029144125942503181451939E-11) (num-test (/ -0.2285806315782951E0 -2.602073870582813E9) 8.784555817667757706754728345837912936962E-11) (num-test (/ -0.5298716781559242E0 1.3509547453340487E9) -3.922201539215168658138266422439019362809E-10) (num-test (/ 0.7287190523338418E0 -8.244205871151566E9) -8.839166121309546680006433484161854320415E-11) (num-test (/ 0.18973054487786212E0 6.557593452200545E9) 2.893295326415727180554709812740977209383E-11) (num-test (/ 0.5084032300982587E0 4.5431682148621014E-11) 1.119049980221104893780059617560389832312E10) (num-test (/ 0.6621212705475221E0 -1.838873437953206E-11) -3.6006897314505184969089186237646638616E10) (num-test (/ -0.4041791750277005E0 7.707875701307648E-11) -5.243716825365141031107302892929967408104E9) (num-test (/ -0.09569063343466655E0 4.789751448902253E-11) -1.9978204392338054187984205729651608099E9) (num-test (/ -0.6471008513340974E0 1.890250884404079E-11) -3.423359600956370337454713673029890117878E10) (num-test (/ -0.4301276572683971E0 9.134844738134672E-11) -4.708647706651977799170970961042517830565E9) (num-test (/ -0.5061027989171409E0 4.246468515299164E19) -1.191820443490291421327933820140392588455E-20) (num-test (/ -0.9601783702217944E0 7.495754288877955E19) -1.280962973461506313537075112900039769719E-20) (num-test (/ -0.6477754868655262E0 -8.507334914535449E19) 7.614317449272520944989386124046318248581E-21) (num-test (/ 0.1934462826116784E0 3.6173521417193476E19) 5.347731573618163299262146929108634114511E-21) (num-test (/ -0.7794308505212441E0 4.172217291786081E19) -1.868145391314406352823434511710862322776E-20) (num-test (/ -0.8462346361305484E0 7.378170819620111E19) -1.146943675904374803577079154661818066039E-20) (num-test (/ 0.9783005897625496E0 6.175045007596078E-21) 1.584280905740958108982369263614665552851E20) (num-test (/ -0.9700832605850568E0 -1.7695051741124812E-21) 5.4822290139480091183029856440319954731E20) (num-test (/ 0.07062591404368701E0 -8.855398515753737E-21) -7.975464223100026969579387130724758972895E18) (num-test (/ 0.4751383409805402E0 -8.1371029771106E-21) -5.839158510308749293926976970601471638106E19) (num-test (/ -0.5103510786836052E0 8.302178001281015E-21) -6.147195092719750272554937885528717433502E19) (num-test (/ 0.7148807879199733E0 4.338856119331781E-21) 1.647625015115898182854639201045676562387E20) (num-test (/ 4.180670608983218E9 -0.8621420131862095E0) -4.849167010818503318377538718886882159085E9) (num-test (/ 3.202209376555907E9 0.008113117870009012E0) 3.946952858152361317410218375892707092144E11) (num-test (/ 7.767843042272955E9 -0.04145956871894663E0) -1.87359475322354819500790198613468533242E11) (num-test (/ 1.1937839884817846E9 0.45557753834605563E0) 2.620374992181877679062077123717269598672E9) (num-test (/ -2.4205138097471213E9 -0.3737757916008485E0) 6.475844247109412171348144805246962117951E9) (num-test (/ -7.534066568550288E9 -0.3609372553147958E0) 2.087361849632108651836399241353567759856E10) (num-test (/ 6.098867840095913E9 3.0464612528039427E9) 2.001951554277132357084991750811780094278E0) (num-test (/ 4.956687716396978E9 7.035407926465974E9) 7.045345157244949942198957065331702603612E-1) (num-test (/ 6.969049109639194E9 -8.115758334653503E9) -8.587058438990264159516222429259889060394E-1) (num-test (/ -8.0699835500126705E9 -1.1896420666819375E9) 6.783539163608157717597859343396495021042E0) (num-test (/ -2.229793060172571E9 -2.658809828346301E9) 8.386433043838395143199282594014446842336E-1) (num-test (/ 3.0672739776038485E9 -7.988270854370873E9) -3.839722054398737311833139439634292109412E-1) (num-test (/ 2.477055391151669E9 -1.3522358047779648E-11) -1.831822070085178675709536653203693354871E20) (num-test (/ 1.1318646612469008E9 -8.457695758685169E-11) -1.338265992938554414702828284241585726631E19) (num-test (/ -7.978772126259147E9 6.210468872769038E-11) -1.284729428601367805018001112036580297153E20) (num-test (/ -9.057338243339752E9 7.364415429198257E-11) -1.22987877726580108212627205863468836645E20) (num-test (/ -5.341117220720213E9 4.7359651161519756E-11) -1.127777990277920421924982539741683693507E20) (num-test (/ 5.838003830912871E9 -5.0625478501901024E-11) -1.153175042225753978331600642680269130096E20) (num-test (/ 6.407156672927742E9 5.006339136594536E19) 1.279808758079079048751288572047629634958E-10) (num-test (/ 4.687485139826675E8 -3.5561755068968083E19) -1.318125365504547538826162177354689732851E-11) (num-test (/ -5.838044723576891E9 -6.843985743599882E19) 8.530182473036721969937888742798001972008E-11) (num-test (/ 3.9279221543350096E9 -5.882918042982924E19) -6.676826237652909876656284584084555589571E-11) (num-test (/ -9.686323716926361E9 -3.44800215666902E19) 2.809256861452760638746791455737599480861E-10) (num-test (/ 7.301304808910639E9 1.2845297359643038E19) 5.684029419085037872687787191413868358377E-10) (num-test (/ 4.380345662298534E9 -4.352751895415198E-21) -1.006339384266859136854551985691861659542E30) (num-test (/ 8.239490918139045E9 3.2397577733346748E-21) 2.543242888698483402490821850315555889368E30) (num-test (/ 3.8980499504872713E9 8.311650110069505E-21) 4.689862901910189296816144765858628505003E29) (num-test (/ -9.425472285331268E9 -3.294031046828316E-21) 2.861379310436876111669825630018089608938E30) (num-test (/ 2.517833161624173E9 3.6891560299469316E-21) 6.824957093669990747641669780362243770063E29) (num-test (/ -5.463519676339016E9 -7.298583081866205E-22) 7.485726496576409428699223883071063828111E30) (num-test (/ 1.39357009199772E-11 0.417842407627649E0) 3.335157146709649079791043787228216537723E-11) (num-test (/ 8.58494900746665E-11 -0.6481371063028898E0) -1.324557554872456302657963676252150750478E-10) (num-test (/ -9.310282234439046E-11 0.9146343299129254E0) -1.017923986663107128254299604028521252096E-10) (num-test (/ -8.800556770159418E-11 -0.9305573406536135E0) 9.457296596014170681132977631993414317205E-11) (num-test (/ -1.3361456473382827E-11 0.06420301636905124E0) -2.081125970247038707404762086321230923761E-10) (num-test (/ 6.1406425153971765E-12 -0.3082496074575478E0) -1.992100676476244033296635444865296145538E-11) (num-test (/ -3.6962256202372035E-11 3.089420488573177E9) -1.196413901541863127466123235969256148157E-20) (num-test (/ -6.145126590884831E-11 -6.225608984106817E9) 9.870723661849873241350389006374300024184E-21) (num-test (/ 9.052281678541901E-11 -6.9187138778508625E9) -1.308376359878287335554324548627653637652E-20) (num-test (/ -3.4950245360118636E-11 7.543342567738434E9) -4.633257080169574405642456881139071687897E-21) (num-test (/ -3.482822570743636E-11 -3.87599225187502E9) 8.985628309909063146939690605121402184145E-21) (num-test (/ -9.42226868788213E-11 7.501937454180854E9) -1.25597803839741017709728590003874245271E-20) (num-test (/ -4.8165035309367155E-11 9.484620130429997E-11) -5.078225026096383416618039442767276425835E-1) (num-test (/ 6.880022773725747E-11 -9.699156104509544E-11) -7.093424107822057000929770558471489984227E-1) (num-test (/ 1.5817962388036865E-11 -7.11651152335492E-11) -2.222712959309569253469449863287830842251E-1) (num-test (/ -7.0140750853949335E-12 -4.4677941652531186E-11) 1.569919030725435801904141818366904619636E-1) (num-test (/ -2.6947489262085355E-11 8.365454450205894E-11) -3.221282169723859093984652053864584015511E-1) (num-test (/ 8.703167674410303E-11 -4.88739813223768E-11) -1.780736383435491638475146912252252561499E0) (num-test (/ 1.165112061543483E-12 -5.899528740399518E19) -1.974923952086012268924127751659019857389E-32) (num-test (/ 7.126386981630328E-12 5.091741402945837E19) 1.399597194293359595983101664952569614126E-31) (num-test (/ -7.132349854872655E-13 7.70347159367981E19) -9.258617712985762871283798832641751905855E-33) (num-test (/ 4.507266517270466E-11 -1.6192737232544485E19) -2.78351118315665136913517665604742725923E-30) (num-test (/ -3.025128309814261E-11 -5.606736896306867E19) 5.395523930874836927233660478269495795871E-31) (num-test (/ -5.390258677516223E-11 6.628750121976767E18) -8.131636550373975963243412569165785520017E-30) (num-test (/ -8.484515181627938E-11 6.226893371743352E-21) -1.362559895457550846279271972989853630227E10) (num-test (/ 5.110456708789676E-11 -7.434814854731122E-21) -6.873683889434922905934754874417370413592E9) (num-test (/ -7.784815533665352E-11 -8.942884975553875E-21) 8.705038200698988300091363733020271337225E9) (num-test (/ 6.06871371776654E-11 -8.4720755768444E-21) -7.163195916657483482294943699821186479438E9) (num-test (/ 6.395725883763629E-11 3.2465500186809204E-21) 1.970006883295217146112013920243427167994E10) (num-test (/ 8.23766365482318E-11 3.5665958051648335E-21) 2.309671211661863324131996575306264215863E10) (num-test (/ -6.882125490660233E19 0.680553203393516E0) -1.011254587641810638505458546065261498221E20) (num-test (/ -8.955858402134752E19 0.11144092291315044E0) -8.036418012361891226885340978581557821805E20) (num-test (/ 4.517225460957592E19 -0.5804969398143229E0) -7.781652496570381006264991321295105224966E19) (num-test (/ -9.741926397385082E19 -0.9037000739789977E0) 1.078004381972805693752225428081454781542E20) (num-test (/ 9.654390326446178E19 -0.061963385089831124E0) -1.558079874501654704495847314268744072438E21) (num-test (/ 9.50855454738802E19 0.30375471599023185E0) 3.130339727036137864357134952530976170215E20) (num-test (/ 4.323538184184934E19 -2.6027608151521606E9) -1.661135421670382968923474255247239383096E10) (num-test (/ 4.0554081767557594E17 4.814123702784068E9) 8.423979995384136048633041200603888010585E7) (num-test (/ 5.12727309625028E19 1.761988796449604E9) 2.909935129316203535920673855950717437829E10) (num-test (/ -7.335661993746345E19 -4.961351435504E9) 1.478561252736806087045652086640747044774E10) (num-test (/ 3.7135994768593306E18 3.273427798269768E8) 1.134468118961482490398408895662653948827E10) (num-test (/ 1.3911083524706402E19 8.651242909451927E9) 1.607986698594236535694138981270724564992E9) (num-test (/ 6.473382688386894E19 -3.700509647679497E-11) -1.74932193257385527761113361595002688054E30) (num-test (/ 7.25328632809461E19 6.793518758100849E-11) 1.0676773828651782212117989476182162163E30) (num-test (/ 7.053090091571119E19 8.009021819073383E-11) 8.806431360661641824334823520600629499368E29) (num-test (/ -1.6322872380348074E19 -1.234889420758779E-11) 1.32180842316378978004378947103470484747E30) (num-test (/ -7.716951191497702E19 -2.473367210466666E-11) 3.120018393888910452644610629695438606501E30) (num-test (/ -2.1174708383466066E19 -9.66632270128099E-11) 2.190565020207733610503619470750854251338E29) (num-test (/ 4.0902039392392786E18 -5.029423690873208E19) -8.132549951322828067822875337940065787516E-2) (num-test (/ 1.4562115759233494E17 4.2665150414889705E19) 3.413117173530803542079920263107168159861E-3) (num-test (/ -3.309692589578652E19 1.1329455009949342E19) -2.92131667999222745140457080629099499358E0) (num-test (/ 3.059130103268258E19 -7.719433592654628E19) -3.962894513632647141286488246687660445133E-1) (num-test (/ 5.622979366632147E19 -8.407251901594788E19) -6.688248945610292804540334084533940238665E-1) (num-test (/ -7.457587910839625E18 1.102755747735572E19) -6.762683328700153669243467171164281736437E-1) (num-test (/ 1.2026615920578564E19 -3.77964792582931E-21) -3.181940793583240608441984111790776956096E39) (num-test (/ -2.74643694419756E19 2.538907641816601E-22) -1.08173960287601117923133084738647095934E41) (num-test (/ 8.267361397156658E18 -4.986401395715489E-21) -1.657981526368955793956856573504468676464E39) (num-test (/ 9.876393891158812E19 -5.792612775193684E-22) -1.704998119925007613535922021885867984527E41) (num-test (/ 3.927461252713038E17 4.810589424292295E-21) 8.164199656866003466542429981600313024025E37) (num-test (/ 7.29943837795987E19 -4.8820727437034755E-21) -1.495151498382347474354240468822304376928E40) (num-test (/ -7.837850970911807E-21 0.41514160181315674E0) -1.887994587070894820872902637806483134671E-20) (num-test (/ 1.1499234744049124E-21 0.4643166529612681E0) 2.476593219457143961012942936990797968514E-21) (num-test (/ -1.094368243984769E-21 0.9008053219044149E0) -1.214877640455251662856715755193246361763E-21) (num-test (/ 2.4821206327531197E-21 0.22988631081892086E0) 1.079716588565493668307955174993650571244E-20) (num-test (/ -4.56226662576732E-22 0.6695285124602162E0) -6.814148375851898788485451948577541009839E-22) (num-test (/ 6.442796853653397E-21 -0.0419134640377401E0) -1.537166397855380228851954699451812058468E-19) (num-test (/ -5.584403218169678E-21 -8.092869169805251E9) 6.900399723506295845105466793248363429626E-31) (num-test (/ -9.796722996869492E-21 -3.2988270899833827E9) 2.969759471970033259328414098139420231204E-30) (num-test (/ 9.441829923771915E-22 5.464575083746736E9) 1.727825087783076315606418411938950517056E-31) (num-test (/ -6.419360319610147E-21 -7.333962810289677E9) 8.752921831841952013186922455457072581443E-31) (num-test (/ 7.973734412555454E-21 -9.367577614661436E9) -8.512055880994845185202464827966401354632E-31) (num-test (/ 8.105484193881594E-21 -8.664550975192905E9) -9.354765431108951260398341387461553707907E-31) (num-test (/ -5.3151708182942476E-21 -3.406928289732576E-11) 1.560106455516695805992469791379650741489E-10) (num-test (/ -7.026602845639829E-21 -9.92483846943868E-11) 7.079815824989676856562805642631867847741E-11) (num-test (/ -5.901970468193158E-21 2.074489043942647E-11) -2.845023686881582124910812196899705492945E-10) (num-test (/ -6.40466723844613E-21 -2.551008177490094E-11) 2.510641594550905909683475044031419810602E-10) (num-test (/ 8.056066940872177E-21 4.645883100460603E-11) 1.734022739417072488146823616965762354533E-10) (num-test (/ 7.453765056481805E-21 6.956136187014756E-11) 1.071538114851171096483487539186715128913E-10) (num-test (/ 7.357434693258832E-21 -7.093525088486332E19) -1.037204295675341715303117810431180096085E-40) (num-test (/ -3.3759558579798473E-21 9.991075630444324E19) -3.378971376908405498870850768959668870304E-41) (num-test (/ 6.908026973557955E-21 -4.20805893397862E19) -1.641618399822784611549409240045335916762E-40) (num-test (/ 5.181767322756247E-21 7.46986056263721E19) 6.936899664063931551045422017869651239957E-41) (num-test (/ -5.7217313601659264E-21 5.604979023134118E19) -1.020830111326005351069300302415295512527E-40) (num-test (/ -9.340193892824771E-21 9.147101848766205E19) -1.021109641857175884684740262364588092125E-40) (num-test (/ 8.331002176099931E-21 2.0276444314093977E-21) 4.108709617449606347005645831416724715479E0) (num-test (/ -3.747505523684784E-21 4.394623185543803E-21) -8.527478615259381231018127145394525879915E-1) (num-test (/ -3.310403953328861E-21 2.3420390876737627E-21) -1.413470838617356120752866783055539347411E0) (num-test (/ 6.23845405853013E-21 -8.933620117412232E-21) -6.983119918397872761237650028889120834928E-1) (num-test (/ -4.276770609150315E-21 6.853299965034864E-21) -6.240454424832049912604789277138688124888E-1) (num-test (/ -8.847946637724495E-21 6.33827952828724E-21) -1.395953996386055439061738621964402924048E0) (for-each (lambda (num-and-val) (let ((num (car num-and-val)) (val (cadr num-and-val))) (num-test-1 / num (/ num) val))) (list (list 1 1) (list 2 1/2) (list 3 1/3) (list -1 -1) (list -2 -1/2) (list -3 -1/3) (list 9223372036854775807 1/9223372036854775807) (list 1/2 2) (list 1/3 3) (list -1/2 -2) (list -1/3 -3) (list 1/9223372036854775807 9223372036854775807) (list 1.0 1.0) (list 2.0 0.5) (list -2.0 -0.5) (list 1e+16 1e-16) (list +inf.0 0.0) (list -inf.0 0.0) (list 0+1i 0-1i) (list 0+2i 0-0.5i) (list 0-1i 0+1i) (list 1+1i 0.5-0.5i) (list 1-1i 0.5+0.5i) (list -1+1i -0.5-0.5i) (list -1-1i -0.5+0.5i) (list 0.1+0.1i 5-5i) (list 1e+16+1e+16i 5e-17-5e-17i) (list 1e-16+1e-16i 5e+15-5e+15i) )) (num-test (/ -8) -1/8) (num-test (/ 0 2/3) 0) (num-test (/ 1e-10 1e10) 1e-20) (num-test (/ 4 2) 2) (num-test (/ -9223372036854775808 -9223372036854775808) 1) (num-test (/ -9223372036854775808 9223372036854775807) -9223372036854775808/9223372036854775807) (num-test (/ most-positive-fixnum most-positive-fixnum) 1) (num-test (/ (/ 1 most-positive-fixnum)) most-positive-fixnum) (num-test (/ (/ -1 most-positive-fixnum)) (- most-positive-fixnum)) ;; Flonum precision ;(num-test (/ 1.0e308+1.0e308i 2.0e308+2.0e308i) (/ 1.0e307+1.0e307i 2.0e307+2.0e307i)) ;; This seems wrong? ;(num-test (/ (+ 1.2345e-15 1 -1)) 8.1004455245038e+14) (num-test (/ -1.797693134862315699999999999999999999998E308 -9223372036854775808) 1.949062802279999590850112500817203908808E289) (num-test (/ -1/19073486328125 524288) -1/10000000000000000000) (num-test (/ -1/524288 19073486328125) -1/10000000000000000000) (num-test (/ -1024 1/9765625 1/512 1/1953125) -10000000000000000000) (num-test (/ -21 -1/2432902008176640000) 51090942171709440000) (num-test (/ -21 1/2432902008176640000) -51090942171709440000) (num-test (/ -2432902008176640000 -1/21) 51090942171709440000) (num-test (/ -2432902008176640000 1/21) -51090942171709440000) (num-test (/ -9223372036854775808 -9223372036854775808 -9223372036854775808) -1/9223372036854775808) (num-test (/ -9223372036854775808 -9223372036854775808) 1) (num-test (/ -9223372036854775808 9223372036854775807 -9223372036854775808) 1/9223372036854775807) (num-test (/ 0+1e20i 0-1e20i) -1.0) (num-test (/ 1 1000000000 1000000000 1000000000) 1/1000000000000000000000000000) (num-test (/ 1.0e20+i 1.0e20+i) 1.0) (num-test (/ 1/1024 9765625 -512 1953125) -1/10000000000000000000) (num-test (/ 1/1024 9765625 512 1953125) 1/10000000000000000000) (num-test (/ 1/19073486328125 524288) 1/10000000000000000000) (num-test (/ 1/524288 19073486328125) 1/10000000000000000000) (num-test (/ 1/9223372036854775807 1/3) 3/9223372036854775807) (num-test (/ 1/9223372036854775807 1/9223372036854775806) 9223372036854775806/9223372036854775807) (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 1855154611405774907304533/71241840) (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981) 27854756105850886733/11873640) (num-test (/ 1024 1/9765625 1/512 1/1953125) 10000000000000000000) (num-test (/ 132120577/12 33292289/6 260046847/4) 264241154/8657554783862783) (num-test (/ 1e20 0+i) 0-1e20i) (num-test (/ 21 -1/2432902008176640000) -51090942171709440000) (num-test (/ 21 1/2432902008176640000) 51090942171709440000) (num-test (/ 2432902008176640000 -1/21) -51090942171709440000) (num-test (/ 2432902008176640000 1/21) 51090942171709440000) (num-test (/ 500009/500029 500057/500041 500083/500069) 125029751909525461/125042254395637199) (num-test (/ 9223372036854775807 -9223372036854775808) -9223372036854775807/9223372036854775808) (num-test (/ 98947 2/97499 76847 4/61981 5/59981) 35865350012435458633/3073880) ;; Makes assumptions about fixnum size ;(num-test (/ most-negative-fixnum) -1/9223372036854775808) (num-test (/ 10105597264942543888 14352488138967388642) 5052798632471271944/7176244069483694321) (num-test (/ -17631701977702695093 3931860028646338313) -17631701977702695093/3931860028646338313) (num-test (/ -1606495881715082381 16324360910828438638) -1606495881715082381/16324360910828438638) (num-test (/ -7960193178071300653 -10280747961248435844) 7960193178071300653/10280747961248435844) (num-test (/ -11544909483975853384 -16041992360613233027) 11544909483975853384/16041992360613233027) (num-test (/ -5758820541298901548 -2596462557714095861) 5758820541298901548/2596462557714095861) (num-test (/ -13056342734667572546 46502284983183419157350605242474199851) -13056342734667572546/46502284983183419157350605242474199851) (num-test (/ 12668118634717482325 -338544675918656078399121171905238525746) -12668118634717482325/338544675918656078399121171905238525746) (num-test (/ -16738429327795346815 164053836541028518093058940786011794219) -16738429327795346815/164053836541028518093058940786011794219) (num-test (/ -9884600460121235549 -53914696297933680001835530599748561584) 9884600460121235549/53914696297933680001835530599748561584) (num-test (/ 6753521264659576004 71759828079371803409570464915096122874) 3376760632329788002/35879914039685901704785232457548061437) (num-test (/ -6072478784520825268 83641961138289700975241455431547940418) -3036239392260412634/41820980569144850487620727715773970209) (num-test (/ -6708950756971973620 -9847903810677323447803434015107261150885944735136350527205856921771320298384705376646797569973415403097847060539915279223391112430240736564839483430569706) 3354475378485986810/4923951905338661723901717007553630575442972367568175263602928460885660149192352688323398784986707701548923530269957639611695556215120368282419741715284853) (num-test (/ 11263779860755455072 2292311486393743282743453705144070351222990311578446825826935237655927864700827857707370158936582804478427014131790879562565658386819339761919809732496450) 1877296643459242512/382051914398957213790575617524011725203831718596407804304489206275987977450137976284561693156097134079737835688631813260427609731136556626986634955416075) (num-test (/ 9956488981426387585 -12351244248621474338537656633137999145154500022264356186225225426288301330225259889671144104952158102155582320296061124840400655528634050137479515338944145) -1991297796285277517/2470248849724294867707531326627599829030900004452871237245045085257660266045051977934228820990431620431116464059212224968080131105726810027495903067788829) (num-test (/ -14875992781716065391 4906952781757522095285156014969507916562921709689447567404076064849249737893410245743456952512717420040816186768213920574809530298070437840356629617118643) -2125141825959437913/700993254536788870755022287852786845223274529955635366772010866407035676841915749391922421787531060005830883824030560082115647185438633977193804231016949) (num-test (/ 16043178952268979636 -4962728781666935768923030490263743715131420507991284894489828489607808897271220927863958149140648859077934323268424257800724618076505149638049461104621679) -5347726317422993212/1654242927222311922974343496754581238377140169330428298163276163202602965757073642621319383046882953025978107756141419266908206025501716546016487034873893) (num-test (/ -14889985628902581941 3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361) -14889985628902581941/3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361) (num-test (/ -1719613957783789857 19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758) -1719613957783789857/19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758) (num-test (/ -10969623867482498359 1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595) -10969623867482498359/1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595) (num-test (/ -3716891004757979686 -19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987) 3716891004757979686/19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987) (num-test (/ -4863232114852441787 -22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720) 4863232114852441787/22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720) (num-test (/ -16248276650501285553 -3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159) 16248276650501285553/3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159) (num-test (/ 18296946401228630959 3302341071702763311560113831030141639804425031433511503765833897787925467295486187687396312611805794369889470239777040624530990622212474466940548049117664906468330871893337410618797113677420975837622378808494314918471282099855916016026079371666730617071364751834080179173620476977670099126230223862266413091012344741482772771219725893630556702028108027870656512750807359335108428687238687397060104669074315031780019301768744978815422943986587389425726602444937024004102212071953113581935989741954695450085391443134273670514145585869912689150728183940456773133212037846765421397201956541430155664614978559762638030787) 494512064898071107/89252461397371981393516590027841665940660135984689500101779294534808796413391518586145846286805562009997012709183163260122459206005742553160555352678855808282927861402522632719426949018308675022638442670499846349147872489185295027460164307342344070731658506806326491329016769648045137814222438482763957110567901209229264128951884483611636667622381298050558284128400198900948876451006451010731354180245251757615676197345101215643660079567205064579073691957971270919029789515458192258971242965998775552705010579544169558662544475293781424031100761728120453327924649671534200578302755582200815017962566988101692919751) (num-test (/ -60488682170925814337492051725122486652 14880088785789146426) -30244341085462907168746025862561243326/7440044392894573213) (num-test (/ 126617729996196635247771282957911941277 -7166506344996883172) -126617729996196635247771282957911941277/7166506344996883172) (num-test (/ -278675896803726074870988122161067771390 7744689831802931490) -27867589680372607487098812216106777139/774468983180293149) (num-test (/ -283351838662873779255871649630248958879 6912311315831153835) -14913254666467041013466928927907839941/363805858727955465) (num-test (/ -9715584046609700027352634666499181378 3368831995960494221) -9715584046609700027352634666499181378/3368831995960494221) (num-test (/ -137493547985106345282009151869389470397 -1916381539906956855) 137493547985106345282009151869389470397/1916381539906956855) (num-test (/ -328662747577960331872949773416436800743 -231069430804205460334599495337085157308) 328662747577960331872949773416436800743/231069430804205460334599495337085157308) (num-test (/ 213595640581249636406536485951630735277 -48492294677143227478357598229530842959) -213595640581249636406536485951630735277/48492294677143227478357598229530842959) (num-test (/ 85922846498729014445816145204889624189 193533957681757355413031965695625196813) 85922846498729014445816145204889624189/193533957681757355413031965695625196813) (num-test (/ 24053342958857142686054803491202486471 196417511107100936775397820630955772553) 24053342958857142686054803491202486471/196417511107100936775397820630955772553) (num-test (/ 102038936612518756467074084117019701214 -111946989731587760700903475996379168167) -102038936612518756467074084117019701214/111946989731587760700903475996379168167) (num-test (/ -3006867214208872584699983438179656913 -234257597822744479264249663225224173340) 3006867214208872584699983438179656913/234257597822744479264249663225224173340) (num-test (/ -279839802710533516603863620922251878907 -3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219) 279839802710533516603863620922251878907/3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219) (num-test (/ 123635964546481689465778244982425098404 7701433613491146708866098469269971554817017737111287276993583150548359764165526640986060909954451793171933304569726872785964805121981749276421956645830854) 61817982273240844732889122491212549202/3850716806745573354433049234634985777408508868555643638496791575274179882082763320493030454977225896585966652284863436392982402560990874638210978322915427) (num-test (/ 166158110049010486343321316578688184578 4093720847216792748840371965199135052196058344862447621818024731938681519017878880275303125899149558774718190527651555811733139227128378041055212888819294) 83079055024505243171660658289344092289/2046860423608396374420185982599567526098029172431223810909012365969340759508939440137651562949574779387359095263825777905866569613564189020527606444409647) (num-test (/ 147416259636838312272435267341375281181 -11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801) -147416259636838312272435267341375281181/11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801) (num-test (/ 102557200511608632541115941654031896919 3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511) 102557200511608632541115941654031896919/3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511) (num-test (/ 47794953079190110032282671989549362415 3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667) 47794953079190110032282671989549362415/3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667) (num-test (/ -169956065319483471022234920202991103615 -9934427489865644196610501807375648335352544234206717324511161205173460054921759084767897792996557220898467288533128078406604709773449948420404563411793533441010236017064154469575084055359823982786110746700747423674942932421964955746280671982635899487781780756099620799397239156211815110739544719746684712086075069101799537802834839550142629064374734870047412916259754010150500874430055034366305216104752636211802195447299210332237598443674867760860326529472901775427058078447963316168327741049511844237329137194533000697525539835371015163158135757326482343130221118201740819963770851200676279882978581431999960842565) 33991213063896694204446984040598220723/1986885497973128839322100361475129667070508846841343464902232241034692010984351816953579558599311444179693457706625615681320941954689989684080912682358706688202047203412830893915016811071964796557222149340149484734988586484392991149256134396527179897556356151219924159879447831242363022147908943949336942417215013820359907560566967910028525812874946974009482583251950802030100174886011006873261043220950527242360439089459842066447519688734973552172065305894580355085411615689592663233665548209902368847465827438906600139505107967074203032631627151465296468626044223640348163992754170240135255976595716286399992168513) (num-test (/ -83006311763073652927964071041666508273 13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690) -83006311763073652927964071041666508273/13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690) (num-test (/ -312626207169475064151212222217866488926 6989069923898656093413456232544365450599471748502878018530391549015151484336014906416216966193568842618920902504390187814247729346977677905224098932673981665869061845335443588666641982676550205160521286690015544764015602751932938178737949961754714143180917985455875095030469699198116593730005119922928175789172042067281849364217595912265452199938281052984802042194034638773435768458457616208103331213440768472281882976004050012769415198321241810008696147179275528426468408383757692656341606162350211696837361434874035354680073309142183699892959618671515841112321607728427286289324836870027735590091451421689980776552) -52104367861579177358535370369644414821/1164844987316442682235576038757394241766578624750479669755065258169191914056002484402702827698928140436486817084065031302374621557829612984204016488778996944311510307555907264777773663779425034193420214448335924127335933791988823029789658326959119023863486330909312515838411616533019432288334186653821362631528673677880308227369599318710908699989713508830800340365672439795572628076409602701350555202240128078713647162667341668794902533053540301668116024529879254737744734730626282109390267693725035282806226905812339225780012218190363949982159936445252640185386934621404547714887472811671289265015241903614996796092) (num-test (/ -151709660794612786408772973806200383563 -26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443) 151709660794612786408772973806200383563/26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443) (num-test (/ 138834496986391136939574372853300933725 -8052690543272184576133758511645801940246473546142520821850130421981395129853341888352999304040698251945886555605291324954368612109314080471658982022831338507499254609048475429862437003158379101603576571787302167207044118847876475134352180874260998595377014195145760071923429129767580115085764485254455919915567128572731355497418831212259648020550107573824886521471697331410754043280744066090848295906051303624846301488010249980896364883452154860562864255354208802313850527991005497484253401461375477060954782095047043919500670383372218536999834862885439984085848342867301834247551832677237328664699302165347765799113) -15426055220710126326619374761477881525/894743393696909397348195390182866882249608171793613424650014491331266125539260209816999922671188694660654061733921258328263179123257120052406553558092370945277694956560941714429159667017597677955952952420811351911893790983097386126039131208251222066153001577238417785769269903307508901676196053917161768879507458730303483944157647912473294224505567508202765169052410814601194893697860451787872032878450144847205144609778916664544040542605794984506984917261578755812650058665667277498250377940152830784550531343894115991055630042596913170777759429209493331565094260318589092694172425853026369851633255796149751755457) (num-test (/ 276499207940187081393841843387608369874 27347897028734618663428054896349668572244941195143856840032842195489553215406302254043947382368793914074147314353589439281000471813879502242851166670252197853998033813694814376228360691543987661407996785043637351295817024680721181205269262470473172181965930243852520386958529041036476807810647578694133804796395977642274699322030062940721165202488695975750512485574440928370802874677938542169620505668128224812441566912043326338714451629730522324228356364241376445033028898865300103247057378058702233150414643818049655628999871012383236520330575609745427181485617250755214922048672375947942288446974485524776744246517) 8919329288393131657865865915729302254/882190226733374795594453383753215115233707780488511510968801361144824297271171040453030560721573997228198300463019014170354853929479983943317779570008135414645097864957897237942850344888515731013161186614310882299865065312281328425976427821628166844579546136898468399579307388420531509929375728344972058219238579923944345139420324610991005329112538579862919757599175513818412995957352856199020016311875104026207792481033655688345627471926791042717043753685205691775258996737590325911195399292216201069368214316711279213838705516528491500655825019669207328435019911314684352324150721804772331885386273726605701427307) (num-test (/ -8979365591106781219797187096315899769868799444656824967426553299158070014074001230883484015880186603742048949313393413640240595706939311540002219411120389 -1698360947072008877) 1282766513015254459971026728045128538552685634950974995346650471308295716296285890126212002268598086248864135616199059091462942243848473077143174201588627/242622992438858411) (num-test (/ -12831814656788829919185319784994714617782749504716966706877579983082880759985031662545957372565411439648298939198657738497464024214657609856476819270030801 454910754379715) -273017333123166594025219569893504566335803180951424823550586808150699590637979397075445901543944924247836147642524632733988596259886332124605889771702783/9678952220845) (num-test (/ -7834266257250691217409788323211914445703052638619784568844628449769010091330019095736167988675873769434766592786720961949649685040028101508217441360672222 -428418418877192732) 3917133128625345608704894161605957222851526319309892284422314224884505045665009547868083994337936884717383296393360480974824842520014050754108720680336111/214209209438596366) (num-test (/ 5737805823029931079838944835405107564434908634489801628049345331760087020955028323378020396677249341204498685189403657652738071833877470777083253103936452 9588993061977446661) 5737805823029931079838944835405107564434908634489801628049345331760087020955028323378020396677249341204498685189403657652738071833877470777083253103936452/9588993061977446661) (num-test (/ -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045 15760991890495426717) -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045/15760991890495426717) (num-test (/ 2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499 -6788234478844960330) -2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499/6788234478844960330) (num-test (/ 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333 190237375887614033974333796608341639595) 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333/190237375887614033974333796608341639595) (num-test (/ -12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472 -41681385674896602840749705069663453185) 12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472/41681385674896602840749705069663453185) (num-test (/ 13185465843955116174925558412278612918939024395488172088108029202384613698982949554556435640011161663974075894844304583900497170806796813871943782330552768 -155202352609947911537719051033334010254) -6592732921977558087462779206139306459469512197744086044054014601192306849491474777278217820005580831987037947422152291950248585403398406935971891165276384/77601176304973955768859525516667005127) (num-test (/ 12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044 -249441012384365373362771955533424187237) -12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044/249441012384365373362771955533424187237) (num-test (/ 8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433 -23101645464137481399279134347982485126) -8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433/23101645464137481399279134347982485126) (num-test (/ -10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192 -25611473771508763579433379623726126173) 10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192/25611473771508763579433379623726126173) (num-test (/ -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974 5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627) -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974/5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627) (num-test (/ 7706102251141221799524762336156378964168657337573751909064577951085535246905735244239132983582998872001001594454632956803416956154262109939446710205558308 6334400709835247308796432875490978646658012545184955441452799118298109610816693049400832749087993843490999852355789914065232784070007399786089389453289854) 3853051125570610899762381168078189482084328668786875954532288975542767623452867622119566491791499436000500797227316478401708478077131054969723355102779154/3167200354917623654398216437745489323329006272592477720726399559149054805408346524700416374543996921745499926177894957032616392035003699893044694726644927) (num-test (/ 12609622044672092190084693450911157599596799695538449568681964257744962273690941575572590166273187189250007688411096790312605666562908125521094386992971478 -8237858212652788898158635047388584411011830102060269605835391741772914864422465141467281143809161251942948659243584296367296559912373856433388249393853968) -6304811022336046095042346725455578799798399847769224784340982128872481136845470787786295083136593594625003844205548395156302833281454062760547193496485739/4118929106326394449079317523694292205505915051030134802917695870886457432211232570733640571904580625971474329621792148183648279956186928216694124696926984) (num-test (/ -9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785 -1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086) 9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785/1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086) (num-test (/ -10729942326579120947061030583094707809945059776287551713953926998992375520903658867971835616518813070294302895655369081976222497359056962112544408591462495 -4917625712783289245414023733273041940212797202855299465496072729329693853584860839801663152618595377553772371725021213143455497822882736730281253858119747) 10729942326579120947061030583094707809945059776287551713953926998992375520903658867971835616518813070294302895655369081976222497359056962112544408591462495/4917625712783289245414023733273041940212797202855299465496072729329693853584860839801663152618595377553772371725021213143455497822882736730281253858119747) (num-test (/ 8114113595157517238445304590338354472776364877475201453112450680537221171989478096363668912966343706408770932684807802285529572133696646343108263717309148 5443953102973235688784499815692116502566847594605098596244123647428188581304528525010862185203718640610834003873728718183528722470626702382993497913086105) 8114113595157517238445304590338354472776364877475201453112450680537221171989478096363668912966343706408770932684807802285529572133696646343108263717309148/5443953102973235688784499815692116502566847594605098596244123647428188581304528525010862185203718640610834003873728718183528722470626702382993497913086105) (num-test (/ -7125100205152691887479515774712530950031072786448635736036405923401522078562323494262148946679985384635556474075282302608446439950458673260234175964199684 -23871420315894180764743988478670341498770583257649869670486332228804693253344466615199983955886679924409910043885402198203427975742868174334723967563526738510726448815413356678504144193747696164586135745786501041060322480940451156015256191962506052700295351077719851275026974629635679531161390660244641370183176979934485671396035404817388717005746812037357500295693454623478902942336087760288091719793968445716246099043828787040340339906538864570506773535078524092440112404847904632624419421052178754041718790915772437556681684830937503838434712179830722395832238257078212535157309743054115702650740005055678387806081) 7125100205152691887479515774712530950031072786448635736036405923401522078562323494262148946679985384635556474075282302608446439950458673260234175964199684/23871420315894180764743988478670341498770583257649869670486332228804693253344466615199983955886679924409910043885402198203427975742868174334723967563526738510726448815413356678504144193747696164586135745786501041060322480940451156015256191962506052700295351077719851275026974629635679531161390660244641370183176979934485671396035404817388717005746812037357500295693454623478902942336087760288091719793968445716246099043828787040340339906538864570506773535078524092440112404847904632624419421052178754041718790915772437556681684830937503838434712179830722395832238257078212535157309743054115702650740005055678387806081) (num-test (/ 4801495919363827077158204249631885157347198552733998896638174958434968555935827788499392382851493568264006507028024783408190862186734863708684652212703744 29234959990138609668202089052356468732793041824333219340488007351402997202222578434579705387840772390513345507274006495462445058795870182760749392281528881636623188890883479914921272700981309656920982410970774047916714087713562927554033500521877735827036675598267184309367127514966388636440710253467328441763131873309183205727440365838789320851968108312559316922678357314418486932673434031479515016224407618177089903730349114511598373251388750023508633761000320088841886505077453257141723747388913336375142897897501529451618927178835485127020789481918641637409265186365292847057986276062625965612268181771076051892980) 1200373979840956769289551062407971289336799638183499724159543739608742138983956947124848095712873392066001626757006195852047715546683715927171163053175936/7308739997534652417050522263089117183198260456083304835122001837850749300555644608644926346960193097628336376818501623865611264698967545690187348070382220409155797222720869978730318175245327414230245602742693511979178521928390731888508375130469433956759168899566796077341781878741597159110177563366832110440782968327295801431860091459697330212992027078139829230669589328604621733168358507869878754056101904544272475932587278627899593312847187505877158440250080022210471626269363314285430936847228334093785724474375382362904731794708871281755197370479660409352316296591323211764496569015656491403067045442769012973245) (num-test (/ 10769619761532897875307527770350128978615798426116103116325434914975512103385205123955114305107607195469345895102375220593168903042839441996791318999499708 -7224105715967976893083374742254251507019823877014718307738328810406361200631626366722837314776666720638271529652546975342143108973422364041422652163016078890272393678677152791565494865444430757858556891645947268886646732022748338160528677218733159766121781240328812893374941548395710123982510227501927393735585082736583984561348450061452997663109932611188779299623613963995350679177776686423432406091192517292522853783968685873925548901506191291253596763183277703635837071862492572256145656312023955675669362656148946145528559574994353884313568526553663370513565393821926602014407548325293145102073923450066319746913) -10769619761532897875307527770350128978615798426116103116325434914975512103385205123955114305107607195469345895102375220593168903042839441996791318999499708/7224105715967976893083374742254251507019823877014718307738328810406361200631626366722837314776666720638271529652546975342143108973422364041422652163016078890272393678677152791565494865444430757858556891645947268886646732022748338160528677218733159766121781240328812893374941548395710123982510227501927393735585082736583984561348450061452997663109932611188779299623613963995350679177776686423432406091192517292522853783968685873925548901506191291253596763183277703635837071862492572256145656312023955675669362656148946145528559574994353884313568526553663370513565393821926602014407548325293145102073923450066319746913) (num-test (/ 1505915608160301518246681692927442986955390537144107830770082927276722640395785957392652130911646706470337068266772174699405268120590454296080828168261019 31152879253507543898583880698200027990847289346701738353567402100527465991154555548630544962150902011282973749886327325250084401181379196961322399337408341296727915922288276602390334861175305055229766353672502691855637668618950047400571070157436221479289152631256433294884836727331457389922838951144187501751190662594278336543502171639899940796536926507796271202659224890656712231014450702948847764643603683153113663072089256293587951842007583210791100743318865647555912543508324790181772321217524164822106191538518498016236866957803105254555578252294418243701672226181762763332992886540089416888889135117147250495261) 1505915608160301518246681692927442986955390537144107830770082927276722640395785957392652130911646706470337068266772174699405268120590454296080828168261019/31152879253507543898583880698200027990847289346701738353567402100527465991154555548630544962150902011282973749886327325250084401181379196961322399337408341296727915922288276602390334861175305055229766353672502691855637668618950047400571070157436221479289152631256433294884836727331457389922838951144187501751190662594278336543502171639899940796536926507796271202659224890656712231014450702948847764643603683153113663072089256293587951842007583210791100743318865647555912543508324790181772321217524164822106191538518498016236866957803105254555578252294418243701672226181762763332992886540089416888889135117147250495261) (num-test (/ -4912349668310730778272626761660101328812783790262451913449395750351147048676353891314609774894027305081515542385381430403698808605768281804457186380542764 6582102431028556562269167182029950958541569095123705594954788174046339660437206159173417583841743892857066740116322758515837624700881569925244230209567223461401193316695082415261197843574563450002486582967745135870782254839990479649574452750850133306720341823136645982650022199634379361313745598455049448887744206616434903460504591098363901961758069797933831934878649993183747273660007900662110776570580293994733189753806312784239743585453090900671308673380802381312083077891736513388250097195232616017027333586286786139736783210630705878401429301217589001317082952461701571026008195534878902572422952568763551674434) -2456174834155365389136313380830050664406391895131225956724697875175573524338176945657304887447013652540757771192690715201849404302884140902228593190271382/3291051215514278281134583591014975479270784547561852797477394087023169830218603079586708791920871946428533370058161379257918812350440784962622115104783611730700596658347541207630598921787281725001243291483872567935391127419995239824787226375425066653360170911568322991325011099817189680656872799227524724443872103308217451730252295549181950980879034898966915967439324996591873636830003950331055388285290146997366594876903156392119871792726545450335654336690401190656041538945868256694125048597616308008513666793143393069868391605315352939200714650608794500658541476230850785513004097767439451286211476284381775837217) (num-test (/ -11503235648135220410087372678575470255397243144180272745183844970864347348074104828328211521698012119761674096067066173927209129755062269068090560678650614 -5548338218081690289723998288742945948643693817491921699797822887914665364835947234564530865119623677435878746610856459141463506776423054050179729345956931675338102809929977610828639446535095411122377961067651902947030310564736893080382424590568134091858634304377553326990788802662029347894499019277621467098333287442862683493159356014650672092060912274570436879076161496563079759704321556494898013269338428360856068237785049960484767969682269790642298701577934519452927652996671267126348627432295779183359417597868330923329974640383630473044712419371517153268338860560601603043892503067815822312755611206254762903436) 5751617824067610205043686339287735127698621572090136372591922485432173674037052414164105760849006059880837048033533086963604564877531134534045280339325307/2774169109040845144861999144371472974321846908745960849898911443957332682417973617282265432559811838717939373305428229570731753388211527025089864672978465837669051404964988805414319723267547705561188980533825951473515155282368446540191212295284067045929317152188776663495394401331014673947249509638810733549166643721431341746579678007325336046030456137285218439538080748281539879852160778247449006634669214180428034118892524980242383984841134895321149350788967259726463826498335633563174313716147889591679708798934165461664987320191815236522356209685758576634169430280300801521946251533907911156377805603127381451718) (num-test (/ -22964048032108117904633365483799091488990853392670636861794813863757795874434768543212887316456319246155824842161717179767513360050328383696194174741889496306018655333450647372293193335577883672679165775070112770359697627614883420620410888137853011387271594559450892054491963940112235887802995117234918878648066362268919389271696465517050425727202664230530633207566444357393843669758809938086228366322548799235049875711702216182219182908217345405023677260470015666831191434586902791186444958476491096759363292487221288620810273243009200212776634572092195691654105986099646006756823055390654876878195583529521482548988 10644501761877612307) -22964048032108117904633365483799091488990853392670636861794813863757795874434768543212887316456319246155824842161717179767513360050328383696194174741889496306018655333450647372293193335577883672679165775070112770359697627614883420620410888137853011387271594559450892054491963940112235887802995117234918878648066362268919389271696465517050425727202664230530633207566444357393843669758809938086228366322548799235049875711702216182219182908217345405023677260470015666831191434586902791186444958476491096759363292487221288620810273243009200212776634572092195691654105986099646006756823055390654876878195583529521482548988/10644501761877612307) (num-test (/ -19058897134776675884737764093896349427183484738023061956638485191239529906311503740032626797095131123523175909943402828257449376045336777553758951620699386266853663342003969442142858702229701661125904623724248177901462857013835790939020450746503125344631958534655024089231193396521561965297735217497608287565163852923704017958259400904834287026933197193592591423799328167149965328232560408884408251535373934831244856695227539243433290481951528897142697352526450162440279318507285454432916819060795455956931254810171588139618689138022062041222735056137988435900866680084665165131313435515187611756148824388549448126467 -8326067459929079652) 19058897134776675884737764093896349427183484738023061956638485191239529906311503740032626797095131123523175909943402828257449376045336777553758951620699386266853663342003969442142858702229701661125904623724248177901462857013835790939020450746503125344631958534655024089231193396521561965297735217497608287565163852923704017958259400904834287026933197193592591423799328167149965328232560408884408251535373934831244856695227539243433290481951528897142697352526450162440279318507285454432916819060795455956931254810171588139618689138022062041222735056137988435900866680084665165131313435515187611756148824388549448126467/8326067459929079652) (num-test (/ 25828007361450952719858846443651616751980622231808382804245407702688699228397920589229449608543284896555585501243582045708656531815385828908740757435341854996277769645696261182122648194952548457487178342682313459444433667556195761154944956714756269417591048771194019245925463541886773351873002480266654825771525233808830260734678788520487541379982691221386179066818743751876186761036101255542680066874888848011074569355779905086056095043888696435054884292698783753890317487209955316141370052511469715869816445031102161253514609763532756500340262263800747279044587806090353812452308490155782240390040070679663451429071 -16419739031141199968) -25828007361450952719858846443651616751980622231808382804245407702688699228397920589229449608543284896555585501243582045708656531815385828908740757435341854996277769645696261182122648194952548457487178342682313459444433667556195761154944956714756269417591048771194019245925463541886773351873002480266654825771525233808830260734678788520487541379982691221386179066818743751876186761036101255542680066874888848011074569355779905086056095043888696435054884292698783753890317487209955316141370052511469715869816445031102161253514609763532756500340262263800747279044587806090353812452308490155782240390040070679663451429071/16419739031141199968) (num-test (/ -1669696848499325185991294008037906453080648048592518700324899343297324898656645662186964240087582483813312797482298159224575128489696846451225871663856944749639170892311973606684486632224811435175199158920841554176114937196187087530038509898368755036744105403511353564606301040888877621412514452110348953863172547944175251415725815533087344857665837809749724257466399374547882097484009980477192931829030533366309859182367479867549644502538060694266048652224732348150866071381652452605392696555259221463464108413747443898588713629829490175098280805280460168541344102200890646453100478450456898359263676257882174308268 -3154577849943484396) 417424212124831296497823502009476613270162012148129675081224835824331224664161415546741060021895620953328199370574539806143782122424211612806467915964236187409792723077993401671121658056202858793799789730210388544028734299046771882509627474592188759186026350877838391151575260222219405353128613027587238465793136986043812853931453883271836214416459452437431064366599843636970524371002495119298232957257633341577464795591869966887411125634515173566512163056183087037716517845413113151348174138814805365866027103436860974647178407457372543774570201320115042135336025550222661613275119612614224589815919064470543577067/788644462485871099) (num-test (/ -2215504974719141921873290809898041836016933916943403987778356628123168736190963062169230280020568365292362281642280014010817115943641228422541948070912910166283758843455538187697141038676028739959626556519808411324617157646799936128314485433146912658200236754847332237438334421065771940922444296618134121662770699950019164632463150784605652351782139277998735272280336096528241168196650073301607171613955878761317417480490869592669781417658461696905996344800864447403426286476662235990122025654999230690604488053668524888833992415515434190712628587043474760836969696399229242018051635699746048823240033842587927229964 -11305319675542865070) 1107752487359570960936645404949020918008466958471701993889178314061584368095481531084615140010284182646181140821140007005408557971820614211270974035456455083141879421727769093848570519338014369979813278259904205662308578823399968064157242716573456329100118377423666118719167210532885970461222148309067060831385349975009582316231575392302826175891069638999367636140168048264120584098325036650803585806977939380658708740245434796334890708829230848452998172400432223701713143238331117995061012827499615345302244026834262444416996207757717095356314293521737380418484848199614621009025817849873024411620016921293963614982/5652659837771432535) (num-test (/ 24358677073350645219370308521851912760304925518671532565724702185818845784332554892130070740233218685874351979772556877899278790031132507391155876157108663291716896413773711734271947599485714147026138105714458778787734198938526335256418673319464023475137997251085298903419563039860433435847755093653670989129405749785476487449599232956305952768800154351414655365461746574761818724131185410194605648466196476174400166047788352670171627261342369793028465418799251589432585363577887467959594667618177199696618852093807640490831859585621198048572586882398004957371434677752931134884039120875470266936204172511104679441462 8754800987327220648) 12179338536675322609685154260925956380152462759335766282862351092909422892166277446065035370116609342937175989886278438949639395015566253695577938078554331645858448206886855867135973799742857073513069052857229389393867099469263167628209336659732011737568998625542649451709781519930216717923877546826835494564702874892738243724799616478152976384400077175707327682730873287380909362065592705097302824233098238087200083023894176335085813630671184896514232709399625794716292681788943733979797333809088599848309426046903820245415929792810599024286293441199002478685717338876465567442019560437735133468102086255552339720731/4377400493663610324) (num-test (/ -26302114071841994464108666310942614602208671348774320769941579409198660404735714925432808094014718434192516800374483192192707032773903982752997957629389083405320034044554226640590549491188742685901503166669355807243735533977994184111229208270447279559478659750835531593667003322059717930484363943660175452777363121025595100592911646539549735930625865256846706785601753749996181113742254145758187876411260965175520035400453360390392991183382425735199046574346992179663247011131958270717402007532256308394559029768974932620173103778338779940189812875680687510582798628982957687329572431433891809534332514765287899172737 196971971351558855568201373145365478995) -26302114071841994464108666310942614602208671348774320769941579409198660404735714925432808094014718434192516800374483192192707032773903982752997957629389083405320034044554226640590549491188742685901503166669355807243735533977994184111229208270447279559478659750835531593667003322059717930484363943660175452777363121025595100592911646539549735930625865256846706785601753749996181113742254145758187876411260965175520035400453360390392991183382425735199046574346992179663247011131958270717402007532256308394559029768974932620173103778338779940189812875680687510582798628982957687329572431433891809534332514765287899172737/196971971351558855568201373145365478995) (num-test (/ -25700334917103749626396366612061842558162882395534131493737229591609654899446089376271023701490708870843231350129849819430092002268875830384992877382393956173037794109904701961390126146975281052960293513473777226100954163054292968509501976296424278813632162404905591038465215586347229260479401862039805429711982871702185657527199220459658257385112793877259572278229045135617281858788415643567614198333459934599272409406206213115625226065750113120833933806486512117533453281522448845990642550827848765145774541658722594353290694745164913189694785762218575339370800538946514325662656804799046877175035545715523049884960 56325873113907570153638933263921340484) -6425083729275937406599091653015460639540720598883532873434307397902413724861522344067755925372677217710807837532462454857523000567218957596248219345598489043259448527476175490347531536743820263240073378368444306525238540763573242127375494074106069703408040601226397759616303896586807315119850465509951357427995717925546414381799805114914564346278198469314893069557261283904320464697103910891903549583364983649818102351551553278906306516437528280208483451621628029383363320380612211497660637706962191286443635414680648588322673686291228297423696440554643834842700134736628581415664201199761719293758886428880762471240/14081468278476892538409733315980335121) (num-test (/ -25716495567761925495340309269248196976121711927176026606462843116646034561721958499564011513233986043633061335866265799467020807570689498961190839877265773450484494789052182300993137822542881883769593344810286970036960228835955266304979090841345697560418139960733748874044680214388098802745248923989851173047158103142988835055585349795022662576576434371181693607267864646932929998659458265265400181839509356921460222604661909947838434113964465769102604033848276159366897885013231683417270877512514679528402888899725431524867260144325739317224922955028035417867933390409466302057857579158202739536568407090965929352402 -92089830031261826185903006947297196357) 25716495567761925495340309269248196976121711927176026606462843116646034561721958499564011513233986043633061335866265799467020807570689498961190839877265773450484494789052182300993137822542881883769593344810286970036960228835955266304979090841345697560418139960733748874044680214388098802745248923989851173047158103142988835055585349795022662576576434371181693607267864646932929998659458265265400181839509356921460222604661909947838434113964465769102604033848276159366897885013231683417270877512514679528402888899725431524867260144325739317224922955028035417867933390409466302057857579158202739536568407090965929352402/92089830031261826185903006947297196357) (num-test (/ 6427758281007308443295844679532867042370757542760390680622584758338041709910068192973790897624827722686313216884084305612889554116246627679267186323854642904894988936981064543865794245002470271142875081223308666588659587718561791667575945670118263124267218395749059879636505504607358472659126298770422135028955713148882314050530771750859372048576074912599265823577267962213046012777760882389021047579367276198483178024744924299929585515193595330026399302022065656106472153858484998010254767462854235008343139218888170221421046454280858208068658907389288543063912721882521711363713136166478126504226820360347652405439 80854661163518168674595213426641201760) 6427758281007308443295844679532867042370757542760390680622584758338041709910068192973790897624827722686313216884084305612889554116246627679267186323854642904894988936981064543865794245002470271142875081223308666588659587718561791667575945670118263124267218395749059879636505504607358472659126298770422135028955713148882314050530771750859372048576074912599265823577267962213046012777760882389021047579367276198483178024744924299929585515193595330026399302022065656106472153858484998010254767462854235008343139218888170221421046454280858208068658907389288543063912721882521711363713136166478126504226820360347652405439/80854661163518168674595213426641201760) (num-test (/ 1960728263483597985471065015024594804771170333646104429205729831998416939777820080209106943861368202560376682136488253096512360698625765514606930980274938979705620987031595592685578710084284618125325617453699875318678007463857705931376750632972266553809944621631324385690517092215690694024807784270742388108802858889381036105223858467345514041786882957807868961085072340965930749117411726729713477739990680381647988935514765113077094375924848051541167125595015542791382355149166582367766443782842193396221676952668624805183924877889696428989259842153378327156342464279071638070457876940165186524833987190050817072048 91266493124541431873557009470479491083) 1960728263483597985471065015024594804771170333646104429205729831998416939777820080209106943861368202560376682136488253096512360698625765514606930980274938979705620987031595592685578710084284618125325617453699875318678007463857705931376750632972266553809944621631324385690517092215690694024807784270742388108802858889381036105223858467345514041786882957807868961085072340965930749117411726729713477739990680381647988935514765113077094375924848051541167125595015542791382355149166582367766443782842193396221676952668624805183924877889696428989259842153378327156342464279071638070457876940165186524833987190050817072048/91266493124541431873557009470479491083) (num-test (/ 4941680418946960910262990974014623728051861920391294141439502190044830922127013115391726343950340163023958511659132792063033185693862678433421115681422259770928656196358763089894449447854011668445981430826871764812047994423858851467292757304285634515474652989618200442851239459073981986390515468331839802701176644729973346052528164203299481240263263697394061787580128379398464090163611942724580936445878570184925290925246112514015572149640886198984723311273144361235138411362294735799814160816806773736605477503201836095726740734281001021071803299510239436683913500734680524381145064985356627091311888606290704759943 291575320383555320391938911470370670502) 1647226806315653636754330324671541242683953973463764713813167396681610307375671038463908781316780054341319503886377597354344395231287559477807038560474086590309552065452921029964816482618003889481993810275623921604015998141286283822430919101428544838491550996539400147617079819691327328796838489443946600900392214909991115350842721401099827080087754565798020595860042793132821363387870647574860312148626190061641763641748704171338524049880295399661574437091048120411712803787431578599938053605602257912201825834400612031908913578093667007023934433170079812227971166911560174793715021661785542363770629535430234919981/97191773461185106797312970490123556834) (num-test (/ -17803449239532304707372697093467431202778585961066204978641168716990033159088600623106396534094218402005803618121159982050197012697237961155375180768349707725936023283589475384693590539312637333226292265409814019687105755522332846972859860649558844229320481883408457674560284773922666633054564243260924189551494368660033292970122831009582038986061326503238023206238467592238752824663935316307653075615249537594229930297642710570473007696494702367783692850946455203144153509057520651038068881755863521371187245025834292163874467913915588768778393773565536027848586260129438664753479013894698439967637389690509120223682 -10962227285754340409566802000064407225866105372406170304563353147415988225079632767886653994299800743521362563345682593189107807948342418743229049299449088) 8901724619766152353686348546733715601389292980533102489320584358495016579544300311553198267047109201002901809060579991025098506348618980577687590384174853862968011641794737692346795269656318666613146132704907009843552877761166423486429930324779422114660240941704228837280142386961333316527282121630462094775747184330016646485061415504791019493030663251619011603119233796119376412331967658153826537807624768797114965148821355285236503848247351183891846425473227601572076754528760325519034440877931760685593622512917146081937233956957794384389196886782768013924293130064719332376739506947349219983818694845254560111841/5481113642877170204783401000032203612933052686203085152281676573707994112539816383943326997149900371760681281672841296594553903974171209371614524649724544) (num-test (/ -11349783565099575757929584771389010505157850113880084607145768380886038854233583951229136273631022011781914171912628263930864052254964518914857757025547156428098062812984733912827827545722979442676567330004437902674729872754963478834939047061999292143602525229120558979819117729589695377623970606315287270030693151486803968345724658003068961239204812937084581894755863859944500186226990319892122692007317326534880413455575446314965159569830188583093978564829748603480193166063624130610256395632946002879039047154077629561745862713628266069928068634042545592328263646730943717246953000457159714049930890865576634096206 -5169948998417532948043886408019867395123131165917923418040862036041756675786217242743410895008311710518018466892169868028617239526646914529999134517417939) 11349783565099575757929584771389010505157850113880084607145768380886038854233583951229136273631022011781914171912628263930864052254964518914857757025547156428098062812984733912827827545722979442676567330004437902674729872754963478834939047061999292143602525229120558979819117729589695377623970606315287270030693151486803968345724658003068961239204812937084581894755863859944500186226990319892122692007317326534880413455575446314965159569830188583093978564829748603480193166063624130610256395632946002879039047154077629561745862713628266069928068634042545592328263646730943717246953000457159714049930890865576634096206/5169948998417532948043886408019867395123131165917923418040862036041756675786217242743410895008311710518018466892169868028617239526646914529999134517417939) (num-test (/ -4372008041495429462966226028389793326873997497126815043214338280101332483009650104005998792061125254101227371430911497751865710691604158789733634394053254604723940088324934622768312096370232736965692181452463495731681105253628558429524788376108667441329817524961077744083376843098018692898745743361309486938506049017980865957895278210133305721083115513131884239744064081819033733041876411992332060293539102545847193260167588667810376670587099064558298380310132769718526554738650709745767046942440481512965138461694790645096012018276362849398785863823724642554436182185786302301222529261914437437947741031113015699315 -13213007132248918651858333568248204618745148942720942572088217188768868803339938910599097839075045781852237705726227293430250507070717570662238736211897310) 874401608299085892593245205677958665374799499425363008642867656020266496601930020801199758412225050820245474286182299550373142138320831757946726878810650920944788017664986924553662419274046547393138436290492699146336221050725711685904957675221733488265963504992215548816675368619603738579749148672261897387701209803596173191579055642026661144216623102626376847948812816363806746608375282398466412058707820509169438652033517733562075334117419812911659676062026553943705310947730141949153409388488096302593027692338958129019202403655272569879757172764744928510887236437157260460244505852382887487589548206222603139863/2642601426449783730371666713649640923749029788544188514417643437753773760667987782119819567815009156370447541145245458686050101414143514132447747242379462) (num-test (/ -24003371850945507239307096734506644624830254935119140199726507920301383328662376914775504920527918338079792692943250446679097229950654636321252144129692109999375967030689211646504258922323499994340282315270808545865248969923421472430657741998787024263629527291510416193284540865950122841477102934165296344839654902079279846705581902668360663987722715177845485423354226653585575109653937253382583158263755381721094429734122004436184054214443676096492583897635497699417294183504529284810360226314491839533303380490277211336049582128602304906849999737224506976061216780230350942535246958957024226614847691329767208211525 10686139440491678930358521446524488461285005495304677740436234635584738003880529034339295291091217655777627375148264449580064000634364863951333061091724053) -1263335360576079328384584038658244453938434470269428431564553048436914912034861942882921311606732544109462773312802655088373538418455507174802744427878532105230314054246800612973908364332815789175804332382674133992907840522285340654245144315725632855980501436395285062804449519260532781130373838640278754991560784319962097195030626456229508630932774483044499232808117192293977637350207223862241218855987125353741812091269579180851792327075982952446978099875552510495647062289712067621597906648131149449121230552119853228213135901505384468781578933538131946108485093696334260133434050471422327716570931122619326747975/562428391604825206860974812974973076909737131331825144233486033451828315993712054438910278478485139777769861849908655241056000033387624418491213741669687) (num-test (/ 11114571678097117920369007866358540243142633567044843952020632081573546909920632543585596494530749645890342978505657174505155646987551523455565703297238406590291026899487431109110746657023874064284362499621762851387854720746040865741433394111425240861542892218169985953747711593827913014379823797703717216676877313898809377467394109623799717556800777662963842899812297087284510893865429864819927951428138755600792987191034272014681606301885821862650098620488569288170357746018556395309910262410994899971436293672676949544989196526035130226777567220128838888396668158456237490064462262193759918857287915854681904206680 4808076329737968688023887165061921594706561818755147855784713748545995818001333418509444774306288638038607173052166709335820929501845348060033808100812677) 11114571678097117920369007866358540243142633567044843952020632081573546909920632543585596494530749645890342978505657174505155646987551523455565703297238406590291026899487431109110746657023874064284362499621762851387854720746040865741433394111425240861542892218169985953747711593827913014379823797703717216676877313898809377467394109623799717556800777662963842899812297087284510893865429864819927951428138755600792987191034272014681606301885821862650098620488569288170357746018556395309910262410994899971436293672676949544989196526035130226777567220128838888396668158456237490064462262193759918857287915854681904206680/4808076329737968688023887165061921594706561818755147855784713748545995818001333418509444774306288638038607173052166709335820929501845348060033808100812677) (num-test (/ -27971792815424016824370019866875377333122266892537700816201893161065327053508379094007350664178576160161460501442627646041422270472469587140689725524176629653056006769618104516779694726446739085332330345789012312708713495757968594985567285237456431009983022526625885024663335598317191838389804118084831445251467492693688286258834282078888862754754572546522075833632779922232880101875914894393005204887265821991459415144492487189071888581048779385051174007698853920104709378859053075296413813207007405843448595681090932498329066591349910723578718333092115184652723310842559914379989208301125396793101430807658654849482 3169580893680227534064172567436590084742349042688765883461923377455374714865282199177755353861979892274552092801376364846717140845237173266602633583445110) -4661965469237336137395003311145896222187044482089616802700315526844221175584729849001225110696429360026910083573771274340237045078744931190114954254029438275509334461603017419463282454407789847555388390964835385451452249292994765830927880872909405168330503754437647504110555933052865306398300686347471907541911248782281381043139047013148143792459095424420345972272129987038813350312652482398834200814544303665243235857415414531511981430174796564175195667949808986684118229809842179216068968867834567640574765946848488749721511098558318453929786388848685864108787218473759985729998201383520899465516905134609775808247/528263482280037922344028761239431680790391507114794313910320562909229119144213699862959225643663315379092015466896060807786190140872862211100438930574185) (num-test (/ -138888658164471549506154385143989713534453638138516110941977029 48484067562152384719540184707188444570280914254129306788137384972303743285284814 56428088099244342456240635263153370817851703737803685168591843059886944388583310 6984617762898435035101945891920384937438416626357047934508608980105797822504000 90193136183227859939744547239819443586783276313678017953708293432043879247302040 70539472782976230144489157899475475029273447055080677052149474853222128626227832 2525164589393997980217929709704832829968554364529060039097810436136432713906553063644429644328565051224269893261942396763235990073001625976866246420775436 15614337547041181126817477188043219628044963126229393225781917631975649438502836750353253851523795212263078850399716875892512719059737913422781999218667136371648316387382440793865460028660248325297931269646982047533754121791358966254514009830876592200454797694143082163294323565673200905929297174223061890100210054105027025488322289599106119653451218493916291922340123640475500240519924011764050880374885136181582395113140580448936759383024305870622004464940344826337458060607492042593813585998516868215921180540240201095202617277388950504036371411600204964284568597705251929695275183521036281637399204541958859605054) -138888658164471549506154385143989713534453638138516110941977029/4793535847709521198063287553243915170068914691727215964454867625024011698922303669226389748584276840530192157568469968220857898703102351955898913589325705637953049380748829567692600765708909637920797057370082064005557328769108356548100875674196976079597658854339583183901899349355521527519781721778545444496852540362424465770767219571362842157786846795990148969989617793004579188905882473140017509154008696803103206996067638134383708975696867028865870695941933200225325283190379262695816923376790224594063264297952504481719779782130509306530621779762254864669078635401870023086312919956154224782043667754741333688780367667466505233610011253346902821033707597517691608103391952937194719540981992469020284583499872663129517095879706480339710037976698298522952071766717472040399518290905103777436461474880898550115925718887748413534479076504168236430697214654069473800915087572730747027455509241250627470590715812698745630545585772046458363388764449879417348554556621640336029897762172500880501074103433267444717053504878282494505367980026597725927414511391047010801407870379019921551218005714825277162504166028680939100225793768617321830389705750902850499916610355200000) (num-test (/ 2902267908619179684129536324641634394442732593027015198805855082 4748067699021154152763168285921806700655154833226062437593302484475663167752990 92172802787151156076284963978247829387076983213530315481815585776147505007251090 15808981285029107672090190966349736198141855760941720122983980047623201110025085 60559202289239963744584432021634662330089323842876293477363484160210450706125345 20641717016962556495214267565148984505293698026059157698737040675346468206231142 142380249473014630955299439077662853963947100833592874440361316474000948841420058017600161066408668117933232436922811486348705081331372574460204309908598 22418721268614574393232189860262616514600143215945007038687873335656746730488694050883006164427390756358558140145027011322151188565843290717535647848841274550496431839061217253488169143292339455650565906288959125935798633464526818546688779845699340483771625364583343140648892889571715648295855169294054985996834093294240640072029711789359793649773566295329912082241637482772608479106201840565936084243727069954911883243252762742415647868355726139789907900798435783365130277592703989608678774745914668128791639635886550753850811717805962562157686110637810320436812644047534536168343578232389700410352900247092236175044) 1451133954309589842064768162320817197221366296513507599402927541/13803211377640454778526029288269623376813125655593684775595099045285713415153039020789267800416616529908688645478733023490751981264976732618374046330204398361829051480928696426688037404239513603403603849882719851670264413777889524531938606364925013854252374108222701436535488401321603495905123597139234414735397259257280679663147039651553472142280954446675036289021783142392760217244908768132158498744301278889276778209560846418263599491357632762902447742083022806085077053406738681250354036208472026046315736408632370478801849290705001622808552373129971427533249307210975612625050706661691322027927380443494854794852235813844542319971019369687589916047377092369702778251658652143114091304960406840026816351348391618676357634544120732441610431417230403811846208113160343697557236265319994702483700922393762500190362776377442551539417224595247790865885105594005740401824824367904020732469833438717527758468635665777261969819260766044978137909489986407113029460354144391595512642835261443393260585888868936164331461486646676578398836326366036777321522851855085808626766493197635871100152761464712744017549919220291986785134521319127277292845352756807452050073157340000) (num-test (/ 7798204144688205291220879078360728451593323170355809361079096742 35808393784851478122520372074317359817820799318259895240196875729073154197251420 58532175726063855694248618287185551673975962776708803423334853085996022345828434 97834368697888769536063057370864051207348099191057106781292664602519775900739777 92489021460656714290092899983209031746574776013841975324837145038810562509209529 71083733375588666647468985607775761710974844539643116636307037921671845148256816 6123989271760127932230015643359630675168106436173654465119508990415235040641894537960236511442249258231302028977221206744158863083898145166446430168108 -27418900206398855942064397259705713102524342707255992250395147550519659429645343464288092288218160406382406024735131578979728501208163782063519839258876833755387025755815673514708453862847139552613587001235204464673999898312854941659541050445981594990466469147364579547089805525464252876345032296745312923488525701877655352034887018931755379078328147999631937419977103372927428613463482328465834563846802083044643719319690088670748858904291298575733560600669924511028715689681303059001186388754140003746463568171428267337107394361025465082282061651196456268663181772211292647101192148287507051053367729008997838464209) -3899102072344102645610439539180364225796661585177904680539548371/113184205287561573324139833190653102440730360395399197973956984769580868365256138025034414373155098575475566747215877030265786675432252675717351889433714136838615056208470421665419618669892136317438270826178251174708190860235979949204785938786562420189510825909814566675745650194525647207897976611434325225523578368855952217879373499055292850828774005130267218801086474623429504045290678320168493275019256514768273116059350700654655821674309331585233552793659038912697151359657915391954687630783641745610431060563252789714638916120291482852533638921356624929690158752601417722733222880768367060672103351737811624242610815140332559619520810810999145535251960674284283045907801934328911198563750515779896457101601178888594882087326241517566336011980952110586199881600553269825310575512911473547251704677890770772166895623118832621335417348044312911888377718725944255218219811801447500167145561774582342171995333086224230231746597452848775656030037837271428187450747141983599129861631612369300880722326218963779650411119279310045263996988089484063433088077868691314162108392639864773907107325220582413508233901954483499166402135445110435112499264825479433389003494762240) (num-test (/ 6291885367078853457481986049409245691302078375827782321496819120 20959289231548357352292073342856567687394126070322865796282035211176720583560298 24366038587110130209541647226271577368736240640393242419005751016119649778306566 40118119174220166901790237425673316895032570534639145502274313654443256239236466 73598137358602854818844747625643480865061277528564461120022408463105339470504117 36695182446520138181079917512512743290981469731336486456411609014364293489978544 8671667981598505073194269824535189054936442262459158402875147736469644925300845122881093216273840895555488593258562684601176239455526568314028830532770 15920064019095473156324398162334173238735268739049399738654357508344572552411935473846021991360836375685872129737682603096450566258725052013769725919038955505690389573813769125933987978360857342250911865713011888064725725934341157729878064563080803955584985269499994186472079783942404183377695242296289152788154908185130552013951432753148997632323578507137074131845177376689609114975253308906745794984371839952312988353950198030866538756253618535421214253194954603293145507537939731320546686208032528588232652963255550963088571344119439249328480867640436815434047309164687808223851012490130534705427647158409623238123) 1439421788255379275215959765325419043929720157723371200401/1747562187028503746686299553853635643553063923188506902759251937250022196751705340155682655202720363192751787186892107863159676381018035068965958466119538181810433273947829904580526582292369320932134048728374142501965682147541817431447933591106030690334465450755701191781243754499216697336293783127396687916725975251100500896467549458036395977769801208905203001097425041200299917628353220804629035768571072498715030261324138691471497255335498185741379289492513543474304524261634247519034231348033379344777678679950561777846684978640375273167561174451700942154388980887510088060818147834369595669846115248027925007288445161871535514130090907585140894883683709507099726386549038354860875469377442908932714711235823032704493155679240378374325069782368108779247450762222838197717507164088182062062215767468125843278459189085290703729281279344184417197883359351058003644499215541300350121854220342250451978930421772367851329849662028719768708399155817754711362398236471946313773603716759409265530444582884661320404389499624411965234669344882203618613097197387901166904575791500958722726774956950592290330175936039556139052663816485140080963740296685158607671768592) (num-test (/ 7377598052472799909620353419322603137723415431070641423056433630 50990728761110292768803869421408199244526424730838143228662194914314857136430737 89434155113971221138805303763480423496687322824531744020762041598590716339098287 91343386111124700155689622654961840380754244946720984970313893805578518003516073 5641075230099727784981579696383316732450130418277879081291954534985607255267932 91040802121912074401640073226003257602385910518707524375098380810792151468159323 59272268188012925764499414539835790113036863511169317924034366016920114706179376837448098952655862721652129333873020625135398431500899131874782270590048 26690053756452308398721390096804652429111408747235998849320348549870126230712525274708597346508961935323823048352116439255386668122483555236157562141222434006899926132549352821247340442387991613448730451171206857242290791156220288682675982609964518905569737166444127835826079348146626921864776959482079234994631361894786436656768739968380067890165160954836874044821979903056957225885565092422439358816023307475581832942250031121721325840673134241504501661692722633100336840768527354183989544434614842654682324213774503456414914613412547380720171088896588158750436205804689590730033393056191028424154915201435563063992) 3688799026236399954810176709661301568861707715535320711528216815/169215718032454146095901737002485678790901914179482864125777331106759302744215797822810809511498045518338288799757661725047129775976254373463314416017128993811694804386237923340900604770406784566473173755998386770282409830097844352035251738093305402541509197084964701114515390028814839744480965823142680384744649624767291550851759670297818996073873968006960956353033659153219390871979066743795530136868490210455800714335529013059123604101460242870160400211866883478263106349349114199154533363251799944090298252763172390952446660627602934622584400932001701907172000401485323481964448487312714644861543740014645407417493588261100128985848137181719614326345024112347151970444057551896842474702539258687521054961314443551837168457190568932765925484427579811571491887599619302241390226818415165012748654917331557679228501007751078584244340346651276906088856205294333241792044902850102153793417101337667969641035858108457362954650972654353600494166650067557014544136240962457086782865870886529792004619668808741311540795514394731398977642092124679638585188974746423756335151669217754388004341907440529525288302872368689364872785975840444000802518095138062596107983803117056) (num-test (/ -239344771695510351349291992975349015183687755312261264640655565 59880027487583466136533364102518649070390160795136023810470091681171428955831193 48344457085007359228086666145324485903333773379391455489556219681156342646858065 96824393663737121700189215323825147927318524415097221824671795011444303522438090 73240728471954064253765051525185557601431281145369716902120469411886093226662465 53476482728312567840603110355495270554470432250981685279567813448298175801364992 2468459436652089730331798017030410049989399340882712030505584719342958436741536069714790640546086933185494149096286590992747248311590137695839482679011866 -20583944357058654336975302336113341974001469085102805363209530168831840401111182124827636905521584509677325966689931599005216123375088335255672290604710305325984961984791919524676460851699284525672773368217606895110240237523696098521003978238685169880199868729577660354717875890521074505342309726366304528678619465048659607726264456481345739318939431629704180230985397408136331466856633265343276511285483458860216756106887559724757372775728879136089013590836231272961497930729470443491032308329051560641396901204040829291495325588896591482909336032903587307512310970849256645908744180630660878534263566681640143534823) 15956318113034023423286132865023267678912517020817417642710371/3718709813392127924163278362562751486187605430152002432053108623099406465632705761508167478249438322470295467114170871555665890539409511492475240415534629792791729596612426725326976353265532166735941330128195885206087665506220364347120981130748862937276841801804372097254983242962029582754709606117339082763083905960784323141929645331591164015455383939302728076410053178677168172481507115685831178503426055335630689722163467637005123748113214310366231893390818795405612007113310547901224920768646006621130651182788173442625298859454337696280614462941186626306295514630883052819172301830539345633711941340491653447613466053205836875456839023743314390098829184111583809697328393569588632000669468187410368485286035179259523632217543401146996259011916302393091677624838641658623073752023082344005134299104409908004250830639232078441523519412192782367689826532215394196055149255026188549091956300108740792221660678858924234682223183500313556198187095251404633698868186071148295957994257417049500872570631774233307260384902571112475241073598945295745287525486108978093728296107260155093397986671349139935376427469718767763295900745932105722655724205000829205748307261900800) (num-test (/ 7013212896988366906/12397903473277899947 818833870013215068/2125577647443895255) 7453564285301859120853045020886215515/5075911640537211768265804260348400698) (num-test (/ -15781329068048599432/14942574238341613337 4388772934226358350/2640112802717985697) -20832244458230302534551181278529162052/32789782692450857054331267544650656975) (num-test (/ -9015230453321124271/17425619133302730035 -10422000746814766599/14972344381173680534) 134979135022768387806775446187867640714/181609815620990738305316999098032100965) (num-test (/ -14741075237791868512/12448692140900938227 -1090381863721238817/1060836378253796023) 15637868866825840780217685066084527776/13573828137487503515304766902031557459) (num-test (/ -7371815071140740177/4722722556038701367 3872455829192658988/994203944294825175) -7329087620340161131469364260313555975/18288534491791723206480607737200436596) (num-test (/ -9856364379969390509/7988230468709836259 -7208901117187058135/7430860779232874136) 1093153305924514768551484985555671272/859497963436269188803272225817371895) (num-test (/ -16740689272507881147/56924866550406451570641164619431212169 -14712532880452686095/143481612520580129383584255576273223983) 2401981091525408257128502717450566513166280001357873948501/837508970838236191644285394369194561392491093277901090055) (num-test (/ 1874027699956565000/65960003455647360668413772300355814843 -172394881832672950/2006879686300828197846469567507151887) -75218962452157875130617756878839223573611935155763100/227423340028380523596387094039260091189651621559491937) (num-test (/ 851521912886492079/58839621451933520132430725102159653727 -5525838657334730480/268863138354222710211869290179088409033) -228942853876053297959532391872114722003932597144466549607/325138254802036127673497464266072288930584674567672498960) (num-test (/ 2130823024472312937/30463932363736038600114358208342163020 413938864244113775/131673792970459944919771618253738144891) 280573549781056638388629087822719475587456644826399754867/12610205563054396144647765193069861697742251186477600500) (num-test (/ 17234694073181371137/253506951459931119968572673772742357160 8407879684613951161/42697666588937447817581914537644794355) 147176244259806896721181660841298454615950364713859506327/426291189417673978158704851675227114861497071554451732552) (num-test (/ 14739301038477826821/4801125431810347467140397350459581435 -1752125940488995048/127905197451270157484305628763539243969) -1885233209620217720514367144506571751170505057476450692549/8412176412616337518572109406238500578932979745867733880) (num-test (/ 9194848570227974720/45448499872046683203864930109076126035374684748838016011669264943000310475483 -4572473918523931944/28941042619577200519536336906341131911598596429670188136734086846500956354149) -33263563043940787786171015409141766453199063320923723716765930467953050399983260590187417389160/25976510037621464639740779963549572814837984766154635046133743883024710122710674726552171566119) (num-test (/ -2662376868940711929/2674240208804755702377222409224408783678596883960539287029565653749020338064 -5046618244273151929/26826013625152995057141957222948811537350409769204161465077735924332004069058) 35710479080747854012875521001477955195584454274704368888444222736697434540936425667291700196441/6747934713661461716612153292457811722283965560031580498434684530869001786777260513409206862728) (num-test (/ 646980248518054663/28444849537262537816809349756569888989442483441699293309597267649158853799707 -10174938507557455325/16470612178414296088079890015341965945714023680627341561729034923083435428747) -10656160760434978971303471120231114671340660575734505071429575384684610862775940451177787597261/289424594898370460244167952344748286246980979584479610186308309369583658143095854438992150589775) (num-test (/ 1268676597518744714/6024937921458004492480888468749320142603908196076058575752452561172018490893 17823595902143962912/85935047374548136904062562443188289405155329832270007415035044821925251080203) 18170630585125644385503771892175817370913744757273904248648000044618805359154885235028182716157/17897676474595109057512045856227678061218241143085827332930191066967148125532813505892133626736) (num-test (/ -3035741006152688190/58890268425224581569217175195410848521985674465189565646495474378301884202047 -4870935665435665519/47998868922405332801456101880162843269583282603435159879276723163289928325531) 145712134636693761356266465698326002831562744975420904782663360472436650653549187025441059178890/286850708819506259357726384810790881448875152111132928069815447961129371272624891025817707117393) (num-test (/ -4420263280205408439/38682162086456801604593696710774835436326970692840048042132553053971380151628 -758651402628235427/1755534012040040367913026343944696058732638465867705260088080517539506722166) 3879961265286134914514096239640695384126081133972137242327715997675029567458817030555062379437/14673138261791601182714628661554161812345431143865809776872034934342213839184709418896670662578) (num-test (/ -312487180249669742743295380499853180353/9828632991038934281 -86131955660561774942466932680637336739/10268762916730341592) 3208856768501438660232746468300370677374054716853273141976/846559380988100144557815474234956961169507773676687849659) (num-test (/ 105376075880566042097567073713047434893/11411565636673693365 -220737802783327232867818580441304577024/5817406274606660773) -613015445021032499619145665530563205764250055719854552289/2518963924957071797477174332253152325843619212749200245760) (num-test (/ -311533429150518992652072799089375050497/4403073054828470603 -320230219907951760832723580313293021909/1370493254961533625) 426954463345823097468320537904981772054351338526938461625/1409997052618498081840381197699863669488222338862641441127) (num-test (/ 305676222727436457375950609916137360009/2001517485431820526 324338803123828318219640932070020543912/11123178903397935211) 3400091311912189654145957985944153094384781502787164376899/649169785656371151621897383467144093766684841422885937712) (num-test (/ 8845112929712368402815105446090151026/8124751572615311799 -107609110538267962880281203537194473336/8714443449141779053) -38540118213625599008519681983731393728094066419546629189/437148645036763776481446937412401903340367189496615845732) (num-test (/ 152921217721894690043853278309581658066/11705615305395353865 184187448038871874764725486848823516773/4171619104693691390) 127585814672335876029018138907883882524550368713261650348/431205482165106014329333719781838993214328411764819575529) (num-test (/ 16414254293541341780725162107696242521/155838132618727968561620486302365154071 323320173010032367023620851618405869489/49801924105617352177018959505967933104) 817461446577249670665800625691379410535771218196808189195363718417488315184/50385611999847495177988476252475899813264458225659097815552272081452203039719) (num-test (/ -188149667625860588508273820953820709614/21438745582767797684161462130971215025 128458309657689922121539794960212789849/134174286369366827879740776978166655691) -25244847384333405496229128525982900130397411994350175944375943735942831513274/2753985018743617742875555653653797261370358442640799457019039857068516281225) (num-test (/ 1218460641064115152742257147372113443/1773382194117714970762642066492794929 -105212349758139121832338365854603836112/35045896682356785176328011712384921341) -42702045738251194875426595475683618047253961691478453648029952948483687063/186581707662369193907913729212042024270164277319717456729276609131940676048) (num-test (/ 1467722271775252460214852151179762687/1747611358981474614363356529179985509 25495740211005247928144692929451604259/29615224810946461612486375021101910565) 14488975012885720730598332784736375353299643425098519766594278819666029385/14852215066131169889445443721709162270198753408805825268529301698140894277) (num-test (/ 6278399735526726207674375684072448068/13890681759576280617381650633747782321 -112063146811220963294237186476216238443/46495820670393894026441353693945662660) -291919348200099113895651901892723884699250237261456280525601785996696740880/1556633509331345870779770006255469001211806559199158615405344674499795966203) (num-test (/ 248406099260780863433196593538936526373/315762135750029127758352280023694126018 -24578051912523675039725210046249323571/3033769619337997374435389027823294736) -376803438597807975522050212312559316811899647514236724224019181136008036264/3880409082236781853269738100403484871805889674074731389226471480469265885139) (num-test (/ -305871752543087256004326578375555909668/80170799467978436032303243749692785696371676780847080230403479135749775915991 -208573266832391890136462745593008906685/96016271562601269514856687672805175650907293023094157826925793080307407361434) 29368665255505841438632782694581946057561031972462112644657516768267440383833513431444679871238206541553985530943912/16721485549600848123731461311227384049611071114404954309505697259277905994635125654414916826332204568970567318299835) (num-test (/ -171651126582338417143004525987733942986/48126955023093310081685702171788275811688444573315712039582092051531229683107 32570134112026732491936310765048378699/18584159151613423191553551933672204731023422884196280183931777685641069715348) -3189991854959918631828923606391779823799241149346421336570141741355492000935500642040047513113849334779592681149128/1567501379505627719887579027549074087653888429037997616626567546431482074522690424133509833932668944596793898937793) (num-test (/ -31304786393644787215292629624842492472/10539846271603297974613179098685212701091372728582260780054561526149580513583 43496364289252206338797704034889660065/966865502932307025364733802774045297740949567802356684866342045679773834966) -30267518040679809082934454680954168768135550720881039440573156734314284479043791824457029301083428211405425375952/458444992982373700837242411005687390212275114474481688646320865335043970683786989531994936463047685893258985162895) (num-test (/ 124366625369659591476708994326732418029/107684759001536292829359995221778346870065030877016948429894748600664800488759 -90949754058598173499067700725927605729/79727020098830307921496202496061295138733611655702270828135321391380898414003) -9915380440470549523296226431396644117384598256053664887332801972488440466568616812942647849957495261151611303260087/9793902347049141646079571573977765974008832433473016883117384010293158932212528563016145547341801740792289848500311) (num-test (/ 26792084925762094333829722201654015569/6815899891200140342329613369008754659665480100088941978786466272502677117648 179968988142253715757129058636648023126/97033837835570527321466682927970125702018459951415339098532052222053589117353) 866579607987744230609336186273867662887766686833260209925103055244528379635362816895584608387230956963010276689619/408883535566062149539621907018509777969515872715944952500700527207173412646715462423653890585029605025758308909216) (num-test (/ 320794852821756057819990044473359503428/42380074203350930293358543616207018031675687905746455222111844144668904183229 -11813439835454851567822019323728871339/51852159737956631156972450987013128151750117741949546305537111598356497409240) -5544635317209327550045071802859986261979158492907374734760649234578367469399038563605323839330681533705071632958240/166884818941132804535892580774781586387104334774784737031184369589400544303785250219152004898392301479219940857877) (num-test (/ 63160395612932962868082774785156358041658469338654564454114468396132462549944/5671929772244157797 19541045450680948617094710246839287171374470593288265457341382295544977156173/10827756125123268218) 227961786821047895774887365257727015864174017882302289602409601101722343657899277052494444293264/36945145824164509580938949252327087600266044162541122809277442696583642758457532273140841543627) (num-test (/ 31389399613343712511677734270541516183531975055644318154870016415582858008412/11320913214023484367 -95931706646769408081251897664360951854776052790951374912970042200868629796051/14301831604104230477) -149641969141325406602881756591195860220337618158488775091717625369334526143115090325362684257508/362011508473745439254610688691597507367516106821889963803421575701854031622412859179610532278239) (num-test (/ -50845041077039215658764589763556935122444212169574762080162289087527164772395/482986173890811026 -51342299909113507561385579724776151277474630060658338514843664853027455595538/3864573616937705869) 196494404298439669659681446421686066898686292162412914850963937042669022612531239234324840686255/24797620991857267698917294149872672843409173617406514673128342148521539559341861421304646801988) (num-test (/ 76283614020376921713154299810619585257752996149145061806263596894412414185408/337890011287912517039286436540240936661 70530558237421368381589233382700323659036925075366138096846582768833233488577/12121510300837787759729092713205686989) 924672613133132744522463879340347327755455994321131972145048214329608890428265966744607561005512244129921459256512/23831571118985077324412202325831974453532679575894228007993082738742295289254461850021038245882565939546151124021397) (num-test (/ 13518475961402756750057330871273933874583566313800024119371308450919239424622/71146816100737230880567880716110051085 -11914742388051168959634071864657967837347162591767656949770878950409478930980/166466796775669753065110807850377519909) -1125188695291804746273664719520877594103080002716204716437885631737502681157239448228517736957154781558316254899699/423847992785167635691798025732868758201476408654527740579259436528169254792708107390082891890404030666159494556650) (num-test (/ -53624051286117226406327700847140806598091981633622544805551583455315188018537/149060170957501829683988930330276188371 -49540630291338976658332195799658601133012561780540500265134312414843218811481/313014990314092319823049811442768272842) 16785131893926373429171158665038393627227592608630727377590747943991201054188961463248027101037470630205119769672154/7384534820569381535972144752572408048556227885764547207137140227958732266609348654686668662110083737942669493487451) (num-test (/ 2634758410586745842739353561704344884865889793873131750193619887157306355755/83106075320614705363810122092414199463231740446254118542567688658288107572919 10787649314660479714744029413883607304719873485501736976813666398631455642569/2439964488756696481271244145022481444549967702052558191280867337292105066432) 2142905652761565172685487282499186838096673751132490328620490049367034561455889328384026705096013173825469773464105722689198047146574263705663366838720/298839732158850477765824602476778580028064205733214070073086531571837859351705342746223206218407306637658483098569582239416197836311325170250187389329637) (num-test (/ -1907320079310938642409293211056905401889419041722087613680756850005726714712/10387378553621846874105702088597026076825105075730032753153301604042569998683 113647247724474559442709588703965365251731833799417671287796250968092484717057/58756890421232187224353930678527831208703723187770044891160428018937233424397) -37356065632762902117955690133395145368676268194116097031480521390942668514422835237280325034441435052929702455487858500299401976652159912902024146542888/393498994563785425899168694480259206994308562177080555315323154941891277193612821825931878224565302417504072329241812530787363937691786269618438039211977) (num-test (/ -54987418627898620923060954379316763081930842855917193391807940070173620336071/17370345837184638879794373707261631548922174314274224219546763452439685451597 107349939397731511365417710412808670916754334908520065561311453951414109180973/7800708635318451621630266369706695626474649690647985662113853436261704078874) -428940831324519456770429889832838610542119304716244392653623661175655561457214418178921042544524225772650432309479656622489393939407340321261255371264054/1864705572939408818246392762570376592749103793151936455808919833872532407312841098160841844995663367019074328670998871082130543124576872890789577304863881) (s7-test (= -98781233389595723930250385525631360344437602649022271391716773162526352115087074898920261954897888235939429993829738630297052776667061779065100945771127020439712527398509771853491319737304616607041615012797134365574007368603232768089410097730646360760856052946465578073788924743642391638455649511108051053789425902013657106523269224045822294981391380222050223141347787674321888089837786284947870569165079491411110074602544203383038299901291952931113248943344436935596614205784436844912243069019367149526328612664067719765890897558075277707055756274228634652905751880612235340874976952880431555921814590049070979276358637989837532124647692152520447680373275200239544449293834424643702763974403094033892112967196087310232853165951285609426599617479356206218697586025251765476179158153123631158173662488102357611674821528467825910806391548770908013608889792001203039243914696463472490444573930050190716726220002151679336252008777326482398042427845860796285369622627679324605214987983884122808994422164327311297556122943400093231935477754959547620500784989043704825777186301417894825200797719289692636286337716705491307686644214213732116277102140558505945554566856673724837541141206267647285222293953181717113434757149921850120377706206012113994795124049471433490016083401216757825264766474891405185591236321448744678896448941259668731597494947127423662646933419809756274038044752395708014998820826196523041220918922611359697502638594907608648168849193813197790291360087857093790119162389573209640804111261616771827989939551840471235079945175327536638365874717775169210186608268924244639016270610098894971732892267642318266405837012482726627199088381027028630711279130575230815976484191675172279903609489448225149181063260231957171204855841611039996959582465138269247794842445177715476581512709861409446684911276158067098438009067149531119008707418601627426255891/2063950098473886055933596136103014753954685977787179797499441692283103642150668140884348149132839387663291870239435604463778573480782766958396423322880804442523056530013282118705429274303746421980903580754656364533869319744640130831962767797772323836293079599182477171562218297208495122660799328579852852969560730744211066545295945803939271680397511478811389399527913043145952054883289558914237172406636283114284363301999238526952309439259354223729114988806937903509692118585280437646676248013406270664905997291670857985754768850507766359973207600149782819306010561088246502918148146264806947375101624011387317921439210509902170092173796154464078297852707797984007992277904626058467143192149921546030028316990855470478894515952884526783686210401408859364838148201339959570732480920969000913791571631154267939054105878236201498477027265774680071188764947522112650857013491135901945605796776829525789886482760578142306057177990048751864852763036720112071475134369179525117161001517868525821398753039187062869247457336940152614866298628205010037695017885878296140891234142925514925051385440766473260338168038302226808098439763889250948602137806546736025439919604390464712793474019469457135856879584745805794574609707742445431851999335443724488636749987837445626810087003490329257105472274738811579817454656532496370562155449815456374456838912258383282154811001588175608617475540639254689723629881619252699580383612847920348111900440075645703960104081690968807839189109040568288972353424306876947127635585164905071821419089229871978994388197349499565628906992171901547121903117815637249359328193980583892566359962066242217169190169986105579733710057404319381685578470983838597020624234209884597110721892707818651210378187525863009879314177842634871978427592746452643603586344401223449546482306838947819060455178762434166799996220143825677025686435609179225302671777326568324855229172912876656233006785717920665743720753617646617017219230313226844735567400507490772935145894670445831971526014183234960075574401616682479457962912905141754252265169682318523572680657053374002911007741991220001444440319448034755483178790032581428679303588017268970 0) #f) (let ((val1 (handle-exceptions exn 'error (/ 1.0 0.0))) (val2 (handle-exceptions exn 'error (/ 1.0 -0.0)))) (s7-test (equal? val1 val2) #t)) (s7-test (/ "hi") 'error) (s7-test (/ -0) 'error) (s7-test (/ 0) 'error) ;; Not an error ;(s7-test (/ 0.0) 'error) (s7-test (/ 0.0) +inf.0) (s7-test (/ 1.0 0) 'error) (s7-test (/) 'error) (s7-test (/ 0/3) 'error) (s7-test (/ 0 1 "hi") 'error) (s7-test (/ 2/3 0) 'error) (num-test (- 2 (* 3796553736732654909229441/2684568892382786771291329 3796553736732654909229441/2684568892382786771291329)) 1/7206910137949342581102166717750576215502190586241) (test-end "/") ;;; -------------------------------------------------------------------------------- ;;; string->number ;;; number->string ;;; -------------------------------------------------------------------------------- (test-begin "string->number/number->string") (s7-test (string->number "+#.#") #f) (s7-test (string->number "-#.#") #f) (s7-test (string->number "#.#") #f) (s7-test (string->number "#i") #f) (s7-test (string->number "#e") #f) (s7-test (string->number "#") #f) (for-each (lambda (n) (if (not (eqv? n (string->number (number->string n)))) (format #t ";(string->number (number->string ~A)) = ~A?~%" n (string->number (number->string n))))) (list 1 2 3 10 1234 1234000000 500029 362880 0/1 0/2 0/3 0/10 0/1234 0/1234000000 0/500029 0/362880 1/1 1/2 1/3 1/10 1/1234 1/1234000000 1/500029 1/362880 2/1 2/2 2/3 2/10 2/1234 2/1234000000 2/500029 2/362880 3/1 3/2 3/3 3/10 3/1234 3/1234000000 3/500029 3/362880 10/1 10/2 10/3 10/10 10/1234 10/1234000000 10/500029 10/362880 1234/1 1234/2 1234/3 1234/10 1234/1234 1234/1234000000 1234/500029 1234/362880 1234000000/1 1234000000/2 1234000000/3 1234000000/10 1234000000/1234 1234000000/1234000000 1234000000/500029 1234000000/362880 500029/1 500029/2 500029/3 500029/10 500029/1234 500029/1234000000 500029/500029 500029/362880 362880/1 362880/2 362880/3 362880/10 362880/1234 362880/1234000000 362880/500029 362880/362880)) (let ((fequal? (lambda (a b) (< (magnitude (- a b)) 1e-14)))) (for-each (lambda (x) (if (not (fequal? x (string->number (number->string x)))) (format #t ";(string->number (number->string ~A)) -> ~A?~%" x (string->number (number->string x))))) (list 0.000000 1.000000 3.141593 2.718282 1234.000000 1234000000.000000 0.000000+0.000000i 0.000000+0.000000i 0.000000+1.000000i 0.000000+3.141593i 0.000000+2.718282i 0.000000+1234.000000i 0.000000+1234000000.000000i 0.000000+0.000000i 0.000000+0.000000i 0.000000+1.000000i 0.000000+3.141593i 0.000000+2.718282i 0.000000+1234.000000i 0.000000+1234000000.000000i 1.000000+0.000000i 1.000000+0.000000i 1.000000+1.000000i 1.000000+3.141593i 1.000000+2.718282i 1.000000+1234.000000i 1.000000+1234000000.000000i 3.141593+0.000000i 3.141593+0.000000i 3.141593+1.000000i 3.141593+3.141593i 3.141593+2.718282i 3.141593+1234.000000i 3.141593+1234000000.000000i 2.718282+0.000000i 2.718282+0.000000i 2.718282+1.000000i 2.718282+3.141593i 2.718282+2.718282i 2.718282+1234.000000i 2.718282+1234000000.000000i 1234.000000+0.000000i 1234.000000+0.000000i 1234.000000+1.000000i 1234.000000+3.141593i 1234.000000+2.718282i 1234.000000+1234.000000i 1234.000000+1234000000.000000i 1234000000.000000+0.000000i 1234000000.000000+0.000000i 1234000000.000000+1.000000i 1234000000.000000+3.141593i 1234000000.000000+2.718282i 1234000000.000000+1234.000000i 1234000000.000000+1234000000.000000i))) (s7-test (string->number "1+1+i") #f) (s7-test (string->number "1+i+i") #f) (s7-test (string->number "1+.i") #f) (s7-test (string->number ".") #f) (s7-test (string->number "8.41470984807896506652502321630298999622563060798371065672751709991910404391239668948639743543052695.") #f) (s7-test (string->number "8.41470184807816506652502321630218111622563060718371065672751701111110404311231668148631743543052695" 9) #f) (s7-test (number->string -9223372036854775808) "-9223372036854775808") (s7-test (number->string 9223372036854775807) "9223372036854775807") (s7-test (number->string 123 8) "173") (s7-test (number->string 123 16) "7b") (s7-test (number->string 123 2) "1111011") (s7-test (number->string -123 8) "-173") (s7-test (number->string -123 16) "-7b") (s7-test (number->string -123 2) "-1111011") (s7-test (number->string 0 8) "0") (s7-test (number->string 0 2) "0") (s7-test (number->string 0 16) "0") (s7-test (number->string 1 8) "1") (s7-test (number->string 1 2) "1") (s7-test (number->string 1 16) "1") (s7-test (number->string -1 8) "-1") (s7-test (number->string -1 2) "-1") (s7-test (number->string -1 16) "-1") (s7-test (string->number "- 1") #f) (num-test (string->number "1+0i") 1.0) (num-test (string->number "0-0i") 0.0) (num-test (string->number "0-0e10i") 0.0) (num-test (string->number "0-0e40i") 0.0) (num-test (string->number "0-0e100i") 0.0) (s7-test (string->number "0e10e100") #f) ;; s7.html claims this '=' is guaranteed... (s7-test (= .6 (string->number ".6")) #t) (s7-test (= 0.60 (string->number "0.60")) #t) (s7-test (= 60e-2 (string->number "60e-2")) #t) (s7-test (= #i3/5 (string->number "#i3/5")) #t) (s7-test (= 0.11 (string->number "0.11")) #t) (s7-test (= 0.999 (string->number "0.999")) #t) (s7-test (= 100.000 (string->number "100.000")) #t) (s7-test (= 1e10 (string->number "1e10")) #t) (s7-test (= 0.18 (string->number "0.18")) #t) (s7-test (= 0.3 (string->number "0.3")) #t) (s7-test (= 0.333 (string->number "0.333")) #t) (s7-test (= -1/10 (string->number "-1/10")) #t) (s7-test (= -110 (string->number "-110")) #t) (s7-test (= 1+i (string->number "1+i")) #t) (s7-test (= 0.6-.1i (string->number "0.6-.1i")) #t) ;; but is this case also guaranteed?? (s7-test (= .6 (string->number (number->string .6))) #t) (s7-test (= 0.6 (string->number (number->string 0.6))) #t) (s7-test (= 0.60 (string->number (number->string 0.60))) #t) (s7-test (= 60e-2 (string->number (number->string 60e-2))) #t) ;(s7-test (= #i3/5 (string->number (number->string #i3/5))) #t) (s7-test (= 0.11 (string->number (number->string 0.11))) #t) (s7-test (= 0.999 (string->number (number->string 0.999))) #t) (s7-test (= 100.000 (string->number (number->string 100.000))) #t) (s7-test (= 1e10 (string->number (number->string 1e10))) #t) (s7-test (= 0.18 (string->number (number->string 0.18))) #t) (s7-test (= 0.3 (string->number (number->string 0.3))) #t) (s7-test (= 0.333 (string->number (number->string 0.333))) #t) (s7-test (= -1/10 (string->number (number->string -1/10))) #t) (s7-test (= -110 (string->number (number->string -110))) #t) (s7-test (= 1+i (string->number (number->string 1+i))) #t) (s7-test (= 0.6-.1i (string->number (number->string 0.6-.1i))) #t) (s7-test (= 0.6 0.600) #t) (s7-test (= 0.6 6e-1 60e-2 .06e1 6.e-1) #t) (s7-test (= 0.6 6e-1 60e-2 .06e1 600e-3 6000e-4 .0006e3) #t) (s7-test (= 0.3 0.3000) #t) (s7-test (= 0.345 0.345000 345.0e-3) #t) ;; scheme spec says (eqv? (number->string (string->number num radix) radix) num) is always #t ;; (also that radix is 10 if num is inexact) ;; currently in s7, if m below is 0, s7 is ok, but if there's a true integer part, we sometimes lose by 1e-15 or so #;(let () (do ((m 0 (+ m 1))) ((= m 10)) (do ((i 0 (+ i 1))) ((= i 10)) (do ((j 0 (+ j 1))) ((= j 10)) (do ((k 0 (+ k 1))) ((= k 10)) (let* ((str (string (integer->char (+ (char->integer #\0) i)) (integer->char (+ (char->integer #\0) j)) (integer->char (+ (char->integer #\0) k)))) (strd (string (integer->char (+ (char->integer #\0) m)))) (str1 (string-append strd "." str)) (str2 (string-append (if (= m 0) "" strd) "." str "000")) (str3 (string-append strd str "e-3")) (str4 (string-append strd str ".e-3")) (str5 (string-append "0.0" strd str "e2")) (str6 (string-append ".00000" strd str "e6")) (str7 (string-append strd str "00e-5")) (args (list (string->number str1) (string->number str2) (string->number str3) (string->number str4) (string->number str5) (string->number str6) (string->number str7)))) (if (not (apply = args)) (format #t "~A.~A: ~{~D~^~4T~}~%" strd str (map (lambda (val) (let ((ctr 0)) (for-each (lambda (arg) (if (not (equal? val arg)) (set! ctr (+ ctr 1)))) args) ctr)) args))))))))) ;;(s7-test (format #f "~F" (/ 1.0 0.0)) "+inf.0") ;;(s7-test (format #f "~E" (/ 1.0 0.0)) "+inf.0") ;;(s7-test (format #f "~G" (/ 1.0 0.0)) "+inf.0") ;;(s7-test (format #f "~D" (/ 1.0 0.0)) "+inf.0") ;;(s7-test (format #f "~X" (/ 1.0 0.0)) "+inf.0") (s7-test (format #f "~B" (/ 1.0 0.0)) "+inf.0") (s7-test (format #f "~O" (/ 1.0 0.0)) "+inf.0") (s7-test (format #f "~A" (/ 1.0 0.0)) "+inf.0") (s7-test (format #f "~S" (/ 1.0 0.0)) "+inf.0") ;(s7-test (format #f "~P" (/ 1.0 0.0)) "s") (s7-test (nan? (string->number "+nan.0")) #t) (s7-test (nan? (string->number "+nan.0" 2)) #t) (s7-test (number->string (real-part (log 0.0))) "-inf.0") (s7-test (number->string (real-part (log 0.0)) 2) "-inf.0") (s7-test (number->string (real-part (log 0.0)) 16) "-inf.0") (s7-test (number->string (- (real-part (log 0.0)))) "+inf.0") (s7-test (number->string (- (real-part (log 0.0))) 2) "+inf.0") ;(s7-test (format #f "~G" (real-part (log 0.0))) "-inf.0") ;(s7-test (format #f "~E" (real-part (log 0.0))) "-inf.0") ;(s7-test (format #f "~F" (real-part (log 0.0))) "-inf.0") ;(s7-test (format #f "~D" (real-part (log 0.0))) "-inf.0") (s7-test (format #f "~X" (real-part (log 0.0))) "-inf.0") (s7-test (format #f "~B" (real-part (log 0.0))) "-inf.0") (s7-test (format #f "~O" (real-part (log 0.0))) "-inf.0") (s7-test (format #f "~A" (real-part (log 0.0))) "-inf.0") (s7-test (format #f "~S" (real-part (log 0.0))) "-inf.0") ;(s7-test (format #f "~P" (real-part (log 0.0))) "s") (s7-test (infinite? (string->number "+inf.0")) #t) (s7-test (infinite? (string->number "+inf.0" 16)) #t) (s7-test (infinite? (string->number "-inf.0")) #t) (s7-test (infinite? (string->number "-inf.0" 16)) #t) (s7-test (negative? (string->number "-inf.0")) #t) ;(s7-test (number->string 0+0/0i 2) "0-nani") ; there are too many possible correct choices (s7-test (equal? 0.0 0e0) #t) (s7-test (equal? 0.0 -0.0) #t) (s7-test (eqv? 0.0 -0.0) #t) (s7-test (equal? 0.0 0e-0) #t) (s7-test (equal? 0.0 .0e+0) #t) (s7-test (equal? 0.0 00000000000000000000000000000000000000000000000000000e100) #t) (s7-test (equal? 0.0 .0000000000000000000000000000000000000000000000000000e100) #t) (s7-test (equal? 0.0 00000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000e100) #t) (s7-test (equal? 0.0 0e100000000000000000000000000000000000000000000000000000000000000000000000) #t) (num-test 0 0/1000000000) (num-test 0 0/100000000000000000000000000000000000000) (num-test 0 0/100000000000000000000000000000000000000000000000000000000000000) (num-test 0 0/100000000000000000000000000000000000000000000000000000000000000000000) (num-test 0 -0/100000000000000000000000000000000000000000000000000000000000000000000) (num-test 0 0/1000000000+0/1000000000i) (num-test 0 0/100000000000000000000000000000000000000-0/100000000000000000000000000000000000000i) (num-test 0 0/100000000000000000000000000000000000000000000000000000000000000+0/100000000000000000000000000000000000000000000000000000000000000i) (num-test 0 0/100000000000000000000000000000000000000000000000000000000000000000000-0/100000000000000000000000000000000000000000000000000000000000000000000i) (num-test 0 0+0/1000000000i) (num-test 0 0-0/100000000000000000000000000000000000000i) (num-test 0 0+0/100000000000000000000000000000000000000000000000000000000000000i) (num-test 0 0-0/100000000000000000000000000000000000000000000000000000000000000000000i) (num-test 0 0/1000000000+0i) (num-test 0 0/100000000000000000000000000000000000000-0i) (num-test 0 0/100000000000000000000000000000000000000000000000000000000000000+0i) (num-test 0 0/100000000000000000000000000000000000000000000000000000000000000000000-0i) (s7-test (< 0 1000000000000000000000000000000000) #t) (s7-test (> 0 -1000000000000000000000000000000000) #t) (s7-test (equal? 0.0 0.0e10) #t) (s7-test (equal? 0.0 0e100) #t) (s7-test (equal? 0.0 0.0e1000) #t) (s7-test (equal? 0.0 0e+1000) #t) (s7-test (equal? 0.0 0.0e-1) #t) (s7-test (equal? 0.0 0e-10) #t) (s7-test (equal? 0.0 0.0e-100) #t) (s7-test (equal? 0.0 0e-1000) #t) (s7-test (equal? 0.0 0.0e0123456789) #t) (s7-test (equal? 0.0 0-0e10i) #t) (s7-test (equal? 0.0 0-0.0e100i) #t) (s7-test (equal? 0.0 0-0e1000i) #t) (s7-test (equal? 0.0 0-0.0e+1000i) #t) (s7-test (equal? 0.0 0-0e-1i) #t) (s7-test (equal? 0.0 0-0.0e-10i) #t) (s7-test (equal? 0.0 0-0e-100i) #t) (s7-test (equal? 0.0 0-0.0e-1000i) #t) (s7-test (equal? 0.0 0.0+0e0123456789i) #t) (num-test 0.0 1e-1000) (if (provided? 'dfls-exponents) (begin (s7-test (> 1.0L10 1.0e9) #t) (s7-test (> 1.0l10 1.0e9) #t) (s7-test (> 1.0s10 1.0e9) #t) (s7-test (> 1.0S10 1.0e9) #t) (s7-test (> 1.0d10 1.0e9) #t) (s7-test (> 1.0D10 1.0e9) #t) (s7-test (> 1.0f10 1.0e9) #t) (s7-test (> 1.0F10 1.0e9) #t) (s7-test (> (real-part 1.0L10+i) 1.0e9) #t) (s7-test (> (real-part 1.0l10+i) 1.0e9) #t) (s7-test (> (real-part 1.0s10+i) 1.0e9) #t) (s7-test (> (real-part 1.0S10+i) 1.0e9) #t) (s7-test (> (real-part 1.0d10+i) 1.0e9) #t) (s7-test (> (real-part 1.0D10+i) 1.0e9) #t) (s7-test (> (real-part 1.0f10+i) 1.0e9) #t) (s7-test (> (real-part 1.0F10+i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0L10i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0l10i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0s10i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0S10i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0d10i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0D10i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0f10i) 1.0e9) #t) (s7-test (> (imag-part 1.0+1.0F10i) 1.0e9) #t) (s7-test (> (string->number "1.0L10") 1.0e9) #t) (s7-test (> (string->number "1.0l10") 1.0e9) #t) (s7-test (> (string->number "1.0s10") 1.0e9) #t) (s7-test (> (string->number "1.0S10") 1.0e9) #t) (s7-test (> (string->number "1.0d10") 1.0e9) #t) (s7-test (> (string->number "1.0D10") 1.0e9) #t) (s7-test (> (string->number "1.0f10") 1.0e9) #t) (s7-test (> (string->number "1.0F10") 1.0e9) #t) (s7-test (> (real-part (string->number "1.0L10+i")) 1.0e9) #t) (s7-test (> (real-part (string->number "1.0l10+i")) 1.0e9) #t) (s7-test (> (real-part (string->number "1.0s10+i")) 1.0e9) #t) (s7-test (> (real-part (string->number "1.0S10+i")) 1.0e9) #t) (s7-test (> (real-part (string->number "1.0d10+i")) 1.0e9) #t) (s7-test (> (real-part (string->number "1.0D10+i")) 1.0e9) #t) (s7-test (> (real-part (string->number "1.0f10+i")) 1.0e9) #t) (s7-test (> (real-part (string->number "1.0F10+i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0L10i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0l10i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0s10i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0S10i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0d10i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0D10i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0f10i")) 1.0e9) #t) (s7-test (> (imag-part (string->number "1.0+1.0F10i")) 1.0e9) #t) (begin (s7-test (> (string->number "1.0L100") 1.0e98) #t) (s7-test (> (string->number "1.0l100") 1.0e98) #t) (s7-test (> (string->number "1.0s100") 1.0e98) #t) (s7-test (> (string->number "1.0S100") 1.0e98) #t) (s7-test (> (string->number "1.0d100") 1.0e98) #t) (s7-test (> (string->number "1.0D100") 1.0e98) #t) (s7-test (> (string->number "1.0f100") 1.0e98) #t) (s7-test (> (string->number "1.0F100") 1.0e98) #t) (s7-test (> (string->number "1.0E100") 1.0e98) #t) (s7-test (> 1.0L100 1.0e98) #t) (s7-test (> 1.0l100 1.0e98) #t) (s7-test (> 1.0s100 1.0e98) #t) (s7-test (> 1.0S100 1.0e98) #t) (s7-test (> 1.0d100 1.0e98) #t) (s7-test (> 1.0D100 1.0e98) #t) (s7-test (> 1.0f100 1.0e98) #t) (s7-test (> 1.0F100 1.0e98) #t) (s7-test (> (real-part (string->number "1.0L100+i")) 1.0e98) #t) (s7-test (> (real-part (string->number "1.0l100+i")) 1.0e98) #t) (s7-test (> (real-part (string->number "1.0s100+i")) 1.0e98) #t) (s7-test (> (real-part (string->number "1.0S100+i")) 1.0e98) #t) (s7-test (> (real-part (string->number "1.0d100+i")) 1.0e98) #t) (s7-test (> (real-part (string->number "1.0D100+i")) 1.0e98) #t) (s7-test (> (real-part (string->number "1.0f100+i")) 1.0e98) #t) (s7-test (> (real-part (string->number "1.0F100+i")) 1.0e98) #t) (s7-test (> (real-part 1.0L100+i) 1.0e98) #t) (s7-test (> (real-part 1.0l100+i) 1.0e98) #t) (s7-test (> (real-part 1.0s100+i) 1.0e98) #t) (s7-test (> (real-part 1.0S100+i) 1.0e98) #t) (s7-test (> (real-part 1.0d100+i) 1.0e98) #t) (s7-test (> (real-part 1.0D100+i) 1.0e98) #t) (s7-test (> (real-part 1.0f100+i) 1.0e98) #t) (s7-test (> (real-part 1.0F100+i) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0L100i")) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0l100i")) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0s100i")) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0S100i")) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0d100i")) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0D100i")) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0f100i")) 1.0e98) #t) (s7-test (> (imag-part (string->number "1.0+1.0F100i")) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0L100i) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0l100i) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0s100i) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0S100i) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0d100i) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0D100i) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0f100i) 1.0e98) #t) (s7-test (> (imag-part 1.0+1.0F100i) 1.0e98) #t) ))) (s7-test (number? (string->number "#e1.0e564")) #t) (s7-test (number? (string->number "#e1.0e307")) #t) (s7-test (number? (string->number "#e1.0e310")) #t) (num-test (string->number "#e1624540914719833702142058941") 1624540914719833702142058941) (num-test (string->number "#i1624540914719833702142058941") 1.624540914719833702142058941E27) (num-test (string->number "#e8978167593632120808315265/5504938256213345873657899") 8978167593632120808315265/5504938256213345873657899) (num-test (string->number "#i8978167593632120808315265/5504938256213345873657899") 1.630929753571457437099527114342760854299E0) (num-test (string->number "#i119601499942330812329233874099/12967220607") 9.223372036854775808414213562473095048798E18) (num-test (string->number "#e005925563891587147521650777143.74135805596e05") 148139097289678688041269428593533951399/250000) (num-test (string->number "#e-1559696614.857e28") -15596966148570000000000000000000000000) (s7-test (integer? (string->number "#e1e310")) #t) (s7-test (number? (string->number "#e1.0e310")) #t) ;; in the non-gmp case #e1e321 is a read error -- should s7 return NaN silently? ;; can't use #e1e543 directly here because the reader throws an error even though with-bignums is #f ;;(s7-test (number? (string->number "#e1e307")) #t) ;;(s7-test (number? #e1.0e564) #t) (s7-test (string->number "#e005925563891587147521650777143.74135805596e05") 148139097289678688041269428593533951399/250000) (s7-test (string->number "#e78.5e65") 7850000000000000000000000000000000000000000000000000000000000000000) (s7-test (string->number "#e-1559696614.857e28") -15596966148570000000000000000000000000) (s7-test (= 0 00 -000 #e-0 0/1 #e#x0 #b0000 #e#d0.0 -0 +0) #t) ;; (do ((i 0 (+ i 1)) (n 1 (* n 2))) ((= i 63)) (display n) (display " ") (display (number->string n 16)) (newline)) (s7-test (number->string 3/4 2) "11/100") (s7-test (number->string 3/4 8) "3/4") (s7-test (number->string 3/4 16) "3/4") (s7-test (number->string -3/4 2) "-11/100") (s7-test (number->string -3/4 8) "-3/4") (s7-test (number->string -3/4 16) "-3/4") (num-test (string->number "1/2") 1/2) ;; These should actually return #f ;(s7-test (nan? (string->number "1/0")) #t) ;(s7-test (nan? (string->number "0/0")) #t) (s7-test (string->number "1/0") #f) (s7-test (string->number "0/0") #f) ;; And an error ;(s7-test (nan? 0/0) #t) (s7-test (string->number "1.0/0.0") #f) (s7-test (string->number "'1") #f) (s7-test (string->number "`1") #f) (num-test (string->number "10111/100010" 2) 23/34) (num-test (string->number "27/42" 8) 23/34) (num-test (string->number "17/22" 16) 23/34) (num-test (string->number "-10111/100010" 2) -23/34) (num-test (string->number "-27/42" 8) -23/34) (num-test (string->number "-17/22" 16) -23/34) (num-test (string->number "11/100" 2) 3/4) (s7-test (number->string 23/34 2) "10111/100010") (s7-test (number->string 23/34 8) "27/42") (s7-test (number->string 23/34 16) "17/22") (s7-test (number->string -23/34 2) "-10111/100010") (s7-test (number->string -23/34 8) "-27/42") (s7-test (number->string -23/34 16) "-17/22") (s7-test (number->string -1 16) "-1") ;(s7-test (number->string #xffffffffffffffff 16) "-1") -- is this a bug? it's correct in 64-bit land (num-test (string->number "3/4+1/2i") 0.75+0.5i) (num-test (string->number "3/4+i") 0.75+i) (num-test (string->number "0+1/2i") 0+0.5i) (s7-test (string->number "3+0i/4") #f) (num-test (string->number "3/4+0i") 0.75) (s7-test (string->number " 1.0") #f) (s7-test (string->number "1.0 ") #f) (s7-test (string->number "1.0 1.0") #f) ;(s7-test (string->number (string #\1 (integer->char 0) #\0)) 1) ; ?? Guile returns #f (s7-test (string->number "1+1 i") #f) (s7-test (string->number "1+ei") #f) (s7-test (string->number " #b1") #f) (s7-test (string->number "#b1 ") #f) (s7-test (string->number "#b1 1") #f) (s7-test (string->number "#b 1") #f) (s7-test (string->number "# b1") #f) (s7-test (string->number "#b12") #f) (s7-test (string->number "000+1") #f) (s7-test (string->number (string (integer->char 216))) #f) ; slashed 0 (s7-test (string->number (string (integer->char 189))) #f) ; 1/2 as single char (s7-test (string->number (string #\1 (integer->char 127) #\0)) #f) ; backspace (s7-test (string->number "1E1") 10.0) (s7-test (string->number "1e1") 10.0) (s7-test (string->number "1D1") 10.0) (s7-test (string->number "1S1") 10.0) (s7-test (string->number "1F1") 10.0) (s7-test (string->number "1L1") 10.0) (s7-test (string->number "1d1") 10.0) (s7-test (string->number "1s1") 10.0) (s7-test (string->number "1f1") 10.0) (s7-test (string->number "1l1") 10.0) (num-test (string->number "1234567890123456789012345678901234567890.123456789e-30") 1234567890.1235) (num-test (string->number "123456789012345678901234567890123456789012345678901234567890.123456789e-50") 1234567890.1235) (num-test (- 1234567890123456789012345678901234567890123456789012345678901234567890.123456789e-60 12345678901234567890123456789012345678901234567890.123456789e-40) 0.0) (num-test 0000000000000000000000000001.0 1.0) (num-test 1.0000000000000000000000000000 1.0) ;; XXX TODO: Overflow (1.0e-13), see if we can maybe represent this slightly better ;(num-test 1000000000000000000000000000.0e-40 1.0e-12) (num-test 0.0000000000000000000000000001e40 1.0e12) (num-test 1.0e00000000000000000001 10.0) (num-test 12341234.56789e12 12341234567889999872.0) (num-test -1234567890123456789.0 -1234567890123456768.0) (num-test 12345678901234567890.0 12345678901234567168.0) (num-test 123.456e30 123456000000000012741097792995328.0) (num-test 12345678901234567890.0e12 12345678901234569054409354903552.0) (num-test 1.234567890123456789012e30 1234567890123456849145940148224.0) (num-test 1e20 100000000000000000000.0) (num-test 1234567890123456789.0 1234567890123456768.0) (num-test 123.456e16 1234560000000000000.0) (num-test 98765432101234567890987654321.0e-5 987654321012345728401408.0) (num-test 98765432101234567890987654321.0e-10 9876543210123456512.0) (num-test 0.00000000000000001234e20 1234.0) (num-test 0.000000000000000000000000001234e30 1234.0) (num-test 0.0000000000000000000000000000000000001234e40 1234.0) (num-test 0.000000000012345678909876543210e15 12345.678909877) (num-test 98765432101234567890987654321.0e-20 987654321.012346) (num-test 98765432101234567890987654321.0e-29 0.98765432101235) (num-test 98765432101234567890987654321.0e-30 0.098765432101235) (num-test 98765432101234567890987654321.0e-28 9.8765432101235) (num-test 1.0123456789876543210e1 10.12345678987654373771) (num-test 1.0123456789876543210e10 10123456789.87654304504394531250) (num-test 0.000000010000000000000000e10 100.0) (num-test 0.000000010000000000000000000000000000000000000e10 100.0) (num-test 0.000000012222222222222222222222222222222222222e10 122.22222222222222) (num-test 0.000000012222222222222222222222222222222222222e17 1222222222.222222) (num-test (- (string->number "769056139124082.") (string->number "769056139124080.")) 2.0) (num-test (string->number "0000000000000000000000000001.0") 1.0) (num-test (string->number "1.0000000000000000000000000000") 1.0) ;; XXX TODO: Overflow (1.0e-13), see if we can maybe represent this slightly better ;(num-test (string->number "1000000000000000000000000000.0e-40") 1.0e-12) (num-test (string->number "0.0000000000000000000000000001e40") 1.0e12) (num-test (string->number "1.0e00000000000000000001") 10.0) (num-test (string->number "12341234.56789e12") 12341234567889999872.0) (num-test (string->number "-1234567890123456789.0") -1234567890123456768.0) (num-test (string->number "12345678901234567890.0") 12345678901234567168.0) (num-test (string->number "123.456e30") 123456000000000012741097792995328.0) (num-test (string->number "12345678901234567890.0e12") 12345678901234569054409354903552.0) (num-test (string->number "1.234567890123456789012e30") 1234567890123456849145940148224.0) (num-test (string->number "1e20") 100000000000000000000.0) (num-test (string->number "1234567890123456789.0") 1234567890123456768.0) (num-test (string->number "123.456e16") 1234560000000000000.0) (num-test (string->number "98765432101234567890987654321.0e-5") 987654321012345728401408.0) (num-test (string->number "98765432101234567890987654321.0e-10") 9876543210123456512.0) (num-test (string->number "0.00000000000000001234e20") 1234.0) (num-test (string->number "0.000000000000000000000000001234e30") 1234.0) (num-test (string->number "0.0000000000000000000000000000000000001234e40") 1234.0) (num-test (string->number "0.000000000012345678909876543210e15") 12345.678909877) (num-test (string->number "98765432101234567890987654321.0e-20") 987654321.012346) (num-test (string->number "98765432101234567890987654321.0e-29") 0.98765432101235) (num-test (string->number "98765432101234567890987654321.0e-30") 0.098765432101235) (num-test (string->number "98765432101234567890987654321.0e-28") 9.8765432101235) (num-test (string->number "1.0123456789876543210e1") 10.12345678987654373771) (num-test (string->number "1.0123456789876543210e10") 10123456789.87654304504394531250) (num-test (string->number "0.000000010000000000000000e10") 100.0) (num-test (string->number "0.000000010000000000000000000000000000000000000e10") 100.0) (num-test (string->number "0.000000012222222222222222222222222222222222222e10") 122.22222222222222) (num-test (string->number "0.000000012222222222222222222222222222222222222e17") 1222222222.222222) ;; Invalid syntax for non-base 10 ;(num-test (string->number "1.1001001000011111101101010100010001000010110100010011" 2) 1.5707963267949) ;(num-test #x0000000000000000000000000001.0 1.0) ;(num-test #x1.0000000000000000000000000000 1.0) ;(s7-test (number->string 1222222222.222222 16) "48d9a18e.38e38c") ;(num-test (string->number (number->string 1222222222.222222222222222222 16) 16) 1222222222.222222222222222222) (num-test (string->number "12345678900000000000.0") 1.23456789e+19) (num-test (string->number "1234567890000000000000000000000000000000000000000000000000000000000000.0") 1.23456789e+69) (num-test (string->number "1234567890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0") 1.23456789e+129) ;(num-test (string->number "1.1e4" 5) 750.0) ;(num-test (string->number "1.1e4" 4) 320.0) ;(num-test (string->number "1.1e4" 3) 108.0) ;(num-test (string->number "1.1e4" 2) 24.0) (s7-test (number->string 1.0 most-negative-fixnum) 'error) (s7-test (number->string 1.0 most-positive-fixnum) 'error) (s7-test (string->number "1.0" most-negative-fixnum) 'error) (s7-test (string->number "1.0" most-positive-fixnum) 'error) (s7-test (number->string 16 17) 'error) (s7-test (number->string -0. 11 -) 'error) ;; XXX DSSSL bug ;;(s7-test (string->number "11" 2 -) 'error) (s7-test (string->number "1.0F") #f) (s7-test (string->number "1F") #f) (s7-test (string->number "1d") #f) (s7-test (string->number "1.0L") #f) (s7-test (string->number "1.0+1.0Ei") #f) (s7-test (string->number "0xff") #f) ;; duplicate various non-digit chars (for-each (lambda (str) (s7-test (string->number str) #f)) (list "..1" "1.." "1..2" "++1" "+-1" "-+1" "--1" "-..1" "+..1" "1+i+" "1+i." "1++i" "1--i" "1.ee1" "1+1..i" "1+ii" "1+1ee1i" "1e1e1" "1+2i.i" "1//2" "1+.1/2i" "1+1//2i" "1+1/2" "1i" "1ii" "1+.i" "1+..i")) (s7-test (string->number (string #\1 #\. #\0 (integer->char 128) #\1)) #f) (s7-test (string->number (string #\1 #\. #\0 (integer->char 20) #\1)) #f) (s7-test (string->number (string #\1 #\. #\0 (integer->char 200) #\1)) #f) (s7-test (string->number (string #\1 #\. #\0 (integer->char 255) #\1)) #f) (s7-test (string->number (string #\1 #\. #\0 (integer->char 2) #\1)) #f) (s7-test (string->number (string #\1 #\. (integer->char 128) #\1)) #f) (s7-test (string->number (string #\1 #\. (integer->char 20) #\1)) #f) (s7-test (string->number (string #\1 #\. (integer->char 200) #\1)) #f) (s7-test (string->number (string #\1 #\. (integer->char 255) #\1)) #f) (s7-test (string->number (string #\1 #\. (integer->char 2) #\1)) #f) (s7-test (string->number (string #\1 (integer->char 128) #\1)) #f) (s7-test (string->number (string #\1 (integer->char 20) #\1)) #f) (s7-test (string->number (string #\1 (integer->char 200) #\1)) #f) (s7-test (string->number (string #\1 (integer->char 255) #\1)) #f) (s7-test (string->number (string #\1 (integer->char 2) #\1)) #f) (s7-test (string->number (string (integer->char 128) #\1)) #f) (s7-test (string->number (string (integer->char 20) #\1)) #f) (s7-test (string->number (string (integer->char 200) #\1)) #f) (s7-test (string->number (string (integer->char 255) #\1)) #f) (s7-test (string->number (string (integer->char 2) #\1)) #f) (s7-test (string->number (string (integer->char 128) #\/ #\2)) #f) (s7-test (string->number (string (integer->char 20) #\/ #\2)) #f) (s7-test (string->number (string (integer->char 200) #\/ #\2)) #f) (s7-test (string->number (string (integer->char 255) #\/ #\2)) #f) (s7-test (string->number (string (integer->char 2) #\/ #\2)) #f) (do ((i 103 (+ i 1))) ((= i 256)) (s7-test (string->number (string (integer->char i))) #f) (s7-test (string->number (string (integer->char i) #\. #\0)) #f)) (s7-test (string->number "1,000") #f) (s7-test (string->number "1 000") #f) (s7-test (string->number "1 / 2") #f) (s7-test (string->number "1 .2") #f) (s7-test (string->number "1:") #f) (s7-test (string->number "#b 1") #f) (s7-test (number->string 1/9 2) "1/1001") (s7-test (number->string -11/4 2) "-1011/100") (s7-test (number->string -11/4 8) "-13/4") (s7-test (number->string -15/4 16) "-f/4") (s7-test (string->number "f/4" 16) 15/4) (s7-test (string->number "#b'0") #f) (s7-test (string->number "#b0/0") #f) (s7-test (string->number "#b-1/0") #f) ;; XXX Should this be +nan.0, or #f? ;;(s7-test (string->number "#b#i0/0") #f) (s7-test (string->number "#b#e0/0") #f) (s7-test (string->number "#b#e1/0+i") #f) ; inf+i? (s7-test (string->number "1e1/2") #f) (s7-test (string->number "1e#b0") #f) (s7-test (string->number "#B0") 0) (s7-test (string->number "0+I") 0+1i) (s7-test (string->number "#e#b0/0") #f) ;; XXX +nan.0 or #f? ;;(s7-test (string->number "#i#b0/0") #f) (s7-test (string->number "#e0/0") #f) (s7-test (number? (string->number "#i0/0")) #t) ; nan since (number? 0/0) is #t (s7-test (string->number "#e#b1/0") #f) ;; XXX +inf.0 or #f? ;;(s7-test (string->number "#i#b1/0") #f) (s7-test (string->number "#e1/0") #f) (s7-test (number? (string->number "#i1/0")) #t) (s7-test (string->number "#e#b1/0+i") #f) ;;(s7-test (string->number "#i#b1/0+i") #f) ; inf+i? ;; yes, inf+i (s7-test (string->number "#i#b1/0+i") +inf.0+1.0i) (s7-test (string->number "#e1/0+i") #f) (s7-test (number? (string->number "#i1/0+i")) #t) (s7-test (number? (string->number "#i0/0+i")) #t) (s7-test (nan? #i0/0) #t) ; but #i#d0/0 is a read error? (num-test (string->number "#e+.0e-00-0i") 0) (num-test (string->number "#x1e0/e+0/ei") 240/7) (num-test (string->number "#e-0/1110010") 0) (num-test (string->number "#x+1e1.+e10i") #f) (num-test (string->number "#xe/e+e/ei") 1+1i) (num-test (string->number "1e-0-.11e+1i") 1-1.1i) (num-test (string->number "00.-1.1e-00i") 0-1.1i) (num-test (string->number "+01.e+1+.00i") 10.0) (num-test (string->number "#x#e00110e") 4366) (num-test (string->number "+01e0+00.i") 1.0) (num-test (string->number "#e#x-e/001") -14) (num-test (string->number "+0/0100+0i") 0.0) (num-test (string->number "#e.001e-11") 1/100000000000000) (num-test (string->number "#x#e00/00e") 0) (num-test (string->number "#x-e1e/eee") -139/147) (num-test (string->number "#x-e0/1ee") -112/247) (num-test (string->number "#i#x0e10-000i") 3600.0) (num-test (string->number "#x0/e010-e/1i") 0-14i) (num-test (string->number "#i-1/1-1.0e1i") -1-10i) (num-test (string->number "-1.-00.0e+10i") -1.0) (num-test (string->number "#e#x001ee11e1") 32379361) (num-test (string->number "#x+e/00011ee0") 7/36720) (num-test (string->number "#x10+10i") 16+16i) (num-test 00-10e+001i 0-100i) (num-test (string->number "#d.0d1+i") 0+1i) (num-test (string->number "+.0d-1+i") 0+1i) (num-test (string->number "#d1d+0-1d-1i") 1-0.1i) (num-test (string->number "#i+1+0.d-0i") 1.0) (num-test (string->number "+001.110d+1") 11.1) (num-test (string->number "#e01+0d000i") 1) (num-test (string->number "#d1d0-0.d0i") 1.0) (num-test (string->number "#d#i001d+00") 1.0) (num-test (string->number "#o0010111/1") 4169) (num-test (string->number "0d00-0.d+0i") 0.0) (num-test (string->number "0d+01+1e+1i") 0+10i) (num-test (string->number "#e#d+11.e-0") 11) (num-test (string->number "#d.0e011110") 0.0) (num-test (string->number "+01e01+0/1i") 10.0) (num-test (string->number "#i#d1e1+.0i") 10.0) (num-test (string->number "1.-0.0e+00i") 1.0) (s7-test (string->number "#o#e10.+1.i") #f) (s7-test (string->number "#x#e1+i") 1+1i) (s7-test (string->number "#x#1+#e1i") #f) (s7-test (string->number "#x#e1+#e1i") #f) (s7-test (string->number "#b#e1+i") 1+1i) (s7-test (string->number "#o#e1-110.i") #f) (num-test (string->number "#e1+0i") 1) (num-test (string->number "#x#e1+0i") 1) (num-test (string->number "#e#x1+0i") 1) (num-test (string->number "#x1/7e2") 1/2018) ;(num-test (string->number "0.1e00" 2) 0.5) ;(num-test (string->number "10.101" 2) 2.625) ;(num-test (string->number "0e1010" 2) 0.0) ;(num-test (string->number ".1e010" 2) 512.0) (num-test (string->number "1/000100" 2) 1/4) ;(num-test (string->number "1000e+03" 2) 64.0) ;(num-test (string->number "-1e+1-1i" 2) -2-1i) ;(num-test (string->number ".1-110e03i" 2) 0.5-48i) ;(num-test (string->number "1e9" 2) 512.0) (num-test (string->number "52/7" 8) 6) ;(num-test (string->number "130." 8) 88.0) ;(num-test (string->number "121.-16i" 8) 81-14i) (num-test (string->number "12/15150" 8) 1/676) (num-test (string->number "612444175735" 8) 52958395357) ;(num-test (string->number "31005331+.4i" 8) 6556377+0.5i) ;(num-test (string->number "42220e-2" 8) 274.25) ;(num-test (string->number "1e9" 8) 134217728.0) ;(s7-test (string->number "1e9" 12) #f) ; this may not be ideal... (num-test (string->number "1b9/64" 12) 15/4) (num-test (string->number "a880+i" 12) 18528+1i) (num-test (string->number "dc-i" 16) 220-1i) (num-test (string->number "dcd-fi" 16) 3533-15i) (num-test (string->number "d/ebee" 16) 1/4646) ;(num-test (string->number "a.d-ci" 16) 10.8125-12i) (num-test (string->number "fac/ed" 16) 4012/237) ;(num-test (string->number "-ccdebef.a" 16) -214821871.625) (num-test (string->number "+dfefc/c" 16) 76437) (num-test (string->number "acd/eabf" 16) 79/1717) (num-test (string->number "-1e-1-1e-1i") -0.1-0.1i) (num-test (string->number "+1e+1+1e+1i") 10+10i) (num-test (string->number "#i#d+1e+1+1e+1i") 10+10i) (s7-test (string->number "#e+1e+1+1e+1i") 10+10i) ;;; these depend on rationalize's default error I think ;;; and they cause valgrind to hang!! ;(num-test (string->number "#e.1e-11") 0) ;(num-test (string->number "#e1e-12") 0) (num-test (string->number "#e1e-11") 1/100000000000) (s7-test (string->number "#e#f1") #f) (s7-test (= (string->number "#e1e19") (string->number "#e.1e20")) #t) (s7-test (= (string->number "#e1e19") (* 10 (string->number "#e1e18"))) #t) (s7-test (= (string->number "#e1e20") (* 100 (string->number "#e1e18"))) #t) (s7-test (= #i1e19 #i.1e20) #t) (s7-test (= 1e19 .1e20) #t) (s7-test (string->number "15+b7a9+8bbi-95+4e" 16) #f) ;(num-test (string->number "776.0a9b863471095a93" 12) 1098.0752175102) (num-test (string->number "a72972b301/398371448" 12) 54708015601/1637213240) (num-test (string->number "+ac946/b72ddf4847ce6" 16) 353443/1611261179739763) ;(num-test (string->number "b85.361c23cec099e742" 15) 2600.2272029731) ;(num-test (string->number "ade2411.a1422432dea8" 15) 1.24494541672338806082296187159063753079E8) (num-test (string->number "da99007963b182/8a66b" 15) 26681038227104972/440201) ;(num-test (string->number "74cc.d+b44.02a11ee5i" 15) 24717.866666667+2539.0118742348i) (num-test (string->number "d+7a5d40di" 14) 13+58313541i) ;(s7-test (nan? (string->number "1/0")) #t) ;(s7-test (nan? (string->number "5639d72702b62527/0" 14)) #t) ;(s7-test (nan? (string->number "-28133828f9421ef5/0" 16)) #t) ;(s7-test (nan? (string->number "+4a11654f7e00d5f2/0" 16)) #t) (s7-test (string->number "-111111111111111111111111111111111111111111111111111111111111111/1000000000000000000000000000000000000000000000000000000000000000" 2) -9223372036854775807/9223372036854775808) ;(num-test (string->number "#b#e-11e+111") -7788445287802241442795744493830144) ;(num-test (string->number "#i#b-11e+111") -7.788445287802241442795744493830144E33) ;(num-test (string->number "#b#i-11e+111") -7.788445287802241442795744493830144E33) (num-test (string->number "#i3e+111") 3.0e111) (num-test (string->number "#e3e30") 3000000000000000000000000000000) (num-test (string->number "#i3e30") 3.000E30) ;(num-test (string->number "#b#e11e80") 3626777458843887524118528) ;(num-test (string->number "#b#i11e80") 3626777458843887524118528.0) ;(num-test (string->number "#e#b11e80") 3626777458843887524118528) ;(num-test (string->number "#i#b11e80") 3626777458843887524118528.0) (num-test (string->number "b2706b3d3e8e46ad5aae" 15) 247500582888444441302414) ;(num-test (string->number "ceec932122d7c22289da9144.4b7836de0a2f5ef" 16) 6.403991331575236168367699181229480307503E28) (num-test (string->number "c23177c20fb1296/fcf15a82c8544613721236e2" 16) 437284287268358475/39141000511500755277510679409) (num-test (string->number "775f81b8fee51b723f" 16) 2202044529881940455999) (num-test (string->number "5d9eb6d6496f5c9b6e" 16) 1726983762769631550318) (num-test (string->number "+775f81b8fee51b723f" 16) 2202044529881940455999) (num-test (string->number "+5d9eb6d6496f5c9b6e" 16) 1726983762769631550318) (num-test (string->number "-775f81b8fee51b723f" 16) -2202044529881940455999) (num-test (string->number "-5d9eb6d6496f5c9b6e" 16) -1726983762769631550318) (num-test (string->number "+d053d635e581a5c4/d7" 16) 15011577509928084932/215) (num-test (string->number "+a053a635a581a5a4/a7" 16) 11552760218475668900/167) (num-test (string->number "-d053d635e581a5c4/d7" 16) -15011577509928084932/215) (num-test (string->number "-a053a635a581a5a4/a7" 16) -11552760218475668900/167) (num-test (string->number "+6/a47367025481df6c8" 16) 1/31599808811326133196) (num-test (string->number "d053d635e581a5c4/d7" 16) 15011577509928084932/215) (num-test (string->number "+074563336d48564b774" 16) 2146033681147780970356) (num-test (string->number "e/4246061597ec79345a" 15) 7/204584420774687563055) ;(num-test (string->number "c57252467ff.cfd94d" 16) 1.3568424830975811909496784210205078125E13) ;(num-test (string->number "f309e9b9ba.7c52ff2" 16) 1.043843365306485641427338123321533203125E12) (num-test (string->number "+42e-0106653" 10) 4.199999999999999999999999999999999999999E-106652) (s7-test (infinite? (string->number "8e7290491476" 10)) #t) (num-test (string->number "4ff7da4d/ab09e16255c06a55c5cb7193ebb2fbb" 16) 1341643341/14209330580250438592763227155654717371) (num-test (string->number "#d3000000000000000000000000000000") 3000000000000000000000000000000) (num-test (string->number "#x400000000000000000") (expt 2 70)) (for-each (lambda (op) (if (not (= (op 1e19) (op .1e20))) (format #t ";(~A 1e19) = ~A, but (~A .1e20) = ~A?~%" op (op 1e19) op (op .1e20)))) (list floor ceiling truncate round inexact->exact exact->inexact)) (for-each (lambda (op) (if (not (= (op -1e19) (op -.1e20))) (format #t ";(~A -1e19) = ~A, but (~A -.1e20) = ~A?~%" op (op -1e19) op (op -.1e20)))) (list floor ceiling truncate round inexact->exact exact->inexact)) (num-test #b+01 1) (num-test #b-01 -1) (num-test #d-1/2 -1/2) (num-test #d+1/2 1/2) ;; Lots of invalid syntaxes in other bases #| (num-test #b1.0e-8 0.00390625) (num-test #o1.0e-8 5.9604644775391e-08) (num-test #d1.0e-8 1.0e-8) (num-test #b-.1 -0.5) (num-test #o-.1 -0.125) (num-test #d-.1 -0.1) (num-test #x-.1 -0.0625) (num-test #b+.1 +0.5) (num-test #o+.1 +0.125) (num-test #d+.1 +0.1) (num-test #x+.1 +0.0625) (num-test #b+.1e+1 1.0) (num-test #d+.1e+1 1.0) (num-test #o+.1e+1 1.0) (num-test #b000000001 1) (num-test #b1e1 2.0) (num-test #b1.e1 2.0) (num-test #b#e-.1 -1/2) (num-test #o#e-.1 -1/8) (num-test #d#e-.1 -1/10) (num-test #x#e-.1 -1/16) (num-test #e-.0 0) (num-test #e-123.0 -123) (num-test #i-123 -123.0) (num-test #e+123.0 123) (num-test #i+123 123.0) (num-test #b#e1.1e2 6) (num-test #o#e1.1e2 72) (num-test #d#e1.1e2 110) (num-test #b#i-1.1e-2 -0.375) (num-test #o#i-1.1e-2 -0.017578125) (num-test #d#i-1.1e-2 -0.011) (num-test #i-0 0.0) (num-test #e-0.0 0) ;;; in guile #e1e-10 is 7737125245533627/77371252455336267181195264 (num-test #e#b1e-10 1/1024) (num-test #e#b+1.1 3/2) (num-test #e#o+1.1 9/8) (num-test #e#d+1.1 11/10) (num-test #e#x+1.1 17/16) (num-test #e#b+1.1e+2 6) (num-test #e#o+1.1e+2 72) (num-test #e#d+1.1e+2 110) (num-test #i#b.001 0.125) (num-test #i#b000000000011 3.0) (num-test #i#b-000000000011e1 -6.0) (num-test #i#b-000000000011e+11 -6144.0) (num-test #x-AAF -2735) (num-test #x-aAf -2735) (num-test #b1+1.1i 1+1.5i) ; yow... ;(num-test #b#e0+i 0+1i) ; these 2 are now read-errors ;(num-test #b#e0+1.1i 0+1.5i) (num-test #xf/c 5/4) (num-test #x+f/c 5/4) (num-test #x-f/c -5/4) (num-test #i#xf/c 1.25) (num-test #e#x1.4 5/4) (num-test #d1/2 1/2) (num-test #e2/3 2/3) |# ;; nutty: #e+inf.0 #e+nan.0 ;; these don't arise in s7 because we don't define inf.0 and nan.0 (num-test #e9007199254740995.0 9007199254740995) (num-test #b0/1 0) ;(s7-test #b0/0 'division-by-zero) ; read-error (num-test #d3/4 3/4) (num-test #o7/6 7/6) (num-test #o11/2 9/2) (num-test #d11/2 11/2) (num-test #x11/2 17/2) (num-test #b111/11 7/3) (num-test #b111111111111111111111111111111111111111111111111111111111111111/111 1317624576693539401) (num-test #d9223372036854775807/7 1317624576693539401) (num-test #o777777777777777777777/7 1317624576693539401) (num-test #x7fffffffffffffff/7 1317624576693539401) (num-test (string->number "#x1234/12") (string->number "1234/12" 16)) (num-test (string->number "#x#e1234/12") #e#x1234/12) #| (num-test #x#e.1 #e#x.1) (num-test #d#i1/10 #i#d1/10) (s7-test (equal? 0.0 #b0e0) #t) (s7-test (equal? 0.0 #b0e-0) #t) (s7-test (equal? 0.0 #b.0e+0) #t) (s7-test (equal? 0.0 #b00000000000000000000000000000000000000000000000000000e100) #t) (s7-test (equal? 0.0 #b.0000000000000000000000000000000000000000000000000000e100) #t) (s7-test (equal? 0.0 #b00000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000e100) #t) (s7-test (equal? 0.0 #b0e100000000000000000000000000000000000000000000000000000000000000000000000) #t) (num-test 0 #b0/1000000000) (num-test 0 #b0/100000000000000000000000000000000000000) (num-test 0 #b0/100000000000000000000000000000000000000000000000000000000000000) (num-test (string->number "#b0/100000000000000000000000000000000000000000000000000000000000000000000") 0) (num-test (string->number "#b-0/100000000000000000000000000000000000000000000000000000000000000000000") 0) ;;; there's a problem here -- the reader tries to make sense of every form even if it can't actually ;;; be evaluated, so in the block above in the non-bignum case, if the #b... is not in double quotes, it tries to read ;;; the value as a number. make_atom however returns NaN because it can't represent the integer in 64 bits, and ;;; the #... code interprets that as #b and it raises a read error! Ideally, we'd distinguish ;;; between #b... that can't possibly be right and the same that might be ok if the bits are available. (s7-test (equal? 0.0 #b0.0e10) #t) (s7-test (equal? 0.0 #b0e100) #t) (s7-test (equal? 0.0 #b0.0e1000) #t) (s7-test (equal? 0.0 #b0e+1000) #t) (s7-test (equal? 0.0 #b0.0e-1) #t) (s7-test (equal? 0.0 #b0e-10) #t) (s7-test (equal? 0.0 #b0.0e-100) #t) (s7-test (equal? 0.0 #b0e-1000) #t) (s7-test (equal? 0.0 #b0.0e0123456789) #t) (s7-test (equal? 0.0 #b0-0e10i) #t) (s7-test (equal? 0.0 #b0-0.0e100i) #t) (s7-test (equal? 0.0 #b0-0e1000i) #t) (s7-test (equal? 0.0 #b0-0.0e+1000i) #t) (s7-test (equal? 0.0 #b0-0e-1i) #t) (s7-test (equal? 0.0 #b0-0.0e-10i) #t) (s7-test (equal? 0.0 #b0-0e-100i) #t) (s7-test (equal? 0.0 #b0-0.0e-1000i) #t) (s7-test (equal? 0.0 #b0.0+0e0123456789i) #t) (num-test 0.0 #b1e-1000) (num-test #b+0+i 0+1i) (num-test #b0.-i 0-1i) (num-test #b0/01 0) (num-test #b-0/1 0) (num-test #b1.+.1i 1+0.5i) (num-test #b#i0-0i 0.0) (num-test #b#e1e01 2) (num-test #b#e1e-0 1) (num-test 1e-0 1.0) (num-test #b#e11e-1 3/2) (num-test #b0100/10 2) (num-test #b0e+1-0.i 0.0) (num-test #b.1-0/01i 0.5) ;(num-test #b#e-0/1+i 0+1i) (num-test #b0e+1-0.i 0.0) (num-test #b#e+.1e+1 1) (num-test #b1.+01.e+1i 1+2i) (num-test #b#e.011-0.i 3/8) (num-test #b#i1.1e0-.0i 1.5) (num-test #b#e1.1e0-.0i 3/2) (num-test #b0+.0e10101i 0.0) (num-test #b#e-1.00e+001 -2) (num-test #b#e+.01011100 23/64) (num-test #b#i-00-0/001i 0.0) (num-test #b00e+0-.00e11i 0.0) (num-test #b-000e+10110001 0.0) (s7-test (string->number "#b#e-1/1+01.1e1i") #f) (s7-test (string->number "#d#i0/0") #f) (s7-test (string->number "#i#x0/0") #f) (s7-test (exact? #i1) #f) (s7-test (exact? #e1.0) #t) (s7-test (exact? #i1.0) #f) (s7-test (exact? #e1) #t) (s7-test (exact? #i#b1) #f) (s7-test (exact? #e#b1) #t) (num-test #x#e1.5 21/16) (num-test #x#i3 3.0) (s7-test (number? ''1) #f) (s7-test (symbol? ''1) #f) (s7-test (string->number "''1") #f) (s7-test 00 0) (s7-test (string->number "00") 0) (s7-test 000 0) (s7-test (string->number "000") 0) (s7-test 00.00 0.0) (s7-test (string->number "00.00") 0.0) (s7-test (number? '0-0) #f) (s7-test (string->number "0-0") #f) (s7-test (number? '00-) #f) (s7-test (string->number "00-") #f) (num-test #e0.1 1/10) (num-test #i1/1 1.0) (num-test #o-11 -9) (num-test #o-0. 0.0) (num-test #o+.0 0.0) (num-test #x#if 15.0) (num-test #xe/1 14) (num-test #xe/a 7/5) (num-test #xfad 4013) (num-test #xd/1 13) (num-test #x0/f 0) (num-test #x+00 0) (num-test #x.c0 0.75) (num-test #x-fc -252) (s7-test (equal? #e1.5 3/2) #t) (s7-test (equal? #e1.0 1) #t) (s7-test (equal? #e-.1 -1/10) #t) (s7-test (equal? #e1 1) #t) (s7-test (equal? #e3/2 3/2) #t) (s7-test (< (abs (- #i3/2 1.5)) 1e-12) #t) (s7-test (< (abs (- #i1 1.0)) 1e-12) #t) (s7-test (< (abs (- #i-1/10 -0.1)) 1e-12) #t) (s7-test (< (abs (- #i1.5 1.5)) 1e-12) #t) (num-test (= 0e-1 0.0) #t) ;;; (/ (/ 0))?? (num-test #x.a+i 0.625+1i) (num-test #b1.+i 1+1i) (num-test 0.e-0 0.0) |# (num-test (string->number "#i1s0") 1.0) ; need the s->n to avoid confusing reader in non-dfls case (num-test -0d-0 0.0) (num-test +1d+1 10.0) (num-test +1s00 1.0) ;; TODO: Support other bases than 2, 4, 8, 10 and 16? #;(do ((i 2 (+ i 1))) ((= i 17)) (num-test (string->number (number->string 12345.67890987654321 i) i) 12345.67890987654321)) ;; Trouble with RANDOM #; (let () (define (make-number radix) (let* ((max-len (+ 1 (vector-ref (vector 0 0 62 39 31 26 23 22 20 19 18 17 17 16 16 15 15) radix))) (int-len (floor (* max-len (random 1.0) (random 1.0) (random 1.0)))) (frac-len (floor (* max-len (random 1.0) (random 1.0) (random 1.0)))) (exp-len 1) (has-frac (> (random 1.0) 0.2)) (has-exp (and (<= radix 10) (< int-len 9) (> (random 1.0) 0.5))) (signed (> (random 1.0) 0.5)) (exp-signed (> (random 1.0) 0.5))) (if (and (= int-len 0) (or (not has-frac) (= frac-len 0))) (set! int-len 1)) (let ((str (make-string (+ int-len (if signed 1 0) (if has-frac (+ frac-len 1) 0) ; extra 1 for "." (if has-exp (+ (+ exp-len 1) ; extra 1 for exponent char (if exp-signed 1 0)) 0)))) (loc 0)) (define (digit->char digit) (if (< digit 10) (integer->char (+ (char->integer #\0) digit)) (integer->char (+ (char->integer #\a) (- digit 10))))) (define (exponent-marker) (if (provided? 'dfls-exponents) (string-ref "eEsSfFdDlL" (random 10)) (string-ref "eE" (random 2)))) (if signed (begin (string-set! str 0 #\-) (set! loc (+ loc 1)))) (do ((i 0 (+ i 1))) ((= i int-len)) (string-set! str loc (digit->char (random radix))) (set! loc (+ loc 1))) (if has-frac (begin (string-set! str loc #\.) (set! loc (+ loc 1)) (do ((i 0 (+ i 1))) ((= i frac-len)) (string-set! str loc (digit->char (random radix))) (set! loc (+ loc 1))))) (if has-exp (begin (string-set! str loc (exponent-marker)) (set! loc (+ loc 1)) (if exp-signed (begin (string-set! str loc #\-) (set! loc (+ loc 1)))) (do ((i 0 (+ i 1))) ((= i exp-len)) (string-set! str loc (digit->char (random 10))) (set! loc (+ loc 1))))) str))) (let ((tries 1000)) (do ((i 0 (+ i 1))) ((= i tries)) (let ((rad (+ 2 (random 15)))) (let ((str (make-number rad))) (if (not (number? (string->number str rad))) (format #t ";(1) trouble in string->number ~A ~S: ~A~%" rad str (string->number str rad)) (if (not (string? (number->string (string->number str rad) rad))) (format #t ";(2) trouble in number->string ~A ~S: ~A ~S~%" rad str (string->number str rad) (number->string (string->number str rad) rad)) (if (not (number? (string->number (number->string (string->number str rad) rad) rad))) (format #t ";(3) trouble in number->string ~A ~S: ~A ~S ~A~%" rad str (string->number str rad) (number->string (string->number str rad) rad) (string->number (number->string (string->number str rad) rad) rad)) (let ((diff (abs (- (string->number (number->string (string->number str rad) rad) rad) (string->number str rad))))) (if (> diff 1e-5) (format #t "(string->number ~S ~D): ~A, n->s: ~S, s->n: ~A, diff: ~A~%" str rad (string->number str rad) (number->string (string->number str rad) rad) (string->number (number->string (string->number str rad) rad) rad) diff))))))))))) ;; TODO: bases #; (let () (define (no-char str radix) (let ((len (length str))) (do ((i 0 (+ i 1))) ((= i len)) (if (and (not (char=? (str i) #\.)) (>= (string->number (string (str i)) 16) radix)) (format #t ";~S in base ~D has ~C?" str radix (str i)))))) (no-char (number->string (* 1.0 2/3) 9) 9) (no-char (number->string (string->number "0.05" 9) 9) 9) ;; (number->string (string->number "-5L-4" 9) 9) -> "-0.00049" if rounding is stupid ;; (number->string (string->number "5.e-8" 6) 6) -> "0.000000046" (no-char (number->string (* 1.0 6/7) 7) 7) (do ((i 2 (+ i 1))) ((= i 17)) (no-char (number->string (* 1.0 (/ 1 i)) i) i) (no-char (number->string (* 1.0 (/ 1 (* i i))) i) i) (no-char (number->string (* 0.99999999999999 (/ 1 i)) i) i) (no-char (number->string (* 0.999999 (/ 1 i)) i) i))) ;; TODO: More bad bases #; (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (= i 17))) (if (not (eqv? 3/4 (string->number (number->string 3/4 i) i))) (begin (set! happy #f) (format #t ";(string<->number 3/4 ~A) -> ~A?~%" i (string->number (number->string 3/4 i) i)))) (if (not (eqv? 1234/11 (string->number (number->string 1234/11 i) i))) (begin (set! happy #f) (format #t ";(string<->number 1234/11 ~A) -> ~A?~%" i (string->number (number->string 1234/11 i) i)))) (if (not (eqv? -1234/11 (string->number (number->string -1234/11 i) i))) (begin (set! happy #f) (format #t ";(string<->number -1234/11 ~A) -> ~A?~%" i (string->number (number->string -1234/11 i) i)))))) (s7-test (< (abs (- (string->number "3.1415926535897932384626433832795029") 3.1415926535897932384626433832795029)) 1e-7) #t) ;; R5RS says "numbers containing decimal points or exponents must be in decimal radix." #| (num-test (string->number "111.01" 2) 7.25) (num-test (string->number "-111.01" 2) -7.25) (num-test (string->number "0.001" 2) 0.125) (num-test (string->number "1000000.001" 2) 64.125) (num-test (string->number "111.01" 8) 73.015625) (num-test (string->number "-111.01" 8) -73.015625) (num-test (string->number "0.001" 8) 0.001953125) (num-test (string->number "1000000.001" 8) 262144.001953125) (num-test (string->number "111.01" 16) 273.00390625) (num-test (string->number "-111.01" 16) -273.00390625) (num-test (string->number "0.001" 16) 0.000244140625) (num-test (string->number "1000000.001" 16) 16777216.000244) (num-test (string->number "11.+i" 2) 3+1i) (num-test (string->number "0+.1i" 2) 0+0.5i) (num-test (string->number "1.+0.i" 2) 1.0) (num-test (string->number ".01+.1i" 2) 0.25+0.5i) (num-test (string->number "1+0.i" 2) 1.0) (num-test (string->number "1+0i" 2) 1.0) (s7-test (number->string 0.75 2) "0.11") (s7-test (number->string 0.125 8) "0.1") (s7-test (number->string 12.5 8) "14.4") (s7-test (number->string 12.5 16) "c.8") (s7-test (number->string 12.5 2) "1100.1") (s7-test (number->string -12.5 8) "-14.4") (s7-test (number->string -12.5 16) "-c.8") (s7-test (number->string -12.5 2) "-1100.1") (s7-test (number->string 12.0+0.75i 2) "1100.0+0.11i") (s7-test (number->string -12.5-3.75i 2) "-1100.1-11.11i") (s7-test (number->string 12.0+0.75i 8) "14.0+0.6i") (s7-test (number->string -12.5-3.75i 8) "-14.4-3.6i") (s7-test (number->string 12.0+0.75i 16) "c.0+0.ci") (s7-test (number->string -12.5-3.75i 16) "-c.8-3.ci") (s7-test (string->number "2/#b1" 10) #f) (s7-test (string->number "2.i" 10) #f) (num-test (string->number "6+3.i" 10) 6+3i) (num-test (string->number "#e8/2" 11) 4) (num-test (string->number "-61" 7) -43) ;(num-test (string->number "#eb8235.9865c01" 13) 19132998081/57607) ; this one depends on the underlying size (32/64) (num-test (string->number "10100.000e11+011110111.1010110e00i" 2) 40960+247.671875i) (num-test (string->number "#i-0.e11" 2) 0.0) (num-test (string->number "+4a00/b" 16) 18944/11) (num-test (string->number "#i+9/9" 10) 1.0) (num-test (string->number "#e9e-999" 10) 0) (num-test (string->number "#e-9.e-9" 10) -1/111098767) (num-test (string->number "#e-.9e+9" 10) -900000000) (num-test (string->number "9-9.e+9i" 10) 9-9000000000i) (num-test (string->number "-9+9e-9i" 10) -9+9e-09i) ; why the 09? (num-test (string->number "#e-.9e+9" 10) -900000000) (num-test (string->number "9-9.e+9i" 10) 9-9000000000i) (num-test #e+32/1-0.i 32) (num-test #e+32.-0/1i 32) (num-test #e-32/1+.0i -32) (num-test #e+2.-0/31i 2) (num-test +2-0.e-1i 2.0) (num-test +2.-0e-1i 2.0) (num-test #b#e.01 1/4) (num-test #e#b.01 1/4) (num-test #b#e10. 2) (num-test #e#b10. 2) (num-test #b#e0.e11 0) (num-test #b#e1.e10 1024) (num-test #b#e-0.e+1 0) (num-test #b#e+.1e-0 1/2) (num-test #b#e+1.e-0 1) (num-test #b#e-1.e+0 -1) ;; weird cases: (num-test (string->number "#b1000" 8) 8) (num-test (string->number "#b1000" 2) 8) (num-test (string->number "#b1000" 16) 8) (num-test (string->number "11" 2) 3) (num-test (string->number "#x11" 2) 17) (num-test (string->number "#b11" 16) 3) (num-test (string->number "#xffff" 2) 65535) (num-test (string->number "#xffff" 10) 65535) (num-test (string->number "#xffff" 6) 65535) (num-test (string->number "#xffff" 16) 65535) (num-test (string->number "#d9.11" 16) 9.11) (num-test (string->number "#d9.11" 10) 9.11) (num-test (string->number "#x35/3de" 10) 53/990) (num-test (string->number "#e87" 16) 135) (num-test (string->number "#e87" 10) 87) (num-test (string->number "#e#x87" 10) 135) (num-test (string->number "#e#x87" 16) 135) (num-test (string->number "#x#e87" 10) 135) (num-test (string->number "#i87" 16) 135.0) (num-test (string->number "#i87" 12) 103.0) (num-test (string->number "#ee" 16) 14) (num-test (string->number "#if" 16) 15.0) (num-test (string->number "#e10.01" 2) 9/4) (num-test (string->number "#e10.01" 6) 217/36) (num-test (string->number "#e10.01" 10) 1001/100) (num-test (string->number "#e10.01" 14) 2745/196) (num-test (string->number "#i10.01" 2) 2.25) (num-test (string->number "#i10.01" 6) 6.0277777777778) (num-test (string->number "#i10.01" 10) 10.01) (num-test (string->number "#i10.01" 14) 14.005102040816) (num-test (string->number "#i-.c2e9" 16) -0.76136779785156) |# (s7-test (string->number "#x#|1|#1") #f) (s7-test (string->number "#||#1") #f) (s7-test (string->number "#<") #f) (s7-test (string->number "+.e1") #f) (s7-test (string->number ".e1") #f) (num-test (string->number "101461074055444526136" 8) 1181671265888545886) (num-test (string->number "-67330507011755171566102306711560321" 8) -35128577239298592313751007322321) (num-test (string->number "35215052773447206642040260+177402503313573563274751i" 8) 1.38249897923920622272688E23+1.176027342049207220713E21i) ;; TODO: More bad bases #;(for-each (lambda (expchar) (let ((exponent (string expchar))) (do ((base 2 (+ base 1))) ((= base 11)) (let ((val (string->number (string-append "1" exponent "1") base))) (if (and (number? val) (> (abs (- val base)) 1e-9)) (format #t ";(string->number ~S ~A) returned ~A?~%" (string-append "1" exponent "1") base (string->number (string-append "1" exponent "1") base))))) (do ((base 2 (+ base 1))) ((= base 11)) (let ((val (string->number (string-append "1.1" exponent "1") base))) (if (and (number? val) (> (abs (- val (+ base 1))) 1e-9)) (format #t ";(string->number ~S ~A) returned ~A?~%" (string-append "1.1" exponent "1") base (string->number (string-append "1.1" exponent "1") base))))) (do ((base 2 (+ base 1))) ((= base 11)) (let ((val (string->number (string-append "1" exponent "+1") base))) (if (and (number? val) (> (abs (- val base)) 1e-9)) (format #t ";(string->number ~S ~A) returned ~A?~%" (string-append "1" exponent "+1") base (string->number (string-append "1" exponent "+1") base))))) ; in base 16 this is still not a number because of the + (or -) ; but "1e+1i" is a number -- gad! (do ((base 2 (+ base 1))) ((= base 11)) (let ((val (string->number (string-append "1" exponent "-1+1i") base))) (if (and (number? val) (> (magnitude (- val (make-rectangular (/ base) 1))) 1e-6)) (format #t ";(string->number ~S ~A) returned ~A?~%" (string-append "1" exponent "-1+1i") base (string->number (string-append "1" exponent "-1+1i") base))))))) (list #\e #\d #\f #\s #\l)) (s7-test (< (abs (- (string->number "3.1415926535897932384626433832795029" 10) 3.1415926535897932384626433832795029)) 1e-7) #t) ;; TODO: More bad bases ;(num-test (string->number "2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427" 16) 2.4433976119657) ;(num-test (string->number "2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427" 11) 2.6508258818757) #;(let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (= i 17))) (let ((val (+ 1.0 i))) (do ((k 1 (+ k 1)) (incr (/ 1.0 i) (/ incr i))) ((< incr 1e-14)) (set! val (+ val incr))) (if (> (abs (- val (string->number "11.111111111111111111111111111111111111111111111111111111111111111111111111111111111111" i))) 1e-7) (begin (set! happy #f) (display "(string->number 11.111... ") (display i) (display ") -> ") (display (string->number "11.111111111111111111111111111111111111111111111111111111111111111111111111111111111111" i)) (display " but expected ") (display val) (newline)))) (let* ((digits "00123456789abcdef") (str (make-string 80 (string-ref digits i)))) (string-set! str 2 #\.) (let ((val (exact->inexact (* i i)))) (if (> (abs (- val (string->number str i))) 1e-7) (begin (set! happy #f) (format #t ";(string->number ~S ~A) -> ~A (expected ~A)?~%" str i (string->number str i) val))))) (let* ((radlim (list 0 0 62 39 31 26 23 22 20 19 18 17 17 16 16 15 15)) (digits "00123456789abcdef")) (do ((k (- (list-ref radlim i) 3) (+ k 1))) ((= k (+ (list-ref radlim i) 4))) (let ((str (make-string (+ k 3) (string-ref digits i)))) (string-set! str 2 #\.) (let ((val (exact->inexact (* i i)))) (if (> (abs (- val (string->number str i))) 1e-7) (begin (set! happy #f) (format #t ";(string->number ~S ~A) -> ~A (expected ~A)?~%" str i (string->number str i) val))))))))) #;(let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (= i 17))) (if (> (abs (- 0.75 (string->number (number->string 0.75 i) i))) 1e-6) (begin (set! happy #f) (format #t ";(string->number (number->string 0.75 ~A) ~A) -> ~A?~%" i i (string->number (number->string 0.75 i) i)))) (if (> (abs (- 1234.75 (string->number (number->string 1234.75 i) i))) 1e-6) (begin (set! happy #f) (format #t ";(string->number (number->string 1234.75 ~A) ~A) -> ~A?~%" i i (string->number (number->string 1234.75 i) i)))) (if (> (abs (- -1234.25 (string->number (number->string -1234.25 i) i))) 1e-6) (begin (set! happy #f) (format #t ";(string->number (number->string -1234.75 ~A) ~A) -> ~A?~%" i i (string->number (number->string -1234.75 i) i)))) (let ((val (string->number (number->string 12.5+3.75i i) i))) (if (or (not (number? val)) (> (abs (- (real-part val) 12.5)) 1e-6) (> (abs (- (imag-part val) 3.75)) 1e-6)) (begin (set! happy #f) (format #t ";(string->number (number->string 12.5+3.75i ~A) ~A) -> ~A?~%" i i (string->number (number->string 12.5+3.75i i) i))))) #;(let ((happy #t)) (do ((base 2 (+ base 1))) ((or (not happy) (= base 11))) ;;; see s7.c for an explanation of this limit (do ((i 0 (+ i 1))) ((= i 10)) (let* ((rl (- (random 200.0) 100.0)) (im (- (random 200.0) 100.0)) (rlstr (number->string rl base)) (imstr (number->string im base)) (val (make-rectangular rl im)) (str (string-append rlstr (if (or (negative? im) (char=? (string-ref imstr 0) #\-)) ; sigh -- -0.0 is not negative! "" "+") imstr "i"))) (let* ((sn (string->number str base)) (nsn (and (number? sn) (number->string sn base))) (nval (and (string? nsn) (string->number nsn base)))) (if (or (not nval) (> (abs (- (real-part nval) (real-part val))) 1e-3) (> (abs (- (imag-part nval) (imag-part val))) 1e-3)) (begin (set! happy #f) (format #t ";(number<->string ~S ~A) -> ~A? [~A ~S]~%" str base nval sn nsn) ))))))))) (let ((val (number->string 1.0-1.0i))) (if (and (not (string=? val "1-1i")) (not (string=? val "1.0-1.0i")) (not (string=? val "1-i")) (not (string=? val "1.0-i"))) (begin (display "(number->string 1.0-1.0i) returned ") (display val) (display "?") (newline)))) (let ((string->number-2 (lambda (str radix) (let ((old-str (if (string? str) (string-copy str) str))) (let ((val (string->number str radix))) (if (not (string=? str old-str)) (error 'string->number-messed-up) val))))) (string->number-1 (lambda (str) (let ((old-str (if (string? str) (string-copy str) str))) (let ((val (string->number str))) (if (not (string=? str old-str)) (error 'string->number-messed-up) val)))))) (num-test (string->number-1 "100") 100) (num-test (string->number-2 "100" 16) 256) (num-test (string->number-2 "100" 2) 4) (num-test (string->number-2 "100" 8) 64) (num-test (string->number-2 "100" 10) 100) (num-test (string->number-2 "11" 16) 17) (num-test (string->number-2 "-11" 16) -17) (num-test (string->number-2 "+aa" 16) 170) (num-test (string->number-2 "-aa" 16) -170) (for-each (lambda (str rval fval) (let ((happy #t)) (do ((radix 3 (+ radix 1))) ((or (not happy) (= radix 16))) (let ((val (string->number-2 str radix))) (if (and (number? val) (not (fval val (rval radix) radix))) (begin (display "(string->number \"") (display str) (display "\" ") (display radix) (display ") = ") (display val) (display "?") (newline) (set! happy #f))))))) (list "101" "201.02" "1/21" "2e1" "10.1e-1" ) (list (lambda (radix) (+ 1 (* radix radix))) (lambda (radix) (+ 1.0 (* 2 radix radix) (/ 2.0 (* radix radix)))) (lambda (radix) (/ 1 (+ 1 (* 2 radix)))) (lambda (radix) (if (< radix 15) (* 2 radix) (+ 1 (* 14 radix) (* 2 radix radix)))) (lambda (radix) (+ 1 (/ 1.0 (* radix radix)))) ) (list (lambda (a b radix) (= a b)) (lambda (a b radix) (< (abs (- a b)) (/ 1.0 (* radix radix)))) (lambda (a b radix) (= a b)) (lambda (a b radix) (= a b)) (lambda (a b radix) (< (abs (- a b)) (/ 1.0 (* radix radix radix)))) )) (num-test (string->number-2 "34" 2) #f) (num-test (string->number-2 "19" 8) #f) (num-test (string->number-2 "1c" 10) #f) (num-test (string->number-2 "1c" 16) 28) (s7-test (string->number-1 "") #f ) (s7-test (string->number-1 ".") #f ) (s7-test (string->number-1 "d") #f ) (s7-test (string->number-1 "D") #f ) (s7-test (string->number-1 "i") #f ) (s7-test (string->number-1 "I") #f ) (s7-test (string->number-1 "3i") #f ) (s7-test (string->number-1 "3I") #f ) (s7-test (string->number-1 "33i") #f ) (s7-test (string->number-1 "33I") #f ) (s7-test (string->number-1 "3.3i") #f ) (s7-test (string->number-1 "3.3I") #f ) (s7-test (string->number-1 "-") #f ) (s7-test (string->number-1 "+") #f ) (s7-test (string->number-1 "#i1-1ei") #f) (s7-test (string->number-1 "#i-2e+i") #f) (s7-test (string->number-1 "#i1+i1i") #f) (s7-test (string->number-1 "#i1+1") #f) (s7-test (string->number-1 "#i2i.") #f) (s7-test (string->number "1e0+i") 1+i) (s7-test (string->number "1+ie0") #f) (s7-test (string->number "1+e0") #f) (s7-test (string->number "1+1e0i") 1+i) (s7-test (string->number "1+1e0e0i") #f) (s7-test (string->number "1+1e00i") 1+i) (s7-test (string->number "1L") #f) (s7-test (string->number "1.L") #f) ;(s7-test (string->number "0+I") #f) (s7-test (string->number "0+I") 0+1i) (num-test (string->number-1 "3.4e3") 3400.0) (num-test (string->number-1 "0") 0) (num-test (string->number-1 "#x#e-2e2") -738) ) (s7-test (let* ((str "1+0i") (x (string->number str))) (and (number? x) (string=? str "1+0i"))) #t) (s7-test (= 1 #e1 1/1 #e1/1 #e1.0 #e1e0 #b1 #x1 #o1 #d1 #o001 #o+1 #o#e1 #e#x1 #e1+0i #e10e-1 #e0.1e1 #e+1-0i #e#b1) #t) ;(s7-test (= 0.3 3e-1 0.3e0 3e-1) #t) (s7-test (= 0 +0 0.0 +0.0 0/1 +0/24 0+0i #e0 #b0 #x0 #o0 #e#b0) #t) (let ((things (vector 123 #e123 #b1111011 #e#b1111011 #b#e1111011 #o173 #e#o173 #o#e173 #x7b #e#x7b #x#e7b (string->number "123") 246/2 #e123/1 #d123 #e#d123 #d#e123))) (do ((i 0 (+ i 1))) ((= i (- (vector-length things) 1))) (do ((j (+ i 1) (+ j 1))) ((= j (vector-length things))) (if (not (eqv? (vector-ref things i) (vector-ref things j))) (begin (display "(eqv? ") (display (vector-ref things i)) (display " ") (display (vector-ref things j)) (display ") -> #f?") (newline)))))) (for-each (lambda (n) (let ((nb (handle-exceptions exn 'error (number? n)))) (if (not nb) (begin (display "(number? ") (display n) (display ") returned #f?") (newline))))) (if (provided? 'dfls-exponents) (list 1 -1 +1 +.1 -.1 .1 .0 0. 0.0 -0 +0 -0. +0. +1.1 -1.1 1.1 '1.0e2 '-1.0e2 '+1.0e2 '1.1e-2 '-1.1e-2 '+1.1e-2 '1.1e+2 '-1.1e+2 '+1.1e+2 '1/2 '-1/2 '+1/2 '1.0s2 '-1.0s2 '+1.0s2 '1.0d2 '-1.0d2 '+1.0d2 '1.0f2 '-1.0f2 '+1.0f2 '1.0l2 '-1.0l2 '+1.0l2 '1.0+1.0i '1.0-1.0i '-1.0-1.0i '-1.0+1.0i '1+i '1-i '-1-i '-1+i '2/3+i '2/3-i '-2/3+i '1+2/3i '1-2/3i '2/3+2/3i '2.3-2/3i '2/3-2.3i '2e2+1e3i '2e2-2e2i '2.0e2+i '1+2.0e2i '2.0e+2-2.0e-1i '2/3-2.0e3i '2e-3-2/3i '-2.0e-2-2.0e-2i '+2.0e+2+2.0e+2i '+2/3-2/3i '2e2-2/3i '1e1-i '1.-i '.0+i '-.0-1e-1i '1.+.1i '0.-.1i '.1+.0i '1.+.0i '.1+.1i '1.-.1i '.0+.00i '.10+.0i '-1.+.0i '.1-.01i '1.0+.1i '1e1+.1i '-1.-.10i '1e01+.0i '0e11+.0i '1.e1+.0i '1.00-.0i '-1e1-.0i '1.-.1e0i '1.+.001i '1e10-.1i '1e+0-.1i '-0e0-.1i '-1.0e-1-1.0e-1i '-111e1-.1i '1.1-.1e11i '-1e-1-.11i '-1.1-.1e1i '-.1+.1i) (list 1 -1 +1 +.1 -.1 .1 .0 0. 0.0 -0 +0 -0. +0. +1.1 -1.1 1.1 '1.0e2 '-1.0e2 '+1.0e2 '1.1e-2 '-1.1e-2 '+1.1e-2 '1.1e+2 '-1.1e+2 '+1.1e+2 '1/2 '-1/2 '+1/2 '1.0+1.0i '1.0-1.0i '-1.0-1.0i '-1.0+1.0i '1+i '1-i '-1-i '-1+i '2/3+i '2/3-i '-2/3+i '1+2/3i '1-2/3i '2/3+2/3i '2.3-2/3i '2/3-2.3i '2e2+1e3i '2e2-2e2i '2.0e2+i '1+2.0e2i '2.0e+2-2.0e-1i '2/3-2.0e3i '2e-3-2/3i '-2.0e-2-2.0e-2i '+2.0e+2+2.0e+2i '+2/3-2/3i '2e2-2/3i '1e1-i '1.-i '.0+i '-.0-1e-1i '1.+.1i '0.-.1i '.1+.0i '1.+.0i '.1+.1i '1.-.1i '.0+.00i '.10+.0i '-1.+.0i '.1-.01i '1.0+.1i '1e1+.1i '-1.-.10i '1e01+.0i '0e11+.0i '1.e1+.0i '1.00-.0i '-1e1-.0i '1.-.1e0i '1.+.001i '1e10-.1i '1e+0-.1i '-0e0-.1i '-1.0e-1-1.0e-1i '-111e1-.1i '1.1-.1e11i '-1e-1-.11i '-1.1-.1e1i '-.1+.1i))) #; (for-each (lambda (n rl im) (if (not (number? n)) (begin (display "(number? ") (display n) (display ") returned #f?") (newline)) (begin (if (> (abs (- (real-part n) rl)) .000001) (begin (display "real-part: ") (display n) (display " ") (display (real-part n)) (display " ") (display rl) (newline))) (if (> (abs (- (imag-part n) im)) .000001) (begin (display "imag-part: ") (display n) (display " ") (display (imag-part n)) (display " ") (display im) (newline))) ))) (list 1 -1 +1 +.1 -.1 .1 .0 0. 0.0 -0 +0 -0. +0. +1.1 -1.1 1.1 '1.0e2 '-1.0e2 '+1.0e2 '1.1e-2 '-1.1e-2 '+1.1e-2 '1.1e+2 '-1.1e+2 '+1.1e+2 '1/2 '-1/2 '+1/2 '1.0+1.0i '1.0-1.0i '-1.0-1.0i '-1.0+1.0i '1+i '1-i '-1-i '-1+i '2/3+i '2/3-i '-2/3+i '1+2/3i '1-2/3i '2/3+2/3i '2.3-2/3i '2/3-2.3i '2e2+1e3i '2e2-2e2i '2.0e2+i '1+2.0e2i '2.0e+2-2.0e-1i '2/3-2.0e3i '2e-3-2/3i '-2.0e-2-2.0e-2i '+2.0e+2+2.0e+2i '+2/3-2/3i '2e2-2/3i '1e1-i '1.-i '.0+i '-.0-1e-1i '1.+.1i '0.-.1i '.1+.0i '1.+.0i '.1+.1i '1.-.1i '.0+.00i '.10+.0i '-1.+.0i '.1-.01i '1.0+.1i '1e1+.1i '-1.-.10i '1e01+.0i '0e11+.0i '1.e1+.0i '1.00-.0i '-1e1-.0i '1.-.1e0i '1.+.001i '1e10-.1i '1e+0-.1i '-0e0-.1i '-1.0e-1-1.0e-1i '-111e1-.1i '1.1-.1e11i '-1e-1-.11i '-1.1-.1e1i) (list 1.0 -1.0 1.0 0.1 -0.1 0.1 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 1.1 -1.1 1.1 100.0 -100.0 100.0 0.011 -0.011 0.011 110.0 -110.0 110.0 0.5 -0.5 0.5 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 -1.0 0.66666666666667 0.66666666666667 -0.66666666666667 1.0 1.0 0.66666666666667 2.3 0.66666666666667 200.0 200.0 200.0 1.0 200.0 0.66666666666667 0.002 -0.02 200.0 0.66666666666667 200.0 10.0 1.0 0.0 -0.0 1.0 0.0 0.1 1.0 0.1 1.0 0.0 0.1 -1.0 0.1 1.0 10.0 -1.0 10.0 0.0 10.0 1.0 -10.0 1.0 1.0 10000000000.0 1.0 -0.0 -0.1 -1110.0 1.1 -0.1 -1.1) (list 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 0.66666666666667 -0.66666666666667 0.66666666666667 -0.66666666666667 -2.3 1000.0 -200.0 1.0 200.0 -0.2 -2000.0 -0.66666666666667 -0.02 200.0 -0.66666666666667 -0.66666666666667 -1.0 -1.0 1.0 -0.1 0.1 -0.1 0.0 0.0 0.1 -0.1 0.0 0.0 0.0 -0.01 0.1 0.1 -0.1 0.0 0.0 0.0 0.0 0.0 -0.1 0.001 -0.1 -0.1 -0.1 -0.1 -0.1 -10000000000.0 -0.11 -1.0)) #; (for-each (lambda (n name) (if (number? n) (begin (display "(number? ") (display name) (display ") returned #t?") (newline))) (if (or (not (symbol? n)) (boolean? n)) (begin (display "(symbol? ") (display name) (display ") returned #f?") (newline))) (if (number? (string->number name)) (begin (display "(string->number ") (display name) (display ") returned ") (display (string->number name)) (display "?") (newline)))) (list '1e '--1 '++1 '+. '+.+ '.. '.- '1e- '+ '- '-e1 '1/2/3 '1/2+/2 '/2 '2/ '1+2 '1/+i '1/2e1 '1/2. '1..0 '1.+0 '1--1 '1+- '1.0++i '1.0-ie++2 '1+1 '1.0. '1.0e '1ee2 '1.0e2e2 '1es2 '1e1.0 '1.0.0 '1/2.0 '1+i2 '1+1.0i0 '+.i 'i 'e 'e1 '1e.1 '1+.i '1.0e.1 '-.1ei '-1.0+1.0 '1.0+1.0i+1.0 '1.1/2 '1/2.0 '1/e '1/i 'e/i '1e2/3 '2/1e2 '1e2+1e2ii '1i-1.0 '1.0-i/2 '1/2i '2i/3 '2+/i '2+2/i '2+2/-i '2/- '2/+ '2/+3 '1e1.0 '1e1e2 '1+ie2 '1ei1 '1e/2 '0-- '1+ '1- '.1. '.1+ '1//2 '1/-/2 '1/2/ '1// '+/1 '.0. '+0ei '0e++i '+0e+i '0e+-i '+0e-i '+00ei '+.0ei '0+0ei '-01ei '+.1ei '1-1ei '-1.ei '0+.i '0-.i '1+e0i '1+/0i '1-/0i '1+e1i '1+/1i '10+.i '.0+.i '-0+.i '.1+.i '0.+.i '00-.i '.1-.i '1.-.i '1e++0i '1e--1i '.1e++i '+10e+i '1+0e+i '+01e+i '+0e+-i '.1e+-i '1-10ei '0e++00i '1e--.1i '1.e-+1i '1-0.e+i '1.+1e+i '-1.e--i '1.e+-.0i '1-e+01i '1-/101i '1+/10i '1-e10i '-1+e+1i '.1-e-1i '1-/0e1i '1e10+.i '1/1.1+i '1/11.+i '1/2e1-i '-1.0e-1-1-1.0e-1i '-1.0e-1-1.0e-1-1i '1.0e2/3 '-1e--1.e1i '-11e--1e1i '1e--1.1e1i '1.e-1-1.ei '-1.e--1.ei '-1.1e1-e1i '-1.e1-e-1i '.1e1-e-11i '3.-3. '1'2 '+-2 '1? '1a '1.a '-a '+a '1.. '..1 '-..1 '1ee1 '1ef2 '1+ief2 '1.+ '1.0- '1/2+/3 '1'2 '1-#i '1-i. '1-ie '1... '1/1/1/1 '1//1 '-.e1 ) (list "1e" "--1" "++1" "+." "+.+" ".." ".-" "1e-" "+" "-" "-e1" "1/2/3" "1/2+/2" "/2" "2/" "1+2" "1/+i" "1/2e1" "1/2." "1..0" "1.+0" "1--1" "1+-" "1.0++i" "1.0-ie++2" "1+1" "1.0." "1.0e" "1ee2" "1.0e2e2" "1es2" "1e1.0" "1.0.0" "1/2.0" "1+i2" "1+1.0i0" "+.i" "i" "e" "e1" "1e.1" "1+.i" "1.0e.1" "-.1ei" "-1.0+1.0" "1.0+1.0i+1.0" "1.1/2" "1/2.0" "1/e" "1/i" "e/i" "1e2/3" "2/1e2" "1e2+1e2ii" "1i-1.0" "1.0-i/2" "1/2i" "2i/3" "2+/i" "2+2/i" "2+2/-i" "2/-" "2/+" "2/+3" "1e1.0" "1e1e2" "1+ie2" "1ei1" "1e/2" "0--" "1+" "1-" ".1." ".1+" "1//2" "1/-/2" "1/2/" "1//" "+/1" ".0." "+0ei" "0e++i" "+0e+i" "0e+-i" "+0e-i" "+00ei" "+.0ei" "0+0ei" "-01ei" "+.1ei" "1-1ei" "-1.ei" "0+.i" "0-.i" "1+e0i" "1+/0i" "1-/0i" "1+e1i" "1+/1i" "10+.i" ".0+.i" "-0+.i" ".1+.i" "0.+.i" "00-.i" ".1-.i" "1.-.i" "1e++0i" "1e--1i" ".1e++i" "+10e+i" "1+0e+i" "+01e+i" "+0e+-i" ".1e+-i" "1-10ei" "0e++00i" "1e--.1i" "1.e-+1i" "1-0.e+i" "1.+1e+i" "-1.e--i" "1.e+-.0i" "1-e+01i" "1-/101i" "1+/10i" "1-e10i" "-1+e+1i" ".1-e-1i" "1-/0e1i" "1e10+.i" "1/1.1+i" "1/11.+i" "1/2e1-i" "-1.0e-1-1-1.0e-1i" "-1.0e-1-1.0e-1-1i" "1.0e2/3" "-1e--1.e1i" "-11e--1e1i" "1e--1.1e1i" "1.e-1-1.ei" "-1.e--1.ei" "-1.1e1-e1i" "-1.e1-e-1i" ".1e1-e-11i" "3.-3." "'1'2" "'+-2" "'1?" "1a" "1.a" "-a" "+a" "1.." "..1" "-..1" "1ee1" "1ef2" "1+ief2" "1.+" "1.0-" "1/2+/3" "'1'2" "1-#i" "1-i." "1-ie" "1..." "1/1/1/1" "1//1" "-.e1" )) (let ((val (handle-exceptions exn 'error (= 1 01 +1 1. 001 +01 1/1 1.0 1e0 01. +1. #b1 #d1 #e1 #o1 #x1 2/2 3/3 4/4 5/5 6/6 7/7 8/8 9/9 1E0 1e0 0001 +001 1/01 .1e1 01/1 +1/1 1.00 1e00 01.0 +1.0 1e+0 1e-0 01e0 +1e0 1.e0 001. +01. 1+0i 1-0i #b+1 #b01 ;#b1. #d+1 #d01 #d1. #e+1 #e01 #e1. #i+1 #i01 #i1. #o+1 #o01 ;#o1. #x+1 #x01 ;#x1. +1E0 +1e0 +2/2 +3/3 +4/4 +5/5 +6/6 +7/7 +8/8 +9/9 .1E1 0001 001. 01.0 01/1 01E0 02/2 03/3 04/4 05/5 06/6 07/7 08/8 09/9 1.E0 1/01 1E+0 1E-0 1E00 2/02 3/03 4/04 5/05 6/06 7/07 8/08 9/09 11/11 00001 +0001 1/001 .1e01 01/01 +1/01 .1e+1 10e-1 0.1e1 +.1e1 .10e1 001/1 +01/1 10/10 1.000 1e000 01.00 +1.00 1e+00 1e-00 01e00 +1e00 1.e00 001.0 +01.0 01e+0 +1e+0 1.e+0 01e-0 +1e-0 1.e-0 001e0 +01e0 1.0e0 01.e0 +1.e0 0001. +001. 1+00i 1-00i 1+.0i 1-.0i 01+0i +1+0i 1.+0i 01-0i +1-0i 1.-0i 1+0.i 1-0.i 11/011 011/11 +11/11 000001 +00001 1/0001 .1e001 01/001 +1/001 .1e+01 10e-01 0.1e01 +.1e01 .10e01 001/01 +01/01 0.1e+1 +.1e+1 .10e+1 010e-1 +10e-1 10.e-1 00.1e1 +0.1e1 0.10e1 +.10e1 .100e1 0001/1 +001/1 10/010 010/10 +10/10 1.0000 1e0000 01.000 +1.000 1e+000 1e-000 01e000 +1e000 1.e000 001.00 +01.00 01e+00 +1e+00 1.e+00 01e-00 +1e-00 1.e-00 001e00 +01e00 1.0e00 01.e00 +1.e00 0001.0 +001.0 001e+0 +01e+0 1.0e+0 01.e+0 +1.e+0 001e-0 +01e-0 1.0e-0 01.e-0 +1.e-0 0001e0 +001e0 1.00e0 01.0e0 +1.0e0 001.e0 +01.e0 00001. +0001. 1+0e1i 1-0e1i 1+0/1i 1-0/1i 1+000i 1-000i 1+.00i 1-.00i 01+00i +1+00i 1.+00i 01-00i +1-00i 1.-00i 1+0.0i 1-0.0i 01+.0i +1+.0i 1.+.0i 01-.0i +1-.0i 1.-.0i 001+0i +01+0i 1/1+0i 1.0+0i 1e0+0i 01.+0i +1.+0i 001-0i +01-0i 1/1-0i 1.0-0i 1e0-0i 01.-0i +1.-0i 1+0e0i 1-0e0i 1+00.i 1-00.i 01+0.i +1+0.i 1.+0.i 01-0.i +1-0.i 1.-0.i 111/111 11/0011 011/011 +11/011 0011/11 +011/11 101/101 0000001 +000001 1/00001 .1e0001 01/0001 +1/0001 .1e+001 10e-001 0.1e001 +.1e001 .10e001 001/001 +01/001 0.1e+01 +.1e+01 .10e+01 010e-01 +10e-01 10.e-01 00.1e01 +0.1e01 0.10e01 +.10e01 .100e01 0001/01 +001/01 00.1e+1 +0.1e+1 0.10e+1 +.10e+1 .100e+1 0010e-1 +010e-1 10.0e-1 010.e-1 +10.e-1 000.1e1 +00.1e1 00.10e1 +0.10e1 0.100e1 +.100e1 .1000e1 00001/1 +0001/1 110/110 10/0010 010/010 +10/010 0010/10 +010/10 100/100 1.00000 1e00000 01.0000 +1.0000 1e+0000 1e-0000 01e0000 +1e0000 1.e0000 001.000 +01.000 01e+000 +1e+000 1.e+000 01e-000 +1e-000 1.e-000 001e000 +01e000 1.0e000 01.e000 +1.e000 0001.00 +001.00 001e+00 +01e+00 1.0e+00 01.e+00 +1.e+00 001e-00 +01e-00 1.0e-00 01.e-00 +1.e-00 0001e00 +001e00 1.00e00 01.0e00 +1.0e00 001.e00 +01.e00 00001.0 +0001.0 0001e+0 +001e+0 1.00e+0 01.0e+0 +1.0e+0 001.e+0 +01.e+0 0001e-0 +001e-0 1.00e-0 01.0e-0 +1.0e-0 001.e-0 +01.e-0 00001e0 +0001e0 1.000e0 01.00e0 +1.00e0 001.0e0 +01.0e0 0001.e0 +001.e0 000001. +00001. 1+0e11i 1-0e11i 1+0/11i 1-0/11i 1+0e01i 1-0e01i 1+0/01i 1-0/01i 1+0e+1i 1-0e+1i 1+0e-1i 1-0e-1i 1+00e1i 1-00e1i 1+.0e1i 1-.0e1i 01+0e1i +1+0e1i 1.+0e1i 01-0e1i +1-0e1i 1.-0e1i 1+0.e1i 1-0.e1i 1+00/1i 1-00/1i 01+0/1i +1+0/1i 1.+0/1i 01-0/1i +1-0/1i 1.-0/1i 1+0e10i 1-0e10i 1+0/10i 1-0/10i 1+0000i 1-0000i 1+.000i 1-.000i 01+000i +1+000i 1.+000i 01-000i +1-000i 1.-000i 1+0.00i 1-0.00i 01+.00i +1+.00i 1.+.00i 01-.00i +1-.00i 1.-.00i 001+00i +01+00i 1/1+00i 1.0+00i 1e0+00i 01.+00i +1.+00i 001-00i +01-00i 1/1-00i 1.0-00i 1e0-00i 01.-00i +1.-00i 1+0e00i 1-0e00i 1+00.0i 1-00.0i 01+0.0i +1+0.0i 1.+0.0i 01-0.0i +1-0.0i 1.-0.0i 001+.0i +01+.0i 1/1+.0i 1.0+.0i 1e0+.0i 01.+.0i +1.+.0i 001-.0i +01-.0i 1/1-.0i 1.0-.0i 1e0-.0i 01.-.0i +1.-.0i 0001+0i +001+0i 1/01+0i .1e1+0i 01/1+0i +1/1+0i 1.00+0i 1e00+0i 01.0+0i +1.0+0i 1e+0+0i 1e-0+0i 01e0+0i +1e0+0i 1.e0+0i 001.+0i +01.+0i 1+0e+0i 1-0e+0i 0001-0i +001-0i 1/01-0i .1e1-0i 01/1-0i +1/1-0i 1.00-0i 1e00-0i 01.0-0i +1.0-0i 1e+0-0i 1e-0-0i 01e0-0i +1e0-0i 1.e0-0i 001.-0i +01.-0i 1+0e-0i 1-0e-0i 1+00e0i 1-00e0i 1+.0e0i 1-.0e0i 01+0e0i +1+0e0i 1.+0e0i 01-0e0i +1-0e0i 1.-0e0i 1+0.e0i 1-0.e0i 1+000.i 1-000.i 01+00.i +1+00.i 1.+00.i 01-00.i +1-00.i 1.-00.i 001+0.i +01+0.i 1/1+0.i 1.0+0.i 1e0+0.i 01.+0.i +1.+0.i 001-0.i +01-0.i 1/1-0.i 1.0-0.i 1e0-0.i 01.-0.i +1.-0.i 111/0111 0111/111 +111/111 11/00011 011/0011 +11/0011 0011/011 +011/011 00011/11 +0011/11 101/0101 0101/101 +101/101 00000001 +0000001 1/000001 .1e00001 01/00001 +1/00001 .1e+0001 10e-0001 0.1e0001 +.1e0001 .10e0001 001/0001 +01/0001 0.1e+001 +.1e+001 .10e+001 010e-001 +10e-001 10.e-001 00.1e001 +0.1e001 0.10e001 +.10e001 .100e001 0001/001 +001/001 00.1e+01 +0.1e+01 0.10e+01 +.10e+01 .100e+01 0010e-01 +010e-01 10.0e-01 010.e-01 +10.e-01 000.1e01 +00.1e01 00.10e01 +0.10e01 0.100e01 +.100e01 .1000e01 00001/01 +0001/01 000.1e+1 +00.1e+1 00.10e+1 +0.10e+1 0.100e+1 +.100e+1 .1000e+1 00010e-1 +0010e-1 10.00e-1 010.0e-1 +10.0e-1 0010.e-1 +010.e-1 0000.1e1 +000.1e1 000.10e1 +00.10e1 00.100e1 +0.100e1 0.1000e1 +.1000e1 .10000e1 000001/1 +00001/1 110/0110 0110/110 +110/110 10/00010 010/0010 +10/0010 0010/010 +010/010 00010/10 +0010/10 100/0100 0100/100 +100/100 1.000000 1e000000 01.00000 +1.00000 1e+00000 1e-00000 01e00000 +1e00000 1.e00000 001.0000 +01.0000 01e+0000 +1e+0000 1.e+0000 01e-0000 +1e-0000 1.e-0000 001e0000 +01e0000 1.0e0000 01.e0000 +1.e0000 0001.000 +001.000 001e+000 +01e+000 1.0e+000 01.e+000 +1.e+000 001e-000 +01e-000 1.0e-000 01.e-000 +1.e-000 0001e000 +001e000 1.00e000 01.0e000 +1.0e000 001.e000 +01.e000 00001.00 +0001.00 0001e+00 +001e+00 1.00e+00 01.0e+00 +1.0e+00 001.e+00 +01.e+00 0001e-00 +001e-00 1.00e-00 01.0e-00 +1.0e-00 001.e-00 +01.e-00 00001e00 +0001e00 1.000e00 01.00e00 +1.00e00 001.0e00 +01.0e00 0001.e00 +001.e00 000001.0 +00001.0 00001e+0 +0001e+0 1.000e+0 01.00e+0 +1.00e+0 001.0e+0 +01.0e+0 0001.e+0 +001.e+0 00001e-0 +0001e-0 1.000e-0 01.00e-0 +1.00e-0 001.0e-0 +01.0e-0 0001.e-0 +001.e-0 000001e0 +00001e0 1.0000e0 01.000e0 +1.000e0 001.00e0 +01.00e0 0001.0e0 +001.0e0 00001.e0 +0001.e0 0000001. +000001.)))) (test-assert (format #f ";funny 1's are not all equal to 1? (~A)" val) val)) (for-each (lambda (lst) (for-each (lambda (str) (let ((val (handle-exceptions exn 'error (string->number str)))) (test-assert (format #f ";(string->number ~S) = ~A?" str val) (not (or (not (number? val)) (> (abs (- val 1.0)) 1.0e-15))) ))) lst)) (list (list "1") (list "01" "+1" "1.") (list "001" "+01" "#e1" "#i1" "1/1" "#b1" "#x1" "#d1" "#o1" "1.0" "1e0" "9/9" "01." "+1." "1E0") (list "0001" "+001" "#e01" "#i01" "1/01" "#b01" "#x01" "#d01" "#o01" "#e+1" "#i+1" "#b+1" "#x+1" "#d+1" "#o+1" ".1e1" "01/1" "+1/1" "1.00" "1e00" "01.0" "+1.0" "1e+0" "1e-0" "01e0" "+1e0" "1.e0" "9/09" "09/9" "+9/9" "001." "+01." "#e1." "#i1." "1+0i" "1-0i" "#d1.") (list "11/11" "00001" "+0001" "#e001" "#i001" "1/001" "#b001" "#x001" "#d001" "#o001" "#e+01" "#i+01" "#b+01" "#x+01" "#d+01" "#o+01" ".1e01" "01/01" "+1/01" "91/91" ".1e+1" "10e-1" "0.1e1" "+.1e1" ".10e1" "#b#e1" "#x#e1" "#d#e1" "#o#e1" "#b#i1" "#x#i1" "#d#i1" "#o#i1" "001/1" "+01/1" "#e1/1" "#i1/1" "#b1/1" "#x1/1" "#d1/1" "#o1/1" "#e#b1" "#i#b1" "#e#x1" "#i#x1" "#e#d1" "#i#d1" "#e#o1" "#i#o1" "10/10" "1.000" "1e000" "01.00" "+1.00" "1e+00" "1e-00" "01e00" "+1e00" "1.e00" "90/90" "001.0" "+01.0" "#e1.0" "#i1.0" "01e+0" "+1e+0" "1.e+0" "01e-0" "+1e-0" "1.e-0" "001e0" "+01e0" "#e1e0" "#i1e0" "1.0e0" "01.e0" "+1.e0" "19/19" "9/009" "09/09" "+9/09" "99/99" "009/9" "+09/9" "#e9/9" "#i9/9" "#x9/9" "#d9/9" "0001." "+001." "#e01." "#i01." "#e+1." "#i+1." "#xe/e" "1+00i" "1-00i" "1+.0i" "1-.0i" "01+0i" "+1+0i" "1.+0i" "01-0i" "+1-0i" "1.-0i" "1+0.i" "1-0.i" "#xb/b" "#xd/d" "#xf/f") ;; remove "9": (list "11/011" "011/11" "+11/11" "000001" "+00001" "#e0001" "#i0001" "1/0001" "#b0001" "#x0001" "#d0001" "#o0001" "#e+001" "#i+001" "#b+001" "#x+001" "#d+001" "#o+001" ".1e001" "01/001" "+1/001" ".1e+01" "10e-01" "0.1e01" "+.1e01" ".10e01" "#b#e01" "#x#e01" "#d#e01" "#o#e01" "#b#i01" "#x#i01" "#d#i01" "#o#i01" "001/01" "+01/01" "#e1/01" "#i1/01" "#b1/01" "#x1/01" "#d1/01" "#o1/01" "#e#b01" "#i#b01" "#e#x01" "#i#x01" "#e#d01" "#i#d01" "#e#o01" "#i#o01" "0.1e+1" "+.1e+1" ".10e+1" "#b#e+1" "#x#e+1" "#d#e+1" "#o#e+1" "#b#i+1" "#x#i+1" "#d#i+1" "#o#i+1" "#e#b+1" "#i#b+1" "#e#x+1" "#i#x+1" "#e#d+1" "#i#d+1" "#e#o+1" "#i#o+1" "010e-1" "+10e-1" "10.e-1" "00.1e1" "+0.1e1" "#e.1e1" "#i.1e1" "0.10e1" "+.10e1" ".100e1" "0001/1" "+001/1" "#e01/1" "#i01/1" "#b01/1" "#x01/1" "#d01/1" "#o01/1" "#e+1/1" "#i+1/1" "#b+1/1" "#x+1/1" "#d+1/1" "#o+1/1" "10/010" "010/10" "+10/10" "1.0000" "1e0000" "01.000" "+1.000" "1e+000" "1e-000" "01e000" "+1e000" "1.e000" "001.00" "+01.00" "#e1.00" "#i1.00" "01e+00" "+1e+00" "1.e+00" "01e-00" "+1e-00" "1.e-00" "001e00" "+01e00" "#e1e00" "#i1e00" "1.0e00" "01.e00" "+1.e00" "0001.0" "+001.0" "#e01.0" "#i01.0" "#e+1.0" "#i+1.0" "001e+0" "+01e+0" "#e1e+0" "#i1e+0" "1.0e+0" "01.e+0" "+1.e+0" "001e-0" "+01e-0" "#e1e-0" "#i1e-0" "1.0e-0" "01.e-0" "+1.e-0" "0001e0" "+001e0" "#e01e0" "#i01e0" "#e+1e0" "#i+1e0" "1.00e0" "01.0e0" "+1.0e0" "001.e0" "+01.e0" "#e1.e0" "#i1.e0" "00001." "+0001." "#e001." "#i001." "#e+01." "#i+01." "#xe/0e" "#x0e/e" "#x+e/e" "1+0e1i" "1-0e1i" "1+0/1i" "1-0/1i" "1+000i" "1-000i" "1+.00i" "1-.00i" "01+00i" "+1+00i" "1.+00i" "01-00i" "+1-00i" "1.-00i" "1+0.0i" "1-0.0i" "01+.0i" "+1+.0i" "1.+.0i" "01-.0i" "+1-.0i" "1.-.0i" "001+0i" "+01+0i" "#e1+0i" "#i1+0i" "1/1+0i" "1.0+0i" "1e0+0i" "01.+0i" "+1.+0i" "001-0i" "+01-0i" "#e1-0i" "#i1-0i" "1/1-0i" "1.0-0i" "1e0-0i" "01.-0i" "+1.-0i" "1+0e0i" "1-0e0i" "1+00.i" "1-00.i" "01+0.i" "+1+0.i" "1.+0.i" "01-0.i" "+1-0.i" "1.-0.i" "#xb/0b" "#x0b/b" "#x+b/b" "#xd/0d" "#x0d/d" "#x+d/d" "#xf/0f" "#x0f/f" "#x+f/f") (list "111/111" "11/0011" "011/011" "+11/011" "0011/11" "+011/11" "#e11/11" "#i11/11" "#b11/11" "#x11/11" "#d11/11" "#o11/11" "101/101" "0000001" "+000001" "#e00001" "#i00001" "1/00001" "#b00001" "#x00001" "#d00001" "#o00001" "#e+0001" "#i+0001" "#b+0001" "#x+0001" "#d+0001" "#o+0001" ".1e0001" "01/0001" "+1/0001" ".1e+001" "10e-001" "0.1e001" "+.1e001" ".10e001" "#b#e001" "#x#e001" "#d#e001" "#o#e001" "#b#i001" "#x#i001" "#d#i001" "#o#i001" "001/001" "+01/001" "#e1/001" "#i1/001" "#b1/001" "#x1/001" "#d1/001" "#o1/001" "#e#b001" "#i#b001" "#e#x001" "#i#x001" "#e#d001" "#i#d001" "#e#o001" "#i#o001" "0.1e+01" "+.1e+01" ".10e+01" "#b#e+01" "#x#e+01" "#d#e+01" "#o#e+01" "#b#i+01" "#x#i+01" "#d#i+01" "#o#i+01" "#e#b+01" "#i#b+01" "#e#x+01" "#i#x+01" "#e#d+01" "#i#d+01" "#e#o+01" "#i#o+01" "010e-01" "+10e-01" "10.e-01" "1.00000" "1e00000" "01.0000" "+1.0000" "1e+0000" "1e-0000" "01e0000" "+1e0000" "1.e0000" "001.000" "+01.000" "#e1.000" "#i1.000" "#d1.000" "01e+000" "+1e+000" "1.e+000" "01e-000" "+1e-000" "1.e-000" "001e000" "+01e000" "#e1e000" "#i1e000" "#d1e000" "1.0e000" "+1.e000" "0001.00" "+001.00" "#e01.00" "#i01.00" "#d01.00" "#e+1.00" "#i+1.00" "#d+1.00" "001e+00" "+01e+00" "#e1e+00" "#i1e+00" "#d1e+00" "1.0e+00" "01.e+00" "+1.e+00" "001e-00" "+01e-00" "#e1e-00" "#i1e-00" "#d1e-00" "1.0e-00" "01.e-00" "+1.e-00" "000001." "+00001." "#e0001." "#i0001." "#d0001." "#e+001." "#i+001." "#d+001." "#d#e01." "#d#i01." "#e#d01." "#i#d01." "#d#e+1." "#d#i+1." "#e#d+1." "#i#d+1." "#x1e/1e" "#xe/00e" "#x0e/0e" "#x+e/0e" "#xee/ee" "#x00e/e" "#x+0e/e" "#x#ee/e" "#x#ie/e" "#e#xe/e" "#i#xe/e" "#xbe/be" "#xde/de" "1+0e11i" "1-0e11i" "1+0/11i" "1-0/11i" "1+0e01i" "1-0e01i" "1+0/01i" "1-0/01i" "1+0e+1i" "1-0e+1i" "1+0e-1i" "1-0e-1i" "1+00e1i" "1-00e1i" "1+.0e1i" "1-.0e1i" "01+0e1i" "+1+0e1i" "1.+0e1i" "01-0e1i" "+1-0e1i" "1.-0e1i" "1+0.e1i" "1-0.e1i" "1+00/1i" "1-00/1i" "01+0/1i" "+1+0/1i" "1.+0/1i" "01-0/1i" "+1-0/1i" "1.-0/1i" "1+0e10i" "1-0e10i" "1+0/10i" "1-0/10i" "1+0000i" "1-0000i" "1+.000i" "1-.000i" "01+000i" "+1+000i" "1.+000i" "01-000i" "+1-000i" "1.-000i" "1+0.00i" "1-0.00i" "01+.00i" "+1+.00i" "1.+.00i" "01-.00i" "+1-.00i" "1.-.00i" "001+00i" "+01+00i" "#e1+00i" "#i1+00i" "1/1+00i" "#b1+00i" "#x1+00i" "#d1+00i" "#o1+00i" "1.0+00i" "1e0+00i" "01.+00i" "+1.+00i" "001-00i" "+01-00i" "#e1-00i" "#i1-00i" "1/1-00i" "#b1-00i" "#x1-00i" "#d1-00i" "#o1-00i" "1.0-00i" "1e0-00i" "01.-00i" "+1.-00i" "1+0e00i" "1-0e00i" "1+00.0i" "1-00.0i" "01+0.0i" "+1+0.0i" "1.+0.0i" "01-0.0i" "+1-0.0i" "1.-0.0i" "001+.0i" "+01+.0i" "#e1+.0i" "#i1+.0i" "1/1+.0i" "#d1+.0i" "1.0+.0i" "1e0+.0i" "01.+.0i" "+1.+.0i" "001-.0i" "+01-.0i" "#e1-.0i" "#i1-.0i" "1/1-.0i" "#d1-.0i" "1.0-.0i" "1e0-.0i" "01.-.0i" "+1.-.0i" "0001+0i" "+001+0i" "#e01+0i" "#i01+0i" "1/01+0i" "#b01+0i" "#x01+0i" "#d01+0i" "#o01+0i" "#e+1+0i" "#i+1+0i" "#b+1+0i" "#x+1+0i" "#d+1+0i" "#o+1+0i" ".1e1+0i" "01/1+0i" "+1/1+0i" "1.00+0i" "1e00+0i" "01.0+0i" "+1.0+0i" "1e+0+0i" "1e-0+0i" "01e0+0i" "+1e0+0i" "1.e0+0i" "001.+0i" "+01.+0i" "#e1.+0i" "#i1.+0i" "#d1.+0i" "1+0e+0i" "1-0e+0i" "0001-0i" "+001-0i" "#e01-0i" "#i01-0i" "1/01-0i" "#b01-0i" "#x01-0i" "#d01-0i" "#o01-0i" "#e+1-0i" "#i+1-0i" "#b+1-0i" "#x+1-0i" "#d+1-0i" "#o+1-0i" ".1e1-0i" "01/1-0i" "+1/1-0i" "1.00-0i" "1e00-0i" "01.0-0i" "+1.0-0i" "1e+0-0i" "1e-0-0i" "01e0-0i" "+1e0-0i" "1.e0-0i" "001.-0i" "+01.-0i" "#e1.-0i" "#i1.-0i" "#d1.-0i" "1+0e-0i" "1-0e-0i" "1+00e0i" "1-00e0i" "1+.0e0i" "1-.0e0i" "01+0e0i" "+1+0e0i" "1.+0e0i" "01-0e0i" "+1-0e0i" "1.-0e0i" "1+0.e0i" "1-0.e0i" "1+000.i" "1-000.i" "01+00.i" "+1+00.i" "1.+00.i" "01-00.i" "+1-00.i" "1.-00.i" "001+0.i" "+01+0.i" "#e1+0.i" "#i1+0.i" "1/1+0.i" "#d1+0.i" "1.0+0.i" "1e0+0.i" "+1.+0.i" "001-0.i" "+01-0.i" "#e1-0.i" "#i1-0.i" "1/1-0.i" "#d1-0.i" "1.0-0.i" "1e0-0.i" "01.-0.i" "+1.-0.i" "#xb/00b" "#x0b/0b" "#x+b/0b" "#xeb/eb" "#x00b/b" "#x+0b/b" "#x#eb/b" "#x#ib/b" "#e#xb/b" "#i#xb/b" "#xbb/bb" "#xdb/db" "#xd/00d" "#x0d/0d" "#x+d/0d" "#xed/ed") ;;; selected ones... (list "#i+11/011" "+101/0101" "#o#e11/11" "#d+11/011" "#e1/0001" "#e#b+001" "#e10e-1" "#x#e1/001" "000000001" "#i+.1e+01" "#d+.1e+01" "00.10e+01" "+0.10e+01" "#e.10e+01" "#i.10e+01" "#d.10e+01" "#e.10e+01" "#i10.0e-01" "+010.e-01" "#e10.e-01" "#e00.1e01" "#e#d.1e01" "#i#d1e0+0e0i" "#e#d10e-1+0e-2i" "#e#d1e0+0e-2i" "#i#d+0.001e+03+0.0e-10i" "#i#d+1/1-0/1i" ) )) (for-each (lambda (str) (let ((val (handle-exceptions exn 'error (string->number str)))) (test-assert (format #f ";(string->number ~S = ~A?" str val) (not (or (not (number? val)) (= val 1)))))) (list "011e0" "11e-00" "00.e01-i" "+10e10+i" "+1.110+i" "10011-0i" "-000.111" "0.100111" "-11.1111" "10.00011" "110e00+i" "1e-011+i" "101001+i" "+11e-0-0i" "11+00e+0i" "-11101.-i" "1110e-0-i")) (num-test (let ((0- 1) (1+ 2) (-0+ 3) (1e 4) (1/+2 5) (--1 6)) (+ 0- 1+ -0+ 1e 1/+2 --1)) 21) (for-each (lambda (str) (let ((val (handle-exceptions exn 'error (string->number str)))) (test-assert (format #f ";(string->number ~S) = ~A?" str val) (not val) ))) ;(number? val) (list "#b#e#e1" "#x#e#e1" "#d#e#e1" "#o#e#e1" "#b#i#e1" "#x#i#e1" "#d#i#e1" "#o#i#e1" "#e#b#e1" "#i#b#e1" "#e#x#e1" "#i#x#e1" "#e#d#e1" "#i#d#e1" "#e#o#e1" "#i#o#e1" "#e#b#i1" "#e#x#i1" "#e#d#i1" "#e#o#i1" "#b#e#b1" "#x#e#b1" "#d#e#b1" "#o#e#b1" "#b#i#b1" "#x#i#b1" "#d#i#b1" "#o#i#b1" "#b#e#x1" "#x#e#x1" "#d#e#x1" "#o#e#x1" "#b#i#x1" "#x#i#x1" "#d#i#x1" "#o#i#x1" "#b#e#d1" "#x#e#d1" "#d#e#d1" "#o#e#d1" "#b#i#d1" "#x#i#d1" "#d#i#d1" "#o#i#d1" "#b#e#o1" "#x#e#o1" "#d#e#o1" "#o#e#o1" "#b#i#o1" "#x#i#o1" "#d#i#o1" "#o#i#o1" "+1ei" "-1ei" "+0ei" "-0ei" "+1di" "-1di" "+0di" "-0di" "+1fi" "-1fi" "+0fi" "-0fi" "0e-+i" "1d-+i" "0d-+i" "1f-+i" "0f-+i" "1e++i" "0e++i" "1d++i" ".10-10." "-1.e++i" "0e--01i" "1-00." "0-00." "#xf+b" "#x1+d" "0f++1i" "1+0d-i" ".0f--i" "1-0d-i" "#xe-ff" "0-" "0-e0" "-#b1" "#b.i" #;"#b+i" "#b1e.1" "#b1+1" "#b#e#e1" "#b#ee1" "#b#e0e" "#d#d1" "#d#1d1" "#b+1ei" "#b-1ei" "#b+0ei" "#b-0ei" "#b+1di" "#b-1di" "#b+0di" "#b-0di" "#b+1fi" "#b-1fi" "#b+0fi" "#b-0fi" "#b0e-+i" "#b1d-+i" )) (num-test (string->number "2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427") 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427) ;; from testbase-report.ps Vern Paxson (with some changes) ;; resultant strings are thanks to clisp (let ((cases (list (list '(* 49517601571415211 (expt 2 -94)) "2.5e-12") (list '(* 49517601571415211 (expt 2 -95)) "1.25e-12") (list '(* 54390733528642804 (expt 2 -133)) "4.995e-24") (list '(* 71805402319113924 (expt 2 -157)) "3.9305e-31") (list '(* 40435277969631694 (expt 2 -179)) "5.27705e-38") (list '(* 57241991568619049 (expt 2 -165)) "1.223955e-33") (list '(* 65224162876242886 (expt 2.0 58)) "1.8799585e+34") (list '(* 70173376848895368 (expt 2 -138)) "2.01387715e-25") (list '(* 37072848117383207 (expt 2 -99)) "5.849064105e-14") (list '(* 56845051585389697 (expt 2 -176)) "5.9349003055e-37") (list '(* 54791673366936431 (expt 2 -145)) "1.22847180395e-27") (list '(* 66800318669106231 (expt 2 -169)) "8.927076718085e-35") (list '(* 66800318669106231 (expt 2 -170)) "4.4635383590425e-35") (list '(* 66574323440112438 (expt 2 -119)) "1.00169908625495e-19") (list '(* 65645179969330963 (expt 2 -173)) "5.482941262802465e-36") (list '(* 61847254334681076 (expt 2 -109)) "9.529078328103644e-17") (list '(* 39990712921393606 (expt 2 -145)) "8.966227936640557e-28") (list '(* 59292318184400283 (expt 2 -149)) "8.308623441805854e-29") (list '(* 69116558615326153 (expt 2 -143)) "6.1985873566126555e-27") (list '(* 69116558615326153 (expt 2 -144)) "3.0992936783063277e-27") (list '(* 39462549494468513 (expt 2 -152)) "6.912351250617602e-30") (list '(* 39462549494468513 (expt 2 -153)) "3.456175625308801e-30") (list '(* 50883641005312716 (expt 2 -172)) "8.5e-36") (list '(* 38162730753984537 (expt 2 -170)) "2.55e-35") (list '(* 50832789069151999 (expt 2 -101)) "2.005e-14") (list '(* 51822367833714164 (expt 2 -109)) "7.984499999999999e-17") (list '(* 66840152193508133 (expt 2 -172)) "1.11655e-35") (list '(* 55111239245584393 (expt 2 -138)) "1.581615e-25") (list '(* 71704866733321482 (expt 2 -112)) "1.3809855e-17") (list '(* 67160949328233173 (expt 2 -142)) "1.20464045e-26") (list '(* 53237141308040189 (expt 2 -152)) "9.325140545e-30") (list '(* 62785329394975786 (expt 2 -112)) "1.2092014595e-17") (list '(* 48367680154689523 (expt 2 -77)) "3.20070458385e-07") (list '(* 42552223180606797 (expt 2 -102)) "8.391946324355e-15") (list '(* 63626356173011241 (expt 2 -112)) "1.2253990460585e-17") (list '(* 43566388595783643 (expt 2 -99)) "6.87356414897605e-14") (list '(* 54512669636675272 (expt 2 -159)) "7.459816430480385e-32") (list '(* 52306490527514614 (expt 2 -167)) "2.7960588398142556e-34") (list '(* 52306490527514614 (expt 2 -168)) "1.3980294199071278e-34") (list '(* 41024721590449423 (expt 2 -89)) "6.627901237305737e-11") (list '(* 37664020415894738 (expt 2 -132)) "6.917788004396807e-24") (list '(* 37549883692866294 (expt 2 -93)) "3.791569310834971e-12") (list '(* 69124110374399839 (expt 2 -104)) "3.408081767659137e-15") (list '(* 69124110374399839 (expt 2 -105)) "1.7040408838295685e-15") (list '(* 9 (expt 10 26)) "9e+26") (list '(* 79 (expt 10 -8)) "7.9e-07") (list '(* 393 (expt 10.0 26)) "3.93e+28") (list '(* 9171 (expt 10 -40)) "9.171e-37") (list '(* 56257 (expt 10 -16)) "5.6257e-12") (list '(* 281285 (expt 10 -17)) "2.81285e-12") (list '(* 4691113 (expt 10 -43)) "4.691113e-37") (list '(* 29994057 (expt 10 -15)) "2.9994057e-08") (list '(* 834548641 (expt 10 -46)) "8.34548641e-38") (list '(* 1058695771 (expt 10 -47)) "1.058695771e-38") (list '(* 87365670181 (expt 10 -18)) "8.7365670181e-08") (list '(* 872580695561 (expt 10 -36)) "8.72580695561e-25") (list '(* 6638060417081 (expt 10 -51)) "6.638060417081e-39") (list '(* 88473759402752 (expt 10 -52)) "8.8473759402752e-39") (list '(* 412413848938563 (expt 10 -27)) "4.12413848938563e-13") (list '(* 5592117679628511 (expt 10 -48)) "5.592117679628511e-33") (list '(* 83881765194427665 (expt 10 -50)) "8.388176519442766e-34") (list '(* 638632866154697279 (expt 10 -35)) "6.3863286615469725e-18") (list '(* 3624461315401357483 (expt 10 -53)) "3.6244613154013574e-35") (list '(* 75831386216699428651 (expt 10 -30)) "7.583138621669942e-11") (list '(* 356645068918103229683 (expt 10 -42)) "3.566450689181032e-22") (list '(* 7022835002724438581513 (expt 10 -33)) "7.022835002724439e-12") (list '(* 7 (expt 10 -27)) "7e-27") (list '(* 37 (expt 10 -29)) "3.7e-28") (list '(* 743 (expt 10 -18)) "7.43e-16") (list '(* 7861 (expt 10 -33)) "7.861e-30") (list '(* 46073 (expt 10 -30)) "4.6073e-26") (list '(* 774497 (expt 10 -34)) "7.74497e-29") (list '(* 8184513 (expt 10 -33)) "8.184513e-27") (list '(* 89842219 (expt 10 -28)) "8.9842219e-21") (list '(* 449211095 (expt 10 -29)) "4.49211095e-21") (list '(* 8128913627 (expt 10 -40)) "8.128913627e-31") (list '(* 87365670181 (expt 10 -18)) "8.7365670181e-08") (list '(* 436828350905 (expt 10 -19)) "4.36828350905e-08") (list '(* 5569902441849 (expt 10 -49)) "5.569902441849e-37") (list '(* 60101945175297 (expt 10 -32)) "6.0101945175297e-19") (list '(* 754205928904091 (expt 10 -51)) "7.54205928904091e-37") (list '(* 5930988018823113 (expt 10 -37)) "5.930988018823113e-22") (list '(* 51417459976130695 (expt 10 -27)) "5.14174599761307e-11") (list '(* 826224659167966417 (expt 10 -41)) "8.262246591679665e-24") (list '(* 9612793100620708287 (expt 10 -57)) "9.612793100620708e-39") (list '(* 93219542812847969081 (expt 10 -39)) "9.321954281284797e-20") (list '(* 544579064588249633923 (expt 10 -48)) "5.445790645882496e-28") (list '(* 4985301935905831716201 (expt 10 -48)) "4.9853019359058315e-27") (list '(* 12676506 (expt 2 -102)) "2.499999999549897e-24") (list '(* 12676506 (expt 2 -103)) "1.2499999997749484e-24") (list '(* 15445013 (expt 2.0 86)) "1.1949999999989506e+33") (list '(* 13734123 (expt 2 -138)) "3.941499999999621e-35") (list '(* 12428269 (expt 2 -130)) "9.13084999999985e-33") (list '(* 15334037 (expt 2 -146)) "1.719004999999994e-37") (list '(* 11518287 (expt 2 -41)) "5.237910499999998e-06") (list '(* 12584953 (expt 2 -145)) "2.82164405e-37") (list '(* 15961084 (expt 2 -125)) "3.752432815e-31") (list '(* 14915817 (expt 2 -146)) "1.6721209165e-37") (list '(* 10845484 (expt 2 -102)) "2.13889458145e-24") (list '(* 16431059 (expt 2 -61)) "7.125835945615e-12") (list '(* 16093626 (expt 2.0 69)) "9.500000001279935e+27") (list '(* 9983778 (expt 2.0 25)) "335000000004096.0") (list '(* 12745034 (expt 2.0 104)) "2.5850000000046706e+38") (list '(* 12706553 (expt 2.0 72)) "6.000500000000674e+28") (list '(* 11005028 (expt 2.0 45)) "3.8720500000001465e+20") (list '(* 15059547 (expt 2.0 71)) "3.555835000000006e+28") (list '(* 16015691 (expt 2 -99)) "2.5268305000000024e-23") (list '(* 8667859 (expt 2.0 56)) "6.24585065e+23") (list '(* 14855922 (expt 2 -82)) "3.072132665e-18") (list '(* 14855922 (expt 2 -83)) "1.5360663325e-18") (list '(* 10144164 (expt 2 -110)) "7.81477968335e-27") (list '(* 13248074 (expt 2.0 95)) "5.248102799365e+35") (list '(* 5 (expt 10 -20)) "5e-20") (list '(* 67 (expt 10.0 14)) "6.7e+15") (list '(* 985 (expt 10.0 15)) "9.85e+17") (list '(* 7693 (expt 10 -42)) "7.693e-39") (list '(* 55895 (expt 10 -16)) "5.5895e-12") (list '(* 996622 (expt 10 -44)) "9.96622e-39") (list '(* 7038531 (expt 10 -32)) "7.038531e-26") (list '(* 60419369 (expt 10 -46)) "6.0419369e-39") (list '(* 702990899 (expt 10 -20)) "7.02990899e-12") (list '(* 6930161142 (expt 10 -48)) "6.930161142e-39") (list '(* 25933168707 (expt 10.0 13)) "2.5933168707e+23") (list '(* 596428896559 (expt 10.0 20)) "5.96428896559e+31") (list '(* 3 (expt 10 -23)) "3e-23") (list '(* 57 (expt 10.0 18)) "5.7e+19") (list '(* 789 (expt 10 -35)) "7.89e-33") (list '(* 2539 (expt 10 -18)) "2.539e-15") (list '(* 76173 (expt 10.0 28)) "7.6173e+32") (list '(* 887745 (expt 10 -11)) "8.87745e-06") (list '(* 5382571 (expt 10 -37)) "5.382571e-31") (list '(* 82381273 (expt 10 -35)) "8.2381273e-28") (list '(* 750486563 (expt 10 -38)) "7.50486563e-30") (list '(* 3752432815 (expt 10 -39)) "3.752432815e-30") (list '(* 75224575729 (expt 10 -45)) "7.5224575729e-35") (list '(* 459926601011 (expt 10.0 15)) "4.59926601011e+26") ; 10.0 (and 2.0 above) because we aren't interested here in numeric overflows ))) (let ((maxdiff 0.0) (maxdiff-case '())) (do ((lst cases (cdr lst))) ((null? lst)) (let* ((form (caar lst)) (str (cadar lst)) (num (eval form)) (fnum (* 1.0 num)) (n2s (number->string fnum)) (s2n (string->number n2s)) (mnum (string->number str)) (diff (let () (test-assert (format #f "(number->string ~A)?" fnum) (string? n2s)) (test-assert (format #f "(string->number ~A)?" fnum) (number? s2n)) (/ (abs (- mnum s2n)) (max (expt 2 -31.0) (abs fnum)))))) (if (> diff maxdiff) (begin (set! maxdiff diff) (set! maxdiff-case (car lst)))))) (test-assert (format #f ";number->string rounding checks worst case relative error ~A ~A ~S" maxdiff (car maxdiff-case) (cadr maxdiff-case)) ;; This was 1e-15, but there we get an error... Is that bad? (<= maxdiff 1e-14)) ; we're only interested in real problems )) (for-each (lambda (p) (let ((sym (car p)) (num (cdr p))) (let ((tag (handle-exceptions exn 'error (string->number sym)))) (test (format #f ";(string->number ~S) = ~A [~A]" sym tag num) num tag)))) '(("#xe/d" . 14/13) ("#xb/d" . 11/13) ("#xf/d" . 15/13) ("#x1/f" . 1/15) ("#xd/f" . 13/15) ("#xe/f" . 14/15) ("#d.1" . .1) ("#d01" . 1) ("#d+1" . 1) ("#d+0" . 0) ("#d0+i" . 0+i) ("#xe+i" . 14.0+1.0i) ("#xf+i" . 15.0+1.0i) ("#d1-i" . 1.0-1.0i); ("#e1+i" . 1+i) )) ;;; here's code to generate all (im)possible numbers (using just a few digits) of a given length ;;; It takes a bit long to do this, so let's disable it for now. XXX TODO Figure out why it's slow ;; (define file (open-output-file "ntest.scm")) ;; (define chars (list #\1 #\0 #\9 #\# #\. #\+ #\- #\e #\i #\/ #\b #\x #\d #\o #\l #\s #\f)) ;; (define (all-syms f len with-file) ;; (let ((sym (make-string len)) ;; (num-chars (length chars)) ;; (ctrs (make-vector len 0))) ;; (do ((i 0 (+ i 1))) ;; ((= i (expt num-chars len))) ;; (let ((carry #t)) ;; (do ((k 0 (+ k 1))) ;; ((or (= k len) ;; (not carry))) ;; (vector-set! ctrs k (+ 1 (vector-ref ctrs k))) ;; (if (= (vector-ref ctrs k) num-chars) ;; (vector-set! ctrs k 0) ;; (set! carry #f))) ;; (do ((k 0 (+ k 1))) ;; ((= k len)) ;; (string-set! sym k (list-ref chars (vector-ref ctrs k))))) ;; ;;(format #t "~S " sym) ;; (let ((tag (handle-exceptions exn (car args) (string->number sym)))) ;; (if (not with-file) ;; (if (and (number? tag) ;; (= tag 1)) ;; (format #t "~S " sym)) ;; (begin ;; (if (number? tag) ;; (display (format file "(if (not (number? (string->number ~S))) (begin (display ~S) (display #\\space)))")) ;; (display (format file "(if (number? (string->number ~S)) (begin (display ~S) (display #\\space)))"))) ;; (newline file))))))) ;; (do ((len 1 (+ len 1))) ;; ((= len 12)) ;; (all-syms file len #f) ;; (newline)) ;; (close-output-port file) (let () (define (~ !) (* 2 !)) (s7-test (~ 3) 6) (define (~~ !) (* 2 !)) (s7-test (~~ 3) 6) (define (\x00 !) (* 2 !)) (s7-test (\x00 3) 6)) (for-each (lambda (n name) (test-assert (format #f ";(number? ~A) => #f" name) (not (number? n)))) (list 'a9 'aa 'aA 'a! 'a$ 'a% 'a& 'a* 'a+ 'a- 'a. 'a/ 'a: 'a< 'a= 'a> 'a? 'a@ 'a^ 'a_ 'a~ 'A9 'Aa 'AA 'A! 'A$ 'A% 'A& 'A* 'A+ 'A- 'A. 'A/ 'A: 'A< 'A= 'A> 'A? 'A@ 'A^ 'A_ 'A~ '!9 '!a '!A '!! '!$ '!% '!& '!* '!+ '!- '!. '!/ '!: '!< '!= '!> '!? '!@ '!^ '!_ '!~ '$9 '$a '$A '$! '$$ '$% '$& '$* '$+ '$- '$. '$/ '$: '$< '$= '$> '$? '$@ '$^ '$_ '$~ '%9 '%a '%A '%! '%$ '%% '%& '%* '%+ '%- '%. '%/ '%: '%< '%= '%> '%? '%@ '%^ '%_ '%~ '&9 '&a '&A '&! '&$ '&% '&& '&* '&+ '&- '&. '&/ '&: '&< '&= '&> '&? '&@ '&^ '&_ '&~ '*9 '*a '*A '*! '*$ '*% '*& '** '*+ '*- '*. '*/ '*: '*< '*= '*> '*? '*@ '*^ '*_ '*~ '/9 '/a '/A '/! '/$ '/% '/& '/* '/+ '/- '/. '// '/: '/< '/= '/> '/? '/@ '/^ '/_ '/~ ':9 ':a ':A ':! ':$ ':% ':& ':* ':+ ':- ':. ':/ ':: ':< ':= ':> ':? ':@ ':^ ':_ ':~ '<9 ' '=? '=@ '=^ '=_ '=~ '>9 '>a '>A '>! '>$ '>% '>& '>* '>+ '>- '>. '>/ '>: '>< '>= '>> '>? '>@ '>^ '>_ '>~ '?9 '?a '?A '?! '?$ '?% '?& '?* '?+ '?- '?. '?/ '?: '?< '?= '?> '?? '?@ '?^ '?_ '?~ '^9 '^a '^A '^! '^$ '^% '^& '^* '^+ '^- '^. '^/ '^: '^< '^= '^> '^? '^@ '^^ '^_ '^~ '_9 '_a '_A '_! '_$ '_% '_& '_* '_+ '_- '_. '_/ '_: '_< '_= '_> '_? '_@ '_^ '__ '_~ '~9 '~a '~A '~! '~$ '~% '~& '~* '~+ '~- '~. '~/ '~: '~< '~= '~> '~? '~@ '~^ '~_ '~~) (list "'a9" "'aa" "'aA" "'a!" "'a$" "'a%" "'a&" "'a*" "'a+" "'a-" "'a." "'a/" "'a:" "'a<" "'a=" "'a>" "'a?" "'a@" "'a^" "'a_" "'a~" "'A9" "'Aa" "'AA" "'A!" "'A$" "'A%" "'A&" "'A*" "'A+" "'A-" "'A." "'A/" "'A:" "'A<" "'A=" "'A>" "'A?" "'A@" "'A^" "'A_" "'A~" "'!9" "'!a" "'!A" "'!!" "'!$" "'!%" "'!&" "'!*" "'!+" "'!-" "'!." "'!/" "'!:" "'!<" "'!=" "'!>" "'!?" "'!@" "'!^" "'!_" "'!~" "'$9" "'$a" "'$A" "'$!" "'$$" "'$%" "'$&" "'$*" "'$+" "'$-" "'$." "'$/" "'$:" "'$<" "'$=" "'$>" "'$?" "'$@" "'$^" "'$_" "'$~" "'%9" "'%a" "'%A" "'%!" "'%$" "'%%" "'%&" "'%*" "'%+" "'%-" "'%." "'%/" "'%:" "'%<" "'%=" "'%>" "'%?" "'%@" "'%^" "'%_" "'%~" "'&9" "'&a" "'&A" "'&!" "'&$" "'&%" "'&&" "'&*" "'&+" "'&-" "'&." "'&/" "'&:" "'&<" "'&=" "'&>" "'&?" "'&@" "'&^" "'&_" "'&~" "'*9" "'*a" "'*A" "'*!" "'*$" "'*%" "'*&" "'**" "'*+" "'*-" "'*." "'*/" "'*:" "'*<" "'*=" "'*>" "'*?" "'*@" "'*^" "'*_" "'*~" "'/9" "'/a" "'/A" "'/!" "'/$" "'/%" "'/&" "'/*" "'/+" "'/-" "'/." "'//" "'/:" "'/<" "'/=" "'/>" "'/?" "'/@" "'/^" "'/_" "'/~" "':9" "':a" "':A" "':!" "':$" "':%" "':&" "':*" "':+" "':-" "':." "':/" "'::" "':<" "':=" "':>" "':?" "':@" "':^" "':_" "':~" "'<9" "'" "'" "'=?" "'=@" "'=^" "'=_" "'=~" "'>9" "'>a" "'>A" "'>!" "'>$" "'>%" "'>&" "'>*" "'>+" "'>-" "'>." "'>/" "'>:" "'><" "'>=" "'>>" "'>?" "'>@" "'>^" "'>_" "'>~" "'?9" "'?a" "'?A" "'?!" "'?$" "'?%" "'?&" "'?*" "'?+" "'?-" "'?." "'?/" "'?:" "'?<" "'?=" "'?>" "'??" "'?@" "'?^" "'?_" "'?~" "'^9" "'^a" "'^A" "'^!" "'^$" "'^%" "'^&" "'^*" "'^+" "'^-" "'^." "'^/" "'^:" "'^<" "'^=" "'^>" "'^?" "'^@" "'^^" "'^_" "'^~" "'_9" "'_a" "'_A" "'_!" "'_$" "'_%" "'_&" "'_*" "'_+" "'_-" "'_." "'_/" "'_:" "'_<" "'_=" "'_>" "'_?" "'_@" "'_^" "'__" "'_~" "'~9" "'~a" "'~A" "'~!" "'~$" "'~%" "'~&" "'~*" "'~+" "'~-" "'~." "'~/" "'~:" "'~<" "'~=" "'~>" "'~?" "'~@" "'~^" "'~_" "'~~")) ;(let ((initial-chars "aA!$%&*/:<=>?^_~") ; (subsequent-chars "9aA!$%&*+-./:<=>?@^_~")) ; (do ((i 0 (+ i 1))) ; ((= i (string-length initial-chars))) ; (do ((k 0 (+ k 1))) ; ((= k (string-length subsequent-chars))) ; (format #t "'~A " (string (string-ref initial-chars i) (string-ref subsequent-chars k)))))) (for-each (lambda (z) (test-assert (format #f "~A is zero" z) (zero? z)) (test-assert (format #f "~A is not positive" z) (not (and (real? z) (positive? z)))) (test-assert (format #f "~A is not negative" z) (not (and (real? z) (negative? z))))) '(0 -0 +0 0.0 -0.0 +0.0 0/1 -0/1 +0/24 0+0i 0-0i -0-0i +0-0i 0.0-0.0i -0.0+0i #b0 #o-0 #x000 #e0 #e0.0 #e#b0 #b#e0 #e0/1 #b+0 #d000/1111 000/111)) (for-each (lambda (x) (test-assert (format #f ";(string->number ~A) returned ~A" x (string->number x)) (not (string->number x)))) '("" "q" "1q" "6+7iq" "8+9q" "10+11" "13+" "18@19q" "20@q" "23@" "+25iq" "26i" "-q" "-iq" "i" "5#.0" "8/" "10#11" ".#" "." "3.4q" "15.16e17q" "18.19e+q" ".q" ".17#18" "10q" "#b2" "#b12" "#b-12" "#b3" "#b4" "#b5" "#b6" "#b7" "#b8" "#b9" "#ba" "#bb" "#bc" "#bd" "#be" "#bf" "#q" "#b#b1" "#o#o1" "#d#d1" "#x#x1" "#e#e1" "#xag" "#x1x" "#o8" "#o9" "1/#e1" "#o#" "#e#i1" "#d--2" "#b#x1" "#i#x#b1" "#e#e#b1" "#e#b#b1" "-#b1" "+#b1" "#b1/#b2" "#b1+#b1i" "1+#bi" "1+#b1i" "1#be1" "#b" "#o" "#" "#ea" "#e1a" "1+ie1" "1+i1" "1e+1i" "#e#b" "#b#b" "#b#b1" "1e3e4" "1.0e-3e+4" "1e3s" "1e3s3" "#o#x1" "#i#i1" "1e-i" "#be1" "1/i" "1/e1" "1+e1" "1e+" "1e1+" "1e1e1" "1e-+1" "1e0x1" "1e-" "1/#o2" "#i#i1" "12@12+0i")) (for-each (lambda (couple) (apply (lambda (x y) (let ((xx (string->number x))) (test-assert (format #f ";(string->number ~A) returned ~A, should be ~A (~A ~A ~A ~A)" x (string->number x) y xx (eq? xx #f) (if (and xx y) (and (rational? y) (not (eqv? xx y))) #f) (if (and xx y) (abs (- xx y)) #f)) (not (or (not xx) (not y) (and (rational? y) (not (eqv? xx y))) (> (abs (- xx y)) 1e-12)))))) couple)) '( ("#b0" 0) ("#b1" 1) ("#o0" 0) ("#b-1" -1) ("#b+1" 1) ("#o1" 1) ("#o2" 2) ("#o3" 3) ("#o-1" -1) ("#o4" 4) ("#o5" 5) ("#o6" 6) ("#o7" 7) ("#d0" 0) ("#d1" 1) ("#d2" 2) ("#d3" 3) ("#d4" 4) ("#d5" 5) ("#d6" 6) ("#d7" 7) ("#d-123" -123) ("#d+123" 123) ("#d8" 8) ("#d9" 9) ("#xa" 10) ("#xb" 11) ("#x-1" -1) ("#x-a" -10) ("#xc" 12) ("#xd" 13) ("#xe" 14) ("#xf" 15) ("#x-abc" -2748) ("#b1010" 10) ("#o12345670" 2739128) ("#d1234567890" 1234567890) ("#x1234567890abcdef" 1311768467294899695) ("#e1" 1) ("#e1.2" 12/10) ("#i1.1" 1.1) ("#i1" 1.0) ("1" 1) ("23" 23) ("-1" -1) ("-45" -45) ;("2#" 20.0) ("2##" 200.0) ("12##" 1200.0) ; this # = 0 is about the stupidest thing I've ever seen ("#b#i100" 4.0) ("#b#e100" 4) ("#i#b100" 4.0) ("#e#b100" 4) ("#b#i-100" -4.0) ("#b#e+100" 4) ("#i#b-100" -4.0) ("#e#b+100" 4) ("#o#i100" 64.0) ("#o#e100" 64) ("#i#o100" 64.0) ("#e#o100" 64) ("#d#i100" 100.0) ("#d#e100" 100) ("#i#d100" 100.0) ("#e#d100" 100) ("#x#i100" 256.0) ("#x#e100" 256) ("#i#x100" 256.0) ("#e#x100" 256) ("#e#xee" 238) ("#e#x1e1" 481) ("#xA" 10) ("#xB" 11) ("#x-1" -1) ("#x-A" -10) ("#xC" 12) ("#xD" 13) ("#xE" 14) ("#xF" 15) ("#x-ABC" -2748) ("#xaBC" 2748) ("#xAbC" 2748) ("#xabC" 2748) ("#xABc" 2748) ("1/1" 1) ("1/2" 1/2) ("-1/2" -1/2) ("#e9/10" 9/10) ("#i6/8" 0.75) ("#i1/1" 1.0) ("1e2" 100.0) ("1e+2" 100.0) ("1e-2" 0.01) (".1" .1) (".0123456789" 123456789e-10) (".0123456789e10" 123456789.0) ("3." 3.0) ("3.e0" 3.0) ("1+i" 1+1i) ("1-i" 1-1i) ("#e1e1" 10) ("#i1e1+i" 10.0+1.0i) )) ;;; some schemes are case insensitive throughout -- they accept 0+I, #X11 etc (for-each (lambda (arg) (test-error (format #f "(string->number ~A) is an error" arg) (string->number arg))) (list -1 #f #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi abs '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) (for-each (lambda (arg) (test-error (format #f "(string->number \"123\" ~A)" arg) (string->number "123" arg)) (test-error (format #f "(string->number \"1\" ~A)" arg) (string->number "1" arg))) (list -1 0 1 #;17 37 #f #\a '#(1 2 3) 3.14 3/4 1.5+0.3i 1+i '() "" "12" '#() #:hi most-positive-fixnum most-negative-fixnum 'hi abs '#(()) (list 1 2 3) '(1 . 2) (lambda () 1) )) ;; (string->number "0" 1) ?? why not? (for-each (lambda (arg) (test-error (format #f "(number->string ~A)" arg) (number->string arg))) (list #\a '#(1 2 3) '() 'hi abs "hi" '#(()) #f (list 1 2 3) '(1 . 2) (lambda () 1))) (for-each (lambda (arg) (test-error (format #f "(number->string 123 ~A)" arg) (number->string 123 arg))) (list -1 17 most-positive-fixnum most-negative-fixnum 0 1 512 #\a #f '#(1 2 3) 3.14 2/3 1.5+0.3i 1+i '() 'hi abs "hi" '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) (s7-test (string->number "34.1" (+ 5 (expt 2 32))) 'error) (s7-test (number->string 34.1 (+ 5 (expt 2 32))) 'error) (s7-test (string->number) 'error) (s7-test (string->number 'symbol) 'error) (s7-test (string->number "1.0" "1.0") 'error) (s7-test (number->string) 'error) (s7-test (number->string "hi") 'error) (s7-test (number->string 1.0+23.0i 1.0+23.0i 1.0+23.0i) 'error) (s7-test (string->number "") #f) (s7-test (string->number "" 8) #f) (s7-test (string->number (make-string 0)) #f) (s7-test (string->number (string #\nul)) #f) (s7-test (string->number (string)) #f) (s7-test (string->number (substring "hi" 0 0)) #f) (s7-test (string->number (string (integer->char 30))) #f) ;(s7-test (string->number "123" 10+0i) 'error) ; a real in s7 (s7-test (string->number "123" 10+0i) 123) (s7-test (number->string -46116860184273879035/27670116110564327424) "-46116860184273879035/27670116110564327424") (s7-test (number->string 123 (bignum "10")) "123") (s7-test (number->string 123 (bignum "2")) "1111011") (s7-test (string->number "123" (bignum "10")) 123) (s7-test (string->number "1111011" (bignum "2")) 123) (s7-test (number->string 123 (bignum "17")) 'error) (s7-test (number->string 123 (bignum "-1")) 'error) (s7-test (number->string 123 (bignum "1")) 'error) (s7-test (number->string 123 (bignum "1/2")) 'error) ;(s7-test (string->number "101" (bignum "17")) 'error) (s7-test (string->number "101" (bignum "17")) 290) (s7-test (string->number "101" (bignum "1")) 'error) (s7-test (string->number "101" (bignum "-1")) 'error) (s7-test (string->number "101" (bignum "1/2")) 'error) (num-test (- (string->number "1188077266484631001.") (string->number "1.188077266484631001E18")) 0.0) (num-test (- (string->number "1188077266484631001." 10) (string->number "1.188077266484631001E18" 10)) 0.0) (num-test (- (string->number "118807726648463100.1" 10) (string->number "1.188077266484631001E17" 10)) 0.0) (num-test (- (string->number "11880772664.84631001" 10) (string->number "1.188077266484631001E10" 10)) 0.0) (num-test (- (string->number "11880772.66484631001" 10) (string->number "1.188077266484631001E7" 10)) 0.0) ;(num-test (- (string->number "118807726648463100100." 9) (string->number "1.188077266484631001E20" 9)) 0.0) ;(num-test (- (string->number "1188077266484631001." 9) (string->number "1.188077266484631001E18" 9)) 0.0) ;(num-test (- (string->number "118807726648463100.1" 9) (string->number "1.188077266484631001E17" 9)) 0.0) ;(num-test (- (string->number "11880772664.84631001" 9) (string->number "1.188077266484631001E10" 9)) 0.0) ;(num-test (- (string->number "11880772.66484631001" 9) (string->number "1.188077266484631001E7" 9)) 0.0) ;; (num-test (- (string->number "1177077266474631001000." 8) (string->number "1.177077266474631001E21" 8)) 0.0) ;; a fake unfortunately (num-test 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111e-300 1.111111111111111111111111111111111111113E-1) (num-test 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e300 1.0) (num-test 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e309 1.0) (num-test 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123e309 1.23) (num-test -.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456e312 -1234.56) (num-test (string->number "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111e-300") 1.111111111111111111111111111111111111113E-1) (num-test (string->number "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e300") 1.0) (num-test (string->number "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e309") 1.0) (num-test (string->number "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123e309") 1.23) (num-test (string->number "-.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456e312") -1234.56) (num-test #e0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e300 1) (num-test #e0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e309 1) (num-test #e0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123e309 123/100) (num-test #e-.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456e314 -123456) ;(num-test #b0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e300 1.0) (num-test #d0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e300 1.0) ;(num-test #o0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e300 1.0) ;(num-test #x0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e300 1.0) (num-test 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e600 10.0) (num-test 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-300 1.0) (num-test 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309 1.0) (num-test -1234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309 -1.234) (num-test (string->number "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-300") 1.0) (num-test (string->number "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309") 1.0) (num-test (string->number "-1234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309") -1.234) (num-test #e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-300 1) (num-test #e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309 1) (num-test #e-1234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309 -617/500) (num-test 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-300 1.0) (num-test #e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-300 1) (num-test (string->number "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-300") 1.0) (num-test 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309 1.0) (num-test #e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309 1) (num-test (string->number "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-309") 1.0) (num-test (string->number "7218817.36503571385593731949749063134519967478471341285646368059547752954588980538968510599079437e7") 7.218817365035713855937319497490631345183E13) (s7-test (string->number "-25708892.1b6583269007366320788640bb79398b32ac2" 12) #f) (num-test (string->number "1.0e0000000000000000000000000000000000001") 10.0) (num-test #e1.0e0000000000000000000000000000000000001 10) (num-test #e1.0e-0000000000000000000000000000000000001 1/10) (num-test 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 10.0) (num-test #e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 10) (num-test (string->number "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001") 10.0) ;;; this whitespace handling only works in string constants in s7, not in arbitrary code. (num-test 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 1) (num-test (string->number "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001") 1) (num-test #i00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 1.0) (test-end "string->number/number->string") (test-end "s7 numbers test")