;;; R5RS test suite ;;; ;;; sources include ;;; clisp 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 ;;; gambit test suite ;;; sacla test suite ;;; Kent Dybvig's "The Scheme Programming Language" ;;; Brad Lucier (who also pointed out many bugs) ;;; numtst.c ;;; 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" ;;; various mailing lists and websites (see individual cases below) (define with-bignums (provided? 'gmp)) ; scheme integer has any number of bits (define with-bigfloats (provided? 'gmp)) ; scheme real has any number of bits (define with-bignum-function (defined? 'bignum)) ; this is a function that turns its string arg into a bignum (define with-64-bit-ints #t) ; scheme integer has at least 64 bits (define with-hyperbolic-functions #t) ; sinh et al (define with-char-ops-with-more-than-2-args #t) ; charsymbol etc (define with-gensym #t) ; gensym with optional string arg (prefix) (define with-format #t) ; simple format tests (define with-define* #t) ; this tests s7's version of define* (define with-procedure-arity #t) ; procedure-arity and other s7-specific stuff (define with-error-data #f) ; collect numerical error info and report at end (define with-the-bug-finding-machine #t) ; run the machine (this variable can be set to the number of tries) ; the default number of tries is 10000 ; the machine needs format and random (define with-error-checks #t) ; include checks for bad arg types etc (define with-large-powers #t) ; for Gauche (define with-rationalize #t) ; test rationalize (define with-full-fledged-random #t) ; random exists and can take any kind of numeric args, also make-random-state (define with-sort! #t) ; sort! exists for both lists and vectors (needs random) (define with-generic-length #t) ; length accepts things other than lists (define with-vector-for-each #t) ; vector-for-each and vector-map are defined (define our-pi 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930382) ;;; -------------------------------------------------------------------------------- ; we're assuming call/cc is defined ; (define call/cc call-with-current-continuation) ; we also assume there's a "catch" macro trapping all errors ; if you're not expecting any errors, catch can be: ; (define (catch tag l1 l2) (l1)) (if (and (defined? 'current-time) ; in Snd (defined? 'mus-rand-seed)) (set! (mus-rand-seed) (current-time))) (define (ok? tst result expected) (if (not (equal? result expected)) (begin (display tst) (display " got ") (display result) (display " but expected ") (display expected) (newline) (newline) ))) (defmacro test (tst expected) ;(display tst) (newline) `(let ((result (catch #t (lambda () ,tst) (lambda args 'error)))) (ok? ',tst result ,expected))) ;;; the error limits below are pretty expansive in some cases, so with-error-data ;;; tries to keep a record of the worst case error for each operator. error-data ;;; is a list: '(#(op worst-error worst-error-case) ...). (define error-data '()) (define (op-error op result expected) (define (conjugate n) (make-rectangular (real-part n) (- (imag-part n)))) (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))))))) (define (check-error tst result expected) (if (and (number? result) (number? expected)) (let ((err (op-error (car tst) result expected))) (if (> err 0.0) (letrec ((find-if (lambda (pred l) (cond ((null? l) #f) ((pred (car l)) (car l)) (else (find-if pred (cdr l))))))) (let* ((op (car tst)) (err-op (find-if (lambda (n) (eq? op (vector-ref n 0))) error-data))) (if err-op (if (> err (vector-ref err-op 1)) (begin (vector-set! err-op 1 err) (vector-set! err-op 2 tst) (vector-set! err-op 3 result) (vector-set! err-op 4 expected))) (set! error-data (cons (vector op err tst result expected) error-data))))))))) (define (types-consistent? n) (not (or (and (integer? n) (or (not (= (denominator n) 1)) (not (= n (numerator n))) (not (= (imag-part n) 0)) (not (= (floor n) (ceiling n) (truncate n) (round n) n)) (not (= n (real-part n))))) (and (rational? n) (not (integer? n)) (or (not (= (imag-part n) 0)) (= (denominator n) 1) (= (denominator n) 0) (not (= n (real-part n))) (not (= n (/ (numerator n) (denominator n)))))) (and (real? n) (not (rational? n)) (or (not (= (imag-part n) 0)) (not (= n (real-part n))))) (and (complex? n) (not (real? n)) (or (= (imag-part n) 0) (not (= n (+ (real-part n) (* 0+i (imag-part n)))))))))) (define (our-nan? x) (or (and (real? x) (not (= 1 (+ (if (positive? x) 1 0) (if (negative? x) 1 0) (if (zero? x) 1 0))))) (and (integer? x) (not (= 1 (+ (if (even? x) 1 0) (if (odd? x) 1 0))))) (not (= 1 (+ (if (zero? x) 1 0) (if (> (magnitude x) 0) 1 0)))) (let ((type (+ (if (integer? x) 1 0) (if (rational? x) 2 0) (if (real? x) 4 0) (if (complex? x) 8 0)))) (and (not (= type 8)) (not (= type 12)) (not (= type 14)) (not (= type 15)))) (not (zero? (- x x))))) ; inf probably (define (number-ok? tst result expected) (if (and with-error-data (number? result) (number? expected)) (check-error tst result expected)) ;; (number? +nan.0) returns #t in Guile and Gauche -- this strikes me as perverse (if (not (eq? result expected)) (if (or (and (not (number? expected)) (not (eq? result expected))) (and (number? expected) (or (not (number? result)) (our-nan? result))) (and (rational? expected) (exact? expected) (rational? result) (exact? result) (not (= result expected))) (and (or (and (rational? expected) (exact? expected)) (and (rational? result) (exact? result))) (real? expected) (real? result) (> (abs (- result expected)) 1.0e-12)) (> (op-error (car tst) result expected) 1.0e-6) (and (number? result) (not (types-consistent? result)))) (begin (display tst) (display " got ") (display result) (if (and (rational? result) (not (rational? expected))) (begin (display " (") (display (exact->inexact result)) (display ")" ))) (display " but expected ") (display expected) (if (defined? 'format) (begin (if (and (not (number? expected)) (not (eq? result expected))) (format #t ", (eq? ~A ~A) -> #f" result expected) (if (and (number? expected) (or (not (number? result)) (our-nan? result))) (begin (if (not (number? result)) (format #t ", (number? ~A) but not (number? ~A)" expected result) (format #t ", (number? ~A) but (nan? ~A)" expected result))) (if (and (rational? expected) (exact? expected) (rational? result) (exact? result) (not (= result expected))) (format #t ", exact results but not (= ~A ~A): ~A" expected result (= result expected)) (if (and (or (and (rational? expected) (exact? expected)) (and (rational? result) (exact? result))) (real? expected) (real? result) (> (abs (- result expected)) 1.0e-12)) (format #t ", rational results but diff > 1e-12: ~A" (> (abs (- result expected)) 1.0e-12)) (if (< (op-error (car tst) result expected) 1.0e-6) (let ((n result)) (format #t ", result not internally consistent") (if (and (integer? n) (or (not (= (denominator n) 1)) (not (= n (numerator n))) (not (= (imag-part n) 0)) (not (= (floor n) (ceiling n) (truncate n) (round n) n)) (not (= n (real-part n))))) (format #t ", ~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 (= (imag-part n) 0)) (= (denominator n) 1) (= (denominator n) 0) (not (= n (real-part n))) (not (= n (/ (numerator n) (denominator n)))))) (format #t ", ~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) (exact->inexact (/ (numerator n) (denominator n)))) (if (and (real? n) (not (rational? n)) (or (not (= (imag-part n) 0)) (not (= n (real-part n))))) (format #t ", ~A real but rational: ~A, imag: ~A, real: ~A" n (rational? n) (imag-part n) (real-part n)) (format #t ", ~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))))))))))))))) (newline) (newline))))) (defmacro num-test (tst expected) ;(display tst) (newline) `(let ((result (catch #t (lambda () ,tst) (lambda args 'error)))) (number-ok? ',tst result ,expected) (if with-bignum-function (letrec ((bigify (lambda (lst) (if (pair? lst) (cons (if (number? (car lst)) (list 'bignum (number->string (car lst))) (bigify (car lst))) (bigify (cdr lst))) lst)))) (let* ((big-test (bigify ',tst))) (let ((big-result (catch #t (lambda () (eval big-test)) (lambda args 'error)))) (number-ok? big-test big-result ,expected))) )))) ;;; -------------------------------------------------------------------------------- ;;; GENERIC STUFF ;;; -------------------------------------------------------------------------------- (test (eq? 'a 3) #f) (test (eq? #t 't) #f) (test (eq? "abs" 'abc) #f) (test (eq? "hi" '(hi)) #f) (test (eq? "()" '()) #f) (test (eq? #\a #\b) #f) (test (eq? #t #t) #t) (test (eq? #f #f) #t) (test (eq? #f #t) #f) (test (eq? (null? '()) #t) #t) (test (eq? (null? '(a)) #f) #t) (test (eq? (cdr '(a)) '()) #t) (test (eq? 'a 'a) #t) (test (eq? 'a 'b) #f) (test (eq? 'a (string->symbol "a")) #t) (test (eq? '(a) '(b)) #f) (test (let ((x '(a . b))) (eq? x x)) #t) (test (let ((x (cons 'a 'b))) (eq? x x)) #t) (test (eq? (cons 'a 'b) (cons 'a 'b)) #f) (test (eq? "abc" "cba") #f) (test (let ((x "hi")) (eq? x x)) #t) (test (eq? (string #\h #\i) (string #\h #\i)) #f) (test (eq? '#(a) '#(b)) #f) (test (let ((x (vector 'a))) (eq? x x)) #t) (test (eq? (vector 'a) (vector 'a)) #f) (test (eq? car car) #t) (test (eq? car cdr) #f) (test (let ((x (lambda () 1))) (eq? x x)) #t) (test (eq? 'abc 'abc) #t) (test (eq? eq? eq?) #t) (test (eq? (if #f 1) 1) #f) ;(test (eq? call/cc call-with-current-continuation) #t) ; guile accepts (eq? #t #t #t) (test (eq? 3/4 3) #f) (test (eq? '() '()) #t) (test (eq? '() (list)) #t) (let ((things (vector #t #f #\space '() "" 0 1 3/4 1+i 1.5 '(1 .2) '#() (vector) (vector 1) (list 1) 'f 't #\t))) (do ((i 0 (+ i 1))) ((= i (- (vector-length things) 1))) (do ((j (+ i 1) (+ j 1))) ((= j (vector-length things))) (if (eq? (vector-ref things i) (vector-ref things j)) (begin (display "(eq? ") (display (vector-ref things i)) (display " ") (display (vector-ref things j)) (display ") -> #t?") (newline)))))) (test (eqv? 'a 3) #f) (test (eqv? #t 't) #f) (test (eqv? "abs" 'abc) #f) (test (eqv? "hi" '(hi)) #f) (test (eqv? "()" '()) #f) (test (eqv? #\a #\b) #f) (test (eqv? #\a #\a) #t) (test (let ((x (string-ref "hi" 0))) (eqv? x x)) #t) (test (eqv? #t #t) #t) (test (eqv? #f #f) #t) (test (eqv? #f #t) #f) (test (eqv? (null? '()) #t) #t) (test (eqv? (null? '(a)) #f) #t) (test (eqv? (cdr '(a)) '()) #t) (test (eqv? 'a 'a) #t) (test (eqv? 'a 'b) #f) (test (eqv? 'a (string->symbol "a")) #t) (test (eqv? '(a) '(b)) #f) (test (let ((x '(a . b))) (eqv? x x)) #t) (test (let ((x (cons 'a 'b))) (eqv? x x)) #t) (test (eqv? (cons 'a 'b) (cons 'a 'b)) #f) (test (eqv? "abc" "cba") #f) (test (let ((x "hi")) (eqv? x x)) #t) (test (eqv? (string #\h #\i) (string #\h #\i)) #f) (test (eqv? '#(a) '#(b)) #f) (test (let ((x (vector 'a))) (eqv? x x)) #t) (test (eqv? (vector 'a) (vector 'a)) #f) (test (eqv? car car) #t) (test (eqv? car cdr) #f) (test (let ((x (lambda () 1))) (eqv? x x)) #t) (test (eqv? 9/2 9/2) #t) ;(test (eqv? 3.4 (+ 3.0 0.4)) #t) ; can be fooled (test (let ((x 3.141)) (eqv? x x)) #t) (test (eqv? (cons 'a 'b) (cons 'a 'c)) #f) (test (eqv? eqv? eqv?) #t) ;(test (let ((quote -)) (eqv? '1 1)) #f) (test (eqv? '#(1) '#(1)) #f) (test (eqv? '(1) '(1)) #f) (test (eqv? '() '()) #t) (test (eqv? '() (list)) #t) (let ((things (vector #t #f #\space '() "" 0 1 3/4 1+i 1.5 '(1 .2) '#() (vector) (vector 1) (list 1) 'f 't #\t))) (do ((i 0 (+ i 1))) ((= i (- (vector-length things) 1))) (do ((j (+ i 1) (+ j 1))) ((= j (vector-length things))) (if (eqv? (vector-ref things i) (vector-ref things j)) (begin (display "(eqv? ") (display (vector-ref things i)) (display " ") (display (vector-ref things j)) (display ") -> #t?") (newline)))))) (test (equal? 'a 3) #f) (test (equal? #t 't) #f) (test (equal? "abs" 'abc) #f) (test (equal? "hi" '(hi)) #f) (test (equal? "()" '()) #f) (test (equal? '(()) '(() . ())) #t) (test (equal? #\a #\b) #f) (test (equal? #\a #\a) #t) (test (let ((x (string-ref "hi" 0))) (equal? x x)) #t) (test (equal? #t #t) #t) (test (equal? #f #f) #t) (test (equal? #f #t) #f) (test (equal? (null? '()) #t) #t) (test (equal? (null? '(a)) #f) #t) (test (equal? (cdr '(a)) '()) #t) (test (equal? 'a 'a) #t) (test (equal? 'a 'b) #f) (test (equal? 'a (string->symbol "a")) #t) (test (equal? '(a) '(b)) #f) (test (equal? '(a) '(a)) #t) (test (let ((x '(a . b))) (equal? x x)) #t) (test (let ((x (cons 'a 'b))) (equal? x x)) #t) (test (equal? (cons 'a 'b) (cons 'a 'b)) #t) (test (equal? "abc" "cba") #f) (test (equal? "abc" "abc") #t) (test (let ((x "hi")) (equal? x x)) #t) (test (equal? (string #\h #\i) (string #\h #\i)) #t) (test (equal? '#(a) '#(b)) #f) (test (equal? '#(a) '#(a)) #t) (test (let ((x (vector 'a))) (equal? x x)) #t) (test (equal? (vector 'a) (vector 'a)) #t) (test (equal? '#(1 2) (vector 1 2)) #t) (test (equal? '#(1.0 2/3) (vector 1.0 2/3)) #t) (test (equal? '#(1 2) (vector 1 2.0)) #f) ; 2 not equal 2.0! (test (equal? '(1 . 2) (cons 1 2)) #t) (test (equal? '#(1 "hi" #\a) (vector 1 "hi" #\a)) #t) (test (equal? '#((1 . 2)) (vector (cons 1 2))) #t) (test (equal? '#(1 "hi" #\a (1 . 2)) (vector 1 "hi" #\a (cons 1 2))) #t) (test (equal? '#(#f hi (1 2) 1 "hi" #\a (1 . 2)) (vector #f 'hi (list 1 2) 1 "hi" #\a (cons 1 2))) #t) (test (equal? '#(#(1) #(1)) (vector (vector 1) (vector 1))) #t) (test (equal? '#(()) (vector '())) #t) (test (equal? '#("hi" "ho") (vector "hi" '"ho")) #t) (test (equal? (list 1 "hi" #\a) '(1 "hi" #\a)) #t) (test (equal? (list 1.0 2/3) '(1.0 2/3)) #t) (test (equal? (list 1 2) '(1 2.0)) #f) (test (equal? '#(1.0+1.0i) (vector 1.0+1.0i)) #t) (test (equal? (list 1.0+1.0i) '(1.0+1.0i)) #t) (test (equal? '((())) (list (list (list)))) #t) (test (equal? car car) #t) (test (equal? car cdr) #f) (test (let ((x (lambda () 1))) (equal? x x)) #t) (test (equal? 9/2 9/2) #t) ;(test (equal? 3.4 (+ 3.0 0.4)) #t) (test (let ((x 3.141)) (equal? x x)) #t) (test (equal? 3 3) #t) (test (equal? 3 3.0) #f) (test (equal? 3.0 3.0) #t) (test (equal? 3-4i 3-4i) #t) (test (equal? (string #\c) "c") #t) (test (equal? equal? equal?) #t) (test (equal? (cons 1 (cons 2 3)) '(1 2 . 3)) #t) (test (equal? '() '()) #t) (test (equal? '() (list)) #t) (test (equal? "asd""asd") #t) ; is this the norm? (let ((streq (lambda (a b) (equal? a b)))) (test (streq "asd""asd") #t)) (let ((things (vector #t #f #\space '() "" 0 1 3/4 1+i 1.5 '(1 .2) '#() (vector 1) (list 1) 'f 't #\t))) (do ((i 0 (+ i 1))) ((= i (- (vector-length things) 1))) (do ((j (+ i 1) (+ j 1))) ((= j (vector-length things))) (if (equal? (vector-ref things i) (vector-ref things j)) (begin (display "(equal? ") (display (vector-ref things i)) (display " ") (display (vector-ref things j)) (display ") -> #t?") (newline)))))) (test (boolean? #f) #t) (test (boolean? #t) #t) (test (boolean? 0) #f) (test (boolean? 1) #f) (test (boolean? "") #f) (test (boolean? #\0) #f) (test (boolean? '()) #f) (test (boolean? '#()) #f) (test (boolean? 't) #f) (test (boolean? (list)) #f) (for-each (lambda (arg) (if (boolean? arg) (begin (display "(boolean? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) 1 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f (lambda (a) (+ a 1)))) (test (not #f) #t) (test (not #t) #f) (test (not (not #t)) #t) (test (not 0) #f) (test (not 1) #f) (test (not '()) #f) (test (not 't) #f) (test (not (list)) #f) (test (not (list 3)) #f) (test (not 'nil) #f) (test (not not) #f) (for-each (lambda (arg) (if (not arg) (begin (display "(not ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) 1 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f (lambda (a) (+ a 1)))) (test (symbol? 't) #t) (test (symbol? "t") #f) (test (symbol? '(t)) #f) (test (symbol? #t) #f) (test (symbol? 4) #f) (test (symbol? 'foo) #t) (test (symbol? (car '(a b))) #t) (test (symbol? 'nil) #t) (test (symbol? '()) #f) (test (symbol? #f) #f) (test (symbol? 'car) #t) (test (symbol? '#f) #f) (test (symbol? 'sym0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789) #t) ;M Gran (test (symbol? (vector-ref '#(1 a 34) 1)) #t) (for-each (lambda (arg) (if (symbol? arg) (begin (display "(symbol? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) 1 (list 1 2) '#t '3 (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f (lambda (a) (+ a 1)))) (test (procedure? car) #t) (test (procedure? procedure?) #t) (test (procedure? 'car) #f) (test (procedure? (lambda (x) x)) #t) (test (procedure? '(lambda (x) x)) #f) (test (call/cc procedure?) #t) ; ?? (test (let ((a (lambda (x) x))) (procedure? a)) #t) (test (letrec ((a (lambda () (procedure? a)))) (a)) #t) (test (let ((a 1)) (let ((a (lambda () (procedure? a)))) (a))) #f) (for-each (lambda (arg) (if (procedure? arg) (begin (display "(procedure? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) 1 (list 1 2) '#t '3 (make-vector 3) 3.14 3/4 1.0+1.0i #\f)) ;;; -------------------------------------------------------------------------------- ;;; CHARACTERS ;;; -------------------------------------------------------------------------------- (test (eqv? '#\ #\space) #t) (test (eqv? #\space '#\space) #t) (test (char? #\a) #t) (test (char? #\() #t) (test (char? #\space) #t) (test (char? '#\newline) #t) (test (char? #\1) #t) (test (char? #\$) #t) (test (char? #\.) #t) (test (char? #\\) #t) (test (char? #\)) #t) (test (char? #\%) #t) (test (char? '#\space) #t) (test (char? '#\ ) #t) (test (char? '#\newline) #t) (test (char? '#\a) #t) (test (char? '#\8) #t) (test (char? #\-) #t) (test (char? #\n) #t) (test (char? #\() #t) (test (char? #e1) #f) (test (char? #\#) #t) (test (char? #\x) #t) (test (char? #\o) #t) (test (char? #\b) #t) (test (char? #b101) #f) (test (char? #o73) #f) (test (char? #x73) #f) (test (char? 'a) #f) (test (char? 97) #f) (test (char? "a") #f) (test (char? (string-ref "hi" 0)) #t) (test (char? (string-ref (make-string 1) 0)) #t) (test (char? #\") #t) (test (char? #\') #t) (test (char? #\`) #t) (test (char? #\@) #t) (for-each (lambda (arg) (if (char? arg) (begin (display "(char? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #f #t (lambda (a) (+ a 1)))) (do ((i 0 (+ i 1))) ((= i 256)) (if (not (char? (integer->char i))) (begin (display "(char? (integer->char ") (display i) (display ")) returned #f?") (newline)))) (num-test (let ((str (make-string 258 #\space))) (do ((i 1 (+ i 1))) ((= i 256)) (string-set! str i (integer->char i))) (string-set! str 257 (integer->char 0)) (string-length str)) 258) (let ((a-to-z (list #\a #\b #\c #\d #\e #\f #\g #\h #\i #\j #\k #\l #\m #\n #\o #\p #\q #\r #\s #\t #\u #\v #\x #\y #\z)) (cap-a-to-z (list #\A #\B #\C #\D #\E #\F #\G #\H #\I #\J #\K #\L #\M #\N #\O #\P #\Q #\R #\S #\T #\U #\V #\X #\Y #\Z)) (mixed-a-to-z (list #\a #\B #\c #\D #\e #\F #\g #\H #\I #\j #\K #\L #\m #\n #\O #\p #\Q #\R #\s #\t #\U #\v #\X #\y #\Z)) (digits (list #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9))) (test (char-upper-case? #\a) #f) (test (char-upper-case? #\A) #t) (for-each (lambda (arg) (if (not (char-upper-case? arg)) (begin (display "(char-upper-case? ") (display arg) (display ") returned #f?") (newline)))) cap-a-to-z) (for-each (lambda (arg) (if (char-upper-case? arg) (begin (display "(char-upper-case? ") (display arg) (display ") returned #t?") (newline)))) a-to-z) ;; non-alpha chars are "unspecified" here (test (char-lower-case? #\A) #f) (test (char-lower-case? #\a) #t) (for-each (lambda (arg) (if (not (char-lower-case? arg)) (begin (display "(char-lower-case? ") (display arg) (display ") returned #f?") (newline)))) a-to-z) (for-each (lambda (arg) (if (char-lower-case? arg) (begin (display "(char-lower-case? ") (display arg) (display ") returned #t?") (newline)))) cap-a-to-z) (test (char-upcase #\A) #\A) (test (char-upcase #\a) #\A) (test (char-upcase #\?) #\?) (test (char-upcase #\$) #\$) (test (char-upcase #\.) #\.) (test (char-upcase #\\) #\\) (test (char-upcase #\5) #\5) (test (char-upcase #\)) #\)) (test (char-upcase #\%) #\%) (test (char-upcase #\0) #\0) (test (char-upcase #\_) #\_) (test (char-upcase #\space) #\space) (test (char-upcase #\newline) #\newline) (for-each (lambda (arg1 arg2) (if (not (char=? (char-upcase arg1) arg2)) (begin (display "(char-upcase ") (display arg1) (display ") returned ") (display arg2) (display "?") (newline)))) a-to-z cap-a-to-z) (do ((i 1 (+ i 1))) ((= i 128)) (if (and (not (char=? (integer->char i) (char-upcase (integer->char i)))) (not (char-alphabetic? (integer->char i)))) (begin (display "(char-upcase ") (display (integer->char i)) (display ") -> ") (display (integer->char i)) (display ", but not alphabetic?") (newline)))) (test (char-downcase #\A) #\a) (test (char-downcase #\a) #\a) (test (char-downcase #\?) #\?) (test (char-downcase #\$) #\$) (test (char-downcase #\.) #\.) (test (char-downcase #\_) #\_) (test (char-downcase #\\) #\\) (test (char-downcase #\5) #\5) (test (char-downcase #\)) #\)) (test (char-downcase #\%) #\%) (test (char-downcase #\0) #\0) (test (char-downcase #\space) #\space) (for-each (lambda (arg1 arg2) (if (not (char=? (char-downcase arg1) arg2)) (begin (display "(char-downcase ") (display arg1) (display ") returned ") (display arg2) (display "?") (newline)))) cap-a-to-z a-to-z) (test (char-numeric? #\a) #f) (test (char-numeric? #\5) #t) (test (char-numeric? #\A) #f) (test (char-numeric? #\z) #f) (test (char-numeric? #\Z) #f) (test (char-numeric? #\0) #t) (test (char-numeric? #\9) #t) (test (char-numeric? #\space) #f) (test (char-numeric? #\;) #f) (test (char-numeric? #\.) #f) (test (char-numeric? #\-) #f) (for-each (lambda (arg) (if (char-numeric? arg) (begin (display "(char-numeric? ") (display arg) (display ") returned #t?") (newline)))) cap-a-to-z) (for-each (lambda (arg) (if (char-numeric? arg) (begin (display "(char-numeric? ") (display arg) (display ") returned #t?") (newline)))) a-to-z) (test (char-whitespace? #\a) #f) (test (char-whitespace? #\A) #f) (test (char-whitespace? #\z) #f) (test (char-whitespace? #\Z) #f) (test (char-whitespace? #\0) #f) (test (char-whitespace? #\9) #f) (test (char-whitespace? #\space) #t) (test (char-whitespace? #\newline) #t) (test (char-whitespace? #\;) #f) (for-each (lambda (arg) (if (char-whitespace? arg) (begin (display "(char-whitespace? ") (display arg) (display ") returned #t?") (newline)))) mixed-a-to-z) (for-each (lambda (arg) (if (char-whitespace? arg) (begin (display "(char-whitespace? ") (display arg) (display ") returned #t?") (newline)))) digits) (test (char-alphabetic? #\a) #t) (test (char-alphabetic? #\$) #f) (test (char-alphabetic? #\A) #t) (test (char-alphabetic? #\z) #t) (test (char-alphabetic? #\Z) #t) (test (char-alphabetic? #\0) #f) (test (char-alphabetic? #\9) #f) (test (char-alphabetic? #\space) #f) (test (char-alphabetic? #\;) #f) (test (char-alphabetic? #\.) #f) (test (char-alphabetic? #\-) #f) (test (char-alphabetic? #\_) #f) (test (char-alphabetic? #\^) #f) (test (char-alphabetic? #\[) #f) (for-each (lambda (arg) (if (char-alphabetic? arg) (begin (display "(char-alphabetic? ") (display arg) (display ") returned #t?") (newline)))) digits) (for-each (lambda (arg) (if (not (char-alphabetic? arg)) (begin (display "(char-alphabetic? ") (display arg) (display ") returned #f?") (newline)))) mixed-a-to-z) (test (let ((unhappy '())) (do ((i 0 (+ i 1))) ((= i 256)) (let* ((ch (integer->char i)) (chu (char-upcase ch)) (chd (char-downcase ch))) (if (or (and (not (char=? ch chu)) (not (char=? ch (char-downcase chu)))) (and (not (char=? ch chd)) (not (char=? ch (char-upcase chd)))) (and (not (char=? ch chd)) (not (char=? ch chu))) (not (char-ci=? chu chd)) (not (char-ci=? ch chu)) (and (char-alphabetic? ch) (or (not (char-alphabetic? chd)) (not (char-alphabetic? chu)))) (and (char-numeric? ch) (or (not (char-numeric? chd)) (not (char-numeric? chu)))) (and (char-whitespace? ch) (or (not (char-whitespace? chd)) (not (char-whitespace? chu)))) (and (char-alphabetic? ch) (char-whitespace? ch)) (and (char-numeric? ch) (char-whitespace? ch)) (and (char-alphabetic? ch) (char-numeric? ch))) ;; there are characters that are alphabetic but the result of char-upcase is not an upper-case character ;; 223 for example, or 186 for lower case (set! unhappy (cons (format #f "~C: ~C ~C (~D)~%" ch chu chd i) unhappy))))) unhappy) '()) (test (char=? #\d #\d) #t) (test (char=? #\A #\a) #f) (test (char=? #\d #\x) #f) (test (char=? #\d #\D) #f) (test (char=? #\a #\a) #t) (test (char=? #\A #\B) #f) (test (char=? #\a #\b) #f) (test (char=? #\9 #\0) #f) (test (char=? #\A #\A) #t) (test (char=? #\ #\space) #t) (let ((i (char->integer #\space))) (test (char=? (integer->char i) #\space) #t)) (test (char=? (integer->char (char->integer #\")) #\") #t) (if with-char-ops-with-more-than-2-args (begin (test (char=? #\d #\d #\d #\d) #t) (test (char=? #\d #\d #\x #\d) #f) (test (char=? #\d #\y #\x #\c) #f) (test (apply char=? cap-a-to-z) #f) (test (apply char=? mixed-a-to-z) #f) (test (apply char=? digits) #f) (test (char=? #\d #\c #\d) #f))) (test (char? #\e #\d) #t) (test (char>? #\z #\a) #t) (test (char>? #\A #\B) #f) (test (char>? #\a #\b) #f) (test (char>? #\9 #\0) #t) (test (char>? #\A #\A) #f) (test (char>? #\space #\space) #f) (if with-char-ops-with-more-than-2-args (begin (test (char>? #\d #\c #\b #\a) #t) (test (char>? #\d #\d #\c #\a) #f) (test (char>? #\e #\d #\b #\c #\a) #f) (test (apply char>? a-to-z) #f) (test (apply char>? cap-a-to-z) #f) (test (apply char>? mixed-a-to-z) #f) (test (apply char>? digits) #f) (test (apply char>? (reverse a-to-z)) #t) (test (apply char>? (reverse cap-a-to-z)) #t) (test (apply char>? (reverse mixed-a-to-z)) #f) (test (apply char>? (reverse digits)) #t) (test (char>? #\d #\c #\a) #t) (test (char>? #\d #\c #\c) #f) (test (char>? #\B #\B #\C) #f) (test (char>? #\b #\c #\e) #f))) (test (char>=? #\e #\d) #t) (test (char>=? #\A #\B) #f) (test (char>=? #\a #\b) #f) (test (char>=? #\9 #\0) #t) (test (char>=? #\A #\A) #t) (test (char>=? #\space #\space) #t) (if with-char-ops-with-more-than-2-args (begin (test (char>=? #\d #\c #\b #\a) #t) (test (char>=? #\d #\d #\c #\a) #t) (test (char>=? #\e #\d #\b #\c #\a) #f) (test (apply char>=? a-to-z) #f) (test (apply char>=? cap-a-to-z) #f) (test (apply char>=? mixed-a-to-z) #f) (test (apply char>=? digits) #f) (test (apply char>=? (reverse a-to-z)) #t) (test (apply char>=? (reverse cap-a-to-z)) #t) (test (apply char>=? (reverse mixed-a-to-z)) #f) (test (apply char>=? (reverse digits)) #t) (test (char>=? #\d #\c #\a) #t) (test (char>=? #\d #\c #\c) #t) (test (char>=? #\B #\B #\C) #f) (test (char>=? #\b #\c #\e) #f))) (test (char-ci=? #\A #\B) #f) (test (char-ci=? #\a #\B) #f) (test (char-ci=? #\A #\b) #f) (test (char-ci=? #\a #\b) #f) (test (char-ci=? #\9 #\0) #f) (test (char-ci=? #\A #\A) #t) (test (char-ci=? #\A #\a) #t) (test (char-ci=? #\a #\A) #t) (test (char-ci=? #\space #\space) #t) (if with-char-ops-with-more-than-2-args (begin (test (char-ci=? #\d #\D #\d #\d) #t) (test (char-ci=? #\d #\d #\X #\d) #f) (test (char-ci=? #\d #\Y #\x #\c) #f) (test (apply char-ci=? cap-a-to-z) #f) (test (apply char-ci=? mixed-a-to-z) #f) (test (apply char-ci=? digits) #f) (test (char-ci=? #\d #\c #\d) #f))) (test (char-cichar i)) ; (c2 (integer->char k))) ; (for-each ; (lambda (op1 op2) ; (if (not (eq? (op1 c1 c2) (op2 (string c1) (string c2)))) ; (format #t "(~A|~A ~A ~A) -> ~A|~A~%" op1 op2 c1 c2 (op1 c1 c2) (op2 (string c1) (string c2))))) ; (list char=? char? char>=? char-ci=? char-ci? char-ci>=?) ; (list string=? string? string>=? string-ci=? string-ci? string-ci>=?))))) (if with-char-ops-with-more-than-2-args (begin (test (char-ci? #\A #\B) #f) (test (char-ci>? #\a #\B) #f) (test (char-ci>? #\A #\b) #f) (test (char-ci>? #\a #\b) #f) (test (char-ci>? #\9 #\0) #t) (test (char-ci>? #\A #\A) #f) (test (char-ci>? #\A #\a) #f) (test (char-ci>? #\^ #\a) #t) (test (char-ci>? #\_ #\e) #t) (test (char-ci>? #\[ #\S) #t) (test (char-ci>? #\\ #\l) #t) (test (char-ci>? #\t #\_) #f) (test (char-ci>? #\a #\]) #f) (test (char-ci>? #\z #\^) #f) (test (char-ci>? #\] #\X) #t) (if with-char-ops-with-more-than-2-args (begin (test (char-ci>? #\d #\D #\d #\d) #f) (test (char-ci>? #\d #\d #\X #\d) #f) (test (char-ci>? #\d #\Y #\x #\c) #f) (test (apply char-ci>? cap-a-to-z) #f) (test (apply char-ci>? mixed-a-to-z) #f) (test (apply char-ci>? (reverse mixed-a-to-z)) #t) (test (apply char-ci>? digits) #f) (test (char-ci>? #\d #\c #\d) #f) (test (char-ci>? #\b #\c #\a) #f) (test (char-ci>? #\d #\C #\a) #t))) (test (char-ci<=? #\A #\B) #t) (test (char-ci<=? #\a #\B) #t) (test (char-ci<=? #\A #\b) #t) (test (char-ci<=? #\a #\b) #t) (test (char-ci<=? #\9 #\0) #f) (test (char-ci<=? #\A #\A) #t) (test (char-ci<=? #\A #\a) #t) (test (char-ci<=? #\` #\H) #f) (test (char-ci<=? #\[ #\m) #f) (test (char-ci<=? #\j #\`) #t) (test (char-ci<=? #\\ #\E) #f) (test (char-ci<=? #\t #\_) #t) (test (char-ci<=? #\a #\]) #t) (test (char-ci<=? #\z #\^) #t) (if with-char-ops-with-more-than-2-args (begin (test (char-ci<=? #\d #\D #\d #\d) #t) (test (char-ci<=? #\d #\d #\X #\d) #f) (test (char-ci<=? #\d #\Y #\x #\c) #f) (test (apply char-ci<=? cap-a-to-z) #t) (test (apply char-ci<=? mixed-a-to-z) #t) (test (apply char-ci<=? digits) #t) (test (char-ci<=? #\d #\c #\d) #f) (test (char-ci<=? #\b #\c #\a) #f) (test (char-ci<=? #\b #\c #\C) #t) (test (char-ci<=? #\b #\C #\e) #t))) (test (char-ci>=? #\A #\B) #f) (test (char-ci>=? #\a #\B) #f) (test (char-ci>=? #\A #\b) #f) (test (char-ci>=? #\a #\b) #f) (test (char-ci>=? #\9 #\0) #t) (test (char-ci>=? #\A #\A) #t) (test (char-ci>=? #\A #\a) #t) (test (char-ci>=? #\Y #\_) #f) (test (char-ci>=? #\` #\S) #t) (test (char-ci>=? #\[ #\Y) #t) (test (char-ci>=? #\t #\_) #f) (test (char-ci>=? #\a #\]) #f) (test (char-ci>=? #\z #\^) #f) (if with-char-ops-with-more-than-2-args (begin (test (char-ci>=? #\d #\D #\d #\d) #t) (test (char-ci>=? #\d #\d #\X #\d) #f) (test (char-ci>=? #\d #\Y #\x #\c) #f) (test (apply char-ci>=? cap-a-to-z) #f) (test (apply char-ci>=? mixed-a-to-z) #f) (test (apply char-ci>=? (reverse mixed-a-to-z)) #t) (test (apply char-ci>=? (reverse mixed-a-to-z)) #t) (test (apply char-ci>=? digits) #f) (test (char-ci>=? #\d #\c #\d) #f) (test (char-ci>=? #\b #\c #\a) #f) (test (char-ci>=? #\d #\D #\a) #t) (test (char-ci>=? #\\ #\J #\+) #t) )) ) ; end let with a-to-z (test (integer->char (char->integer #\.)) #\.) (test (integer->char (char->integer #\A)) #\A) (test (integer->char (char->integer #\a)) #\a) (test (integer->char (char->integer #\space)) #\space) ;;; -------------------------------------------------------------------------------- ;;; STRINGS ;;; -------------------------------------------------------------------------------- (test (string? "abc") #t) (test (string? ':+*/-) #f) (test (string? "das ist einer der teststrings") #t) (test (string? '(das ist natuerlich falsch)) #f) (test (string? "aaaaaa") #t) (test (string? #\a) #f) (test (string? "\"\\\"") #t) (for-each (lambda (arg) (test (string? arg) #f)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (string=? "foo" "foo") #t) (test (string=? "foo" "FOO") #f) (test (string=? "foo" "bar") #f) (test (string=? "FOO" "FOO") #t) (test (string=? "A" "B") #f) (test (string=? "a" "b") #f) (test (string=? "9" "0") #f) (test (string=? "A" "A") #t) (test (string=? "" "") #t) (test (string=? (string #\newline) (string #\newline)) #t) (if with-string-ops-with-more-than-2-args (begin (test (string=? "A" "B" "a") #f) (test (string=? "A" "A" "a") #f) (test (string=? "A" "A" "A") #t) (test (string=? "foo" "foo" "foo") #t) (test (string=? "foo" "foo" "") #f) (test (string=? "foo" "foo" "fOo") #f))) (test (let ((str (string #\" #\1 #\\ #\2 #\"))) (string=? str "\"1\\2\"")) #t) (test (let ((str (string #\\ #\\ #\\))) (string=? str "\\\\\\")) #t) (test (let ((str (string #\"))) (string=? str "\"")) #t) (test (let ((str (string #\\ #\"))) (string=? str "\\\"")) #t) (test (let ((str (string #\space #\? #\)))) (string=? str " ?)")) #t) (test (let ((str (string #\# #\\ #\t))) (string=? str "#\\t")) #t) (test (let ((str (string #\# #\\ #\t))) (string-length str)) 3) (test (string? "aaab" "aaaa") #t) (test (string>? "aaaaa" "aaaa") #t) (test (string>? "" "abcdefgh") #f) (test (string>? "a" "abcdefgh") #f) (test (string>? "abc" "abcdefgh") #f) (test (string>? "cabc" "abcdefgh") #t) (test (string>? "abcdefgh" "abcdefgh") #f) (test (string>? "xyzabc" "abcdefgh") #t) (test (string>? "abc" "xyzabcdefgh") #f) (test (string>? "abcdefgh" "") #t) (test (string>? "abcdefgh" "a") #t) (test (string>? "abcdefgh" "abc") #t) (test (string>? "abcdefgh" "cabc") #f) (test (string>? "abcdefgh" "xyzabc") #f) (test (string>? "xyzabcdefgh" "abc") #t) (test (string>? "abcde" "bc") #f) (test (string>? "bcdef" "abcde") #t) (test (string>? "bcdef" "abcdef") #t) (test (string>? "" "") #f) (test (string>? "A" "B") #f) (test (string>? "a" "b") #f) (test (string>? "9" "0") #t) (test (string>? "A" "A") #f) (if with-string-ops-with-more-than-2-args (begin (test (string>? "A" "B" "a") #f) (test (string>? "C" "B" "A") #t) (test (string>? "A" "A" "A") #f) (test (string>? "B" "B" "A") #f) (test (string>? "foo" "foo" "foo") #f) (test (string>? "foo" "foo" "") #f) (test (string>? "foo" "foo" "fOo") #f))) (test (string<=? "aaa" "aaaa") #t) (test (string<=? "aaaaa" "aaaa") #f) (test (string<=? "a" "abcdefgh") #t) (test (string<=? "abc" "abcdefgh") #t) (test (string<=? "aaabce" "aaabcdefgh") #f) (test (string<=? "cabc" "abcdefgh") #f) (test (string<=? "abcdefgh" "abcdefgh") #t) (test (string<=? "xyzabc" "abcdefgh") #f) (test (string<=? "abc" "xyzabcdefgh") #t) (test (string<=? "abcdefgh" "") #f) (test (string<=? "abcdefgh" "a") #f) (test (string<=? "abcdefgh" "abc") #f) (test (string<=? "abcdefgh" "cabc") #t) (test (string<=? "abcdefgh" "xyzabc") #t) (test (string<=? "xyzabcdefgh" "abc") #f) (test (string<=? "abcdef" "bcdefgh") #t) (test (string<=? "" "") #t) (test (string<=? "A" "B") #t) (test (string<=? "a" "b") #t) (test (string<=? "9" "0") #f) (test (string<=? "A" "A") #t) (if with-string-ops-with-more-than-2-args (begin (test (string<=? "A" "B" "C") #t) (test (string<=? "C" "B" "A") #f) (test (string<=? "A" "B" "B") #t) (test (string<=? "A" "A" "A") #t) (test (string<=? "B" "B" "A") #f) (test (string<=? "foo" "foo" "foo") #t) (test (string<=? "foo" "foo" "") #f) (test (string<=? "foo" "foo" "fooo") #t))) (test (string>=? "aaaaa" "aaaa") #t) (test (string>=? "aaaa" "aaaa") #t) (test (string>=? "aaa" "aaaa") #f) (test (string>=? "" "abcdefgh") #f) (test (string>=? "a" "abcdefgh") #f) (test (string>=? "abc" "abcdefgh") #f) (test (string>=? "cabc" "abcdefgh") #t) (test (string>=? "abcdefgh" "abcdefgh") #t) (test (string>=? "xyzabc" "abcdefgh") #t) (test (string>=? "abc" "xyzabcdefgh") #f) (test (string>=? "abcdefgh" "") #t) (test (string>=? "abcdefgh" "a") #t) (test (string>=? "abcdefgh" "abc") #t) (test (string>=? "abcdefgh" "cabc") #f) (test (string>=? "abcdefgh" "xyzabc") #f) (test (string>=? "xyzabcdefgh" "abc") #t) (test (string>=? "bcdef" "abcdef") #t) (test (string>=? "A" "B") #f) (test (string>=? "a" "b") #f) (test (string>=? "9" "0") #t) (test (string>=? "A" "A") #t) (test (string>=? "" "") #t) (if with-string-ops-with-more-than-2-args (begin (test (string>=? "A" "B" "C") #f) (test (string>=? "C" "B" "A") #t) (test (string>=? "C" "B" "B") #t) (test (string>=? "A" "B" "B") #f) (test (string>=? "A" "A" "A") #t) (test (string>=? "B" "B" "A") #t) (test (string>=? "B" "B" "C") #f) (test (string>=? "foo" "foo" "foo") #t) (test (string>=? "foo" "foo" "") #t) (test (string>=? "foo" "foo" "fo") #t))) (test (string-ci=? "A" "B") #f) (test (string-ci=? "a" "B") #f) (test (string-ci=? "A" "b") #f) (test (string-ci=? "a" "b") #f) (test (string-ci=? "9" "0") #f) (test (string-ci=? "A" "A") #t) (test (string-ci=? "A" "a") #t) (test (string-ci=? "" "") #t) (test (string-ci=? "aaaa" "AAAA") #t) (test (string-ci=? "aaaa" "Aaaa") #t) (if with-string-ops-with-more-than-2-args (begin (test (string-ci=? "A" "B" "a") #f) (test (string-ci=? "A" "A" "a") #t) (test (string-ci=? "A" "A" "a") #t) (test (string-ci=? "foo" "foo" "foo") #t) (test (string-ci=? "foo" "foo" "") #f) (test (string-ci=? "foo" "Foo" "fOo") #t))) (test (string-ciP" "DMhk3Bg") #f) (test (string-ci? "Aaa" "AA") #t) (test (string-ci>? "A" "B") #f) (test (string-ci>? "a" "B") #f) (test (string-ci>? "A" "b") #f) (test (string-ci>? "a" "b") #f) (test (string-ci>? "9" "0") #t) (test (string-ci>? "A" "A") #f) (test (string-ci>? "A" "a") #f) (test (string-ci>? "" "") #f) (test (string-ci>? "Z" "DjNTl0") #t) (test (string-ci>? "2399dt7BVN[,A" "^KHboHV") #f) (test (string-ci>? "t" "_") #f) (test (string-ci>? "a" "]") #f) (test (string-ci>? "z" "^") #f) (test (string-ci>? "R*95oG.k;?" "`2?J6LBbLG^alB[fMD") #f) (test (string-ci>? "]" "X") #t) (if with-string-ops-with-more-than-2-args (begin (test (string-ci>? "A" "B" "a") #f) (test (string-ci>? "C" "b" "A") #t) (test (string-ci>? "a" "A" "A") #f) (test (string-ci>? "B" "B" "A") #f) (test (string-ci>? "foo" "foo" "foo") #f) (test (string-ci>? "foo" "foo" "") #f) (test (string-ci>? "foo" "foo" "fOo") #f) (test (string-ci>? "ZNiuEa@/V" "KGbKliYMY" "9=69q3ica" ":]") #f) (test (string-ci>? "^" "aN@di;iEO" "7*9q6uPmX9)PaY,6J" "15vH") #t) )) (test (string-ci<=? "A" "B") #t) (test (string-ci<=? "a" "B") #t) (test (string-ci<=? "A" "b") #t) (test (string-ci<=? "a" "b") #t) (test (string-ci<=? "9" "0") #f) (test (string-ci<=? "A" "A") #t) (test (string-ci<=? "A" "a") #t) (test (string-ci<=? "" "") #t) (test (string-ci<=? ":LPC`" ",O0>affA?(") #f) (test (string-ci<=? "t" "_") #t) (test (string-ci<=? "a" "]") #t) (test (string-ci<=? "z" "^") #t) (test (string-ci<=? "G888E>beF)*mwCNnagP" "`2uTd?h") #t) (if with-string-ops-with-more-than-2-args (begin (test (string-ci<=? "A" "b" "C") #t) (test (string-ci<=? "c" "B" "A") #f) (test (string-ci<=? "A" "B" "B") #t) (test (string-ci<=? "a" "A" "A") #t) (test (string-ci<=? "B" "b" "A") #f) (test (string-ci<=? "foo" "foo" "foo") #t) (test (string-ci<=? "foo" "foo" "") #f) (test (string-ci<=? "FOO" "fOo" "fooo") #t) (test (string-ci<=? "78mdL82*" "EFaCrIdm@_D+" "eMu\\@dSSY") #t) (test (string-ci<=? "`5pNuFc3PM=? "A" "B") #f) (test (string-ci>=? "a" "B") #f) (test (string-ci>=? "A" "b") #f) (test (string-ci>=? "a" "b") #f) (test (string-ci>=? "9" "0") #t) (test (string-ci>=? "A" "A") #t) (test (string-ci>=? "A" "a") #t) (test (string-ci>=? "" "") #t) (test (string-ci>=? "5d7?[o[:hop=ktv;9)" "p^r9;TAXO=^") #f) (test (string-ci>=? "t" "_") #f) (test (string-ci>=? "a" "]") #f) (test (string-ci>=? "z" "^") #f) (test (string-ci>=? "jBS" "`<+s[[:`l") #f) (if with-string-ops-with-more-than-2-args (begin (test (string-ci>=? "A" "b" "C") #f) (test (string-ci>=? "C" "B" "A") #t) (test (string-ci>=? "C" "B" "b") #t) (test (string-ci>=? "a" "B" "B") #f) (test (string-ci>=? "A" "A" "A") #t) (test (string-ci>=? "B" "B" "A") #t) (test (string-ci>=? "B" "b" "C") #f) (test (string-ci>=? "foo" "foo" "foo") #t) (test (string-ci>=? "foo" "foo" "") #t) (test (string-ci>=? "foo" "foo" "fo") #t) (test (string-ci>=? "tF?8`Sa" "NIkMd7" "f`" "1td-Z?teE" "-ik1SK)hh)Nq].>") #t) (test (string-ci>=? "Z6a8P" "^/VpmWwt):?o[a9\\_N" "8[^h)char 0)) (test (string=? str "xxx") #t) (test (char=? (string-ref str 4) #\x) #t) (string-set! str 4 #\a) (test (string=? str "xxx") #t) (test (char=? (string-ref str 4) #\a) #t) (string-set! str 3 #\x) (test (string=? str "xxxxaxxxxx") #t)) (test (substring "ab" 0 0) "") (test (substring "ab" 1 1) "") (test (substring "ab" 2 2) "") (test (substring "ab" 0 1) "a") (test (substring "ab" 1 2) "b") (test (substring "ab" 0 2) "ab") (test (substring "hi there" 3 6) "the") (test (substring "hi there" 0 (string-length "hi there")) "hi there") (test (substring "" 0 0) "") (test (let ((str "012345")) (let ((str1 (substring str 2 4))) (string-set! str1 1 #\x)) (string=? str "012345")) #t) (test (string-append "hi" "ho") "hiho") (test (string-append "hi") "hi") (test (string-append "hi" "") "hi") (test (string-append "hi" "" "ho") "hiho") (test (string-append "" "hi") "hi") (test (string-append) "") (test (string-append "a" (string-append (string-append "b" "c") "d") "e") "abcde") (test (string-append "a" "b" "c" "d" "e") "abcde") (test (string-append (string-append) (string-append (string-append))) "") (test (let ((hi "hi")) (let ((ho (string-append hi))) (eq? hi ho))) #f) (test (let ((hi "hi")) (let ((ho (string-append hi))) (string-set! ho 0 #\a) hi)) "hi") (test (let ((hi "hi")) (set! hi (string-append hi hi hi hi)) hi) "hihihihi") (num-test (letrec ((hi (lambda (str n) (if (= n 0) str (hi (string-append str "a") (- n 1)))))) (string-length (hi "" 100))) 100) (test (let* ((str "hiho") (str1 "ha") (str2 (string-append str1 str))) (string-set! str2 1 #\x) (string-set! str2 4 #\x) (and (string=? str "hiho") (string=? str1 "ha") (string=? str2 "hxhixo"))) #t) (test (let* ((str (string-copy "hiho")) (str1 (string-copy "ha")) (str2 (string-append str1 str))) (string-set! str1 1 #\x) (string-set! str 2 #\x) (and (string=? str "hixo") (string=? str1 "hx") (string=? str2 "hahiho"))) #t) (test (let ((hi (string-copy "hi"))) (string-fill! hi #\s) hi) "ss") (test (let ((hi (string-copy ""))) (string-fill! hi #\x) hi) "") (test (let ((str (make-string 0))) (string-fill! str #\a) str) "") (test (let ((hi (make-string 8 (integer->char 0)))) (string-fill! hi #\a) hi) "aaaaaaaa") ; is this result widely accepted? (if with-vector-for-each (begin (test (let ((str (make-string 4 #\x)) (ctr 0)) (string-for-each (lambda (c) (string-set! str ctr c) (set! ctr (+ ctr 1))) "1234") str) "1234") (test (let ((str (make-string 8 #\x)) (ctr 0)) (string-for-each (lambda (c1 c2) (string-set! str ctr c1) (string-set! str (+ ctr 1) c2) (set! ctr (+ ctr 2))) "1234" "hiho") str) "1h2i3h4o") )) (test (string-copy "ab") "ab") (test (string-copy "") "") (test (string-copy "\"\\\"") "\"\\\"") (test (let ((hi "abc")) (eq? hi (string-copy hi))) #f) (test (let ((hi (string-copy (make-string 8 (integer->char 0))))) (string-fill! hi #\a) hi) "aaaaaaaa") ; is this result widely accepted? (test (string-copy (string-copy (string-copy "a"))) "a") (test (string-copy (string-copy (string-copy ""))) "") (test (string->list "abc") (list #\a #\b #\c)) (test (string->list "") '()) ;(test (string->list (make-string 3 (integer->char 0))) '()) ; others return a list of #\nul or #\null (test (string->list (list->string (list #\a #\b #\c))) (list #\a #\b #\c)) (test (string->list (list->string '())) '()) (test (list->string (string->list "abc")) "abc") (test (list->string (string->list "hi there")) "hi there") (test (list->string (string->list "&*#%^@%$)~@")) "&*#%^@%$)~@") (test (list->string (string->list "")) "") (test (let* ((str "abc") (lst (string->list str))) (and (string=? str "abc") (equal? lst (list #\a #\b #\c)))) #t) (test (list->string '()) "") (test (list->string (list #\a #\b #\c)) "abc") (test (list->string (list)) "") (test (list->string (list #\" #\# #\")) "\"#\"") (test (list->string (list #\\ #\\ #\# #\\ #\# #\#)) "\\\\#\\##") (test (list->string (list #\' #\' #\` #\")) '"''`\"") (test (string #\" #\# #\") "\"#\"") (test (string #\\ #\\ #\# #\\ #\# #\#) "\\\\#\\##") (test (string #\' #\' #\` #\") '"''`\"") ;;; some schemes accept \' and other such sequences in a string, but the spec only mentions \\ and \" (test (symbol->string 'hi) "hi") (test (symbol->string (string->symbol "()")) "()") (test (string->symbol (symbol->string 'hi)) 'hi) (test (eq? (string->symbol "hi") 'hi) #t) (test (eq? (string->symbol "hi") (string->symbol "hi")) #t) (test (string->symbol "hi") 'hi) (test (let ((str (symbol->string 'hi))) (catch #t (lambda () (string-set! str 1 #\x)) (lambda args 'error)) ; can be disallowed (symbol->string 'hi)) "hi") (test (symbol->string 'sym0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789) "sym0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789") (test (string->symbol "sym0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789") 'sym0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789) (test (let ((sym0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 32)) (+ sym0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 1)) 33) (test (symbol->string (string->symbol "hi there")) "hi there") (test (symbol->string (string->symbol "Hi There")) "Hi There") (test (symbol->string (string->symbol "HI THERE")) "HI THERE") (test (symbol->string (string->symbol "")) "") (test (symbol? (string->symbol "(weird name for a symbol!)")) #t) ;;; -------------------------------------------------------------------------------- ;;; LISTS ;;; -------------------------------------------------------------------------------- (test (cons 'a '()) '(a)) (test (cons '(a) '(b c d)) '((a) b c d)) (test (cons "a" '(b c)) '("a" b c)) (test (cons 'a 3) '(a . 3)) (test (cons '(a b) 'c) '((a b) . c)) (test (cons '() '()) '(())) (test (cons '() 1) '(() . 1)) (test (cons 1 2) '(1 . 2)) (test (cons 1 '()) '(1)) (test (cons '() 2) '(() . 2)) (test (cons 1 (cons 2 (cons 3 (cons 4 '())))) '(1 2 3 4)) (test (cons 'a 'b) '(a . b)) (test (cons 'a (cons 'b (cons 'c '()))) '(a b c)) (test (cons 'a (list 'b 'c 'd)) '(a b c d)) (test (cons 'a (cons 'b (cons 'c 'd))) '(a b c . d)) (test '(a b c d e) '(a . (b . (c . (d . (e . ())))))) (test (cons (cons 1 2) (cons 3 4)) '((1 . 2) 3 . 4)) (test (list (cons 1 2) (cons 3 4)) '((1 . 2) (3 . 4))) (test (cons (cons 1 (cons 2 3)) 4) '((1 . (2 . 3)) . 4)) (test (cons (cons 1 (cons 2 '())) (cons 1 2)) '((1 2) . (1 . 2))) (test (let ((lst (list 1 2))) (list (apply cons lst) lst)) '((1 . 2) (1 2))) (test (let ((lst (list 1 2))) (list lst (apply cons lst))) '((1 2) (1 . 2))) (test (cdadr (let ((lst (list 1 2))) (list (apply cons lst) lst))) '(2)) (test (car (list 1 2 3)) 1) (test (car (cons 1 2)) 1) (test (car (list 1)) 1) (test (car '(1 2 3)) 1) (test (car '(1)) 1) (test (car '(1 . 2)) 1) (test (car '((1 2) 3)) '(1 2)) (test (car '(((1 . 2) . 3) 4)) '((1 . 2) . 3)) (test (car (list (list) (list 1 2))) '()) (test (car '(a b c)) 'a) (test (car '((a) b c d)) '(a)) (test (car (reverse (list 1 2 3 4))) 4) (test (car (list 'a 'b 'c 'd 'e 'f 'g)) 'a) (test (car '(a b c d e f g)) 'a) (test (car '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '((((1 2 3) 4) 5) (6 7))) (test (car '(a)) 'a) (test (car '(1 ^ 2)) 1) (test (car '(1 .. 2)) 1) (test (car ''foo) 'quote) (test (car '(1 2 . 3)) 1) (for-each (lambda (arg) (if (not (equal? (car (cons arg '())) arg)) (begin (display "(car '(") (display arg) (display ")) returned ") (display (car (cons arg '()))) (display "?") (newline)))) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (test (cdr (list 1 2 3)) '(2 3)) (test (cdr (cons 1 2)) 2) (test (cdr (list 1)) '()) (test (cdr '(1 2 3)) '(2 3)) (test (cdr '(1)) '()) (test (cdr '(1 . 2)) 2) (test (cdr '((1 2) 3)) '(3)) (test (cdr '(((1 . 2) . 3) 4)) '(4)) (test (cdr (list (list) (list 1 2))) '((1 2))) (test (cdr '(a b c)) '(b c)) (test (cdr '((a) b c d)) '(b c d)) (test (equal? (cdr (reverse (list 1 2 3 4))) 4) #f) (test (equal? (cdr (list 'a 'b 'c 'd 'e 'f 'g)) 'a) #f) (test (cdr '((((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f) g)) '(g)) (test (cdr '(a)) '()) (test (cdr '(a b c d e f g)) '(b c d e f g)) (test (cdr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '((((u v w) x) y) ((q w e) r) (a b c) e f g)) (test (cdr ''foo) '(foo)) (test (cdr (cons (cons 1 2) (cons 3 4))) '(3 . 4)) (test (cdr '(1 2 . 3)) '(2 . 3)) (for-each (lambda (arg) (if (not (equal? (cdr (cons '() arg)) arg)) (begin (display "(cdr '(() ") (display arg) (display ")) returned ") (display (cdr (cons '() arg))) (display "?") (newline)))) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (define (cons-r a b n) (if (= 0 n) (cons a b) (cons (cons-r (+ a 1) (+ b 1) (- n 1)) (cons-r (- a 1) (- b 1) (- n 1))))) (define (list-r a b n) (if (= 0 n) (list a b) (list (list-r (+ a 1) (+ b 1) (- n 1)) (list-r (- a 1) (- b 1) (- n 1))))) (define lists (list (list 1 2 3) (cons 1 2) (list 1) (list) (list (list 1 2) (list 3 4)) (list (list 1 2) 3) '(1 . 2) '(a b c) '((a) b (c)) '((1 2) (3 4)) '((1 2 3) (4 5 6) (7 8 9)) '(((1) (2) (3)) ((4) (5) (6)) ((7) (8) (9))) '((((1 123) (2 124) (3 125) (4 126)) ((5) (6) (7) (8)) ((9) (10) (11) (12)) ((13) (14) (15) (16))) (((21 127) (22 128) (23 129) (24 130)) ((25) (26) (27) (28)) ((29) (30) (31) (32)) ((33) (34) (35) (36))) (((41 131) (42 132) (43 133) (44 134)) ((45) (46) (47) (48)) ((49) (50) (51) (52)) ((53) (54) (55) (56))) (((61 135) (62 136) (63 137) (64 138)) ((65) (66) (67) (68)) ((69) (70) (71) (72)) ((73) (74) (75) (76))) 321) (cons 1 (cons 2 (cons 3 4))) (cons (cons 2 (cons 3 4)) 5) (cons '() 1) (cons 1 '()) (cons '() '()) (list 1 2 (cons 3 4) 5 (list (list 6) 7)) (cons-r 0 0 4) (cons-r 0 0 5) (cons-r 0 0 10) (list-r 0 0 3) (list-r 0 0 7) (list-r 0 0 11) ''a )) (define (caar-1 x) (car (car x))) (define (cadr-1 x) (car (cdr x))) (define (cdar-1 x) (cdr (car x))) (define (cddr-1 x) (cdr (cdr x))) (define (caaar-1 x) (car (car (car x)))) (define (caadr-1 x) (car (car (cdr x)))) (define (cadar-1 x) (car (cdr (car x)))) (define (caddr-1 x) (car (cdr (cdr x)))) (define (cdaar-1 x) (cdr (car (car x)))) (define (cdadr-1 x) (cdr (car (cdr x)))) (define (cddar-1 x) (cdr (cdr (car x)))) (define (cdddr-1 x) (cdr (cdr (cdr x)))) (define (caaaar-1 x) (car (car (car (car x))))) (define (caaadr-1 x) (car (car (car (cdr x))))) (define (caadar-1 x) (car (car (cdr (car x))))) (define (caaddr-1 x) (car (car (cdr (cdr x))))) (define (cadaar-1 x) (car (cdr (car (car x))))) (define (cadadr-1 x) (car (cdr (car (cdr x))))) (define (caddar-1 x) (car (cdr (cdr (car x))))) (define (cadddr-1 x) (car (cdr (cdr (cdr x))))) (define (cdaaar-1 x) (cdr (car (car (car x))))) (define (cdaadr-1 x) (cdr (car (car (cdr x))))) (define (cdadar-1 x) (cdr (car (cdr (car x))))) (define (cdaddr-1 x) (cdr (car (cdr (cdr x))))) (define (cddaar-1 x) (cdr (cdr (car (car x))))) (define (cddadr-1 x) (cdr (cdr (car (cdr x))))) (define (cdddar-1 x) (cdr (cdr (cdr (car x))))) (define (cddddr-1 x) (cdr (cdr (cdr (cdr x))))) (for-each (lambda (name op1 op2) (for-each (lambda (lst) (let ((val1 (catch #t (lambda () (op1 lst)) (lambda args 'error))) (val2 (catch #t (lambda () (op2 lst)) (lambda args 'error)))) (if (not (equal? val1 val2)) (begin (display "(") (display name) (display " ") (display lst) (display ")) returned ") (display val1) (display " ") (display val2) (newline))))) lists)) (list 'caar 'cadr 'cdar 'cddr 'caaar 'caadr 'cadar 'cdaar 'caddr 'cdddr 'cdadr 'cddar 'caaaar 'caaadr 'caadar 'cadaar 'caaddr 'cadddr 'cadadr 'caddar 'cdaaar 'cdaadr 'cdadar 'cddaar 'cdaddr 'cddddr 'cddadr 'cdddar) (list caar cadr cdar cddr caaar caadr cadar cdaar caddr cdddr cdadr cddar caaaar caaadr caadar cadaar caaddr cadddr cadadr caddar cdaaar cdaadr cdadar cddaar cdaddr cddddr cddadr cdddar) (list caar-1 cadr-1 cdar-1 cddr-1 caaar-1 caadr-1 cadar-1 cdaar-1 caddr-1 cdddr-1 cdadr-1 cddar-1 caaaar-1 caaadr-1 caadar-1 cadaar-1 caaddr-1 cadddr-1 cadadr-1 caddar-1 cdaaar-1 cdaadr-1 cdadar-1 cddaar-1 cdaddr-1 cddddr-1 cddadr-1 cdddar-1)) (test (equal? (cadr (list 'a 'b 'c 'd 'e 'f 'g)) 'b) #t) (test (equal? (cddr (list 'a 'b 'c 'd 'e 'f 'g)) '(c d e f g)) #t) (test (equal? (caddr (list 'a 'b 'c 'd 'e 'f 'g)) 'c) #t) (test (equal? (cdddr (list 'a 'b 'c 'd 'e 'f 'g)) '(d e f g)) #t) (test (equal? (cadddr (list 'a 'b 'c 'd 'e 'f 'g)) 'd) #t) (test (equal? (cddddr (list 'a 'b 'c 'd 'e 'f 'g)) '(e f g)) #t) (test (equal? (caadr (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '((u v w) x)) #t) (test (equal? (cadar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(6 7)) #t) (test (equal? (cdaar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(5)) #t) (test (equal? (cdadr (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(y)) #t) (test (equal? (cddar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '()) #t) (test (equal? (caaaar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(1 2 3)) #t) (test (equal? (caadar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) 6) #t) (test (equal? (caaddr (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(q w e)) #t) (test (equal? (cadaar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) 5) #t) (test (equal? (cadadr (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) 'y) #t) (test (equal? (caddar (list (list (list (list (list 1 2 3) 4) 5) 1 6 (list 5 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) 6) #t) (test (equal? (cadddr (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(a b c)) #t) (test (equal? (cdaaar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(4)) #t) (test (equal? (cdaadr (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(x)) #t) (test (equal? (cdadar (list (list (list (list (list 1 2 3) 4) 5) (list 6 7)) (list (list (list 'u 'v 'w) 'x) 'y) (list (list 'q 'w 'e) 'r) (list 'a 'b 'c) 'e 'f 'g)) '(7)) #t) (test (caar '((a) b c d e f g)) 'a) (test (cadr '(a b c d e f g)) 'b) (test (cdar '((a b) c d e f g)) '(b)) (test (cddr '(a b c d e f g)) '(c d e f g)) (test (caaar '(((a)) b c d e f g)) 'a) (test (caadr '(a (b) c d e f g)) 'b) (test (cadar '((a b) c d e f g)) 'b) (test (caddr '(a b c d e f g)) 'c) (test (cdaar '(((a b)) c d e f g)) '(b)) (test (cdadr '(a (b c) d e f g)) '(c)) (test (cddar '((a b c) d e f g)) '(c)) (test (cdddr '(a b c d e f g)) '(d e f g)) (test (caaaar '((((a))) b c d e f g)) 'a) (test (caaadr '(a ((b)) c d e f g)) 'b) (test (caadar '((a (b)) c d e f g)) 'b) (test (caaddr '(a b (c) d e f g)) 'c) (test (cadaar '(((a b)) c d e f g)) 'b) (test (cadadr '(a (b c) d e f g)) 'c) (test (caddar '((a b c) d e f g)) 'c) (test (cadddr '(a b c d e f g)) 'd) (test (cdaaar '((((a b))) c d e f g)) '(b)) (test (cdaadr '(a ((b c)) d e f g)) '(c)) (test (cdadar '((a (b c)) d e f g)) '(c)) (test (cdaddr '(a b (c d) e f g)) '(d)) (test (cddaar '(((a b c)) d e f g)) '(c)) (test (cddadr '(a (b c d) e f g)) '(d)) (test (cdddar '((a b c d) e f g)) '(d)) (test (cddddr '(a b c d e f g)) '(e f g)) (test (cadr '(1 2 . 3)) 2) (test (cddr '(1 2 . 3)) 3) ;; sacla (test (caar '((a) b c)) 'a) (test (cadr '(a b c)) 'b) (test (cdar '((a . aa) b c)) 'aa) (test (cddr '(a b . c)) 'c) (test (caaar '(((a)) b c)) 'a) (test (caadr '(a (b) c)) 'b) (test (cadar '((a aa) b c)) 'aa) (test (caddr '(a b c)) 'c) (test (cdaar '(((a . aa)) b c)) 'aa) (test (cdadr '(a (b . bb) c)) 'bb) (test (cddar '((a aa . aaa) b c)) 'aaa) (test (cdddr '(a b c . d)) 'd) (test (caaaar '((((a))) b c)) 'a) (test (caaadr '(a ((b)) c)) 'b) (test (caadar '((a (aa)) b c)) 'aa) (test (caaddr '(a b (c))) 'c) (test (cadaar '(((a aa)) b c)) 'aa) (test (cadadr '(a (b bb) c)) 'bb) (test (caddar '((a aa aaa) b c)) 'aaa) (test (cadddr '(a b c d)) 'd) (test (cdaaar '((((a . aa))) b c)) 'aa) (test (cdaadr '(a ((b . bb)) c)) 'bb) (test (cdadar '((a (aa . aaa)) b c)) 'aaa) (test (cdaddr '(a b (c . cc))) 'cc) (test (cddaar '(((a aa . aaa)) b c)) 'aaa) (test (cddadr '(a (b bb . bbb) c)) 'bbb) (test (cdddar '((a aa aaa . aaaa) b c)) 'aaaa) (test (cddddr '(a b c d . e)) 'e) (test (caar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(((1 2 3) 4) 5)) (test (cadr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(((u v w) x) y)) (test (cdar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '((6 7))) (test (cddr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(((q w e) r) (a b c) e f g)) (test (caaar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '((1 2 3) 4)) (test (caadr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '((u v w) x)) (test (cadar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(6 7)) (test (caddr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '((q w e) r)) (test (cdaar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(5)) (test (cdadr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(y)) (test (cddar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '()) (test (cdddr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '((a b c) e f g)) (test (caaaar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(1 2 3)) (test (caaadr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(u v w)) (test (caadar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) 6) (test (caaddr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(q w e)) (test (cadaar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) 5) (test (cadadr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) 'y) (test (cadddr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(a b c)) (test (cdaaar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(4)) (test (cdaadr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(x)) (test (cdadar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(7)) (test (cdaddr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(r)) (test (cddaar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '()) (test (cddadr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '()) (test (cddddr '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) '(e f g)) (test (cadr '(a b c d e f g)) 'b) (test (cddr '(a b c d e f g)) '(c d e f g)) (test (caddr '(a b c d e f g)) 'c) (test (cdddr '(a b c d e f g)) '(d e f g)) (test (cadddr '(a b c d e f g)) 'd) (test (cddddr '(a b c d e f g)) '(e f g)) (test (caar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '((a . b) c . d)) (test (caar '(((a . b) c . d) (e . f) g . h)) '(a . b)) (test (caar '((a . b) c . d)) 'a) (test (cadr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '((i . j) k . l)) (test (cadr '(((a . b) c . d) (e . f) g . h)) '(e . f)) (test (cadr '((a . b) c . d)) 'c) (test (cdar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '((e . f) g . h)) (test (cdar '(((a . b) c . d) (e . f) g . h)) '(c . d)) (test (cdar '((a . b) c . d)) 'b) (test (cddr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '((m . n) o . p)) (test (cddr '(((a . b) c . d) (e . f) g . h)) '(g . h)) (test (cddr '((a . b) c . d)) 'd) (test (caaar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '(a . b)) (test (caaar '(((a . b) c . d) (e . f) g . h)) 'a) (test (caadr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '(i . j)) (test (caadr '(((a . b) c . d) (e . f) g . h)) 'e) (test (cddar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '(g . h)) (test (cddar '(((a . b) c . d) (e . f) g . h)) 'd) (test (cdddr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) '(o . p)) (test (cdddr '(((a . b) c . d) (e . f) g . h)) 'h) (test (caaaar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'a) (test (caaadr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'i) (test (caddar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'g) (test (cadddr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'o) (test (cdaaar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'b) (test (cdaadr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'j) (test (cdddar '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'h) (test (cddddr '((((a . b) c . d) (e . f) g . h) ((i . j) k . l) (m . n) o . p)) 'p) (test (cadr ''foo) 'foo) (test (caar '((a) b c)) 'a) (test (cadr '(a b c)) 'b) (test (cdar '((a . aa) b c)) 'aa) (test (cddr '(a b . c)) 'c) (test (caaar '(((a)) b c)) 'a) (test (caadr '(a (b) c)) 'b) (test (cadar '((a aa) b c)) 'aa) (test (caddr '(a b c)) 'c) (test (cdaar '(((a . aa)) b c)) 'aa) (test (cdadr '(a (b . bb) c)) 'bb) (test (cddar '((a aa . aaa) b c)) 'aaa) (test (cdddr '(a b c . d)) 'd) (test (caaaar '((((a))) b c)) 'a) (test (caaadr '(a ((b)) c)) 'b) (test (caadar '((a (aa)) b c)) 'aa) (test (caaddr '(a b (c))) 'c) (test (cadaar '(((a aa)) b c)) 'aa) (test (cadadr '(a (b bb) c)) 'bb) (test (caddar '((a aa aaa) b c)) 'aaa) (test (cadddr '(a b c d)) 'd) (test (cdaaar '((((a . aa))) b c)) 'aa) (test (cdaadr '(a ((b . bb)) c)) 'bb) (test (cdadar '((a (aa . aaa)) b c)) 'aaa) (test (cdaddr '(a b (c . cc))) 'cc) (test (cddaar '(((a aa . aaa)) b c)) 'aaa) (test (cddadr '(a (b bb . bbb) c)) 'bbb) (test (cdddar '((a aa aaa . aaaa) b c)) 'aaaa) (test (cddddr '(a b c d . e)) 'e) (test (length (list 'a 'b 'c 'd 'e 'f)) 6) (test (length (list 'a 'b 'c 'd)) 4) (test (length (list 'a (list 'b 'c) 'd)) 3) (test (length '()) 0) (test (length '(this-that)) 1) (test (length '(this - that)) 3) (test (length '(a b)) 2) (test (length '(a b c)) 3) (test (length '(a (b) (c d e))) 3) (test (length (list 1 (cons 1 2))) 2) (test (length (list 1 (cons 1 '()))) 2) (test (reverse '(a b c d)) '(d c b a)) (test (reverse '(a b c)) '(c b a)) (test (reverse '(a (b c) d (e (f)))) '((e (f)) d (b c) a)) (test (reverse '()) '()) (test (reverse (list 1 2 3)) '(3 2 1)) (test (reverse (list 1)) '(1)) (test (reverse (list)) (list)) (test (reverse '(1 2 3)) (list 3 2 1)) (test (reverse '(1)) '(1)) (test (reverse '((1 2) 3)) '(3 (1 2))) (test (reverse '(((1 . 2) . 3) 4)) '(4 ((1 . 2) . 3))) (test (reverse (list (list) (list 1 2))) '((1 2) ())) (test (reverse '((a) b c d)) '(d c b (a))) (test (reverse (reverse (list 1 2 3 4))) (list 1 2 3 4)) (test (reverse ''foo) '(foo quote)) (test (let ((x (list 1 2 3 4))) (let ((y (reverse x))) (and (equal? x (list 1 2 3 4)) (equal? y (list 4 3 2 1))))) #t) (test (letrec ((hi (lambda (lst n) (if (= n 0) lst (hi (reverse lst) (- n 1)))))) (hi (list 1 2 3) 100)) (list 1 2 3)) (test (let ((var (list 1 2 3))) (reverse (cdr var)) var) (list 1 2 3)) (test (let ((var '(1 2 3))) (reverse (cdr var)) var) '(1 2 3)) (test (let ((var (list 1 (list 2 3)))) (reverse (cdr var)) var) (list 1 (list 2 3))) (test (let ((var '(1 (2 3)))) (reverse (cdr var)) var) '(1 (2 3))) (test (let ((var (list (list 1 2) (list 3 4 5)))) (reverse (car var)) var) '((1 2) (3 4 5))) (test (let ((x '(1 2 3))) (list (reverse x) x)) '((3 2 1) (1 2 3))) (for-each (lambda (lst) (if (list? lst) (if (not (equal? lst (reverse (reverse lst)))) (begin (display "(reverse (reverse ") (display lst) (display ")) returned ") (display (reverse (reverse lst))) (newline))))) lists) (for-each (lambda (lst) (if (list? lst) (if (not (equal? lst (reverse (reverse (reverse (reverse lst)))))) (begin (display "(reverse...(4x) ") (display lst) (display ")) returned ") (display (reverse (reverse (reverse (reverse lst))))) (newline))))) lists) (test (pair? 'a) #f) (test (pair? '()) #f) (test (pair? '(a b c)) #t) (test (pair? (cons 1 2)) #t) (test (pair? ''()) #t) (test (pair? #f) #f) (test (pair? (make-vector 6)) #f) (test (pair? #t) #f) (test (pair? '(a . b)) #t) (test (pair? '#(a b)) #f) (test (pair? (list 1 2)) #t) (test (pair? (list)) #f) (test (pair? ''foo) #t) (test (pair? (list 'a 'b 'c 'd 'e 'f)) #t) (test (pair? '(this-that)) #t) (test (pair? '(this - that)) #t) (let ((x (list 1 2))) (set-cdr! x x) (test (pair? x) #t)) (test (pair? (list 1 (cons 1 2))) #t) (test (pair? (list 1 (cons 1 '()))) #t) (test (pair? (cons 1 '())) #t) (test (pair? (cons '() '())) #t) (test (pair? (cons '() 1)) #t) (test (pair? (list (list))) #t) (test (pair? '(())) #t) (test (pair? (cons 1 (cons 2 3))) #t) (for-each (lambda (arg) (if (pair? arg) (begin (display "(pair? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (test (list? 'a) #f) (test (list? '()) #t) (test (list? '(a b c)) #t) (test (list? (cons 1 2)) #f) (test (list? ''()) #t) (test (list? #f) #f) (test (list? (make-vector 6)) #f) (test (list? #t) #f) (test (list? '(a . b)) #f) (test (list? '#(a b)) #f) (test (list? (list 1 2)) #t) (test (list? (list)) #t) (test (list? ''foo) #t) (test (list? (list 'a 'b 'c 'd 'e 'f)) #t) (test (list? '(this-that)) #t) (test (list? '(this - that)) #t) (let ((x (list 1 2))) (set-cdr! x x) (test (list? x) #f)) (test (list? (list 1 (cons 1 2))) #t) (test (list? (list 1 (cons 1 '()))) #t) (test (list? (cons 1 '())) #t) (test (list? (cons '() '())) #t) (test (list? (cons '() 1)) #f) (test (list? (list (list))) #t) (test (list? '(())) #t) (test (list? '(1 2 . 3)) #f) (test (list? (cons 1 (cons 2 3))) #f) (test (list? '(1 . ())) #t) (for-each (lambda (arg) (if (list? arg) (begin (display "(list? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (test (null? 'a) '#f) (test (null? '()) #t) (test (null? '(a b c)) #f) (test (null? (cons 1 2)) #f) (test (null? ''()) #f) (test (null? #f) #f) (test (null? (make-vector 6)) #f) (test (null? #t) #f) (test (null? '(a . b)) #f) (test (null? '#(a b)) #f) (test (null? (list 1 2)) #f) (test (null? (list)) #t) (test (null? ''foo) #f) (test (null? (list 'a 'b 'c 'd 'e 'f)) #f) (test (null? '(this-that)) #f) (test (null? '(this - that)) #f) (let ((x (list 1 2))) (set-cdr! x x) (test (null? x) #f)) (test (null? (list 1 (cons 1 2))) #f) (test (null? (list 1 (cons 1 '()))) #f) (test (null? (cons 1 '())) #f) (test (null? (cons '() '())) #f) (test (null? (cons '() 1)) #f) (test (null? (list (list))) #f) (test (null? '(())) #f) (test (null? '#()) #f) (for-each (lambda (arg) (if (null? arg) (begin (display "(null? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (if with-reverse! (begin (test (reverse! '(a b c d)) '(d c b a)) (test (reverse! '(a b c)) '(c b a)) (test (reverse! '(a (b c) d (e (f)))) '((e (f)) d (b c) a)) (test (reverse! '()) '()) (test (reverse! (list 1 2 3)) '(3 2 1)) (test (reverse! (list 1)) '(1)) (test (reverse! (list)) (list)) (test (reverse! '(1 2 3)) (list 3 2 1)) (test (reverse! '(1)) '(1)) (test (reverse! '((1 2) 3)) '(3 (1 2))) (test (reverse! '(((1 . 2) . 3) 4)) '(4 ((1 . 2) . 3))) (test (reverse! (list (list) (list 1 2))) '((1 2) ())) (test (reverse! '((a) b c d)) '(d c b (a))) (test (reverse! (reverse! (list 1 2 3 4))) (list 1 2 3 4)) (test (reverse! ''foo) '(foo quote)) (test (reverse (reverse! (list 1 2 3))) (list 1 2 3)) (test (reverse (reverse! (reverse! (reverse (list 1 2 3))))) (list 1 2 3)) )) (test (let ((x (cons 1 2))) (set-car! x 3) x) (cons 3 2)) (test (let ((x (list 1 2))) (set-car! x 3) x) (list 3 2)) (test (let ((x (list (list 1 2) 3))) (set-car! x 22) x) (list 22 3)) (test (let ((x (cons 1 2))) (set-car! x '()) x) (cons '() 2)) (test (let ((x (list 1 (list 2 3 4)))) (set-car! x (list 5 (list 6))) x) (list (list 5 (list 6)) (list 2 3 4))) (test (let ((x '(((1) 2) (3)))) (set-car! x '((2) 1)) x) '(((2) 1) (3))) (test (let ((x ''foo)) (set-car! x "hi") x) (list "hi" 'foo)) (test (let ((x '((1 . 2) . 3))) (set-car! x 4) x) '(4 . 3)) (test (let ((x '(1 . 2))) (set-car! x (cdr x)) x) '(2 . 2)) (test (let ((x '(1 . 2))) (set-car! x x) (list? x)) #f) (test (let ((x (list 1))) (set-car! x '()) x) '(())) (test (let ((x '(((1 2) . 3) 4))) (set-car! x 1) x) '(1 4)) (test (let ((lst (cons 1 (cons 2 3)))) (set-car! (cdr lst) 4) lst) (cons 1 (cons 4 3))) (test (let ((lst (cons 1 (cons 2 3)))) (set-car! lst 4) lst) (cons 4 (cons 2 3))) ;(set-car! '(1 . 2) 3) ?? (test (let ((x (cons 1 2))) (set-cdr! x 3) x) (cons 1 3)) (test (let ((x (list 1 2))) (set-cdr! x 3) x) (cons 1 3)) (test (let ((x (list (list 1 2) 3))) (set-cdr! x 22) x) '((1 2) . 22)) (test (let ((x (cons 1 2))) (set-cdr! x '()) x) (list 1)) (test (let ((x (list 1 (list 2 3 4)))) (set-cdr! x (list 5 (list 6))) x) '(1 5 (6))) (test (let ((x '(((1) 2) (3)))) (set-cdr! x '((2) 1)) x) '(((1) 2) (2) 1)) (test (let ((x ''foo)) (set-cdr! x "hi") x) (cons 'quote "hi")) (test (let ((x '((1 . 2) . 3))) (set-cdr! x 4) x) '((1 . 2) . 4)) (test (let ((x '(1 . 2))) (set-cdr! x (cdr x)) x) '(1 . 2)) (test (let ((x '(1 . 2))) (set-cdr! x x) (list? x)) #f) (test (let ((x (list 1))) (set-cdr! x '()) x) (list 1)) (test (let ((x '(1 . (2 . (3 (4 5)))))) (set-cdr! x 4) x) '(1 . 4)) (test (let ((lst (cons 1 (cons 2 3)))) (set-cdr! (cdr lst) 4) lst) (cons 1 (cons 2 4))) (test (list-ref (list 1 2) 1) 2) (test (list-ref '(a b c d) 2) 'c) (test (list-ref (cons 1 2) 0) 1) ; !! (test (list-ref ''foo 0) 'quote) (test (list-ref '((1 2) (3 4)) 1) '(3 4)) (test (list-ref (list-ref (list (list 1 2) (list 3 4)) 1) 1) 4) (test (let ((x (list 1 2 3))) (list-ref x (list-ref x 1))) 3) ; (list-ref '(1 2 . 3) 0) -- why is this acceptable? (for-each (lambda (name op1 op2) (for-each (lambda (lst) (let ((val1 (catch #t (lambda () (op1 lst)) (lambda args 'error))) (val2 (catch #t (lambda () (op2 lst)) (lambda args 'error)))) (if (not (equal? val1 val2)) (begin (display "(") (display name) (display " ") (display lst) (display ")) returned ") (display val1) (display " ") (display val2) (newline))))) lists)) (list 'list-ref:0 'list-ref:1 'list-ref:2 'list-ref:3) (list car cadr caddr cadddr) (list (lambda (l) (list-ref l 0)) (lambda (l) (list-ref l 1)) (lambda (l) (list-ref l 2)) (lambda (l) (list-ref l 3)))) (for-each (lambda (arg) (test (list-ref (list 1 arg) 1) arg)) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (test (let ((x '(1 . 2))) (set-cdr! x x) (list-ref x 0)) 1) (test (let ((x '(1 . 2))) (set-cdr! x x) (list-ref x 1)) 1) (test (let ((x '(1 . 2))) (set-cdr! x x) (list-ref x 100)) 1) (if with-list-set! (begin (test (let ((x (list 1))) (list-set! x 0 2) x) (list 2)) (test (let ((x (cons 1 2))) (list-set! x 0 3) x) '(3 . 2)) (test (let ((x '((1) 2))) (list-set! x 0 1) x) '(1 2)) (test (let ((x '(1 2))) (list-set! x 1 (list 3 4)) x) '(1 (3 4))) (test (let ((x ''foo)) (list-set! x 0 "hi") x ) '("hi" foo)) (test (let ((x (list 1 2))) (list-set! x 0 x) (list? x)) #t) (test (let ((x (list 1 2))) (list-set! x 1 x) (list? x)) #t) (for-each (lambda (arg) (test (let ((x (list 1 2))) (list-set! x 0 arg) (list-ref x 0)) arg)) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) )) (test (let ((tree1 (list 1 (list 1 2) (list (list 1 2 3)) (list (list (list 1 2 3 4)))))) tree1) '(1 (1 2) ((1 2 3)) (((1 2 3 4))))) (test (let ((tree2 (list "one" (list "one" "two") (list (list "one" "two" "three"))))) tree2) '("one" ("one" "two") (("one" "two" "three")))) (test (let ((tree1 (list 1 (list 1 2) (list 1 2 3) (list 1 2 3 4)))) tree1) '(1 (1 2) (1 2 3) (1 2 3 4))) (test (let ((tree1 (list 1 (list 1 2))) (tree2 (list 1 (list 1 2)))) tree2) '(1 (1 2))) (test (let ((tree1 (list 1 (list 1 2))) (tree2 (list 1 (list 1 2)))) (eqv? tree1 tree2)) #f) (test (let ((tree1 (list ''a (list ''b ''c))) (tree2 (list ''a (list ''b ''c)))) tree2) '('a ('b 'c))) (test (let ((lst (list 1 (list 2 3)))) lst) '(1 (2 3))) (test (let* ((lst (list 1 (list 2 3))) (slst lst)) slst) '(1 (2 3))) (test (list 1) '(1)) (test (let ((a 1)) (list a 2)) '(1 2)) (test (let ((a 1)) (list 'a '2)) '(a 2)) (test (let ((a 1)) (list 'a 2)) '(a 2)) (test (list) '()) (test (let ((a (list 1 2))) a) '(1 2)) (test (let ((a (list 1 2))) (list 3 4 'a (car (cons 'b 'c)) (+ 6 -2))) '(3 4 a b 4)) (test (list) '()) (test (length (list quote do map call/cc lambda define if begin set! let let* cond and or for-each)) 15) (test (list-tail '(1 2 3) 0) '(1 2 3)) (test (list-tail '(1 2 3) 2) '(3)) (test (list-tail '(1 2 3) 3) '()) (test (list-tail '(1 2 3 . 4) 2) '(3 . 4)) (test (list-tail '(1 2 3 . 4) 3) 4) (test (let ((x (list 1 2 3))) (eq? (list-tail x 2) (cddr x))) #t) (test (list-tail '() 0) '()) (test (list-tail (list 1 2) 2) '()) (test (list-tail (cons 1 2) 0) '(1 . 2)) (test (list-tail (cons 1 2) 1) 2) (test (list-tail ''foo 1) '(foo)) (test (list-tail '((1 2) (3 4)) 1) '((3 4))) (test (list-tail (list-tail (list-tail '(1 2 3 4) 1) 1) 1) '(4)) (let ((x '(1 . 2))) (set-cdr! x x) (test (list-tail x 0) x)) (let ((x '(1 . 2))) (set-cdr! x x) (test (list-tail x 1) (cdr x))) (let ((x '(1 . 2))) (set-cdr! x x) (test (list-tail x 100) x)) (for-each (lambda (name op1 op2) (for-each (lambda (lst) (let ((val1 (catch #t (lambda () (op1 lst)) (lambda args 'error))) (val2 (catch #t (lambda () (op2 lst)) (lambda args 'error)))) (if (not (equal? val1 val2)) (begin (display "(") (display name) (display " ") (display lst) (display ")) returned ") (display val1) (display " ") (display val2) (newline))))) lists)) (list 'list-tail:0 'list-tail:1 'list-tail:2 'list-tail:3 'list-tail:4) (list (lambda (l) l) cdr cddr cdddr cddddr) (list (lambda (l) (list-tail l 0)) (lambda (l) (list-tail l 1)) (lambda (l) (list-tail l 2)) (lambda (l) (list-tail l 3)) (lambda (l) (list-tail l 4)))) (let ((e '((a 1) (b 2) (c 3)))) (test (assq 'a e) '(a 1)) (test (assq 'b e) '(b 2)) (test (assq 'd e) #f)) (test (assq (list 'a) '(((a)) ((b)) ((c)))) #f) (let ((xcons (cons 1 2)) (xvect (vector 1 2)) (xlambda (lambda () 1)) (xstr "abs")) (let ((e (list (list #t 1) (list #f 2) (list 'a 3) (list xcons 4) (list xvect 5) (list xlambda 6) (list xstr 7) (list car 8)))) (test (assq #t e) (list #t 1)) (test (assq #f e) (list #f 2)) (test (assq 'a e) (list 'a 3)) (test (assq xcons e) (list xcons 4)) (test (assq xvect e) (list xvect 5)) (test (assq xlambda e) (list xlambda 6)) (test (assq xstr e) (list xstr 7)) (test (assq car e) (list car 8)))) (let ((e '((1+i 1) (3.0 2) (5/3 3)))) (test (assq 1+i e) #f) (test (assq 3.0 e) #f) (test (assq 5/3 e) #f)) (let ((e '((a 1) (b 2) (c 3)))) (test (assv 'a e) '(a 1)) (test (assv 'b e) '(b 2)) (test (assv 'd e) #f)) (test (assv (list 'a) '(((a)) ((b)) ((c)))) #f) (let ((xcons (cons 1 2)) (xvect (vector 1 2)) (xlambda (lambda () 1)) (xstr "abs")) (let ((e (list (list #t 1) (list #f 2) (list 'a 3) (list xcons 4) (list xvect 5) (list xlambda 6) (list xstr 7) (list car 8)))) (test (assv #t e) (list #t 1)) (test (assv #f e) (list #f 2)) (test (assv 'a e) (list 'a 3)) (test (assv xcons e) (list xcons 4)) (test (assv xvect e) (list xvect 5)) (test (assv xlambda e) (list xlambda 6)) (test (assv xstr e) (list xstr 7)) (test (assv car e) (list car 8)))) (let ((e '((1+i 1) (3.0 2) (5/3 3) (#\a 4) ("hiho" 5)))) (test (assv 1+i e) '(1+i 1)) (test (assv 3.0 e) '(3.0 2)) (test (assv 5/3 e) '(5/3 3)) (test (assv #\a e) '(#\a 4)) (test (assv "hiho" e) #f)) (let ((e '(((a) 1) (#(a) 2) ("c" 3)))) (test (assv '(a) e) #f) (test (assv '#(a) e) #f) (test (assv (string #\c) e) #f)) (let ((lst '((2 . a) (3 . b)))) (set-cdr! (assv 3 lst) 'c) (test lst '((2 . a) (3 . c)))) (let ((e '((a 1) (b 2) (c 3)))) (test (assoc 'a e) '(a 1)) (test (assoc 'b e) '(b 2)) (test (assoc 'd e) #f)) (test (assoc (list 'a) '(((a)) ((b)) ((c)))) '((a))) (let ((xcons (cons 1 2)) (xvect (vector 1 2)) (xlambda (lambda () 1)) (xstr "abs")) (let ((e (list (list #t 1) (list #f 2) (list 'a 3) (list xcons 4) (list xvect 5) (list xlambda 6) (list xstr 7) (list car 8)))) (test (assoc #t e) (list #t 1)) (test (assoc #f e) (list #f 2)) (test (assoc 'a e) (list 'a 3)) (test (assoc xcons e) (list xcons 4)) (test (assoc xvect e) (list xvect 5)) (test (assoc xlambda e) (list xlambda 6)) (test (assoc xstr e) (list xstr 7)) (test (assoc car e) (list car 8)))) (let ((e '((1+i 1) (3.0 2) (5/3 3) (#\a 4) ("hiho" 5)))) (test (assoc 1+i e) '(1+i 1)) (test (assoc 3.0 e) '(3.0 2)) (test (assoc 5/3 e) '(5/3 3)) (test (assoc #\a e) '(#\a 4)) (test (assoc "hiho" e) '("hiho" 5))) (let ((e '(((a) 1) (#(a) 2) ("c" 3)))) (test (assoc '(a) e) '((a) 1)) (test (assoc '#(a) e) '(#(a) 2)) (test (assoc (string #\c) e) '("c" 3))) (test (assoc 'a '((b c) (a u) (a i))) '(a u)) (test (assoc 'a '((b c) ((a) u) (a i))) '(a i)) (test (assoc (list 'a) '(((a)) ((b)) ((c)))) '((a))) (test (assoc 5 '((2 3) (5 7) (11 13))) '(5 7)) (test (assoc 'key '()) #f) (test (assoc 'key '(() ())) #f) (test (assoc '() '()) #f) (test (append '(a b c) '()) '(a b c)) (test (append '() '(a b c)) '(a b c)) (test (append '(a b) '(c d)) '(a b c d)) (test (append '(a b) 'c) '(a b . c)) (test (equal? (append (list 'a 'b 'c) (list 'd 'e 'f) '() '(g)) '(a b c d e f g)) #t) (test (append (list 'a 'b 'c) (list 'd 'e 'f) '() (list 'g)) '(a b c d e f g)) (test (append (list 'a 'b 'c) 'd) '(a b c . d)) (test (append '() '()) '()) (test (append '() (list 'a 'b 'c)) '(a b c)) (test (append) '()) (test (append 'a) 'a) (test (append '(x) '(y)) '(x y)) (test (append '(a) '(b c d)) '(a b c d)) (test (append '(a (b)) '((c))) '(a (b) (c))) (test (append '(a b) '(c . d)) '(a b c . d)) (test (append '() 'a) 'a) (test (append '(a b) (append (append '(c)) '(e) 'f)) '(a b c e . f)) (test (append ''foo 'foo) '(quote foo . foo)) (test (append '() (cons 1 2)) '(1 . 2)) (test (append '() '() '()) '()) (test (append (cons 1 2)) '(1 . 2)) (test (append #f) #f) (test (append '() #f) #f) (test (append '(1 2) #f) '(1 2 . #f)) (test (append '() '() #f) #f) (test (append '() '(1 2) #f) '(1 2 . #f)) (test (append '(1 2) '() #f) '(1 2 . #f)) (test (append '(1 2) '(3 4) #f) '(1 2 3 4 . #f)) (test (append '() '() '() #f) #f) (test (append '(1 2) '(3 4) '(5 6) #f) '(1 2 3 4 5 6 . #f)) (test (append 0) 0) ; is this correct? (test (append '() 0) 0) (test (append '() '() 0) 0) (test (let* ((x '(1 2 3)) (y (append x '()))) (eq? x y)) #f) ; check that append returns a new list (test (let* ((x '(1 2 3)) (y (append x '()))) (equal? x y)) #t) (test (let* ((x (list 1 2 3)) (y (append x (list)))) (eq? x y)) #f) (test (append '(1) 2) '(1 . 2)) (let ((x (list 1 2 3))) (let ((y (append x '()))) (set-car! x 0) (test (= (car y) 1) #t))) (let ((x (list 1 2 3))) (let ((y (append x '()))) (set-cdr! x 0) (test (and (= (car y) 1) (= (cadr y) 2) (= (caddr y) 3)) #t))) (test (memq 'a '(a b c)) '(a b c)) (test (memq 'b '(a b c)) '(b c)) (test (memq 'a '(b c d)) #f) (test (memq (list 'a) '(b (a) c)) #f) (test (memq 'a '(b a c a d a)) '(a c a d a)) (let ((v (vector 'a))) (test (memq v (list 'a 1.2 v "hi")) (list v "hi"))) (test (memq #f '(1 a #t "hi" #f 2)) '(#f 2)) (test (memq eq? (list 2 eqv? 1 eq?)) (list eq?)) (test (memq eq? (list 2 eqv? 2)) #f) (test (memv 101 '(100 101 102)) '(101 102)) (test (memv 3.4 '(1.2 2.3 3.4 4.5)) '(3.4 4.5)) (test (memv 3.4 '(1.3 2.5 3.7 4.9)) #f) (let ((ls (list 'a 'b 'c))) (set-car! (memv 'b ls) 'z) (test ls '(a z c))) (test (member (list 'a) '(b (a) c)) '((a) c)) (test (member "b" '("a" "c" "b")) '("b")) (test (member 1 '(3 2 1 4)) '(1 4)) (test (member car (list abs car modulo)) (list car modulo)) (test (member do (list quote map do)) (list do)) (test (member 5/2 (list 1/3 2/4 5/2)) '(5/2)) (test (member 'a '(a b c d)) '(a b c d)) (test (member 'b '(a b c d)) '(b c d)) (test (member 'c '(a b c d)) '(c d)) (test (member 'd '(a b c d)) '(d)) (test (member 'e '(a b c d)) #f) ;;; -------------------------------------------------------------------------------- ;;; VECTORS ;;; -------------------------------------------------------------------------------- (test (vector? (make-vector 6)) #t) (test (vector? (make-vector 6 #\a)) #t) (test (vector? (make-vector 0)) #t) ;; (test (vector? #*1011) #f) (test (vector? '#(0 (2 2 2 2) "Anna")) #t) (test (vector? '#()) #t) (test (vector? '#("hi")) #t) (test (vector? (vector 1)) #t) (test (let ((v (vector 1 2 3))) (vector? v)) #t) (for-each (lambda (arg) (test (vector? arg) #f)) (list #\a 1 '() (list 1) '(1 . 2) #f "hi" 'a-symbol abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (let ((v (make-vector 3 #f))) (and (vector? v) (= (vector-length v) 3) (eq? (vector-ref v 1) #f))) #t) (test (let ((v (make-vector 1 1))) (and (vector? v) (= (vector-length v) 1) (vector-ref v 0))) 1) (test (let ((v (make-vector 0 1))) (and (vector? v) (= (vector-length v) 0))) #t) (test (do ((vec (make-vector 5)) (i 0 (+ i 1))) ((= i 5) vec) (vector-set! vec i i)) '#(0 1 2 3 4)) (test (let ((v (make-vector 5))) (for-each (lambda (i) (vector-set! v i (* i i))) '(0 1 2 3 4)) v) '#(0 1 4 9 16)) (test (make-vector 2 'hi) '#(hi hi)) (test (make-vector 0) '#()) (test (make-vector 0 'hi) '#()) (test (make-vector 3 (make-vector 1 'hi)) '#(#(hi) #(hi) #(hi))) (test (make-vector 3 '#(hi)) '#(#(hi) #(hi) #(hi))) (test (make-vector 3 (list)) '#(() () ())) (test (make-vector 3 (make-vector 1 (make-vector 1 'hi))) '#(#(#(hi)) #(#(hi)) #(#(hi)))) (for-each (lambda (arg) (test (vector-ref (make-vector 1 arg) 0) arg)) (list #\a 1 '() (list 1) '(1 . 2) #f "hi" 'a-symbol abs 3.14 3/4 1.0+1.0i #t (vector 1 2 3) (lambda (a) (+ a 1)))) (test (vector 1 2 3) '#(1 2 3)) (test (vector 1 '(2) 3) '#(1 (2) 3)) (test (vector) '#()) (test (vector (vector (vector))) '#(#(#()))) (test (vector (vector) (vector) (vector)) '#(#() #() #())) (test (vector (list)) '#(())) (test '#(1 #\a "hi" hi) (vector 1 #\a "hi" 'hi)) (test (let ((v (make-vector 4 "hi"))) (vector-set! v 0 1) (vector-set! v 1 #\a) (vector-set! v 3 'hi) v) '#(1 #\a "hi" hi)) (let ((x 34)) (test (vector x 'x) '#(34 x))) (for-each (lambda (arg) (test (vector-ref (vector arg) 0) arg)) (list #\a 1 '() (list 1) '(1 . 2) #f "hi" 'a-symbol abs 3.14 3/4 1.0+1.0i #t (vector 1 2 3) (lambda (a) (+ a 1)))) (test (vector->list '#(0)) (list 0)) (test (vector->list (vector)) '()) (test (vector->list '#(a b c)) '(a b c)) (test (vector->list '#(#(0) #(1))) '(#(0) #(1))) (test (vector? (list-ref (let ((v (vector 1 2))) (vector-set! v 1 v) (vector->list v)) 1)) #t) (test (list->vector '()) '#()) (test (list->vector '(a b c)) '#(a b c)) (test (list->vector (list (list 1 2) (list 3 4))) '#((1 2) (3 4))) (test (list->vector ''foo) '#(quote foo)) (test (list->vector (list)) '#()) (test (list->vector (list 1)) '#(1)) (test (list->vector (list (list))) '#(())) (test (list->vector (list 1 #\a "hi" 'hi)) '#(1 #\a "hi" hi)) (for-each (lambda (arg) (if (list? arg) (test (vector->list (list->vector arg)) arg))) lists) (test (list->vector (vector->list (vector))) '#()) (test (list->vector (vector->list (vector 1))) '#(1)) (test (vector->list (list->vector (list))) '()) (test (vector->list (list->vector (list 1))) '(1)) (test (vector-length (vector)) 0) (test (vector-length (vector 1)) 1) (test (vector-length (make-vector 128)) 128) (test (vector-length '#(a b c d e f)) 6) (test (vector-length '#()) 0) (test (vector-length (vector #\a (list 1 2) (vector 1 2))) 3) (test (vector-length '#(#(#(hi)) #(#(hi)) #(#(hi)))) 3) (test (vector-length (vector 1 2 3 4)) 4) (test (vector-length (let ((v (vector 1 2))) (vector-set! v 1 v) v)) 2) (test (vector-length (let ((v (vector 1 2))) (vector-set! v 1 v) (vector-ref v 1))) 2) (test (vector-ref '#(1 1 2 3 5 8 13 21) 5) 8) (test (vector-ref '#(1 1 2 3 5 8 13 21) (let ((i (round (* 2 (acos -1))))) (if (inexact? i) (inexact->exact i) i))) 13) (test (let ((v (make-vector 1 0))) (vector-ref v 0)) 0) (test (let ((v (vector 1 (list 2) (make-vector 3 #\a)))) (vector-ref v 1)) (list 2)) (test (let ((v (vector 1 (list 2) (make-vector 3 #\a)))) (vector-ref v 2)) '#(#\a #\a #\a)) (test (let ((v (vector 1 (list 2) (make-vector 3 #\a)))) (vector-ref (vector-ref v 2) 1)) #\a) (test (vector-ref '#(a b c) 1) 'b) (test (vector-ref '#(()) 0) '()) (test (vector-ref '#(#()) 0) '#()) (test (vector-ref (vector-ref (vector-ref '#(1 (2) #(3 (4) #(5))) 2) 2) 0) 5) (test (let ((v (vector 1 2))) (vector-set! v 1 v) (eq? (vector-ref v 1) v)) #t) (test (let ((vec (vector 0 '(2 2 2 2) "Anna"))) (vector-set! vec 1 '("Sue" "Sue")) vec) '#(0 ("Sue" "Sue") "Anna")) (test (let ((v (vector 1 2 3))) (vector-set! v 1 32) v) '#(1 32 3)) (let ((v (make-vector 8 #f))) (for-each (lambda (arg) (vector-set! v 1 arg) (test (vector-ref v 1) arg)) (list #\a 1 '() (list 1) '(1 . 2) #f "hi" 'a-symbol abs 3.14 3/4 1.0+1.0i #t (vector 1 2 3) (lambda (a) (+ a 1))))) (test (let ((v (vector 1 2 3))) (vector-set! v 1 0) v) '#(1 0 3)) (test (let ((v (vector #f))) (vector-set! v 0 (vector)) v) '#(#())) (test (let ((v (vector 1 (list 2) (vector 1 2 3)))) (vector-set! (vector-ref v 2) 0 21) v) '#(1 (2) #(21 2 3))) (test (let ((v (vector 1 2 3))) (vector-fill! v 0) v) '#(0 0 0)) (test (let ((v (vector))) (vector-fill! v #f) v) '#()) (let ((v (make-vector 8 #f))) (for-each (lambda (arg) (vector-fill! v arg) (test (vector-ref v 1) arg)) (list #\a 1 '() (list 1) '(1 . 2) #f "hi" 'a-symbol abs 3.14 3/4 1.0+1.0i #t (vector 1 2 3) (lambda (a) (+ a 1))))) ;(let ((str "hi") (v (make-vector 3))) (vector-fill! v str) (string-set! (vector-ref v 0) 1 #\a) str) -> mutable string error ;(let ((lst (list 1 2)) (v (make-vector 3))) (vector-fill! v lst) (list-set! (vector-ref v 0) 1 #\a) lst) -> '(1 #\a) (if with-vector-for-each (begin (test (let ((sum 0)) (vector-for-each (lambda (n) (set! sum (+ sum n))) (vector 1 2 3)) sum) 6) (test (let ((sum 0)) (vector-for-each (lambda (n m) (set! sum (+ sum n (- m)))) (vector 1 2 3) (vector 4 5 6)) sum) -9) (test (let () (vector-for-each (lambda (n) (error "oops")) (vector)) #f) #f) (test (let ((sum 0)) (vector-for-each (lambda (n m p) (set! sum (+ sum n (- m) (* 2 p)))) (vector 1 2 3) (vector 4 5 6) (vector 6 7 8)) sum) 33) (test (let ((sum 0)) (vector-for-each (lambda (n) (vector-for-each (lambda (m) (set! sum (+ sum (* m n)))) (vector 1 2 3))) (vector 4 5 6)) sum) 90) (test (call/cc (lambda (return) (vector-for-each (lambda (n) (return "oops")) (vector 1 2 3)))) "oops") (test (call/cc (lambda (return) (vector-for-each (lambda (n) (if (even? n) (return n))) (vector 1 3 8 7 9 10)))) 8) (test (vector-map (lambda (n) (+ 1 n)) (vector 1 2 3)) '#(2 3 4)) (test (vector-map (lambda (n m) (- n m)) (vector 1 2 3) (vector 4 5 6)) '#(-3 -3 -3)) (test (vector-map (lambda (n m p) (+ n m p)) (vector 1 2 3) (vector 4 5 6) (vector 6 7 8)) '#(11 14 17)) (test (vector-map (lambda (n) (vector-map (lambda (m) (* m n)) (vector 1 2 3))) (vector 4 5 6)) '#(#(4 8 12) #(5 10 15) #(6 12 18))) (test (call/cc (lambda (return) (vector-map (lambda (n) (return "oops")) (vector 1 2 3)))) "oops") (test (call/cc (lambda (return) (vector-map (lambda (n) (if (even? n) (return n))) (vector 1 3 8 7 9 10)))) 8) )) ;;; TODO: hash-table-for-each tests (if (provided? 'multidimensional-vectors) (let ((v1 (make-vector 3 1))) (num-test (v1 1) 1) (set! (v1 1) 2) (num-test (v1 1) 2) (let ((i0 0) (i2 2)) (num-test (v1 i0) 1) (num-test (vector-ref v1 i2) 1) (set! (v1 i0) 0) (num-test (v1 0) 0) (set! (v1 i0) i2) (num-test (v1 i0) i2)) (test (vector-dimensions v1) '(3)) (set! v1 (make-vector '(3 2))) (test (vector-dimensions v1) '(3 2)) (vector-set! v1 1 1 0) (num-test (vector-ref v1 1 1) 0) (let ((i0 1) (i1 1) (i2 32)) (set! (v1 i0 i1) i2) (num-test (vector-ref v1 1 1) 32) (num-test (v1 i0 i1) i2) (vector-set! v1 0 1 3) (num-test (v1 0 1) 3) (num-test (v1 1 1) 32)) (set! v1 (make-vector '(2 4 3) 1)) (test (vector-dimensions v1) '(2 4 3)) (num-test (vector-ref v1 1 1 1) 1) (vector-set! v1 0 0 0 32) (num-test (v1 0 0 0) 32) (set! (v1 0 1 1) 3) (num-test (v1 0 1 1) 3) (if with-vector-for-each (test (let ((v1 (make-vector '(3 2) 1)) (v2 (make-vector '(3 2) 2)) (sum 0)) (vector-for-each (lambda (n m) (set! sum (+ sum n m))) v1 v2) sum) 18)) (test (equal? (make-vector 0) (make-vector '(0))) #t) (test (make-vector (1 . 2) "hi") 'error))) (set! lists '()) ;;; -------------------------------------------------------------------------------- ;;; PORTS ;;; -------------------------------------------------------------------------------- (define start-input-port (current-input-port)) (define start-output-port (current-output-port)) (test (input-port? (current-input-port)) #t) (for-each (lambda (arg) (if (input-port? arg) (begin (display "(input-port? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" #f (integer->char 65) 1 (list 1 2) '#t '3 (make-vector 3) 3.14 3/4 1.0+1.0i #\f)) (test (call-with-input-file "s7test.scm" input-port?) #t) (if (not (eq? start-input-port (current-input-port))) (begin (display "call-with-input-file did not restore current-input-port? ") (display start-input-port) (display " ") (display (current-input-port)) (newline))) (test (let ((this-file (open-input-file "s7test.scm"))) (let ((res (input-port? this-file))) (close-input-port this-file) res)) #t) (if (not (eq? start-input-port (current-input-port))) (begin (display "open-input-file clobbered current-input-port? ") (display start-input-port) (display " ") (display (current-input-port)) (newline))) (if with-open-input-string-and-friends (test (call-with-input-string "(+ 1 2)" input-port?) #t)) (if with-open-input-string-and-friends (test (let ((this-file (open-input-string "(+ 1 2)"))) (let ((res (input-port? this-file))) (close-input-port this-file) res)) #t)) (test (+ 100 (call-with-input-string "123" (lambda (p) (values (read p) 1)))) 224) (test (output-port? (current-output-port)) #t) (write-char #\space (current-output-port)) (write " " (current-output-port)) (newline (current-output-port)) (for-each (lambda (arg) (if (output-port? arg) (begin (display "(output-port? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" #f (integer->char 65) 1 (list 1 2) '#t '3 (make-vector 3) 3.14 3/4 1.0+1.0i #\f)) (test (call-with-output-file "tmp1.r5rs" output-port?) #t) (if (not (eq? start-output-port (current-output-port))) (begin (display "call-with-output-file did not restore current-output-port? ") (display start-output-port) (display " ") (display (current-output-port)) (newline))) (test (let ((this-file (open-output-file "tmp1.r5rs"))) (let ((res (output-port? this-file))) (close-output-port this-file) res)) #t) (if (not (eq? start-output-port (current-output-port))) (begin (display "open-output-file clobbered current-output-port? ") (display start-output-port) (display " ") (display (current-output-port)) (newline))) (if with-open-input-string-and-friends (test (let ((val #f)) (call-with-output-string (lambda (p) (set! val (output-port? p)))) val) #t)) (if with-open-input-string-and-friends (test (let ((res #f)) (let ((this-file (open-output-string))) (set! res (output-port? this-file)) (close-output-port this-file) res)) #t)) (for-each (lambda (arg) (if (eof-object? arg) (begin (display "(eof-object? ") (display arg) (display ") returned #t?") (newline)))) (list "hi" -1 #\a 1 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #f #t (lambda (a) (+ a 1)))) (call-with-output-file "tmp1.r5rs" (lambda (p) (display "3.14" p))) (test (call-with-input-file "tmp1.r5rs" (lambda (p) (read p) (let ((val (read p))) (eof-object? val)))) #t) (test (call-with-input-file "tmp1.r5rs" (lambda (p) (read-char p))) #\3) (test (call-with-input-file "tmp1.r5rs" (lambda (p) (peek-char p))) #\3) (test (call-with-input-file "tmp1.r5rs" (lambda (p) (peek-char p) (read-char p))) #\3) (test (call-with-input-file "tmp1.r5rs" (lambda (p) (list->string (list (read-char p) (read-char p) (read-char p) (read-char p))))) "3.14") (test (call-with-input-file "tmp1.r5rs" (lambda (p) (list->string (list (read-char p) (peek-char p) (read-char p) (read-char p) (peek-char p) (read-char p))))) "3..144") (for-each (lambda (arg) (call-with-output-file "tmp1.r5rs" (lambda (p) (write arg p))) (test (call-with-input-file "tmp1.r5rs" (lambda (p) (read p))) arg)) (list "hi" -1 #\a 1 'a-symbol (make-vector 3 0) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) (cons 1 2))) ;;; r4rstest (let* ((write-test-obj '(#t #f a () 9739 -3 . #((test) "te \" \" st" "" test #() b c))) (load-test-obj (list 'define 'foo (list 'quote write-test-obj)))) (define (check-test-file name) (let ((val (call-with-input-file name (lambda (test-file) (test (read test-file) load-test-obj) (test (eof-object? (peek-char test-file)) #t) (test (eof-object? (read-char test-file)) #t) (input-port? test-file))))) (if (not (eq? val #t)) (begin (display "input-port? in call-with-input-file? returned ") (display val) (newline))))) (test (call-with-output-file "tmp1.r5rs" (lambda (test-file) (write-char #\; test-file) (display #\; test-file) (display ";" test-file) (write write-test-obj test-file) (newline test-file) (write load-test-obj test-file) (output-port? test-file))) #t) (check-test-file "tmp1.r5rs") (let ((test-file (open-output-file "tmp2.r5rs"))) (write-char #\; test-file) (display #\; test-file) (display ";" test-file) (write write-test-obj test-file) (newline test-file) (write load-test-obj test-file) (test (output-port? test-file) #t) (close-output-port test-file) (check-test-file "tmp2.r5rs"))) (call-with-output-file "tmp1.r5rs" (lambda (p) (display "3.14" p))) (test (with-input-from-file "tmp1.r5rs" (lambda () (read))) 3.14) (if (not (eq? start-input-port (current-input-port))) (begin (display "with-input-from-file did not restore current-input-port? ") (display start-input-port) (display " ") (display (current-input-port)) (newline))) (test (with-input-from-file "tmp1.r5rs" (lambda () (eq? (current-input-port) start-input-port))) #f) (test (with-output-to-file "tmp1.r5rs" (lambda () (eq? (current-output-port) start-output-port))) #f) (if (not (eq? start-output-port (current-output-port))) (begin (display "with-output-to-file did not restore current-output-port? ") (display start-output-port) (display " ") (display (current-output-port)) (newline))) (let ((newly-found-sonnet-probably-by-shakespeare "This is the story, a sad tale but true \ Of a programmer who had far too little to do.\ One day as he sat in his hut swilling stew, \ He cried \"CLM takes forever, it's stuck in a slough!,\ Its C code is slow, too slow by a few.\ Why, with just a small effort, say one line or two,\ It could outpace a no-op, you could scarcely say 'boo'\"!\ So he sat in his kitchen and worked like a dog.\ He typed and he typed 'til his mind was a fog. \ Now 6000 lines later, what wonders we see! \ CLM is much faster, and faster still it will be!\ In fact, for most cases, C beats the DSP! \ But bummed is our coder; he grumbles at night. \ That DSP code took him a year to write. \ He was paid many dollars, and spent them with glee,\ But his employer might mutter, this result were he to see.")) (call-with-output-file "tmp1.r5rs" (lambda (p) (write newly-found-sonnet-probably-by-shakespeare p))) (let ((sonnet (with-input-from-file "tmp1.r5rs" (lambda () (read))))) (if (or (not (string? sonnet)) (not (string=? sonnet newly-found-sonnet-probably-by-shakespeare))) (begin (display "write/read long string returned: ") (display sonnet) (newline)))) (let ((file (open-output-file "tmp1.r5rs"))) (let ((len (string-length newly-found-sonnet-probably-by-shakespeare))) (write-char #\" file) (do ((i 0 (+ i 1))) ((= i len)) (let ((chr (string-ref newly-found-sonnet-probably-by-shakespeare i))) (if (char=? chr #\") (write-char #\\ file)) (write-char chr file))) (write-char #\" file) (close-output-port file))) (let ((file (open-input-file "tmp1.r5rs"))) (let ((sonnet (read file))) (close-input-port file) (if (or (not (string? sonnet)) (not (string=? sonnet newly-found-sonnet-probably-by-shakespeare))) (begin (display "write-char/read long string returned: ") (display sonnet) (newline)))))) (let ((file (open-output-file "tmp1.r5rs"))) (for-each (lambda (arg) (write arg file) (write-char #\space file)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (close-output-port file)) (let ((file (open-input-file "tmp1.r5rs"))) (for-each (lambda (arg) (let ((val (read file))) (if (not (equal? val arg)) (begin (display "read/write ") (display arg) (display " returned ") (display val) (newline))))) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (close-input-port file)) (with-output-to-file "tmp1.r5rs" (lambda () (write lists))) (let ((val (with-input-from-file "tmp1.r5rs" (lambda () (read))))) (if (not (equal? val lists)) (begin (display "read/write lists returned ") (display val) (newline)))) (if with-open-input-string-and-friends (if (not (string=? "" (with-output-to-string (lambda () (display ""))))) (begin (display "with-output-to-string null string?")))) (if with-open-input-string-and-friends (let ((str (with-output-to-string (lambda () (with-input-from-string "hiho123" (lambda () (do ((c (read-char) (read-char))) ((eof-object? c)) (display c)))))))) (if (not (string=? str "hiho123")) (begin (display "with string ports: \"") (display str) (display "\"?") (newline))))) (if with-open-input-string-and-friends (begin (if (not (eof-object? (with-input-from-string "" (lambda () (read-char))))) (begin (display ";input from null string not #?") (newline)) (let ((EOF (with-input-from-string "" (lambda () (read-char))))) (if (not (eq? (with-input-from-string "" (lambda () (read-char))) (with-input-from-string "" (lambda () (read-char))))) (begin (display "# is not eq? to itself?") (newline))) (if (char? EOF) (do ((c 0 (+ c 1))) ((= c 256)) (if (char=? EOF (integer->char c)) (begin (display "# is char=? to ") (display (integer->char c)) (newline))))))))) (test (+ 100 (call-with-output-file "tmp.r5rs" (lambda (p) (write "1" p) (values 1 2)))) 103) (test (+ 100 (with-output-to-file "tmp.r5rs" (lambda () (write "2") (values 1 2)))) 103) (if with-open-input-string-and-friends (let ((str (with-output-to-string (lambda () (with-input-from-string "hiho123" (lambda () (do ((c (read-char) (read-char))) ((or (not (char-ready?)) (eof-object? c))) (display c)))))))) (if (not (string=? str "hiho123")) (begin (display "with string ports: \"") (display str) (display "\"?") (newline))))) (if with-open-input-string-and-friends (let ((str (with-output-to-string (lambda () (with-input-from-string "" (lambda () (do ((c (read-char) (read-char))) ((eof-object? c)) (display c)))))))) (if (not (string=? str "")) (begin (display "with string ports and null string: \"") (display str) (display "\"?") (newline))))) (if with-open-input-string-and-friends (let ((str (with-output-to-string ; this is from the guile-user mailing list, I think -- don't know who wrote it (lambda () (with-input-from-string "A2B5E3426FG0ZYW3210PQ89R." (lambda () (call/cc (lambda (hlt) (define (nextchar) (let ((c (read-char))) (if (and (char? c) (char=? c #\space)) (nextchar) c))) (define inx (lambda() (let in1 () (let ((c (nextchar))) (if (char-numeric? c) (let ((r (nextchar))) (let out*n ((n (- (char->integer c) (char->integer #\0)))) (out r) (if (not (zero? n)) (out*n (- n 1))))) (out c)) (in1))))) (define (move-char c) (write-char c) (if (char=? c #\.) (begin (hlt)))) (define outx (lambda() (let out1 () (let h1 ((n 16)) (move-char (in)) (move-char (in)) (move-char (in)) (if (= n 1) (begin (out1)) (begin (write-char #\space) (h1 (- n 1))) ))))) (define (in) (call/cc (lambda(return) (set! outx return) (inx)))) (define (out c) (call/cc (lambda(return) (set! inx return) (outx c)))) (outx))))))))) (if (not (string=? str "ABB BEE EEE E44 446 66F GZY W22 220 0PQ 999 999 999 R.")) (format #t "call/cc with-input-from-string str: ~A~%" str)))) (let ((badfile "tmp1.r5rs")) (let ((p (open-output-file badfile))) (close-output-port p)) (load badfile)) (if with-procedure-arity (let ((loadit "tmp1.r5rs")) (let ((p (open-output-file loadit))) (display "(define s7test-var 314) (define (s7test-func) 314) (define-macro (s7test-mac a) `(+ ,a 2))" p) (newline p) (close-output-port p) (load loadit) (test (= s7test-var 314) #t) (test (s7test-func) 314) (test (s7test-mac 1) 3) (set! p (open-output-file loadit)) ; hopefully this starts a new file (display "(define s7test-var 3) (define (s7test-func) 3) (define-macro (s7test-mac a) `(+ ,a 1))" p) (newline p) (close-output-port p) (load loadit) (test (= s7test-var 3) #t) (test (s7test-func) 3) (test (s7test-mac 1) 2) ))) (if with-open-input-string-and-friends (test (+ 100 (with-input-from-string "123" (lambda () (values (read) 1)))) 224)) ;;; -------------------------------------------------------------------------------- ;;; CONTROL OPS ;;; -------------------------------------------------------------------------------- (define control-ops (list lambda define quote if begin set! let let* letrec cond case and or do call/cc eval apply for-each map values call-with-values dynamic-wind quasiquote)) (for-each (lambda (op) (if (not (eq? op op)) (begin (display op) (display " not eq? to itself?") (newline)))) control-ops) (for-each (lambda (op) (if (not (eqv? op op)) (begin (display op) (display " not eqv? to itself?") (newline)))) control-ops) (for-each (lambda (op) (if (not (equal? op op)) (begin (display op) (display " not equal? to itself?") (newline)))) control-ops) (define question-ops (list boolean? eof-object? string? number? integer? real? rational? complex? char? list? vector? pair? null?)) (for-each (lambda (ques) (for-each (lambda (op) (if (ques op) (begin (display ques) (display " ") (display op) (display " returned #t?") (newline)))) control-ops)) question-ops) (for-each (lambda (s) (if (not (symbol? s)) (begin (display "(symbol? ") (display s) (display " returned #f?") (newline)))) '(+ - ... !.. $.+ %.- &.! *.: /:. <-. =. >. ?. ~. _. ^.)) ;;; -------- if -------- (test ((if #f + *) 3 4) 12) (test (if (> 3 2) 'yes 'no) 'yes) (test (if (> 2 3) 'yes 'no) 'no) (test (if (> 3 2) (- 3 2) (+ 3 2)) 1) (test (if (> 3 2) 1) 1) (test (if '() 1 2) 1) (test (if 't 1 2) 1) (test (if #t 1 2) 1) (test (if '#() 1 2) 1) (test (if 1 2 3) 2) (test (if 0 2 3) 2) (test (if (list) 2 3) 2) (test (if "" 2 3) 2) (test (let ((a #t) (b #f) (c #t) (d #f)) (if (if (if (if d d c) d b) d a) 'a 'd)) 'a) (test (let ((a #t) (b #f) (c #t) (d #f)) (if a (if b (if c (if d d c) c) 'b) 'a)) 'b) ;(test (let ((a #t) (b #f) (c #t) (d #f)) (((if a if 'gad) c if 'gad) (not d) 'a 'gad)) 'a) (test (let ((a #t) (b #f) (c #t) (d #f)) (if b (if a (if d 'gad) 'gad) (if d 'gad 'a))) 'a) (let ((a #t)) (for-each (lambda (arg) (test (if a arg 'gad) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2)))) (let ((a #t)) (for-each (lambda (arg) (test (if (not a) 'gad arg) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2)))) (test (let ((ctr 0) (a #t)) (if a (let ((b ctr)) (set! ctr (+ ctr 1)) (list b ctr)) (let ((c ctr)) (set! ctr (+ ctr 100)) (list c ctr)))) (list 0 1)) (test (if if if if) if) ;(test (((if if if) if if) if if 'gad) if) (test (if if (if if if) if) if) ;(test (let ((car if)) (car #t 0 1)) 0) ;(test ((car (list if)) #t 0 1) 0) (test (symbol->string 'if) "if") (test (if (and if (if if if)) if 'gad) if) ;(test (let ((if #t)) (or if)) #t) ;(test (let ((if +)) (if 1 2 3)) 6) (test (let ((ctr 0)) (if (let () (set! ctr (+ ctr 1)) (= ctr 1)) 0 1)) 0) (test (let ((ctr 0)) (if (let () (set! ctr (+ ctr 1)) (if (= ctr 1) (> 3 2) (< 3 2))) 0 1)) 0) (test ( if (> 3 2) 1 2) 1) (test (let ((alist (list (list map 1) (list car 2) (list if 3) (list do 4)))) (assoc if alist)) (list if 3)) (test (let ((alist (list (list map 1) (list car 2) (list if 3) (list do 4)))) (assv if alist)) (list if 3)) (test (let ((alist (list (list map 1) (list car 2) (list if 3) (list do 4)))) (assq if alist)) (list if 3)) (test (let ((alist (list map car if do))) (member if alist)) (list if do)) (test (let ((alist (list map car if do))) (memv if alist)) (list if do)) (test (let ((alist (list map car if do))) (memq if alist)) (list if do)) ;(test ((vector-ref (vector if) 0) #t 1 2) 1) ;(test ((vector-ref (make-vector 1 if) 0) #t 1 2) 1) (test ((if #t + -) 3 4) 7) (test (list (if 0 1 2)) (list 1)) ;(test ((car (list if map)) #f 1 2) 2) (test (let ((ctr 0)) (if (= ctr 0) (let () (set! ctr (+ ctr 1)) (if (= ctr 1) 2 3)) (let () (set! ctr (+ ctr 1)) (if (= ctr 1) 4 5)))) 2) (test (let ((x (cons 1 2))) (set-cdr! x x) (if x 1 2)) 1) (test (let ((ctr 0)) (if (let ((ctr 123)) (set! ctr (+ ctr 1)) (= ctr 124)) (let () (set! ctr (+ ctr 100)) ctr) (let () (set! ctr (+ ctr 1000)) ctr)) ctr) 100) (test (if (let ((if 3)) (> 2 if)) 4 5) 5) (test (let ((ctr 0)) (call/cc (lambda (exit) (if (> 3 2) (let () (exit ctr) (set! ctr 100) ctr) #f)))) 0) (test (let ((ctr 0)) (call/cc (lambda (exit) (if (< 3 2) #f (let () (exit ctr) (set! ctr 100) ctr))))) 0) (test (let ((ctr 0)) (call/cc (lambda (exit) (if (let () (exit ctr) (set! ctr 100) ctr) 123 321)))) 0) (test (let ((ctr 0)) (if (> 3 2) (call/cc (lambda (exit) (set! ctr (+ ctr 1)) (exit ctr))) #f) ctr) 1) (test (let ((ctr 0)) (do ((x 0 (+ x 1))) ((= x 12)) (if (> x 0) (if (> x 1) (if (> x 2) (if (> x 3) (if (> x 4) (if (> x 5) (if (> x 6) (if (> x 7) (if (> x 8) (if (> x 9) (if (> x 10) (set! ctr (+ ctr 1000)) (set! ctr (- ctr 1))) (set! ctr (- ctr 2))) (set! ctr (- ctr 3))) (set! ctr (- ctr 4))) (set! ctr (- ctr 5))) (set! ctr (- ctr 6))) (set! ctr (- ctr 7))) (set! ctr (- ctr 8))) (set! ctr (- ctr 9))) (set! ctr (- ctr 10))) (set! ctr (- ctr 11)))) ctr) 934) (test (let ((ctr 0)) (do ((x 0 (+ x 1))) ((= x 12)) (if (> x 0) (if (> x 1) (if (> x 2) (if (> x 3) (if (> x 4) (if (> x 5) (if (> x 6) (if (> x 7) (if (> x 8) (if (> x 9) (if (> x 10) (set! ctr (+ ctr 1000)) (set! ctr (- ctr 1))) (set! ctr (- ctr 2))) (set! ctr (- ctr 3))) (set! ctr (- ctr 4)))))))) (set! ctr (- ctr 10))) (set! ctr (- ctr 11)))) ctr) 969) ;;; -------- quote -------- (test (quote a) 'a) (test 'a (quote a)) (test '1 1) (test '(+ 2 3) '(+ 2 3)) (test '"hi" "hi") (test '#\a #\a) (test '#f #f) (test '#t #t) (test '#b1 1) (test '() '()) (test (+ '1 '2) 3) (test (+ '1 '2) '3) (test (+ ' 1 ' 2) ' 3) (test (char? '#\a) #t) (test (string? '"hi") #t) (test (boolean? '#t) #t) (test (if '#f 2 3) 3) (test (if '#t 2 3) 2) (test (vector? '#()) #t) (test (char? (quote #\a)) #t) (test (string? (quote "hi")) #t) (test (boolean? (quote #t)) #t) (test (if (quote #f) 2 3) 3) (test (if (quote #t) 2 3) 2) (test (vector? (quote #())) #t) (test (+ (quote 1) (quote 2)) (quote 3)) (test (list? (quote ())) #t) (test (pair? (quote (1 . 2))) #t) (test (+ '1.0 '2.0) 3.0) (test (+ '1/2 '3/2) 2) (test (+ '1.0+1.0i '-2.0) -1.0+1.0i) (test (let ((hi 2)) (equal? hi 'hi)) #f) (test ''1 (quote (quote 1))) (test ''a (quote (quote a))) (test (symbol? '#f) #f) (test ''quote (quote (quote quote))) (test (+ (cadr ''3) (cadadr '''4) (cadr (cadr (cadr ''''5)))) 12) ;(test (eq? '() ()) #t) ; not sure about this -- Gauche, SCM, stklos say #t; Guile says error; clisp, cmucl, and sbcl say T ;;; -------- for-each -------- (test (let ((v (make-vector 5))) (for-each (lambda (i) (vector-set! v i (* i i))) '(0 1 2 3 4)) v) '#(0 1 4 9 16)) (test (let ((ctr 0) (v (make-vector 5))) (for-each (lambda (i) (vector-set! v ctr (* i i)) (set! ctr (+ ctr 1))) '(0 1 2 3 4)) v) '#(0 1 4 9 16)) (for-each (lambda (x) (display "for-each should not have called this")) '()) (test (let ((ctr 0)) (for-each (lambda (x y) (if (= x y) (set! ctr (+ ctr 1)))) '(1 2 3 4 5 6) '(2 3 3 4 7 6)) ctr) 3) (test (let ((ctr 0)) (for-each (lambda (x y z) (set! ctr (+ ctr x y z))) '(0 1) '(2 3) '(4 5)) ctr) 15) (test (let ((ctr 0)) (for-each (lambda (x y z) (set! ctr (+ ctr x y z))) '(1) '(3) '(5)) ctr) 9) (test (let ((ctr 0)) (for-each (lambda (x y z) (set! ctr (+ ctr x y z))) '() '() '()) ctr) 0) (test (let () (for-each abs '(1 2)) 1) 1) (test (let ((ctr 0)) (for-each (lambda (a) (for-each (lambda (b) (set! ctr (+ ctr 1))) '(0 1))) '(2 3 4)) ctr) 6) (test (let ((sum 0)) (for-each (lambda args (set! sum (+ sum (apply + args)))) '(0 1 2) '(2 1 0) '(3 4 5) '(5 4 3) '(6 7 8) '(8 7 6)) sum) 72) (test (let ((sum 0)) (for-each (lambda (a b . args) (set! sum (+ sum a b (apply + args)))) '(0 1 2) '(2 1 0) '(3 4 5) '(5 4 3) '(6 7 8) '(8 7 6)) sum) 72) (test (let ((sum 0)) (for-each (lambda (a b . args) (set! sum (+ sum a b (apply + args)))) '(0 1 2) '(2 1 0)) sum) 6) (test (let () (for-each + '(0 1 2) '(2 1 0)) 0) 0) (test (let ((d 0)) (for-each (let ((a 0)) (for-each (lambda (b) (set! a (+ a b))) (list 1 2)) (lambda (c) (set! d (+ d c a)))) (list 3 4 5)) d) 21) (test (let ((d 0)) (for-each (lambda (c) (let ((a 0)) (for-each (lambda (b) (set! a (+ a b))) (list 1 2)) (set! d (+ d a c)))) (list 3 4 5)) d) 21) (test (let ((ctr 0)) (let ((val (call/cc (lambda (exit) (for-each (lambda (a) (if (> a 3) (exit a)) (set! ctr (+ ctr 1))) (list 0 1 2 3 4 5)))))) (list ctr val))) (list 4 4)) (test (call-with-current-continuation (lambda (exit) (for-each (lambda (x) (if (negative? x) (exit x))) '(54 0 37 -3 245 19)) #t)) -3) (test (let ((ctr 0) (cont #f) (lst '())) (let ((val (call/cc (lambda (exit) (for-each (lambda (a) (if (and (not cont) (= a 2)) (exit a)) (if (and cont (= a 5)) (exit a)) (call/cc (lambda (c) (set! cont c))) (set! lst (cons ctr lst)) (set! ctr (+ ctr 1))) (list 0 1 2 3 4 5)))))) (if (< val 5) (cont)) (list ctr val lst))) (list 5 5 (list 4 3 2 1 0))) (test (let ((lst '())) (for-each (lambda (a) (set! lst (cons a lst))) (let ((lst '())) (for-each (lambda (b) (set! lst (cons b lst))) (list 1 2 3)) lst)) lst) (list 1 2 3)) ;;; this is an infinite loop? ; (let ((cont #f)) (call/cc (lambda (x) (set! cont x))) (for-each cont (list 1 2 3))) (test (call/cc (lambda (x) (for-each x (list 1 2 3)))) 1) ; map also gives 1 ... perhaps not actually legal? (test (let ((ctr 0)) (for-each (lambda (x) (for-each (lambda (x y) (for-each (lambda (x y z) (set! ctr (+ x y z))) (list x (+ x 1)) (list y (+ y 2)) (list (+ x y) (- x y)))) (list (+ x 3) (+ x 4) (+ x 5)) (list (- x 3) (- x 4) (- x 5)))) (list 1 2 3 4 5)) ctr) 23) ;;; -------- map -------- (test (map cadr '((a b) (d e) (g h))) '(b e h)) (test (map (lambda (n) (expt n n)) '(1 2 3 4 5)) '(1 4 27 256 3125)) (test (map + '(1 2 3) '(4 5 6)) '(5 7 9)) (test (apply vector (map (lambda (i) (* i i)) '(0 1 2 3 4))) '#(0 1 4 9 16)) (map (lambda (x) (display "map should not have called this")) '()) (test (let ((ctr 0)) (map (lambda (x y) (if (= x y) (set! ctr (+ ctr 1))) ctr) '(1 2 3 4 5 6) '(2 3 3 4 7 6))) (list 0 0 1 2 2 3)) (test (let ((ctr 0)) (map (lambda (x y z) (set! ctr (+ ctr x y z)) ctr) '(0 1) '(2 3) '(4 5))) (list 6 15)) (test (let ((ctr 0)) (map (lambda (x y z) (set! ctr (+ ctr x y z)) ctr) '(1) '(3) '(5))) (list 9)) (test (let ((ctr 0)) (map (lambda (x y z) (set! ctr (+ ctr x y z)) ctr) '() '() '())) '()) (test (map (lambda (a b) (+ a b)) (list 1 2) (list 1 2)) (list 2 4)) (test (map abs '(1 -2)) (list 1 2)) (test (map + '(0 1 2) '(2 1 0) '(3 4 5) '(5 4 3) '(6 7 8) '(8 7 6)) (list 24 24 24)) (test (map (lambda (a) (cons a (map (lambda (b) (+ b 1)) (list 0 1 2)))) (list 3 4 5)) '((3 1 2 3) (4 1 2 3) (5 1 2 3))) (test (map (lambda (a) (+ a 1)) (map (lambda (b) (+ b 1)) (map (lambda (c) (+ c 1)) (list 0 1 2)))) '(3 4 5)) (test (map (lambda args (apply + args)) '(0 1 2) '(3 4 5) '(6 7 8) '(9 10 11) '(12 13 14)) '(30 35 40)) (test (map (lambda (a b . args) (+ a b (apply + args))) '(0 1 2) '(3 4 5) '(6 7 8) '(9 10 11) '(12 13 14)) '(30 35 40)) (test (map (lambda (a b . args) (+ a b (apply + args))) '(0 1 2) '(3 4 5)) '(3 5 7)) (test (let ((d 0)) (map (let ((a 0)) (map (lambda (b) (set! a (+ a b))) (list 1 2)) (lambda (c) (set! d (+ d c a)) d)) (list 3 4 5))) (list 6 13 21)) (test (let ((d 0)) (map (lambda (c) (let ((a 0)) (map (lambda (b) (set! a (+ a b))) (list 1 2)) (set! d (+ d a c)) d)) (list 3 4 5))) (list 6 13 21)) (test (let ((ctr 0)) (let ((val (call/cc (lambda (exit) (map (lambda (a) (if (> a 3) (exit a)) (set! ctr (+ ctr 1)) ctr) (list 0 1 2 3 4 5)))))) (list ctr val))) (list 4 4)) (test (call-with-current-continuation (lambda (exit) (map (lambda (x) (if (negative? x) (exit x)) x) '(54 0 37 -3 245 19)))) -3) (test (let ((ctr 0) (cont #f) (lst '())) (let ((val (call/cc (lambda (exit) (map (lambda (a) (if (and (not cont) (= a 2)) (exit a)) (if (and cont (= a 5)) (exit a)) (call/cc (lambda (c) (set! cont c))) (set! lst (cons ctr lst)) (set! ctr (+ ctr 1)) ctr) (list 0 1 2 3 4 5)))))) (if (< val 5) (cont)) (list ctr val lst))) (list 5 5 (list 4 3 2 1 0))) (test (map (lambda (a) a) (map (lambda (b) b) (list 1 2 3))) (list 1 2 3)) ;;; --------- do -------- (test (do () (#t 1)) 1) (for-each (lambda (arg) (test (do () (#t arg)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (do ((i arg)) (#t i)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (test (do ((i 0 (+ i 1))) ((= i 3) #f)) #f) (test (do ((i 0 (+ i 1))) ((= i 3) i)) 3) (test (do ((vec (make-vector 5)) (i 0 (+ i 1))) ((= i 5) vec) (vector-set! vec i i)) '#(0 1 2 3 4)) (test (let ((x '(1 3 5 7 9))) (do ((x x (cdr x)) (sum 0 (+ sum (car x)))) ((null? x) sum))) 25) (test (do ((i 4 (- i 1)) (a 1 (* a i))) ((zero? i) a)) 24) ;(test (do () (() ()) ()) '()) ; ?? -- is '() the same as ()? -- scheme bboard sez not necessarily (test (do () ('() '())) '()) (test (let ((x 0) (y 0)) (set! y (do () (#t (set! x 32) 123))) (list x y)) (list 32 123)) (test (let ((i 32)) (do ((i 0 (+ i 1)) (j i (+ j 1))) ((> j 33) i))) 2) (test (let ((i 0)) (do () ((> i 1)) (set! i (+ i 1))) i) 2) (test (let ((i 0) (j 0)) (do ((k #\a)) (#t i) (set! i (char->integer k)) (set! j (+ j i)))) 0) (test (let ((i 0) (j 0)) (do ((k #\a)) ((> i 1) j) (set! i (char->integer k)) (set! j (+ j i)))) (char->integer #\a)) (test (let ((x 0)) (do ((i 0 (+ i 2)) (j 1 (* j 2))) ((= i 4) x) (set! x (+ x i j)))) 5) (test (let ((sum 0)) (do ((lst '(1 2 3 4) (cdr lst))) ((null? lst) sum) (set! sum (+ sum (car lst))))) 10) (test (do ((i 0 (+ 1 i))) ((= i 4) (do ((i 0 (+ i 2))) ((= i 10) i)))) 10) (test (let ((i 0)) (do ((i 1 (+ i 1))) ((= i 3) i))) 3) (test (let ((j 0)) (do ((i 0 (+ i 1))) ((= i 3) (+ i j)) (do ((j 0 (+ j i 1))) ((> j 3) j)))) 3) (test (let ((add1 (lambda (a) (+ a 1)))) (do ((i 0 (add1 i))) ((= i 10) (add1 i)))) 11) (test (do ((i 0 (do ((j 0 (+ j 1))) ((= j i) (+ i 1))))) ((= i 3) i)) 3) (test (do ((i 0 (do ((i 0 (+ i 1))) ((= i 3) i)))) ((= i 3) i)) 3) (test (let ((i 123)) (do ((i 0 (+ i 1)) (j i (+ j i))) ((> j 200) i))) 13) (test (do ((i 0 (+ i 1))) ((> i 3) i) (set! i (* i 10))) 11) (test (do ((i 123) (j 0 (+ j i))) ((= j 246) i)) 123) (test (do ((i 123 i) (j 0 (+ j i))) ((= j 246) i)) 123) (test (do ((i 0 i)) (i i)) 0) (test (do ((i 1 i)) (i i (+ i i) (+ i i i))) 3) (test (do ((i 1)) (#t 1) 123) 1) (test (do ((i 0 (+ i j)) (j 0 (+ j 1))) (#t 1)) 1) (test (do ((i 0 j) (j 0 (+ j 1))) ((= j 3) i)) 2) ; uh, lessee... lexical scoping... (test (do ((i 1 j) (j 0 k) (k 0 m) (m 0 (+ i j k))) ((> m 10) (list i j k m))) (list 4 5 8 11)) (test (do ((do 1 (+ do do))) ((> do 3) do)) 4) (test (do ((do 1 do) (j do do)) (do do)) 1) (test (do ((do do do)) (do do)) do) (test (do ((do do do)) (do do do)) do) ; ok ok! (test (let ((i 10) (j 11) (k 12)) (do ((i i j) (j j k) (k k m) (m (+ i j k) (+ i j k))) ((> m 100) (list i j k m)))) (list 33 56 78 122)) (test (do ((i 0 (let () (set! j 3) (+ i 1))) (j 0 (+ j 1))) ((= i 3) j)) 4) (test (let ((i 0)) (do () ((= i 3) (* i 2)) (set! i (+ i 1)))) 6) (num-test (do ((i 0 (- i 1))) ((= i -3) i)) -3) (num-test (do ((i 1/2 (+ i 1/2))) ((> i 2) i)) 5/2) (num-test (do ((i 0.0 (+ i 0.1))) ((>= i 0.9999) i)) 1.0) (num-test (do ((i 0 (- i 1/2))) ((< i -2) i)) -5/2) (num-test (do ((i 0+i (+ i 0+i))) ((> (magnitude i) 2) i)) 0+3i) (test (do () (/ 0)) 0) (test (do () (+)) '()) (test (do () (+ +) *) +) (if with-bignums (begin (num-test (do ((i 24444516448431392447461 (+ i 1)) (j 0 (+ j 1))) ((>= i 24444516448431392447471) j)) 10) (num-test (do ((i 0 (+ i 24444516448431392447461)) (j 0 (+ j 1))) ((>= i 244445164484313924474610) j)) 10) (num-test (do ((i 4096 (* i 2)) (j 0 (+ j 1))) ((= i 4722366482869645213696) j)) 60))) (num-test (do ((x (list 1 2 3) (cdr x)) (j -1)) ((null? x) j) (set! j (car x))) 3) (test (let ((x 0)) (do ((i 0 (+ i 1))) ((= i (do ((j 0 (+ j 1))) ((= j 2) (+ j 1))))) (set! x (+ x i))) x) 3) (test (let ((x 0)) (do ((i 0 (+ i (do ((j 0 (+ j 1))) ((= j 2) 1))))) ((= i 3) x) (set! x (+ x i)))) 3) (test (let ((x 0)) (do ((i 0 (+ i (do ((j 0 (+ j 1))) ((= j 2) 1))))) ((= i 3) (do ((j 0 (+ j 1))) ((= j 5) x) (set! x j))) (set! x (+ x i)))) 4) (test (call/cc (lambda (exit) (do ((i 0 (+ i 1))) ((= i 100) i) (if (= i 2) (exit 321))))) 321) (test (call/cc (lambda (exit) (do ((i 0 (if (= i 3) (exit 321) (+ i 1)))) ((= i 100) i)))) 321) (test (call/cc (lambda (exit) (do ((i 0 (+ i 1))) ((= i 10) (exit 321))))) 321) (test (call/cc (lambda (exit) (do ((i 0 (+ i 1))) ((= i 10) i) (if (= i -2) (exit 321))))) 10) (test (do ((x 0 (+ x 1)) (y 0 (call/cc (lambda (c) c)))) ((> x 5) x) #f) 6) (test (let ((happy #f)) (do ((i 0 (+ i 1))) (happy happy) (if (> i 3) (set! happy i)))) 4) (test (+ (do ((i 0 (+ i 1))) ((= i 3) i)) (do ((j 0 (+ j 1))) ((= j 4) j))) 7) (test (let ((do 1) (map 2) (for-each 3) (quote 4)) (+ do map for-each quote)) 10) (test (let ((cont #f) (j 0) (k 0)) (call/cc (lambda (exit) (do ((i 0 (+ i 1))) ((= i 100) i) (set! j i) (call/cc (lambda (r) (set! cont r))) (if (= j 2) (exit)) (set! k i)))) (if (= j 2) (begin (set! j 3) (cont)) (list j k))) (list 99 99)) (test (call/cc (lambda (r) (do () (#f) (r 1)))) 1) (test (let ((hi (lambda (x) (+ x 1)))) (do ((i 0 (hi i))) ((= i 3) i))) 3) (test (do ((i 0 (+ i 1))) (list 1) ((= i 3) #t)) 1) ; a typo originally -- Guile and Gauche are happy with it (test (do () (1 2) 3) 2) ;; from sacla tests (test (let ((rev (lambda (list) (do ((x list (cdr x)) (reverse '() (cons (car x) reverse))) ((null? x) reverse))))) (and (null? (rev '())) (equal? (rev '(0 1 2 3 4)) '(4 3 2 1 0)))) #t) (test (let ((nrev (lambda (list) (do ((f1st (if (null? list) '() (cdr list)) (if (null? f1st) '() (cdr f1st))) (s2nd list f1st) (t3rd '() s2nd)) ((null? s2nd) t3rd) (set-cdr! s2nd t3rd))))) (and (null? (nrev '())) (equal? (nrev (list 0 1 2 3 4)) '(4 3 2 1 0)))) #t) (test (do ((temp-one 1 (+ temp-one 1)) (temp-two 0 (- temp-two 1))) ((> (- temp-one temp-two) 5) temp-one)) 4) (test (do ((temp-one 1 (+ temp-one 1)) (temp-two 0 (+ temp-one 1))) ((= 3 temp-two) temp-one)) 3) (let ((vec (vector 0 1 2 3 4 5 6 7 8 9))) (test (do ((i 0 (+ 1 i)) (n #f) (j 9 (- j 1))) ((>= i j) vec) (set! n (vector-ref vec i)) (vector-set! vec i (vector-ref vec j)) (vector-set! vec j n)) '#(9 8 7 6 5 4 3 2 1 0))) ;;; -------- set! -------- (test (let ((a 1)) (set! a 2) a) 2) (for-each (lambda (arg) (test (let ((a 0)) (set! a arg) a) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (test (let ((a 1)) (call/cc (lambda (r) (set! a (let () (if (= a 1) (r 123)) 321)))) a) 1) (test (let ((a (lambda (b) (+ b 1)))) (set! a (lambda (b) (+ b 2))) (a 3)) 5) (test (let ((a (lambda (x) (set! x 3) x))) (a 1)) 3) ;;; -------- or -------- (test (or (= 2 2) (> 2 1)) #t) (test (or (= 2 2) (< 2 1)) #t) (test (or #f #f #f) #f) (test (or) #f) (test (or (memq 'b '(a b c)) (+ 3 0)) '(b c)) (test (or 3 9) 3) (test (or #f 3 asdf) 3) ; "evaluation stops immediately" (test (or 3 (/ 1 0) (display "or is about to exit!") (exit)) 3) (for-each (lambda (arg) (test (or arg) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (call-with-input-file "s7test.scm" (lambda (p) (let ((loc 0)) (let loop ((val (read p))) (or (eof-object? val) (> loc 10000) ; try to avoid the read-error stuff (begin (set! loc (+ 1 loc)) (loop (read p))))) (> loc 10000)))) #t) (test (or (and (or (> 3 2) (> 3 4)) (> 2 3)) 4) 4) (test (or or) or) (test (or (or (or))) #f) (test (or (or (or) (and))) #t) (test (let ((a 1)) (or (let () (set! a 2) #f) (= a 1) (let () (set! a 3) #f) (and (= a 3) a) (let () (set! a 4) #f) a)) 3) (test (or (let ((or #t)) or)) #t) (test (or '#f '()) '()) (test (call/cc (lambda (r) (or #f (> 3 2) (r 123) 321))) #t) (test (call/cc (lambda (r) (or #f (< 3 2) (r 123) 321))) 123) (test (+ (or #f (not (null? '())) 3) (or (zero? 1) 2)) 5) (test (or 0) 0) (test (if (or) 1 2) 2) ;;; -------- and -------- (test (and (= 2 2) (> 2 1)) #t) (test (and (= 2 2) (< 2 1)) #f) (test (and 1 2 'c '(f g)) '(f g)) (test (and) #t) (test (and 3) 3) (test (and (memq 'b '(a b c)) (+ 3 0)) 3) (test (and 3 9) 9) (test (and #f 3 asdf) #f) ; "evaluation stops immediately" (test (and 3 (zero? 1) (/ 1 0) (display "and is about to exit!") (exit)) #f) (test (if (and) 1 2) 1) (test (if (+) 1 2) 1) (test (if (*) 1 2) 1) (for-each (lambda (arg) (test (and arg) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (call-with-input-file "s7test.scm" (lambda (p) (let ((loc 0)) (let loop ((val (read p))) (and (not (eof-object? val)) (< loc 10000) (begin (set! loc (+ 1 loc)) (loop (read p))))) (>= loc 10000)))) #t) (test (and (or (and (> 3 2) (> 3 4)) (> 2 3)) 4) #f) (test (and and) and) (test (and (and (and))) #t) (test (and (and (and (and (or))))) #f) (test (let ((a 1)) (and (let () (set! a 2) #t) (= a 1) (let () (set! a 3) #f) (and (= a 3) a) (let () (set! a 4) #f) a)) #f) (test (and (let ((and #t)) and)) #t) (test (and '#t '()) '()) (test (call/cc (lambda (r) (and #t (> 3 2) (r 123) 321))) 123) (test (call/cc (lambda (r) (and #t (< 3 2) (r 123) 321))) #f) (test (+ (and (null? '()) 3) (and (zero? 0) 2)) 5) ;;; -------- cond -------- (test (cond ('a)) 'a) (test (cond (3)) 3) (test (cond (#f 'a) ('b)) 'b) (test (cond (#t 'a) (#t 'b)) 'a) (test (cond ((> 3 2) 'greater) ((< 3 2) 'less)) 'greater) (test (cond ((> 3 3) 'greater) ((< 3 3) 'less) (else 'equal)) 'equal) (test (cond ((assv 'b '((a 1) (b 2))) => cadr) (else #f)) 2) (test (cond (#f 2) (else 5)) 5) (test (cond (1 2) (else 5)) 2) (test (cond (1 => (lambda (x) (+ x 2))) (else 8)) 3) (test (cond ((+ 1 2))) 3) (test (cond ((zero? 1) 123) ((= 1 1) 321)) 321) (test (cond ('() 1)) 1) ;(test (cond (1 2) '()) 2) (test (cond (1 2 3)) 3) (test (cond (1 2) (3 4)) 2) (test (cond ((= 1 2) 3) ((+ 3 4))) 7) (test (cond ((= 1 1) (abs -1) (+ 2 3) (* 10 2)) (else 123)) 20) (test (let ((a 1)) (cond ((= a 1) (set! a 2) (+ a 3)))) 5) (test (let ((a 1)) (cond ((= a 2) (+ a 2)) (else (set! a 3) (+ a 3)))) 6) (test (cond ((= 1 1))) #t) (test (cond ((= 1 2) #f) (#t)) #t) (test (cond ((+ 1 2))) 3) (test (cond ((cons 1 2))) '(1 . 2)) (test (cond (#f #t) ((string-append "hi" "ho"))) "hiho") (test (cond ('() 3) (#t 4)) 3) (test (cond ((list) 3) (#t 4)) 3) ;;; (cond (1 1) (asdf 3)) -- should this be an error? (test (cond (+ 0)) 0) (for-each (lambda (arg) (test (cond ((or arg) => (lambda (x) x))) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (cond ((+ 1 2) => (lambda (x) (+ 1 x)))) 4) (test (cond ((cons 1 2) => car)) 1) ; (cond ((values 1 2) => +)) -- seems like it ought to work (test (cond ((values -1) => abs)) 1) (test (cond (else 1)) 1) (test (call/cc (lambda (r) (cond ((r 4) 3) (else 1)))) 4) (test (cond ((cond (#t 1)))) 1) (for-each (lambda (arg) (test (cond (#t arg)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (cond (arg)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (cond (#f 1) (else arg)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (cond (arg => (lambda (x) x))) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (let ((=> 3) (cond 4)) (+ => cond)) 7) (test (cond (cond 'cond)) 'cond) (test (and (defined? 'else) (boolean? else)) #f) ;;; -------- case -------- (test (case (* 2 3) ((2 3 5 7) 'prime) ((1 4 6 8 9) 'composite)) 'composite) (test (case (car '(c d)) ((a e i o u) 'vowel) ((w y) 'semivowel) (else 'consonant)) 'consonant) (test (case 3.1 ((1.3 2.4) 1) ((4.1 3.1 5.4) 2) (else 3)) 2) (test (case 3/2 ((3/4 1/2) 1) ((3/2) 2) (else 3)) 2) (test (case 3 ((1) 1 2 3) ((2) 2 3 4) ((3) 3 4 5)) 5) (test (case 1+i ((1) 1) ((1/2) 1/2) ((1.0) 1.0) ((1+i) 1+i)) 1+i) (test (case 'abs ((car cdr) 1) ((+ cond) 2) ((abs) 3) (else 4)) 3) (test (case #\a ((#\b) 1) ((#\a) 2) ((#\c) 3)) 2) (test (case (boolean? 1) ((#t) 2) ((#f) 1) (else 0)) 1) (test (case 1 ((1 2 3) (case 2 ((1 2 3) 3)))) 3) (test (case 1 ((1 2) 1) ((3.14 2/3) 2)) 1) (test (case 1 ((1 2) 1) ((#\a) 2)) 1) (test (case 1 ((1 2) 1) ((#\a) 2) ((car cdr) 3) ((#f #t) 4)) 1) (test (case #f ((1 2) 1) ((#\a) 2) ((car cdr) 3) ((#f #t) 4)) 4) (test (case 1 ((#t) 2) ((#f) 1) (else 0)) 0) (test (let ((x 1)) (case x ((x) "hi") (else "ho"))) "ho") (test (let ((x 1)) (case x ((1) "hi") (else "ho"))) "hi") (test (let ((x 1)) (case x (('x) "hi") (else "ho"))) "ho") (test (let ((x 1)) (case 'x ((x) "hi") (else "ho"))) "hi") (test (let ((x 1)) (case (+ 1 x) ((0 "hi" #f) 3/4) ((#\a 1+3i '(1 . 2)) "3") ((-1 'hi 2 2.0) #\f))) #\f) (test (case (case 1 ((0 2) 3) (else 2)) ((0 1) 2) ((4 2) 3) (else 45)) 3) (test (case 3/4 ((0 1.0 5/6) 1) (("hi" 'hi 3/4) 2) (else 3)) 2) (test (case (case (+ 1 2) (else 3)) ((3) (case (+ 2 2) ((2 3) 32) ((4) 33) ((5) 0)))) 33) (test (let ((x 1)) (case x ((0) (set! x 12)) ((2) (set! x 32))) x) 1) (test (case 1 (else #f)) #f) (test (case 1 ((1 2) (let ((case 3)) (+ case 1))) ((3 4) 0)) 4) (for-each (lambda (arg) (test (case 1 ((0) 'gad) ((1 2 3) arg) (else 'gad)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (case arg ((0) 'gad) ((1 2 3) arg) (else 'gad)) 'gad)) (list "hi" -1 #\a 0 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (call/cc (lambda (r) (case 1 ((1) (r 123) #t) (else #f)))) 123) (test (call/cc (lambda (r) (case 1 ((0) 0) (else (r 123) #f)))) 123) (test (case '() ((1) 1) ('() 2)) 2) (test (case (list) ((1) 1) ('() 2)) 2) (test (case '() ((1) 1) ((()) 2)) 2) (test (case (list) ((1) 1) ((()) 2)) 2) ;;; -------- lambda -------- (test (procedure? (lambda (x) x)) #t) (test ((lambda (x) (+ x x)) 4) 8) (test (let ((reverse-subtract (lambda (x y) (- y x)))) (reverse-subtract 7 10)) 3) (test (let ((add4 (let ((x 4)) (lambda (y) (+ x y))))) (add4 6)) 10) (test ((lambda x x) 3 4 5 6) (list 3 4 5 6)) (test ((lambda (x y . z) z) 3 4 5 6) (list 5 6)) (test ((lambda (a b c d e f) (+ a b c d e f)) 1 2 3 4 5 6) 21) (test (let ((foo (lambda () 9))) (+ (foo) 1)) 10) (test (let ((a 1)) (let ((f (lambda (x) (set! a x) a))) (let ((c (f 123))) (list c a)))) (list 123 123)) (test (let ((a 1) (b (lambda (a) a))) (b 3)) 3) (test (let ((ctr 0)) (letrec ((f (lambda (x) (if (> x 0) (begin (set! ctr (+ ctr 1)) (f (- x 1))) 0)))) (f 10) ctr)) 10) (test (let ((f (lambda (x) (car x)))) (f '(4 5 6))) 4) (test ((lambda () ((lambda (x y) ((lambda (z) (* (car z) (cdr z))) (cons x y))) 3 4))) 12) (test (let ((ctr 0)) (define (f) (set! ctr (+ ctr 1)) ctr) (let ((x (f))) (let ((y (f))) (list x y ctr)))) (list 1 2 2)) (test (let ((x 5)) (define foo (lambda (y) (bar x y))) (define bar (lambda (a b) (+ (* a b) a))) (foo (+ x 3))) 45) (test (let ((x 5)) (letrec ((foo (lambda (y) (bar x y))) (bar (lambda (a b) (+ (* a b) a)))) (foo (+ x 3)))) 45) (num-test (let () (define compose (lambda (f g) (lambda args (f (apply g args))))) ((compose sqrt *) 12 75)) 30.0) (test (let ((f (lambda () (lambda (x y) (+ x y))))) ((f) 1 2)) 3) (test ((lambda (x) (define y 4) (+ x y)) 1) 5) (test ((lambda () (define (y x) (+ x 1)) (y 1))) 2) (test ((lambda (x) 123 (let ((a (+ x 1))) a)) 2) 3) (test ((lambda (x) "documentation" (let ((a (+ x 1))) a)) 2) 3) (test ((lambda (x) (x 1)) (lambda (y) (+ y 1))) 2) (test (let ((a 1)) (let ((b (lambda (x) (define y 1) (define z 2) (define a 3) (+ x y z a)))) (b a))) 7) (test ((lambda (f x) (f x x)) + 11) 22) (test ((lambda () (+ 2 3))) 5) (test (letrec ((f (lambda (x) (g x))) (g (lambda (x) x))) (let ((top (f 1))) (set! g (lambda (x) (- x))) (+ top (f 1)))) 0) (for-each (lambda (arg) (test ((lambda (x) x) arg) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (let ((list-length (lambda (obj) (call-with-current-continuation (lambda (return) (letrec ((r (lambda (obj) (cond ((null? obj) 0) ((pair? obj) (+ (r (cdr obj)) 1)) (else (return #f)))))) (r obj))))))) (test (list-length '(1 2 3 4)) 4) (test (list-length '(a b . c)) #f)) (test (let ((samples (vector 0 1 2 3 4 5 6 7 8 9 10))) (let ((make-scaler (lambda (start end) (letrec ((ctr start) (us (lambda (them) (vector-set! samples ctr (* 2 (vector-ref samples ctr))) (set! ctr (+ ctr 2)) (if (<= ctr end) (them us))))) us)))) ((make-scaler 0 11) (make-scaler 1 11))) samples) (vector 0 2 4 6 8 10 12 14 16 18 20)) (test ((lambda (x . y) y) 1 2 '(3 . 4)) '(2 (3 . 4))) (test ((lambda (x . y) y) 1) '()) (test ((lambda x x) '()) '(())) (test ((lambda x x)) '()) ; ?? (test ((lambda (x) x) '()) '()) (test (let ((lambda 4)) (+ lambda 1)) 5) (test ((lambda (x) (+ x ((lambda (x) (+ x 1)) 2))) 3) 6) (test ((lambda (x) (define y 1) (+ x y)) 2) 3) (test ((lambda (a) "this is a doc string" a) 1) 1) ;;; ideally ((lambda (a) "hiho" (define x 1) x) 1) -> 1 but I'm not sure it's r5rs-ish (test (let ((g (lambda () '3))) (= (g) 3)) #t) (test ((lambda lambda lambda) 'x) '(x)) ;(test ((lambda (begin) (begin 1 2 3)) (lambda lambda lambda)) '(1 2 3)) (test (let ((funcs (make-vector 3 #f))) (do ((i 0 (+ i 1))) ((= i 3)) (vector-set! funcs i (lambda () (+ i 1)))) (+ ((vector-ref funcs 0)) ((vector-ref funcs 1)) ((vector-ref funcs 2)))) 6) (test (let ((i 1)) (let ((func1 (lambda () i))) (let ((i 2)) (let ((func2 (lambda () i))) (+ (func1) (func2)))))) 3) (test (let ((funcs (make-vector 3 #f))) (map (lambda (i) (vector-set! funcs i (lambda () (+ i 1)))) (list 0 1 2)) (+ ((vector-ref funcs 0)) ((vector-ref funcs 1)) ((vector-ref funcs 2)))) 6) (test (let ((func #f)) (define (func1 x) (set! func (lambda () (+ x 1)))) (func1 1) (+ (func) (let () (func1 2) (func)))) 5) (test (((lambda (x) (lambda () (+ x 1))) 32)) 33) (test (let ((func #f)) (define (func1 x) (set! func (lambda () (string-append x "-")))) (func1 "hi") (string-append (func) (let () (func1 "ho") (func)))) "hi-ho-") (test (let ((func1 #f) (func2 #f)) (let ((x 1)) (set! func1 (lambda () x)) (set! func2 (lambda (y) (set! x y) y))) (+ (func1) (let () (func2 32) (func1)))) 33) (test (let ((funcs (make-vector 3))) (let ((hi (lambda (a) (vector-set! funcs (- a 1) (lambda () a))))) (hi 1) (hi 2) (hi 3) (+ ((vector-ref funcs 0)) ((vector-ref funcs 1)) ((vector-ref funcs 2))))) 6) (test (let ((hi (lambda (a) (+ a 1))) (ho (lambda (a) (a 32)))) (+ (hi (hi (hi 1))) (ho hi))) 37) (test ((if (> 3 2) + -) 3 2) 5) (test (let ((op +)) (op 3 2)) 5) (test (((lambda () +)) 3 2) 5) (test ((car (cons + -)) 3 2) 5) (test ((do ((i 0 (+ i 1))) ((= i 3) +) ) 3 2) 5) (test (((lambda (x) x) (lambda (x) x)) 3) 3) (test ((((lambda (x) x) (lambda (x) x)) (lambda (x) x)) 3) 3) (test (((lambda (x) (lambda (y) x)) 3) 4) 3) (test (((lambda (x) (lambda (x) x)) 3) 4) 4) (test (let ((x 32)) (((lambda (x) (lambda (y) x)) 3) x)) 3) (test ((call/cc (lambda (return) (return +))) 3 2) 5) (test ((call-with-values (lambda () (values +)) (lambda (x) x)) 3 2) 5) (test ((case '+ ((+) +)) 3 2) 5) (test ((case '+ ((-) -) (else +)) 3 2) 5) (test ((call/cc (lambda (return) (dynamic-wind (lambda () #f) (lambda () (return +)) (lambda () #f)))) 3 2) 5) (test (+ 1 ((call/cc (lambda (return) (dynamic-wind (lambda () #f) (lambda () (return +)) (lambda () #f)))) 3 2) 2) 8) ;;; -------- begin -------- (test (let () (begin) #f) #f) (test (let () (begin (begin (begin (begin)))) #f) #f) (test (let () (begin (define x 2) (define y 1)) (+ x y)) 3) (test (let () (begin (define x 0)) (begin (set! x 5) (+ x 1))) 6) (test (let () (begin (define first car)) (first '(1 2))) 1) (test (let () (begin (define x 3)) (begin (set! x 4) (+ x x))) 8) (if (equal? (begin 1) 1) (begin (test (let () (begin (define x 0)) (set! x (begin (begin 5))) (begin ((begin +) (begin x) (begin (begin 1))))) 6) (test (let ((x 5)) (begin (begin (begin) (begin (begin (begin) (define foo (lambda (y) (bar x y))) (begin))) (begin)) (begin) (begin) (begin (define bar (lambda (a b) (+ (* a b) a)))) (begin)) (begin) (begin (foo (+ x 3)))) 45) (for-each (lambda (arg) (test (begin arg) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (if (= 1 1) (begin 2) (begin 3)) 2) )) (test (let ((begin 3)) (+ begin 1)) 4) (test ((lambda (x) (begin (set! x 1) (let ((a x)) (+ a 1)))) 2) 2) ;;; apparently these can be considered errors or not (guile says error, stklos and gauche do not) ;(test (begin (define x 0) (+ x 1)) 1) ;(test ((lambda () (begin (define x 0) (+ x 1)))) 1) ;(test (let ((f (lambda () (begin (define x 0) (+ x 1))))) (f)) 1) (test ((lambda () (begin (define x 0)) (+ x 1))) 1) (test (let ((f (lambda () (begin (define x 0)) (+ x 1)))) (f)) 1) (test (let ((x 32)) (begin (define x 3)) x) 3) (test ((lambda (x) (begin (define x 3)) x) 32) 3) (test (let* ((x 32) (y x)) (define x 3) y) 32) (test (let ((z 0)) (begin (define x 32)) (begin (define y x)) (set! z y) z) 32) ; so begin is like let*? -- guile uses letrec here = error (test (let ((z 0)) (begin (define x 32) (define y x)) (set! z y) z) 32) ; similarly here ;;; I can't find anything in r5rs.html that mandates letrec here, or that says it's in error ; (test (begin (define b 1) (begin (define a b) (define b 3)) a) 1) ; ?? if a 1st => "b unbound", but guile returns #f ; (begin (begin (define a 1) (begin (define a b) (define b 3))) a) ; guile says 3, s7 says error ;;; begin is a mess... ;;; -------- apply -------- (test (apply (lambda (a b) (+ a b)) (list 3 4)) 7) (test (apply + 10 (list 3 4)) 17) (test (apply list '()) '()) (test (apply + '(1 2)) 3) (test (apply - '(1 2)) -1) (test (apply max 3 5 '(2 7 3)) 7) (test (apply cons '((+ 2 3) 4)) '((+ 2 3) . 4)) (test (apply + '()) 0) (test (apply + (list 3 4)) 7) (test (apply + '()) 0) (test (apply + 2 '(3)) 5) (test (apply + 2 3 '()) 5) (test (apply + '(2 3)) 5) (test (apply list 1 '(2 3)) (list 1 2 3)) (test (apply apply (list list 1 2 '(3))) (list 1 2 3)) (test (vector? (apply make-vector '(1))) #t) (test (apply make-vector '(1 1)) '#(1)) ;(test (let* ((x '(1 2 3)) (y (apply list x))) (not (eq? x y))) #t) ; is this standard? (test (apply min '(1 2 3 5 4 0 9)) 0) (test (apply min 1 2 4 3 '(4 0 9)) 0) (test (apply vector 1 2 '(3)) '#(1 2 3)) (test (apply (lambda (x . y) x) (list 1 2 3)) 1) (test (apply * (list 2 (apply + 1 2 '(3)))) 12) (test (apply (if (> 3 2) + -) '(3 2)) 5) (for-each (lambda (arg) (test (apply (lambda (x) x) (list arg)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (apply cadadr (list '''4)) 4) (test (apply string-ref "hi" '(0)) #\h) (test (let ((x (string-copy "hi"))) (apply string-set! x 0 '(#\c)) x) "ci") (test (apply apply (list + '(3 2))) 5) (test (apply apply apply apply (list (list (list + '(3 2))))) 5) (test (apply + 1 2 (list 3 4)) 10) ;;; -------- define -------- ;;; ;;; trying to avoid top-level definitions here (let () (define x 2) (test (+ x 1) 3) (set! x 4) (test (+ x 1) 5) (let () (define (tprint x) #t) (test (tprint 56) #t) (let () (define first car) (test (first '(1 2)) 1) (let () (define foo (lambda () (define x 5) x)) (test (foo) 5) (let () (define (foo x) ((lambda () (define x 5) x)) x) (test (foo 88) 88)))))) (test (letrec ((foo (lambda (arg) (or arg (and (procedure? foo) (foo 99)))))) (define bar (foo #f)) (foo #f)) 99) (test (letrec ((foo 77) (bar #f) (retfoo (lambda () foo))) (define baz (retfoo)) (retfoo)) 77) (test (let () (define .. 1) ..) 1) (test (let () (define (hi a) (+ a 1)) (hi 2)) 3) (test (let () (define (hi a . b) (+ a (cadr b) 1)) (hi 2 3 4)) 7) (test (let () (define (hi) 1) (hi)) 1) (test (let () (define (hi . a) (apply + a)) (hi 1 2 3)) 6) (for-each (lambda (arg) (test (let () (define x arg) x) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test ((lambda (x) (define (hi a) (+ a 1)) (hi x)) 1) 2) (test (let ((x 2)) (define f (lambda (y) (+ y x))) (f 3)) 5) (begin (define r5rstest-plus (lambda (x y) (+ x y))) (define r5rstest-x 32)) (test (r5rstest-plus r5rstest-x 3) 35) (test (let () (define (asdf a) (define (asdf a) (+ a 1)) (+ a (asdf a))) (asdf 4)) 9) (test (let ((asdf 1)) (define (asdf a) (define (asdf a) (+ a 1)) (+ a (asdf a))) (asdf 4)) 9) (test (let () (define (a1 a) (define (a2 a) (define (a3 a) (define (a4 a) (+ a 1)) (+ (a4 a) 1)) (+ (a3 a) 1)) (+ (a2 a) 1)) (a1 0)) 4) ;;; -------- values, call-with-values -------- (test (call-with-values (lambda () (values 1 2 3)) +) 6) (test (call-with-values (lambda () (values 4 5)) (lambda (a b) b)) 5) (test (call-with-values (lambda () (values 4 5)) (lambda (a b) (+ a b))) 9) (test (call-with-values * -) -1) ; right... (test (values 1) 1) (test (call-with-values (lambda () (values 1 2 3 4)) list) (list 1 2 3 4)) (test (+ (values 1) (values 2)) 3) (test (+ (values '1) (values '2)) 3) (test (if (values #t) 1 2) 1) (test (if (values '#t) 1 2) 1) (test (call-with-values (lambda () 4) (lambda (x) x)) 4) (test (let () (values 1 2 3) 4) 4) (test (apply + (values '())) 0) (test (+ (values 1 2 3)) 6) (test (let ((f (lambda () (values 1 2 3)))) (+ (f))) 6) (num-test (log (values 8 2)) 3) (test (* (values 2 (values 3 4))) 24) (test (* (values (+ (values 1 2)) (- (values 3 4)))) -3) (test (list (values 1 2) (values 3) 4) '(1 2 3 4)) (test (let ((f1 (lambda (x) (values x (+ x 1)))) (f2 (lambda () (values 2)))) (+ (f1 3) (* 2 (f2)))) 11) (test (+ (let () (values 1 2)) 3) 6) (test (let () (values 1 2) 4) 4) (test (let () + (values 1 2) 4) 4) (test (string-ref (values "hiho" 2)) #\h) (test (vector-ref (values (vector 1 2 3)) 1) 2) (test (+ (values (+ 1 (values 2 3)) 4) 5 (values 6) (values 7 8 (+ (values 9 10) 11))) 66) (test (+ (if (values) (values 1 2) (values 3 4)) (if (null? (values)) (values 5 6) (values 7 8))) 14) (test (+ (cond (#f (values 1 2)) (#t (values 3 4))) 5) 12) (test (apply + (list (values 1 2))) 3) (test (apply + (list ((lambda (n) (values n (+ n 1))) 1))) 3) (test (+ (do ((i 0 (+ i 1))) ((= i 3) (values i (+ i 1))))) 7) (if with-open-input-string-and-friends (test (+ (with-input-from-string "(values 1 2 3)" (lambda () (read))) 2) 8)) (test (< (values 1 2 3)) #t) (test (let ((sum 0)) (for-each (lambda (n m p) (set! sum (+ sum n m p))) (values (list 1 2 3) (list 4 5 6) (list 7 8 9)))) 45) (test (map (lambda (n m p) (+ n m p)) (values (list 1 2 3) (list 4 5 6) (list 7 8 9))) '(12 15 18)) (test (string-append (values "123" "4" "5") "6" (values "78" "90")) "1234567890") (test (+ (dynamic-wind (lambda () #f) (lambda () (values 1 2 3)) (lambda () #f)) 4) 10) (for-each (lambda (arg) (test (values arg) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (call-with-values (lambda () (values arg arg)) (lambda (a b) b)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (call-with-values (lambda () (values "hi" 1 3/2 'a)) (lambda (a b c d) (+ b c))) 5/2) ;(test (call-with-values values (lambda arg arg)) '()) (test (string-ref (values "hi") 1) #\i) (test ((lambda (a b) (+ a b)) ((lambda () (values 1 2)))) 3) (test (list (letrec ((split (lambda (ls) (if (or (null? ls) (null? (cdr ls))) (values ls '()) (call-with-values (lambda () (split (cddr ls))) (lambda (odds evens) (values (cons (car ls) odds) (cons (cadr ls) evens)))))))) (split '(a b c d e f)))) '((a c e) (b d f))) (test (call-with-values (lambda () (call/cc (lambda (k) (k 2 3)))) (lambda (x y) (list x y))) '(2 3)) (test (+ (call/cc (lambda (return) (return (values 1 2 3)))) 4) 10) (test (let ((values 3)) (+ 2 values)) 5) (test (let ((a (values 1))) a) 1) (test (call-with-values (lambda () 2) (lambda (x) x)) 2) (test (call-with-values (lambda () -1) abs) 1) (test (call-with-values (lambda () (values -1)) abs) 1) (test (call-with-values (lambda () (values -1)) (lambda (a) (abs a))) 1) (test (call-with-values (lambda () (values (call-with-values (lambda () (values 1 2 3)) +) (call-with-values (lambda () (values 1 2 3 4)) *))) (lambda (a b) (- a b))) -18) (test (call-with-values (lambda () (values (call-with-values (lambda () (values 1 2 3)) +) (call-with-values (lambda () (values 1 2 3 4)) *))) (lambda (a b) (+ (* a (call-with-values (lambda () (values 1 2 3)) +)) (* b (call-with-values (lambda () (values 1 2 3 4)) *))))) 612) ;;; -------- let, let*, letrec -------- (test (let ((x 2) (y 3)) (* x y)) 6) (test (let ((x 32)) (let ((x 3) (y x)) y)) 32) (test (let ((x 32)) (let* ((x 3) (y x)) y)) 3) (test (let ((x 2) (y 3)) (let ((x 7) (z (+ x y))) (* z x))) 35) (test (let ((x 2) (y 3)) (let* ((x 7) (z (+ x y))) (* z x))) 70) (test (letrec ((even? (lambda (n) (if (zero? n) #t (odd? (- n 1))))) (odd? (lambda (n) (if (zero? n) #f (even? (- n 1)))))) (even? 88)) #t) (test (let loop ((numbers '(3 -2 1 6 -5)) (nonneg '()) (neg '())) (cond ((null? numbers) (list nonneg neg)) ((>= (car numbers) 0) (loop (cdr numbers) (cons (car numbers) nonneg) neg)) ((< (car numbers) 0) (loop (cdr numbers) nonneg (cons (car numbers) neg))))) '((6 1 3) (-5 -2))) (test (let ((x 3)) (define x 5) x) 5) (test (let* () (define x 8) x) 8) (test (letrec () (define x 9) x) 9) (test (letrec ((x 3)) (define x 10) x) 10) (test (let foo () 1) 1) (test (let ((f -)) (let f ((n (f 1))) n)) -1) (test (let () 1 2 3 4) 4) (test (let ((x 1)) (let ((x 32) (y x)) y)) 1) (test (let ((x 1)) (letrec ((y (if #f x 1)) (x 32)) 1)) 1) (test (let ((x 1)) (letrec ((y (lambda () (+ 1 x))) (x 32)) (y))) 33) ; good grief! -- (let ((x 1)) (letrec ((y (* 0 x)) (x 32)) y)) (test (let* ((x 1) (f (letrec ((y (lambda () (+ 1 x))) (x 32)) y))) (f)) 33) (test (letrec ((x 1) (y (let ((x 2)) x))) (+ x y)) 3) (test (letrec ((f (lambda () (+ x 3))) (x 2)) (f)) 5) (test (let* ((x 1) (x 2)) x) 2) (test (let* ((x 1) (y x)) y) 1) (test (let ((x 1)) (let ((x 32) (y x)) (+ x y))) 33) (test (let ((x 1)) (let* ((x 32) (y x)) (+ x y))) 64) (test (let ((x 'a) (y '(b c))) (cons x y)) '(a b c)) (test (let ((x 0) (y 1)) (let ((x y) (y x)) (list x y))) (list 1 0)) (test (let ((x 0) (y 1)) (let* ((x y) (y x)) (list x y))) (list 1 1)) (test (letrec ((sum (lambda (x) (if (zero? x) 0 (+ x (sum (- x 1))))))) (sum 5)) 15) (test (let ((divisors (lambda (n) (let f ((i 2)) (cond ((>= i n) '()) ((integer? (/ n i)) (cons i (f (+ i 1)))) (else (f (+ i 1)))))))) (divisors 32)) '(2 4 8 16)) (test (let ((a -1)) (let loop () (if (not (positive? a)) (begin (set! a (+ a 1)) (loop)))) a) 1) (test (let* ((let 3) (x let)) (+ x let)) 6) (test (let () (let () (let () '()))) '()) (test (let ((x 1)) (let ((y 0)) (begin (let ((x (* 2 x))) (set! y x))) y)) 2) (test (let* ((x 1) (x (+ x 1)) (x (+ x 2))) x) 4) (test (let ((.. 2) (.... 4) (..... +)) (..... .. ....)) 6) (test (let () (begin (define x 1)) x) 1) (test (let ((y 1)) (begin (define x 1)) (+ x y)) 2) (test (let ((: 0)) (- :)) 0) (test ((let ((x 2)) (let ((x 3)) (lambda (arg) (+ arg x)))) 1) 4) (test ((let ((x 2)) (define (inner arg) (+ arg x)) (let ((x 32)) (lambda (arg) (inner (+ arg x))))) 1) 35) (test ((let ((inner (lambda (arg) (+ arg 1)))) (let ((inner (lambda (arg) (inner (+ arg 2))))) inner)) 3) 6) (test ((let () (define (inner arg) (+ arg 1)) (let ((inner (lambda (arg) (inner (+ arg 2))))) inner)) 3) 6) (test ((let ((x 11)) (define (inner arg) (+ arg x)) (let ((inner (lambda (arg) (inner (+ (* 2 arg) x))))) inner)) 3) 28) (test ((let ((x 11)) (define (inner arg) (+ arg x)) (let ((x 2)) (lambda (arg) (inner (+ (* 2 arg) x))))) 3) 19) (test (let ((f1 (lambda (arg) (+ arg 1)))) (let ((f1 (lambda (arg) (f1 (+ arg 2))))) (f1 1))) 4) (test (let ((f1 (lambda (arg) (+ arg 1)))) (let* ((f1 (lambda (arg) (f1 (+ arg 2))))) (f1 1))) 4) (test (let ((f1 (lambda (arg) (+ arg 1)))) (let* ((x 32) (f1 (lambda (arg) (f1 (+ x arg))))) (f1 1))) 34) (test ((let ((x 11)) (define (inner arg) (+ arg x)) (let ((x 2) (inner (lambda (arg) (inner (+ (* 2 arg) x))))) inner)) 3) 28) (test ((let ((x 11)) (define (inner arg) (+ arg x)) (let* ((x 2) (inner (lambda (arg) (inner (+ (* 2 arg) x))))) inner)) 3) 19) (test (let ((x 1)) (let* ((f1 (lambda (arg) (+ x arg))) (x 32)) (f1 1))) 2) (test (let ((inner (lambda (arg) (+ arg 1)))) (let ((inner (lambda (arg) (+ (inner arg) 1)))) (inner 1))) 3) (test (let ((inner (lambda (arg) (+ arg 1)))) (let* ((inner (lambda (arg) (+ (inner arg) 1)))) (inner 1))) 3) (test (let ((caller #f)) (let ((inner (lambda (arg) (+ arg 1)))) (set! caller inner)) (caller 1)) 2) (test (let ((caller #f)) (let ((x 11)) (define (inner arg) (+ arg x)) (set! caller inner)) (caller 1)) 12) (test (let ((caller #f)) (let ((x 11)) (define (inner arg) (+ arg x)) (let ((y 12)) (let ((inner (lambda (arg) (+ (inner x) y arg)))) ; 11 + 11 + 12 + arg (set! caller inner)))) (caller 1)) 35) (test (let ((caller #f)) (let ((x 11)) (define (inner arg) (+ arg x)) (let* ((y 12) (inner (lambda (arg) (+ (inner x) y arg)))) ; 11 + 11 + 12 + arg (set! caller inner))) (caller 1)) 35) (test (let* ((f1 3) (f1 4)) f1) 4) (test (let ((f1 (lambda () 4))) (define (f1) 3) (f1)) 3) (test (let ((j -1) (k 0)) (do ((i 0 (+ i j)) (j 1)) ((= i 3) k) (set! k (+ k i)))) 3) (test (let ((j (lambda () -1)) (k 0)) (do ((i 0 (+ i (j))) (j (lambda () 1))) ((= i 3) k) (set! k (+ k i)))) 3) (test (let ((j (lambda () 0)) (k 0)) (do ((i (j) (j)) (j (lambda () 1) (lambda () (+ i 1)))) ((= i 3) k) (set! k (+ k i)))) 6) ; or is it 3? (test (let ((k 0)) (do ((i 0 (+ i 1)) (j 0 (+ j i))) ((= i 3) k) (set! k (+ k j)))) 1) (test (let ((j (lambda () 0)) (i 2) (k 0)) (do ((i (j) (j)) (j (lambda () i) (lambda () (+ i 1)))) ((= i 3) k) (set! k (+ k i)))) 3) ; or 2? (test (let ((f #f)) (do ((i 0 (+ i 1))) ((= i 3)) (let () (define (x) i) (if (= i 1) (set! f x)))) (f)) 1) (let ((x 123)) (define (hi b) (+ b x)) (let ((x 321)) (test (hi 1) 124) (set! x 322) (test (hi 1) 124)) (set! x 124) (test (hi 1) 125) (let ((x 321) (y (hi 1))) (test y 125)) (let* ((x 321) (y (hi 1))) (test y 125)) (test (hi 1) 125)) (test (let ((x 123)) (begin (define x 0)) x) 0) ; this strikes me as weird, since (let ((x 123) (x 0)) x) is illegal, so... (test (let ((x 123)) (begin (define (hi a) (+ x a)) (define x 0)) (hi 1)) 1) ; is non-lexical reference? (for-each (lambda (arg) (test (let ((x arg)) x) arg)) (list "hi" -1 #\a "" '() '#() (current-output-port) 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t abs (list 1 2 3) '(1 . 2))) (test (let ((x 1)) (= 1 (let ((y 2)) (set! x y) x)) (+ x 1)) 3) (test (let ((x 1)) (let ((xx (lambda (a) (set! x a) a))) (= 1 (xx 2))) (+ x 1)) 3) (test (let ((x 32)) (begin (define x 123) (define (hi a) (+ a 1))) (hi x)) 124) (test (let () (begin (define x 123) (define (hi a) (+ a 1))) (hi x)) 124) ;(let ((initial-chars "aA!$%&*/:<=>?^_~") ; (subsequent-chars "9aA!$%&*+-./:<=>?@^_~") ; (ctr 0)) ; (display (format #f "(let (")) ; (do ((i 0 (+ i 1))) ; ((= i (string-length initial-chars))) ; (display (format #f "(~A ~D) " (string (string-ref initial-chars i)) ctr)) ; (set! ctr (+ ctr 1))) ; ; (do ((i 0 (+ i 1))) ; ((= i (string-length initial-chars))) ; (do ((k 0 (+ k 1))) ; ((= k (string-length subsequent-chars))) ; (display (format #f "(~A ~D) " (string (string-ref initial-chars i) (string-ref subsequent-chars k)) ctr)) ; (set! ctr (+ ctr 1)))) ; ; (display (format #f ")~% (+ ")) ; (do ((i 0 (+ i 1))) ; ((= i (string-length initial-chars))) ; (display (format #f "~A " (string (string-ref initial-chars i))))) ; ; (do ((i 0 (+ i 1))) ; ((= i (string-length initial-chars))) ; (do ((k 0 (+ k 1))) ; ((= k (string-length subsequent-chars))) ; (display (format #f "~A " (string (string-ref initial-chars i) (string-ref subsequent-chars k)))))) ; ; (display (format #f "))~%"))) (num-test (let ((a 0) (A 1) (! 2) ($ 3) (% 4) (& 5) (* 6) (/ 7) (: 8) (< 9) (= 10) (> 11) (? 12) (^ 13) (_ 14) (~ 15) (a9 16) (aa 17) (aA 18) (a! 19) (a$ 20) (a% 21) (a& 22) (a* 23) (a+ 24) (a- 25) (a. 26) (a/ 27) (a: 28) (a< 29) (a= 30) (a> 31) (a? 32) (a@ 33) (a^ 34) (a_ 35) (a~ 36) (A9 37) (Aa 38) (AA 39) (A! 40) (A$ 41) (A% 42) (A& 43) (A* 44) (A+ 45) (A- 46) (A. 47) (A/ 48) (A: 49) (A< 50) (A= 51) (A> 52) (A? 53) (A@ 54) (A^ 55) (A_ 56) (A~ 57) (!9 58) (!a 59) (!A 60) (!! 61) (!$ 62) (!% 63) (!& 64) (!* 65) (!+ 66) (!- 67) (!. 68) (!/ 69) (!: 70) (!< 71) (!= 72) (!> 73) (!? 74) (!@ 75) (!^ 76) (!_ 77) (!~ 78) ($9 79) ($a 80) ($A 81) ($! 82) ($$ 83) ($% 84) ($& 85) ($* 86) ($+ 87) ($- 88) ($. 89) ($/ 90) ($: 91) ($< 92) ($= 93) ($> 94) ($? 95) ($@ 96) ($^ 97) ($_ 98) ($~ 99) (%9 100) (%a 101) (%A 102) (%! 103) (%$ 104) (%% 105) (%& 106) (%* 107) (%+ 108) (%- 109) (%. 110) (%/ 111) (%: 112) (%< 113) (%= 114) (%> 115) (%? 116) (%@ 117) (%^ 118) (%_ 119) (%~ 120) (&9 121) (&a 122) (&A 123) (&! 124) (&$ 125) (&% 126) (&& 127) (&* 128) (&+ 129) (&- 130) (&. 131) (&/ 132) (&: 133) (&< 134) (&= 135) (&> 136) (&? 137) (&@ 138) (&^ 139) (&_ 140) (&~ 141) (*9 142) (*a 143) (*A 144) (*! 145) (*$ 146) (*% 147) (*& 148) (** 149) (*+ 150) (*- 151) (*. 152) (*/ 153) (*: 154) (*< 155) (*= 156) (*> 157) (*? 158) (*@ 159) (*^ 160) (*_ 161) (*~ 162) (/9 163) (/a 164) (/A 165) (/! 166) (/$ 167) (/% 168) (/& 169) (/* 170) (/+ 171) (/- 172) (/. 173) (// 174) (/: 175) (/< 176) (/= 177) (/> 178) (/? 179) (/@ 180) (/^ 181) (/_ 182) (/~ 183) (:9 184) (ca 185) (CA 186) (:! 187) (:$ 188) (:% 189) (:& 190) (:* 191) (:+ 192) (:- 193) (:. 194) (:/ 195) (cc 196) (:< 197) (:= 198) (:> 199) (:? 200) (:@ 201) (:^ 202) (:_ 203) (:~ 204) (<9 205) ( 220) ( 241) (=? 242) (=@ 243) (=^ 244) (=_ 245) (=~ 246) (>9 247) (>a 248) (>A 249) (>! 250) (>$ 251) (>% 252) (>& 253) (>* 254) (>+ 255) (>- 256) (>. 257) (>/ 258) (>: 259) (>< 260) (>= 261) (>> 262) (>? 263) (>@ 264) (>^ 265) (>_ 266) (>~ 267) (?9 268) (?a 269) (?A 270) (?! 271) (?$ 272) (?% 273) (?& 274) (?* 275) (?+ 276) (?- 277) (?. 278) (?/ 279) (?: 280) (?< 281) (?= 282) (?> 283) (?? 284) (?@ 285) (?^ 286) (?_ 287) (?~ 288) (^9 289) (^a 290) (^A 291) (^! 292) (^$ 293) (^% 294) (^& 295) (^* 296) (^+ 297) (^- 298) (^. 299) (^/ 300) (^: 301) (^< 302) (^= 303) (^> 304) (^? 305) (^@ 306) (^^ 307) (^_ 308) (^~ 309) (_9 310) (_a 311) (_A 312) (_! 313) (_$ 314) (_% 315) (_& 316) (_* 317) (_+ 318) (_- 319) (_. 320) (_/ 321) (_: 322) (_< 323) (_= 324) (_> 325) (_? 326) (_@ 327) (_^ 328) (__ 329) (_~ 330) (~9 331) (~a 332) (~A 333) (~! 334) (~$ 335) (~% 336) (~& 337) (~* 338) (~+ 339) (~- 340) (~. 341) (~/ 342) (~: 343) (~< 344) (~= 345) (~> 346) (~? 347) (~@ 348) (~^ 349) (~_ 350) (~~ 351) ) (+ a A ! $ % & * / : < = > ? ^ _ ~ 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 ca CA :! :$ :% :& :* :+ :- :. :/ cc :< := :> :? :@ :^ :_ :~ <9 =? =@ =^ =_ =~ >9 >a >A >! >$ >% >& >* >+ >- >. >/ >: >< >= >> >? >@ >^ >_ >~ ?9 ?a ?A ?! ?$ ?% ?& ?* ?+ ?- ?. ?/ ?: ?< ?= ?> ?? ?@ ?^ ?_ ?~ ^9 ^a ^A ^! ^$ ^% ^& ^* ^+ ^- ^. ^/ ^: ^< ^= ^> ^? ^@ ^^ ^_ ^~ _9 _a _A _! _$ _% _& _* _+ _- _. _/ _: _< _= _> _? _@ _^ __ _~ ~9 ~a ~A ~! ~$ ~% ~& ~* ~+ ~- ~. ~/ ~: ~< ~= ~> ~? ~@ ~^ ~_ ~~ )) 61776) (test (let ()(+ (let ((x 0) (y 1) (z 2) )(+ x y (let ((x 3) )(+ x (let ()(+ (let () (+ (let ((x 0) (y 1) (z 2) )(+ x y z (let ((x 3) )(+ x (let ((x 4) (y 5) (z 6) ) (+ x y z (let ()(+ (let ((x 7) )(+ x (let ()(+ (let ((x 8) (y 9) ) (+ x (let ((x 10) (y 11) (z 12) )(+ x )))))))))))))))))))))))))) 50) (test (let* ((x 0) (y x) )(+ x y (let ()(+ (let ((x 2) )(+ x (let ()(+ (let ((x 4) ) (+ x (let ((x 5) )(+ x (let ((x 6) (y x) (z y) )(+ x (let ((x 7) (y x) ) (+ x (let ((x 8) (y x) )(+ x y (let ((x 9) (y x) (z y) )(+ x )))))))))))))))))))) 48) (test (let* ((x 0) (y x) )(+ x y (let* ()(+ (let* ((x 2) )(+ x (let* ()(+ (let* ((x 4) ) (+ x (let* ((x 5) )(+ x (let* ((x 6) (y x) (z y) )(+ x (let* ((x 7) (y x) ) (+ x (let* ((x 8) (y x) )(+ x y (let* ((x 9) (y x) (z y) )(+ x )))))))))))))))))))) 49) (test (let func ((a 1) (b 2)) (set! b a) (if (> b 0) (func (- a 1) b)) b) 1) (test (let func ((a 1) (b 2)) (set! b a) (if (> b 0) (func (- a 1) b) b)) 0) (test (let loop ((numbers '(3 -2 1 6 -5)) (nonneg '()) (neg '())) (cond ((null? numbers) (list nonneg neg)) ((>= (car numbers) 0) (loop (cdr numbers) (cons (car numbers) nonneg) neg)) ((< (car numbers) 0) (loop (cdr numbers) nonneg (cons (car numbers) neg))))) '((6 1 3) (-5 -2))) (test (let ((b '(1 2 3))) (let* ((a b) (b (cons 0 a))) (let b ((a b)) (if (null? a) 'done (b (cdr a)))))) 'done) (test (let lp ((x 1000)) (if (positive? x) (lp (- x 1)) x)) 0) (test (let func ((a 1) (b 2) (c 3)) (+ a b c (if (> a 1) (func (- a 1) (- b 1) (- c 1)) 0))) 6) (test (let func ((a 1) (b 2) (c 3)) (+ a b c (if (> a 0) (func (- a 1) (- b 1) (- c 1)) 0))) 9) (test (let func () 1) 1) (test (let ((a 1)) (let func () (if (> a 1) (begin (set! a (- a 1)) (func)) 0))) 0) (test (let func1 ((a 1)) (+ (let func2 ((a 2)) a) a)) 3) (test (let func1 ((a 1)) (+ (if (> a 0) (func1 (- a 1)) (let func2 ((a 2)) (if (> a 0) (func2 (- a 1)) 0))) a)) 1) (test (let func ((a (let func ((a 1)) a))) a) 1) ;;; -------- call/cc -------- ;;; ;;; some of these were originally from Al Petrovsky, Scott G Miller, Matthias Radestock, J H Brown, Dorai Sitaram, ;;; and probably others. (let* ((next-leaf-generator (lambda (obj eot) (letrec ((return #f) (cont (lambda (x) (recur obj) (set! cont (lambda (x) (return eot))) (cont #f))) (recur (lambda (obj) (if (pair? obj) (for-each recur obj) (call-with-current-continuation (lambda (c) (set! cont c) (return obj))))))) (lambda () (call-with-current-continuation (lambda (ret) (set! return ret) (cont #f))))))) (leaf-eq? (lambda (x y) (let* ((eot (list 'eot)) (xf (next-leaf-generator x eot)) (yf (next-leaf-generator y eot))) (letrec ((loop (lambda (x y) (cond ((not (eq? x y)) #f) ((eq? eot x) #t) (else (loop (xf) (yf))))))) (loop (xf) (yf))))))) (test (leaf-eq? '(a (b (c))) '((a) b c)) #t) (test (leaf-eq? '(a (b (c))) '((a) b c d)) #f)) (test (let ((r #f) (a #f) (b #f) (c #f) (i 0)) (let () (set! r (+ 1 (+ 2 (+ 3 (call/cc (lambda (k) (set! a k) 4)))) (+ 5 (+ 6 (call/cc (lambda (k) (set! b k) 7)))))) (if (not c) (set! c a)) (set! i (+ i 1)) (case i ((1) (a 5)) ((2) (b 8)) ((3) (a 6)) ((4) (c 4))) r)) 28) (test (let ((r #f) (a #f) (b #f) (c #f) (i 0)) (let () (set! r (+ 1 (+ 2 (+ 3 (call/cc (lambda (k) (set! a k) 4)))) (+ 5 (+ 6 (call/cc (lambda (k) (set! b k) 7)))))) (if (not c) (set! c a)) (set! i (+ i 1)) (case i ((1) (b 8)) ((2) (a 5)) ((3) (b 7)) ((4) (c 4))) r)) 28) (test (let ((k1 #f) (k2 #f) (k3 #f) (state 0)) (define (identity x) x) (define (fn) ((identity (if (= state 0) (call/cc (lambda (k) (set! k1 k) +)) +)) (identity (if (= state 0) (call/cc (lambda (k) (set! k2 k) 1)) 1)) (identity (if (= state 0) (call/cc (lambda (k) (set! k3 k) 2)) 2)))) (define (check states) (set! state 0) (let* ((res '()) (r (fn))) (set! res (cons r res)) (if (null? states) res (begin (set! state (car states)) (set! states (cdr states)) (case state ((1) (k3 4)) ((2) (k2 2)) ((3) (k1 -))))))) (map check '((1 2 3) (1 3 2) (2 1 3) (2 3 1) (3 1 2) (3 2 1)))) '((-1 4 5 3) (4 -1 5 3) (-1 5 4 3) (5 -1 4 3) (4 5 -1 3) (5 4 -1 3))) (test (let ((x '()) (y 0)) (call/cc (lambda (escape) (let* ((yin ((lambda (foo) (set! x (cons y x)) (if (= y 10) (escape x) (begin (set! y 0) foo))) (call/cc (lambda (bar) bar)))) (yang ((lambda (foo) (set! y (+ y 1)) foo) (call/cc (lambda (baz) baz))))) (yin yang))))) '(10 9 8 7 6 5 4 3 2 1 0)) (test (let ((c #f)) (let ((r '())) (let ((w (let ((v 1)) (set! v (+ (call-with-current-continuation (lambda (c0) (set! c c0) v)) v)) (set! r (cons v r)) v))) (if (<= w 1024) (c w) r)))) '(2048 1024 512 256 128 64 32 16 8 4 2)) (test (let ((cc #f) (r '())) (let ((s (list 1 2 3 4 (call/cc (lambda (c) (set! cc c) 5)) 6 7 8))) (if (null? r) (begin (set! r s) (cc -1)) (list r s)))) '((1 2 3 4 5 6 7 8) (1 2 3 4 -1 6 7 8))) (test (let ((count 0)) (let ((first-time? #t) (k (call/cc values))) (if first-time? (begin (set! first-time? #f) (set! count (+ count 1)) (k values)) (void))) count) 2) (test (procedure? (call/cc call/cc)) #t) (test (call/cc (lambda (c) (0 (c 1)))) 1) (test (call/cc (lambda (k) (k "foo"))) "foo") (test (call/cc (lambda (k) "foo")) "foo") (test (call/cc (lambda (k) (k "foo") "oops")) "foo") (test (call/cc (lambda (return) (catch #t (lambda () (error 'hi "")) (lambda args (return "oops"))))) "oops") (test (call/cc (lambda (return) (catch #t (lambda () (return 1)) (lambda args (return "oops"))))) 1) (test (catch #t (lambda () (call/cc (lambda (return) (return "oops")))) (lambda arg 1)) "oops") (test (call/cc (if (< 2 1) (lambda (return) (return 1)) (lambda (return) (return 2) 3))) 2) (test (call/cc (let ((a 1)) (lambda (return) (set! a (+ a 1)) (return a)))) 2) (test (call/cc (lambda (return) (let ((hi return)) (hi 2) 3))) 2) (test (let () (define (hi) (call/cc func)) (define (func a) (a 1)) (hi)) 1) (test (let ((listindex (lambda (e l) (call/cc (lambda (not_found) (letrec ((loop (lambda (l) (cond ((null? l) (not_found #f)) ((equal? e (car l)) 0) (else (+ 1 (loop (cdr l)))))))) (loop l))))))) (listindex 1 '(0 3 2 4 8))) #f) (test (let ((product (lambda (li) (call/cc (lambda (break) (let loop ((l li)) (cond ((null? l) 1) ((= (car l) 0) (break 0)) (else (* (car l) (loop (cdr l))))))))))) (product '(1 2 3 0 4 5 6))) 0) (test (let ((lst '())) ((call/cc (lambda (goto) (letrec ((start (lambda () (set! lst (cons "start" lst)) (goto next))) (next (lambda () (set! lst (cons "next" lst)) (goto last))) (last (lambda () (set! lst (cons "last" lst)) (reverse lst)))) start))))) '("start" "next" "last")) (test (let ((cont #f)) (letrec ((x (call-with-current-continuation (lambda (c) (set! cont c) 0))) (y (call-with-current-continuation (lambda (c) (set! cont c) 0)))) (if cont (let ((c cont)) (set! cont #f) (set! x 1) (set! y 1) (c 0)) (+ x y)))) 0) (test (letrec ((x (call-with-current-continuation (lambda (c) (list #t c))))) (if (car x) ((cadr x) (list #f (lambda () x))) (eq? x ((cadr x))))) #t) (test (call/cc (lambda (c) (0 (c 1)))) 1) (test (let ((member (lambda (x ls) (call/cc (lambda (break) (do ((ls ls (cdr ls))) ((null? ls) #f) (if (equal? x (car ls)) (break ls)))))))) (list (member 'd '(a b c)) (member 'b '(a b c)))) '(#f (b c))) (test (+ 2 (call/cc (lambda (k) (* 5 (k 4))))) 6) (test (let ((x (call/cc (lambda (k) k)))) (x (lambda (y) "hi"))) "hi") (test (((call/cc (lambda (k) k)) (lambda (x) x)) "hi") "hi") (test (let ((return #f) (lst '())) (let ((val (+ 1 (call/cc (lambda (cont) (set! return cont) 1))))) (set! lst (cons val lst))) (if (= (length lst) 1) (return 10) (if (= (length lst) 2) (return 20))) (reverse lst)) '(2 11 21)) (test (let ((r1 #f) (r2 #f) (lst '())) (define (somefunc x y) (+ (* 2 (expt x 2)) (* 3 y) 1)) (let ((val (somefunc (call/cc (lambda (c1) (set! r1 c1) (c1 1))) (call/cc (lambda (c2) (set! r2 c2) (c2 1)))))) (set! lst (cons val lst))) (if (= (length lst) 1) (r1 2) (if (= (length lst) 2) (r2 3))) (reverse lst)) '(6 12 18)) (let ((tree->generator (lambda (tree) (let ((caller '*)) (letrec ((generate-leaves (lambda () (let loop ((tree tree)) (cond ((null? tree) 'skip) ((pair? tree) (loop (car tree)) (loop (cdr tree))) (else (call/cc (lambda (rest-of-tree) (set! generate-leaves (lambda () (rest-of-tree 'resume))) (caller tree)))))) (caller '())))) (lambda () (call/cc (lambda (k) (set! caller k) (generate-leaves))))))))) (let ((same-fringe? (lambda (tree1 tree2) (let ((gen1 (tree->generator tree1)) (gen2 (tree->generator tree2))) (let loop () (let ((leaf1 (gen1)) (leaf2 (gen2))) (if (eqv? leaf1 leaf2) (if (null? leaf1) #t (loop)) #f))))))) (test (same-fringe? '(1 (2 3)) '((1 2) 3)) #t) (test (same-fringe? '(1 2 3) '(1 (3 2))) #f))) (for-each (lambda (arg) (test (let ((ctr 0)) (let ((val (call/cc (lambda (exit) (do ((i 0 (+ i 1))) ((= i 10) 'gad) (set! ctr (+ ctr 1)) (if (= i 1) (exit arg))))))) (and (equal? val arg) (= ctr 2)))) #t)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (let ((ctr 0)) (let ((val (call/cc (lambda (exit) (do ((i 0 (+ i 1))) ((= i 10) arg) (set! ctr (+ ctr 1)) (if (= i 11) (exit 'gad))))))) (and (equal? val arg) (= ctr 10)))) #t)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (let ((c #f) (r (string-copy "testing-hiho"))) (let ((v (call/cc (lambda (c0) (set! c c0) (list #\a 0))))) (let ((chr (car v)) (index (cadr v))) (string-set! r index chr) (set! index (+ index 1)) (if (<= index 8) (c (list (integer->char (+ 1 (char->integer chr))) index)) r)))) "abcdefghiiho") (test (let ((x 0) (again #f)) (call/cc (lambda (r) (set! again r))) (set! x (+ x 1)) (if (< x 3) (again)) x) 3) (test (let* ((x 0) (again #f) (func (lambda (r) (set! again r)))) (call/cc func) (set! x (+ x 1)) (if (< x 3) (again)) x) 3) (test (let* ((x 0) (again #f)) (call/cc (let () (lambda (r) (set! again r)))) (set! x (+ x 1)) (if (< x 3) (again)) x) 3) (test (let ((x 0) (xx 0)) (let ((cont #f)) (call/cc (lambda (c) (set! xx x) (set! cont c))) (set! x (+ x 1)) (if (< x 3) (cont)) xx)) 0) (test (call/cc procedure?) #t) (test (procedure? (call/cc (lambda (a) a))) #t) (for-each (lambda (arg) (test (call/cc (lambda (a) arg)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (let ((a (call/cc (lambda (a) a)))) (test (eq? a a) #t) (test (eqv? a a) #t) (test (equal? a a) #t) (for-each (lambda (ques) (if (ques a) (begin (display ques) (display " ") (display a) (display " returned #t?") (newline)))) question-ops)) (test (let ((conts (make-vector 4 #f))) (let ((lst '())) (set! lst (cons (+ (call/cc (lambda (a) (vector-set! conts 0 a) 0)) (call/cc (lambda (a) (vector-set! conts 1 a) 0)) (call/cc (lambda (a) (vector-set! conts 2 a) 0)) (call/cc (lambda (a) (vector-set! conts 3 a) 0))) lst)) (let ((len (length lst))) (if (< len 4) ((vector-ref conts (- len 1)) (+ len 1)) (reverse lst))))) '(0 2 5 9)) (test (let ((conts '())) (let ((lst '())) (set! lst (cons (+ (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) 1)) (* (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) 1)) (+ (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) 1)) (* (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) 1)) 2)))) lst)) (let ((len (length lst))) (if (<= len 4) ((list-ref conts (- len 1)) (+ len 1)) (reverse lst))))) ; (+ 1 (* 1 (+ 1 (* 1 2)))) to start ; (+ 1 ... 2 ) ; (+ 1 ... 3 [1] ) ; (+ 1 ...4 [1] ) ; (+ 5 [1] ) '(4 6 6 13 8)) (test (let ((conts (make-vector 4 #f))) (let ((lst '())) (set! lst (cons (+ (call/cc (lambda (a) (if (not (vector-ref conts 0)) (vector-set! conts 0 a)) 0)) (call/cc (lambda (a) (if (not (vector-ref conts 1)) (vector-set! conts 1 a)) 0)) (call/cc (lambda (a) (if (not (vector-ref conts 2)) (vector-set! conts 2 a)) 0)) (call/cc (lambda (a) (if (not (vector-ref conts 3)) (vector-set! conts 3 a)) 0))) lst)) (let ((len (length lst))) (if (< len 4) ((vector-ref conts (- len 1)) (+ len 1)) (reverse lst))))) '(0 2 3 4)) (test (let ((conts '())) (let ((lst '())) (set! lst (cons (+ (if (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) #f)) 1 0) (* (if (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) #f)) 2 1) (+ (if (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) #f)) 1 0) (* (if (call/cc (lambda (a) (if (< (length conts) 4) (set! conts (cons a conts))) #f)) 2 1) 2)))) lst)) (let ((len (length lst))) (if (<= len 4) ((list-ref conts (- len 1)) #t) (reverse lst))))) ; (+ 0 (* 1 (+ 0 (* 1 2)))) to start ; (+ 0 ... 2 ) ; (+ 0 ... 1 [1] ) ; (+ 0 ...2 [0] ) ; (+ 1 [1] ) '(2 4 3 4 3)) (test (let ((call/cc 2)) (+ call/cc 1)) 3) (let ((r5rs-ratify (lambda (ux err) (if (= ux 0.0) 0 (let ((tt 1) (a1 0) (b2 0) (a2 1) (b1 1) (a 0) (b 0) (ctr 0) (x (/ 1 ux))) (call-with-current-continuation (lambda (return) (do () (#f) (set! a (+ (* a1 tt) a2)) (set! b (+ (* tt b1) b2)) ;(display (format #f "~A ~A~%" a (- b a))) (if (or (<= (abs (- ux (/ a b))) err) (> ctr 1000)) (return (/ a b))) (set! ctr (+ 1 ctr)) (if (= x tt) (return)) (set! x (/ 1 (- x tt))) (set! tt (inexact->exact (floor x))) (set! a2 a1) (set! b2 b1) (set! a1 a) (set! b1 b))))))))) (test (r5rs-ratify (/ (log 2.0) (log 3.0)) 1/10000000) 665/1054) (if (positive? 2147483648) (test (r5rs-ratify (/ (log 2.0) (log 3.0)) 1/100000000000) 190537/301994))) (for-each (lambda (arg) (test (let ((ctr 0)) (let ((val (call/cc (lambda (exit) (for-each (lambda (a) (if (equal? a arg) (exit arg)) (set! ctr (+ ctr 1))) (list 0 1 2 3 arg 5)))))) (list ctr val))) (list 4 arg))) (list "hi" -1 #\a 11 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t '(1 . 2))) (test (+ 2 (call/cc (lambda (rtn) (+ 1 (let () (begin (define x (+ 1 (rtn 3)))) x))))) 5) ;;; others from stackoverflow.com Paul Hollingsworth etc: (test (procedure? (call/cc (lambda (k) k))) #t) (test (call/cc (lambda (k) (+ 56 (k 3)))) 3) (test (apply (lambda (k i) (if (> i 5) i (k (list k (* 2 i))))) (call/cc (lambda (k) (list k 1)))) 8) (test (apply (lambda (k i n) (if (= i 0) n (k (list k (- i 1) (* i n))))) (call/cc (lambda (k) (list k 6 1)))) 720) (test (let* ((ka (call/cc (lambda (k) `(,k 1)))) (k (car ka)) (a (cadr ka))) (if (< a 5) (k `(,k ,(* 2 a))) a)) 8) (test (apply (lambda (k i n) (if (eq? i 0) n (k (list k (- i 1) (* i n))))) (call/cc (lambda (k) (list k 6 1)))) 720) (test ((call/cc (lambda (k) k)) (lambda (x) 5)) 5) (let () (define (generate-one-element-at-a-time a-list) (define (generator) (call/cc control-state)) (define (control-state return) (for-each (lambda (an-element-from-a-list) (set! return (call/cc (lambda (resume-here) (set! control-state resume-here) (return an-element-from-a-list))))) a-list) (return 'you-fell-off-the-end-of-the-list)) generator) (let ((gen (generate-one-element-at-a-time (list 3 2 1)))) (test (gen) 3) (test (gen) 2) (test (gen) 1) (test (gen) 'you-fell-off-the-end-of-the-list))) ;;; from Ferguson and Duego "call with current continuation patterns" (test (let () (define count-to-n (lambda (n) (let ((receiver (lambda (exit-procedure) (let ((count 0)) (letrec ((infinite-loop (lambda () (if (= count n) (exit-procedure count) (begin (set! count (+ count 1)) (infinite-loop)))))) (infinite-loop)))))) (call/cc receiver)))) (count-to-n 10)) 10) (test (let () (define product-list (lambda (nums) (let ((receiver (lambda (exit-on-zero) (letrec ((product (lambda (nums) (cond ((null? nums) 1) ((zero? (car nums)) (exit-on-zero 0)) (else (* (car nums) (product (cdr nums)))))))) (product nums))))) (call/cc receiver)))) (product-list '(1 2 3 0 4 5))) 0) (test (let () (define product-list (lambda (nums) (let ((receiver (lambda (exit-on-zero) (letrec ((product (lambda (nums) (cond ((null? nums) 1) ((number? (car nums)) (if (zero? (car nums)) (exit-on-zero 0) (* (car nums) (product (cdr nums))))) (else (* (product (car nums)) (product (cdr nums)))))))) (product nums))))) (call/cc receiver)))) (product-list '(1 2 (3 4) ((5))))) 120) ;;; -------- dynamic-wind -------- (test (let ((ctr1 0) (ctr2 0) (ctr3 0)) (let ((ctr4 (dynamic-wind (lambda () (set! ctr1 (+ ctr1 1))) (lambda () (set! ctr2 (+ ctr2 1)) ctr2) (lambda () (set! ctr3 (+ ctr3 1)))))) (= ctr1 ctr2 ctr3 ctr4 1))) #t) (test (let ((ctr1 0) (ctr2 0) (ctr3 0)) (let ((ctr4 (call/cc (lambda (exit) (dynamic-wind (lambda () (set! ctr1 (+ ctr1 1))) (lambda () (exit ctr2) (set! ctr2 (+ ctr2 1)) ctr2) (lambda () (set! ctr3 (+ ctr3 1)) 123)))))) (and (= ctr1 ctr3 1) (= ctr2 ctr4 0)))) #t) (test (let ((ctr1 0) (ctr2 0) (ctr3 0)) (let ((ctr4 (call/cc (lambda (exit) (dynamic-wind (lambda () (exit ctr1) (set! ctr1 (+ ctr1 1))) (lambda () (set! ctr2 (+ ctr2 1)) ctr2) (lambda () (set! ctr3 (+ ctr3 1)))))))) (= ctr1 ctr2 ctr3 ctr4 0))) #t) (test (let ((ctr1 0) (ctr2 0) (ctr3 0)) (let ((ctr4 (call/cc (lambda (exit) (dynamic-wind (lambda () (set! ctr1 (+ ctr1 1))) (lambda () (set! ctr2 (+ ctr2 1)) ctr2) (lambda () (exit ctr3) (set! ctr3 (+ ctr3 1)))))))) (and (= ctr1 ctr2 1) (= ctr3 ctr4 0)))) #t) (test (let ((path '()) (c #f)) (let ((add (lambda (s) (set! path (cons s path))))) (dynamic-wind (lambda () (add 'connect)) (lambda () (add (call-with-current-continuation (lambda (c0) (set! c c0) 'talk1)))) (lambda () (add 'disconnect))) (if (< (length path) 4) (c 'talk2) (reverse path)))) '(connect talk1 disconnect connect talk2 disconnect)) (for-each (lambda (arg) (test (dynamic-wind (lambda () #f) (lambda () arg) (lambda () #f)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (dynamic-wind (lambda () #f) (lambda () #f) (lambda () #f)) #f) (test (+ 1 (dynamic-wind (lambda () #f) (lambda () (values 2 3 4)) (lambda () #f)) 5) 15) (test (let ((identity (lambda (a) a))) (let ((x '()) (c #f)) (dynamic-wind (lambda () (set! x (cons 'a x))) (lambda () (dynamic-wind (lambda () (set! x (cons 'b x))) (lambda () (dynamic-wind (lambda () (set! x (cons 'c x))) (lambda () (set! c (call/cc identity))) (lambda () (set! x (cons 'd x))))) (lambda () (set! x (cons 'e x)))) (dynamic-wind (lambda () (set! x (cons 'f x))) (lambda () (if c (c #f))) (lambda () (set! x (cons 'g x))))) (lambda () (set! x (cons 'h x)))) (reverse x))) '(a b c d e f g b c d e f g h)) (test (list (dynamic-wind (lambda () #f) (lambda () (values 'a 'b 'c)) (lambda () #f))) (list 'a 'b 'c)) (test (let ((dynamic-wind 1)) (+ dynamic-wind 2)) 3) (test (let ((ctr1 0) (ctr2 0) (ctr3 0)) (let ((val (dynamic-wind (lambda () #f) (lambda () (set! ctr1 1) (call/cc (lambda (exit) (exit 123) (set! ctr2 2) 321))) (lambda () (set! ctr3 3))))) (and (= ctr1 1) (= ctr2 0) (= ctr3 3) (= val 123)))) #t) (test (let ((ctr1 0)) (let ((val (dynamic-wind (let ((a 1)) (lambda () (set! ctr1 a))) (let ((a 10)) (lambda () (set! ctr1 (+ ctr1 a)) ctr1)) (let ((a 100)) (lambda () (set! ctr1 (+ ctr1 a))))))) (and (= ctr1 111) (= val 11)))) #t) (test (let ((ctr1 0)) (let ((val (+ 3 (dynamic-wind (let ((a 1)) (lambda () (set! ctr1 a))) (let ((a 10)) (lambda () (set! ctr1 (+ ctr1 a)) ctr1)) (let ((a 100)) (lambda () (set! ctr1 (+ ctr1 a))))) 1000))) (and (= ctr1 111) (= val 1014)))) #t) (test (let ((n 0)) (call-with-current-continuation (lambda (k) (dynamic-wind (lambda () (set! n (+ n 1)) (k)) (lambda () (set! n (+ n 2))) (lambda () (set! n (+ n 4)))))) n) 1) (test (let ((n 0)) (call-with-current-continuation (lambda (k) (dynamic-wind (lambda () #f) (lambda () (dynamic-wind (lambda () #f) (lambda () (set! n (+ n 1)) (k)) (lambda () (set! n (+ n 2)) ;(k) ))) (lambda () (set! n (+ n 4)))))) n) 7) (test (let ((n 0)) (call-with-current-continuation (lambda (k) (dynamic-wind (lambda () #f) (lambda () (dynamic-wind (lambda () #f) (lambda () (dynamic-wind (lambda () #f) (lambda () (set! n (+ n 1)) (k)) (lambda () (if (= n 1) (set! n (+ n 2)))))) (lambda () (if (= n 3) (set! n (+ n 4)))))) (lambda () (if (= n 7) (set! n (+ n 8))))))) n) 15) ;;; -------- delay and force -------- (if with-delay (begin (test (let ((count 0)) (let ((p1 (delay (* 2 3 (let () (set! count (+ count 1)) count))))) (let ((val1 (force p1)) (val2 (force p1)) (val3 (force p1))) (and (= val1 val2 val3 6) (= count 1))))) #t) (test (let ((stream-car (lambda (s) (car (force s)))) (stream-cdr (lambda (s) (cdr (force s)))) (counters (let next ((n 1)) (delay (cons n (next (+ n 1))))))) (let* ((val1 (stream-car counters)) (val2 (stream-car (stream-cdr counters)))) (letrec ((stream-add (lambda (s1 s2) (delay (cons (+ (stream-car s1) (stream-car s2)) (stream-add (stream-cdr s1) (stream-cdr s2))))))) (let ((even-counters (stream-add counters counters))) (let* ((val3 (stream-car even-counters)) (val4 (stream-car (stream-cdr even-counters)))) (list val1 val2 val3 val4)))))) (list 1 2 2 4)) (test (force (delay (+ 1 2))) 3) (test (let ((p (delay (+ 1 2)))) (list (force p) (force p))) (list 3 3)) (test (letrec ((a-stream (letrec ((next (lambda (n) (cons n (delay (next (+ n 1))))))) (next 0))) (head car) (tail (lambda (stream) (force (cdr stream))))) (head (tail (tail a-stream)))) 2) (letrec ((count 0) (p (delay (begin (set! count (+ count 1)) (if (> count x) count (force p))))) (x 5)) (test (force p) 6) (set! x 10) (test (force p) 6)) (test (let ((generate (lambda (use-it) (let loop ((i 0)) (if (< i 10) (begin (use-it i) (loop (+ i 1))))))) (generator->lazy-list (lambda (generator) (delay (call/cc (lambda (k-main) (generator (lambda (e) (call/cc (lambda (k-reenter) (k-main (cons e (delay (call/cc (lambda (k-new-main) (set! k-main k-new-main) (k-reenter #f)))))))))) (k-main '())))))) (fnull? (lambda (x) (null? (force x)))) (fcar (lambda (x) (car (force x)))) (fcdr (lambda (x) (cdr (force x))))) (letrec ((lazy-list->list (lambda (lz) (if (fnull? lz) '() (cons (fcar lz) (lazy-list->list (fcdr lz))))))) (lazy-list->list (generator->lazy-list generate)))) '(0 1 2 3 4 5 6 7 8 9)) (test (let* ((x 1) (p (delay (+ x 1)))) (force p) (set! x (+ x 1)) (force p)) 2) (test (let* ((x 1) (p #f)) (let* ((x 2)) (set! p (delay (+ x 1)))) (force p)) 3) (test (letrec ((count 0) (x 5) (p (delay (begin (set! count (+ count 1)) (if (> count x) count (force p)))))) (force p) (set! x 10) (force p)) 6) (test (let ((count 0)) (define s (delay (begin (set! count (+ count 1)) 1))) (+ (force s) (force s)) count) 1) (test (let () (define f (let ((first? #t)) (delay (if first? (begin (set! first? #f) (force f)) 'second)))) (force f)) 'second) (test (let () (define q (let ((count 5)) (define (get-count) count) (define p (delay (if (<= count 0) count (begin (set! count (- count 1)) (force p) (set! count (+ count 2)) count)))) (list get-count p))) (let* ((get-count (car q)) (p (cadr q)) (a (get-count)) (b (force p)) (c (get-count))) (list a b c))) (list 5 0 10)) (for-each (lambda (arg) (test (force (delay arg)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (let () ;; j bartlett (define (square x) (* x x)) (define (calculate-statistics-1 the-series) (let* ((size (length the-series)) (sum (apply + the-series)) (mean (/ sum size)) (variance (let* ((variance-list (map (lambda (x) (square (- x mean))) the-series))) (/ (apply + variance-list) size))) (standard-deviation (sqrt variance))) (vector mean variance standard-deviation))) (define (calculate-statistics the-series) (let* ((size (delay (length the-series))) (mean (delay (/ (apply + the-series) (force size)))) (variance (delay (let* ((variance-list (map (lambda (x) (square (- x (force mean)))) the-series))) (/ (apply + variance-list) (force size))))) (standard-deviation (delay (sqrt (force variance))))) (vector mean variance standard-deviation))) (let* ((stats1 (calculate-statistics-1 '(2 6 4 3 7 4 3 6 7 8 43 4 3 2 36 75 3))) (stats (calculate-statistics '(2 6 4 3 7 4 3 6 7 8 43 4 3 2 36 75 3))) (mean (force (vector-ref stats 0))) (variance (force (vector-ref stats 1))) (stddev (force (vector-ref stats 2)))) (and (equal? (vector-ref stats1 0) mean) (equal? (vector-ref stats1 1) variance) (< (abs (- (vector-ref stats1 2) stddev)) 1.0e-6)))) #t) (test (let () ;; j bartlett (define (flatten x) (define (does-flatten x) (if (not (pair? x)) x (cond ((null? (car x)) (does-flatten (cdr x))) ((not (pair? (car x))) (cons (car x) (delay (does-flatten (cdr x))))) (else (does-flatten (cons (caar x) (cons (cdar x) (cdr x)))))))) (delay (does-flatten x))) (let ((lst '((1 2) 3 ((4) 5))) (newlst '())) (do ((i 0 (+ i 1)) (p (force (flatten lst)) (force (cdr p)))) ((= i 5) (reverse newlst)) (set! newlst (cons (car p) newlst))))) (list 1 2 3 4 5)) )) ;;; -------- quasiquote -------- (test `(1 2 3) '(1 2 3)) (test `() '()) (test `(list ,(+ 1 2) 4) '(list 3 4)) (test `(1 ,@(list 1 2) 4) '(1 1 2 4)) (test `#(1 ,@(list 1 2) 4) '#(1 1 2 4)) (test `(a ,(+ 1 2) ,@(map abs '(4 -5 6)) b) '(a 3 4 5 6 b)) (if (eqv? 2 (sqrt 4)) (test `#(10 5 ,(sqrt 4) ,@(map sqrt '(16 9)) 8) '#(10 5 2 4 3 8))) ; inexactness foolishness (test `(a `(b ,(+ 1 2) ,(foo ,(+ 1 3) d) e) f) '(a `(b ,(+ 1 2) ,(foo 4 d) e) f)) (test (let ((name1 'x) (name2 'y)) `(a `(b ,,name1 ,',name2 d) e)) '(a `(b ,x ,'y d) e)) (test `(,@'() . foo) 'foo) (test `(1 2 ,(* 9 9) 3 4) '(1 2 81 3 4)) (test `(1 ,(+ 1 1) 3) '(1 2 3)) ;#; `(,(+ 1 2)) -> infinite loop? (test `(,'a . ,'b) (cons 'a 'b)) ;; from gauche (let ((quasi0 99) (quasi1 101) (quasi2 '(a b)) (quasi3 '(c d))) (test `,quasi0 99) (test `,quasi1 101) (test `(,(cons 1 2)) '((1 . 2))) (test `(,(cons 1 2) 3) '((1 . 2) 3)) (test `(,quasi0 3) '(99 3)) (test `(3 ,quasi0) '(3 99)) (test `(,(+ quasi0 1) 3) '(100 3)) (test `(3 ,(+ quasi0 1)) '(3 100)) (test `(,quasi1 3) '(101 3)) (test `(3 ,quasi1) '(3 101)) (test `(,(+ quasi1 1) 3) '(102 3)) (test `(3 ,(+ quasi1 1)) '(3 102)) (test `(1 ,@(list 2 3) 4) '(1 2 3 4)) (test `(1 2 ,@(list 3 4)) '(1 2 3 4)) (test `(,@quasi2 ,@quasi3) '(a b c d)) (test `(1 2 . ,(list 3 4)) '(1 2 3 4)) (test `(,@quasi2 . ,quasi3) '(a b c d)) (test `#(,(cons 1 2) 3) '#((1 . 2) 3)) (test `#(,quasi0 3) '#(99 3)) (test `#(,(+ quasi0 1) 3) '#(100 3)) (test `#(3 ,quasi1) '#(3 101)) (test `#(3 ,(+ quasi1 1)) '#(3 102)) (test `#(1 ,@(list 2 3) 4) '#(1 2 3 4)) (test `#(1 2 ,@(list 3 4)) '#(1 2 3 4)) (test `#(,@quasi2 ,@quasi3) '#(a b c d)) (test `#(,@quasi2 ,quasi3) '#(a b (c d))) (test `#(,quasi2 ,@quasi3) '#((a b) c d)) (test `#() '#()) (test `#(,@(list)) '#()) (test `(,@(list 1 2) ,@(list 1 2)) '(1 2 1 2)) (test `(,@(list 1 2) a ,@(list 1 2)) '(1 2 a 1 2)) (test `(a ,@(list 1 2) ,@(list 1 2)) '(a 1 2 1 2)) (test `(,@(list 1 2) ,@(list 1 2) a) '(1 2 1 2 a)) (test `(,@(list 1 2) ,@(list 1 2) a b) '(1 2 1 2 a b)) (test `(,@(list 1 2) ,@(list 1 2) . a) '(1 2 1 2 . a)) (test `(,@(list 1 2) ,@(list 1 2) . ,(cons 1 2)) '(1 2 1 2 1 . 2)) (test `(,@(list 1 2) ,@(list 1 2) . ,quasi2) '(1 2 1 2 a b)) (test `(,@(list 1 2) ,@(list 1 2) a . ,(cons 1 2)) '(1 2 1 2 a 1 . 2)) (test `(,@(list 1 2) ,@(list 1 2) a . ,quasi3) '(1 2 1 2 a c d)) (test `#(,@(list 1 2) ,@(list 1 2)) '#(1 2 1 2)) (test `#(,@(list 1 2) a ,@(list 1 2)) '#(1 2 a 1 2)) (test `#(a ,@(list 1 2) ,@(list 1 2)) '#(a 1 2 1 2)) (test `#(,@(list 1 2) ,@(list 1 2) a) '#(1 2 1 2 a)) (test `#(,@(list 1 2) ,@(list 1 2) a b) '#(1 2 1 2 a b)) (test `(1 `(1 ,2 ,,(+ 1 2)) 1) '(1 `(1 ,2 ,3) 1)) (test `(1 `(1 ,,quasi0 ,,quasi1) 1) '(1 `(1 ,99 ,101) 1)) (test `(1 `(1 ,@2 ,@,(list 1 2))) '(1 `(1 ,@2 ,@(1 2)))) (test `(1 `(1 ,@,quasi2 ,@,quasi3)) '(1 `(1 ,@(a b) ,@(c d)))) (test `(1 `(1 ,(,@quasi2 x) ,(y ,@quasi3))) '(1 `(1 ,(a b x) ,(y c d)))) (test `#(1 `(1 ,2 ,,(+ 1 2)) 1) '#(1 `(1 ,2 ,3) 1)) (test `#(1 `(1 ,,quasi0 ,,quasi1) 1) '#(1 `(1 ,99 ,101) 1)) (test `#(1 `(1 ,@2 ,@,(list 1 2))) '#(1 `(1 ,@2 ,@(1 2)))) (test `#(1 `(1 ,@,quasi2 ,@,quasi3)) '#(1 `(1 ,@(a b) ,@(c d)))) (test `#(1 `(1 ,(,@quasi2 x) ,(y ,@quasi3))) '#(1 `(1 ,(a b x) ,(y c d)))) (test `(1 `#(1 ,(,@quasi2 x) ,(y ,@quasi3))) '(1 `#(1 ,(a b x) ,(y c d))))) (test (let ((hi (lambda (a) `(+ 1 ,a)))) (hi 2)) '(+ 1 2)) (test (let ((hi (lambda (a) `(+ 1 ,@a)))) (hi (list 2 3))) '(+ 1 2 3)) (test (let ((hi (lambda (a) `(let ((b ,a)) ,(+ 1 a))))) (hi 3)) '(let ((b 3)) 4)) (test (let ((x '(a b c))) `(x ,x ,@x foo ,(cadr x) bar ,(cdr x) baz ,@(cdr x))) '(x (a b c) a b c foo b bar (b c) baz b c)) (test (let ((x '(a b c))) `(,(car `(,x)))) '((a b c))) (test (let ((x '(a b c))) `(,@(car `(,x)))) '(a b c)) (test (let ((x '(a b c))) `(,(car `(,@x)))) '(a)) (test (let ((x '(a b c))) (cadadr ``,,x)) '(a b c)) (test (let ((x '(a b c))) `,(car `,x)) 'a) (test (let ((x '(2 3))) `(1 ,@x 4)) '(1 2 3 4)) (test (let ((x '(2 3))) `#(9 ,@x 9)) '#(9 2 3 9)) (test `#(1 ,(/ 12 2)) '#(1 6)) (test ((lambda () `#(1 ,(/ 12 2)))) '#(1 6)) (test (let ((x '(2 3))) `(1 ,@(map (lambda (a) (+ a 1)) x))) '(1 3 4)) ;;; these are from the scheme bboard (test (let ((x '(1 2 3))) `(0 . ,x)) '(0 1 2 3)) (test (let ((x '(1 2 3))) `(0 ,x)) '(0 (1 2 3))) (test (let ((x '(1 2 3))) `#(0 ,x)) '#(0 (1 2 3))) ;(test (let ((x '(1 2 3))) `#(0 . ,x)) '#(0 1 2 3)) (if with-hash-tables (begin (let ((ht (make-hash-table))) (test (hash-table? ht) #t) (test (let () (hash-table-set! ht 'key 3.14) (hash-table-ref ht 'key)) 3.14) (test (let () (hash-table-set! ht "ky" 3.14) (hash-table-ref ht "ky")) 3.14) (test (let () (hash-table-set! ht 123 "hiho") (hash-table-ref ht 123)) "hiho") (test (let () (hash-table-set! ht 3.14 "hi") (hash-table-ref ht 3.14)) "hi") (test (let () (hash-table-set! ht our-pi "hiho") (hash-table-ref ht our-pi)) "hiho") (test (hash-table-ref ht "123") #f) (for-each (lambda (arg) (test (let () (hash-table-set! ht 'key arg) (hash-table-ref ht 'key)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))) (let ((ht (make-hash-table 277))) (test (hash-table? ht) #t) (test (hash-table-size ht) 277) (test (let () (hash-table-set! ht 'key 3.14) (hash-table-ref ht 'key)) 3.14) (test (let () (hash-table-set! ht "ky" 3.14) (hash-table-ref ht "ky")) 3.14) (for-each (lambda (arg) (test (let () (hash-table-set! ht 'key arg) (hash-table-ref ht 'key)) arg)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))) (for-each (lambda (arg) (test (hash-table? arg) #f)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t #f '() '#(()) (list 1 2 3) '(1 . 2))) (test (hash-table? (make-vector 3 '())) #f) (let ((ht (make-hash-table))) (test (hash-table-ref ht 'not-a-key) #f) (test (hash-table-ref ht "not-a-key") #f) (hash-table-set! ht 'key 3/4) (hash-table-set! ht "key" "hi") (test (hash-table-ref ht "key") "hi") (test (hash-table-ref ht 'key) "hi") (hash-table-set! ht 'asd 'hiho) (test (hash-table-ref ht 'asd) 'hiho)) (let ((ht1 (make-hash-table 653)) (ht2 (make-hash-table 277))) (hash-table-set! ht1 'key 'hiho) (hash-table-set! ht2 (hash-table-ref ht1 'key) 3.14) (test (hash-table-size ht1) 653) (test (hash-table-ref ht2 'hiho) 3.14) (test (hash-table-ref ht2 (hash-table-ref ht1 'key)) 3.14)) )) (if with-keywords (begin (for-each (lambda (arg) (test (keyword? arg) #f)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t #f '() '#(()) (list 1 2 3) '(1 . 2))) (let ((kw (make-keyword "hiho"))) (test (keyword? kw) #t) (test (keyword->symbol kw) 'hiho) (test (symbol->keyword 'hiho) kw) (test (keyword->symbol (symbol->keyword 'key)) 'key) (test (symbol->keyword (keyword->symbol (make-keyword "hi"))) :hi) (test (keyword? :a-key) #t) (test (keyword? ':a-key) #t) (test (keyword? ':a-key:) #t) (test (keyword? 'a-key:) #t) (test (symbol? (keyword->symbol :hi)) #t) (test (keyword? (keyword->symbol :hi)) #f) (test (symbol? (symbol->keyword 'hi)) #t) (test (equal? kw :hiho) #t) (test ((lambda (arg) (keyword? arg)) :hiho) #t) (test ((lambda (arg) (keyword? arg)) 'hiho) #f) (test ((lambda (arg) (keyword? arg)) kw) #t) (test ((lambda (arg) (keyword? arg)) (symbol->keyword 'hiho)) #t) (test (make-keyword "3") :3) (test (keyword? :3) #t) (test (keyword? ':3) #t) (test (keyword? '3) #f) (test (symbol->string (keyword->symbol hi:)) "hi") (test (symbol->string (keyword->symbol :hi)) "hi") (test (make-keyword ":") ::)) )) (if with-sort! (begin (test (equal? (sort! (list 3 4 8 2 0 1 5 9 7 6) <) (list 0 1 2 3 4 5 6 7 8 9)) #t) (test (equal? (sort! (list 3 4 8 2 0 1 5 9 7 6) (lambda (a b) (< a b))) (list 0 1 2 3 4 5 6 7 8 9)) #t) (test (equal? (sort! (list) <) '()) #t) (test (equal? (sort! (list 1) <) '(1)) #t) (test (equal? (sort! (list 1 1 1) <) '(1 1 1)) #t) (test (equal? (sort! (list 0 1 2 3 4 5 6 7 8 9) <) '(0 1 2 3 4 5 6 7 8 9)) #t) (test (equal? (sort! (list #\a #\l #\o #\h #\a) char) (reverse (list 0 1 2 3 4 5 6 7 8 9))) #t) (test (equal? (sort! '((3 . 1) (2 . 8) (5 . 9) (4 . 7) (6 . 0)) (lambda (a b) (< (car a) (car b)))) '((2 . 8) (3 . 1) (4 . 7) (5 . 9) (6 . 0))) #t) (test (equal? (sort! '((3 . 1) (2 . 8) (5 . 9) (4 . 7) (6 . 0)) (lambda (a b) (< (cdr a) (cdr b)))) '((6 . 0) (3 . 1) (4 . 7) (2 . 8) (5 . 9))) #t) (test (equal? (sort! (list (list 1 2) (list 4 3 2) (list) (list 1 2 3 4)) (lambda (a b) (>= (length a) (length b)))) '((1 2 3 4) (4 3 2) (1 2) ())) #t) (test (equal? (sort! '((1 2 3) (4 5 6) (7 8 9)) (lambda (a b) (> (car a) (car b)))) '((7 8 9) (4 5 6) (1 2 3))) #t) (test (equal? (sort! (list #\b #\A #\B #\a #\c #\C) char) <) '(1 2 3)) #t) (test (equal? (sort! (vector 3 4 8 2 0 1 5 9 7 6) <) (vector 0 1 2 3 4 5 6 7 8 9)) #t) (test (equal? (sort! '#() <) '#()) #t) (test (call/cc (lambda (return) (sort! '(1 2 3) (lambda (a b) (return "oops"))))) "oops") (let ((v (make-vector 10000))) (do ((i 0 (+ i 1))) ((= i 10000)) (vector-set! v i (random 100.0))) (sort! v <) (call/cc (lambda (return) (do ((i 0 (+ i 1))) ((< i 9999)) (if (not (< (vector-ref v i) (vector-ref v (+ i 1)))) (return #f))) #t))) (let ((v '())) (do ((i 0 (+ i 1))) ((= i 10000)) (set! v (cons (random 100.0) v))) (set! v (sort! v >)) (call/cc (lambda (return) (let ((val (car v))) (do ((lst (cdr v) (cdr lst))) ((null? (cdr lst))) (if (not (> val (car lst))) (return #f)) (set! val (car lst)))) #t))) )) (if with-gensym (begin (test (symbol? (gensym)) #t) (test (symbol? (gensym "temp")) #t) (test (eq? (gensym) (gensym)) #f) (test (eqv? (gensym) (gensym)) #f) (test (equal? (gensym) (gensym)) #f) (test (keyword? (gensym)) #f) (let ((sym (gensym))) (test (eval `(let ((,sym 32)) (+ ,sym 1))) 33)) (let ((sym1 (gensym)) (sym2 (gensym))) (test (eval `(let ((,sym1 32) (,sym2 1)) (+ ,sym1 ,sym2))) 33)) (test (let ((hi (gensym))) (eq? hi (string->symbol (symbol->string hi)))) #t) (if with-reverse! (begin ;; from guile-user I think ;; (block LABEL FORMS...) ;; ;; Execute FORMS. Within FORMS, a lexical binding named LABEL is ;; visible that contains an escape function for the block. Calling ;; the function in LABEL with a single argument will immediatly stop ;; the execution of FORMS and return the argument as the value of the ;; block. If the function in LABEL is not invoked, the value of the ;; block is the value of the last form in FORMS. (define-macro (block label . forms) `(let ((body (lambda (,label) ,@forms)) (tag (gensym "return-"))) (catch tag (lambda () (body (lambda (val) (error tag val)))) (lambda (tag val) val)))) ;; (with-return FORMS...) ;; ;; Equivalent to (block return FORMS...) (define-macro (with-return . forms) `(block return ,@forms)) ;; (tagbody TAGS-AND-FORMS...) ;; ;; TAGS-AND-FORMS is a list of either tags or forms. A TAG is a ;; symbol while a FORM is everything else. Normally, the FORMS are ;; executed sequentially. However, control can be transferred to the ;; forms following a TAG by invoking the tag as a function. That is, ;; within the FORMS, there is a lexical binding for each TAG with the ;; symbol that is the tag as its name. The bindings carry functions ;; that will execute the FORMS following the respective TAG. ;; ;; The value of a tagbody is always `#f'. (define (transform-tagbody forms) (let ((start-tag (gensym "start-")) (block-tag (gensym "block-"))) (let loop ((cur-tag start-tag) (cur-code '()) (tags-and-code '()) (forms forms)) (cond ((null? forms) `(block ,block-tag (letrec ,(reverse! (cons (list cur-tag `(lambda () ,@(reverse! (cons `(,block-tag #f) cur-code)))) tags-and-code)) (,start-tag)))) ((symbol? (car forms)) (loop (car forms) '() (cons (list cur-tag `(lambda () ,@(reverse! (cons `(,(car forms)) cur-code)))) tags-and-code) (cdr forms))) (else (loop cur-tag (cons (car forms) cur-code) tags-and-code (cdr forms))))))) (define-macro (tagbody . forms) (transform-tagbody forms)) (define (first_even l) (with-return (tagbody continue (if (not (not (null? l))) (break)) (let ((e (car l))) (if (not (number? e)) (break)) (if (even? e) (return e)) (set! l (cdr l))) (continue) break) (return #f))) (let ((val (first_even '(1 3 5 6 7 8 9)))) (if (not (equal? val (list 6))) (begin (display "first_even (tagbody, gensym, reverse!): '") (display val) (newline)))) )) )) (if with-format (begin (test (format #f "hiho") "hiho") (test (format #f "") "") (test (format #f "a") "a") (test (format #f "~~") "~") (test (format #f "~~~~") "~~") (test (format #f "a~~") "a~") (test (format #f "~~a") "~a") (test (format #f "hiho~%ha") (string-append "hiho" (string #\newline) "ha")) (test (format #f "~%") (string #\newline)) (test (format #f "~%ha") (string-append (string #\newline) "ha")) (test (format #f "hiho~%") (string-append "hiho" (string #\newline))) (for-each (lambda (arg res) (let ((val (catch #t (lambda () (format #f "~A" arg)) (lambda args 'error)))) (if (or (not (string? val)) (not (string=? val res))) (begin (display "(format #f \"~A\" ") (display arg) (display " returned \"") (display val) (display "\" but expected \"") (display res) (display "\"") (newline))))) (list "hiho" -1 #\a 1 #f #t '#(1 2 3) 3.14 3/4 1.5+1.5i '() '#(()) (list 1 2 3) '(1 . 2) 'hi) (list "hiho" "-1" "a" "1" "#f" "#t" "#(1 2 3)" "3.14" "3/4" "1.5+1.5i" "()" "#(())" "(1 2 3)" "(1 . 2)" "hi")) (test (format #f "hi ~A ho" 1) "hi 1 ho") (test (format #f "hi ~a ho" 1) "hi 1 ho") (test (format #f "~a~A~a" 1 2 3) "123") (test (format #f "~a~~~a" 1 3) "1~3") (test (format #f "~a~%~a" 1 3) (string-append "1" (string #\newline) "3")) (for-each (lambda (arg res) (let ((val (catch #t (lambda () (format #f "~S" arg)) (lambda args 'error)))) (if (or (not (string? val)) (not (string=? val res))) (begin (display "(format #f \"~S\" ") (display arg) (display " returned \"") (display val) (display "\" but expected \"") (display res) (display "\"") (newline))))) (list "hiho" -1 #\a 1 #f #t '#(1 2 3) 3.14 3/4 1.5+1.5i '() '#(()) (list 1 2 3) '(1 . 2) 'hi) (list "\"hiho\"" "-1" "#\\a" "1" "#f" "#t" "#(1 2 3)" "3.14" "3/4" "1.5+1.5i" "()" "#(())" "(1 2 3)" "(1 . 2)" "hi")) (test (format #f "hi ~S ho" 1) "hi 1 ho") (test (format #f "hi ~S ho" "abc") "hi \"abc\" ho") (test (format #f "~s~a" #\a #\b) "#\\ab") (test (format #f "~C~c~C" #\a #\b #\c) "abc") (test (format #f "~{~A~}" '(1 2 3)) "123") (test (format #f "asb~{~A ~}asb" '(1 2 3 4)) "asb1 2 3 4 asb") (test (format #f "asb~{~A ~A.~}asb" '(1 2 3 4)) "asb1 2.3 4.asb") (test (format #f ".~{~A~}." '()) "..") (test (format #f "~{~A ~A ~}" '(1 "hi" 2 "ho")) "1 hi 2 ho ") (test (format #f "~{.~{+~A+~}.~}" (list (list 1 2 3) (list 4 5 6))) ".+1++2++3+..+4++5++6+.") (test (format #f "~{~s ~}" '(fred jerry jill)) "fred jerry jill ") (test (format #f "~{~s~^ ~}" '(fred jerry jill)) "fred jerry jill") (test (format #f "~{~s~^~^ ~}" '(fred jerry jill)) "fred jerry jill") (test (format #f "~{.~{~A~}+~{~A~}~}" '((1 2) (3 4 5) (6 7 8) (9))) ".12+345.678+9") (test (format #f "~{.~{+~{-~A~}~}~}" '(((1 2) (3 4 5)))) ".+-1-2+-3-4-5") (test (format #f "~{.~{+~{-~A~}~}~}" '(((1 2) (3 4 5)) ((6) (7 8 9)))) ".+-1-2+-3-4-5.+-6+-7-8-9") (test (format #f "~A ~* ~A" 1 2 3) "1 3") (test (format #f "~*" 1) "") (test (format #f "~{~* ~}" '(1 2 3)) " ") (test (format #f "this is a ~ sentence") "this is a sentence") ;; ~nT handling is a mess -- what are the defaults? which is column 1? do we space up to or up to and including? (test (format #f "asdh~20Thiho") "asdh hiho") (test (format #f "asdh~2Thiho") "asdhhiho") (test (format #f "a~Tb") "ab") (test (format #f "0123456~4,8Tb") "0123456 b") ; (test (format #f "XXX~%0123456~4,8Tb") (string-append "XXX" (string #\newline) "0123456 b")) ; clearly wrong... (test (format #f "0123456~0,8Tb") "0123456 b") ; (test (format #f "0123456~10,8Tb") "0123456 b") (test (format #f "0123456~1,0Tb") "0123456b") (test (format #f "0123456~1,Tb") "0123456b") (test (format #f "0123456~1,Tb") "0123456b") (test (format #f "0123456~,Tb") "0123456b") ; (test (format #f "0123456~7,10Tb") "0123456 b") ; (test (format #f "0123456~8,10tb") "0123456 b") (test (format #f "0123456~3,12tb") "0123456 b") ; (test (format #f "~40TX") " X") ; (test (format #f "X~,8TX~,8TX") "X X X") (test (format #f "X~8,TX~8,TX") "X XX") ; (test (format #f "X~8,10TX~8,10TX") "X X X") (test (format #f "X~8,0TX~8,0TX") "X XX") (test (format #f "X~0,8TX~0,8TX") "X X X") ; (test (format #f "X~1,8TX~1,8TX") "X X X") ; (test (format #f "X~,8TX~,8TX") "X X X") (test (format #f "X~TX~TX") "XXX") ; clisp and sbcl say "X X X" here and similar differences elsewhere (test (format #f "X~0,0TX~0,0TX") "XXX") (test (format #f "X~0,TX~0,TX") "XXX") (test (format #f "X~,0TX~,0TX") "XXX") (test (format #f "~D" 123) "123") (test (format #f "~X" 123) "7b") (test (format #f "~B" 123) "1111011") (test (format #f "~O" 123) "173") (test (format #f "~10D" 123) " 123") (test (format #f "~10X" 123) " 7b") (test (format #f "~10B" 123) " 1111011") (test (format #f "~10O" 123) " 173") (test (format #f "~D" -123) "-123") (test (format #f "~X" -123) "-7b") (test (format #f "~B" -123) "-1111011") (test (format #f "~O" -123) "-173") (test (format #f "~10D" -123) " -123") (test (format #f "~10X" -123) " -7b") (test (format #f "~10B" -123) " -1111011") (test (format #f "~10O" -123) " -173") (test (format #f "~d" 123) "123") (test (format #f "~x" 123) "7b") (test (format #f "~b" 123) "1111011") (test (format #f "~o" 123) "173") (test (format #f "~10d" 123) " 123") (test (format #f "~10x" 123) " 7b") (test (format #f "~10b" 123) " 1111011") (test (format #f "~10o" 123) " 173") (test (format #f "~d" -123) "-123") (test (format #f "~x" -123) "-7b") (test (format #f "~b" -123) "-1111011") (test (format #f "~o" -123) "-173") (test (format #f "~10d" -123) " -123") (test (format #f "~10x" -123) " -7b") (test (format #f "~10b" -123) " -1111011") (test (format #f "~10o" -123) " -173") (if (and (defined? 'most-positive-fixnum) (= most-positive-fixnum 9223372036854775807)) (begin (test (format #f "~D" most-positive-fixnum) "9223372036854775807") (test (format #f "~D" (+ 1 most-negative-fixnum)) "-9223372036854775807") (test (format #f "~X" most-positive-fixnum) "7fffffffffffffff") (test (format #f "~X" (+ 1 most-negative-fixnum)) "-7fffffffffffffff") (test (format #f "~O" most-positive-fixnum) "777777777777777777777") (test (format #f "~O" (+ 1 most-negative-fixnum)) "-777777777777777777777") (test (format #f "~B" most-positive-fixnum) "111111111111111111111111111111111111111111111111111111111111111") (test (format #f "~B" (+ 1 most-negative-fixnum)) "-111111111111111111111111111111111111111111111111111111111111111") (num-test (inexact->exact most-positive-fixnum) most-positive-fixnum) )) (if (and (defined? 'most-positive-fixnum) (= most-positive-fixnum 2147483647)) (begin (test (format #f "~D" most-positive-fixnum) "2147483647") (test (format #f "~D" (+ 1 most-negative-fixnum)) "-2147483647") (test (format #f "~X" most-positive-fixnum) "7fffffff") (test (format #f "~X" (+ 1 most-negative-fixnum)) "-7fffffff") (test (format #f "~O" most-positive-fixnum) "17777777777") (test (format #f "~O" (+ 1 most-negative-fixnum)) "-17777777777") (test (format #f "~B" most-positive-fixnum) "1111111111111111111111111111111") (test (format #f "~B" (+ 1 most-negative-fixnum)) "-1111111111111111111111111111111") (num-test (inexact->exact most-positive-fixnum) most-positive-fixnum) )) (test (format #f "~0D" 123) "123") (test (format #f "~0X" 123) "7b") (test (format #f "~0B" 123) "1111011") (test (format #f "~0O" 123) "173") (call-with-output-file "tmp1.r5rs" (lambda (p) (format p "this ~A ~C test ~D" "is" #\a 3))) (let ((res (call-with-input-file "tmp1.r5rs" (lambda (p) (read-line p))))) (if (not (string=? res "this is a test 3")) (begin (display "call-with-input-file + format to \"tmp1.r5rs\" ... expected \"this is a test 3\", but got \"") (display res) (display "\"?") (newline)))) (if with-open-input-string-and-friends (let ((val (format #f "line 1~%line 2~%line 3"))) (with-input-from-string val (lambda () (let ((line1 (read-line))) (test (string=? line1 "line 1") #t)) (let ((line2 (read-line))) (test (string=? line2 "line 2") #t)) (let ((line3 (read-line))) (test (string=? line3 "line 3") #t)) (let ((eof (read-line))) (test (eof-object? eof) #t)))))) (if with-open-input-string-and-friends (let ((val (format #f "line 1~%line 2~%line 3"))) (call-with-input-string val (lambda (p) (let ((line1 (read-line p #t))) (test (string=? line1 (string-append "line 1" (string #\newline))) #t)) (let ((line2 (read-line p #t))) (test (string=? line2 (string-append "line 2" (string #\newline))) #t)) (let ((line3 (read-line p #t))) (test (string=? line3 "line 3") #t)) (let ((eof (read-line p #t))) (test (eof-object? eof) #t)))))) (if with-open-input-string-and-friends (let ((res #f)) (let ((this-file (open-output-string))) (format this-file "this ~A ~C test ~D" "is" #\a 3) (set! res (get-output-string this-file)) (close-output-port this-file)) (if (not (string=? res "this is a test 3")) (begin (display "open-output-string + format ... expected \"this is a test 3\", but got \"") (display res) (display "\"?") (newline))))) (if with-open-input-string-and-friends (test (call/cc (lambda (return) (let ((val (format #f "line 1~%line 2~%line 3"))) (call-with-input-string val (lambda (p) (return "oops")))))) "oops")) (format #t "format #t: ~D" 1) (format (current-output-port) " output-port: ~D! (this is testing output ports)~%" 2) ;; for float formats, assume s7 for now -- use our-pi and most-positive-fixnum ;; (format with 18 digits is enough to tell what s7_Double is via built-in pi) ;; from slib/formatst.scm (test (string=? (format #f "abc") "abc") #t) (test (string=? (format #f "~a" 10) "10") #t) (test (string=? (format #f "~a" -1.2) "-1.2") #t) (test (string=? (format #f "~a" 'a) "a") #t) (test (string=? (format #f "~a" #t) "#t") #t) (test (string=? (format #f "~a" #f) "#f") #t) (test (string=? (format #f "~a" "abc") "abc") #t) (test (string=? (format #f "~a" '#(1 2 3)) "#(1 2 3)") #t) (test (string=? (format #f "~a" '()) "()") #t) (test (string=? (format #f "~a" '(a)) "(a)") #t) (test (string=? (format #f "~a" '(a b)) "(a b)") #t) (test (string=? (format #f "~a" '(a (b c) d)) "(a (b c) d)") #t) (test (string=? (format #f "~a" '(a . b)) "(a . b)") #t) (test (string=? (format #f "~a ~a" 10 20) "10 20") #t) (test (string=? (format #f "~a abc ~a def" 10 20) "10 abc 20 def") #t) (test (string=? (format #f "~d" 100) "100") #t) (test (string=? (format #f "~x" 100) "64") #t) (test (string=? (format #f "~o" 100) "144") #t) (test (string=? (format #f "~b" 100) "1100100") #t) (test (string=? (format #f "~10d" 100) " 100") #t) (test (string=? (format #f "~10,'*d" 100) "*******100") #t) (test (string=? (format #f "~c" #\a) "a") #t) (test (string=? (format #f "~~~~") "~~") #t) (test (string=? (format #f "~s" "abc") "\"abc\"") #t) (test (string=? (format #f "~s" "abc \\ abc") "\"abc \\\\ abc\"") #t) (test (string=? (format #f "~a" "abc \\ abc") "abc \\ abc") #t) (test (string=? (format #f "~s" "abc \" abc") "\"abc \\\" abc\"") #t) (test (string=? (format #f "~a" "abc \" abc") "abc \" abc") #t) (test (string=? (format #f "~s" #\space) "#\\space") #t) (test (string=? (format #f "~s" #\newline) "#\\newline") #t) (test (string=? (format #f "~s" #\a) "#\\a") #t) (test (string=? (format #f "~a" '(a "b" c)) "(a \"b\" c)") #t) (test (string=? (format #f "abc~ 123") "abc123") #t) (test (string=? (format #f "abc~ 123") "abc123") #t) (test (string=? (format #f "abc~ ") "abc") #t) (test (string=? (format #f "~{ ~a ~}" '(a b c)) " a b c ") #t) (test (string=? (format #f "~{ ~a ~}" '()) "") #t) (test (string=? (format #f "~{ ~a,~a ~}" '(a 1 b 2 c 3)) " a,1 b,2 c,3 ") #t) (test (string=? (format #f "abc ~^ xyz") "abc ") #t) )) (if with-define* (begin (let ((hi (lambda* (a) a))) (test (hi 1) 1) (test (hi) #f) ; all args are optional (test (hi :a 32) 32) ; all args are keywords (test (hi 1 2) 'error) ; extra args (for-each (lambda (arg) (test (hi arg) arg) (test (hi :a arg) arg)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi abs '#(()) (list 1 2 3) '(1 . 2))) (test (hi :b 1) 'error)) (let ((hi (lambda* ((a 1)) a))) (test (hi 2) 2) (test (hi) 1) (test (hi :a 2) 2) (for-each (lambda (arg) (test (hi arg) arg) (test (hi :a arg) arg)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi abs '#(()) (list 1 2 3) '(1 . 2)))) (let ((hi (lambda* (a (b "hi")) (list a b)))) (test (hi) (list #f "hi")) (test (hi 1) (list 1 "hi")) (test (hi 1 2) (list 1 2)) (test (hi :b 1) (list #f 1)) (test (hi :a 1) (list 1 "hi")) (test (hi 1 :b 2) (list 1 2)) (test (hi :b 3 :a 1) (list 1 3)) (test (hi :a 3 :b 1) (list 3 1)) (test (hi 1 :a 3) (list 3 "hi")) (test (hi 1 2 :a 3) 'error) ; trailing (extra) args (test (hi :a 2 :c 1) 'error) (test (hi 1 :c 2) 'error) (for-each (lambda (arg) (test (hi :a 1 :b arg) (list 1 arg)) (test (hi :a arg) (list arg "hi")) (test (hi :b arg) (list #f arg)) (test (hi arg arg) (list arg arg))) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi abs '#(()) (list 1 2 3) '(1 . 2)))) (let ((hi (lambda* (a :key (b 3) :optional c) (list a b c)))) (test (hi) (list #f 3 #f)) (test (hi 1) (list 1 3 #f)) (test (hi :c 32) (list #f 3 32)) (test (hi :c 32 :b 43 :a 54) (list 54 43 32)) (test (hi 1 2 3) (list 1 2 3)) (test (hi :b 32) (list #f 32 #f)) (test (hi 1 2 :c 32) (list 1 2 32))) (let ((hi (lambda* (a :rest b) (list a b)))) (test (hi 1 2 3) (list 1 (list 2 3))) (test (hi) (list #f #f)) (test (hi :a 2) (list 2 #f)) (test (hi :b 3) (list #f 3))) (let ((hi (lambda* (a :rest b :rest c) (list a b c)))) (test (hi 1 2 3 4 5) (list 1 (list 2 3 4 5) (list 3 4 5)))) (let ((hi (lambda* ((a 3) :key (b #t) :optional (c our-pi) :rest d) (list a b c d)))) (test (hi) (list 3 #t our-pi #f)) (test (hi 1 2 3 4) (list 1 2 3 (list 4)))) (let ((hi (lambda* ((a 'hi)) (equal? a 'hi)))) (test (hi) #t) (test (hi 1) #f) (test (hi 'hi) #t) (test (hi :a 1) #f)) (let* ((x 32) (hi (lambda* (a (b x)) (list a b)))) (test (hi) (list #f 32)) (test (hi :a 1) (list 1 32))) (let ((hi (lambda* (a . b) (list a b)))) (test (hi 1 2 3) (list 1 (list 2 3))) (test (hi) (list #f #f)) (test (hi :a 2) (list 2 #f)) (test (hi :b 3) (list #f 3))) (let ((hi (lambda* ((a 0.0) :optional (b 0.0)) (+ a b)))) (num-test (hi 1.0) 1.0) (num-test (hi 1.0 2.0) 3.0) (num-test (hi) 0.0) (num-test (+ (hi) (hi 1.0) (hi 1.0 2.0)) 4.0) (num-test (+ (hi 1.0) (hi) (hi 1.0 2.0)) 4.0) (num-test (+ (hi 1.0) (hi 1.0 2.0) (hi)) 4.0) (num-test (+ (hi 1.0 2.0) (hi) (hi 1.0)) 4.0)) (let ((hi (lambda* ((a 3)) a))) (test :hi (hi :hi))) (let ((hi (lambda* ((a 3) (b 0)) a))) (test :hi (hi :hi)) (test 0 (hi 0 :hi))) (test (let ((hi (lambda*))) (hi)) 'error) (test (let ((hi (lambda* #f))) (hi)) 'error) (test (let ((hi (lambda* "hi" #f))) (hi)) 'error) (test (let ((hi (lambda* ("hi") #f))) (hi)) 'error) (test (let ((hi (lambda* (a 0.0) a))) (hi)) 'error) (test (let ((hi (lambda* (a . 0.0) a))) (hi)) 'error) (test (let ((hi (lambda* ((a . 0.0)) a))) (hi)) 'error) (test (let ((hi (lambda* ((a 0.0 "hi")) a))) (hi)) 'error) (test (let ((hi (lambda* ((a 0.0 . "hi")) a))) (hi)) 'error) (test (let ((hi (lambda* ((a)) a))) (hi)) 'error) (test (let ((hi (lambda* (a 0.0) (b 0.0) (+ a b)))) (hi)) 'error) ;; make sure #: also works (let ((hi (lambda* (a #:optional (b 1)) (+ a b)))) (num-test (hi 1 2) 3) (num-test (hi 1 :b 2) 3) (num-test (hi 1) 2) (num-test (hi 1 #:b 2) 3)) )) (if with-procedure-arity ; s7-specific stuff that needs exercise (begin (test (procedure-arity car) '(1 0 #f)) (test (procedure-arity 'car) '(1 0 #f)) (test (procedure-arity +) '(0 0 #t)) (test (procedure-arity '+) '(0 0 #t)) (test (procedure-arity log) '(1 1 #f)) (test (procedure-arity '/) '(1 0 #t)) ;(test (procedure-arity vector-set!) '(3 0 #f)) ; can be '(3 0 #t) (test (let ((hi (lambda () 1))) (procedure-arity hi)) '(0 0 #f)) (test (let ((hi (lambda (a) 1))) (procedure-arity hi)) '(1 0 #f)) (test (let ((hi (lambda (a b) 1))) (procedure-arity hi)) '(2 0 #f)) (test (let ((hi (lambda (a . b) 1))) (procedure-arity hi)) '(1 0 #t)) (test (let ((hi (lambda a 1))) (procedure-arity hi)) '(0 0 #t)) (test (let () (define (hi) 1) (procedure-arity hi)) '(0 0 #f)) (test (let () (define (hi a) a) (procedure-arity hi)) '(1 0 #f)) (test (let () (define* (hi a) a) (procedure-arity hi)) '(0 1 #f)) (test (let () (define* (hi a . b) a) (procedure-arity hi)) '(0 1 #t)) (test (let () (define* (hi (a 1) (b 2)) a) (procedure-arity hi)) '(0 2 #f)) (test (let ((hi (lambda* (a) 1))) (procedure-arity hi)) '(0 1 #f)) (test (call/cc (lambda (func) (procedure-arity func))) '(0 0 #t)) (for-each (lambda (arg) (test (procedure-arity arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi")) (test (string=? (let () (define (hi) "this is a string" 1) (procedure-documentation hi)) "this is a string") #t) (for-each (lambda (arg) (test (procedure-environment arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi")) (for-each (lambda (arg) (test (continuation? arg) #f)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi abs '#(()) (list 1 2 3) '(1 . 2) "hi" (lambda () 1))) (test (let ((cont #f)) (and (call/cc (lambda (x) (set! cont x) (continuation? x))) (continuation? cont))) #t) (test (string? (s7-version)) #t) (test (eval-string "(+ 1 2)") 3) (test (eval '(+ 1 2)) 3) (test (eval-string (string-append "(list 1 2 3)" (string #\newline) (string #\newline))) (list 1 2 3)) (eval-string (string-append "(define evalstr_1 32)" (string #\newline) "(define evalstr_2 2)")) (test (eval-string "(+ evalstr_1 evalstr_2)") 34) (eval-string (string-append "(set! evalstr_1 3)" "(set! evalstr_2 12)")) (test (eval-string "(+ evalstr_1 evalstr_2)") 15) (test (+ (eval `(values 1 2 3)) 4) 10) (test (+ (eval-string "(values 1 2 3)") 4) 10) (test (+ 1 (eval-string "(+ 2 3)") 4) 10) (test (string=? (procedure-documentation abs) "(abs x) returns the absolute value of the real number x") #t) (test (string=? (procedure-documentation 'abs) "(abs x) returns the absolute value of the real number x") #t) (test (let ((hi (lambda (x) "this is a test" (+ x 1)))) (list (hi 1) (procedure-documentation hi))) (list 2 "this is a test")) (for-each (lambda (arg) (test (procedure-documentation arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi")) (test (let ((hi (lambda (x) (+ x 1)))) (procedure-source hi)) '(lambda (x) (+ x 1))) (for-each (lambda (arg) (test (procedure-source arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi")) (test (make-list 0) '()) (test (make-list 0 123) '()) (test (make-list 1) '(#f)) (test (make-list 1 123) '(123)) (test (make-list 1 '()) '(())) (test (make-list 2) '(#f #f)) (test (make-list 2 1) '(1 1)) (test (make-list -1) 'error) (for-each (lambda (arg) (test (make-list arg) 'error)) (list #\a '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi '#(()) (list 1 2 3) '(1 . 2) "hi")) (test (let () (defmacro hiho (a) `(+ ,a 1)) (hiho 3)) 4) (test (let () (defmacro hiho () `(+ 3 1)) (hiho)) 4) (test (let () (defmacro hiho () `(+ 3 1)) (hiho 1)) 'error) (test (let () (defmacro hi (a) `(+ ,@a)) (hi (1 2 3))) 6) (test (let () (defmacro hi (a) `(+ ,a 1) #f) (hi 2)) #f) (test (let () (define-macro (hiho a) `(+ ,a 1)) (hiho 3)) 4) (test (let () (define-macro (hiho) `(+ 3 1)) (hiho)) 4) (test (let () (define-macro (hiho) `(+ 3 1)) (hiho 1)) 'error) (test (let () (define-macro (hi a) `(+ ,@a)) (hi (1 2 3))) 6) (test (let () (define-macro (hi a) `(+ ,a 1) #f) (hi 2)) #f) (test (let () (define-macro (mac1 a) `',a) (equal? (mac1 (+ 1 2)) '(+ 1 2))) #t) (define-macro* (_mac1_) `(+ 1 2)) (test (_mac1_) 3) (define-macro* (_mac2_ a) `(+ ,a 2)) (test (_mac2_ 1) 3) (test (_mac2_ :a 2) 4) (define-macro* (_mac3_ (a 1)) `(+ ,a 2)) (test (_mac3_) 3) (test (_mac3_ 3) 5) (test (_mac3_ :a 0) 2) (define-macro* (_mac4_ (a 1) (b 2)) `(+ ,a ,b)) (test (_mac4_) 3) (test (_mac4_ :b 3) 4) (test (_mac4_ 2 :b 3) 5) (test (_mac4_ :b 10 :a 12) 22) (test (_mac4_ :a 4) 6) (defmacro* _mac11_ () `(+ 1 2)) (test (_mac11_) 3) (defmacro* _mac12_ (a) `(+ ,a 2)) (test (_mac12_ 1) 3) (test (_mac12_ :a 2) 4) (defmacro* _mac13_ ((a 1)) `(+ ,a 2)) (test (_mac13_) 3) (test (_mac13_ 3) 5) (test (_mac13_ :a 0) 2) (defmacro* _mac14_ ((a 1) (b 2)) `(+ ,a ,b)) (test (_mac14_) 3) (test (_mac14_ :b 3) 4) (test (_mac14_ 2 :b 3) 5) (test (_mac14_ :b 10 :a 12) 22) (test (_mac14_ :a 4) 6) (begin (define-macro (hi a) `(+ ,a 1)) (test (hi 2) 3) (let () (define (ho b) (+ 1 (hi b))) (test (ho 1) 3)) (let ((hi 32)) (test (+ hi 1) 33)) (letrec ((hi (lambda (a) (if (= a 0) 0 (+ 2 (hi (- a 1))))))) (test (hi 3) 6)) (test (equal? '(hi 1) (quote (hi 1))) #t) (test (list? '(hi 1)) #t) (test (list? '(((hi 1)))) #t) (test (equal? (vector (hi 1)) '#(2)) #t) (test (symbol? (vector-ref '#(hi) 0)) #t)) (test (let () (define-constant __c1__ 32) __c1__) 32) (test (let () __c1__) 'error) (test (let ((__c1__ 3)) __c1__) 'error) (test (let* ((__c1__ 3)) __c1__) 'error) (test (letrec ((__c1__ 3)) __c1__) 'error) (test (let () (define (__c1__ a) a) (__c1__ 3)) 'error) (test (let () (set! __c1__ 3)) 'error) (test (constant? '__c1__) #t) (test (constant? 'abs) #f) (test (constant? '*features*) #f) (test (defined? 'pi) #t) (test (defined? 'pi (global-environment)) #t) (test (defined? 'abs (global-environment)) #t) (test (defined? 'abs (current-environment)) #t) (test (let ((__c2__ 32)) (defined? '__c2__)) #t) (test (let ((__c2__ 32)) (defined? '__c2__ (current-environment))) #t) (test (let ((__c2__ 32)) (defined? '__c3__ (current-environment))) #f) (test (let ((__c2__ 32)) (defined? '__c2__ (global-environment))) #f) (test (let ((__c2__ 32)) (defined? '__c3__ (global-environment))) #f) (test (call-with-exit (lambda (c) (0 (c 1)))) 1) (test (call-with-exit (lambda (k) (k "foo"))) "foo") (test (call-with-exit (lambda (k) "foo")) "foo") (test (call-with-exit (lambda (k) (k "foo") "oops")) "foo") (test (let ((memb (lambda (x ls) (call-with-exit (lambda (break) (do ((ls ls (cdr ls))) ((null? ls) #f) (if (equal? x (car ls)) (break ls)))))))) (list (memb 'd '(a b c)) (memb 'b '(a b c)))) '(#f (b c))) (let ((x 1)) (define y (call-with-exit (lambda (return) (set! x (return 32))))) (test (and (= x 1) (= y 32)) #t) (set! y (call-with-exit (lambda (return) ((lambda (a b c) (set! x a)) 1 2 (return 33))))) (test (and (= x 1) (= y 33)) #t) (set! y (call-with-exit (lambda (return) ((lambda (a b) (return a) (set! x b)) 2 3)))) (test (and (= x 1) (= y 2)) #t)) (test (string=? (let ((hi (lambda (b) (+ b 1)))) (object->string hi)) "hi") #t) (test (string=? (object->string 32) "32") #t) (test (string=? (object->string 32.5) "32.5") #t) (test (string=? (object->string 32/5) "32/5") #t) (test (string=? (object->string "hiho") "\"hiho\"") #t) (test (string=? (object->string 'symb) "symb") #t) (test (string=? (object->string (list 1 2 3)) "(1 2 3)") #t) (test (string=? (object->string (cons 1 2)) "(1 . 2)") #t) (test (string=? (object->string '#(1 2 3)) "#(1 2 3)") #t) (test (string=? (object->string +) "+") #t) (test (let ((l (list 1 2))) (list-set! l 0 l) (string=? (object->string l) "([circular list] 2)")) #t) (test (let ((lst (cons 1 2))) (set-cdr! lst lst) (string=? (object->string lst) "[circular list]")) #t) (test (let ((lst (cons 1 2))) (set-car! lst lst) (string=? (object->string lst) "([circular list] . 2)")) #t) (test (let ((lst (cons (cons 1 2) 3))) (set-car! (car lst) lst) (string=? (object->string lst) "(([circular list] . 2) . 3)")) #t) (test (let ((v (vector 1 2))) (vector-set! v 0 v) (string=? (object->string v) "#([circular vector] 2)")) #t) (test (let* ((l1 (list 1 2)) (l2 (list l1))) (list-set! l1 0 l1) (string=? (object->string l2) "(([circular list] 2))")) #t) (test (let* ((v1 (vector 1 2)) (v2 (vector v1))) (vector-set! v1 1 v1) (string=? (object->string v2) "#(#(1 [circular vector]))")) #t) (test (let ((v1 (make-vector 3 1))) (vector-set! v1 0 (cons 3 v1)) (string=? (object->string v1) "#((3 . [circular vector]) 1 1)")) #t) (test (let ((h1 (make-hash-table 11))) (hash-table-set! h1 'hi h1) (string=? (object->string h1) "#(() () () () ((\"hi\" . [circular hash-table])) () () () () () ())")) #t) (test (let* ((l1 (list 1 2)) (v1 (vector 1 2)) (l2 (list 1 l1 2)) (v2 (vector l1 v1 l2))) (vector-set! v1 0 v2) (list-set! l1 1 l2) (string=? (object->string v2) "#((1 (1 [circular list] 2)) #([circular vector] 2) (1 (1 [circular list]) 2))")) #t) (test (multiple-value-bind (a b) (values 1 2) (+ a b)) 3) (test (multiple-value-bind (a) 1 a) 1) (test (multiple-value-bind (a . rest) (values 1 2 3) (+ a (apply + rest))) 6) (test (multiple-value-bind a (values 1 2 3) a) '(1 2 3)) (test (let ((a 1) (b 2)) (multiple-value-set! (a b) (values 32 64)) (+ a b)) 96) (test (call-with-input-file "tmp1.r5rs" (lambda (p) (integer->char (read-byte p)))) #\t) (if (and (defined? 'provided?) (provided? 'threads)) (begin (test (let ((ctr 0)) (let ((t1 (make-thread (lambda () (set! ctr (+ ctr 1)))))) (join-thread t1)) ctr) 1) (test (let ((ctr 0)) (let ((t1 (make-thread (lambda () (set! ctr (+ ctr 1)))))) (join-thread t1) (thread? t1))) #t) (test (let ((ctr 0) (loc (make-thread-variable))) (let ((t1 (make-thread (lambda () (set! (loc) (+ ctr 1)) (set! ctr (loc)))))) (join-thread t1) ctr)) 1) (test (let ((ctr 0) (loc (make-thread-variable))) (let ((t1 (make-thread (lambda () (set! (loc) (+ ctr 1)) (set! ctr (thread-variable? loc)))))) (join-thread t1) ctr)) #t) (test (let ((ctr 0) (lock (make-lock))) (let ((t1 (make-thread (lambda () (grab-lock lock) (set! ctr (+ ctr 1)) (release-lock lock))))) (join-thread t1)) ctr) 1) (test (let ((ctr 0) (lock (make-lock))) (let ((t1 (make-thread (lambda () (grab-lock lock) (set! ctr (lock? lock)) (release-lock lock))))) (join-thread t1)) ctr) #t) (test (let ((ctr 0) (lock (make-lock))) (let ((t1 (make-thread (lambda () (grab-lock lock) (set! ctr (+ ctr 1)) (release-lock lock)))) (t2 (make-thread (lambda () (grab-lock lock) (set! ctr (+ ctr 1)) (release-lock lock))))) (join-thread t1) (join-thread t2)) ctr) 2) (test (let ((ctr 0) (lock (make-lock))) (let ((threads '())) (do ((i 0 (+ 1 i))) ((= i 8)) (let ((t1 (make-thread (lambda () (grab-lock lock) (set! ctr (+ ctr 1)) (release-lock lock))))) (set! threads (cons t1 threads)))) (for-each (lambda (tn) (join-thread tn)) threads)) ctr) 8) (test (let ((ctr 0) (ctr1 0) (ctr2 0) (lock (make-lock)) (var (make-thread-variable))) (let ((t1 (make-thread (lambda () (grab-lock lock) (set! ctr (+ ctr 1)) (set! (var) ctr) (release-lock lock) (set! ctr1 (var))))) (t2 (make-thread (lambda () (grab-lock lock) (set! ctr (+ ctr 1)) (set! (var) ctr) (release-lock lock) (set! ctr2 (var)))))) (join-thread t1) (join-thread t2)) (and (= ctr 2) (= (+ ctr1 ctr2) 3))) #t) (for-each (lambda (arg) (test (thread? arg) #f)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi "hi" abs '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) (for-each (lambda (arg) (test (lock? arg) #f)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi "hi" abs '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) (for-each (lambda (arg) (test (thread-variable? arg) #f)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi "hi" abs '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) (for-each (lambda (arg) (test (make-thread arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi "hi" '#(()) (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (grab-lock arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi "hi" '#(()) (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (release-lock arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi "hi" '#(()) (list 1 2 3) '(1 . 2))))) (let ((v (make-vector '(2 3) 0))) (num-test (vector-length v) 6) (test (vector-dimensions v) '(2 3)) (num-test (v 0 0) 0) (num-test (v 1 2) 0) (test (v 2 2) 'error) (test (v 2 -1) 'error) (test (v 2 0) 'error) (set! (v 0 1) 1) (num-test (v 0 1) 1) (num-test (v 1 0) 0) (set! (v 1 2) 2) (num-test (v 1 2) 2) (test (set! (v 2 2) 32) 'error) (test (set! (v 1 -1) 0) 'error) (test (set! (v 2 0) 0) 'error) (num-test (vector-ref v 0 1) 1) (num-test (vector-ref v 1 2) 2) (test (vector-ref v 2 2) 'error) (test (vector-ref v 1 -1) 'error) (vector-set! v 1 1 64) (num-test (vector-ref v 1 1) 64) (num-test (vector-ref v 0 0) 0) (test (vector-ref v 1 2 3) 'error) (test (vector-set! v 1 2 3 4) 'error) (test (v 1 1 1) 'error) (test (set! (v 1 1 1) 1) 'error)) (let ((v1 (make-vector '(3 2) 0)) (v2 (make-vector '(2 3) 0)) (v3 (make-vector '(2 3 4) 0)) (v4 (make-vector 6 0)) (v5 (make-vector '(2 3) 0))) (test (equal? v1 v2) #f) (test (equal? v1 v3) #f) (test (equal? v1 v4) #f) (test (equal? v2 v2) #t) (test (equal? v3 v2) #f) (test (equal? v4 v2) #f) (test (equal? v5 v2) #t) (test (equal? v4 v3) #f) (test (vector-dimensions v3) '(2 3 4)) (test (vector-dimensions v4) '(6)) (num-test (v3 1 2 3) 0) (set! (v3 1 2 3) 32) (num-test (v3 1 2 3) 32) (num-test (vector-length v3) 24) (num-test (vector-ref v3 1 2 3) 32) (vector-set! v3 1 2 3 -32) (num-test (v3 1 2 3) -32) (test (v3 1 2) 'error) (test (set! (v3 1 2) 3) 'error) (test (vector-ref v3 1 2) 'error) (test (vector-set! v3 1 2 32) 'error)) (test (#(1 2) 1) 2) (test (#(1 2) 1 2) 'error) (test (constant? pi) #t) (test (constant? 'pi) #t) ; take that, Clisp! (test (constant? 12345) #t) (test (constant? 3.14) #t) (test (constant? :asdf) #t) (test (constant? "hi") #t) (test (constant? #\a) #t) (test (constant? #f) #t) (test (constant? #t) #t) (test (constant? '()) #t) (test (constant? '(a)) #t) (test (constant? '*features*) #f) (test (let ((a 3)) (constant? 'a)) #f) (test (constant? 'abs) #f) (test (constant? abs) #t) (test (apply "hi" '(1 2)) 'error) (test ("hi" 1 2) 'error) (test (apply '(1 2) '(1 2)) 'error) (test ((list 1 2 3) 1 2) 'error) (test (apply "hi" '(1)) #\i) (test ("hi" 1) #\i) (test (apply '(1 2) '(1)) 2) (test ((list 1 2 3) 1) 2) (test (let ((pi 3)) pi) 'error) ;; or ... (let ((:asdf 3)) :asdf) and worse (let ((:key 1)) :key) or even worse (let ((:3 1)) 1) (test (let ((x_x_x 32)) (let () (define-constant x_x_x 3) x_x_x) (set! x_x_x 31) x_x_x) 'error) (test (with-environment (current-environment) (let ((x 1)) x)) 1) (test (let ((x 12)) (let ((e (current-environment))) (let ((x 32)) (with-environment e (* x 2))))) 24) (test (let () (define (make-environment . initial-bindings) (cons initial-bindings (global-environment))) (with-environment (make-environment '(x . 2) '(y . 4)) (+ x y))) 6) (test (let ((*features* 123)) (let ((e (global-environment))) (with-environment e (list? *features*)))) #t) (test (let () (define-macro (mac a b) `(with-environment (cons (list (cons 'a ,a) (cons 'b ,b)) (global-environment)) (+ a b))) (let ((+ -)) (mac 1 2))) 3) (test (let ((local 123)) (define pws-test (make-procedure-with-setter (lambda () local) (lambda (val) (set! local val)))) (pws-test)) 123) (test (call/cc (lambda (return) (let ((local 123)) (define pws-test (make-procedure-with-setter (lambda () (return "oops")) (lambda (val) (set! local val)))) (pws-test)))) "oops") (test (call/cc (lambda (return) (let ((local 123)) (define pws-test (make-procedure-with-setter (lambda () 123) (lambda (val) (return "oops")))) (set! (pws-test) 1)))) "oops") (test (let ((local 123)) (define pws-test (make-procedure-with-setter (lambda () local) (lambda (val) (set! local val)))) (set! (pws-test) 321) (pws-test)) 321) (if (defined? 'open-encapsulator) (begin ;; encapsulator tests (let ((gi 32) (gstr (make-string 8 #\x)) (gx 3.14) (gcp 1.5+i) (gl (list 1 2 3)) (gv (vector 1 2 3)) (gc (cons 1 2)) (gr 3/4) (gf (lambda () 123))) (encapsulate (set! gi 3) (string-set! gstr 3 #\A) (set! gx 2.1718) (set! gcp -1.0-i) (list-set! gl 1 32) (set! gc "not a cons") (set! gr (list 3/4)) (set! gi 1) ; see if duplicates intrude (set! gstr "hiho") (set! gf #f)) (test gi 32) (test gstr "xxxxxxxx") (test gx 3.14) (test gcp 1.5+i) (test gl (list 1 2 3)) (test gv (vector 1 2 3)) (test gc (cons 1 2)) (test gr 3/4) (test (gf) 123)) (let ((gsym 123)) (let ((e (open-encapsulator))) (set! gsym 321) (test (e 'gsym) 123) (test (encapsulator? e) #t) (test (encapsulator? 123) #f) (test (encapsulator-bindings e) (list (cons 'gsym 123))) (e) (test gsym 123) (close-encapsulator e))) (let ((g1 1)) (let ((e1 (open-encapsulator))) (let ((g2 2)) (let ((e2 (open-encapsulator))) (let ((g3 3)) (set! g2 32) (set! g1 43) (set! g3 54) (test (encapsulator-bindings e1) (list (cons 'g1 1))) (test (encapsulator-bindings e2) (list (cons 'g1 1) (cons 'g2 2)))) (test (equal? e1 e2) #f) (test (equal? e1 e1) #t) (e1) (close-encapsulator e2)) (test g2 32) (test g1 1) (close-encapsulator e1)))) (let ((g1 321)) (define (set-g1 val) (set! g1 val)) (let ((e (open-encapsulator))) (set-g1 1) (e) (test g1 321) (set-g1 2) (test g1 2) (e) (test g1 321) (close-encapsulator e))) )) (for-each (lambda (arg) (test (port-filename arg) 'error)) (list "hi" -1 #\a 1 0 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t '() (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (port-line-number arg) 'error)) (list "hi" -1 #\a 1 0 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t '() (list 1 2 3) '(1 . 2))) ;; generic length/copy/fill! (test (length (list 1 2)) 2) (test (length "hiho") 4) (test (length (vector 1 2)) 2) (test (length (make-hash-table 7)) 7) (test (length '()) 0) (test (copy 3) 3) (test (copy 3/4) 3/4) (test (copy "hi") "hi") (test (copy (list 1 2 3)) (list 1 2 3)) (test (copy (vector 0.0)) (vector 0.0)) (test (copy #\f) #\f) (test (copy (list 1 (list 2 3))) (list 1 (list 2 3))) (test (copy (cons 1 2)) (cons 1 2)) (test (copy '(1 2 . 3)) '(1 2 . 3)) (if (not (provided? 'gmp)) (let ((r1 (make-random-state 1234))) (random 1.0 r1) (let ((r2 (copy r1))) (let ((v1 (random 1.0 r1)) (v2 (random 1.0 r2))) (test (= v1 v2) #t) (let ((v3 (random 1.0 r1))) (random 1.0 r1) (random 1.0 r1) (let ((v4 (random 1.0 r2))) (test (= v3 v4) #t))))))) (if (provided? 'gmp) (let ((i (copy (bignum "1"))) (r (copy (bignum "3/4"))) (f (copy (bignum "1.5"))) (c (copy (bignum "1.0+1.0i")))) (test (= i (bignum "1")) #t) (test (= r (bignum "3/4")) #t) (test (= f (bignum "1.5")) #t) (test (= c (bignum "1.0+1.0i")) #t))) (let ((str (string #\1 #\2 #\3))) (fill! str #\x) (test str "xxx")) (let ((v (vector 1 2 3))) (fill! v 0.0) (test v (vector 0.0 0.0 0.0))) (let ((lst (list 1 2 (list (list 3) 4)))) (fill! lst 100) (test lst '(100 100 ((100) 100)))) (let ((cn (cons 1 2))) (fill! cn 100) (test cn (cons 100 100))) ;; generic for-each/map (test (let ((sum 0)) (for-each (lambda (n) (set! sum (+ sum n))) (vector 1 2 3)) sum) 6) (test (map (lambda (n) (+ n 1)) (vector 1 2 3)) '#(2 3 4)) ;; try some applicable stuff (test (let ((lst (list 1 2 3))) (set! (lst 1) 32) (list (lst 0) (lst 1))) (list 1 32)) (test (let ((hash (make-hash-table))) (set! (hash 'hi) 32) (hash 'hi)) 32) (test (let ((str (string #\1 #\2 #\3))) (set! (str 1) #\a) (str 1)) #\a) (test (let ((v (vector 1 2 3))) (set! (v 1) 0) (v 1)) 0) (let () (define (hiho a) __func__) (test (or (equal? (hiho 1) 'hiho) (equal? (car (hiho 1)) 'hiho)) #t)) (num-test (log 8 2) 3) (num-test (log -1 -1) 1.0) (num-test (log 1 1) 'error) (num-test (log 1 -1) 0.0) (num-test (log 1.5 -1) 0-0.12906355241341i) (test (random 0 #t) 'error) (test (random 0.0 #(1 2)) 'error) )) ;;; -------------------------------------------------------------------------------- ;;; NUMBERS ;;; -------------------------------------------------------------------------------- ;; -------- sin (num-test (sin 0) 0.0) (num-test (sin 1) 0.84147098480790) (num-test (sin -1) -0.84147098480790) (num-test (sin 2) 0.90929742682568) (num-test (sin -2) -0.90929742682568) (num-test (sin 0/1) 0.0) (num-test (sin 0/2) 0.0) (num-test (sin 0/3) 0.0) (num-test (sin 0/10) 0.0) (num-test (sin 0/1234) 0.0) (num-test (sin 0/1234000000) 0.0) (num-test (sin 0/500029) 0.0) (num-test (sin 0/362880) 0.0) (num-test (sin 1/1) 0.84147098480790) (num-test (sin -1/1) -0.84147098480790) (num-test (sin 1/2) 0.47942553860420) (num-test (sin -1/2) -0.47942553860420) (num-test (sin 1/3) 0.32719469679615) (num-test (sin -1/3) -0.32719469679615) (num-test (sin 1/10) 0.09983341664683) (num-test (sin -1/10) -0.09983341664683) (num-test (sin 1/1234) 0.00081037268278) (num-test (sin -1/1234) -0.00081037268278) (num-test (sin 1/1234000000) 0.00000000081037) (num-test (sin -1/1234000000) -0.00000000081037) (num-test (sin 1/500029) 0.00000199988401) (num-test (sin -1/500029) -0.00000199988401) (num-test (sin 1/362880) 0.00000275573192) (num-test (sin -1/362880) -0.00000275573192) (num-test (sin 2/1) 0.90929742682568) (num-test (sin -2/1) -0.90929742682568) (num-test (sin 2/2) 0.84147098480790) (num-test (sin -2/2) -0.84147098480790) (num-test (sin 2/3) 0.61836980306974) (num-test (sin -2/3) -0.61836980306974) (num-test (sin 2/10) 0.19866933079506) (num-test (sin -2/10) -0.19866933079506) (num-test (sin 2/1234) 0.00162074483338) (num-test (sin -2/1234) -0.00162074483338) (num-test (sin 2/1234000000) 0.00000000162075) (num-test (sin -2/1234000000) -0.00000000162075) (num-test (sin 2/500029) 0.00000399976801) (num-test (sin -2/500029) -0.00000399976801) (num-test (sin 2/362880) 0.00000551146384) (num-test (sin -2/362880) -0.00000551146384) (num-test (sin 3/2) 0.99749498660405) (num-test (sin -3/2) -0.99749498660405) (num-test (sin 3/3) 0.84147098480790) (num-test (sin -3/3) -0.84147098480790) (num-test (sin 3/10) 0.29552020666134) (num-test (sin -3/10) -0.29552020666134) (num-test (sin 3/1234) 0.00243111591964) (num-test (sin -3/1234) -0.00243111591964) (num-test (sin 3/1234000000) 0.00000000243112) (num-test (sin -3/1234000000) -0.00000000243112) (num-test (sin 3/500029) 0.00000599965202) (num-test (sin -3/500029) -0.00000599965202) (num-test (sin 3/362880) 0.00000826719577) (num-test (sin -3/362880) -0.00000826719577) (num-test (sin 10/10) 0.84147098480790) (num-test (sin -10/10) -0.84147098480790) (num-test (sin 10/1234) 0.00810363901920) (num-test (sin -10/1234) -0.00810363901920) (num-test (sin 10/1234000000) 0.00000000810373) (num-test (sin -10/1234000000) -0.00000000810373) (num-test (sin 10/500029) 0.00001999884007) (num-test (sin -10/500029) -0.00001999884007) (num-test (sin 10/362880) 0.00002755731922) (num-test (sin -10/362880) -0.00002755731922) (num-test (sin 1234/1234) 0.84147098480790) (num-test (sin -1234/1234) -0.84147098480790) (num-test (sin 1234/1234000000) 0.00000100000000) (num-test (sin -1234/1234000000) -0.00000100000000) (num-test (sin 1234/500029) 0.00246785435930) (num-test (sin -1234/500029) -0.00246785435930) (num-test (sin 1234/362880) 0.00340056663826) (num-test (sin -1234/362880) -0.00340056663826) (num-test (sin 1234000000/1234000000) 0.84147098480790) (num-test (sin -1234000000/1234000000) -0.84147098480790) (num-test (sin 500029/1234000000) 0.00040520987546) (num-test (sin -500029/1234000000) -0.00040520987546) (num-test (sin 500029/500029) 0.84147098480790) (num-test (sin -500029/500029) -0.84147098480790) (num-test (sin 500029/362880) 0.98146191370834) (num-test (sin -500029/362880) -0.98146191370834) (num-test (sin 362880/1234000000) 0.00029406806707) (num-test (sin -362880/1234000000) -0.00029406806707) (num-test (sin 362880/500029) 0.66367262572318) (num-test (sin -362880/500029) -0.66367262572318) (num-test (sin 362880/362880) 0.84147098480790) (num-test (sin -362880/362880) -0.84147098480790) (num-test (sin 0.0) 0.0) (num-test (sin 0.00000001) 0.00000001) (num-test (sin -0.00000001) -0.00000001) (num-test (sin 1.0) 0.84147098480790) (num-test (sin -1.0) -0.84147098480790) (num-test (sin 0.0+0.0i) 0.0) (num-test (sin -0.0+0.0i) 0.0) (num-test (sin 0.0-0.0i) 0.0) (num-test (sin -0.0-0.0i) -0.0) (num-test (sin 0.0+0.00000001i) 0.0+0.00000001i) (num-test (sin -0.0+0.00000001i) 0.0+0.00000001i) (num-test (sin 0.0-0.00000001i) 0.0-0.00000001i) (num-test (sin -0.0-0.00000001i) -0.0-0.00000001i) (num-test (sin 0.0+1.0i) 0.0+1.17520119364380i) (num-test (sin -0.0+1.0i) 0.0+1.17520119364380i) (num-test (sin 0.0-1.0i) 0.0-1.17520119364380i) (num-test (sin -0.0-1.0i) -0.0-1.17520119364380i) (num-test (sin 0.0+3.14159265358979i) 0.0+11.54873935725775i) (num-test (sin -0.0+3.14159265358979i) 0.0+11.54873935725775i) (num-test (sin 0.0-3.14159265358979i) 0.0-11.54873935725775i) (num-test (sin -0.0-3.14159265358979i) -0.0-11.54873935725775i) (num-test (sin 0.0+2.71828182845905i) 0.0+7.54413710281697i) (num-test (sin -0.0+2.71828182845905i) 0.0+7.54413710281697i) (num-test (sin 0.0-2.71828182845905i) 0.0-7.54413710281697i) (num-test (sin -0.0-2.71828182845905i) -0.0-7.54413710281697i) (num-test (sin 0.00000001+0.0i) 0.00000001) (num-test (sin -0.00000001+0.0i) -0.00000001) (num-test (sin 0.00000001-0.0i) 0.00000001) (num-test (sin -0.00000001-0.0i) -0.00000001) (num-test (sin 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (sin -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (sin 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (sin -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (sin 0.00000001+1.0i) 0.00000001543081+1.17520119364380i) (num-test (sin -0.00000001+1.0i) -0.00000001543081+1.17520119364380i) (num-test (sin 0.00000001-1.0i) 0.00000001543081-1.17520119364380i) (num-test (sin -0.00000001-1.0i) -0.00000001543081-1.17520119364380i) (num-test (sin 0.00000001+3.14159265358979i) 0.00000011591953+11.54873935725775i) (num-test (sin -0.00000001+3.14159265358979i) -0.00000011591953+11.54873935725775i) (num-test (sin 0.00000001-3.14159265358979i) 0.00000011591953-11.54873935725775i) (num-test (sin -0.00000001-3.14159265358979i) -0.00000011591953-11.54873935725775i) (num-test (sin 0.00000001+2.71828182845905i) 0.00000007610125+7.54413710281697i) (num-test (sin -0.00000001+2.71828182845905i) -0.00000007610125+7.54413710281697i) (num-test (sin 0.00000001-2.71828182845905i) 0.00000007610125-7.54413710281697i) (num-test (sin -0.00000001-2.71828182845905i) -0.00000007610125-7.54413710281697i) (num-test (sin 1.0+0.0i) 0.84147098480790) (num-test (sin -1.0+0.0i) -0.84147098480790) (num-test (sin 1.0-0.0i) 0.84147098480790) (num-test (sin -1.0-0.0i) -0.84147098480790) (num-test (sin 1.0+0.00000001i) 0.84147098480790+0.00000000540302i) (num-test (sin -1.0+0.00000001i) -0.84147098480790+0.00000000540302i) (num-test (sin 1.0-0.00000001i) 0.84147098480790-0.00000000540302i) (num-test (sin -1.0-0.00000001i) -0.84147098480790-0.00000000540302i) (num-test (sin 1.0+1.0i) 1.29845758141598+0.63496391478474i) (num-test (sin -1.0+1.0i) -1.29845758141598+0.63496391478474i) (num-test (sin 1.0-1.0i) 1.29845758141598-0.63496391478474i) (num-test (sin -1.0-1.0i) -1.29845758141598-0.63496391478474i) (num-test (sin 1.0+3.14159265358979i) 9.75429233860021+6.23981050459650i) (num-test (sin -1.0+3.14159265358979i) -9.75429233860021+6.23981050459650i) (num-test (sin 1.0-3.14159265358979i) 9.75429233860021-6.23981050459650i) (num-test (sin -1.0-3.14159265358979i) -9.75429233860021-6.23981050459650i) (num-test (sin 1.0+2.71828182845905i) 6.40369949494148+4.07611467243740i) (num-test (sin -1.0+2.71828182845905i) -6.40369949494148+4.07611467243740i) (num-test (sin 1.0-2.71828182845905i) 6.40369949494148-4.07611467243740i) (num-test (sin -1.0-2.71828182845905i) -6.40369949494148-4.07611467243740i) (num-test (sin 10/3) -0.1905679628754527) (num-test (sin 1234/3) 0.213644699569724) (num-test (sin 1234/10) -0.7693905459455223) (num-test (sin 1234000000/3) 9.98585468017658e-1) (num-test (sin 1234000000/500029) -0.9907886154453116) (num-test (sin 1234000000/362880) .9798963032808383) (num-test (sin 500029/2) 0.270047165973401) (num-test (sin 500029/3) 7.610322596690986e-1) (num-test (sin 500029/10) .9665258739436294) (num-test (sin 500029/1234) .05553717596791147) (num-test (sin 362880/1234) -0.9463147870254296) (num-test (sin our-pi) -6.982889851335445E-15) (num-test (sin 2.71828182845905) .4107812905029501) (num-test (sin 3.14159265358979+0.0i) -6.982889851335445E-15) (num-test (sin 3.14159265358979+0.00000001i) -6.982889851335445E-15-1.0E-8i) (num-test (sin 3.14159265358979+1.0i) -1.077516210464362E-14-1.175201193643801i) (num-test (sin 3.14159265358979+3.14159265358979i) -8.094533288479446E-14-11.54873935725783i) (num-test (sin 3.14159265358979+2.71828182845905i) -5.314066559815525E-14-7.54413710281663i) (num-test (sin 2.71828182845905+0.0i) .4107812905029501) (num-test (sin 2.71828182845905+0.00000001i) .4107812905029501-9.117339147869465E-9i) (num-test (sin 2.71828182845905+1.0i) .6338686545195173-1.071470784943156i) (num-test (sin 2.71828182845905+3.14159265358979i) 4.761757525968664-10.52937734504676i) (num-test (sin 2.71828182845905+2.71828182845905i) 3.126097025348496-6.878245654440458i) (num-test (sin 1234.0+0.00000001i) .6019276547624973-7.985506235875843E-9i) (num-test (sin 1234.0+3.14159265358979i) 6.977517249251167-9.222253015388718i) (num-test (sin 1234.0+2.71828182845905i) 4.58074477716391-6.024375387884452i) (num-test (sin 1234000000.0+0.00000001i) -0.9872932128398908+1.5890913089022285E-9i) (num-test (sin 1234000000.0+3.14159265358979i) -11.44465679247962+1.835200134139553i) (num-test (sin 1234000000.0+2.71828182845905i) -7.513424898263172+1.198832270325275i) (num-test (sin 1234.0+12.0i) 48983.30495194942-64983.97008730317i) (num-test (sin -3.45266983001243932001e-04+0.0e+00i) -3.4526697614140534807e-4+0.0i) (num-test (sin 3.45266983001243932001e-04+0.0e+00i) 3.4526697614140534807e-4+0.0i) (num-test (sin -3.45266983001243932001e-04+1.19209289550781250e-07i) -3.4526697614140780134e-4+1.1920928244535424533e-7i) (num-test (sin -3.45266983001243932001e-04-1.19209289550781250e-07i) -3.4526697614140780134e-4-1.1920928244535424533e-7i) (num-test (sin 3.45266983001243932001e-04+1.19209289550781250e-07i) 3.4526697614140780134e-4+1.1920928244535424533e-7i) (num-test (sin 3.45266983001243932001e-04-1.19209289550781250e-07i) 3.4526697614140780134e-4-1.1920928244535424533e-7i) (num-test (sin -3.45266983001243932001e-04+5.0e-01i) -3.8933200722534065172e-4+5.2109527443404709209e-1i) (num-test (sin -3.45266983001243932001e-04-5.0e-01i) -3.8933200722534065172e-4-5.2109527443404709209e-1i) (num-test (sin 3.45266983001243932001e-04+5.0e-01i) 3.8933200722534065172e-4+5.2109527443404709209e-1i) (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.0e+00i) -5.3277478472501939236e-4-1.1752011235963524660e0i) (num-test (sin 3.45266983001243932001e-04+1.0e+00i) 5.3277478472501939236e-4+1.1752011235963524660e0i) (num-test (sin 3.45266983001243932001e-04-1.0e+00i) 5.3277478472501939236e-4-1.1752011235963524660e0i) (num-test (sin -3.45266983001243932001e-04+2.0e+00i) -1.2989619299126701883e-3+3.6268601916692946556e0i) (num-test (sin -3.45266983001243932001e-04-2.0e+00i) -1.2989619299126701883e-3-3.6268601916692946556e0i) (num-test (sin 3.45266983001243932001e-04+2.0e+00i) 1.2989619299126701883e-3+3.6268601916692946556e0i) (num-test (sin 3.45266983001243932001e-04-2.0e+00i) 1.2989619299126701883e-3-3.6268601916692946556e0i) (num-test (sin 1.57045105981189525579e+00+0.0e+00i) 9.9999994039535581669e-1+0.0i) (num-test (sin -1.57045105981189525579e+00+0.0e+00i) -9.9999994039535581669e-1+0.0i) (num-test (sin 1.57045105981189525579e+00+1.19209289550781250e-07i) 9.9999994039536292211e-1+4.1159030931177815679e-11i) (num-test (sin 1.57045105981189525579e+00-1.19209289550781250e-07i) 9.9999994039536292211e-1-4.1159030931177815679e-11i) (num-test (sin -1.57045105981189525579e+00+1.19209289550781250e-07i) -9.9999994039536292211e-1+4.1159030931177815679e-11i) (num-test (sin -1.57045105981189525579e+00-1.19209289550781250e-07i) -9.9999994039536292211e-1-4.1159030931177815679e-11i) (num-test (sin 1.57045105981189525579e+00+5.0e-01i) 1.1276258979946363572e0+1.7991700040937027667e-4i) (num-test (sin 1.57045105981189525579e+00-5.0e-01i) 1.1276258979946363572e0-1.7991700040937027667e-4i) (num-test (sin -1.57045105981189525579e+00+5.0e-01i) -1.1276258979946363572e0+1.7991700040937027667e-4i) (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.0e+00i) 1.5430805428404715942e0-4.0575816248730593018e-4i) (num-test (sin -1.57045105981189525579e+00+1.0e+00i) -1.5430805428404715942e0+4.0575816248730593018e-4i) (num-test (sin -1.57045105981189525579e+00-1.0e+00i) -1.5430805428404715942e0-4.0575816248730593018e-4i) (num-test (sin 1.57045105981189525579e+00+2.0e+00i) 3.7621954668392959445e0+1.2522351259047577385e-3i) (num-test (sin 1.57045105981189525579e+00-2.0e+00i) 3.7621954668392959445e0-1.2522351259047577385e-3i) (num-test (sin -1.57045105981189525579e+00+2.0e+00i) -3.7621954668392959445e0+1.2522351259047577385e-3i) (num-test (sin -1.57045105981189525579e+00-2.0e+00i) -3.7621954668392959445e0-1.2522351259047577385e-3i) (num-test (sin 1.57114159377789786021e+00+0.0e+00i) 9.9999994039535581673e-1+0.0i) (num-test (sin -1.57114159377789786021e+00+0.0e+00i) -9.9999994039535581673e-1+0.0i) (num-test (sin 1.57114159377789786021e+00+1.19209289550781250e-07i) 9.9999994039536292216e-1-4.1159030931163216752e-11i) (num-test (sin 1.57114159377789786021e+00-1.19209289550781250e-07i) 9.9999994039536292216e-1+4.1159030931163216752e-11i) (num-test (sin -1.57114159377789786021e+00+1.19209289550781250e-07i) -9.9999994039536292216e-1-4.1159030931163216752e-11i) (num-test (sin -1.57114159377789786021e+00-1.19209289550781250e-07i) -9.9999994039536292216e-1+4.1159030931163216752e-11i) (num-test (sin 1.57114159377789786021e+00+5.0e-01i) 1.1276258979946363573e0-1.7991700040930646090e-4i) (num-test (sin 1.57114159377789786021e+00-5.0e-01i) 1.1276258979946363573e0+1.7991700040930646090e-4i) (num-test (sin -1.57114159377789786021e+00+5.0e-01i) -1.1276258979946363573e0-1.7991700040930646090e-4i) (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.0e+00i) 1.5430805428404715942e0+4.0575816248716200955e-4i) (num-test (sin -1.57114159377789786021e+00+1.0e+00i) -1.5430805428404715942e0-4.0575816248716200955e-4i) (num-test (sin -1.57114159377789786021e+00-1.0e+00i) -1.5430805428404715942e0+4.0575816248716200955e-4i) (num-test (sin 1.57114159377789786021e+00+2.0e+00i) 3.7621954668392959447e0-1.2522351259043135762e-3i) (num-test (sin 1.57114159377789786021e+00-2.0e+00i) 3.7621954668392959447e0+1.2522351259043135762e-3i) (num-test (sin -1.57114159377789786021e+00+2.0e+00i) -3.7621954668392959447e0-1.2522351259043135762e-3i) (num-test (sin -1.57114159377789786021e+00-2.0e+00i) -3.7621954668392959447e0+1.2522351259043135762e-3i) (num-test (sin 3.14124738660679181379e+00+0.0e+00i) 3.4526697614158608860e-4+0.0i) (num-test (sin -3.14124738660679181379e+00+0.0e+00i) -3.4526697614158608860e-4+0.0i) (num-test (sin 3.14124738660679181379e+00+1.19209289550781250e-07i) 3.4526697614158854187e-4-1.1920928244535424532e-7i) (num-test (sin 3.14124738660679181379e+00-1.19209289550781250e-07i) 3.4526697614158854187e-4+1.1920928244535424532e-7i) (num-test (sin -3.14124738660679181379e+00+1.19209289550781250e-07i) -3.4526697614158854187e-4-1.1920928244535424532e-7i) (num-test (sin -3.14124738660679181379e+00-1.19209289550781250e-07i) -3.4526697614158854187e-4+1.1920928244535424532e-7i) (num-test (sin 3.14124738660679181379e+00+5.0e-01i) 3.8933200722554445944e-4-5.2109527443404709206e-1i) (num-test (sin 3.14124738660679181379e+00-5.0e-01i) 3.8933200722554445944e-4+5.2109527443404709206e-1i) (num-test (sin -3.14124738660679181379e+00+5.0e-01i) -3.8933200722554445944e-4-5.2109527443404709206e-1i) (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.0e+00i) 5.3277478472529828958e-4+1.1752011235963524659e0i) (num-test (sin -3.14124738660679181379e+00+1.0e+00i) -5.3277478472529828958e-4-1.1752011235963524659e0i) (num-test (sin -3.14124738660679181379e+00-1.0e+00i) -5.3277478472529828958e-4+1.1752011235963524659e0i) (num-test (sin 3.14124738660679181379e+00+2.0e+00i) 1.2989619299133501696e-3-3.6268601916692946553e0i) (num-test (sin 3.14124738660679181379e+00-2.0e+00i) 1.2989619299133501696e-3+3.6268601916692946553e0i) (num-test (sin -3.14124738660679181379e+00+2.0e+00i) -1.2989619299133501696e-3-3.6268601916692946553e0i) (num-test (sin -3.14124738660679181379e+00-2.0e+00i) -1.2989619299133501696e-3+3.6268601916692946553e0i) (num-test (sin 3.14193792057279441821e+00+0.0e+00i) -3.4526697614134115926e-4+0.0i) (num-test (sin -3.14193792057279441821e+00+0.0e+00i) 3.4526697614134115926e-4+0.0i) (num-test (sin 3.14193792057279441821e+00+1.19209289550781250e-07i) -3.4526697614134361253e-4-1.1920928244535424533e-7i) (num-test (sin 3.14193792057279441821e+00-1.19209289550781250e-07i) -3.4526697614134361253e-4+1.1920928244535424533e-7i) (num-test (sin -3.14193792057279441821e+00+1.19209289550781250e-07i) 3.4526697614134361253e-4-1.1920928244535424533e-7i) (num-test (sin -3.14193792057279441821e+00-1.19209289550781250e-07i) 3.4526697614134361253e-4+1.1920928244535424533e-7i) (num-test (sin 3.14193792057279441821e+00+5.0e-01i) -3.8933200722526827075e-4-5.2109527443404709211e-1i) (num-test (sin 3.14193792057279441821e+00-5.0e-01i) -3.8933200722526827075e-4+5.2109527443404709211e-1i) (num-test (sin -3.14193792057279441821e+00+5.0e-01i) 3.8933200722526827075e-4-5.2109527443404709211e-1i) (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.0e+00i) -5.3277478472492034385e-4+1.1752011235963524660e0i) (num-test (sin -3.14193792057279441821e+00+1.0e+00i) 5.3277478472492034385e-4-1.1752011235963524660e0i) (num-test (sin -3.14193792057279441821e+00-1.0e+00i) 5.3277478472492034385e-4+1.1752011235963524660e0i) (num-test (sin 3.14193792057279441821e+00+2.0e+00i) -1.2989619299124286975e-3-3.6268601916692946556e0i) (num-test (sin 3.14193792057279441821e+00-2.0e+00i) -1.2989619299124286975e-3+3.6268601916692946556e0i) (num-test (sin -3.14193792057279441821e+00+2.0e+00i) 1.2989619299124286975e-3-3.6268601916692946556e0i) (num-test (sin -3.14193792057279441821e+00-2.0e+00i) 1.2989619299124286975e-3+3.6268601916692946556e0i) (num-test (sin 4.71204371340168837179e+00+0.0e+00i) -9.9999994039535581664e-1+0.0i) (num-test (sin -4.71204371340168837179e+00+0.0e+00i) 9.9999994039535581664e-1+0.0i) (num-test (sin 4.71204371340168837179e+00+1.19209289550781250e-07i) -9.9999994039536292207e-1-4.1159030931192414605e-11i) (num-test (sin 4.71204371340168837179e+00-1.19209289550781250e-07i) -9.9999994039536292207e-1+4.1159030931192414605e-11i) (num-test (sin -4.71204371340168837179e+00+1.19209289550781250e-07i) 9.9999994039536292207e-1-4.1159030931192414605e-11i) (num-test (sin -4.71204371340168837179e+00-1.19209289550781250e-07i) 9.9999994039536292207e-1+4.1159030931192414605e-11i) (num-test (sin 4.71204371340168837179e+00+5.0e-01i) -1.1276258979946363572e0-1.7991700040943409243e-4i) (num-test (sin 4.71204371340168837179e+00-5.0e-01i) -1.1276258979946363572e0+1.7991700040943409243e-4i) (num-test (sin -4.71204371340168837179e+00+5.0e-01i) 1.1276258979946363572e0-1.7991700040943409243e-4i) (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.0e+00i) -1.5430805428404715941e0+4.0575816248744985081e-4i) (num-test (sin -4.71204371340168837179e+00+1.0e+00i) 1.5430805428404715941e0-4.0575816248744985081e-4i) (num-test (sin -4.71204371340168837179e+00-1.0e+00i) 1.5430805428404715941e0+4.0575816248744985081e-4i) (num-test (sin 4.71204371340168837179e+00+2.0e+00i) -3.7621954668392959444e0-1.2522351259052019007e-3i) (num-test (sin 4.71204371340168837179e+00-2.0e+00i) -3.7621954668392959444e0+1.2522351259052019007e-3i) (num-test (sin -4.71204371340168837179e+00+2.0e+00i) 3.7621954668392959444e0-1.2522351259052019007e-3i) (num-test (sin -4.71204371340168837179e+00-2.0e+00i) 3.7621954668392959444e0+1.2522351259052019007e-3i) (num-test (sin 4.71273424736769097620e+00+0.0e+00i) -9.9999994039535581677e-1+0.0i) (num-test (sin -4.71273424736769097620e+00+0.0e+00i) 9.9999994039535581677e-1+0.0i) (num-test (sin 4.71273424736769097620e+00+1.19209289550781250e-07i) -9.9999994039536292220e-1+4.1159030931148617825e-11i) (num-test (sin 4.71273424736769097620e+00-1.19209289550781250e-07i) -9.9999994039536292220e-1-4.1159030931148617825e-11i) (num-test (sin -4.71273424736769097620e+00+1.19209289550781250e-07i) 9.9999994039536292220e-1+4.1159030931148617825e-11i) (num-test (sin -4.71273424736769097620e+00-1.19209289550781250e-07i) 9.9999994039536292220e-1-4.1159030931148617825e-11i) (num-test (sin 4.71273424736769097620e+00+5.0e-01i) -1.1276258979946363573e0+1.7991700040924264514e-4i) (num-test (sin 4.71273424736769097620e+00-5.0e-01i) -1.1276258979946363573e0-1.7991700040924264514e-4i) (num-test (sin -4.71273424736769097620e+00+5.0e-01i) 1.1276258979946363573e0+1.7991700040924264514e-4i) (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.0e+00i) -1.5430805428404715943e0-4.0575816248701808892e-4i) (num-test (sin -4.71273424736769097620e+00+1.0e+00i) 1.5430805428404715943e0+4.0575816248701808892e-4i) (num-test (sin -4.71273424736769097620e+00-1.0e+00i) 1.5430805428404715943e0-4.0575816248701808892e-4i) (num-test (sin 4.71273424736769097620e+00+2.0e+00i) -3.7621954668392959448e0+1.2522351259038694139e-3i) (num-test (sin 4.71273424736769097620e+00-2.0e+00i) -3.7621954668392959448e0-1.2522351259038694139e-3i) (num-test (sin -4.71273424736769097620e+00+2.0e+00i) 3.7621954668392959448e0+1.2522351259038694139e-3i) (num-test (sin -4.71273424736769097620e+00-2.0e+00i) 3.7621954668392959448e0-1.2522351259038694139e-3i) (num-test (sin 6.28284004019658492979e+00+0.0e+00i) -3.4526697614170855328e-4+0.0i) (num-test (sin -6.28284004019658492979e+00+0.0e+00i) 3.4526697614170855328e-4+0.0i) (num-test (sin 6.28284004019658492979e+00+1.19209289550781250e-07i) -3.4526697614171100655e-4+1.1920928244535424532e-7i) (num-test (sin 6.28284004019658492979e+00-1.19209289550781250e-07i) -3.4526697614171100655e-4-1.1920928244535424532e-7i) (num-test (sin -6.28284004019658492979e+00+1.19209289550781250e-07i) 3.4526697614171100655e-4+1.1920928244535424532e-7i) (num-test (sin -6.28284004019658492979e+00-1.19209289550781250e-07i) 3.4526697614171100655e-4-1.1920928244535424532e-7i) (num-test (sin 6.28284004019658492979e+00+5.0e-01i) -3.8933200722568255379e-4+5.2109527443404709204e-1i) (num-test (sin 6.28284004019658492979e+00-5.0e-01i) -3.8933200722568255379e-4-5.2109527443404709204e-1i) (num-test (sin -6.28284004019658492979e+00+5.0e-01i) 3.8933200722568255379e-4+5.2109527443404709204e-1i) (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.0e+00i) -5.3277478472548726245e-4-1.1752011235963524659e0i) (num-test (sin -6.28284004019658492979e+00+1.0e+00i) 5.3277478472548726245e-4+1.1752011235963524659e0i) (num-test (sin -6.28284004019658492979e+00-1.0e+00i) 5.3277478472548726245e-4-1.1752011235963524659e0i) (num-test (sin 6.28284004019658492979e+00+2.0e+00i) -1.2989619299138109057e-3+3.6268601916692946552e0i) (num-test (sin 6.28284004019658492979e+00-2.0e+00i) -1.2989619299138109057e-3-3.6268601916692946552e0i) (num-test (sin -6.28284004019658492979e+00+2.0e+00i) 1.2989619299138109057e-3+3.6268601916692946552e0i) (num-test (sin -6.28284004019658492979e+00-2.0e+00i) 1.2989619299138109057e-3-3.6268601916692946552e0i) (num-test (sin 6.28353057416258753420e+00+0.0e+00i) 3.4526697614121869459e-4+0.0i) (num-test (sin -6.28353057416258753420e+00+0.0e+00i) -3.4526697614121869459e-4+0.0i) (num-test (sin 6.28353057416258753420e+00+1.19209289550781250e-07i) 3.4526697614122114786e-4+1.1920928244535424534e-7i) (num-test (sin 6.28353057416258753420e+00-1.19209289550781250e-07i) 3.4526697614122114786e-4-1.1920928244535424534e-7i) (num-test (sin -6.28353057416258753420e+00+1.19209289550781250e-07i) -3.4526697614122114786e-4+1.1920928244535424534e-7i) (num-test (sin -6.28353057416258753420e+00-1.19209289550781250e-07i) -3.4526697614122114786e-4-1.1920928244535424534e-7i) (num-test (sin 6.28353057416258753420e+00+5.0e-01i) 3.8933200722513017641e-4+5.2109527443404709213e-1i) (num-test (sin 6.28353057416258753420e+00-5.0e-01i) 3.8933200722513017641e-4-5.2109527443404709213e-1i) (num-test (sin -6.28353057416258753420e+00+5.0e-01i) -3.8933200722513017641e-4+5.2109527443404709213e-1i) (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.0e+00i) 5.3277478472473137099e-4-1.1752011235963524661e0i) (num-test (sin -6.28353057416258753420e+00+1.0e+00i) -5.3277478472473137099e-4+1.1752011235963524661e0i) (num-test (sin -6.28353057416258753420e+00-1.0e+00i) -5.3277478472473137099e-4-1.1752011235963524661e0i) (num-test (sin 6.28353057416258753420e+00+2.0e+00i) 1.2989619299119679614e-3+3.6268601916692946558e0i) (num-test (sin 6.28353057416258753420e+00-2.0e+00i) 1.2989619299119679614e-3-3.6268601916692946558e0i) (num-test (sin -6.28353057416258753420e+00+2.0e+00i) -1.2989619299119679614e-3+3.6268601916692946558e0i) (num-test (sin -6.28353057416258753420e+00-2.0e+00i) -1.2989619299119679614e-3-3.6268601916692946558e0i) (num-test (sin 9.42443269378637893396e+00+0.0e+00i) 3.4526697614094283958e-4+0.0i) (num-test (sin -9.42443269378637893396e+00+0.0e+00i) -3.4526697614094283958e-4+0.0i) (num-test (sin 9.42443269378637893396e+00+1.19209289550781250e-07i) 3.4526697614094529285e-4-1.1920928244535424535e-7i) (num-test (sin 9.42443269378637893396e+00-1.19209289550781250e-07i) 3.4526697614094529285e-4+1.1920928244535424535e-7i) (num-test (sin -9.42443269378637893396e+00+1.19209289550781250e-07i) -3.4526697614094529285e-4-1.1920928244535424535e-7i) (num-test (sin -9.42443269378637893396e+00-1.19209289550781250e-07i) -3.4526697614094529285e-4+1.1920928244535424535e-7i) (num-test (sin 9.42443269378637893396e+00+5.0e-01i) 3.8933200722481911514e-4-5.2109527443404709218e-1i) (num-test (sin 9.42443269378637893396e+00-5.0e-01i) 3.8933200722481911514e-4+5.2109527443404709218e-1i) (num-test (sin -9.42443269378637893396e+00+5.0e-01i) -3.8933200722481911514e-4-5.2109527443404709218e-1i) (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.0e+00i) 5.3277478472430570447e-4+1.1752011235963524662e0i) (num-test (sin -9.42443269378637893396e+00+1.0e+00i) -5.3277478472430570447e-4-1.1752011235963524662e0i) (num-test (sin -9.42443269378637893396e+00-1.0e+00i) -5.3277478472430570447e-4+1.1752011235963524662e0i) (num-test (sin 9.42443269378637893396e+00+2.0e+00i) 1.2989619299109301409e-3-3.6268601916692946561e0i) (num-test (sin 9.42443269378637893396e+00-2.0e+00i) 1.2989619299109301409e-3+3.6268601916692946561e0i) (num-test (sin -9.42443269378637893396e+00+2.0e+00i) -1.2989619299109301409e-3-3.6268601916692946561e0i) (num-test (sin -9.42443269378637893396e+00-2.0e+00i) -1.2989619299109301409e-3+3.6268601916692946561e0i) (num-test (sin 9.42512322775237976202e+00+0.0e+00i) -3.4526697614020805155e-4+0.0i) (num-test (sin -9.42512322775237976202e+00+0.0e+00i) 3.4526697614020805155e-4+0.0i) (num-test (sin 9.42512322775237976202e+00+1.19209289550781250e-07i) -3.4526697614021050482e-4-1.1920928244535424538e-7i) (num-test (sin 9.42512322775237976202e+00-1.19209289550781250e-07i) -3.4526697614021050482e-4+1.1920928244535424538e-7i) (num-test (sin -9.42512322775237976202e+00+1.19209289550781250e-07i) 3.4526697614021050482e-4-1.1920928244535424538e-7i) (num-test (sin -9.42512322775237976202e+00-1.19209289550781250e-07i) 3.4526697614021050482e-4+1.1920928244535424538e-7i) (num-test (sin 9.42512322775237976202e+00+5.0e-01i) -3.8933200722399054908e-4-5.2109527443404709231e-1i) (num-test (sin 9.42512322775237976202e+00-5.0e-01i) -3.8933200722399054908e-4+5.2109527443404709231e-1i) (num-test (sin -9.42512322775237976202e+00+5.0e-01i) 3.8933200722399054908e-4-5.2109527443404709231e-1i) (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.0e+00i) -5.3277478472317186729e-4+1.1752011235963524665e0i) (num-test (sin -9.42512322775237976202e+00+1.0e+00i) 5.3277478472317186729e-4-1.1752011235963524665e0i) (num-test (sin -9.42512322775237976202e+00-1.0e+00i) 5.3277478472317186729e-4+1.1752011235963524665e0i) (num-test (sin 9.42512322775237976202e+00+2.0e+00i) -1.2989619299081657245e-3-3.6268601916692946571e0i) (num-test (sin 9.42512322775237976202e+00-2.0e+00i) -1.2989619299081657245e-3+3.6268601916692946571e0i) (num-test (sin -9.42512322775237976202e+00+2.0e+00i) 1.2989619299081657245e-3-3.6268601916692946571e0i) (num-test (sin -9.42512322775237976202e+00-2.0e+00i) 1.2989619299081657245e-3+3.6268601916692946571e0i) (let ((val1 (sin (/ our-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 our-pi) 15))) (val2 (* 1/8 (+ (sqrt (+ 10 (* 2 (sqrt 5)))) (sqrt 15) (- (sqrt 3)))))) (num-test (- val1 val2) 0.0)) ;; -------- 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 our-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-0.0i) (num-test (cos 3.14159265358979-1.0i) -1.54308063481524+0.0i) (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+0.0i) (num-test (cos 3.45266983001243932001e-04+0.0e+00i) 9.9999994039535581673e-1+0.0i) (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+0.0i) (num-test (cos -1.57045105981189525579e+00+0.0e+00i) 3.4526697614152485627e-4+0.0i) (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+0.0i) (num-test (cos -1.57114159377789786021e+00+0.0e+00i) -3.4526697614140239160e-4+0.0i) (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+0.0i) (num-test (cos -3.14124738660679181379e+00+0.0e+00i) -9.9999994039535581667e-1+0.0i) (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+0.0i) (num-test (cos -3.14193792057279441821e+00+0.0e+00i) -9.9999994039535581675e-1+0.0i) (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+0.0i) (num-test (cos -4.71204371340168837179e+00+0.0e+00i) -3.4526697614164732094e-4+0.0i) (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+0.0i) (num-test (cos -4.71273424736769097620e+00+0.0e+00i) 3.4526697614127992692e-4+0.0i) (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+0.0i) (num-test (cos -6.28284004019658492979e+00+0.0e+00i) 9.9999994039535581662e-1+0.0i) (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+0.0i) (num-test (cos -6.28353057416258753420e+00+0.0e+00i) 9.9999994039535581679e-1+0.0i) (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+0.0i) (num-test (cos -9.42443269378637893396e+00+0.0e+00i) -9.9999994039535581689e-1+0.0i) (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+0.0i) (num-test (cos -9.42512322775237976202e+00+0.0e+00i) -9.9999994039535581714e-1+0.0i) (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) ;; -------- 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) (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) -18.78094727276203) ; -18.78094815124064721190472 according to arprec's mathtool (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) (num-test (tan our-pi) 6.982889851335445E-15) (num-test (tan 2.71828182845905) -0.4505495340698621) (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) (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) (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+0.0i) (num-test (tan 3.45266983001243932001e-04+0.0e+00i) 3.4526699672092183585e-4+0.0i) (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+0.0i) (num-test (tan -1.57045105981189525579e+00+0.0e+00i) -2.8963092606501007060e3+0.0i) (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+0.0i) (num-test (tan -1.57114159377789786021e+00+0.0e+00i) 2.8963092606511280143e3+0.0i) (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+0.0i) (num-test (tan -3.14124738660679181379e+00+0.0e+00i) 3.4526699672110257641e-4+0.0i) (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+0.0i) (num-test (tan -3.14193792057279441821e+00+0.0e+00i) -3.4526699672085764703e-4+0.0i) (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+0.0i) (num-test (tan -4.71204371340168837179e+00+0.0e+00i) -2.8963092606490733978e3+0.0i) (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+0.0i) (num-test (tan -4.71273424736769097620e+00+0.0e+00i) 2.8963092606521553225e3+0.0i) (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+0.0i) (num-test (tan -6.28284004019658492979e+00+0.0e+00i) 3.4526699672122504111e-4+0.0i) (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+0.0i) (num-test (tan -6.28353057416258753420e+00+0.0e+00i) -3.4526699672073518233e-4+0.0i) (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+0.0i) (num-test (tan -9.42443269378637893396e+00+0.0e+00i) 3.4526699672045932728e-4+0.0i) (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+0.0i) (num-test (tan -9.42512322775237976202e+00+0.0e+00i) -3.4526699671972453911e-4+0.0i) (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) ;; -------- asin (num-test (asin 0) 0.0) (num-test (asin 1) 1.57079632679490) (num-test (asin -1) -1.57079632679490) (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 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 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/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/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+0.0i) (num-test (asin -3/362880) -0.00000826719577+0.0i) (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/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/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/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/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/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 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/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 our-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 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.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.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.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) (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 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+0.0i) (num-test (asin -1.19209289550781250e-07+0.0e+00i) -1.1920928955078153234e-7+0.0i) (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+0.0i) (num-test (asin -5.0e-01+0.0e+00i) -5.2359877559829887308e-1+0.0i) (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+0.0i) (num-test (asin -1.0e+00+0.0e+00i) -1.5707963267948966192e0+0.0i) (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) (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+0.0i) (num-test (asin -7.50e-01) -8.4806207898148100805e-1+0.0i) (num-test (asin -5.0e-01) -5.2359877559829887308e-1+0.0i) (num-test (asin -1.250e-01) -1.2532783116806539687e-1+0.0i) (num-test (asin -3.45266983001243932001e-04) -3.4526698986108292481e-4+0.0i) (num-test (asin -1.19209289550781250e-07) -1.1920928955078153234e-7+0.0i) (num-test (asin 0.0e+00) 0e0+0.0i) (num-test (asin 1.19209289550781250e-07) 1.1920928955078153234e-7+0.0i) (num-test (asin 3.45266983001243932001e-04) 3.4526698986108292481e-4+0.0i) (num-test (asin 1.250e-01) 1.2532783116806539687e-1+0.0i) (num-test (asin 5.0e-01) 5.2359877559829887308e-1+0.0i) (num-test (asin 7.50e-01) 8.4806207898148100805e-1+0.0i) (num-test (asin 1.0e+00) 1.5707963267948966192e0+0.0i) (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) (num-test (asin 3.0+70000000i) 4.2857142400327436E-8+18.7571529895002i) (num-test (asin 70000000+3i) 1.570796279536826+18.75715298057358i) (num-test (asin 3.0-70000000i) 4.2857142400327436E-8-18.7571529895002i) (num-test (asin -70000000+3i) -1.570796279536826+18.75715298057358i) (let ((err 0.0)) (do ((i 0 (+ i 1)) (x -10.0 (+ x .1))) ((= i 200)) (let ((y (magnitude (- x (sin (asin x)))))) (if (> y err) (set! err y)))) (if (> err 1e-12) (begin (display "(sin (asin ...)) error: ") (display err) (newline)))) (let ((err 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) (set! err y)))) (if (> err 1e-9) (begin (display "(sin (asin [complex] ...)) error: ") (display err) (newline)))) ;; -------- acos (num-test (acos 0) 1.57079632679490) (num-test (acos 1) 0.0) (num-test (acos -1) our-pi) (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) 3.14159265358979-1.76274717403909i) (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) 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) our-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) (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) our-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) (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) 3.14159265358979-0.96242365011921i) (num-test (acos 3/3) 0.0) (num-test (acos -3/3) our-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) (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) 3.14159265358979-2.29243166956117i) (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) our-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) (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) 3.14159265358979-7.11801554770806i) (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) 3.14159265358979-5.50856187402751i) (num-test (acos 1234/1234) 0.0) (num-test (acos -1234/1234) our-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) our-pi) (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) 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) 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) our-pi) (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) 3.14159265358979-11.19238956745752i) (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) our-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) our-pi) (num-test (acos our-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) 3.14159265358979-1.65745445415308i) (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) our-pi) (num-test (acos 1.0-0.0i) 0.0) (num-test (acos -1.0-0.0i) our-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) (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) 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) 3.14159265358979-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) 3.14159265358979-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+0.0i) (num-test (acos -7.50e-01) 2.4188584057763776273e0+0.0i) (num-test (acos -5.0e-01) 2.0943951023931954923e0+0.0i) (num-test (acos -1.250e-01) 1.6961241579629620161e0+0.0i) (num-test (acos -3.45266983001243932001e-04) 1.5711415937847577022e0+0.0i) (num-test (acos -1.19209289550781250e-07) 1.570796446004186170e0+0.0i) (num-test (acos 0.0e+00) 1.5707963267948966192e0+0.0i) (num-test (acos 1.19209289550781250e-07) 1.5707962075856070684e0+0.0i) (num-test (acos 3.45266983001243932001e-04) 1.5704510598050355363e0+0.0i) (num-test (acos 1.250e-01) 1.4454684956268312224e0+0.0i) (num-test (acos 5.0e-01) 1.0471975511965977462e0+0.0i) (num-test (acos 7.50e-01) 7.2273424781341561118e-1+0.0i) (num-test (acos 1.0e+00) 0e0+0.0i) (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+0.0i) (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+0.0i) (num-test (acos -1.19209289550781250e-07+0.0e+00i) 1.570796446004186170e0+0.0i) (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+0.0i) (num-test (acos -5.0e-01+0.0e+00i) 2.0943951023931954923e0+0.0i) (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+0.0i) (num-test (acos -1.0e+00+0.0e+00i) 3.1415926535897932385e0+0.0i) (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) (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) (let ((err 0.0)) (do ((i 0 (+ i 1)) (x -10.0 (+ x .1))) ((= i 200)) (let ((y (magnitude (- x (cos (acos x)))))) (if (> y err) (set! err y)))) (if (> err 1e-12) (begin (display "(cos (acos ...)) error: ") (display err) (newline)))) (let ((err 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) (set! err y)))) (if (> err 1e-10) (begin (display "(cos (acos [complex] ...)) error: ") (display err) (newline)))) ;; -------- 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 our-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) (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+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) our-pi) (num-test (atan 1.0 0) (/ our-pi 2)) (num-test (atan -1.0 0) (/ our-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 our-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 our-pi) 0.00000000318310) (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 our-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 our-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 our-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 our-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 our-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+0.0i) (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+0.0i) (num-test (atan -1.19209289550781250e-07+0.0e+00i) -1.1920928955078068531e-7+0.0i) (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+0.0i) (num-test (atan -5.0e-01+0.0e+00i) -4.6364760900080611621e-1+0.0i) (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+0.0i) (num-test (atan -1.0e+00+0.0e+00i) -7.8539816339744830962e-1+0.0i) (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+0.0i) (num-test (atan -2.0e+00+0.0e+00i) -1.1071487177940905030e0+0.0i) (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+0.0i) (num-test (atan -8.3886080e+06+0.0e+00i) -1.5707962075856070685e0+0.0i) (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) (if with-hyperbolic-functions (begin ;; -------- sinh (num-test (sinh 0) 0.0) (num-test (sinh 1) 1.17520119364380) (num-test (sinh -1) -1.17520119364380) (num-test (sinh 2) 3.62686040784702) (num-test (sinh -2) -3.62686040784702) (num-test (sinh 3) 10.01787492740990) (num-test (sinh -3) -10.01787492740990) (num-test (sinh 10) 11013.23287470339346) (num-test (sinh -10) -11013.23287470339346) (num-test (sinh 0/1) 0.0) (num-test (sinh 0/2) 0.0) (num-test (sinh 0/3) 0.0) (num-test (sinh 0/10) 0.0) (num-test (sinh 0/1234) 0.0) (num-test (sinh 0/1234000000) 0.0) (num-test (sinh 0/500029) 0.0) (num-test (sinh 0/362880) 0.0) (num-test (sinh 1/1) 1.17520119364380) (num-test (sinh -1/1) -1.17520119364380) (num-test (sinh 1/2) 0.52109530549375) (num-test (sinh -1/2) -0.52109530549375) (num-test (sinh 1/3) 0.33954055725615) (num-test (sinh -1/3) -0.33954055725615) (num-test (sinh 1/10) 0.10016675001984) (num-test (sinh -1/10) -0.10016675001984) (num-test (sinh 1/1234) 0.00081037286017) (num-test (sinh -1/1234) -0.00081037286017) (num-test (sinh 1/1234000000) 0.00000000081037) (num-test (sinh -1/1234000000) -0.00000000081037) (num-test (sinh 1/500029) 0.00000199988401) (num-test (sinh -1/500029) -0.00000199988401) (num-test (sinh 1/362880) 0.00000275573192) (num-test (sinh -1/362880) -0.00000275573192) (num-test (sinh 2/1) 3.62686040784702) (num-test (sinh -2/1) -3.62686040784702) (num-test (sinh 2/2) 1.17520119364380) (num-test (sinh -2/2) -1.17520119364380) (num-test (sinh 2/3) 0.71715846101104) (num-test (sinh -2/3) -0.71715846101104) (num-test (sinh 2/10) 0.20133600254109) (num-test (sinh -2/10) -0.20133600254109) (num-test (sinh 2/1234) 0.00162074625252) (num-test (sinh -2/1234) -0.00162074625252) (num-test (sinh 2/1234000000) 0.00000000162075) (num-test (sinh -2/1234000000) -0.00000000162075) (num-test (sinh 2/500029) 0.00000399976801) (num-test (sinh -2/500029) -0.00000399976801) (num-test (sinh 2/362880) 0.00000551146384) (num-test (sinh -2/362880) -0.00000551146384) (num-test (sinh 3/1) 10.01787492740990) (num-test (sinh -3/1) -10.01787492740990) (num-test (sinh 3/2) 2.12927945509482) (num-test (sinh -3/2) -2.12927945509482) (num-test (sinh 3/3) 1.17520119364380) (num-test (sinh -3/3) -1.17520119364380) (num-test (sinh 3/10) 0.30452029344714) (num-test (sinh -3/10) -0.30452029344714) (num-test (sinh 3/1234) 0.00243112070921) (num-test (sinh -3/1234) -0.00243112070921) (num-test (sinh 3/1234000000) 0.00000000243112) (num-test (sinh -3/1234000000) -0.00000000243112) (num-test (sinh 3/500029) 0.00000599965202) (num-test (sinh -3/500029) -0.00000599965202) (num-test (sinh 3/362880) 0.00000826719577) (num-test (sinh -3/362880) -0.00000826719577) (num-test (sinh 10/1) 11013.23287470339346) (num-test (sinh -10/1) -11013.23287470339346) (num-test (sinh 10/2) 74.20321057778875) (num-test (sinh -10/2) -74.20321057778875) (num-test (sinh 10/3) 13.99797545058944) (num-test (sinh -10/3) -13.99797545058944) (num-test (sinh 10/10) 1.17520119364380) (num-test (sinh -10/10) -1.17520119364380) (num-test (sinh 10/1234) 0.00810381641088) (num-test (sinh -10/1234) -0.00810381641088) (num-test (sinh 10/1234000000) 0.00000000810373) (num-test (sinh -10/1234000000) -0.00000000810373) (num-test (sinh 10/500029) 0.00001999884007) (num-test (sinh -10/500029) -0.00001999884007) (num-test (sinh 10/362880) 0.00002755731923) (num-test (sinh -10/362880) -0.00002755731923) (num-test (sinh 1234/1234) 1.17520119364380) (num-test (sinh -1234/1234) -1.17520119364380) (num-test (sinh 1234/1234000000) 0.00000100000000) (num-test (sinh -1234/1234000000) -0.00000100000000) (num-test (sinh 1234/500029) 0.00246785936931) (num-test (sinh -1234/500029) -0.00246785936931) (num-test (sinh 1234/362880) 0.00340057974622) (num-test (sinh -1234/362880) -0.00340057974622) (num-test (sinh 1234000000/1234000000) 1.17520119364380) (num-test (sinh -1234000000/1234000000) -1.17520119364380) (num-test (sinh 500029/1234000000) 0.00040520989764) (num-test (sinh -500029/1234000000) -0.00040520989764) (num-test (sinh 500029/500029) 1.17520119364380) (num-test (sinh -500029/500029) -1.17520119364380) (num-test (sinh 500029/362880) 1.85732460755603) (num-test (sinh -500029/362880) -1.85732460755603) (num-test (sinh 362880/1234000000) 0.00029406807555) (num-test (sinh -362880/1234000000) -0.00029406807555) (num-test (sinh 362880/500029) 0.79111846340564) (num-test (sinh -362880/500029) -0.79111846340564) (num-test (sinh 362880/362880) 1.17520119364380) (num-test (sinh -362880/362880) -1.17520119364380) (num-test (sinh 0.0) 0.0) (num-test (sinh 0.00000001) 0.00000001) (num-test (sinh -0.00000001) -0.00000001) (num-test (sinh 1.0) 1.17520119364380) (num-test (sinh -1.0) -1.17520119364380) (num-test (sinh our-pi) 11.54873935725775) (num-test (sinh -3.14159265358979) -11.54873935725775) (num-test (sinh 2.71828182845905) 7.54413710281697) (num-test (sinh -2.71828182845905) -7.54413710281697) (num-test (sinh 0.0+0.0i) 0.0) (num-test (sinh -0.0+0.0i) 0.0) (num-test (sinh 0.0-0.0i) 0.0) (num-test (sinh -0.0-0.0i) -0.0) (num-test (sinh 0.0+0.00000001i) 0.0+0.00000001i) (num-test (sinh -0.0+0.00000001i) 0.0+0.00000001i) (num-test (sinh 0.0-0.00000001i) 0.0-0.00000001i) (num-test (sinh -0.0-0.00000001i) -0.0-0.00000001i) (num-test (sinh 0.0+1.0i) 0.0+0.84147098480790i) (num-test (sinh -0.0+1.0i) 0.0+0.84147098480790i) (num-test (sinh 0.0-1.0i) 0.0-0.84147098480790i) (num-test (sinh -0.0-1.0i) -0.0-0.84147098480790i) (num-test (sinh 0.00000001+0.0i) 0.00000001) (num-test (sinh -0.00000001+0.0i) -0.00000001) (num-test (sinh 0.00000001-0.0i) 0.00000001) (num-test (sinh -0.00000001-0.0i) -0.00000001) (num-test (sinh 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (sinh -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (sinh 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (sinh -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (sinh 0.00000001+1.0i) 0.00000000540302+0.84147098480790i) (num-test (sinh -0.00000001+1.0i) -0.00000000540302+0.84147098480790i) (num-test (sinh 0.00000001-1.0i) 0.00000000540302-0.84147098480790i) (num-test (sinh -0.00000001-1.0i) -0.00000000540302-0.84147098480790i) (num-test (sinh 1.0+0.0i) 1.17520119364380) (num-test (sinh -1.0+0.0i) -1.17520119364380) (num-test (sinh 1.0-0.0i) 1.17520119364380) (num-test (sinh -1.0-0.0i) -1.17520119364380) (num-test (sinh 1.0+0.00000001i) 1.17520119364380+0.00000001543081i) (num-test (sinh -1.0+0.00000001i) -1.17520119364380+0.00000001543081i) (num-test (sinh 1.0-0.00000001i) 1.17520119364380-0.00000001543081i) (num-test (sinh -1.0-0.00000001i) -1.17520119364380-0.00000001543081i) (num-test (sinh 1.0+1.0i) 0.63496391478474+1.29845758141598i) (num-test (sinh -1.0+1.0i) -0.63496391478474+1.29845758141598i) (num-test (sinh 1.0-1.0i) 0.63496391478474-1.29845758141598i) (num-test (sinh -1.0-1.0i) -0.63496391478474-1.29845758141598i) (num-test (sinh 3.14159265358979+0.0i) 11.54873935725775) (num-test (sinh -3.14159265358979+0.0i) -11.54873935725775) (num-test (sinh 3.14159265358979-0.0i) 11.54873935725775) (num-test (sinh -3.14159265358979-0.0i) -11.54873935725775) (num-test (sinh 3.14159265358979+0.00000001i) 11.54873935725775+0.00000011591953i) (num-test (sinh -3.14159265358979+0.00000001i) -11.54873935725775+0.00000011591953i) (num-test (sinh 3.14159265358979-0.00000001i) 11.54873935725775-0.00000011591953i) (num-test (sinh -3.14159265358979-0.00000001i) -11.54873935725775-0.00000011591953i) (num-test (sinh 3.14159265358979+1.0i) 6.23981050459650+9.75429233860021i) (num-test (sinh -3.14159265358979+1.0i) -6.23981050459650+9.75429233860021i) (num-test (sinh 3.14159265358979-1.0i) 6.23981050459650-9.75429233860021i) (num-test (sinh -3.14159265358979-1.0i) -6.23981050459650-9.75429233860021i) (num-test (sinh 2.71828182845905+0.0i) 7.54413710281697) (num-test (sinh -2.71828182845905+0.0i) -7.54413710281697) (num-test (sinh 2.71828182845905-0.0i) 7.54413710281697) (num-test (sinh -2.71828182845905-0.0i) -7.54413710281697) (num-test (sinh 2.71828182845905+0.00000001i) 7.54413710281697+0.00000007610125i) (num-test (sinh -2.71828182845905+0.00000001i) -7.54413710281697+0.00000007610125i) (num-test (sinh 2.71828182845905-0.00000001i) 7.54413710281697-0.00000007610125i) (num-test (sinh -2.71828182845905-0.00000001i) -7.54413710281697-0.00000007610125i) (num-test (sinh 2.71828182845905+1.0i) 4.07611467243740+6.40369949494148i) (num-test (sinh -2.71828182845905+1.0i) -4.07611467243740+6.40369949494148i) (num-test (sinh 2.71828182845905-1.0i) 4.07611467243740-6.40369949494148i) (num-test (sinh -2.71828182845905-1.0i) -4.07611467243740-6.40369949494148i) (num-test (sinh 1234/3) 2.18155865313939E+178) (num-test (sinh 1234/10) 1.953930316004457E+53) (num-test (sinh 0.0+3.14159265358979i) 0.0-6.982889851335445E-15i) (num-test (sinh 0.0+2.71828182845905i) 0.0+0.4107812905029501i) (num-test (sinh 0.00000001+3.14159265358979i) -1.00000000000000003758922749678992050291E-8+3.231089148865173792463232707134864571569E-15i) (num-test (sinh 0.00000001+2.71828182845905i) -9.117339147869465E-9+0.4107812905029501i) (num-test (sinh 0.00000001+1234.0i) -7.985506235875843E-9+0.6019276547624973i) (num-test (sinh 0.00000001+1234000000.0i) 1.5890913089022285E-9-0.9872932128398908i) (num-test (sinh 1.0+3.14159265358979i) -1.175201193643801-1.077516210464362E-14i) (num-test (sinh 1.0+2.71828182845905i) -1.071470784943156+0.6338686545195173i) (num-test (sinh 3.14159265358979+3.14159265358979i) -11.54873935725783-8.094533288479446E-14i) (num-test (sinh 3.14159265358979+2.71828182845905i) -10.52937734504676+4.761757525968664i) (num-test (sinh 3.14159265358979+1234.0i) -9.222253015388718+6.977517249251167i) (num-test (sinh 3.14159265358979+1234000000.0i) 1.835200134139553-11.44465679247962i) (num-test (sinh 2.71828182845905+3.14159265358979i) -7.54413710281663-5.314066559815525E-14i) (num-test (sinh 2.71828182845905+2.71828182845905i) -6.878245654440458+3.126097025348496i) (num-test (sinh 2.71828182845905+1234.0i) -6.024375387884452+4.58074477716391i) (num-test (sinh 2.71828182845905+1234000000.0i) 1.198832270325275-7.513424898263172i) (num-test (sinh 0.0e+00-3.45266983001243932001e-04i) 0-3.4526697614140534807e-4i) (num-test (sinh 0.0e+00+3.45266983001243932001e-04i) 0+3.4526697614140534807e-4i) (num-test (sinh 0.0e+00+1.57045105981189525579e+00i) 0+9.9999994039535581669e-1i) (num-test (sinh 0.0e+00-1.57045105981189525579e+00i) 0-9.9999994039535581669e-1i) (num-test (sinh 0.0e+00+1.57114159377789786021e+00i) 0+9.9999994039535581673e-1i) (num-test (sinh 0.0e+00-1.57114159377789786021e+00i) 0-9.9999994039535581673e-1i) (num-test (sinh 0.0e+00+3.14124738660679181379e+00i) 0+3.4526697614158608860e-4i) (num-test (sinh 0.0e+00-3.14124738660679181379e+00i) 0-3.4526697614158608860e-4i) (num-test (sinh 0.0e+00+3.14193792057279441821e+00i) 0-3.4526697614134115926e-4i) (num-test (sinh 0.0e+00-3.14193792057279441821e+00i) 0+3.4526697614134115926e-4i) (num-test (sinh 0.0e+00+4.71204371340168837179e+00i) 0-9.9999994039535581664e-1i) (num-test (sinh 0.0e+00-4.71204371340168837179e+00i) 0+9.9999994039535581664e-1i) (num-test (sinh 0.0e+00+4.71273424736769097620e+00i) 0-9.9999994039535581677e-1i) (num-test (sinh 0.0e+00-4.71273424736769097620e+00i) 0+9.9999994039535581677e-1i) (num-test (sinh 0.0e+00+6.28284004019658492979e+00i) 0-3.4526697614170855328e-4i) (num-test (sinh 0.0e+00-6.28284004019658492979e+00i) 0+3.4526697614170855328e-4i) (num-test (sinh 0.0e+00+6.28353057416258753420e+00i) 0+3.4526697614121869459e-4i) (num-test (sinh 0.0e+00-6.28353057416258753420e+00i) 0-3.4526697614121869459e-4i) (num-test (sinh 0.0e+00+9.42443269378637893396e+00i) 0+3.4526697614094283958e-4i) (num-test (sinh 0.0e+00-9.42443269378637893396e+00i) 0-3.4526697614094283958e-4i) (num-test (sinh 0.0e+00+9.42512322775237976202e+00i) 0-3.4526697614020805155e-4i) (num-test (sinh 0.0e+00-9.42512322775237976202e+00i) 0+3.4526697614020805155e-4i) (num-test (sinh 1.19209289550781250e-07-3.45266983001243932001e-04i) 1.1920928244535424533e-7-3.4526697614140780134e-4i) (num-test (sinh 1.19209289550781250e-07+3.45266983001243932001e-04i) 1.1920928244535424533e-7+3.4526697614140780134e-4i) (num-test (sinh -1.19209289550781250e-07-3.45266983001243932001e-04i) -1.1920928244535424533e-7-3.4526697614140780134e-4i) (num-test (sinh -1.19209289550781250e-07+3.45266983001243932001e-04i) -1.1920928244535424533e-7+3.4526697614140780134e-4i) (num-test (sinh 1.19209289550781250e-07+1.57045105981189525579e+00i) 4.1159030931177815679e-11+9.9999994039536292211e-1i) (num-test (sinh 1.19209289550781250e-07-1.57045105981189525579e+00i) 4.1159030931177815679e-11-9.9999994039536292211e-1i) (num-test (sinh -1.19209289550781250e-07+1.57045105981189525579e+00i) -4.1159030931177815679e-11+9.9999994039536292211e-1i) (num-test (sinh -1.19209289550781250e-07-1.57045105981189525579e+00i) -4.1159030931177815679e-11-9.9999994039536292211e-1i) (num-test (sinh 1.19209289550781250e-07+1.57114159377789786021e+00i) -4.1159030931163216752e-11+9.9999994039536292216e-1i) (num-test (sinh 1.19209289550781250e-07-1.57114159377789786021e+00i) -4.1159030931163216752e-11-9.9999994039536292216e-1i) (num-test (sinh -1.19209289550781250e-07+1.57114159377789786021e+00i) 4.1159030931163216752e-11+9.9999994039536292216e-1i) (num-test (sinh -1.19209289550781250e-07-1.57114159377789786021e+00i) 4.1159030931163216752e-11-9.9999994039536292216e-1i) (num-test (sinh 1.19209289550781250e-07+3.14124738660679181379e+00i) -1.1920928244535424532e-7+3.4526697614158854187e-4i) (num-test (sinh 1.19209289550781250e-07-3.14124738660679181379e+00i) -1.1920928244535424532e-7-3.4526697614158854187e-4i) (num-test (sinh -1.19209289550781250e-07+3.14124738660679181379e+00i) 1.1920928244535424532e-7+3.4526697614158854187e-4i) (num-test (sinh -1.19209289550781250e-07-3.14124738660679181379e+00i) 1.1920928244535424532e-7-3.4526697614158854187e-4i) (num-test (sinh 1.19209289550781250e-07+3.14193792057279441821e+00i) -1.1920928244535424533e-7-3.4526697614134361253e-4i) (num-test (sinh 1.19209289550781250e-07-3.14193792057279441821e+00i) -1.1920928244535424533e-7+3.4526697614134361253e-4i) (num-test (sinh -1.19209289550781250e-07+3.14193792057279441821e+00i) 1.1920928244535424533e-7-3.4526697614134361253e-4i) (num-test (sinh -1.19209289550781250e-07-3.14193792057279441821e+00i) 1.1920928244535424533e-7+3.4526697614134361253e-4i) (num-test (sinh 1.19209289550781250e-07+4.71204371340168837179e+00i) -4.1159030931192414605e-11-9.9999994039536292207e-1i) (num-test (sinh 1.19209289550781250e-07-4.71204371340168837179e+00i) -4.1159030931192414605e-11+9.9999994039536292207e-1i) (num-test (sinh -1.19209289550781250e-07+4.71204371340168837179e+00i) 4.1159030931192414605e-11-9.9999994039536292207e-1i) (num-test (sinh -1.19209289550781250e-07-4.71204371340168837179e+00i) 4.1159030931192414605e-11+9.9999994039536292207e-1i) (num-test (sinh 1.19209289550781250e-07+4.71273424736769097620e+00i) 4.1159030931148617825e-11-9.9999994039536292220e-1i) (num-test (sinh 1.19209289550781250e-07-4.71273424736769097620e+00i) 4.1159030931148617825e-11+9.9999994039536292220e-1i) (num-test (sinh -1.19209289550781250e-07+4.71273424736769097620e+00i) -4.1159030931148617825e-11-9.9999994039536292220e-1i) (num-test (sinh -1.19209289550781250e-07-4.71273424736769097620e+00i) -4.1159030931148617825e-11+9.9999994039536292220e-1i) (num-test (sinh 1.19209289550781250e-07+6.28284004019658492979e+00i) 1.1920928244535424532e-7-3.4526697614171100655e-4i) (num-test (sinh 1.19209289550781250e-07-6.28284004019658492979e+00i) 1.1920928244535424532e-7+3.4526697614171100655e-4i) (num-test (sinh -1.19209289550781250e-07+6.28284004019658492979e+00i) -1.1920928244535424532e-7-3.4526697614171100655e-4i) (num-test (sinh -1.19209289550781250e-07-6.28284004019658492979e+00i) -1.1920928244535424532e-7+3.4526697614171100655e-4i) (num-test (sinh 1.19209289550781250e-07+6.28353057416258753420e+00i) 1.1920928244535424534e-7+3.4526697614122114786e-4i) (num-test (sinh 1.19209289550781250e-07-6.28353057416258753420e+00i) 1.1920928244535424534e-7-3.4526697614122114786e-4i) (num-test (sinh -1.19209289550781250e-07+6.28353057416258753420e+00i) -1.1920928244535424534e-7+3.4526697614122114786e-4i) (num-test (sinh -1.19209289550781250e-07-6.28353057416258753420e+00i) -1.1920928244535424534e-7-3.4526697614122114786e-4i) (num-test (sinh 1.19209289550781250e-07+9.42443269378637893396e+00i) -1.1920928244535424535e-7+3.4526697614094529285e-4i) (num-test (sinh 1.19209289550781250e-07-9.42443269378637893396e+00i) -1.1920928244535424535e-7-3.4526697614094529285e-4i) (num-test (sinh -1.19209289550781250e-07+9.42443269378637893396e+00i) 1.1920928244535424535e-7+3.4526697614094529285e-4i) (num-test (sinh -1.19209289550781250e-07-9.42443269378637893396e+00i) 1.1920928244535424535e-7-3.4526697614094529285e-4i) (num-test (sinh 1.19209289550781250e-07+9.42512322775237976202e+00i) -1.1920928244535424538e-7-3.4526697614021050482e-4i) (num-test (sinh 1.19209289550781250e-07-9.42512322775237976202e+00i) -1.1920928244535424538e-7+3.4526697614021050482e-4i) (num-test (sinh -1.19209289550781250e-07+9.42512322775237976202e+00i) 1.1920928244535424538e-7-3.4526697614021050482e-4i) (num-test (sinh -1.19209289550781250e-07-9.42512322775237976202e+00i) 1.1920928244535424538e-7+3.4526697614021050482e-4i) (num-test (sinh 5.0e-01-3.45266983001243932001e-04i) 5.2109527443404709209e-1-3.8933200722534065172e-4i) (num-test (sinh 5.0e-01+3.45266983001243932001e-04i) 5.2109527443404709209e-1+3.8933200722534065172e-4i) (num-test (sinh -5.0e-01-3.45266983001243932001e-04i) -5.2109527443404709209e-1-3.8933200722534065172e-4i) (num-test (sinh -5.0e-01+3.45266983001243932001e-04i) -5.2109527443404709209e-1+3.8933200722534065172e-4i) (num-test (sinh 5.0e-01+1.57045105981189525579e+00i) 1.7991700040937027667e-4+1.1276258979946363572e0i) (num-test (sinh 5.0e-01-1.57045105981189525579e+00i) 1.7991700040937027667e-4-1.1276258979946363572e0i) (num-test (sinh -5.0e-01+1.57045105981189525579e+00i) -1.7991700040937027667e-4+1.1276258979946363572e0i) (num-test (sinh -5.0e-01-1.57045105981189525579e+00i) -1.7991700040937027667e-4-1.1276258979946363572e0i) (num-test (sinh 5.0e-01+1.57114159377789786021e+00i) -1.7991700040930646090e-4+1.1276258979946363573e0i) (num-test (sinh 5.0e-01-1.57114159377789786021e+00i) -1.7991700040930646090e-4-1.1276258979946363573e0i) (num-test (sinh -5.0e-01+1.57114159377789786021e+00i) 1.7991700040930646090e-4+1.1276258979946363573e0i) (num-test (sinh -5.0e-01-1.57114159377789786021e+00i) 1.7991700040930646090e-4-1.1276258979946363573e0i) (num-test (sinh 5.0e-01+3.14124738660679181379e+00i) -5.2109527443404709206e-1+3.8933200722554445944e-4i) (num-test (sinh 5.0e-01-3.14124738660679181379e+00i) -5.2109527443404709206e-1-3.8933200722554445944e-4i) (num-test (sinh -5.0e-01+3.14124738660679181379e+00i) 5.2109527443404709206e-1+3.8933200722554445944e-4i) (num-test (sinh -5.0e-01-3.14124738660679181379e+00i) 5.2109527443404709206e-1-3.8933200722554445944e-4i) (num-test (sinh 5.0e-01+3.14193792057279441821e+00i) -5.2109527443404709211e-1-3.8933200722526827075e-4i) (num-test (sinh 5.0e-01-3.14193792057279441821e+00i) -5.2109527443404709211e-1+3.8933200722526827075e-4i) (num-test (sinh -5.0e-01+3.14193792057279441821e+00i) 5.2109527443404709211e-1-3.8933200722526827075e-4i) (num-test (sinh -5.0e-01-3.14193792057279441821e+00i) 5.2109527443404709211e-1+3.8933200722526827075e-4i) (num-test (sinh 5.0e-01+4.71204371340168837179e+00i) -1.7991700040943409243e-4-1.1276258979946363572e0i) (num-test (sinh 5.0e-01-4.71204371340168837179e+00i) -1.7991700040943409243e-4+1.1276258979946363572e0i) (num-test (sinh -5.0e-01+4.71204371340168837179e+00i) 1.7991700040943409243e-4-1.1276258979946363572e0i) (num-test (sinh -5.0e-01-4.71204371340168837179e+00i) 1.7991700040943409243e-4+1.1276258979946363572e0i) (num-test (sinh 5.0e-01+4.71273424736769097620e+00i) 1.7991700040924264514e-4-1.1276258979946363573e0i) (num-test (sinh 5.0e-01-4.71273424736769097620e+00i) 1.7991700040924264514e-4+1.1276258979946363573e0i) (num-test (sinh -5.0e-01+4.71273424736769097620e+00i) -1.7991700040924264514e-4-1.1276258979946363573e0i) (num-test (sinh -5.0e-01-4.71273424736769097620e+00i) -1.7991700040924264514e-4+1.1276258979946363573e0i) (num-test (sinh 5.0e-01+6.28284004019658492979e+00i) 5.2109527443404709204e-1-3.8933200722568255379e-4i) (num-test (sinh 5.0e-01-6.28284004019658492979e+00i) 5.2109527443404709204e-1+3.8933200722568255379e-4i) (num-test (sinh -5.0e-01+6.28284004019658492979e+00i) -5.2109527443404709204e-1-3.8933200722568255379e-4i) (num-test (sinh -5.0e-01-6.28284004019658492979e+00i) -5.2109527443404709204e-1+3.8933200722568255379e-4i) (num-test (sinh 5.0e-01+6.28353057416258753420e+00i) 5.2109527443404709213e-1+3.8933200722513017641e-4i) (num-test (sinh 5.0e-01-6.28353057416258753420e+00i) 5.2109527443404709213e-1-3.8933200722513017641e-4i) (num-test (sinh -5.0e-01+6.28353057416258753420e+00i) -5.2109527443404709213e-1+3.8933200722513017641e-4i) (num-test (sinh -5.0e-01-6.28353057416258753420e+00i) -5.2109527443404709213e-1-3.8933200722513017641e-4i) (num-test (sinh 5.0e-01+9.42443269378637893396e+00i) -5.2109527443404709218e-1+3.8933200722481911514e-4i) (num-test (sinh 5.0e-01-9.42443269378637893396e+00i) -5.2109527443404709218e-1-3.8933200722481911514e-4i) (num-test (sinh -5.0e-01+9.42443269378637893396e+00i) 5.2109527443404709218e-1+3.8933200722481911514e-4i) (num-test (sinh -5.0e-01-9.42443269378637893396e+00i) 5.2109527443404709218e-1-3.8933200722481911514e-4i) (num-test (sinh 5.0e-01+9.42512322775237976202e+00i) -5.2109527443404709231e-1-3.8933200722399054908e-4i) (num-test (sinh 5.0e-01-9.42512322775237976202e+00i) -5.2109527443404709231e-1+3.8933200722399054908e-4i) (num-test (sinh -5.0e-01+9.42512322775237976202e+00i) 5.2109527443404709231e-1-3.8933200722399054908e-4i) (num-test (sinh -5.0e-01-9.42512322775237976202e+00i) 5.2109527443404709231e-1+3.8933200722399054908e-4i) (num-test (sinh 1.0e+00-3.45266983001243932001e-04i) 1.1752011235963524660e0-5.3277478472501939236e-4i) (num-test (sinh 1.0e+00+3.45266983001243932001e-04i) 1.1752011235963524660e0+5.3277478472501939236e-4i) (num-test (sinh -1.0e+00-3.45266983001243932001e-04i) -1.1752011235963524660e0-5.3277478472501939236e-4i) (num-test (sinh -1.0e+00+3.45266983001243932001e-04i) -1.1752011235963524660e0+5.3277478472501939236e-4i) (num-test (sinh 1.0e+00+1.57045105981189525579e+00i) 4.0575816248730593018e-4+1.5430805428404715942e0i) (num-test (sinh 1.0e+00-1.57045105981189525579e+00i) 4.0575816248730593018e-4-1.5430805428404715942e0i) (num-test (sinh -1.0e+00+1.57045105981189525579e+00i) -4.0575816248730593018e-4+1.5430805428404715942e0i) (num-test (sinh -1.0e+00-1.57045105981189525579e+00i) -4.0575816248730593018e-4-1.5430805428404715942e0i) (num-test (sinh 1.0e+00+1.57114159377789786021e+00i) -4.0575816248716200955e-4+1.5430805428404715942e0i) (num-test (sinh 1.0e+00-1.57114159377789786021e+00i) -4.0575816248716200955e-4-1.5430805428404715942e0i) (num-test (sinh -1.0e+00+1.57114159377789786021e+00i) 4.0575816248716200955e-4+1.5430805428404715942e0i) (num-test (sinh -1.0e+00-1.57114159377789786021e+00i) 4.0575816248716200955e-4-1.5430805428404715942e0i) (num-test (sinh 1.0e+00+3.14124738660679181379e+00i) -1.1752011235963524659e0+5.3277478472529828958e-4i) (num-test (sinh 1.0e+00-3.14124738660679181379e+00i) -1.1752011235963524659e0-5.3277478472529828958e-4i) (num-test (sinh -1.0e+00+3.14124738660679181379e+00i) 1.1752011235963524659e0+5.3277478472529828958e-4i) (num-test (sinh -1.0e+00-3.14124738660679181379e+00i) 1.1752011235963524659e0-5.3277478472529828958e-4i) (num-test (sinh 1.0e+00+3.14193792057279441821e+00i) -1.1752011235963524660e0-5.3277478472492034385e-4i) (num-test (sinh 1.0e+00-3.14193792057279441821e+00i) -1.1752011235963524660e0+5.3277478472492034385e-4i) (num-test (sinh -1.0e+00+3.14193792057279441821e+00i) 1.1752011235963524660e0-5.3277478472492034385e-4i) (num-test (sinh -1.0e+00-3.14193792057279441821e+00i) 1.1752011235963524660e0+5.3277478472492034385e-4i) (num-test (sinh 1.0e+00+4.71204371340168837179e+00i) -4.0575816248744985081e-4-1.5430805428404715941e0i) (num-test (sinh 1.0e+00-4.71204371340168837179e+00i) -4.0575816248744985081e-4+1.5430805428404715941e0i) (num-test (sinh -1.0e+00+4.71204371340168837179e+00i) 4.0575816248744985081e-4-1.5430805428404715941e0i) (num-test (sinh -1.0e+00-4.71204371340168837179e+00i) 4.0575816248744985081e-4+1.5430805428404715941e0i) (num-test (sinh 1.0e+00+4.71273424736769097620e+00i) 4.0575816248701808892e-4-1.5430805428404715943e0i) (num-test (sinh 1.0e+00-4.71273424736769097620e+00i) 4.0575816248701808892e-4+1.5430805428404715943e0i) (num-test (sinh -1.0e+00+4.71273424736769097620e+00i) -4.0575816248701808892e-4-1.5430805428404715943e0i) (num-test (sinh -1.0e+00-4.71273424736769097620e+00i) -4.0575816248701808892e-4+1.5430805428404715943e0i) (num-test (sinh 1.0e+00+6.28284004019658492979e+00i) 1.1752011235963524659e0-5.3277478472548726245e-4i) (num-test (sinh 1.0e+00-6.28284004019658492979e+00i) 1.1752011235963524659e0+5.3277478472548726245e-4i) (num-test (sinh -1.0e+00+6.28284004019658492979e+00i) -1.1752011235963524659e0-5.3277478472548726245e-4i) (num-test (sinh -1.0e+00-6.28284004019658492979e+00i) -1.1752011235963524659e0+5.3277478472548726245e-4i) (num-test (sinh 1.0e+00+6.28353057416258753420e+00i) 1.1752011235963524661e0+5.3277478472473137099e-4i) (num-test (sinh 1.0e+00-6.28353057416258753420e+00i) 1.1752011235963524661e0-5.3277478472473137099e-4i) (num-test (sinh -1.0e+00+6.28353057416258753420e+00i) -1.1752011235963524661e0+5.3277478472473137099e-4i) (num-test (sinh -1.0e+00-6.28353057416258753420e+00i) -1.1752011235963524661e0-5.3277478472473137099e-4i) (num-test (sinh 1.0e+00+9.42443269378637893396e+00i) -1.1752011235963524662e0+5.3277478472430570447e-4i) (num-test (sinh 1.0e+00-9.42443269378637893396e+00i) -1.1752011235963524662e0-5.3277478472430570447e-4i) (num-test (sinh -1.0e+00+9.42443269378637893396e+00i) 1.1752011235963524662e0+5.3277478472430570447e-4i) (num-test (sinh -1.0e+00-9.42443269378637893396e+00i) 1.1752011235963524662e0-5.3277478472430570447e-4i) (num-test (sinh 1.0e+00+9.42512322775237976202e+00i) -1.1752011235963524665e0-5.3277478472317186729e-4i) (num-test (sinh 1.0e+00-9.42512322775237976202e+00i) -1.1752011235963524665e0+5.3277478472317186729e-4i) (num-test (sinh -1.0e+00+9.42512322775237976202e+00i) 1.1752011235963524665e0-5.3277478472317186729e-4i) (num-test (sinh -1.0e+00-9.42512322775237976202e+00i) 1.1752011235963524665e0+5.3277478472317186729e-4i) (num-test (sinh 2.0e+00-3.45266983001243932001e-04i) 3.6268601916692946556e0-1.2989619299126701883e-3i) (num-test (sinh 2.0e+00+3.45266983001243932001e-04i) 3.6268601916692946556e0+1.2989619299126701883e-3i) (num-test (sinh -2.0e+00-3.45266983001243932001e-04i) -3.6268601916692946556e0-1.2989619299126701883e-3i) (num-test (sinh -2.0e+00+3.45266983001243932001e-04i) -3.6268601916692946556e0+1.2989619299126701883e-3i) (num-test (sinh 2.0e+00+1.57045105981189525579e+00i) 1.2522351259047577385e-3+3.7621954668392959445e0i) (num-test (sinh 2.0e+00-1.57045105981189525579e+00i) 1.2522351259047577385e-3-3.7621954668392959445e0i) (num-test (sinh -2.0e+00+1.57045105981189525579e+00i) -1.2522351259047577385e-3+3.7621954668392959445e0i) (num-test (sinh -2.0e+00-1.57045105981189525579e+00i) -1.2522351259047577385e-3-3.7621954668392959445e0i) (num-test (sinh 2.0e+00+1.57114159377789786021e+00i) -1.2522351259043135762e-3+3.7621954668392959447e0i) (num-test (sinh 2.0e+00-1.57114159377789786021e+00i) -1.2522351259043135762e-3-3.7621954668392959447e0i) (num-test (sinh -2.0e+00+1.57114159377789786021e+00i) 1.2522351259043135762e-3+3.7621954668392959447e0i) (num-test (sinh -2.0e+00-1.57114159377789786021e+00i) 1.2522351259043135762e-3-3.7621954668392959447e0i) (num-test (sinh 2.0e+00+3.14124738660679181379e+00i) -3.6268601916692946553e0+1.2989619299133501696e-3i) (num-test (sinh 2.0e+00-3.14124738660679181379e+00i) -3.6268601916692946553e0-1.2989619299133501696e-3i) (num-test (sinh -2.0e+00+3.14124738660679181379e+00i) 3.6268601916692946553e0+1.2989619299133501696e-3i) (num-test (sinh -2.0e+00-3.14124738660679181379e+00i) 3.6268601916692946553e0-1.2989619299133501696e-3i) (num-test (sinh 2.0e+00+3.14193792057279441821e+00i) -3.6268601916692946556e0-1.2989619299124286975e-3i) (num-test (sinh 2.0e+00-3.14193792057279441821e+00i) -3.6268601916692946556e0+1.2989619299124286975e-3i) (num-test (sinh -2.0e+00+3.14193792057279441821e+00i) 3.6268601916692946556e0-1.2989619299124286975e-3i) (num-test (sinh -2.0e+00-3.14193792057279441821e+00i) 3.6268601916692946556e0+1.2989619299124286975e-3i) (num-test (sinh 2.0e+00+4.71204371340168837179e+00i) -1.2522351259052019007e-3-3.7621954668392959444e0i) (num-test (sinh 2.0e+00-4.71204371340168837179e+00i) -1.2522351259052019007e-3+3.7621954668392959444e0i) (num-test (sinh -2.0e+00+4.71204371340168837179e+00i) 1.2522351259052019007e-3-3.7621954668392959444e0i) (num-test (sinh -2.0e+00-4.71204371340168837179e+00i) 1.2522351259052019007e-3+3.7621954668392959444e0i) (num-test (sinh 2.0e+00+4.71273424736769097620e+00i) 1.2522351259038694139e-3-3.7621954668392959448e0i) (num-test (sinh 2.0e+00-4.71273424736769097620e+00i) 1.2522351259038694139e-3+3.7621954668392959448e0i) (num-test (sinh -2.0e+00+4.71273424736769097620e+00i) -1.2522351259038694139e-3-3.7621954668392959448e0i) (num-test (sinh -2.0e+00-4.71273424736769097620e+00i) -1.2522351259038694139e-3+3.7621954668392959448e0i) (num-test (sinh 2.0e+00+6.28284004019658492979e+00i) 3.6268601916692946552e0-1.2989619299138109057e-3i) (num-test (sinh 2.0e+00-6.28284004019658492979e+00i) 3.6268601916692946552e0+1.2989619299138109057e-3i) (num-test (sinh -2.0e+00+6.28284004019658492979e+00i) -3.6268601916692946552e0-1.2989619299138109057e-3i) (num-test (sinh -2.0e+00-6.28284004019658492979e+00i) -3.6268601916692946552e0+1.2989619299138109057e-3i) (num-test (sinh 2.0e+00+6.28353057416258753420e+00i) 3.6268601916692946558e0+1.2989619299119679614e-3i) (num-test (sinh 2.0e+00-6.28353057416258753420e+00i) 3.6268601916692946558e0-1.2989619299119679614e-3i) (num-test (sinh -2.0e+00+6.28353057416258753420e+00i) -3.6268601916692946558e0+1.2989619299119679614e-3i) (num-test (sinh -2.0e+00-6.28353057416258753420e+00i) -3.6268601916692946558e0-1.2989619299119679614e-3i) (num-test (sinh 2.0e+00+9.42443269378637893396e+00i) -3.6268601916692946561e0+1.2989619299109301409e-3i) (num-test (sinh 2.0e+00-9.42443269378637893396e+00i) -3.6268601916692946561e0-1.2989619299109301409e-3i) (num-test (sinh -2.0e+00+9.42443269378637893396e+00i) 3.6268601916692946561e0+1.2989619299109301409e-3i) (num-test (sinh -2.0e+00-9.42443269378637893396e+00i) 3.6268601916692946561e0-1.2989619299109301409e-3i) (num-test (sinh 2.0e+00+9.42512322775237976202e+00i) -3.6268601916692946571e0-1.2989619299081657245e-3i) (num-test (sinh 2.0e+00-9.42512322775237976202e+00i) -3.6268601916692946571e0+1.2989619299081657245e-3i) (num-test (sinh -2.0e+00+9.42512322775237976202e+00i) 3.6268601916692946571e0-1.2989619299081657245e-3i) (num-test (sinh -2.0e+00-9.42512322775237976202e+00i) 3.6268601916692946571e0+1.2989619299081657245e-3i) (num-test (sinh 0) 0.0) ;; -------- cosh (num-test (cosh 0) 1.0) (num-test (cosh 1) 1.54308063481524) (num-test (cosh 2) 3.76219569108363) (num-test (cosh 3) 10.06766199577777) (num-test (cosh 10) 11013.23292010332261) (num-test (cosh 0/1) 1.0) (num-test (cosh 0/2) 1.0) (num-test (cosh 0/3) 1.0) (num-test (cosh 0/10) 1.0) (num-test (cosh 0/1234) 1.0) (num-test (cosh 0/1234000000) 1.0) (num-test (cosh 0/500029) 1.0) (num-test (cosh 0/362880) 1.0) (num-test (cosh 1/1) 1.54308063481524) (num-test (cosh 1/2) 1.12762596520638) (num-test (cosh -1/2) 1.12762596520638) (num-test (cosh 1/3) 1.05607186782994) (num-test (cosh -1/3) 1.05607186782994) (num-test (cosh 1/10) 1.00500416805580) (num-test (cosh -1/10) 1.00500416805580) (num-test (cosh 1/1234) 1.00000032835203) (num-test (cosh -1/1234) 1.00000032835203) (num-test (cosh 1/1234000000) 1.0) (num-test (cosh -1/1234000000) 1.0) (num-test (cosh 1/500029) 1.00000000000200) (num-test (cosh -1/500029) 1.00000000000200) (num-test (cosh 1/362880) 1.00000000000380) (num-test (cosh -1/362880) 1.00000000000380) (num-test (cosh 2/1) 3.76219569108363) (num-test (cosh 2/2) 1.54308063481524) (num-test (cosh 2/3) 1.23057558004363) (num-test (cosh 2/10) 1.02006675561908) (num-test (cosh -2/10) 1.02006675561908) (num-test (cosh 2/1234) 1.00000131340834) (num-test (cosh -2/1234) 1.00000131340834) (num-test (cosh 2/1234000000) 1.0) (num-test (cosh -2/1234000000) 1.0) (num-test (cosh 2/500029) 1.00000000000800) (num-test (cosh -2/500029) 1.00000000000800) (num-test (cosh 2/362880) 1.00000000001519) (num-test (cosh -2/362880) 1.00000000001519) (num-test (cosh 3/1) 10.06766199577777) (num-test (cosh 3/2) 2.35240961524325) (num-test (cosh 3/3) 1.54308063481524) (num-test (cosh 3/10) 1.04533851412886) (num-test (cosh -3/10) 1.04533851412886) (num-test (cosh 3/1234) 1.00000295516958) (num-test (cosh -3/1234) 1.00000295516958) (num-test (cosh 3/1234000000) 1.0) (num-test (cosh -3/1234000000) 1.0) (num-test (cosh 3/500029) 1.00000000001800) (num-test (cosh -3/500029) 1.00000000001800) (num-test (cosh 3/362880) 1.00000000003417) (num-test (cosh -3/362880) 1.00000000003417) (num-test (cosh 10/1) 11013.23292010332261) (num-test (cosh 10/2) 74.20994852478785) (num-test (cosh 10/3) 14.03364944393670) (num-test (cosh 10/10) 1.54308063481524) (num-test (cosh 10/1234) 1.00003283538113) (num-test (cosh -10/1234) 1.00003283538113) (num-test (cosh 10/1234000000) 1.0) (num-test (cosh -10/1234000000) 1.0) (num-test (cosh 10/500029) 1.00000000019998) (num-test (cosh -10/500029) 1.00000000019998) (num-test (cosh 10/362880) 1.00000000037970) (num-test (cosh -10/362880) 1.00000000037970) (num-test (cosh 1234/1234) 1.54308063481524) (num-test (cosh 1234/1234000000) 1.00000000000050) (num-test (cosh -1234/1234000000) 1.00000000000050) (num-test (cosh 1234/500029) 1.00000304516030) (num-test (cosh -1234/500029) 1.00000304516030) (num-test (cosh 1234/362880) 1.00000578195459) (num-test (cosh -1234/362880) 1.00000578195459) (num-test (cosh 1234000000/1234000000) 1.54308063481524) (num-test (cosh 500029/1234000000) 1.00000008209753) (num-test (cosh -500029/1234000000) 1.00000008209753) (num-test (cosh 500029/500029) 1.54308063481524) (num-test (cosh 500029/362880) 2.10942046492234) (num-test (cosh 362880/1234000000) 1.00000004323802) (num-test (cosh -362880/1234000000) 1.00000004323802) (num-test (cosh 362880/500029) 1.27509545648210) (num-test (cosh 362880/362880) 1.54308063481524) (num-test (cosh 0.0) 1.0) (num-test (cosh 0.00000001) 1.0) (num-test (cosh -0.00000001) 1.0) (num-test (cosh 1.0) 1.54308063481524) (num-test (cosh our-pi) 11.59195327552152) (num-test (cosh 2.71828182845905) 7.61012513866229) (num-test (cosh 0.0+0.0i) 1.0) (num-test (cosh -0.0+0.0i) 1.0) (num-test (cosh 0.0-0.0i) 1.0) (num-test (cosh -0.0-0.0i) 1.0) (num-test (cosh 0.0+0.00000001i) 1.0) (num-test (cosh -0.0+0.00000001i) 1.0) (num-test (cosh 0.0-0.00000001i) 1.0) (num-test (cosh -0.0-0.00000001i) 1.0) (num-test (cosh 0.0+1.0i) 0.54030230586814) (num-test (cosh -0.0+1.0i) 0.54030230586814) (num-test (cosh 0.0-1.0i) 0.54030230586814) (num-test (cosh 0.0+3.14159265358979i) -1.0) (num-test (cosh -0.0+3.14159265358979i) -1.0) (num-test (cosh 0.0-3.14159265358979i) -1.0) (num-test (cosh 0.0+2.71828182845905i) -0.91173391478697) (num-test (cosh -0.0+2.71828182845905i) -0.91173391478697) (num-test (cosh 0.0-2.71828182845905i) -0.91173391478697) (num-test (cosh 0.00000001+0.0i) 1.0) (num-test (cosh -0.00000001+0.0i) 1.0) (num-test (cosh 0.00000001-0.0i) 1.0) (num-test (cosh -0.00000001-0.0i) 1.0) (num-test (cosh 0.00000001+0.00000001i) 1.0+1e-16i) ; maxima (num-test (cosh -0.00000001+0.00000001i) 1.0-1e-16i) (num-test (cosh 0.00000001-0.00000001i) 1.0-1e-16i) (num-test (cosh -0.00000001-0.00000001i) 1.0+1e-16i) (num-test (cosh 0.00000001+1.0i) 0.54030230586814+0.00000000841471i) (num-test (cosh 0.00000001-1.0i) 0.54030230586814-0.00000000841471i) (num-test (cosh 0.00000001+3.14159265358979i) -1.0-6.982889851335445E-23i) ;maxima -- stopped here (num-test (cosh 0.00000001-3.14159265358979i) -1.0-0.0i) (num-test (cosh 0.00000001+2.71828182845905i) -0.91173391478697+0.00000000410781i) (num-test (cosh 0.00000001-2.71828182845905i) -0.91173391478697-0.00000000410781i) (num-test (cosh 1.0+0.0i) 1.54308063481524) (num-test (cosh 1.0-0.0i) 1.54308063481524) (num-test (cosh 1.0+0.00000001i) 1.54308063481524+0.00000001175201i) (num-test (cosh 1.0-0.00000001i) 1.54308063481524-0.00000001175201i) (num-test (cosh 1.0+1.0i) 0.83373002513115+0.98889770576287i) (num-test (cosh 1.0-1.0i) 0.83373002513115-0.98889770576287i) (num-test (cosh 1.0+3.14159265358979i) -1.54308063481524+0.0i) (num-test (cosh 1.0-3.14159265358979i) -1.54308063481524-0.0i) (num-test (cosh 1.0+2.71828182845905i) -1.40687894801206+0.48275066292556i) (num-test (cosh 1.0-2.71828182845905i) -1.40687894801206-0.48275066292556i) (num-test (cosh 3.14159265358979+0.0i) 11.59195327552152) (num-test (cosh 3.14159265358979-0.0i) 11.59195327552152) (num-test (cosh 3.14159265358979+0.00000001i) 11.59195327552152+0.00000011548739i) (num-test (cosh 3.14159265358979-0.00000001i) 11.59195327552152-0.00000011548739i) (num-test (cosh 3.14159265358979+1.0i) 6.26315908428001+9.71792908024139i) (num-test (cosh 3.14159265358979-1.0i) 6.26315908428001-9.71792908024139i) (num-test (cosh 3.14159265358979+3.14159265358979i) -11.59195327552152+0.0i) (num-test (cosh 3.14159265358979-3.14159265358979i) -11.59195327552152-0.0i) (num-test (cosh 3.14159265358979+2.71828182845905i) -10.56877693991882+4.74400605685607i) (num-test (cosh 3.14159265358979-2.71828182845905i) -10.56877693991882-4.74400605685607i) (num-test (cosh 2.71828182845905+0.0i) 7.61012513866229) (num-test (cosh 2.71828182845905-0.0i) 7.61012513866229) (num-test (cosh 2.71828182845905+0.00000001i) 7.61012513866229+0.00000007544137i) (num-test (cosh 2.71828182845905-0.00000001i) 7.61012513866229-0.00000007544137i) (num-test (cosh 2.71828182845905+1.0i) 4.11176816036433+6.34817247743319i) (num-test (cosh 2.71828182845905-1.0i) 4.11176816036433-6.34817247743319i) (num-test (cosh 2.71828182835905+3.14159265358979i) -7.61012513866229+0.0i) (num-test (cosh 2.71828182845905-3.14159265358979i) -7.61012513866229-0.0i) (num-test (cosh 2.71828182845905+2.71828182845905i) -6.93840918469126+3.09899037482603i) (num-test (cosh 2.71828182845905-2.71828182845905i) -6.93840918469126-3.09899037482603i) (num-test (cosh -2/3) 1.230575580043636) (num-test (cosh -3/2) 2.352409615243247) (num-test (cosh -10/3) 14.03364944393623) (num-test (cosh 1234/3) 2.18155865313939E+178) (num-test (cosh 1234/10) 1.953930316004457E+53) (num-test (cosh 500029/1234) 4.77955809407816E+175) (num-test (cosh -500029/362880) 2.109420464922257) (num-test (cosh 362880/1234) 2.57697781296564E+127) (num-test (cosh -362880/500029) 1.275095456482107) (num-test (cosh -3.14159265358979) 11.5919532755216) (num-test (cosh -2.71828182845905) 7.610125138661946) (num-test (cosh 0.0+3.14159265358979i) -1.0) (num-test (cosh 0.0+2.71828182845905i) -0.9117339147869464) (num-test (cosh 0.00000001+1.0i) +0.5403023058681398+8.414709848078964E-9i) (num-test (cosh 0.00000001+3.14159265358979i) -1.0-6.982889851335445E-23i) (num-test (cosh 0.00000001+2.71828182845905i) -0.9117339147869464+4.1078129050295015E-9i) (num-test (cosh 0.00000001+1234.0i) -0.7985506235875843+6.019276547624973E-9i) (num-test (cosh 0.00000001+1234000000.0i) .1589091308902228-9.872932128398908E-9i) (num-test (cosh 1.0+0.00000001i) +1.543080634815244+1.1752011936438014E-8i) (num-test (cosh 1.0+3.14159265358979i) -1.543080634815244-8.206300488372603E-15i) (num-test (cosh 1.0+2.71828182845905i) -1.406878948012029+0.4827506629256081i) (num-test (cosh 3.14159265358979+0.0i) 11.5919532755216) (num-test (cosh 3.14159265358979+0.00000001i) +11.5919532755216+1.154873935725783E-7i) (num-test (cosh 3.14159265358979+1.0i) +6.263159084280057+9.71792908024146i) (num-test (cosh 3.14159265358979+3.14159265358979i) -11.5919532755216-8.064357485351393E-14i) (num-test (cosh 3.14159265358979+2.71828182845905i) -10.56877693991868+4.744006056856582i) (num-test (cosh 3.14159265358979+1234.0i) -9.256761516765916+6.951505596777556i) (num-test (cosh 3.14159265358979+1234000000.0i) 1.84206722033321-11.40199198427758i) (num-test (cosh 2.71828182845905+0.0i) 7.610125138661946) (num-test (cosh 2.71828182845905+0.00000001i) +7.610125138661945+7.54413710281663E-8i) (num-test (cosh 2.71828182845905+1.0i) +4.111768160364146+6.348172477432901i) (num-test (cosh 2.71828182845905+3.14159265358979i) -7.610125138661946-5.267987841234144E-14i) (num-test (cosh 2.71828182845905+2.71828182845905i) -6.93840918469081+3.098990374826203i) (num-test (cosh 2.71828182845905+1234.0i) -6.077070175058048+4.541024753505155i) (num-test (cosh 2.71828182845905+1234000000.0i) 1.209318371750606-7.448275358344457i) (num-test (cosh 0.0e+00-3.45266983001243932001e-04i) 9.9999994039535581673e-1+0.0i) (num-test (cosh 0.0e+00+3.45266983001243932001e-04i) 9.9999994039535581673e-1+0.0i) (num-test (cosh 0.0e+00+1.57045105981189525579e+00i) 3.4526697614152485627e-4+0.0i) (num-test (cosh 0.0e+00-1.57045105981189525579e+00i) 3.4526697614152485627e-4+0.0i) (num-test (cosh 0.0e+00+1.57114159377789786021e+00i) -3.4526697614140239160e-4+0.0i) (num-test (cosh 0.0e+00-1.57114159377789786021e+00i) -3.4526697614140239160e-4+0.0i) (num-test (cosh 0.0e+00+3.14124738660679181379e+00i) -9.9999994039535581667e-1+0.0i) (num-test (cosh 0.0e+00-3.14124738660679181379e+00i) -9.9999994039535581667e-1+0.0i) (num-test (cosh 0.0e+00+3.14193792057279441821e+00i) -9.9999994039535581675e-1+0.0i) (num-test (cosh 0.0e+00-3.14193792057279441821e+00i) -9.9999994039535581675e-1+0.0i) (num-test (cosh 0.0e+00+4.71204371340168837179e+00i) -3.4526697614164732094e-4+0.0i) (num-test (cosh 0.0e+00-4.71204371340168837179e+00i) -3.4526697614164732094e-4+0.0i) (num-test (cosh 0.0e+00+4.71273424736769097620e+00i) 3.4526697614127992692e-4+0.0i) (num-test (cosh 0.0e+00-4.71273424736769097620e+00i) 3.4526697614127992692e-4+0.0i) (num-test (cosh 0.0e+00+6.28284004019658492979e+00i) 9.9999994039535581662e-1+0.0i) (num-test (cosh 0.0e+00-6.28284004019658492979e+00i) 9.9999994039535581662e-1+0.0i) (num-test (cosh 0.0e+00+6.28353057416258753420e+00i) 9.9999994039535581679e-1+0.0i) (num-test (cosh 0.0e+00-6.28353057416258753420e+00i) 9.9999994039535581679e-1+0.0i) (num-test (cosh 0.0e+00+9.42443269378637893396e+00i) -9.9999994039535581689e-1+0.0i) (num-test (cosh 0.0e+00-9.42443269378637893396e+00i) -9.9999994039535581689e-1+0.0i) (num-test (cosh 0.0e+00+9.42512322775237976202e+00i) -9.9999994039535581714e-1+0.0i) (num-test (cosh 0.0e+00-9.42512322775237976202e+00i) -9.9999994039535581714e-1+0.0i) (num-test (cosh 1.19209289550781250e-07-3.45266983001243932001e-04i) 9.9999994039536292216e-1-4.1159030931163569191e-11i) (num-test (cosh 1.19209289550781250e-07+3.45266983001243932001e-04i) 9.9999994039536292216e-1+4.1159030931163569191e-11i) (num-test (cosh -1.19209289550781250e-07-3.45266983001243932001e-04i) 9.9999994039536292216e-1+4.1159030931163569191e-11i) (num-test (cosh -1.19209289550781250e-07+3.45266983001243932001e-04i) 9.9999994039536292216e-1-4.1159030931163569191e-11i) (num-test (cosh 1.19209289550781250e-07+1.57045105981189525579e+00i) 3.4526697614152730954e-4+1.1920928244535424532e-7i) (num-test (cosh 1.19209289550781250e-07-1.57045105981189525579e+00i) 3.4526697614152730954e-4-1.1920928244535424532e-7i) (num-test (cosh -1.19209289550781250e-07+1.57045105981189525579e+00i) 3.4526697614152730954e-4-1.1920928244535424532e-7i) (num-test (cosh -1.19209289550781250e-07-1.57045105981189525579e+00i) 3.4526697614152730954e-4+1.1920928244535424532e-7i) (num-test (cosh 1.19209289550781250e-07+1.57114159377789786021e+00i) -3.4526697614140484486e-4+1.1920928244535424533e-7i) (num-test (cosh 1.19209289550781250e-07-1.57114159377789786021e+00i) -3.4526697614140484486e-4-1.1920928244535424533e-7i) (num-test (cosh -1.19209289550781250e-07+1.57114159377789786021e+00i) -3.4526697614140484486e-4-1.1920928244535424533e-7i) (num-test (cosh -1.19209289550781250e-07-1.57114159377789786021e+00i) -3.4526697614140484486e-4+1.1920928244535424533e-7i) (num-test (cosh 1.19209289550781250e-07+3.14124738660679181379e+00i) -9.9999994039536292209e-1+4.1159030931185115142e-11i) (num-test (cosh 1.19209289550781250e-07-3.14124738660679181379e+00i) -9.9999994039536292209e-1-4.1159030931185115142e-11i) (num-test (cosh -1.19209289550781250e-07+3.14124738660679181379e+00i) -9.9999994039536292209e-1-4.1159030931185115142e-11i) (num-test (cosh -1.19209289550781250e-07-3.14124738660679181379e+00i) -9.9999994039536292209e-1+4.1159030931185115142e-11i) (num-test (cosh 1.19209289550781250e-07+3.14193792057279441821e+00i) -9.9999994039536292218e-1-4.1159030931155917289e-11i) (num-test (cosh 1.19209289550781250e-07-3.14193792057279441821e+00i) -9.9999994039536292218e-1+4.1159030931155917289e-11i) (num-test (cosh -1.19209289550781250e-07+3.14193792057279441821e+00i) -9.9999994039536292218e-1+4.1159030931155917289e-11i) (num-test (cosh -1.19209289550781250e-07-3.14193792057279441821e+00i) -9.9999994039536292218e-1-4.1159030931155917289e-11i) (num-test (cosh 1.19209289550781250e-07+4.71204371340168837179e+00i) -3.4526697614164977421e-4-1.1920928244535424532e-7i) (num-test (cosh 1.19209289550781250e-07-4.71204371340168837179e+00i) -3.4526697614164977421e-4+1.1920928244535424532e-7i) (num-test (cosh -1.19209289550781250e-07+4.71204371340168837179e+00i) -3.4526697614164977421e-4+1.1920928244535424532e-7i) (num-test (cosh -1.19209289550781250e-07-4.71204371340168837179e+00i) -3.4526697614164977421e-4-1.1920928244535424532e-7i) (num-test (cosh 1.19209289550781250e-07+4.71273424736769097620e+00i) 3.4526697614128238019e-4-1.1920928244535424533e-7i) (num-test (cosh 1.19209289550781250e-07-4.71273424736769097620e+00i) 3.4526697614128238019e-4+1.1920928244535424533e-7i) (num-test (cosh -1.19209289550781250e-07+4.71273424736769097620e+00i) 3.4526697614128238019e-4+1.1920928244535424533e-7i) (num-test (cosh -1.19209289550781250e-07-4.71273424736769097620e+00i) 3.4526697614128238019e-4-1.1920928244535424533e-7i) (num-test (cosh 1.19209289550781250e-07+6.28284004019658492979e+00i) 9.9999994039536292205e-1-4.1159030931199714069e-11i) (num-test (cosh 1.19209289550781250e-07-6.28284004019658492979e+00i) 9.9999994039536292205e-1+4.1159030931199714069e-11i) (num-test (cosh -1.19209289550781250e-07+6.28284004019658492979e+00i) 9.9999994039536292205e-1+4.1159030931199714069e-11i) (num-test (cosh -1.19209289550781250e-07-6.28284004019658492979e+00i) 9.9999994039536292205e-1-4.1159030931199714069e-11i) (num-test (cosh 1.19209289550781250e-07+6.28353057416258753420e+00i) 9.9999994039536292222e-1+4.1159030931141318362e-11i) (num-test (cosh 1.19209289550781250e-07-6.28353057416258753420e+00i) 9.9999994039536292222e-1-4.1159030931141318362e-11i) (num-test (cosh -1.19209289550781250e-07+6.28353057416258753420e+00i) 9.9999994039536292222e-1-4.1159030931141318362e-11i) (num-test (cosh -1.19209289550781250e-07-6.28353057416258753420e+00i) 9.9999994039536292222e-1+4.1159030931141318362e-11i) (num-test (cosh 1.19209289550781250e-07+9.42443269378637893396e+00i) -9.9999994039536292231e-1+4.1159030931108433883e-11i) (num-test (cosh 1.19209289550781250e-07-9.42443269378637893396e+00i) -9.9999994039536292231e-1-4.1159030931108433883e-11i) (num-test (cosh -1.19209289550781250e-07+9.42443269378637893396e+00i) -9.9999994039536292231e-1-4.1159030931108433883e-11i) (num-test (cosh -1.19209289550781250e-07-9.42443269378637893396e+00i) -9.9999994039536292231e-1+4.1159030931108433883e-11i) (num-test (cosh 1.19209289550781250e-07+9.42512322775237976202e+00i) -9.9999994039536292257e-1-4.1159030931020840323e-11i) (num-test (cosh 1.19209289550781250e-07-9.42512322775237976202e+00i) -9.9999994039536292257e-1+4.1159030931020840323e-11i) (num-test (cosh -1.19209289550781250e-07+9.42512322775237976202e+00i) -9.9999994039536292257e-1+4.1159030931020840323e-11i) (num-test (cosh -1.19209289550781250e-07-9.42512322775237976202e+00i) -9.9999994039536292257e-1-4.1159030931020840323e-11i) (num-test (cosh 5.0e-01-3.45266983001243932001e-04i) 1.1276258979946363573e0-1.7991700040930800151e-4i) (num-test (cosh 5.0e-01+3.45266983001243932001e-04i) 1.1276258979946363573e0+1.7991700040930800151e-4i) (num-test (cosh -5.0e-01-3.45266983001243932001e-04i) 1.1276258979946363573e0+1.7991700040930800151e-4i) (num-test (cosh -5.0e-01+3.45266983001243932001e-04i) 1.1276258979946363573e0-1.7991700040930800151e-4i) (num-test (cosh 5.0e-01+1.57045105981189525579e+00i) 3.8933200722547541227e-4+5.2109527443404709207e-1i) (num-test (cosh 5.0e-01-1.57045105981189525579e+00i) 3.8933200722547541227e-4-5.2109527443404709207e-1i) (num-test (cosh -5.0e-01+1.57045105981189525579e+00i) 3.8933200722547541227e-4-5.2109527443404709207e-1i) (num-test (cosh -5.0e-01-1.57045105981189525579e+00i) 3.8933200722547541227e-4+5.2109527443404709207e-1i) (num-test (cosh 5.0e-01+1.57114159377789786021e+00i) -3.8933200722533731792e-4+5.2109527443404709209e-1i) (num-test (cosh 5.0e-01-1.57114159377789786021e+00i) -3.8933200722533731792e-4-5.2109527443404709209e-1i) (num-test (cosh -5.0e-01+1.57114159377789786021e+00i) -3.8933200722533731792e-4-5.2109527443404709209e-1i) (num-test (cosh -5.0e-01-1.57114159377789786021e+00i) -3.8933200722533731792e-4+5.2109527443404709209e-1i) (num-test (cosh 5.0e-01+3.14124738660679181379e+00i) -1.1276258979946363572e0+1.7991700040940218455e-4i) (num-test (cosh 5.0e-01-3.14124738660679181379e+00i) -1.1276258979946363572e0-1.7991700040940218455e-4i) (num-test (cosh -5.0e-01+3.14124738660679181379e+00i) -1.1276258979946363572e0-1.7991700040940218455e-4i) (num-test (cosh -5.0e-01-3.14124738660679181379e+00i) -1.1276258979946363572e0+1.7991700040940218455e-4i) (num-test (cosh 5.0e-01+3.14193792057279441821e+00i) -1.1276258979946363573e0-1.7991700040927455302e-4i) (num-test (cosh 5.0e-01-3.14193792057279441821e+00i) -1.1276258979946363573e0+1.7991700040927455302e-4i) (num-test (cosh -5.0e-01+3.14193792057279441821e+00i) -1.1276258979946363573e0+1.7991700040927455302e-4i) (num-test (cosh -5.0e-01-3.14193792057279441821e+00i) -1.1276258979946363573e0-1.7991700040927455302e-4i) (num-test (cosh 5.0e-01+4.71204371340168837179e+00i) -3.8933200722561350661e-4-5.2109527443404709205e-1i) (num-test (cosh 5.0e-01-4.71204371340168837179e+00i) -3.8933200722561350661e-4+5.2109527443404709205e-1i) (num-test (cosh -5.0e-01+4.71204371340168837179e+00i) -3.8933200722561350661e-4+5.2109527443404709205e-1i) (num-test (cosh -5.0e-01-4.71204371340168837179e+00i) -3.8933200722561350661e-4-5.2109527443404709205e-1i) (num-test (cosh 5.0e-01+4.71273424736769097620e+00i) 3.8933200722519922358e-4-5.2109527443404709212e-1i) (num-test (cosh 5.0e-01-4.71273424736769097620e+00i) 3.8933200722519922358e-4+5.2109527443404709212e-1i) (num-test (cosh -5.0e-01+4.71273424736769097620e+00i) 3.8933200722519922358e-4+5.2109527443404709212e-1i) (num-test (cosh -5.0e-01-4.71273424736769097620e+00i) 3.8933200722519922358e-4-5.2109527443404709212e-1i) (num-test (cosh 5.0e-01+6.28284004019658492979e+00i) 1.1276258979946363572e0-1.7991700040946600032e-4i) (num-test (cosh 5.0e-01-6.28284004019658492979e+00i) 1.1276258979946363572e0+1.7991700040946600032e-4i) (num-test (cosh -5.0e-01+6.28284004019658492979e+00i) 1.1276258979946363572e0+1.7991700040946600032e-4i) (num-test (cosh -5.0e-01-6.28284004019658492979e+00i) 1.1276258979946363572e0-1.7991700040946600032e-4i) (num-test (cosh 5.0e-01+6.28353057416258753420e+00i) 1.1276258979946363574e0+1.7991700040921073725e-4i) (num-test (cosh 5.0e-01-6.28353057416258753420e+00i) 1.1276258979946363574e0-1.7991700040921073725e-4i) (num-test (cosh -5.0e-01+6.28353057416258753420e+00i) 1.1276258979946363574e0-1.7991700040921073725e-4i) (num-test (cosh -5.0e-01-6.28353057416258753420e+00i) 1.1276258979946363574e0+1.7991700040921073725e-4i) (num-test (cosh 5.0e-01+9.42443269378637893396e+00i) -1.1276258979946363575e0+1.7991700040906699050e-4i) (num-test (cosh 5.0e-01-9.42443269378637893396e+00i) -1.1276258979946363575e0-1.7991700040906699050e-4i) (num-test (cosh -5.0e-01+9.42443269378637893396e+00i) -1.1276258979946363575e0-1.7991700040906699050e-4i) (num-test (cosh -5.0e-01-9.42443269378637893396e+00i) -1.1276258979946363575e0+1.7991700040906699050e-4i) (num-test (cosh 5.0e-01+9.42512322775237976202e+00i) -1.1276258979946363577e0-1.7991700040868409591e-4i) (num-test (cosh 5.0e-01-9.42512322775237976202e+00i) -1.1276258979946363577e0+1.7991700040868409591e-4i) (num-test (cosh -5.0e-01+9.42512322775237976202e+00i) -1.1276258979946363577e0+1.7991700040868409591e-4i) (num-test (cosh -5.0e-01-9.42512322775237976202e+00i) -1.1276258979946363577e0-1.7991700040868409591e-4i) (num-test (cosh 1.0e+00-3.45266983001243932001e-04i) 1.5430805428404715942e0-4.057581624871654840e-4i) (num-test (cosh 1.0e+00+3.45266983001243932001e-04i) 1.5430805428404715942e0+4.057581624871654840e-4i) (num-test (cosh -1.0e+00-3.45266983001243932001e-04i) 1.5430805428404715942e0+4.057581624871654840e-4i) (num-test (cosh -1.0e+00+3.45266983001243932001e-04i) 1.5430805428404715942e0-4.057581624871654840e-4i) (num-test (cosh 1.0e+00+1.57045105981189525579e+00i) 5.3277478472520380315e-4+1.1752011235963524659e0i) (num-test (cosh 1.0e+00-1.57045105981189525579e+00i) 5.3277478472520380315e-4-1.1752011235963524659e0i) (num-test (cosh -1.0e+00+1.57045105981189525579e+00i) 5.3277478472520380315e-4-1.1752011235963524659e0i) (num-test (cosh -1.0e+00-1.57045105981189525579e+00i) 5.3277478472520380315e-4+1.1752011235963524659e0i) (num-test (cosh 1.0e+00+1.57114159377789786021e+00i) -5.3277478472501483029e-4+1.1752011235963524660e0i) (num-test (cosh 1.0e+00-1.57114159377789786021e+00i) -5.3277478472501483029e-4-1.1752011235963524660e0i) (num-test (cosh -1.0e+00+1.57114159377789786021e+00i) -5.3277478472501483029e-4-1.1752011235963524660e0i) (num-test (cosh -1.0e+00-1.57114159377789786021e+00i) -5.3277478472501483029e-4+1.1752011235963524660e0i) (num-test (cosh 1.0e+00+3.14124738660679181379e+00i) -1.5430805428404715941e0+4.0575816248737789049e-4i) (num-test (cosh 1.0e+00-3.14124738660679181379e+00i) -1.5430805428404715941e0-4.0575816248737789049e-4i) (num-test (cosh -1.0e+00+3.14124738660679181379e+00i) -1.5430805428404715941e0-4.0575816248737789049e-4i) (num-test (cosh -1.0e+00-3.14124738660679181379e+00i) -1.5430805428404715941e0+4.0575816248737789049e-4i) (num-test (cosh 1.0e+00+3.14193792057279441821e+00i) -1.5430805428404715943e0-4.0575816248709004923e-4i) (num-test (cosh 1.0e+00-3.14193792057279441821e+00i) -1.5430805428404715943e0+4.0575816248709004923e-4i) (num-test (cosh -1.0e+00+3.14193792057279441821e+00i) -1.5430805428404715943e0+4.0575816248709004923e-4i) (num-test (cosh -1.0e+00-3.14193792057279441821e+00i) -1.5430805428404715943e0-4.0575816248709004923e-4i) (num-test (cosh 1.0e+00+4.71204371340168837179e+00i) -5.3277478472539277601e-4-1.1752011235963524659e0i) (num-test (cosh 1.0e+00-4.71204371340168837179e+00i) -5.3277478472539277601e-4+1.1752011235963524659e0i) (num-test (cosh -1.0e+00+4.71204371340168837179e+00i) -5.3277478472539277601e-4+1.1752011235963524659e0i) (num-test (cosh -1.0e+00-4.71204371340168837179e+00i) -5.3277478472539277601e-4-1.1752011235963524659e0i) (num-test (cosh 1.0e+00+4.71273424736769097620e+00i) 5.3277478472482585742e-4-1.1752011235963524660e0i) (num-test (cosh 1.0e+00-4.71273424736769097620e+00i) 5.3277478472482585742e-4+1.1752011235963524660e0i) (num-test (cosh -1.0e+00+4.71273424736769097620e+00i) 5.3277478472482585742e-4+1.1752011235963524660e0i) (num-test (cosh -1.0e+00-4.71273424736769097620e+00i) 5.3277478472482585742e-4-1.1752011235963524660e0i) (num-test (cosh 1.0e+00+6.28284004019658492979e+00i) 1.5430805428404715941e0-4.0575816248752181112e-4i) (num-test (cosh 1.0e+00-6.28284004019658492979e+00i) 1.5430805428404715941e0+4.0575816248752181112e-4i) (num-test (cosh -1.0e+00+6.28284004019658492979e+00i) 1.5430805428404715941e0+4.0575816248752181112e-4i) (num-test (cosh -1.0e+00-6.28284004019658492979e+00i) 1.5430805428404715941e0-4.0575816248752181112e-4i) (num-test (cosh 1.0e+00+6.28353057416258753420e+00i) 1.5430805428404715943e0+4.0575816248694612861e-4i) (num-test (cosh 1.0e+00-6.28353057416258753420e+00i) 1.5430805428404715943e0-4.0575816248694612861e-4i) (num-test (cosh -1.0e+00+6.28353057416258753420e+00i) 1.5430805428404715943e0-4.0575816248694612861e-4i) (num-test (cosh -1.0e+00-6.28353057416258753420e+00i) 1.5430805428404715943e0+4.0575816248694612861e-4i) (num-test (cosh 1.0e+00+9.42443269378637893396e+00i) -1.5430805428404715945e0+4.0575816248662194348e-4i) (num-test (cosh 1.0e+00-9.42443269378637893396e+00i) -1.5430805428404715945e0-4.0575816248662194348e-4i) (num-test (cosh -1.0e+00+9.42443269378637893396e+00i) -1.5430805428404715945e0-4.0575816248662194348e-4i) (num-test (cosh -1.0e+00-9.42443269378637893396e+00i) -1.5430805428404715945e0+4.0575816248662194348e-4i) (num-test (cosh 1.0e+00+9.42512322775237976202e+00i) -1.5430805428404715949e0-4.0575816248575841970e-4i) (num-test (cosh 1.0e+00-9.42512322775237976202e+00i) -1.5430805428404715949e0+4.0575816248575841970e-4i) (num-test (cosh -1.0e+00+9.42512322775237976202e+00i) -1.5430805428404715949e0+4.0575816248575841970e-4i) (num-test (cosh -1.0e+00-9.42512322775237976202e+00i) -1.5430805428404715949e0-4.0575816248575841970e-4i) (num-test (cosh 2.0e+00-3.45266983001243932001e-04i) 3.7621954668392959447e0-1.2522351259043242989e-3i) (num-test (cosh 2.0e+00+3.45266983001243932001e-04i) 3.7621954668392959447e0+1.2522351259043242989e-3i) (num-test (cosh -2.0e+00-3.45266983001243932001e-04i) 3.7621954668392959447e0+1.2522351259043242989e-3i) (num-test (cosh -2.0e+00+3.45266983001243932001e-04i) 3.7621954668392959447e0-1.2522351259043242989e-3i) (num-test (cosh 2.0e+00+1.57045105981189525579e+00i) 1.2989619299131198016e-3+3.6268601916692946554e0i) (num-test (cosh 2.0e+00-1.57045105981189525579e+00i) 1.2989619299131198016e-3-3.6268601916692946554e0i) (num-test (cosh -2.0e+00+1.57045105981189525579e+00i) 1.2989619299131198016e-3-3.6268601916692946554e0i) (num-test (cosh -2.0e+00-1.57045105981189525579e+00i) 1.2989619299131198016e-3+3.6268601916692946554e0i) (num-test (cosh 2.0e+00+1.57114159377789786021e+00i) -1.2989619299126590655e-3+3.6268601916692946556e0i) (num-test (cosh 2.0e+00-1.57114159377789786021e+00i) -1.2989619299126590655e-3-3.6268601916692946556e0i) (num-test (cosh -2.0e+00+1.57114159377789786021e+00i) -1.2989619299126590655e-3-3.6268601916692946556e0i) (num-test (cosh -2.0e+00-1.57114159377789786021e+00i) -1.2989619299126590655e-3+3.6268601916692946556e0i) (num-test (cosh 2.0e+00+3.14124738660679181379e+00i) -3.7621954668392959444e0+1.2522351259049798196e-3i) (num-test (cosh 2.0e+00-3.14124738660679181379e+00i) -3.7621954668392959444e0-1.2522351259049798196e-3i) (num-test (cosh -2.0e+00+3.14124738660679181379e+00i) -3.7621954668392959444e0-1.2522351259049798196e-3i) (num-test (cosh -2.0e+00-3.14124738660679181379e+00i) -3.7621954668392959444e0+1.2522351259049798196e-3i) (num-test (cosh 2.0e+00+3.14193792057279441821e+00i) -3.7621954668392959448e0-1.2522351259040914950e-3i) (num-test (cosh 2.0e+00-3.14193792057279441821e+00i) -3.7621954668392959448e0+1.2522351259040914950e-3i) (num-test (cosh -2.0e+00+3.14193792057279441821e+00i) -3.7621954668392959448e0+1.2522351259040914950e-3i) (num-test (cosh -2.0e+00-3.14193792057279441821e+00i) -3.7621954668392959448e0-1.2522351259040914950e-3i) (num-test (cosh 2.0e+00+4.71204371340168837179e+00i) -1.2989619299135805376e-3-3.6268601916692946552e0i) (num-test (cosh 2.0e+00-4.71204371340168837179e+00i) -1.2989619299135805376e-3+3.6268601916692946552e0i) (num-test (cosh -2.0e+00+4.71204371340168837179e+00i) -1.2989619299135805376e-3+3.6268601916692946552e0i) (num-test (cosh -2.0e+00-4.71204371340168837179e+00i) -1.2989619299135805376e-3-3.6268601916692946552e0i) (num-test (cosh 2.0e+00+4.71273424736769097620e+00i) 1.2989619299121983294e-3-3.6268601916692946557e0i) (num-test (cosh 2.0e+00-4.71273424736769097620e+00i) 1.2989619299121983294e-3+3.6268601916692946557e0i) (num-test (cosh -2.0e+00+4.71273424736769097620e+00i) 1.2989619299121983294e-3+3.6268601916692946557e0i) (num-test (cosh -2.0e+00-4.71273424736769097620e+00i) 1.2989619299121983294e-3-3.6268601916692946557e0i) (num-test (cosh 2.0e+00+6.28284004019658492979e+00i) 3.7621954668392959443e0-1.2522351259054239819e-3i) (num-test (cosh 2.0e+00-6.28284004019658492979e+00i) 3.7621954668392959443e0+1.2522351259054239819e-3i) (num-test (cosh -2.0e+00+6.28284004019658492979e+00i) 3.7621954668392959443e0+1.2522351259054239819e-3i) (num-test (cosh -2.0e+00-6.28284004019658492979e+00i) 3.7621954668392959443e0-1.2522351259054239819e-3i) (num-test (cosh 2.0e+00+6.28353057416258753420e+00i) 3.7621954668392959449e0+1.2522351259036473328e-3i) (num-test (cosh 2.0e+00-6.28353057416258753420e+00i) 3.7621954668392959449e0-1.2522351259036473328e-3i) (num-test (cosh -2.0e+00+6.28353057416258753420e+00i) 3.7621954668392959449e0-1.2522351259036473328e-3i) (num-test (cosh -2.0e+00-6.28353057416258753420e+00i) 3.7621954668392959449e0+1.2522351259036473328e-3i) (num-test (cosh 2.0e+00+9.42443269378637893396e+00i) -3.7621954668392959453e0+1.2522351259026468452e-3i) (num-test (cosh 2.0e+00-9.42443269378637893396e+00i) -3.7621954668392959453e0-1.2522351259026468452e-3i) (num-test (cosh -2.0e+00+9.42443269378637893396e+00i) -3.7621954668392959453e0-1.2522351259026468452e-3i) (num-test (cosh -2.0e+00-9.42443269378637893396e+00i) -3.7621954668392959453e0+1.2522351259026468452e-3i) (num-test (cosh 2.0e+00+9.42512322775237976202e+00i) -3.7621954668392959462e0-1.2522351258999818715e-3i) (num-test (cosh 2.0e+00-9.42512322775237976202e+00i) -3.7621954668392959462e0+1.2522351258999818715e-3i) (num-test (cosh -2.0e+00+9.42512322775237976202e+00i) -3.7621954668392959462e0+1.2522351258999818715e-3i) (num-test (cosh -2.0e+00-9.42512322775237976202e+00i) -3.7621954668392959462e0-1.2522351258999818715e-3i) (num-test (cosh (log (/ (+ 1 (sqrt 5)) 2))) (/ (sqrt 5) 2)) (num-test (cosh 0) 1.0) ;; -------- tanh (num-test (tanh 0) 0.0) (num-test (tanh 1) 0.76159415595576) (num-test (tanh -1) -0.76159415595576) (num-test (tanh 2) 0.96402758007582) (num-test (tanh -2) -0.96402758007582) (num-test (tanh 3) 0.99505475368673) (num-test (tanh -3) -0.99505475368673) (num-test (tanh 10) 0.99999999587769) (num-test (tanh -10) -0.99999999587769) (num-test (tanh 0/1) 0.0) (num-test (tanh 0/2) 0.0) (num-test (tanh 0/3) 0.0) (num-test (tanh 0/10) 0.0) (num-test (tanh 0/1234) 0.0) (num-test (tanh 0/1234000000) 0.0) (num-test (tanh 0/500029) 0.0) (num-test (tanh 0/362880) 0.0) (num-test (tanh 1/1) 0.76159415595576) (num-test (tanh -1/1) -0.76159415595576) (num-test (tanh 1/2) 0.46211715726001) (num-test (tanh -1/2) -0.46211715726001) (num-test (tanh 1/3) 0.32151273753163) (num-test (tanh -1/3) -0.32151273753163) (num-test (tanh 1/10) 0.09966799462496) (num-test (tanh -1/10) -0.09966799462496) (num-test (tanh 1/1234) 0.00081037259408) (num-test (tanh -1/1234) -0.00081037259408) (num-test (tanh 1/1234000000) 0.00000000081037) (num-test (tanh -1/1234000000) -0.00000000081037) (num-test (tanh 1/500029) 0.00000199988401) (num-test (tanh -1/500029) -0.00000199988401) (num-test (tanh 1/362880) 0.00000275573192) (num-test (tanh -1/362880) -0.00000275573192) (num-test (tanh 2/1) 0.96402758007582) (num-test (tanh -2/1) -0.96402758007582) (num-test (tanh 2/2) 0.76159415595576) (num-test (tanh -2/2) -0.76159415595576) (num-test (tanh 2/3) 0.58278294534791) (num-test (tanh -2/3) -0.58278294534791) (num-test (tanh 2/10) 0.19737532022490) (num-test (tanh -2/10) -0.19737532022490) (num-test (tanh 2/1234) 0.00162074412382) (num-test (tanh -2/1234) -0.00162074412382) (num-test (tanh 2/1234000000) 0.00000000162075) (num-test (tanh -2/1234000000) -0.00000000162075) (num-test (tanh 2/500029) 0.00000399976801) (num-test (tanh -2/500029) -0.00000399976801) (num-test (tanh 2/362880) 0.00000551146384) (num-test (tanh -2/362880) -0.00000551146384) (num-test (tanh 3/1) 0.99505475368673) (num-test (tanh -3/1) -0.99505475368673) (num-test (tanh 3/2) 0.90514825364487) (num-test (tanh -3/2) -0.90514825364487) (num-test (tanh 3/3) 0.76159415595576) (num-test (tanh -3/3) -0.76159415595576) (num-test (tanh 3/10) 0.29131261245159) (num-test (tanh -3/10) -0.29131261245159) (num-test (tanh 3/1234) 0.00243111352486) (num-test (tanh -3/1234) -0.00243111352486) (num-test (tanh 3/1234000000) 0.00000000243112) (num-test (tanh -3/1234000000) -0.00000000243112) (num-test (tanh 3/500029) 0.00000599965202) (num-test (tanh -3/500029) -0.00000599965202) (num-test (tanh 3/362880) 0.00000826719577) (num-test (tanh -3/362880) -0.00000826719577) (num-test (tanh 10/1) 0.99999999587769) (num-test (tanh -10/1) -0.99999999587769) (num-test (tanh 10/2) 0.99990920426260) (num-test (tanh -10/2) -0.99990920426260) (num-test (tanh 10/3) 0.99745796747384) (num-test (tanh -10/3) -0.99745796747384) (num-test (tanh 10/10) 0.76159415595576) (num-test (tanh -10/10) -0.76159415595576) (num-test (tanh 10/1234) 0.00810355032772) (num-test (tanh -10/1234) -0.00810355032772) (num-test (tanh 10/1234000000) 0.00000000810373) (num-test (tanh -10/1234000000) -0.00000000810373) (num-test (tanh 10/500029) 0.00001999884006) (num-test (tanh -10/500029) -0.00001999884006) (num-test (tanh 10/362880) 0.00002755731922) (num-test (tanh -10/362880) -0.00002755731922) (num-test (tanh 1234/10) 1.0) (num-test (tanh -1234/10) -1.0) (num-test (tanh 1234/1234) 0.76159415595576) (num-test (tanh -1234/1234) -0.76159415595576) (num-test (tanh 1234/1234000000) 0.00000100000000) (num-test (tanh -1234/1234000000) -0.00000100000000) (num-test (tanh 1234/500029) 0.00246785185430) (num-test (tanh -1234/500029) -0.00246785185430) (num-test (tanh 1234/362880) 0.00340056008434) (num-test (tanh -1234/362880) -0.00340056008434) (num-test (tanh 1234000000/1234000000) 0.76159415595576) (num-test (tanh -1234000000/1234000000) -0.76159415595576) (num-test (tanh 500029/1234000000) 0.00040520986437) (num-test (tanh -500029/1234000000) -0.00040520986437) (num-test (tanh 500029/500029) 0.76159415595576) (num-test (tanh -500029/500029) -0.76159415595576) (num-test (tanh 500029/362880) 0.88049046571870) (num-test (tanh -500029/362880) -0.88049046571870) (num-test (tanh 362880/1234) 1.0) (num-test (tanh -362880/1234) -1.0) (num-test (tanh 362880/1234000000) 0.00029406806284) (num-test (tanh -362880/1234000000) -0.00029406806284) (num-test (tanh 362880/500029) 0.62043861844530) (num-test (tanh -362880/500029) -0.62043861844530) (num-test (tanh 362880/362880) 0.76159415595576) (num-test (tanh -362880/362880) -0.76159415595576) (num-test (tanh 0.0) 0.0) (num-test (tanh 0.00000001) 0.00000001) (num-test (tanh -0.00000001) -0.00000001) (num-test (tanh 1.0) 0.76159415595576) (num-test (tanh -1.0) -0.76159415595576) (num-test (tanh our-pi) 0.99627207622075) (num-test (tanh -3.14159265358979) -0.99627207622075) (num-test (tanh 2.71828182845905) 0.99132891580060) (num-test (tanh -2.71828182845905) -0.99132891580060) (num-test (tanh 0.0+0.0i) 0.0) (num-test (tanh -0.0+0.0i) 0.0) (num-test (tanh 0.0-0.0i) 0.0) (num-test (tanh -0.0-0.0i) -0.0) (num-test (tanh 0.0+0.00000001i) 0.0+0.00000001i) (num-test (tanh -0.0+0.00000001i) 0.0+0.00000001i) (num-test (tanh 0.0-0.00000001i) 0.0-0.00000001i) (num-test (tanh -0.0-0.00000001i) -0.0-0.00000001i) (num-test (tanh 0.0+1.0i) 0.0+1.55740772465490i) (num-test (tanh -0.0+1.0i) 0.0+1.55740772465490i) (num-test (tanh 0.0-1.0i) 0.0-1.55740772465490i) (num-test (tanh -0.0-1.0i) -0.0-1.55740772465490i) (num-test (tanh 0.00000001+0.0i) 0.00000001) (num-test (tanh -0.00000001+0.0i) -0.00000001) (num-test (tanh 0.00000001-0.0i) 0.00000001) (num-test (tanh -0.00000001-0.0i) -0.00000001) (num-test (tanh 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (tanh -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (tanh 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (tanh -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (tanh 0.00000001+1.0i) 0.00000003425519+1.55740772465490i) (num-test (tanh -0.00000001+1.0i) -0.00000003425519+1.55740772465490i) (num-test (tanh 0.00000001-1.0i) 0.00000003425519-1.55740772465490i) (num-test (tanh -0.00000001-1.0i) -0.00000003425519-1.55740772465490i) (num-test (tanh 1.0+0.0i) 0.76159415595576) (num-test (tanh -1.0+0.0i) -0.76159415595576) (num-test (tanh 1.0-0.0i) 0.76159415595576) (num-test (tanh -1.0-0.0i) -0.76159415595576) (num-test (tanh 1.0+0.00000001i) 0.76159415595576+0.00000000419974i) (num-test (tanh -1.0+0.00000001i) -0.76159415595576+0.00000000419974i) (num-test (tanh 1.0-0.00000001i) 0.76159415595576-0.00000000419974i) (num-test (tanh -1.0-0.00000001i) -0.76159415595576-0.00000000419974i) (num-test (tanh 1.0+1.0i) 1.08392332733869+0.27175258531951i) (num-test (tanh -1.0+1.0i) -1.08392332733869+0.27175258531951i) (num-test (tanh 1.0-1.0i) 1.08392332733869-0.27175258531951i) (num-test (tanh -1.0-1.0i) -1.08392332733869-0.27175258531951i) (num-test (tanh 3.14159265358979+0.0i) 0.99627207622075) (num-test (tanh -3.14159265358979+0.0i) -0.99627207622075) (num-test (tanh 3.14159265358979-0.0i) 0.99627207622075) (num-test (tanh -3.14159265358979-0.0i) -0.99627207622075) (num-test (tanh 3.14159265358979+0.00000001i) 0.99627207622075+0.00000000007442i) (num-test (tanh -3.14159265358979+0.00000001i) -0.99627207622075+0.00000000007442i) (num-test (tanh 3.14159265358979-0.00000001i) 0.99627207622075-0.00000000007442i) (num-test (tanh -3.14159265358979-0.00000001i) -0.99627207622075-0.00000000007442i) (num-test (tanh 3.14159265358979+1.0i) 1.00154968930275+0.00340139653674i) (num-test (tanh -3.14159265358979+1.0i) -1.00154968930275+0.00340139653674i) (num-test (tanh 3.14159265358979-1.0i) 1.00154968930275-0.00340139653674i) (num-test (tanh -3.14159265358979-1.0i) -1.00154968930275-0.00340139653674i) (num-test (tanh 2.71828182845905+0.0i) 0.99132891580060) (num-test (tanh -2.71828182845905+0.0i) -0.99132891580060) (num-test (tanh 2.71828182845905-0.0i) 0.99132891580060) (num-test (tanh -2.71828182845905-0.0i) -0.99132891580060) (num-test (tanh 2.71828182845905+0.00000001i) 0.99132891580060+0.00000000017267i) (num-test (tanh -2.71828182845905+0.00000001i) -0.99132891580060+0.00000000017267i) (num-test (tanh 2.71828182845905-0.00000001i) 0.99132891580060-0.00000000017267i) (num-test (tanh -2.71828182845905-0.00000001i) -0.99132891580060-0.00000000017267i) (num-test (tanh 2.71828182845905+1.0i) 1.00359921084211+0.00794757997665i) (num-test (tanh -2.71828182845905+1.0i) -1.00359921084211+0.00794757997665i) (num-test (tanh 2.71828182845905-1.0i) 1.00359921084211-0.00794757997665i) (num-test (tanh -2.71828182845905-1.0i) -1.00359921084211-0.00794757997665i) (num-test (tanh 1234/3) 1.0) (num-test (tanh 1234000000/3) 1.0) (num-test (tanh 1234000000/500029) 1.0) (num-test (tanh 1234000000/362880) 1.0) (num-test (tanh 500029/2) 1.0) (num-test (tanh 500029/3) 1.0) (num-test (tanh 500029/10) 1.0) (num-test (tanh 500029/1234) 1.0) (num-test (tanh 0.0+3.14159265358979i) 0.0+6.982889851335445E-15i) (num-test (tanh 0.0+2.71828182845905i) 0.0-0.4505495340698621i) (num-test (tanh 0.00000001+3.14159265358979i) 1.0e-8+6.982889851335444E-15i) (num-test (tanh 0.00000001+2.71828182845905i) 1.2029948826505699E-8-0.4505495340698621i) (num-test (tanh 0.00000001+1234.0i) 1.5681770497896427E-8-0.7537751984442328i) (num-test (tanh 0.00000001+1234000000.0i) 3.9600648244422054E-7-6.212941995900324i) (num-test (tanh 1.0+3.14159265358979i) +0.7615941559557649+2.932634567877868E-15i) (num-test (tanh 1.0+2.71828182845905i) .8196826057997404-0.1692870118766369i) (num-test (tanh 3.14159265358979+3.14159265358979i) +0.99627207622075+5.196631812627532E-17i) (num-test (tanh 3.14159265358979+2.71828182845905i) .9975247319761639-0.002790687681003331i) (num-test (tanh 3.14159265358979+1234.0i) .9989656315245496-0.003586791196867043i) (num-test (tanh 3.14159265358979+1234000000.0i) 1.003551866736695-0.001176098307980411i) (num-test (tanh 2.71828182845905+3.14159265358979i) +0.991328915800599+1.205734242765375E-16i) (num-test (tanh 2.71828182845905+2.71828182845905i) .9942257438545914-0.00648578276962794i) (num-test (tanh 2.71828182845905+1234.0i) .9975698313220817-0.008351965390936033i) (num-test (tanh 2.71828182845905+1234000000.0i) 1.008299558244272-0.002755390838840499i) (num-test (tanh 1234.0+0.00000001i) +1.0+8.077935669463161E-28i) (num-test (tanh 1234.0+3.14159265358979i) 1.0) (num-test (tanh 1234.0+2.71828182845905i) +1.0+2.710505431213761E-20i) (num-test (tanh 1234000000.0+0.00000001i) 1.0) (num-test (tanh 1234000000.0+3.14159265358979i) 1.0-7.703719777548943E-34i) (num-test (tanh 1234000000.0+2.71828182845905i) +1.0+2.710505431213761E-20i) (num-test (tanh 0.0e+00-3.45266983001243932001e-04i) 0-3.4526699672092183585e-4i) (num-test (tanh 0.0e+00+3.45266983001243932001e-04i) 0+3.4526699672092183585e-4i) (num-test (tanh 0.0e+00+1.57045105981189525579e+00i) 0+2.8963092606501007060e3i) (num-test (tanh 0.0e+00-1.57045105981189525579e+00i) 0-2.8963092606501007060e3i) (num-test (tanh 0.0e+00+1.57114159377789786021e+00i) 0-2.8963092606511280143e3i) (num-test (tanh 0.0e+00-1.57114159377789786021e+00i) 0+2.8963092606511280143e3i) (num-test (tanh 0.0e+00+3.14124738660679181379e+00i) 0-3.4526699672110257641e-4i) (num-test (tanh 0.0e+00-3.14124738660679181379e+00i) 0+3.4526699672110257641e-4i) (num-test (tanh 0.0e+00+3.14193792057279441821e+00i) 0+3.4526699672085764703e-4i) (num-test (tanh 0.0e+00-3.14193792057279441821e+00i) 0-3.4526699672085764703e-4i) (num-test (tanh 0.0e+00+4.71204371340168837179e+00i) 0+2.8963092606490733978e3i) (num-test (tanh 0.0e+00-4.71204371340168837179e+00i) 0-2.8963092606490733978e3i) (num-test (tanh 0.0e+00+4.71273424736769097620e+00i) 0-2.8963092606521553225e3i) (num-test (tanh 0.0e+00-4.71273424736769097620e+00i) 0+2.8963092606521553225e3i) (num-test (tanh 0.0e+00+6.28284004019658492979e+00i) 0-3.4526699672122504111e-4i) (num-test (tanh 0.0e+00-6.28284004019658492979e+00i) 0+3.4526699672122504111e-4i) (num-test (tanh 0.0e+00+6.28353057416258753420e+00i) 0+3.4526699672073518233e-4i) (num-test (tanh 0.0e+00-6.28353057416258753420e+00i) 0-3.4526699672073518233e-4i) (num-test (tanh 0.0e+00+9.42443269378637893396e+00i) 0-3.4526699672045932728e-4i) (num-test (tanh 0.0e+00-9.42443269378637893396e+00i) 0+3.4526699672045932728e-4i) (num-test (tanh 0.0e+00+9.42512322775237976202e+00i) 0+3.4526699671972453911e-4i) (num-test (tanh 0.0e+00-9.42512322775237976202e+00i) 0-3.4526699671972453911e-4i) (num-test (tanh 1.19209289550781250e-07-3.45266983001243932001e-04i) 1.1920930376163652989e-7-3.4526699672091692931e-4i) (num-test (tanh 1.19209289550781250e-07+3.45266983001243932001e-04i) 1.1920930376163652989e-7+3.4526699672091692931e-4i) (num-test (tanh -1.19209289550781250e-07-3.45266983001243932001e-04i) -1.1920930376163652989e-7-3.4526699672091692931e-4i) (num-test (tanh -1.19209289550781250e-07+3.45266983001243932001e-04i) -1.1920930376163652989e-7+3.4526699672091692931e-4i) (num-test (tanh 1.19209289550781250e-07+1.57045105981189525579e+00i) 9.9999992052646305569e-1+2.8963089153831588642e3i) (num-test (tanh 1.19209289550781250e-07-1.57045105981189525579e+00i) 9.9999992052646305569e-1-2.8963089153831588642e3i) (num-test (tanh -1.19209289550781250e-07+1.57045105981189525579e+00i) -9.9999992052646305569e-1+2.8963089153831588642e3i) (num-test (tanh -1.19209289550781250e-07-1.57045105981189525579e+00i) -9.9999992052646305569e-1-2.8963089153831588642e3i) (num-test (tanh 1.19209289550781250e-07+1.57114159377789786021e+00i) 9.9999992052717244672e-1-2.8963089153841861720e3i) (num-test (tanh 1.19209289550781250e-07-1.57114159377789786021e+00i) 9.9999992052717244672e-1+2.8963089153841861720e3i) (num-test (tanh -1.19209289550781250e-07+1.57114159377789786021e+00i) -9.9999992052717244672e-1-2.8963089153841861720e3i) (num-test (tanh -1.19209289550781250e-07-1.57114159377789786021e+00i) -9.9999992052717244672e-1+2.8963089153841861720e3i) (num-test (tanh 1.19209289550781250e-07+3.14124738660679181379e+00i) 1.1920930376163652991e-7-3.4526699672109766987e-4i) (num-test (tanh 1.19209289550781250e-07-3.14124738660679181379e+00i) 1.1920930376163652991e-7+3.4526699672109766987e-4i) (num-test (tanh -1.19209289550781250e-07+3.14124738660679181379e+00i) -1.1920930376163652991e-7-3.4526699672109766987e-4i) (num-test (tanh -1.19209289550781250e-07-3.14124738660679181379e+00i) -1.1920930376163652991e-7+3.4526699672109766987e-4i) (num-test (tanh 1.19209289550781250e-07+3.14193792057279441821e+00i) 1.1920930376163652989e-7+3.4526699672085274049e-4i) (num-test (tanh 1.19209289550781250e-07-3.14193792057279441821e+00i) 1.1920930376163652989e-7-3.4526699672085274049e-4i) (num-test (tanh -1.19209289550781250e-07+3.14193792057279441821e+00i) -1.1920930376163652989e-7+3.4526699672085274049e-4i) (num-test (tanh -1.19209289550781250e-07-3.14193792057279441821e+00i) -1.1920930376163652989e-7-3.4526699672085274049e-4i) (num-test (tanh 1.19209289550781250e-07+4.71204371340168837179e+00i) 9.9999992052575366466e-1+2.8963089153821315563e3i) (num-test (tanh 1.19209289550781250e-07-4.71204371340168837179e+00i) 9.9999992052575366466e-1-2.8963089153821315563e3i) (num-test (tanh -1.19209289550781250e-07+4.71204371340168837179e+00i) -9.9999992052575366466e-1+2.8963089153821315563e3i) (num-test (tanh -1.19209289550781250e-07-4.71204371340168837179e+00i) -9.9999992052575366466e-1-2.8963089153821315563e3i) (num-test (tanh 1.19209289550781250e-07+4.71273424736769097620e+00i) 9.9999992052788183776e-1-2.8963089153852134799e3i) (num-test (tanh 1.19209289550781250e-07-4.71273424736769097620e+00i) 9.9999992052788183776e-1+2.8963089153852134799e3i) (num-test (tanh -1.19209289550781250e-07+4.71273424736769097620e+00i) -9.9999992052788183776e-1-2.8963089153852134799e3i) (num-test (tanh -1.19209289550781250e-07-4.71273424736769097620e+00i) -9.9999992052788183776e-1+2.8963089153852134799e3i) (num-test (tanh 1.19209289550781250e-07+6.28284004019658492979e+00i) 1.1920930376163652992e-7-3.4526699672122013457e-4i) (num-test (tanh 1.19209289550781250e-07-6.28284004019658492979e+00i) 1.1920930376163652992e-7+3.4526699672122013457e-4i) (num-test (tanh -1.19209289550781250e-07+6.28284004019658492979e+00i) -1.1920930376163652992e-7-3.4526699672122013457e-4i) (num-test (tanh -1.19209289550781250e-07-6.28284004019658492979e+00i) -1.1920930376163652992e-7+3.4526699672122013457e-4i) (num-test (tanh 1.19209289550781250e-07+6.28353057416258753420e+00i) 1.1920930376163652988e-7+3.4526699672073027579e-4i) (num-test (tanh 1.19209289550781250e-07-6.28353057416258753420e+00i) 1.1920930376163652988e-7-3.4526699672073027579e-4i) (num-test (tanh -1.19209289550781250e-07+6.28353057416258753420e+00i) -1.1920930376163652988e-7+3.4526699672073027579e-4i) (num-test (tanh -1.19209289550781250e-07-6.28353057416258753420e+00i) -1.1920930376163652988e-7-3.4526699672073027579e-4i) (num-test (tanh 1.19209289550781250e-07+9.42443269378637893396e+00i) 1.1920930376163652985e-7-3.4526699672045442074e-4i) (num-test (tanh 1.19209289550781250e-07-9.42443269378637893396e+00i) 1.1920930376163652985e-7+3.4526699672045442074e-4i) (num-test (tanh -1.19209289550781250e-07+9.42443269378637893396e+00i) -1.1920930376163652985e-7-3.4526699672045442074e-4i) (num-test (tanh -1.19209289550781250e-07-9.42443269378637893396e+00i) -1.1920930376163652985e-7+3.4526699672045442074e-4i) (num-test (tanh 1.19209289550781250e-07+9.42512322775237976202e+00i) 1.1920930376163652979e-7+3.4526699671971963257e-4i) (num-test (tanh 1.19209289550781250e-07-9.42512322775237976202e+00i) 1.1920930376163652979e-7-3.4526699671971963257e-4i) (num-test (tanh -1.19209289550781250e-07+9.42512322775237976202e+00i) -1.1920930376163652979e-7+3.4526699671971963257e-4i) (num-test (tanh -1.19209289550781250e-07-9.42512322775237976202e+00i) -1.1920930376163652979e-7-3.4526699671971963257e-4i) (num-test (tanh 5.0e-01-3.45266983001243932001e-04i) 4.6211720058436229979e-1-2.7153443992655805934e-4i) (num-test (tanh 5.0e-01+3.45266983001243932001e-04i) 4.6211720058436229979e-1+2.7153443992655805934e-4i) (num-test (tanh -5.0e-01-3.45266983001243932001e-04i) -4.6211720058436229979e-1-2.7153443992655805934e-4i) (num-test (tanh -5.0e-01+3.45266983001243932001e-04i) -4.6211720058436229979e-1+2.7153443992655805934e-4i) (num-test (tanh 5.0e-01+1.57045105981189525579e+00i) 2.1639524637389325996e0+1.2715121175455623363e-3i) (num-test (tanh 5.0e-01-1.57045105981189525579e+00i) 2.1639524637389325996e0-1.2715121175455623363e-3i) (num-test (tanh -5.0e-01+1.57045105981189525579e+00i) -2.1639524637389325996e0+1.2715121175455623363e-3i) (num-test (tanh -5.0e-01-1.57045105981189525579e+00i) -2.1639524637389325996e0-1.2715121175455623363e-3i) (num-test (tanh 5.0e-01+1.57114159377789786021e+00i) 2.1639524637389326002e0-1.2715121175451113370e-3i) (num-test (tanh 5.0e-01-1.57114159377789786021e+00i) 2.1639524637389326002e0+1.2715121175451113370e-3i) (num-test (tanh -5.0e-01+1.57114159377789786021e+00i) -2.1639524637389326002e0-1.2715121175451113370e-3i) (num-test (tanh -5.0e-01-1.57114159377789786021e+00i) -2.1639524637389326002e0+1.2715121175451113370e-3i) (num-test (tanh 5.0e-01+3.14124738660679181379e+00i) 4.6211720058436229984e-1-2.7153443992670020234e-4i) (num-test (tanh 5.0e-01-3.14124738660679181379e+00i) 4.6211720058436229984e-1+2.7153443992670020234e-4i) (num-test (tanh -5.0e-01+3.14124738660679181379e+00i) -4.6211720058436229984e-1-2.7153443992670020234e-4i) (num-test (tanh -5.0e-01-3.14124738660679181379e+00i) -4.6211720058436229984e-1+2.7153443992670020234e-4i) (num-test (tanh 5.0e-01+3.14193792057279441821e+00i) 4.6211720058436229978e-1+2.7153443992650757820e-4i) (num-test (tanh 5.0e-01-3.14193792057279441821e+00i) 4.6211720058436229978e-1-2.7153443992650757820e-4i) (num-test (tanh -5.0e-01+3.14193792057279441821e+00i) -4.6211720058436229978e-1+2.7153443992650757820e-4i) (num-test (tanh -5.0e-01-3.14193792057279441821e+00i) -4.6211720058436229978e-1-2.7153443992650757820e-4i) (num-test (tanh 5.0e-01+4.71204371340168837179e+00i) 2.1639524637389325989e0+1.2715121175460133355e-3i) (num-test (tanh 5.0e-01-4.71204371340168837179e+00i) 2.1639524637389325989e0-1.2715121175460133355e-3i) (num-test (tanh -5.0e-01+4.71204371340168837179e+00i) -2.1639524637389325989e0+1.2715121175460133355e-3i) (num-test (tanh -5.0e-01-4.71204371340168837179e+00i) -2.1639524637389325989e0-1.2715121175460133355e-3i) (num-test (tanh 5.0e-01+4.71273424736769097620e+00i) 2.1639524637389326009e0-1.2715121175446603377e-3i) (num-test (tanh 5.0e-01-4.71273424736769097620e+00i) 2.1639524637389326009e0+1.2715121175446603377e-3i) (num-test (tanh -5.0e-01+4.71273424736769097620e+00i) -2.1639524637389326009e0-1.2715121175446603377e-3i) (num-test (tanh -5.0e-01-4.71273424736769097620e+00i) -2.1639524637389326009e0+1.2715121175446603377e-3i) (num-test (tanh 5.0e-01+6.28284004019658492979e+00i) 4.6211720058436229987e-1-2.7153443992679651442e-4i) (num-test (tanh 5.0e-01-6.28284004019658492979e+00i) 4.6211720058436229987e-1+2.7153443992679651442e-4i) (num-test (tanh -5.0e-01+6.28284004019658492979e+00i) -4.6211720058436229987e-1-2.7153443992679651442e-4i) (num-test (tanh -5.0e-01-6.28284004019658492979e+00i) -4.6211720058436229987e-1+2.7153443992679651442e-4i) (num-test (tanh 5.0e-01+6.28353057416258753420e+00i) 4.6211720058436229974e-1+2.7153443992641126612e-4i) (num-test (tanh 5.0e-01-6.28353057416258753420e+00i) 4.6211720058436229974e-1-2.7153443992641126612e-4i) (num-test (tanh -5.0e-01+6.28353057416258753420e+00i) -4.6211720058436229974e-1+2.7153443992641126612e-4i) (num-test (tanh -5.0e-01-6.28353057416258753420e+00i) -4.6211720058436229974e-1-2.7153443992641126612e-4i) (num-test (tanh 5.0e-01+9.42443269378637893396e+00i) 4.6211720058436229968e-1-2.7153443992619432056e-4i) (num-test (tanh 5.0e-01-9.42443269378637893396e+00i) 4.6211720058436229968e-1+2.7153443992619432056e-4i) (num-test (tanh -5.0e-01+9.42443269378637893396e+00i) -4.6211720058436229968e-1-2.7153443992619432056e-4i) (num-test (tanh -5.0e-01-9.42443269378637893396e+00i) -4.6211720058436229968e-1+2.7153443992619432056e-4i) (num-test (tanh 5.0e-01+9.42512322775237976202e+00i) 4.6211720058436229949e-1+2.7153443992561644811e-4i) (num-test (tanh 5.0e-01-9.42512322775237976202e+00i) 4.6211720058436229949e-1-2.7153443992561644811e-4i) (num-test (tanh -5.0e-01+9.42512322775237976202e+00i) -4.6211720058436229949e-1+2.7153443992561644811e-4i) (num-test (tanh -5.0e-01-9.42512322775237976202e+00i) -4.6211720058436229949e-1-2.7153443992561644811e-4i) (num-test (tanh 1.0e+00-3.45266983001243932001e-04i) 7.6159419408485704836e-1-1.4500326960274960880e-4i) (num-test (tanh 1.0e+00+3.45266983001243932001e-04i) 7.6159419408485704836e-1+1.4500326960274960880e-4i) (num-test (tanh -1.0e+00-3.45266983001243932001e-04i) -7.6159419408485704836e-1-1.4500326960274960880e-4i) (num-test (tanh -1.0e+00+3.45266983001243932001e-04i) -7.6159419408485704836e-1+1.4500326960274960880e-4i) (num-test (tanh 1.0e+00+1.57045105981189525579e+00i) 1.3130351721648674823e0+2.4999454374276273814e-4i) (num-test (tanh 1.0e+00-1.57045105981189525579e+00i) 1.3130351721648674823e0-2.4999454374276273814e-4i) (num-test (tanh -1.0e+00+1.57045105981189525579e+00i) -1.3130351721648674823e0+2.4999454374276273814e-4i) (num-test (tanh -1.0e+00-1.57045105981189525579e+00i) -1.3130351721648674823e0-2.4999454374276273814e-4i) (num-test (tanh 1.0e+00+1.57114159377789786021e+00i) 1.3130351721648674824e0-2.4999454374267406620e-4i) (num-test (tanh 1.0e+00-1.57114159377789786021e+00i) 1.3130351721648674824e0+2.4999454374267406620e-4i) (num-test (tanh -1.0e+00+1.57114159377789786021e+00i) -1.3130351721648674824e0-2.4999454374267406620e-4i) (num-test (tanh -1.0e+00-1.57114159377789786021e+00i) -1.3130351721648674824e0+2.4999454374267406620e-4i) (num-test (tanh 1.0e+00+3.14124738660679181379e+00i) 7.6159419408485704840e-1-1.4500326960282551519e-4i) (num-test (tanh 1.0e+00-3.14124738660679181379e+00i) 7.6159419408485704840e-1+1.4500326960282551519e-4i) (num-test (tanh -1.0e+00+3.14124738660679181379e+00i) -7.6159419408485704840e-1-1.4500326960282551519e-4i) (num-test (tanh -1.0e+00-3.14124738660679181379e+00i) -7.6159419408485704840e-1+1.4500326960282551519e-4i) (num-test (tanh 1.0e+00+3.14193792057279441821e+00i) 7.6159419408485704835e-1+1.4500326960272265115e-4i) (num-test (tanh 1.0e+00-3.14193792057279441821e+00i) 7.6159419408485704835e-1-1.4500326960272265115e-4i) (num-test (tanh -1.0e+00+3.14193792057279441821e+00i) -7.6159419408485704835e-1+1.4500326960272265115e-4i) (num-test (tanh -1.0e+00-3.14193792057279441821e+00i) -7.6159419408485704835e-1-1.4500326960272265115e-4i) (num-test (tanh 1.0e+00+4.71204371340168837179e+00i) 1.3130351721648674822e0+2.4999454374285141007e-4i) (num-test (tanh 1.0e+00-4.71204371340168837179e+00i) 1.3130351721648674822e0-2.4999454374285141007e-4i) (num-test (tanh -1.0e+00+4.71204371340168837179e+00i) -1.3130351721648674822e0+2.4999454374285141007e-4i) (num-test (tanh -1.0e+00-4.71204371340168837179e+00i) -1.3130351721648674822e0-2.4999454374285141007e-4i) (num-test (tanh 1.0e+00+4.71273424736769097620e+00i) 1.3130351721648674825e0-2.4999454374258539427e-4i) (num-test (tanh 1.0e+00-4.71273424736769097620e+00i) 1.3130351721648674825e0+2.4999454374258539427e-4i) (num-test (tanh -1.0e+00+4.71273424736769097620e+00i) -1.3130351721648674825e0-2.4999454374258539427e-4i) (num-test (tanh -1.0e+00-4.71273424736769097620e+00i) -1.3130351721648674825e0+2.4999454374258539427e-4i) (num-test (tanh 1.0e+00+6.28284004019658492979e+00i) 7.6159419408485704843e-1-1.4500326960287694721e-4i) (num-test (tanh 1.0e+00-6.28284004019658492979e+00i) 7.6159419408485704843e-1+1.4500326960287694721e-4i) (num-test (tanh -1.0e+00+6.28284004019658492979e+00i) -7.6159419408485704843e-1-1.4500326960287694721e-4i) (num-test (tanh -1.0e+00-6.28284004019658492979e+00i) -7.6159419408485704843e-1+1.4500326960287694721e-4i) (num-test (tanh 1.0e+00+6.28353057416258753420e+00i) 7.6159419408485704832e-1+1.4500326960267121913e-4i) (num-test (tanh 1.0e+00-6.28353057416258753420e+00i) 7.6159419408485704832e-1-1.4500326960267121913e-4i) (num-test (tanh -1.0e+00+6.28353057416258753420e+00i) -7.6159419408485704832e-1+1.4500326960267121913e-4i) (num-test (tanh -1.0e+00-6.28353057416258753420e+00i) -7.6159419408485704832e-1-1.4500326960267121913e-4i) (num-test (tanh 1.0e+00+9.42443269378637893396e+00i) 7.6159419408485704826e-1-1.4500326960255536711e-4i) (num-test (tanh 1.0e+00-9.42443269378637893396e+00i) 7.6159419408485704826e-1+1.4500326960255536711e-4i) (num-test (tanh -1.0e+00+9.42443269378637893396e+00i) -7.6159419408485704826e-1-1.4500326960255536711e-4i) (num-test (tanh -1.0e+00-9.42443269378637893396e+00i) -7.6159419408485704826e-1+1.4500326960255536711e-4i) (num-test (tanh 1.0e+00+9.42512322775237976202e+00i) 7.6159419408485704810e-1+1.450032696022467750e-4i) (num-test (tanh 1.0e+00-9.42512322775237976202e+00i) 7.6159419408485704810e-1-1.450032696022467750e-4i) (num-test (tanh -1.0e+00+9.42512322775237976202e+00i) -7.6159419408485704810e-1+1.450032696022467750e-4i) (num-test (tanh -1.0e+00-9.42512322775237976202e+00i) -7.6159419408485704810e-1-1.450032696022467750e-4i) (num-test (tanh 2.0e+00-3.45266983001243932001e-04i) 9.6402758819508310556e-1-2.4393395410435306874e-5i) (num-test (tanh 2.0e+00+3.45266983001243932001e-04i) 9.6402758819508310556e-1+2.4393395410435306874e-5i) (num-test (tanh -2.0e+00-3.45266983001243932001e-04i) -9.6402758819508310556e-1-2.4393395410435306874e-5i) (num-test (tanh -2.0e+00+3.45266983001243932001e-04i) -9.6402758819508310556e-1+2.4393395410435306874e-5i) (num-test (tanh 2.0e+00+1.57045105981189525579e+00i) 1.0373147113268752620e0+2.6247825506572821595e-5i) (num-test (tanh 2.0e+00-1.57045105981189525579e+00i) 1.0373147113268752620e0-2.6247825506572821595e-5i) (num-test (tanh -2.0e+00+1.57045105981189525579e+00i) -1.0373147113268752620e0+2.6247825506572821595e-5i) (num-test (tanh -2.0e+00-1.57045105981189525579e+00i) -1.0373147113268752620e0-2.6247825506572821595e-5i) (num-test (tanh 2.0e+00+1.57114159377789786021e+00i) 1.0373147113268752620e0-2.6247825506563511609e-5i) (num-test (tanh 2.0e+00-1.57114159377789786021e+00i) 1.0373147113268752620e0+2.6247825506563511609e-5i) (num-test (tanh -2.0e+00+1.57114159377789786021e+00i) -1.0373147113268752620e0-2.6247825506563511609e-5i) (num-test (tanh -2.0e+00-1.57114159377789786021e+00i) -1.0373147113268752620e0+2.6247825506563511609e-5i) (num-test (tanh 2.0e+00+3.14124738660679181379e+00i) 9.6402758819508310557e-1-2.4393395410448076340e-5i) (num-test (tanh 2.0e+00-3.14124738660679181379e+00i) 9.6402758819508310557e-1+2.4393395410448076340e-5i) (num-test (tanh -2.0e+00+3.14124738660679181379e+00i) -9.6402758819508310557e-1-2.4393395410448076340e-5i) (num-test (tanh -2.0e+00-3.14124738660679181379e+00i) -9.6402758819508310557e-1+2.4393395410448076340e-5i) (num-test (tanh 2.0e+00+3.14193792057279441821e+00i) 9.6402758819508310556e-1+2.4393395410430771882e-5i) (num-test (tanh 2.0e+00-3.14193792057279441821e+00i) 9.6402758819508310556e-1-2.4393395410430771882e-5i) (num-test (tanh -2.0e+00+3.14193792057279441821e+00i) -9.6402758819508310556e-1+2.4393395410430771882e-5i) (num-test (tanh -2.0e+00-3.14193792057279441821e+00i) -9.6402758819508310556e-1-2.4393395410430771882e-5i) (num-test (tanh 2.0e+00+4.71204371340168837179e+00i) 1.0373147113268752620e0+2.6247825506582131582e-5i) (num-test (tanh 2.0e+00-4.71204371340168837179e+00i) 1.0373147113268752620e0-2.6247825506582131582e-5i) (num-test (tanh -2.0e+00+4.71204371340168837179e+00i) -1.0373147113268752620e0+2.6247825506582131582e-5i) (num-test (tanh -2.0e+00-4.71204371340168837179e+00i) -1.0373147113268752620e0-2.6247825506582131582e-5i) (num-test (tanh 2.0e+00+4.71273424736769097620e+00i) 1.0373147113268752620e0-2.6247825506554201622e-5i) (num-test (tanh 2.0e+00-4.71273424736769097620e+00i) 1.0373147113268752620e0+2.6247825506554201622e-5i) (num-test (tanh -2.0e+00+4.71273424736769097620e+00i) -1.0373147113268752620e0-2.6247825506554201622e-5i) (num-test (tanh -2.0e+00-4.71273424736769097620e+00i) -1.0373147113268752620e0+2.6247825506554201622e-5i) (num-test (tanh 2.0e+00+6.28284004019658492979e+00i) 9.6402758819508310558e-1-2.4393395410456728569e-5i) (num-test (tanh 2.0e+00-6.28284004019658492979e+00i) 9.6402758819508310558e-1+2.4393395410456728569e-5i) (num-test (tanh -2.0e+00+6.28284004019658492979e+00i) -9.6402758819508310558e-1-2.4393395410456728569e-5i) (num-test (tanh -2.0e+00-6.28284004019658492979e+00i) -9.6402758819508310558e-1+2.4393395410456728569e-5i) (num-test (tanh 2.0e+00+6.28353057416258753420e+00i) 9.6402758819508310555e-1+2.4393395410422119654e-5i) (num-test (tanh 2.0e+00-6.28353057416258753420e+00i) 9.6402758819508310555e-1-2.4393395410422119654e-5i) (num-test (tanh -2.0e+00+6.28353057416258753420e+00i) -9.6402758819508310555e-1+2.4393395410422119654e-5i) (num-test (tanh -2.0e+00-6.28353057416258753420e+00i) -9.6402758819508310555e-1-2.4393395410422119654e-5i) (num-test (tanh 2.0e+00+9.42443269378637893396e+00i) 9.6402758819508310554e-1-2.4393395410402630273e-5i) (num-test (tanh 2.0e+00-9.42443269378637893396e+00i) 9.6402758819508310554e-1+2.4393395410402630273e-5i) (num-test (tanh -2.0e+00+9.42443269378637893396e+00i) -9.6402758819508310554e-1-2.4393395410402630273e-5i) (num-test (tanh -2.0e+00-9.42443269378637893396e+00i) -9.6402758819508310554e-1+2.4393395410402630273e-5i) (num-test (tanh 2.0e+00+9.42512322775237976202e+00i) 9.6402758819508310550e-1+2.439339541035071690e-5i) (num-test (tanh 2.0e+00-9.42512322775237976202e+00i) 9.6402758819508310550e-1-2.439339541035071690e-5i) (num-test (tanh -2.0e+00+9.42512322775237976202e+00i) -9.6402758819508310550e-1+2.439339541035071690e-5i) (num-test (tanh -2.0e+00-9.42512322775237976202e+00i) -9.6402758819508310550e-1-2.439339541035071690e-5i) (num-test (tanh 50) 1.0) ;; -------- asinh (num-test (asinh 0) 0.0) (num-test (asinh 1) 0.88137358701954) (num-test (asinh -1) -0.88137358701954) (num-test (asinh 2) 1.44363547517881) (num-test (asinh -2) -1.44363547517881) (num-test (asinh 3) 1.81844645923207) (num-test (asinh -3) -1.81844645923207) (num-test (asinh 10) 2.99822295029797) (num-test (asinh -10) -2.99822295029798) (num-test (asinh 1234) 7.81116354920125) (num-test (asinh -1234) -7.81116354896171) (num-test (asinh 1234000000) 21.62667394298955) (num-test (asinh 500029) 13.81556855628334) (num-test (asinh 362880) 13.49497466064331) (num-test (asinh 0/1) 0.0) (num-test (asinh 0/2) 0.0) (num-test (asinh 0/3) 0.0) (num-test (asinh 0/10) 0.0) (num-test (asinh 0/1234) 0.0) (num-test (asinh 0/1234000000) 0.0) (num-test (asinh 0/500029) 0.0) (num-test (asinh 0/362880) 0.0) (num-test (asinh 1/1) 0.88137358701954) (num-test (asinh -1/1) -0.88137358701954) (num-test (asinh 1/2) 0.48121182505960) (num-test (asinh -1/2) -0.48121182505960) (num-test (asinh 1/3) 0.32745015023726) (num-test (asinh -1/3) -0.32745015023726) (num-test (asinh 1/10) 0.09983407889921) (num-test (asinh -1/10) -0.09983407889921) (num-test (asinh 1/1234) 0.00081037268278) (num-test (asinh -1/1234) -0.00081037268278) (num-test (asinh 1/1234000000) 0.00000000081037) (num-test (asinh -1/1234000000) -0.00000000081037) (num-test (asinh 1/500029) 0.00000199988401) (num-test (asinh -1/500029) -0.00000199988401) (num-test (asinh 1/362880) 0.00000275573192) (num-test (asinh -1/362880) -0.00000275573192) (num-test (asinh 2/1) 1.44363547517881) (num-test (asinh -2/1) -1.44363547517881) (num-test (asinh 2/2) 0.88137358701954) (num-test (asinh -2/2) -0.88137358701954) (num-test (asinh 2/3) 0.62514511725042) (num-test (asinh -2/3) -0.62514511725042) (num-test (asinh 2/10) 0.19869011034924) (num-test (asinh -2/10) -0.19869011034924) (num-test (asinh 2/1234) 0.00162074483338) (num-test (asinh -2/1234) -0.00162074483338) (num-test (asinh 2/1234000000) 0.00000000162075) (num-test (asinh -2/1234000000) -0.00000000162075) (num-test (asinh 2/500029) 0.00000399976801) (num-test (asinh -2/500029) -0.00000399976801) (num-test (asinh 2/362880) 0.00000551146384) (num-test (asinh -2/362880) -0.00000551146384) (num-test (asinh 3/1) 1.81844645923207) (num-test (asinh -3/1) -1.81844645923207) (num-test (asinh 3/2) 1.19476321728711) (num-test (asinh -3/2) -1.19476321728711) (num-test (asinh 3/3) 0.88137358701954) (num-test (asinh -3/3) -0.88137358701954) (num-test (asinh 3/10) 0.29567304756342) (num-test (asinh -3/10) -0.29567304756342) (num-test (asinh 3/1234) 0.00243111591964) (num-test (asinh -3/1234) -0.00243111591964) (num-test (asinh 3/1234000000) 0.00000000243112) (num-test (asinh -3/1234000000) -0.00000000243112) (num-test (asinh 3/500029) 0.00000599965202) (num-test (asinh -3/500029) -0.00000599965202) (num-test (asinh 3/362880) 0.00000826719577) (num-test (asinh -3/362880) -0.00000826719577) (num-test (asinh 10/1) 2.99822295029797) (num-test (asinh -10/1) -2.99822295029798) (num-test (asinh 10/2) 2.31243834127275) (num-test (asinh -10/2) -2.31243834127276) (num-test (asinh 10/3) 1.91889647209853) (num-test (asinh -10/3) -1.91889647209853) (num-test (asinh 10/10) 0.88137358701954) (num-test (asinh -10/10) -0.88137358701954) (num-test (asinh 10/1234) 0.00810363902153) (num-test (asinh -10/1234) -0.00810363902153) (num-test (asinh 10/1234000000) 0.00000000810373) (num-test (asinh -10/1234000000) -0.00000000810373) (num-test (asinh 10/500029) 0.00001999884007) (num-test (asinh -10/500029) -0.00001999884007) (num-test (asinh 10/362880) 0.00002755731922) (num-test (asinh -10/362880) -0.00002755731922) (num-test (asinh 1234/1) 7.81116354920125) (num-test (asinh -1234/1) -7.81116354896171) (num-test (asinh 1234/2) 7.11801686116871) (num-test (asinh -1234/2) -7.11801686109890) (num-test (asinh 1234/3) 6.71255257393796) (num-test (asinh -1234/3) -6.71255257391934) (num-test (asinh 1234/10) 5.50859470922766) (num-test (asinh -1234/10) -5.50859470922637) (num-test (asinh 1234/1234) 0.88137358701954) (num-test (asinh -1234/1234) -0.88137358701954) (num-test (asinh 1234/1234000000) 0.00000100000000) (num-test (asinh -1234/1234000000) -0.00000100000000) (num-test (asinh 1234/500029) 0.00246785435930) (num-test (asinh -1234/500029) -0.00246785435930) (num-test (asinh 1234/362880) 0.00340056663829) (num-test (asinh -1234/362880) -0.00340056663829) (num-test (asinh 1234000000/1) 21.62667394298955) (num-test (asinh 1234000000/2) 20.93352676242961) (num-test (asinh 1234000000/3) 20.52806165432144) (num-test (asinh 1234000000/10) 19.32408884999551) (num-test (asinh 1234000000/1234) 14.50865773852447) (num-test (asinh 1234000000/1234000000) 0.88137358701954) (num-test (asinh -1234000000/1234000000) -0.88137358701954) (num-test (asinh 1234000000/500029) 8.50425260831592) (num-test (asinh -1234000000/500029) -8.50425260755399) (num-test (asinh 1234000000/362880) 8.82484648452709) (num-test (asinh -1234000000/362880) -8.82484648383427) (num-test (asinh 500029/1) 13.81556855628334) (num-test (asinh 500029/2) 13.12242137572639) (num-test (asinh 500029/3) 12.71695626762323) (num-test (asinh -500029/3) -12.71695626762323) (num-test (asinh 500029/10) 11.51298346338828) (num-test (asinh -500029/10) -11.51298333576987) (num-test (asinh 500029/1234) 6.69755387439290) (num-test (asinh -500029/1234) -6.69755387437470) (num-test (asinh 500029/1234000000) 0.00040520987546) (num-test (asinh -500029/1234000000) -0.00040520987546) (num-test (asinh 500029/500029) 0.88137358701954) (num-test (asinh -500029/500029) -0.88137358701954) (num-test (asinh 500029/362880) 1.12509614482188) (num-test (asinh -500029/362880) -1.12509614482188) (num-test (asinh 362880/1) 13.49497466064331) (num-test (asinh 362880/2) 12.80182748008906) (num-test (asinh -362880/2) -12.80182748008906) (num-test (asinh 362880/3) 12.39636237199039) (num-test (asinh -362880/3) -12.39636125811213) (num-test (asinh 362880/10) 11.19238956783722) (num-test (asinh -362880/10) -11.19238933388543) (num-test (asinh 362880/1234) 6.37696134713805) (num-test (asinh -362880/1234) -6.37696134714268) (num-test (asinh 362880/1234000000) 0.00029406806707) (num-test (asinh -362880/1234000000) -0.00029406806707) (num-test (asinh 362880/500029) 0.67360821551802) (num-test (asinh -362880/500029) -0.67360821551802) (num-test (asinh 362880/362880) 0.88137358701954) (num-test (asinh -362880/362880) -0.88137358701954) (num-test (asinh 0.0) 0.0) (num-test (asinh 0.00000001) 0.00000001) (num-test (asinh -0.00000001) -0.00000001) (num-test (asinh 1.0) 0.88137358701954) (num-test (asinh -1.0) -0.88137358701954) (num-test (asinh our-pi) 1.86229574331085) (num-test (asinh -3.14159265358979) -1.86229574331085) (num-test (asinh 2.71828182845905) 1.72538255885231) (num-test (asinh -2.71828182845905) -1.72538255885232) (num-test (asinh 1234.0) 7.81116354920125) (num-test (asinh -1234.0) -7.81116354896171) (num-test (asinh 1234000000.0) 21.62667394298955) (num-test (asinh 0.0+0.0i) 0.0) (num-test (asinh -0.0+0.0i) 0.0) (num-test (asinh 0.0-0.0i) 0.0) (num-test (asinh -0.0-0.0i) -0.0) (num-test (asinh 0.0+0.00000001i) 0.0+0.00000001i) (num-test (asinh -0.0+0.00000001i) 0.0+0.00000001i) (num-test (asinh 0.0-0.00000001i) 0.0-0.00000001i) (num-test (asinh -0.0-0.00000001i) 0.0-0.00000001i) (num-test (asinh 0.0+1.0i) 0.0+1.57079632679490i) (num-test (asinh -0.0+1.0i) 0.0+1.57079632679490i) (num-test (asinh 0.0-1.0i) 0.0-1.57079632679490i) (num-test (asinh -0.0-1.0i) 0.0-1.57079632679490i) (num-test (asinh 0.0+3.14159265358979i) 1.81152627246085+1.57079632679490i) (num-test (asinh -0.0+3.14159265358979i) 1.81152627246085+1.57079632679490i) (num-test (asinh 0.0-3.14159265358979i) 1.81152627246085-1.57079632679490i) (num-test (asinh -0.0-3.14159265358979i) -1.81152627246085-1.57079632679490i) (num-test (asinh 0.0+2.71828182845905i) 1.65745445415308+1.57079632679490i) (num-test (asinh -0.0+2.71828182845905i) 1.65745445415308+1.57079632679490i) (num-test (asinh 0.0-2.71828182845905i) 1.65745445415308-1.57079632679490i) (num-test (asinh -0.0-2.71828182845905i) -1.65745445415308-1.57079632679490i) (num-test (asinh 0.0+1234.0i) 7.81116322084923+1.57079632679490i) (num-test (asinh -0.0+1234.0i) 7.81116322084923+1.57079632679490i) (num-test (asinh 0.0-1234.0i) 7.81116322084923-1.57079632679490i) (num-test (asinh -0.0-1234.0i) -7.81116322068415-1.57079632679490i) (num-test (asinh 0.0+1234000000.0i) 21.62667394298955+1.57079632679490i) (num-test (asinh -0.0+1234000000.0i) 21.62667394298955+1.57079632679490i) (num-test (asinh 0.0-1234000000.0i) 21.62667394298955-1.57079632679490i) (num-test (asinh 0.00000001+0.0i) 0.00000001) (num-test (asinh -0.00000001+0.0i) -0.00000001) (num-test (asinh 0.00000001-0.0i) 0.00000001) (num-test (asinh -0.00000001-0.0i) -0.00000001) (num-test (asinh 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (asinh -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (asinh 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (asinh -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (asinh 0.00000001+1.0i) 0.00010000000008+1.57069632679498i) (num-test (asinh -0.00000001+1.0i) -0.00010000000008+1.57069632679498i) (num-test (asinh 0.00000001-1.0i) 0.00010000000008-1.57069632679498i) (num-test (asinh -0.00000001-1.0i) -0.00010000000008-1.57069632679498i) (num-test (asinh 0.00000001+3.14159265358979i) 1.81152627246085+1.57079632343715i) (num-test (asinh -0.00000001+3.14159265358979i) -1.81152627246085+1.57079632343715i) (num-test (asinh 0.00000001-3.14159265358979i) 1.81152627246085-1.57079632343715i) (num-test (asinh -0.00000001-3.14159265358979i) -1.81152627246085-1.57079632343715i) (num-test (asinh 0.00000001+2.71828182845905i) 1.65745445415308+1.57079632283867i) (num-test (asinh -0.00000001+2.71828182845905i) -1.65745445415308+1.57079632283867i) (num-test (asinh 0.00000001-2.71828182845905i) 1.65745445415308-1.57079632283867i) (num-test (asinh -0.00000001-2.71828182845905i) -1.65745445415308-1.57079632283867i) (num-test (asinh 0.00000001+1234.0i) 7.81116322084923+1.57079632678679i) (num-test (asinh -0.00000001+1234.0i) -7.81116322068415+1.57079632678679i) (num-test (asinh 0.00000001-1234.0i) 7.81116322084923-1.57079632678679i) (num-test (asinh -0.00000001-1234.0i) -7.81116322068415-1.57079632678679i) (num-test (asinh 0.00000001+1234000000.0i) 21.62667394298955+1.57079632679490i) (num-test (asinh 0.00000001-1234000000.0i) 21.62667394298955-1.57079632679490i) (num-test (asinh 1.0+0.0i) 0.88137358701954) (num-test (asinh -1.0+0.0i) -0.88137358701954) (num-test (asinh 1.0-0.0i) 0.88137358701954) (num-test (asinh -1.0-0.0i) -0.88137358701954) (num-test (asinh 1.0+0.00000001i) 0.88137358701954+0.00000000707107i) (num-test (asinh -1.0+0.00000001i) -0.88137358701954+0.00000000707107i) (num-test (asinh 1.0-0.00000001i) 0.88137358701954-0.00000000707107i) (num-test (asinh -1.0-0.00000001i) -0.88137358701954-0.00000000707107i) (num-test (asinh 1.0+1.0i) 1.06127506190504+0.66623943249252i) (num-test (asinh -1.0+1.0i) -1.06127506190504+0.66623943249252i) (num-test (asinh 1.0-1.0i) 1.06127506190504-0.66623943249252i) (num-test (asinh -1.0-1.0i) -1.06127506190504-0.66623943249252i) (num-test (asinh 1.0+3.14159265358979i) 1.86711439316026+1.24854303281344i) (num-test (asinh -1.0+3.14159265358979i) -1.86711439316026+1.24854303281344i) (num-test (asinh 1.0-3.14159265358979i) 1.86711439316026-1.24854303281344i) (num-test (asinh -1.0-3.14159265358979i) -1.86711439316026-1.24854303281344i) (num-test (asinh 1.0+2.71828182845905i) 1.73375471569385+1.19757808518581i) (num-test (asinh -1.0+2.71828182845905i) -1.73375471569385+1.19757808518581i) (num-test (asinh 1.0-2.71828182845905i) 1.73375471569385-1.19757808518581i) (num-test (asinh -1.0-2.71828182845905i) -1.73375471569385-1.19757808518581i) (num-test (asinh 1.0+1234.0i) 7.81116354920146+1.56998595393473i) (num-test (asinh -1.0+1234.0i) -7.81116354944842+1.56998595393442i) (num-test (asinh 1.0-1234.0i) 7.81116354920146-1.56998595393473i) (num-test (asinh -1.0-1234.0i) -7.81116354944842-1.56998595393442i) (num-test (asinh 1.0+1234000000.0i) 21.62667394298955+1.57079632598452i) (num-test (asinh 1.0-1234000000.0i) 21.62667394298955-1.57079632598452i) (num-test (asinh 3.14159265358979+0.0i) 1.86229574331085) (num-test (asinh -3.14159265358979+0.0i) -1.86229574331085) (num-test (asinh 3.14159265358979-0.0i) 1.86229574331085) (num-test (asinh -3.14159265358979-0.0i) -1.86229574331085) (num-test (asinh 3.14159265358979+0.00000001i) 1.86229574331085+0.00000000303314i) (num-test (asinh -3.14159265358979+0.00000001i) -1.86229574331085+0.00000000303314i) (num-test (asinh 3.14159265358979-0.00000001i) 1.86229574331085-0.00000000303314i) (num-test (asinh -3.14159265358979-0.00000001i) -1.86229574331085-0.00000000303314i) (num-test (asinh 3.14159265358979+1.0i) 1.90462768697066+0.29558503421163i) (num-test (asinh -3.14159265358979+1.0i) -1.90462768697066+0.29558503421163i) (num-test (asinh 3.14159265358979-1.0i) 1.90462768697066-0.29558503421163i) (num-test (asinh -3.14159265358979-1.0i) -1.90462768697066-0.29558503421163i) (num-test (asinh 3.14159265358979+3.14159265358979i) 2.18469104082751+0.77273977912748i) (num-test (asinh -3.14159265358979+3.14159265358979i) -2.18469104082751+0.77273977912748i) (num-test (asinh 3.14159265358979-3.14159265358979i) 2.18469104082751-0.77273977912748i) (num-test (asinh -3.14159265358979-3.14159265358979i) -2.18469104082751-0.77273977912748i) (num-test (asinh 3.14159265358979+2.71828182845905i) 2.11968336368048+0.69904796994655i) (num-test (asinh -3.14159265358979+2.71828182845905i) -2.11968336368048+0.69904796994656i) (num-test (asinh 3.14159265358979-2.71828182845905i) 2.11968336368048-0.69904796994655i) (num-test (asinh -3.14159265358979-2.71828182845905i) -2.11968336368048-0.69904796994656i) (num-test (asinh 3.14159265358979+1234.0i) 7.81116646154641+1.56825047031367i) (num-test (asinh -3.14159265358979+1234.0i) -7.81116646138554+1.56825047031506i) (num-test (asinh 3.14159265358979-1234.0i) 7.81116646154641-1.56825047031367i) (num-test (asinh -3.14159265358979-1234.0i) -7.81116646138554-1.56825047031506i) (num-test (asinh 3.14159265358979+1234000000.0i) 21.62667394298955+1.57079632424904i) (num-test (asinh 3.14159265358979-1234000000.0i) 21.62667394298955-1.57079632424904i) (num-test (asinh 2.71828182845905+0.0i) 1.72538255885231) (num-test (asinh -2.71828182845905+0.0i) -1.72538255885232) (num-test (asinh 2.71828182845905-0.0i) 1.72538255885231) (num-test (asinh -2.71828182845905-0.0i) -1.72538255885232) (num-test (asinh 2.71828182845905+0.00000001i) 1.72538255885231+0.00000000345258i) (num-test (asinh -2.71828182845905+0.00000001i) -1.72538255885232+0.00000000345258i) (num-test (asinh 2.71828182845905-0.00000001i) 1.72538255885231-0.00000000345258i) (num-test (asinh -2.71828182845905-0.00000001i) -1.72538255885232-0.00000000345258i) (num-test (asinh 2.71828182845905+1.0i) 1.77905438385935+0.33444277187637i) (num-test (asinh -2.71828182845905+1.0i) -1.77905438385935+0.33444277187637i) (num-test (asinh 2.71828182845905-1.0i) 1.77905438385935-0.33444277187637i) (num-test (asinh -2.71828182845905-1.0i) -1.77905438385935-0.33444277187637i) (num-test (asinh 2.71828182845905+3.14159265358979i) 2.11552790803290+0.84309656416035i) (num-test (asinh -2.71828182845905+3.14159265358979i) -2.11552790803290+0.84309656416035i) (num-test (asinh 2.71828182845905-3.14159265358979i) 2.11552790803290-0.84309656416035i) (num-test (asinh -2.71828182845905-3.14159265358979i) -2.11552790803290-0.84309656416035i) (num-test (asinh 2.71828182845905+2.71828182845905i) 2.04014932880026+0.76849735588475i) (num-test (asinh -2.71828182845905+2.71828182845905i) -2.04014932880026+0.76849735588475i) (num-test (asinh 2.71828182845905-2.71828182845905i) 2.04014932880026-0.76849735588475i) (num-test (asinh -2.71828182845905-2.71828182845905i) -2.04014932880026-0.76849735588475i) (num-test (asinh 2.71828182845905+1234.0i) 7.81116564705719+1.56859350805562i) (num-test (asinh -2.71828182845905+1234.0i) -7.81116564738434+1.56859350805543i) (num-test (asinh 2.71828182845905-1234.0i) 7.81116564705719-1.56859350805562i) (num-test (asinh -2.71828182845905-1234.0i) -7.81116564738434-1.56859350805543i) (num-test (asinh 2.71828182845905+1234000000.0i) 21.62667394298955+1.57079632459208i) (num-test (asinh 2.71828182845905-1234000000.0i) 21.62667394298955-1.57079632459208i) (num-test (asinh 1234.0+0.0i) 7.81116354920125) (num-test (asinh -1234.0+0.0i) -7.81116354896171) (num-test (asinh 1234.0-0.0i) 7.81116354920125) (num-test (asinh -1234.0-0.0i) -7.81116354896171) (num-test (asinh 1234.0+0.00000001i) 7.81116354920125+0.00000000000810i) (num-test (asinh -1234.0+0.00000001i) -7.81116354896171+0.00000000000810i) (num-test (asinh 1234.0-0.00000001i) 7.81116354920125-0.00000000000810i) (num-test (asinh -1234.0-0.00000001i) -7.81116354896171-0.00000000000810i) (num-test (asinh 1234.0+1.0i) 7.81116387755283+0.00081037232800i) (num-test (asinh -1234.0+1.0i) -7.81116387772663+0.00081037232806i) (num-test (asinh 1234.0-1.0i) 7.81116387755283-0.00081037232800i) (num-test (asinh -1234.0-1.0i) -7.81116387772663-0.00081037232806i) (num-test (asinh 1234.0+3.14159265358979i) 7.81116678989204+0.00254585480937i) (num-test (asinh -1234.0+3.14159265358979i) -7.81116678966949+0.00254585480900i) (num-test (asinh 1234.0-3.14159265358979i) 7.81116678989204-0.00254585480937i) (num-test (asinh -1234.0-3.14159265358979i) -7.81116678966949-0.00254585480900i) (num-test (asinh 1234.0+2.71828182845905i) 7.81116597540442+0.00220281729269i) (num-test (asinh -1234.0+2.71828182845905i) -7.81116597510553+0.00220281729236i) (num-test (asinh 1234.0-2.71828182845905i) 7.81116597540442-0.00220281729269i) (num-test (asinh -1234.0-2.71828182845905i) -7.81116597510553-0.00220281729236i) (num-test (asinh 1234.0+1234.0i) 8.15773697530526+0.78539808130944i) (num-test (asinh -1234.0+1234.0i) -8.15773697538346+0.78539808146835i) (num-test (asinh 1234.0-1234.0i) 8.15773697530526-0.78539808130944i) (num-test (asinh -1234.0-1234.0i) -8.15773697538346-0.78539808146835i) (num-test (asinh 1234.0+1234000000.0i) 21.62667394299005+1.57079532679490i) (num-test (asinh 1234.0-1234000000.0i) 21.62667394299005-1.57079532679490i) (num-test (asinh 1234000000.0+0.0i) 21.62667394298955) (num-test (asinh 1234000000.0-0.0i) 21.62667394298955) (num-test (asinh 1234000000.0+0.00000001i) 21.62667394298955+0.0i) (num-test (asinh 1234000000.0-0.00000001i) 21.62667394298955-0.0i) (num-test (asinh 1234000000.0+1.0i) 21.62667394298955+0.00000000081037i) (num-test (asinh 1234000000.0-1.0i) 21.62667394298955-0.00000000081037i) (num-test (asinh 1234000000.0+3.14159265358979i) 21.62667394298955+0.00000000254586i) (num-test (asinh 1234000000.0-3.14159265358979i) 21.62667394298955-0.00000000254586i) (num-test (asinh 1234000000.0+2.71828182845905i) 21.62667394298955+0.00000000220282i) (num-test (asinh 1234000000.0-2.71828182845905i) 21.62667394298955-0.00000000220282i) (num-test (asinh 1234000000.0+1234.0i) 21.62667394299005+0.00000100000000i) (num-test (asinh 1234000000.0-1234.0i) 21.62667394299005-0.00000100000000i) (num-test (asinh 1234000000.0+1234000000.0i) 21.97324753326953+0.78539816339745i) (num-test (asinh 1234000000.0-1234000000.0i) 21.97324753326953-0.78539816339745i) (num-test (asinh -1234000000/3) -20.52806165432143) (num-test (asinh -500029/2) -13.12242137572639) (num-test (asinh 0.00000001+1234000000.0i) +21.62667394298955+1.570796327200083i) (num-test (asinh 3.14159265358979+1234000000.0i) +21.62667394298955+1.570796327200083i) (num-test (asinh 2.71828182845905+1234000000.0i) +21.62667394298955+1.570796327200083i) (num-test (asinh 1234000000.0+0.00000001i) +21.62667380877375+8.103725052149596E-18i) (num-test (asinh 1234000000.0+2.71828182845905i) +21.62667380877375+2.2028207814967068E-9i) (num-test (asinh 0.0e+00+0.0e+00i) 0e0+0.0i) (num-test (asinh 0.0e+00+1.19209289550781250e-07i) 0+1.1920928955078153234e-7i) (num-test (asinh 0.0e+00-1.19209289550781250e-07i) 0-1.1920928955078153234e-7i) (num-test (asinh 0.0e+00+5.0e-01i) 0+5.2359877559829887308e-1i) (num-test (asinh 0.0e+00-5.0e-01i) 0-5.2359877559829887308e-1i) (num-test (asinh 0.0e+00+1.0e+00i) 0+1.5707963267948966192e0i) (num-test (asinh 0.0e+00-1.0e+00i) 0-1.5707963267948966192e0i) (num-test (asinh 0.0e+00+2.0e+00i) 1.3169578969248167086e0+1.5707963267948966192e0i) (num-test (asinh 0.0e+00-2.0e+00i) -1.3169578969248167086e0-1.5707963267948966192e0i) (num-test (asinh 0.0e+00+8.3886080e+06i) 1.6635532333438683873e1+1.5707963267948966192e0i) (num-test (asinh 0.0e+00-8.3886080e+06i) -1.6635532333438683873e1-1.5707963267948966192e0i) (num-test (asinh 1.19209289550781250e-07+0.0e+00i) 1.1920928955078096766e-7+0.0i) (num-test (asinh -1.19209289550781250e-07+0.0e+00i) -1.1920928955078096766e-7+0.0i) (num-test (asinh 1.19209289550781250e-07+1.19209289550781250e-07i) 1.1920928955078181469e-7+1.1920928955078068531e-7i) (num-test (asinh 1.19209289550781250e-07-1.19209289550781250e-07i) 1.1920928955078181469e-7-1.1920928955078068531e-7i) (num-test (asinh -1.19209289550781250e-07+1.19209289550781250e-07i) -1.1920928955078181469e-7+1.1920928955078068531e-7i) (num-test (asinh -1.19209289550781250e-07-1.19209289550781250e-07i) -1.1920928955078181469e-7-1.1920928955078068531e-7i) (num-test (asinh 1.19209289550781250e-07+5.0e-01i) 1.3765103082409432364e-7+5.2359877559829340332e-1i) (num-test (asinh 1.19209289550781250e-07-5.0e-01i) 1.3765103082409432364e-7-5.2359877559829340332e-1i) (num-test (asinh -1.19209289550781250e-07+5.0e-01i) -1.3765103082409432364e-7+5.2359877559829340332e-1i) (num-test (asinh -1.19209289550781250e-07-5.0e-01i) -1.3765103082409432364e-7-5.2359877559829340332e-1i) (num-test (asinh 1.19209289550781250e-07+1.0e+00i) 3.4526698643116312881e-4+1.5704510598153252947e0i) (num-test (asinh 1.19209289550781250e-07-1.0e+00i) 3.4526698643116312881e-4-1.5704510598153252947e0i) (num-test (asinh -1.19209289550781250e-07+1.0e+00i) -3.4526698643116312881e-4+1.5704510598153252947e0i) (num-test (asinh -1.19209289550781250e-07-1.0e+00i) -3.4526698643116312881e-4-1.5704510598153252947e0i) (num-test (asinh 1.19209289550781250e-07+2.0e+00i) 1.3169578969248194435e0+1.5707962579693812072e0i) (num-test (asinh 1.19209289550781250e-07-2.0e+00i) 1.3169578969248194435e0-1.5707962579693812072e0i) (num-test (asinh -1.19209289550781250e-07+2.0e+00i) -1.3169578969248194435e0+1.5707962579693812072e0i) (num-test (asinh -1.19209289550781250e-07-2.0e+00i) -1.3169578969248194435e0-1.5707962579693812072e0i) (num-test (asinh 1.19209289550781250e-07+8.3886080e+06i) 1.6635532333438683873e1+1.5707963267948824084e0i) (num-test (asinh 1.19209289550781250e-07-8.3886080e+06i) 1.6635532333438683873e1-1.5707963267948824084e0i) (num-test (asinh -1.19209289550781250e-07+8.3886080e+06i) -1.6635532333438683873e1+1.5707963267948824084e0i) (num-test (asinh -1.19209289550781250e-07-8.3886080e+06i) -1.6635532333438683873e1-1.5707963267948824084e0i) (num-test (asinh 5.0e-01+0.0e+00i) 4.8121182505960344750e-1+0.0i) (num-test (asinh -5.0e-01+0.0e+00i) -4.8121182505960344750e-1+0.0i) (num-test (asinh 5.0e-01+1.19209289550781250e-07i) 4.8121182505960598961e-1+1.0662402999400097805e-7i) (num-test (asinh 5.0e-01-1.19209289550781250e-07i) 4.8121182505960598961e-1-1.0662402999400097805e-7i) (num-test (asinh -5.0e-01+1.19209289550781250e-07i) -4.8121182505960598961e-1+1.0662402999400097805e-7i) (num-test (asinh -5.0e-01-1.19209289550781250e-07i) -4.8121182505960598961e-1-1.0662402999400097805e-7i) (num-test (asinh 5.0e-01+5.0e-01i) 5.3063753095251782602e-1+4.5227844715119068206e-1i) (num-test (asinh 5.0e-01-5.0e-01i) 5.3063753095251782602e-1-4.5227844715119068206e-1i) (num-test (asinh -5.0e-01+5.0e-01i) -5.3063753095251782602e-1+4.5227844715119068206e-1i) (num-test (asinh -5.0e-01-5.0e-01i) -5.3063753095251782602e-1-4.5227844715119068206e-1i) (num-test (asinh 5.0e-01+1.0e+00i) 7.3285767597364526089e-1+8.9590748120889023907e-1i) (num-test (asinh 5.0e-01-1.0e+00i) 7.3285767597364526089e-1-8.9590748120889023907e-1i) (num-test (asinh -5.0e-01+1.0e+00i) -7.3285767597364526089e-1+8.9590748120889023907e-1i) (num-test (asinh -5.0e-01-1.0e+00i) -7.3285767597364526089e-1-8.9590748120889023907e-1i) (num-test (asinh 5.0e-01+2.0e+00i) 1.3618009008578457882e0+1.2930420702371826591e0i) (num-test (asinh 5.0e-01-2.0e+00i) 1.3618009008578457882e0-1.2930420702371826591e0i) (num-test (asinh -5.0e-01+2.0e+00i) -1.3618009008578457882e0+1.2930420702371826591e0i) (num-test (asinh -5.0e-01-2.0e+00i) -1.3618009008578457882e0-1.2930420702371826591e0i) (num-test (asinh 5.0e-01+8.3886080e+06i) 1.6635532333438685650e1+1.5707962671902518438e0i) (num-test (asinh 5.0e-01-8.3886080e+06i) 1.6635532333438685650e1-1.5707962671902518438e0i) (num-test (asinh -5.0e-01+8.3886080e+06i) -1.6635532333438685650e1+1.5707962671902518438e0i) (num-test (asinh -5.0e-01-8.3886080e+06i) -1.6635532333438685650e1-1.5707962671902518438e0i) (num-test (asinh 1.0e+00+0.0e+00i) 8.8137358701954302523e-1+0.0i) (num-test (asinh -1.0e+00+0.0e+00i) -8.8137358701954302523e-1+0.0i) (num-test (asinh 1.0e+00+1.19209289550781250e-07i) 8.8137358701954553738e-1+8.4293697021788013662e-8i) (num-test (asinh 1.0e+00-1.19209289550781250e-07i) 8.8137358701954553738e-1-8.4293697021788013662e-8i) (num-test (asinh -1.0e+00+1.19209289550781250e-07i) -8.8137358701954553738e-1+8.4293697021788013662e-8i) (num-test (asinh -1.0e+00-1.19209289550781250e-07i) -8.8137358701954553738e-1-8.4293697021788013662e-8i) (num-test (asinh 1.0e+00+5.0e-01i) 9.2613303135018242455e-1+3.4943906285721329363e-1i) (num-test (asinh 1.0e+00-5.0e-01i) 9.2613303135018242455e-1-3.4943906285721329363e-1i) (num-test (asinh -1.0e+00+5.0e-01i) -9.2613303135018242455e-1+3.4943906285721329363e-1i) (num-test (asinh -1.0e+00-5.0e-01i) -9.2613303135018242455e-1-3.4943906285721329363e-1i) (num-test (asinh 1.0e+00+1.0e+00i) 1.0612750619050356520e0+6.6623943249251525510e-1i) (num-test (asinh 1.0e+00-1.0e+00i) 1.0612750619050356520e0-6.6623943249251525510e-1i) (num-test (asinh -1.0e+00+1.0e+00i) -1.0612750619050356520e0+6.6623943249251525510e-1i) (num-test (asinh -1.0e+00-1.0e+00i) -1.0612750619050356520e0-6.6623943249251525510e-1i) (num-test (asinh 1.0e+00+2.0e+00i) 1.4693517443681852733e0+1.0634400235777520562e0i) (num-test (asinh 1.0e+00-2.0e+00i) 1.4693517443681852733e0-1.0634400235777520562e0i) (num-test (asinh -1.0e+00+2.0e+00i) -1.4693517443681852733e0+1.0634400235777520562e0i) (num-test (asinh -1.0e+00-2.0e+00i) -1.4693517443681852733e0-1.0634400235777520562e0i) (num-test (asinh 1.0e+00+8.3886080e+06i) 1.6635532333438690979e1+1.5707962075856070684e0i) (num-test (asinh 1.0e+00-8.3886080e+06i) 1.6635532333438690979e1-1.5707962075856070684e0i) (num-test (asinh -1.0e+00+8.3886080e+06i) -1.6635532333438690979e1+1.5707962075856070684e0i) (num-test (asinh -1.0e+00-8.3886080e+06i) -1.6635532333438690979e1-1.5707962075856070684e0i) (num-test (asinh 2.0e+00+0.0e+00i) 1.4436354751788103425e0+0.0i) (num-test (asinh -2.0e+00+0.0e+00i) -1.4436354751788103425e0+0.0i) (num-test (asinh 2.0e+00+1.19209289550781250e-07i) 1.4436354751788116136e0+5.3312014997000413263e-8i) (num-test (asinh 2.0e+00-1.19209289550781250e-07i) 1.4436354751788116136e0-5.3312014997000413263e-8i) (num-test (asinh -2.0e+00+1.19209289550781250e-07i) -1.4436354751788116136e0+5.3312014997000413263e-8i) (num-test (asinh -2.0e+00-1.19209289550781250e-07i) -1.4436354751788116136e0-5.3312014997000413263e-8i) (num-test (asinh 2.0e+00+5.0e-01i) 1.4657153519472905218e0+2.2101863562288385890e-1i) (num-test (asinh 2.0e+00-5.0e-01i) 1.4657153519472905218e0-2.2101863562288385890e-1i) (num-test (asinh -2.0e+00+5.0e-01i) -1.4657153519472905218e0+2.2101863562288385890e-1i) (num-test (asinh -2.0e+00-5.0e-01i) -1.4657153519472905218e0-2.2101863562288385890e-1i) (num-test (asinh 2.0e+00+1.0e+00i) 1.5285709194809981613e0+4.2707858639247612548e-1i) (num-test (asinh 2.0e+00-1.0e+00i) 1.5285709194809981613e0-4.2707858639247612548e-1i) (num-test (asinh -2.0e+00+1.0e+00i) -1.5285709194809981613e0+4.2707858639247612548e-1i) (num-test (asinh -2.0e+00-1.0e+00i) -1.5285709194809981613e0-4.2707858639247612548e-1i) (num-test (asinh 2.0e+00+2.0e+00i) 1.7343245214879664480e0+7.5424914469804604071e-1i) (num-test (asinh 2.0e+00-2.0e+00i) 1.7343245214879664480e0-7.5424914469804604071e-1i) (num-test (asinh -2.0e+00+2.0e+00i) -1.7343245214879664480e0+7.5424914469804604071e-1i) (num-test (asinh -2.0e+00-2.0e+00i) -1.7343245214879664480e0-7.5424914469804604071e-1i) (num-test (asinh 2.0e+00+8.3886080e+06i) 1.6635532333438712295e1+1.5707960883763175177e0i) (num-test (asinh 2.0e+00-8.3886080e+06i) 1.6635532333438712295e1-1.5707960883763175177e0i) (num-test (asinh -2.0e+00+8.3886080e+06i) -1.6635532333438712295e1+1.5707960883763175177e0i) (num-test (asinh -2.0e+00-8.3886080e+06i) -1.6635532333438712295e1-1.5707960883763175177e0i) (num-test (asinh 8.3886080e+06+0.0e+00i) 1.6635532333438690979e1+0.0i) (num-test (asinh -8.3886080e+06+0.0e+00i) -1.6635532333438690979e1+0.0i) (num-test (asinh 8.3886080e+06+1.19209289550781250e-07i) 1.6635532333438690979e1+1.4210854715201902743e-14i) (num-test (asinh 8.3886080e+06-1.19209289550781250e-07i) 1.6635532333438690979e1-1.4210854715201902743e-14i) (num-test (asinh -8.3886080e+06+1.19209289550781250e-07i) -1.6635532333438690979e1+1.4210854715201902743e-14i) (num-test (asinh -8.3886080e+06-1.19209289550781250e-07i) -1.6635532333438690979e1-1.4210854715201902743e-14i) (num-test (asinh 8.3886080e+06+5.0e-01i) 1.6635532333438692755e1+5.9604644775390130897e-8i) (num-test (asinh 8.3886080e+06-5.0e-01i) 1.6635532333438692755e1-5.9604644775390130897e-8i) (num-test (asinh -8.3886080e+06+5.0e-01i) -1.6635532333438692755e1+5.9604644775390130897e-8i) (num-test (asinh -8.3886080e+06-5.0e-01i) -1.6635532333438692755e1-5.9604644775390130897e-8i) (num-test (asinh 8.3886080e+06+1.0e+00i) 1.6635532333438698084e1+1.1920928955077983828e-7i) (num-test (asinh 8.3886080e+06-1.0e+00i) 1.6635532333438698084e1-1.1920928955077983828e-7i) (num-test (asinh -8.3886080e+06+1.0e+00i) -1.6635532333438698084e1+1.1920928955077983828e-7i) (num-test (asinh -8.3886080e+06-1.0e+00i) -1.6635532333438698084e1-1.1920928955077983828e-7i) (num-test (asinh 8.3886080e+06+2.0e+00i) 1.663553233343871940e1+2.3841857910155628843e-7i) (num-test (asinh 8.3886080e+06-2.0e+00i) 1.663553233343871940e1-2.3841857910155628843e-7i) (num-test (asinh -8.3886080e+06+2.0e+00i) -1.663553233343871940e1+2.3841857910155628843e-7i) (num-test (asinh -8.3886080e+06-2.0e+00i) -1.663553233343871940e1-2.3841857910155628843e-7i) (num-test (asinh 8.3886080e+06+8.3886080e+06i) 1.6982105923718660081e1+7.8539816339744653326e-1i) (num-test (asinh 8.3886080e+06-8.3886080e+06i) 1.6982105923718660081e1-7.8539816339744653326e-1i) (num-test (asinh -8.3886080e+06+8.3886080e+06i) -1.6982105923718660081e1+7.8539816339744653326e-1i) (num-test (asinh -8.3886080e+06-8.3886080e+06i) -1.6982105923718660081e1-7.8539816339744653326e-1i) ;; -------- acosh (num-test (acosh 0) 0.0+1.57079632679490i) (num-test (acosh 1) 0.0) (num-test (acosh -1) 0.0+3.14159265358979i) (num-test (acosh 2) 1.31695789692482) (num-test (acosh -2) 1.31695789692482+3.14159265358979i) (num-test (acosh 3) 1.76274717403909) (num-test (acosh -3) 1.76274717403909+3.14159265358979i) (num-test (acosh 10) 2.99322284612638) (num-test (acosh -10) 2.99322284612638+3.14159265358979i) (num-test (acosh 1234) 7.81116322084923) (num-test (acosh -1234) 7.81116322084923+3.14159265358979i) (num-test (acosh 1234000000) 21.62667394298955) (num-test (acosh -1234000000) 21.62667394298955+3.14159265358979i) (num-test (acosh 500029) 13.81556855628134) (num-test (acosh -500029) 13.81556855628134+3.14159265358979i) (num-test (acosh 362880) 13.49497466063952) (num-test (acosh -362880) 13.49497466063952+3.14159265358979i) (num-test (acosh 0/1) 0.0+1.57079632679490i) (num-test (acosh 0/2) 0.0+1.57079632679490i) (num-test (acosh 0/3) 0.0+1.57079632679490i) (num-test (acosh 0/10) 0.0+1.57079632679490i) (num-test (acosh 0/1234) 0.0+1.57079632679490i) (num-test (acosh 0/1234000000) 0.0+1.57079632679490i) (num-test (acosh 0/500029) 0.0+1.57079632679490i) (num-test (acosh 0/362880) 0.0+1.57079632679490i) (num-test (acosh 1/1) 0.0) (num-test (acosh -1/1) 0.0+3.14159265358979i) (num-test (acosh 1/2) 0.0+1.04719755119660i) (num-test (acosh -1/2) 0.0+2.09439510239320i) (num-test (acosh 1/3) 0.0+1.23095941734077i) (num-test (acosh -1/3) 0.0+1.91063323624902i) (num-test (acosh 1/10) 0.0+1.47062890563334i) (num-test (acosh -1/10) 0.0+1.67096374795646i) (num-test (acosh 1/1234) 0.0+1.56998595393473i) (num-test (acosh -1/1234) 0.0+1.57160669965507i) (num-test (acosh 1/1234000000) 0.0+1.57079632598452i) (num-test (acosh -1/1234000000) 0.0+1.57079632760527i) (num-test (acosh 1/500029) 0.0+1.57079432691089i) (num-test (acosh -1/500029) 0.0+1.57079832667890i) (num-test (acosh 1/362880) 0.0+1.57079357106297i) (num-test (acosh -1/362880) 0.0+1.57079908252682i) (num-test (acosh 2/1) 1.31695789692482) (num-test (acosh -2/1) 1.31695789692482+3.14159265358979i) (num-test (acosh 2/2) 0.0) (num-test (acosh -2/2) 0.0+3.14159265358979i) (num-test (acosh 2/3) 0.0+0.84106867056793i) (num-test (acosh -2/3) 0.0+2.30052398302186i) (num-test (acosh 2/10) 0.0+1.36943840600457i) (num-test (acosh -2/10) 0.0+1.77215424758523i) (num-test (acosh 2/1234) 0.0+1.56917558054238i) (num-test (acosh -2/1234) 0.0+1.57241707304741i) (num-test (acosh 2/1234000000) 0.0+1.57079632517415i) (num-test (acosh -2/1234000000) 0.0+1.57079632841564i) (num-test (acosh 2/500029) 0.0+1.57079232702688i) (num-test (acosh -2/500029) 0.0+1.57080032656291i) (num-test (acosh 2/362880) 0.0+1.57079081533105i) (num-test (acosh -2/362880) 0.0+1.57080183825874i) (num-test (acosh 3/1) 1.76274717403909) (num-test (acosh -3/1) 1.76274717403909+3.14159265358979i) (num-test (acosh 3/2) 0.96242365011921) (num-test (acosh -3/2) 0.96242365011921+3.14159265358979i) (num-test (acosh 3/3) 0.0) (num-test (acosh -3/3) 0.0+3.14159265358979i) (num-test (acosh 3/10) 0.0+1.26610367277950i) (num-test (acosh -3/10) 0.0+1.87548898081029i) (num-test (acosh 3/1234) 0.0+1.56836520608568i) (num-test (acosh -3/1234) 0.0+1.57322744750412i) (num-test (acosh 3/1234000000) 0.0+1.57079632436378i) (num-test (acosh -3/1234000000) 0.0+1.57079632922601i) (num-test (acosh 3/500029) 0.0+1.57079032714288i) (num-test (acosh -3/500029) 0.0+1.57080232644692i) (num-test (acosh 3/362880) 0.0-1.57078805959913i) (num-test (acosh -3/362880) 0.0-1.57080459399066i) (num-test (acosh 10/1) 2.99322284612638) (num-test (acosh -10/1) 2.99322284612638+3.14159265358979i) (num-test (acosh 10/2) 2.29243166956118) (num-test (acosh -10/2) 2.29243166956118+3.14159265358979i) (num-test (acosh 10/3) 1.87382024252741) (num-test (acosh -10/3) 1.87382024252741+3.14159265358979i) (num-test (acosh 10/10) 0.0) (num-test (acosh -10/10) 0.0+3.14159265358979i) (num-test (acosh 10/1234) 0.0+1.56269251038168i) (num-test (acosh -10/1234) 0.0+1.57890014320811i) (num-test (acosh 10/1234000000) 0.0+1.57079631869117i) (num-test (acosh -10/1234000000) 0.0+1.57079633489862i) (num-test (acosh 10/500029) 0.0+1.57077632795483i) (num-test (acosh -10/500029) 0.0+1.57081632563497i) (num-test (acosh 10/362880) 0.0+1.57076876947567i) (num-test (acosh -10/362880) 0.0+1.57082388411412i) (num-test (acosh 1234/1) 7.81116322084923) (num-test (acosh -1234/1) 7.81116322084923+3.14159265358979i) (num-test (acosh 1234/2) 7.11801554776066) (num-test (acosh -1234/2) 7.11801554776066+3.14159265358979i) (num-test (acosh 1234/3) 6.71254961876983) (num-test (acosh -1234/3) 6.71254961876983+3.14159265358979i) (num-test (acosh 1234/10) 5.50856187402619) (num-test (acosh -1234/10) 5.50856187402619+3.14159265358979i) (num-test (acosh 1234/1234) 0.0) (num-test (acosh -1234/1234) 0.0+3.14159265358979i) (num-test (acosh 1234/1234000000) 0.0+1.57079532679490i) (num-test (acosh -1234/1234000000) 0.0+1.57079732679490i) (num-test (acosh 1234/500029) 0.0+1.56832846742558i) (num-test (acosh -1234/500029) 0.0+1.57326418616421i) (num-test (acosh 1234/362880) 0.0+1.56739574704864i) (num-test (acosh -1234/362880) 0.0+1.57419690654115i) (num-test (acosh 1234000000/1) 21.62667394298955) (num-test (acosh -1234000000/1) 21.62667394298955+3.14159265358979i) (num-test (acosh 1234000000/2) 20.93352676242961) (num-test (acosh -1234000000/2) 20.93352676242961+3.14159265358979i) (num-test (acosh 1234000000/3) 20.52806165432144) (num-test (acosh -1234000000/3) 20.52806165432144+3.14159265358979i) (num-test (acosh 1234000000/10) 19.32408884999551) (num-test (acosh -1234000000/10) 19.32408884999551+3.14159265358979i) (num-test (acosh 1234000000/1234) 14.50865773852397) (num-test (acosh -1234000000/1234) 14.50865773852397+3.14159265358979i) (num-test (acosh 1234000000/1234000000) 0.0) (num-test (acosh -1234000000/1234000000) 0.0+3.14159265358979i) (num-test (acosh 1234000000/500029) 8.50425252621839) (num-test (acosh -1234000000/500029) 8.50425252621839+3.14159265358979i) (num-test (acosh 1234000000/362880) 8.82484644128907) (num-test (acosh -1234000000/362880) 8.82484644128907+3.14159265358979i) (num-test (acosh 500029/1) 13.81556855628134) (num-test (acosh -500029/1) 13.81556855628134+3.14159265358979i) (num-test (acosh 500029/2) 13.12242137571839) (num-test (acosh -500029/2) 13.12242137571839+3.14159265358979i) (num-test (acosh 500029/3) 12.71695626760523) (num-test (acosh -500029/3) 12.71695626760523+3.14159265358979i) (num-test (acosh 500029/10) 11.51298346318831) (num-test (acosh -500029/10) 11.51298346318831+3.14159265358979i) (num-test (acosh 500029/1234) 6.69755082923415) (num-test (acosh -500029/1234) 6.69755082923415+3.14159265358979i) (num-test (acosh 500029/1234000000) 0.0+1.57039111689726i) (num-test (acosh -500029/1234000000) 0.0+1.57120153669253i) (num-test (acosh 500029/500029) 0.0) (num-test (acosh -500029/500029) 0.0+3.14159265358979i) (num-test (acosh 500029/362880) 0.84413377868249) (num-test (acosh -500029/362880) 0.84413377868249+3.14159265358979i) (num-test (acosh 362880/1) 13.49497466063952) (num-test (acosh -362880/1) 13.49497466063952+3.14159265358979i) (num-test (acosh 362880/2) 12.80182748007388) (num-test (acosh -362880/2) 12.80182748007388+3.14159265358979i) (num-test (acosh 362880/3) 12.39636237195622) (num-test (acosh -362880/3) 12.39636237195622+3.14159265358979i) (num-test (acosh 362880/10) 11.19238956745752) (num-test (acosh -362880/10) 11.19238956745752+3.14159265358979i) (num-test (acosh 362880/1234) 6.37695556518904) (num-test (acosh -362880/1234) 6.37695556518904+3.14159265358979i) (num-test (acosh 362880/1234000000) 0.0+1.57050225871935i) (num-test (acosh -362880/1234000000) 0.0+1.57109039487045i) (num-test (acosh 362880/500029) 0.0+0.75871902295910i) (num-test (acosh -362880/500029) 0.0+2.38287363063069i) (num-test (acosh 362880/362880) 0.0) (num-test (acosh -362880/362880) 0.0+3.14159265358979i) (num-test (acosh 0.0) 0.0+1.57079632679490i) (num-test (acosh 0.00000001) 0.0+1.57079631679490i) (num-test (acosh -0.00000001) 0.0+1.57079633679490i) (num-test (acosh 1.0) 0.0) (num-test (acosh -1.0) 0.0+3.14159265358979i) (num-test (acosh our-pi) 1.81152627246085) (num-test (acosh -3.14159265358979) 1.81152627246085+3.14159265358979i) (num-test (acosh 2.71828182845905) 1.65745445415308) (num-test (acosh -2.71828182845905) 1.65745445415308+3.14159265358979i) (num-test (acosh 1234.0) 7.81116322084923) (num-test (acosh -1234.0) 7.81116322084923+3.14159265358979i) (num-test (acosh 1234000000.0) 21.62667394298955) (num-test (acosh -1234000000.0) 21.62667394298955+3.14159265358979i) (num-test (acosh 0.0+0.0i) 0.0+1.57079632679490i) (num-test (acosh -0.0+0.0i) 0.0+1.57079632679490i) (num-test (acosh 0.0-0.0i) 0.0+1.57079632679490i) (num-test (acosh -0.0-0.0i) 0.0+1.57079632679490i) (num-test (acosh 0.0+0.00000001i) 0.00000001+1.57079632679490i) (num-test (acosh -0.0+0.00000001i) 0.00000001+1.57079632679490i) (num-test (acosh 0.0-0.00000001i) 0.00000001-1.57079632679490i) (num-test (acosh -0.0-0.00000001i) 0.00000001-1.57079632679490i) (num-test (acosh 0.0+1.0i) 0.88137358701954+1.57079632679490i) (num-test (acosh -0.0+1.0i) 0.88137358701954+1.57079632679490i) (num-test (acosh 0.0-1.0i) 0.88137358701954-1.57079632679490i) (num-test (acosh -0.0-1.0i) 0.88137358701954-1.57079632679490i) (num-test (acosh 0.0+3.14159265358979i) 1.86229574331085+1.57079632679490i) (num-test (acosh -0.0+3.14159265358979i) 1.86229574331085+1.57079632679490i) (num-test (acosh 0.0-3.14159265358979i) 1.86229574331085-1.57079632679490i) (num-test (acosh -0.0-3.14159265358979i) 1.86229574331085-1.57079632679490i) (num-test (acosh 0.0+2.71828182845905i) 1.72538255885231+1.57079632679490i) (num-test (acosh -0.0+2.71828182845905i) 1.72538255885231+1.57079632679490i) (num-test (acosh 0.0-2.71828182845905i) 1.72538255885231-1.57079632679490i) (num-test (acosh -0.0-2.71828182845905i) 1.72538255885232-1.57079632679490i) (num-test (acosh 0.0+1234.0i) 7.81116354920125+1.57079632679490i) (num-test (acosh -0.0+1234.0i) 7.81116354920125+1.57079632679490i) (num-test (acosh 0.0-1234.0i) 7.81116354920125-1.57079632679490i) (num-test (acosh -0.0-1234.0i) 7.81116354896171-1.57079632679490i) (num-test (acosh 0.0+1234000000.0i) 21.62667394298955+1.57079632679490i) (num-test (acosh -0.0+1234000000.0i) 21.62667394298955+1.57079632679490i) (num-test (acosh 0.0-1234000000.0i) 21.62667394298955-1.57079632679490i) (num-test (acosh 0.00000001+0.0i) 0.0+1.57079631679490i) (num-test (acosh -0.00000001+0.0i) 0.0+1.57079633679490i) (num-test (acosh 0.00000001-0.0i) 0.0+1.57079631679490i) (num-test (acosh -0.00000001-0.0i) 0.0+1.57079633679490i) (num-test (acosh 0.00000001+0.00000001i) 0.00000001+1.57079631679490i) (num-test (acosh -0.00000001+0.00000001i) 0.00000001+1.57079633679490i) (num-test (acosh 0.00000001-0.00000001i) 0.00000001-1.57079631679490i) (num-test (acosh -0.00000001-0.00000001i) 0.00000001-1.57079633679490i) (num-test (acosh 0.00000001+1.0i) 0.88137358701954+1.57079631972383i) (num-test (acosh -0.00000001+1.0i) 0.88137358701954+1.57079633386596i) (num-test (acosh 0.00000001-1.0i) 0.88137358701954-1.57079631972383i) (num-test (acosh -0.00000001-1.0i) 0.88137358701954-1.57079633386596i) (num-test (acosh 0.00000001+3.14159265358979i) 1.86229574331085+1.57079632376175i) (num-test (acosh -0.00000001+3.14159265358979i) 1.86229574331085+1.57079632982804i) (num-test (acosh 0.00000001-3.14159265358979i) 1.86229574331085-1.57079632376175i) (num-test (acosh -0.00000001-3.14159265358979i) 1.86229574331085-1.57079632982804i) (num-test (acosh 0.00000001+2.71828182845905i) 1.72538255885231+1.57079632334232i) (num-test (acosh -0.00000001+2.71828182845905i) 1.72538255885231+1.57079633024747i) (num-test (acosh 0.00000001-2.71828182845905i) 1.72538255885231-1.57079632334232i) (num-test (acosh -0.00000001-2.71828182845905i) 1.72538255885231-1.57079633024747i) (num-test (acosh 0.00000001+1234.0i) 7.81116354920125+1.57079632678679i) (num-test (acosh -0.00000001+1234.0i) 7.81116354920125+1.57079632680300i) (num-test (acosh 0.00000001-1234.0i) 7.81116354920125-1.57079632678679i) (num-test (acosh -0.00000001-1234.0i) 7.81116354920125-1.57079632680300i) (num-test (acosh 0.00000001+1234000000.0i) 21.62667394298955+1.57079632679490i) (num-test (acosh -0.00000001+1234000000.0i) 21.62667394298955+1.57079632679490i) (num-test (acosh 0.00000001-1234000000.0i) 21.62667394298955-1.57079632679490i) (num-test (acosh -0.00000001-1234000000.0i) 21.62667394298955-1.57079632679490i) (num-test (acosh 1.0+0.0i) 0.0) (num-test (acosh -1.0+0.0i) 0.0+3.14159265358979i) (num-test (acosh 1.0-0.0i) 0.0) (num-test (acosh -1.0-0.0i) 0.0+3.14159265358979i) (num-test (acosh 1.0+0.00000001i) 0.00010000000008+0.00009999999992i) (num-test (acosh -1.0+0.00000001i) 0.00010000000008+3.14149265358988i) (num-test (acosh 1.0-0.00000001i) 0.00010000000008-0.00009999999992i) (num-test (acosh -1.0-0.00000001i) 0.00010000000008-3.14149265358988i) (num-test (acosh 1.0+1.0i) 1.06127506190504+0.90455689430238i) (num-test (acosh -1.0+1.0i) 1.06127506190504+2.23703575928741i) (num-test (acosh 1.0-1.0i) 1.06127506190504-0.90455689430238i) (num-test (acosh -1.0-1.0i) 1.06127506190504-2.23703575928741i) (num-test (acosh 1.0+3.14159265358979i) 1.90462768697066+1.27521129258327i) (num-test (acosh -1.0+3.14159265358979i) 1.90462768697066+1.86638136100653i) (num-test (acosh 1.0-3.14159265358979i) 1.90462768697066-1.27521129258327i) (num-test (acosh -1.0-3.14159265358979i) 1.90462768697066-1.86638136100653i) (num-test (acosh 1.0+2.71828182845905i) 1.77905438385935+1.23635355491853i) (num-test (acosh -1.0+2.71828182845905i) 1.77905438385935+1.90523909867127i) (num-test (acosh 1.0-2.71828182845905i) 1.77905438385935-1.23635355491853i) (num-test (acosh -1.0-2.71828182845905i) 1.77905438385935-1.90523909867127i) (num-test (acosh 1.0+1234.0i) 7.81116387755283+1.56998595446690i) (num-test (acosh -1.0+1234.0i) 7.81116387755283+1.57160669912289i) (num-test (acosh 1.0-1234.0i) 7.81116387755283-1.56998595446690i) (num-test (acosh -1.0-1234.0i) 7.81116387755283-1.57160669912289i) (num-test (acosh 1.0+1234000000.0i) 21.62667394298955+1.57079632598452i) (num-test (acosh -1.0+1234000000.0i) 21.62667394298955+1.57079632760527i) (num-test (acosh 1.0-1234000000.0i) 21.62667394298955-1.57079632598452i) (num-test (acosh -1.0-1234000000.0i) 21.62667394298955-1.57079632760527i) (num-test (acosh 3.14159265358979+0.0i) 1.81152627246085) (num-test (acosh -3.14159265358979+0.0i) 1.81152627246085+3.14159265358979i) (num-test (acosh 3.14159265358979-0.0i) 1.81152627246085) (num-test (acosh -3.14159265358979-0.0i) 1.81152627246085+3.14159265358979i) (num-test (acosh 3.14159265358979+0.00000001i) 1.81152627246085+0.00000000335775i) (num-test (acosh -3.14159265358979+0.00000001i) 1.81152627246085+3.14159265023205i) (num-test (acosh 3.14159265358979-0.00000001i) 1.81152627246085-0.00000000335775i) (num-test (acosh -3.14159265358979-0.00000001i) 1.81152627246085-3.14159265023205i) (num-test (acosh 3.14159265358979+1.0i) 1.86711439316026+0.32225329398146i) (num-test (acosh -3.14159265358979+1.0i) 1.86711439316026+2.81933935960833i) (num-test (acosh 3.14159265358979-1.0i) 1.86711439316026-0.32225329398146i) (num-test (acosh -3.14159265358979-1.0i) 1.86711439316026-2.81933935960833i) (num-test (acosh 3.14159265358979+3.14159265358979i) 2.18469104082751+0.79805654766741i) (num-test (acosh -3.14159265358979+3.14159265358979i) 2.18469104082751+2.34353610592238i) (num-test (acosh 3.14159265358979-3.14159265358979i) 2.18469104082751-0.79805654766741i) (num-test (acosh -3.14159265358979-3.14159265358979i) 2.18469104082751-2.34353610592238i) (num-test (acosh 3.14159265358979+2.71828182845905i) 2.11552790803290+0.72769976263454i) (num-test (acosh -3.14159265358979+2.71828182845905i) 2.11552790803290+2.41389289095525i) (num-test (acosh 3.14159265358979-2.71828182845905i) 2.11552790803290-0.72769976263454i) (num-test (acosh -3.14159265358979-2.71828182845905i) 2.11552790803290-2.41389289095525i) (num-test (acosh 3.14159265358979+1234.0i) 7.81116678989204+1.56825047198552i) (num-test (acosh -3.14159265358979+1234.0i) 7.81116678989204+1.57334218160427i) (num-test (acosh 3.14159265358979-1234.0i) 7.81116678989204-1.56825047198552i) (num-test (acosh -3.14159265358979-1234.0i) 7.81116678989204-1.57334218160427i) (num-test (acosh 3.14159265358979+1234000000.0i) 21.62667394298955+1.57079632424904i) (num-test (acosh -3.14159265358979+1234000000.0i) 21.62667394298955+1.57079632934076i) (num-test (acosh 3.14159265358979-1234000000.0i) 21.62667394298955-1.57079632424904i) (num-test (acosh -3.14159265358979-1234000000.0i) 21.62667394298955-1.57079632934076i) (num-test (acosh 2.71828182845905+0.0i) 1.65745445415308) (num-test (acosh -2.71828182845905+0.0i) 1.65745445415308+3.14159265358979i) (num-test (acosh 2.71828182845905-0.0i) 1.65745445415308) (num-test (acosh -2.71828182845905-0.0i) 1.65745445415308+3.14159265358979i) (num-test (acosh 2.71828182845905+0.00000001i) 1.65745445415308+0.00000000395623i) (num-test (acosh -2.71828182845905+0.00000001i) 1.65745445415308+3.14159264963356i) (num-test (acosh 2.71828182845905-0.00000001i) 1.65745445415308-0.00000000395623i) (num-test (acosh -2.71828182845905-0.00000001i) 1.65745445415308-3.14159264963356i) (num-test (acosh 2.71828182845905+1.0i) 1.73375471569385+0.37321824160908i) (num-test (acosh -2.71828182845905+1.0i) 1.73375471569385+2.76837441198071i) (num-test (acosh 2.71828182845905-1.0i) 1.73375471569385-0.37321824160908i) (num-test (acosh -2.71828182845905-1.0i) 1.73375471569385-2.76837441198071i) (num-test (acosh 2.71828182845905+3.14159265358979i) 2.11968336368048+0.87174835684834i) (num-test (acosh -2.71828182845905+3.14159265358979i) 2.11968336368048+2.26984429674145i) (num-test (acosh 2.71828182845905-3.14159265358979i) 2.11968336368048-0.87174835684834i) (num-test (acosh -2.71828182845905-3.14159265358979i) 2.11968336368048-2.26984429674145i) (num-test (acosh 2.71828182845905+2.71828182845905i) 2.04014932880026+0.80229897091014i) (num-test (acosh -2.71828182845905+2.71828182845905i) 2.04014932880026+2.33929368267965i) (num-test (acosh 2.71828182845905-2.71828182845905i) 2.04014932880026-0.80229897091014i) (num-test (acosh -2.71828182845905-2.71828182845905i) 2.04014932880026-2.33929368267965i) (num-test (acosh 2.71828182845905+1234.0i) 7.81116597540442+1.56859350950221i) (num-test (acosh -2.71828182845905+1234.0i) 7.81116597540442+1.57299914408758i) (num-test (acosh 2.71828182845905-1234.0i) 7.81116597540442-1.56859350950221i) (num-test (acosh -2.71828182845905-1234.0i) 7.81116597540442-1.57299914408758i) (num-test (acosh 2.71828182845905+1234000000.0i) 21.62667394298955+1.57079632459208i) (num-test (acosh -2.71828182845905+1234000000.0i) 21.62667394298955+1.57079632899772i) (num-test (acosh 2.71828182845905-1234000000.0i) 21.62667394298955-1.57079632459208i) (num-test (acosh -2.71828182845905-1234000000.0i) 21.62667394298955-1.57079632899772i) (num-test (acosh 1234.0+0.0i) 7.81116322084923) (num-test (acosh -1234.0+0.0i) 7.81116322084923+3.14159265358979i) (num-test (acosh 1234.0-0.0i) 7.81116322084923) (num-test (acosh -1234.0-0.0i) 7.81116322084923+3.14159265358979i) (num-test (acosh 1234.0+0.00000001i) 7.81116322084923+0.00000000000810i) (num-test (acosh -1234.0+0.00000001i) 7.81116322084923+3.14159265358169i) (num-test (acosh 1234.0-0.00000001i) 7.81116322084923-0.00000000000810i) (num-test (acosh -1234.0-0.00000001i) 7.81116322084923-3.14159265358169i) (num-test (acosh 1234.0+1.0i) 7.81116354920146+0.00081037286017i) (num-test (acosh -1234.0+1.0i) 7.81116354920146+3.14078228072962i) (num-test (acosh 1234.0-1.0i) 7.81116354920146-0.00081037286017i) (num-test (acosh -1234.0-1.0i) 7.81116354920146-3.14078228072962i) (num-test (acosh 1234.0+3.14159265358979i) 7.81116646154641+0.00254585648123i) (num-test (acosh -1234.0+3.14159265358979i) 7.81116646154641+3.13904679710856i) (num-test (acosh 1234.0-3.14159265358979i) 7.81116646154641-0.00254585648123i) (num-test (acosh -1234.0-3.14159265358979i) 7.81116646154641-3.13904679710856i) (num-test (acosh 1234.0+2.71828182845905i) 7.81116564705719+0.00220281873928i) (num-test (acosh -1234.0+2.71828182845905i) 7.81116564705719+3.13938983485052i) (num-test (acosh 1234.0-2.71828182845905i) 7.81116564705719-0.00220281873928i) (num-test (acosh -1234.0-2.71828182845905i) 7.81116564705719-3.13938983485052i) (num-test (acosh 1234.0+1234.0i) 8.15773697530526+0.78539824548545i) (num-test (acosh -1234.0+1234.0i) 8.15773697530526+2.35619440810434i) (num-test (acosh 1234.0-1234.0i) 8.15773697530526-0.78539824548545i) (num-test (acosh -1234.0-1234.0i) 8.15773697530526-2.35619440810434i) (num-test (acosh 1234.0+1234000000.0i) 21.62667394299005+1.57079532679490i) (num-test (acosh -1234.0+1234000000.0i) 21.62667394299005+1.57079732679490i) (num-test (acosh 1234.0-1234000000.0i) 21.62667394299005-1.57079532679490i) (num-test (acosh -1234.0-1234000000.0i) 21.62667394299005-1.57079732679490i) (num-test (acosh 1234000000.0+0.0i) 21.62667394298955) (num-test (acosh -1234000000.0+0.0i) 21.62667394298955+3.14159265358979i) (num-test (acosh 1234000000.0-0.0i) 21.62667394298955) (num-test (acosh -1234000000.0-0.0i) 21.62667394298955+3.14159265358979i) (num-test (acosh 1234000000.0+0.00000001i) 21.62667394298955+0.0i) (num-test (acosh -1234000000.0+0.00000001i) 21.62667394298955+3.14159265358979i) (num-test (acosh 1234000000.0-0.00000001i) 21.62667394298955-0.0i) (num-test (acosh -1234000000.0-0.00000001i) 21.62667394298955-3.14159265358979i) (num-test (acosh 1234000000.0+1.0i) 21.62667394298955+0.00000000081037i) (num-test (acosh -1234000000.0+1.0i) 21.62667394298955+3.14159265277942i) (num-test (acosh 1234000000.0-1.0i) 21.62667394298955-0.00000000081037i) (num-test (acosh -1234000000.0-1.0i) 21.62667394298955-3.14159265277942i) (num-test (acosh 1234000000.0+3.14159265358979i) 21.62667394298955+0.00000000254586i) (num-test (acosh -1234000000.0+3.14159265358979i) 21.62667394298955+3.14159265104393i) (num-test (acosh 1234000000.0-3.14159265358979i) 21.62667394298955-0.00000000254586i) (num-test (acosh -1234000000.0-3.14159265358979i) 21.62667394298955-3.14159265104393i) (num-test (acosh 1234000000.0+2.71828182845905i) 21.62667394298955+0.00000000220282i) (num-test (acosh -1234000000.0+2.71828182845905i) 21.62667394298955+3.14159265138697i) (num-test (acosh 1234000000.0-2.71828182845905i) 21.62667394298955-0.00000000220282i) (num-test (acosh -1234000000.0-2.71828182845905i) 21.62667394298955-3.14159265138697i) (num-test (acosh 1234000000.0+1234.0i) 21.62667394299005+0.00000100000000i) (num-test (acosh -1234000000.0+1234.0i) 21.62667394299005+3.14159165358979i) (num-test (acosh 1234000000.0-1234.0i) 21.62667394299005-0.00000100000000i) (num-test (acosh -1234000000.0-1234.0i) 21.62667394299005-3.14159165358979i) (num-test (acosh 1234000000.0+1234000000.0i) 21.97324753326953+0.78539816339745i) (num-test (acosh -1234000000.0+1234000000.0i) 21.97324753326953+2.35619449019234i) (num-test (acosh 1234000000.0-1234000000.0i) 21.97324753326953-0.78539816339745i) (num-test (acosh -1234000000.0-1234000000.0i) 21.97324753326953-2.35619449019234i) (num-test (acosh 0) 0+1.570796326794897i) (num-test (acosh 1) 0.0) ; or 0?? (num-test (acosh -1) 0+3.141592653589793i) (num-test (acosh -1.0e+01) 2.9932228461263808979e0+3.1415926535897932385e0i) (num-test (acosh -2.0e+00) 1.3169578969248167086e0+3.1415926535897932385e0i) (num-test (acosh -1.0e+00) 0+3.1415926535897932385e0i) (num-test (acosh -7.50e-01) 0+2.4188584057763776273e0i) (num-test (acosh -5.0e-01) 0+2.0943951023931954923e0i) (num-test (acosh -1.250e-01) 0+1.6961241579629620161e0i) (num-test (acosh -3.45266983001243932001e-04) 0+1.5711415937847577022e0i) (num-test (acosh -1.19209289550781250e-07) 0+1.570796446004186170e0i) (num-test (acosh 0.0e+00) 0+1.5707963267948966192e0i) (num-test (acosh 1.19209289550781250e-07) 0+1.5707962075856070684e0i) (num-test (acosh 3.45266983001243932001e-04) 0+1.5704510598050355363e0i) (num-test (acosh 1.250e-01) 0+1.4454684956268312224e0i) (num-test (acosh 5.0e-01) 0+1.0471975511965977462e0i) (num-test (acosh 7.50e-01) 0+7.2273424781341561118e-1i) (num-test (acosh 1.0e+00) 0e0+0.0i) (num-test (acosh 2.0e+00) 1.3169578969248167086e0+0.0i) (num-test (acosh 1.0e+01) 2.9932228461263808979e0+0.0i) (num-test (acosh 0.0e+00+0.0e+00i) 0+1.5707963267948966192e0i) (num-test (acosh 0.0e+00+1.19209289550781250e-07i) 1.1920928955078096766e-7+1.5707963267948966192e0i) (num-test (acosh 0.0e+00-1.19209289550781250e-07i) 1.1920928955078096766e-7-1.5707963267948966192e0i) (num-test (acosh 0.0e+00+5.0e-01i) 4.8121182505960344750e-1+1.5707963267948966192e0i) (num-test (acosh 0.0e+00-5.0e-01i) 4.8121182505960344750e-1-1.5707963267948966192e0i) (num-test (acosh 0.0e+00+1.0e+00i) 8.8137358701954302523e-1+1.5707963267948966192e0i) (num-test (acosh 0.0e+00-1.0e+00i) 8.8137358701954302523e-1-1.5707963267948966192e0i) (num-test (acosh 0.0e+00+2.0e+00i) 1.4436354751788103425e0+1.5707963267948966192e0i) (num-test (acosh 0.0e+00-2.0e+00i) 1.4436354751788103425e0-1.5707963267948966192e0i) (num-test (acosh 0.0e+00+8.3886080e+06i) 1.6635532333438690979e1+1.5707963267948966192e0i) (num-test (acosh 0.0e+00-8.3886080e+06i) 1.6635532333438690979e1-1.5707963267948966192e0i) (num-test (acosh 1.19209289550781250e-07+0.0e+00i) 0+1.5707962075856070684e0i) (num-test (acosh -1.19209289550781250e-07+0.0e+00i) 0+1.570796446004186170e0i) (num-test (acosh 1.19209289550781250e-07+1.19209289550781250e-07i) 1.1920928955078181469e-7+1.5707962075856070685e0i) (num-test (acosh 1.19209289550781250e-07-1.19209289550781250e-07i) 1.1920928955078181469e-7-1.5707962075856070685e0i) (num-test (acosh -1.19209289550781250e-07+1.19209289550781250e-07i) 1.1920928955078181469e-7+1.570796446004186170e0i) (num-test (acosh -1.19209289550781250e-07-1.19209289550781250e-07i) 1.1920928955078181469e-7-1.570796446004186170e0i) (num-test (acosh 1.19209289550781250e-07+5.0e-01i) 4.8121182505960598961e-1+1.5707962201708666252e0i) (num-test (acosh 1.19209289550781250e-07-5.0e-01i) 4.8121182505960598961e-1-1.5707962201708666252e0i) (num-test (acosh -1.19209289550781250e-07+5.0e-01i) 4.8121182505960598961e-1+1.5707964334189266132e0i) (num-test (acosh -1.19209289550781250e-07-5.0e-01i) 4.8121182505960598961e-1-1.5707964334189266132e0i) (num-test (acosh 1.19209289550781250e-07+1.0e+00i) 8.8137358701954553738e-1+1.5707962425011995974e0i) (num-test (acosh 1.19209289550781250e-07-1.0e+00i) 8.8137358701954553738e-1-1.5707962425011995974e0i) (num-test (acosh -1.19209289550781250e-07+1.0e+00i) 8.8137358701954553738e-1+1.5707964110885936410e0i) (num-test (acosh -1.19209289550781250e-07-1.0e+00i) 8.8137358701954553738e-1-1.5707964110885936410e0i) (num-test (acosh 1.19209289550781250e-07+2.0e+00i) 1.4436354751788116136e0+1.5707962734828816222e0i) (num-test (acosh 1.19209289550781250e-07-2.0e+00i) 1.4436354751788116136e0-1.5707962734828816222e0i) (num-test (acosh -1.19209289550781250e-07+2.0e+00i) 1.4436354751788116136e0+1.5707963801069116162e0i) (num-test (acosh -1.19209289550781250e-07-2.0e+00i) 1.4436354751788116136e0-1.5707963801069116162e0i) (num-test (acosh 1.19209289550781250e-07+8.3886080e+06i) 1.6635532333438690979e1+1.5707963267948824084e0i) (num-test (acosh 1.19209289550781250e-07-8.3886080e+06i) 1.6635532333438690979e1-1.5707963267948824084e0i) (num-test (acosh -1.19209289550781250e-07+8.3886080e+06i) 1.6635532333438690979e1+1.5707963267949108301e0i) (num-test (acosh -1.19209289550781250e-07-8.3886080e+06i) 1.6635532333438690979e1-1.5707963267949108301e0i) (num-test (acosh 5.0e-01+0.0e+00i) 0+1.0471975511965977462e0i) (num-test (acosh -5.0e-01+0.0e+00i) 0+2.0943951023931954923e0i) (num-test (acosh 5.0e-01+1.19209289550781250e-07i) 1.3765103082409432364e-7+1.0471975511966032159e0i) (num-test (acosh 5.0e-01-1.19209289550781250e-07i) 1.3765103082409432364e-7-1.0471975511966032159e0i) (num-test (acosh -5.0e-01+1.19209289550781250e-07i) 1.3765103082409432364e-7+2.0943951023931900225e0i) (num-test (acosh -5.0e-01-1.19209289550781250e-07i) 1.3765103082409432364e-7-2.0943951023931900225e0i) (num-test (acosh 5.0e-01+5.0e-01i) 5.3063753095251782602e-1+1.1185178796437059372e0i) (num-test (acosh 5.0e-01-5.0e-01i) 5.3063753095251782602e-1-1.1185178796437059372e0i) (num-test (acosh -5.0e-01+5.0e-01i) 5.3063753095251782602e-1+2.0230747739460873013e0i) (num-test (acosh -5.0e-01-5.0e-01i) 5.3063753095251782602e-1-2.0230747739460873013e0i) (num-test (acosh 5.0e-01+1.0e+00i) 9.2613303135018242455e-1+1.2213572639376833256e0i) (num-test (acosh 5.0e-01-1.0e+00i) 9.2613303135018242455e-1-1.2213572639376833256e0i) (num-test (acosh -5.0e-01+1.0e+00i) 9.2613303135018242455e-1+1.9202353896521099129e0i) (num-test (acosh -5.0e-01-1.0e+00i) 9.2613303135018242455e-1-1.9202353896521099129e0i) (num-test (acosh 5.0e-01+2.0e+00i) 1.4657153519472905218e0+1.3497776911720127603e0i) (num-test (acosh 5.0e-01-2.0e+00i) 1.4657153519472905218e0-1.3497776911720127603e0i) (num-test (acosh -5.0e-01+2.0e+00i) 1.4657153519472905218e0+1.7918149624177804781e0i) (num-test (acosh -5.0e-01-2.0e+00i) 1.4657153519472905218e0-1.7918149624177804781e0i) (num-test (acosh 5.0e-01+8.3886080e+06i) 1.6635532333438692755e1+1.5707962671902518438e0i) (num-test (acosh 5.0e-01-8.3886080e+06i) 1.6635532333438692755e1-1.5707962671902518438e0i) (num-test (acosh -5.0e-01+8.3886080e+06i) 1.6635532333438692755e1+1.5707963863995413946e0i) (num-test (acosh -5.0e-01-8.3886080e+06i) 1.6635532333438692755e1-1.5707963863995413946e0i) (num-test (acosh 1.0e+00+0.0e+00i) 0e0+0.0i) (num-test (acosh -1.0e+00+0.0e+00i) 0+3.1415926535897932385e0i) (num-test (acosh 1.0e+00+1.19209289550781250e-07i) 3.4526698643116312881e-4+3.4526697957132450399e-4i) (num-test (acosh 1.0e+00-1.19209289550781250e-07i) 3.4526698643116312881e-4-3.4526697957132450399e-4i) (num-test (acosh -1.0e+00+1.19209289550781250e-07i) 3.4526698643116312881e-4+3.1412473866102219140e0i) (num-test (acosh -1.0e+00-1.19209289550781250e-07i) 3.4526698643116312881e-4-3.1412473866102219140e0i) (num-test (acosh 1.0e+00+5.0e-01i) 7.3285767597364526089e-1+6.7488884558600638016e-1i) (num-test (acosh 1.0e+00-5.0e-01i) 7.3285767597364526089e-1-6.7488884558600638016e-1i) (num-test (acosh -1.0e+00+5.0e-01i) 7.3285767597364526089e-1+2.4667038080037868583e0i) (num-test (acosh -1.0e+00-5.0e-01i) 7.3285767597364526089e-1-2.4667038080037868583e0i) (num-test (acosh 1.0e+00+1.0e+00i) 1.0612750619050356520e0+9.0455689430238136413e-1i) (num-test (acosh 1.0e+00-1.0e+00i) 1.0612750619050356520e0-9.0455689430238136413e-1i) (num-test (acosh -1.0e+00+1.0e+00i) 1.0612750619050356520e0+2.2370357592874118743e0i) (num-test (acosh -1.0e+00-1.0e+00i) 1.0612750619050356520e0-2.2370357592874118743e0i) (num-test (acosh 1.0e+00+2.0e+00i) 1.5285709194809981613e0+1.1437177404024204938e0i) (num-test (acosh 1.0e+00-2.0e+00i) 1.5285709194809981613e0-1.1437177404024204938e0i) (num-test (acosh -1.0e+00+2.0e+00i) 1.5285709194809981613e0+1.9978749131873727447e0i) (num-test (acosh -1.0e+00-2.0e+00i) 1.5285709194809981613e0-1.9978749131873727447e0i) (num-test (acosh 1.0e+00+8.3886080e+06i) 1.6635532333438698084e1+1.5707962075856070685e0i) (num-test (acosh 1.0e+00-8.3886080e+06i) 1.6635532333438698084e1-1.5707962075856070685e0i) (num-test (acosh -1.0e+00+8.3886080e+06i) 1.6635532333438698084e1+1.570796446004186170e0i) (num-test (acosh -1.0e+00-8.3886080e+06i) 1.6635532333438698084e1-1.570796446004186170e0i) (num-test (acosh 2.0e+00+0.0e+00i) 1.3169578969248167086e0+0.0i) (num-test (acosh -2.0e+00+0.0e+00i) 1.3169578969248167086e0+3.1415926535897932385e0i) (num-test (acosh 2.0e+00+1.19209289550781250e-07i) 1.3169578969248194435e0+6.8825515412047433504e-8i) (num-test (acosh 2.0e+00-1.19209289550781250e-07i) 1.3169578969248194435e0-6.8825515412047433504e-8i) (num-test (acosh -2.0e+00+1.19209289550781250e-07i) 1.3169578969248194435e0+3.1415925847642778264e0i) (num-test (acosh -2.0e+00-1.19209289550781250e-07i) 1.3169578969248194435e0-3.1415925847642778264e0i) (num-test (acosh 2.0e+00+5.0e-01i) 1.3618009008578457882e0+2.7775425655771396018e-1i) (num-test (acosh 2.0e+00-5.0e-01i) 1.3618009008578457882e0-2.7775425655771396018e-1i) (num-test (acosh -2.0e+00+5.0e-01i) 1.3618009008578457882e0+2.8638383970320792783e0i) (num-test (acosh -2.0e+00-5.0e-01i) 1.3618009008578457882e0-2.8638383970320792783e0i) (num-test (acosh 2.0e+00+1.0e+00i) 1.4693517443681852733e0+5.0735630321714456304e-1i) (num-test (acosh 2.0e+00-1.0e+00i) 1.4693517443681852733e0-5.0735630321714456304e-1i) (num-test (acosh -2.0e+00+1.0e+00i) 1.4693517443681852733e0+2.6342363503726486754e0i) (num-test (acosh -2.0e+00-1.0e+00i) 1.4693517443681852733e0-2.6342363503726486754e0i) (num-test (acosh 2.0e+00+2.0e+00i) 1.7343245214879664480e0+8.1654718209685057852e-1i) (num-test (acosh 2.0e+00-2.0e+00i) 1.7343245214879664480e0-8.1654718209685057852e-1i) (num-test (acosh -2.0e+00+2.0e+00i) 1.7343245214879664480e0+2.3250454714929426599e0i) (num-test (acosh -2.0e+00-2.0e+00i) 1.7343245214879664480e0-2.3250454714929426599e0i) (num-test (acosh 2.0e+00+8.3886080e+06i) 1.663553233343871940e1+1.5707960883763175177e0i) (num-test (acosh 2.0e+00-8.3886080e+06i) 1.663553233343871940e1-1.5707960883763175177e0i) (num-test (acosh -2.0e+00+8.3886080e+06i) 1.663553233343871940e1+1.5707965652134757208e0i) (num-test (acosh -2.0e+00-8.3886080e+06i) 1.663553233343871940e1-1.5707965652134757208e0i) (num-test (acosh 8.3886080e+06+0.0e+00i) 1.6635532333438683873e1+0.0i) (num-test (acosh -8.3886080e+06+0.0e+00i) 1.6635532333438683873e1+3.1415926535897932385e0i) (num-test (acosh 8.3886080e+06+1.19209289550781250e-07i) 1.6635532333438683873e1+1.4210854715202104692e-14i) (num-test (acosh 8.3886080e+06-1.19209289550781250e-07i) 1.6635532333438683873e1-1.4210854715202104692e-14i) (num-test (acosh -8.3886080e+06+1.19209289550781250e-07i) 1.6635532333438683873e1+3.1415926535897790276e0i) (num-test (acosh -8.3886080e+06-1.19209289550781250e-07i) 1.6635532333438683873e1-3.1415926535897790276e0i) (num-test (acosh 8.3886080e+06+5.0e-01i) 1.6635532333438685650e1+5.9604644775390977930e-8i) (num-test (acosh 8.3886080e+06-5.0e-01i) 1.6635532333438685650e1-5.9604644775390977930e-8i) (num-test (acosh -8.3886080e+06+5.0e-01i) 1.6635532333438685650e1+3.1415925939851484631e0i) (num-test (acosh -8.3886080e+06-5.0e-01i) 1.6635532333438685650e1-3.1415925939851484631e0i) (num-test (acosh 8.3886080e+06+1.0e+00i) 1.6635532333438690979e1+1.1920928955078153234e-7i) (num-test (acosh 8.3886080e+06-1.0e+00i) 1.6635532333438690979e1-1.1920928955078153234e-7i) (num-test (acosh -8.3886080e+06+1.0e+00i) 1.6635532333438690979e1+3.1415925343805036877e0i) (num-test (acosh -8.3886080e+06-1.0e+00i) 1.6635532333438690979e1-3.1415925343805036877e0i) (num-test (acosh 8.3886080e+06+2.0e+00i) 1.6635532333438712295e1+2.3841857910155967656e-7i) (num-test (acosh 8.3886080e+06-2.0e+00i) 1.6635532333438712295e1-2.3841857910155967656e-7i) (num-test (acosh -8.3886080e+06+2.0e+00i) 1.6635532333438712295e1+3.1415924151712141369e0i) (num-test (acosh -8.3886080e+06-2.0e+00i) 1.6635532333438712295e1-3.1415924151712141369e0i) (num-test (acosh 8.3886080e+06+8.3886080e+06i) 1.6982105923718660081e1+7.8539816339745008597e-1i) (num-test (acosh 8.3886080e+06-8.3886080e+06i) 1.6982105923718660081e1-7.8539816339745008597e-1i) (num-test (acosh -8.3886080e+06+8.3886080e+06i) 1.6982105923718660081e1+2.3561944901923431525e0i) (num-test (acosh -8.3886080e+06-8.3886080e+06i) 1.6982105923718660081e1-2.3561944901923431525e0i) ;; -------- atanh (num-test (atanh 0) 0.0) (num-test (atanh 2) 0.54930614433405+1.57079632679490i) (num-test (atanh -2) -0.54930614433405+1.57079632679490i) (num-test (atanh 3) 0.34657359027997+1.57079632679490i) (num-test (atanh -3) -0.34657359027997+1.57079632679490i) (num-test (atanh 10) 0.10033534773108+1.57079632679490i) (num-test (atanh -10) -0.10033534773108+1.57079632679490i) (num-test (atanh 1234) 0.00081037294887+1.57079632679490i) (num-test (atanh -1234) -0.00081037294887+1.57079632679490i) (num-test (atanh 500029) 0.00000199988401+1.57079632679490i) (num-test (atanh -500029) -0.00000199988401+1.57079632679490i) (num-test (atanh 362880) 0.00000275573192+1.57079632679490i) (num-test (atanh -362880) -0.00000275573192+1.57079632679490i) (num-test (atanh 0/1) 0.0) (num-test (atanh 0/2) 0.0) (num-test (atanh 0/3) 0.0) (num-test (atanh 0/10) 0.0) (num-test (atanh 0/1234) 0.0) (num-test (atanh 0/1234000000) 0.0) (num-test (atanh 0/500029) 0.0) (num-test (atanh 0/362880) 0.0) (num-test (atanh 1/2) 0.54930614433405) (num-test (atanh -1/2) -0.54930614433405) (num-test (atanh 1/3) 0.34657359027997) (num-test (atanh -1/3) -0.34657359027997) (num-test (atanh 1/10) 0.10033534773108) (num-test (atanh -1/10) -0.10033534773108) (num-test (atanh 1/1234) 0.00081037294887) (num-test (atanh -1/1234) -0.00081037294887) (num-test (atanh 1/1234000000) 0.00000000081037) (num-test (atanh -1/1234000000) -0.00000000081037) (num-test (atanh 1/500029) 0.00000199988401) (num-test (atanh -1/500029) -0.00000199988401) (num-test (atanh 1/362880) 0.00000275573192) (num-test (atanh -1/362880) -0.00000275573192) (num-test (atanh 2/1) 0.54930614433405+1.57079632679490i) (num-test (atanh -2/1) -0.54930614433405+1.57079632679490i) (num-test (atanh 2/3) 0.80471895621705) (num-test (atanh -2/3) -0.80471895621705) (num-test (atanh 2/10) 0.20273255405408) (num-test (atanh -2/10) -0.20273255405408) (num-test (atanh 2/1234) 0.00162074696209) (num-test (atanh -2/1234) -0.00162074696209) (num-test (atanh 2/1234000000) 0.00000000162075) (num-test (atanh -2/1234000000) -0.00000000162075) (num-test (atanh 2/500029) 0.00000399976801) (num-test (atanh -2/500029) -0.00000399976801) (num-test (atanh 2/362880) 0.00000551146384) (num-test (atanh -2/362880) -0.00000551146384) (num-test (atanh 3/1) 0.34657359027997+1.57079632679490i) (num-test (atanh -3/1) -0.34657359027997+1.57079632679490i) (num-test (atanh 3/2) 0.80471895621705+1.57079632679490i) (num-test (atanh -3/2) -0.80471895621705+1.57079632679490i) (num-test (atanh 3/10) 0.30951960420311) (num-test (atanh -3/10) -0.30951960420311) (num-test (atanh 3/1234) 0.00243112310402) (num-test (atanh -3/1234) -0.00243112310402) (num-test (atanh 3/1234000000) 0.00000000243112) (num-test (atanh -3/1234000000) -0.00000000243112) (num-test (atanh 3/500029) 0.00000599965202) (num-test (atanh -3/500029) -0.00000599965202) (num-test (atanh 3/362880) 0.00000826719577) (num-test (atanh -3/362880) -0.00000826719577) (num-test (atanh 10/1) 0.10033534773108+1.57079632679490i) (num-test (atanh -10/1) -0.10033534773108+1.57079632679490i) (num-test (atanh 10/2) 0.20273255405408+1.57079632679490i) (num-test (atanh -10/2) -0.20273255405408+1.57079632679490i) (num-test (atanh 10/3) 0.30951960420311+1.57079632679490i) (num-test (atanh -10/3) -0.30951960420311+1.57079632679490i) (num-test (atanh 10/1234) 0.00810390511343) (num-test (atanh -10/1234) -0.00810390511343) (num-test (atanh 10/1234000000) 0.00000000810373) (num-test (atanh -10/1234000000) -0.00000000810373) (num-test (atanh 10/500029) 0.00001999884007) (num-test (atanh -10/500029) -0.00001999884007) (num-test (atanh 10/362880) 0.00002755731923) (num-test (atanh -10/362880) -0.00002755731923) (num-test (atanh 1234/1) 0.00081037294887+1.57079632679490i) (num-test (atanh -1234/1) -0.00081037294887+1.57079632679490i) (num-test (atanh 1234/2) 0.00162074696209+1.57079632679490i) (num-test (atanh -1234/2) -0.00162074696209+1.57079632679490i) (num-test (atanh 1234/3) 0.00243112310402+1.57079632679490i) (num-test (atanh -1234/3) -0.00243112310402+1.57079632679490i) (num-test (atanh 1234/10) 0.00810390511343+1.57079632679490i) (num-test (atanh -1234/10) -0.00810390511343+1.57079632679490i) (num-test (atanh 1234/1234000000) 0.00000100000000) (num-test (atanh -1234/1234000000) -0.00000100000000) (num-test (atanh 1234/500029) 0.00246786187433) (num-test (atanh -1234/500029) -0.00246786187433) (num-test (atanh 1234/362880) 0.00340058630029) (num-test (atanh -1234/362880) -0.00340058630029) (num-test (atanh 1234000000/1234) 0.00000100000000+1.57079632679490i) (num-test (atanh -1234000000/1234) -0.00000100000000+1.57079632679490i) (num-test (atanh 1234000000/500029) 0.00040520990873+1.57079632679490i) (num-test (atanh -1234000000/500029) -0.00040520990873+1.57079632679490i) (num-test (atanh 1234000000/362880) 0.00029406807979+1.57079632679490i) (num-test (atanh -1234000000/362880) -0.00029406807979+1.57079632679490i) (num-test (atanh 500029/1) 0.00000199988401+1.57079632679490i) (num-test (atanh -500029/1) -0.00000199988401+1.57079632679490i) (num-test (atanh 500029/2) 0.00000399976801+1.57079632679490i) (num-test (atanh -500029/2) -0.00000399976801+1.57079632679490i) (num-test (atanh 500029/3) 0.00000599965202+1.57079632679490i) (num-test (atanh -500029/3) -0.00000599965202+1.57079632679490i) (num-test (atanh 500029/10) 0.00001999884007+1.57079632679490i) (num-test (atanh -500029/10) -0.00001999884007+1.57079632679490i) (num-test (atanh 500029/1234) 0.00246786187433+1.57079632679490i) (num-test (atanh -500029/1234) -0.00246786187433+1.57079632679490i) (num-test (atanh 500029/1234000000) 0.00040520990873) (num-test (atanh -500029/1234000000) -0.00040520990873) (num-test (atanh 500029/362880) 0.91962065666764+1.57079632679490i) (num-test (atanh -500029/362880) -0.91962065666764+1.57079632679490i) (num-test (atanh 362880/1) 0.00000275573192+1.57079632679490i) (num-test (atanh -362880/1) -0.00000275573192+1.57079632679490i) (num-test (atanh 362880/2) 0.00000551146384+1.57079632679490i) (num-test (atanh -362880/2) -0.00000551146385+1.57079632679490i) (num-test (atanh 362880/3) 0.00000826719577+1.57079632679490i) (num-test (atanh -362880/3) -0.00000826719577+1.57079632679490i) (num-test (atanh 362880/10) 0.00002755731923+1.57079632679490i) (num-test (atanh -362880/10) -0.00002755731923+1.57079632679490i) (num-test (atanh 362880/1234) 0.00340058630029+1.57079632679490i) (num-test (atanh -362880/1234) -0.00340058630029+1.57079632679490i) (num-test (atanh 362880/1234000000) 0.00029406807979) (num-test (atanh -362880/1234000000) -0.00029406807979) (num-test (atanh 362880/500029) 0.91962065666764) (num-test (atanh -362880/500029) -0.91962065666764) (num-test (atanh 0.0) 0.0) (num-test (atanh 0.00000001) 0.00000001) (num-test (atanh -0.00000001) -0.00000001) (num-test (atanh our-pi) 0.32976531495670+1.57079632679490i) (num-test (atanh -3.14159265358979) -0.32976531495670+1.57079632679490i) (num-test (atanh 2.71828182845905) 0.38596841645265+1.57079632679490i) (num-test (atanh -2.71828182845905) -0.38596841645265+1.57079632679490i) (num-test (atanh 1234.0) 0.00081037294887+1.57079632679490i) (num-test (atanh -1234.0) -0.00081037294887+1.57079632679490i) (num-test (atanh 0.0+0.0i) 0.0) (num-test (atanh -0.0+0.0i) 0.0) (num-test (atanh 0.0-0.0i) 0.0) (num-test (atanh -0.0-0.0i) -0.0) (num-test (atanh 0.0+0.00000001i) 0.0+0.00000001i) (num-test (atanh -0.0+0.00000001i) 0.0+0.00000001i) (num-test (atanh 0.0-0.00000001i) 0.0-0.00000001i) (num-test (atanh -0.0-0.00000001i) 0.0-0.00000001i) (num-test (atanh 0.0+1.0i) -0.0+0.78539816339745i) (num-test (atanh -0.0+1.0i) -0.0+0.78539816339745i) (num-test (atanh 0.0-1.0i) -0.0-0.78539816339745i) (num-test (atanh -0.0-1.0i) -0.0-0.78539816339745i) (num-test (atanh 0.0+3.14159265358979i) -0.0+1.26262725567891i) (num-test (atanh -0.0+3.14159265358979i) -0.0+1.26262725567891i) (num-test (atanh 0.0-3.14159265358979i) -0.0-1.26262725567891i) (num-test (atanh -0.0-3.14159265358979i) -0.0-1.26262725567891i) (num-test (atanh 0.0+2.71828182845905i) -0.0+1.21828290501728i) (num-test (atanh -0.0+2.71828182845905i) -0.0+1.21828290501728i) (num-test (atanh 0.0-2.71828182845905i) -0.0-1.21828290501728i) (num-test (atanh -0.0-2.71828182845905i) -0.0-1.21828290501728i) (num-test (atanh 0.0+1234.0i) 0.0+1.56998595420081i) (num-test (atanh -0.0+1234.0i) 0.0+1.56998595420081i) (num-test (atanh 0.0-1234.0i) 0.0-1.56998595420081i) (num-test (atanh -0.0-1234.0i) 0.0-1.56998595420081i) (num-test (atanh 0.00000001+0.0i) 0.00000001) (num-test (atanh -0.00000001+0.0i) -0.00000001) (num-test (atanh 0.00000001-0.0i) 0.00000001) (num-test (atanh -0.00000001-0.0i) -0.00000001) (num-test (atanh 0.00000001+0.00000001i) 0.00000001+0.00000001i) (num-test (atanh -0.00000001+0.00000001i) -0.00000001+0.00000001i) (num-test (atanh 0.00000001-0.00000001i) 0.00000001-0.00000001i) (num-test (atanh -0.00000001-0.00000001i) -0.00000001-0.00000001i) (num-test (atanh 0.00000001+1.0i) 0.00000000500000+0.78539816339745i) (num-test (atanh -0.00000001+1.0i) -0.00000000500000+0.78539816339745i) (num-test (atanh 0.00000001-1.0i) 0.00000000500000-0.78539816339745i) (num-test (atanh -0.00000001-1.0i) -0.00000000500000-0.78539816339745i) (num-test (atanh 0.00000001+3.14159265358979i) 0.00000000092000+1.26262725567891i) (num-test (atanh -0.00000001+3.14159265358979i) -0.00000000092000+1.26262725567891i) (num-test (atanh 0.00000001-3.14159265358979i) 0.00000000092000-1.26262725567891i) (num-test (atanh -0.00000001-3.14159265358979i) -0.00000000092000-1.26262725567891i) (num-test (atanh 0.00000001+2.71828182845905i) 0.00000000119203+1.21828290501728i) (num-test (atanh -0.00000001+2.71828182845905i) -0.00000000119203+1.21828290501728i) (num-test (atanh 0.00000001-2.71828182845905i) 0.00000000119203-1.21828290501728i) (num-test (atanh -0.00000001-2.71828182845905i) -0.00000000119203-1.21828290501728i) (num-test (atanh 0.00000001+1234.0i) 0.00000000000001+1.56998595420081i) (num-test (atanh -0.00000001+1234.0i) -0.00000000000001+1.56998595420081i) (num-test (atanh 0.00000001-1234.0i) 0.00000000000001-1.56998595420081i) (num-test (atanh -0.00000001-1234.0i) -0.00000000000001-1.56998595420081i) (num-test (atanh 1.0+0.00000001i) 9.55691396225616+0.78539816589745i) (num-test (atanh -1.0+0.00000001i) -9.55691396225615+0.78539816589745i) (num-test (atanh 1.0-0.00000001i) 9.55691396225616-0.78539816589745i) (num-test (atanh -1.0-0.00000001i) -9.55691396225615-0.78539816589745i) (num-test (atanh 1.0+1.0i) 0.40235947810853+1.01722196789785i) (num-test (atanh -1.0+1.0i) -0.40235947810853+1.01722196789785i) (num-test (atanh 1.0-1.0i) 0.40235947810853-1.01722196789785i) (num-test (atanh -1.0-1.0i) -0.40235947810853-1.01722196789785i) (num-test (atanh 1.0+3.14159265358979i) 0.08505998507745+1.28734057432439i) (num-test (atanh -1.0+3.14159265358979i) -0.08505998507745+1.28734057432439i) (num-test (atanh 1.0-3.14159265358979i) 0.08505998507745-1.28734057432439i) (num-test (atanh -1.0-3.14159265358979i) -0.08505998507745-1.28734057432439i) (num-test (atanh 1.0+2.71828182845905i) 0.10816322574795+1.25363416718071i) (num-test (atanh -1.0+2.71828182845905i) -0.10816322574795+1.25363416718071i) (num-test (atanh 1.0-2.71828182845905i) 0.10816322574795-1.25363416718071i) (num-test (atanh -1.0-2.71828182845905i) -0.10816322574795-1.25363416718071i) (num-test (atanh 1.0+1234.0i) 0.00000065670317+1.56998595473299i) (num-test (atanh -1.0+1234.0i) -0.00000065670317+1.56998595473299i) (num-test (atanh 1.0-1234.0i) 0.00000065670317-1.56998595473299i) (num-test (atanh -1.0-1234.0i) -0.00000065670317-1.56998595473299i) (num-test (atanh 3.14159265358979+0.0i) 0.32976531495670+1.57079632679490i) (num-test (atanh -3.14159265358979+0.0i) -0.32976531495670+1.57079632679490i) (num-test (atanh 3.14159265358979-0.0i) 0.32976531495670+1.57079632679490i) (num-test (atanh -3.14159265358979-0.0i) -0.32976531495670+1.57079632679490i) (num-test (atanh 3.14159265358979+0.00000001i) 0.32976531495670+1.57079632566745i) (num-test (atanh -3.14159265358979+0.00000001i) -0.32976531495670+1.57079632566745i) (num-test (atanh 3.14159265358979-0.00000001i) 0.32976531495670-1.57079632566745i) (num-test (atanh -3.14159265358979-0.00000001i) -0.32976531495670-1.57079632566745i) (num-test (atanh 3.14159265358979+1.0i) 0.29462144034086+1.47082882591946i) (num-test (atanh -3.14159265358979+1.0i) -0.29462144034086+1.47082882591946i) (num-test (atanh 3.14159265358979-1.0i) 0.29462144034086-1.47082882591946i) (num-test (atanh -3.14159265358979-1.0i) -0.29462144034086-1.47082882591946i) (num-test (atanh 3.14159265358979+3.14159265358979i) 0.15638868878130+1.40903828502376i) (num-test (atanh -3.14159265358979+3.14159265358979i) -0.15638868878130+1.40903828502376i) (num-test (atanh 3.14159265358979-3.14159265358979i) 0.15638868878130-1.40903828502376i) (num-test (atanh -3.14159265358979-3.14159265358979i) -0.15638868878130-1.40903828502376i) (num-test (atanh 3.14159265358979+2.71828182845905i) 0.17937970703436+1.40945039787275i) (num-test (atanh -3.14159265358979+2.71828182845905i) -0.17937970703436+1.40945039787275i) (num-test (atanh 3.14159265358979-2.71828182845905i) 0.17937970703436-1.40945039787275i) (num-test (atanh -3.14159265358979-2.71828182845905i) -0.17937970703436-1.40945039787275i) (num-test (atanh 3.14159265358979+1234.0i) 0.00000206308183+1.56998595945313i) (num-test (atanh -3.14159265358979+1234.0i) -0.00000206308183+1.56998595945313i) (num-test (atanh 3.14159265358979-1234.0i) 0.00000206308183-1.56998595945313i) (num-test (atanh -3.14159265358979-1234.0i) -0.00000206308183-1.56998595945313i) (num-test (atanh 2.71828182845905+0.0i) 0.38596841645265+1.57079632679490i) (num-test (atanh -2.71828182845905+0.0i) -0.38596841645265+1.57079632679490i) (num-test (atanh 2.71828182845905-0.0i) 0.38596841645265+1.57079632679490i) (num-test (atanh -2.71828182845905-0.0i) -0.38596841645265+1.57079632679490i) (num-test (atanh 2.71828182845905+0.00000001i) 0.38596841645265+1.57079632522972i) (num-test (atanh -2.71828182845905+0.00000001i) -0.38596841645265+1.57079632522972i) (num-test (atanh 2.71828182845905-0.00000001i) 0.38596841645265-1.57079632522972i) (num-test (atanh -2.71828182845905-0.00000001i) -0.38596841645265-1.57079632522972i) (num-test (atanh 2.71828182845905+1.0i) 0.33050259272341+1.43862796047891i) (num-test (atanh -2.71828182845905+1.0i) -0.33050259272341+1.43862796047891i) (num-test (atanh 2.71828182845905-1.0i) 0.33050259272341-1.43862796047891i) (num-test (atanh -2.71828182845905-1.0i) -0.33050259272341-1.43862796047891i) (num-test (atanh 2.71828182845905+3.14159265358979i) 0.15352587926173+1.38641010899673i) (num-test (atanh -2.71828182845905+3.14159265358979i) -0.15352587926173+1.38641010899673i) (num-test (atanh 2.71828182845905-3.14159265358979i) 0.15352587926173-1.38641010899673i) (num-test (atanh -2.71828182845905-3.14159265358979i) -0.15352587926173-1.38641010899673i) (num-test (atanh 2.71828182845905+2.71828182845905i) 0.17963089485802+1.38288382352616i) (num-test (atanh -2.71828182845905+2.71828182845905i) -0.17963089485802+1.38288382352616i) (num-test (atanh 2.71828182845905-2.71828182845905i) 0.17963089485802-1.38288382352616i) (num-test (atanh -2.71828182845905-2.71828182845905i) -0.17963089485802-1.38288382352616i) (num-test (atanh 2.71828182845905+1234.0i) 0.00000178509679+1.56998595813306i) (num-test (atanh -2.71828182845905+1234.0i) -0.00000178509679+1.56998595813306i) (num-test (atanh 2.71828182845905-1234.0i) 0.00000178509679-1.56998595813306i) (num-test (atanh -2.71828182845905-1234.0i) -0.00000178509679-1.56998595813306i) (num-test (atanh 1234.0+0.0i) 0.00081037294887+1.57079632679490i) (num-test (atanh -1234.0+0.0i) -0.00081037294887+1.57079632679490i) (num-test (atanh 1234.0-0.0i) 0.00081037294887+1.57079632679490i) (num-test (atanh -1234.0-0.0i) -0.00081037294887+1.57079632679490i) (num-test (atanh 1234.0+0.00000001i) 0.00081037294887+1.57079632679489i) (num-test (atanh -1234.0+0.00000001i) -0.00081037294887+1.57079632679489i) (num-test (atanh 1234.0-0.00000001i) 0.00081037294887-1.57079632679489i) (num-test (atanh -1234.0-0.00000001i) -0.00081037294887-1.57079632679489i) (num-test (atanh 1234.0+1.0i) 0.00081037241669+1.57079567009087i) (num-test (atanh -1234.0+1.0i) -0.00081037241669+1.57079567009087i) (num-test (atanh 1234.0-1.0i) 0.00081037241669-1.57079567009087i) (num-test (atanh -1234.0-1.0i) -0.00081037241669-1.57079567009087i) (num-test (atanh 1234.0+3.14159265358979i) 0.00081036769654+1.57079426371036i) (num-test (atanh -1234.0+3.14159265358979i) -0.00081036769654+1.57079426371036i) (num-test (atanh 1234.0-3.14159265358979i) 0.00081036769654-1.57079426371036i) (num-test (atanh -1234.0-3.14159265358979i) -0.00081036769654-1.57079426371036i) (num-test (atanh 1234.0+2.71828182845905i) 0.00081036901661+1.57079454169576i) (num-test (atanh -1234.0+2.71828182845905i) -0.00081036901661+1.57079454169576i) (num-test (atanh 1234.0-2.71828182845905i) 0.00081036901661-1.57079454169576i) (num-test (atanh -1234.0-2.71828182845905i) -0.00081036901661-1.57079454169576i) (num-test (atanh 1234.0+1234.0i) 0.00040518634139+1.57039114036481i) (num-test (atanh -1234.0+1234.0i) -0.00040518634139+1.57039114036481i) (num-test (atanh 1234.0-1234.0i) 0.00040518634139-1.57039114036481i) (num-test (atanh -1234.0-1234.0i) -0.00040518634139-1.57039114036481i) (num-test (atanh -1.0e+01) -1.0033534773107558064e-1+1.5707963267948966192e0i) (num-test (atanh -2.0e+00) -5.4930614433405484570e-1+1.5707963267948966192e0i) (num-test (atanh -7.50e-01) -9.7295507452765665255e-1+0.0i) (num-test (atanh -5.0e-01) -5.4930614433405484570e-1+0.0i) (num-test (atanh -1.250e-01) -1.2565721414045303884e-1+0.0i) (num-test (atanh -3.45266983001243932001e-04) -3.4526699672092216295e-4+0.0i) (num-test (atanh -1.19209289550781250e-07) -1.1920928955078181469e-7+0.0i) (num-test (atanh 0.0e+00) 0e0+0.0i) (num-test (atanh 1.19209289550781250e-07) 1.1920928955078181469e-7+0.0i) (num-test (atanh 3.45266983001243932001e-04) 3.4526699672092216295e-4+0.0i) (num-test (atanh 1.250e-01) 1.2565721414045303884e-1+0.0i) (num-test (atanh 5.0e-01) 5.4930614433405484570e-1+0.0i) (num-test (atanh 7.50e-01) 9.7295507452765665255e-1+0.0i) (num-test (atanh 2.0e+00) 5.4930614433405484570e-1-1.5707963267948966192e0i) (num-test (atanh 1.0e+01) 1.0033534773107558064e-1-1.5707963267948966192e0i) (num-test (atanh 2.8147497671066e+14) 3.552713678800501e-15-1.570796326794897i) (num-test (atanh 0.0e+00+0.0e+00i) 0e0+0.0i) (num-test (atanh 0.0e+00+1.19209289550781250e-07i) 0+1.1920928955078068531e-7i) (num-test (atanh 0.0e+00-1.19209289550781250e-07i) 0-1.1920928955078068531e-7i) (num-test (atanh 0.0e+00+5.0e-01i) 0+4.6364760900080611621e-1i) (num-test (atanh 0.0e+00-5.0e-01i) 0-4.6364760900080611621e-1i) (num-test (atanh 0.0e+00+1.0e+00i) 0+7.8539816339744830962e-1i) (num-test (atanh 0.0e+00-1.0e+00i) 0-7.8539816339744830962e-1i) (num-test (atanh 0.0e+00+2.0e+00i) 0+1.1071487177940905030e0i) (num-test (atanh 0.0e+00-2.0e+00i) 0-1.1071487177940905030e0i) (num-test (atanh 0.0e+00+8.3886080e+06i) 0+1.5707962075856070685e0i) (num-test (atanh 0.0e+00-8.3886080e+06i) 0-1.5707962075856070685e0i) (num-test (atanh 1.19209289550781250e-07+0.0e+00i) 1.1920928955078181469e-7+0.0i) (num-test (atanh -1.19209289550781250e-07+0.0e+00i) -1.1920928955078181469e-7+0.0i) (num-test (atanh 1.19209289550781250e-07+1.19209289550781250e-07i) 1.1920928955078012062e-7+1.1920928955078237938e-7i) (num-test (atanh 1.19209289550781250e-07-1.19209289550781250e-07i) 1.1920928955078012062e-7-1.1920928955078237938e-7i) (num-test (atanh -1.19209289550781250e-07+1.19209289550781250e-07i) -1.1920928955078012062e-7+1.1920928955078237938e-7i) (num-test (atanh -1.19209289550781250e-07-1.19209289550781250e-07i) -1.1920928955078012062e-7-1.1920928955078237938e-7i) (num-test (atanh 1.19209289550781250e-07+5.0e-01i) 9.5367431640625072280e-8+4.6364760900081066369e-1i) (num-test (atanh 1.19209289550781250e-07-5.0e-01i) 9.5367431640625072280e-8-4.6364760900081066369e-1i) (num-test (atanh -1.19209289550781250e-07+5.0e-01i) -9.5367431640625072280e-8+4.6364760900081066369e-1i) (num-test (atanh -1.19209289550781250e-07-5.0e-01i) -9.5367431640625072280e-8-4.6364760900081066369e-1i) (num-test (atanh 1.19209289550781250e-07+1.0e+00i) 5.9604644775390483828e-8+7.8539816339745186233e-1i) (num-test (atanh 1.19209289550781250e-07-1.0e+00i) 5.9604644775390483828e-8-7.8539816339745186233e-1i) (num-test (atanh -1.19209289550781250e-07+1.0e+00i) -5.9604644775390483828e-8+7.8539816339745186233e-1i) (num-test (atanh -1.19209289550781250e-07-1.0e+00i) -5.9604644775390483828e-8-7.8539816339745186233e-1i) (num-test (atanh 1.19209289550781250e-07+2.0e+00i) 2.3841857910156200307e-8+1.1071487177940916399e0i) (num-test (atanh 1.19209289550781250e-07-2.0e+00i) 2.3841857910156200307e-8-1.1071487177940916399e0i) (num-test (atanh -1.19209289550781250e-07+2.0e+00i) -2.3841857910156200307e-8+1.1071487177940916399e0i) (num-test (atanh -1.19209289550781250e-07-2.0e+00i) -2.3841857910156200307e-8-1.1071487177940916399e0i) (num-test (atanh 1.19209289550781250e-07+8.3886080e+06i) 1.6940658945085766040e-21+1.5707962075856070685e0i) (num-test (atanh 1.19209289550781250e-07-8.3886080e+06i) 1.6940658945085766040e-21-1.5707962075856070685e0i) (num-test (atanh -1.19209289550781250e-07+8.3886080e+06i) -1.6940658945085766040e-21+1.5707962075856070685e0i) (num-test (atanh -1.19209289550781250e-07-8.3886080e+06i) -1.6940658945085766040e-21-1.5707962075856070685e0i) (num-test (atanh 5.0e-01+0.0e+00i) 5.4930614433405484570e-1+0.0i) (num-test (atanh -5.0e-01+0.0e+00i) -5.4930614433405484570e-1+0.0i) (num-test (atanh 5.0e-01+1.19209289550781250e-07i) 5.4930614433404221383e-1+1.5894571940103932425e-7i) (num-test (atanh 5.0e-01-1.19209289550781250e-07i) 5.4930614433404221383e-1-1.5894571940103932425e-7i) (num-test (atanh -5.0e-01+1.19209289550781250e-07i) -5.4930614433404221383e-1+1.5894571940103932425e-7i) (num-test (atanh -5.0e-01-1.19209289550781250e-07i) -5.4930614433404221383e-1-1.5894571940103932425e-7i) (num-test (atanh 5.0e-01+5.0e-01i) 4.0235947810852509365e-1+5.5357435889704525151e-1i) (num-test (atanh 5.0e-01-5.0e-01i) 4.0235947810852509365e-1-5.5357435889704525151e-1i) (num-test (atanh -5.0e-01+5.0e-01i) -4.0235947810852509365e-1+5.5357435889704525151e-1i) (num-test (atanh -5.0e-01-5.0e-01i) -4.0235947810852509365e-1-5.5357435889704525151e-1i) (num-test (atanh 5.0e-01+1.0e+00i) 2.3887786125685909036e-1+8.4757566067082902713e-1i) (num-test (atanh 5.0e-01-1.0e+00i) 2.3887786125685909036e-1-8.4757566067082902713e-1i) (num-test (atanh -5.0e-01+1.0e+00i) -2.3887786125685909036e-1+8.4757566067082902713e-1i) (num-test (atanh -5.0e-01-1.0e+00i) -2.3887786125685909036e-1-8.4757566067082902713e-1i) (num-test (atanh 5.0e-01+2.0e+00i) 9.6415620202996167238e-2+1.1265564408348223487e0i) (num-test (atanh 5.0e-01-2.0e+00i) 9.6415620202996167238e-2-1.1265564408348223487e0i) (num-test (atanh -5.0e-01+2.0e+00i) -9.6415620202996167238e-2+1.1265564408348223487e0i) (num-test (atanh -5.0e-01-2.0e+00i) -9.6415620202996167238e-2-1.1265564408348223487e0i) (num-test (atanh 5.0e-01+8.3886080e+06i) 7.1054273576008756410e-15+1.5707962075856070685e0i) (num-test (atanh 5.0e-01-8.3886080e+06i) 7.1054273576008756410e-15-1.5707962075856070685e0i) (num-test (atanh -5.0e-01+8.3886080e+06i) -7.1054273576008756410e-15+1.5707962075856070685e0i) (num-test (atanh -5.0e-01-8.3886080e+06i) -7.1054273576008756410e-15-1.5707962075856070685e0i) (num-test (atanh 1.0e+00+1.19209289550781250e-07i) 8.3177661667193446012e0+7.8539819319977069731e-1i) (num-test (atanh 1.0e+00-1.19209289550781250e-07i) 8.3177661667193446012e0-7.8539819319977069731e-1i) (num-test (atanh -1.0e+00+1.19209289550781250e-07i) -8.3177661667193446012e0+7.8539819319977069731e-1i) (num-test (atanh -1.0e+00-1.19209289550781250e-07i) -8.3177661667193446012e0-7.8539819319977069731e-1i) (num-test (atanh 1.0e+00+5.0e-01i) 7.0830333601405402006e-1+9.0788749496088038670e-1i) (num-test (atanh 1.0e+00-5.0e-01i) 7.0830333601405402006e-1-9.0788749496088038670e-1i) (num-test (atanh -1.0e+00+5.0e-01i) -7.0830333601405402006e-1+9.0788749496088038670e-1i) (num-test (atanh -1.0e+00-5.0e-01i) -7.0830333601405402006e-1-9.0788749496088038670e-1i) (num-test (atanh 1.0e+00+1.0e+00i) 4.0235947810852509365e-1+1.0172219678978513677e0i) (num-test (atanh 1.0e+00-1.0e+00i) 4.0235947810852509365e-1-1.0172219678978513677e0i) (num-test (atanh -1.0e+00+1.0e+00i) -4.0235947810852509365e-1+1.0172219678978513677e0i) (num-test (atanh -1.0e+00-1.0e+00i) -4.0235947810852509365e-1-1.0172219678978513677e0i) (num-test (atanh 1.0e+00+2.0e+00i) 1.7328679513998632735e-1+1.1780972450961724644e0i) (num-test (atanh 1.0e+00-2.0e+00i) 1.7328679513998632735e-1-1.1780972450961724644e0i) (num-test (atanh -1.0e+00+2.0e+00i) -1.7328679513998632735e-1+1.1780972450961724644e0i) (num-test (atanh -1.0e+00-2.0e+00i) -1.7328679513998632735e-1-1.1780972450961724644e0i) (num-test (atanh 1.0e+00+8.3886080e+06i) 1.4210854715201599821e-14+1.5707962075856070685e0i) (num-test (atanh 1.0e+00-8.3886080e+06i) 1.4210854715201599821e-14-1.5707962075856070685e0i) (num-test (atanh -1.0e+00+8.3886080e+06i) -1.4210854715201599821e-14+1.5707962075856070685e0i) (num-test (atanh -1.0e+00-8.3886080e+06i) -1.4210854715201599821e-14-1.5707962075856070685e0i) (num-test (atanh 2.0e+00+0.0e+00i) 5.4930614433405484570e-1-1.5707963267948966192e0i) (num-test (atanh -2.0e+00+0.0e+00i) -5.4930614433405484570e-1+1.5707963267948966192e0i) (num-test (atanh 2.0e+00+1.19209289550781250e-07i) 5.4930614433405168773e-1+1.5707962870584667690e0i) (num-test (atanh 2.0e+00-1.19209289550781250e-07i) 5.4930614433405168773e-1-1.5707962870584667690e0i) (num-test (atanh -2.0e+00+1.19209289550781250e-07i) -5.4930614433405168773e-1+1.5707962870584667690e0i) (num-test (atanh -2.0e+00-1.19209289550781250e-07i) -5.4930614433405168773e-1-1.5707962870584667690e0i) (num-test (atanh 2.0e+00+5.0e-01i) 5.0037000005253101744e-1+1.4215468610018069803e0i) (num-test (atanh 2.0e+00-5.0e-01i) 5.0037000005253101744e-1-1.4215468610018069803e0i) (num-test (atanh -2.0e+00+5.0e-01i) -5.0037000005253101744e-1+1.4215468610018069803e0i) (num-test (atanh -2.0e+00-5.0e-01i) -5.0037000005253101744e-1-1.4215468610018069803e0i) (num-test (atanh 2.0e+00+1.0e+00i) 4.0235947810852509365e-1+1.3389725222944935611e0i) (num-test (atanh 2.0e+00-1.0e+00i) 4.0235947810852509365e-1-1.3389725222944935611e0i) (num-test (atanh -2.0e+00+1.0e+00i) -4.0235947810852509365e-1+1.3389725222944935611e0i) (num-test (atanh -2.0e+00-1.0e+00i) -4.0235947810852509365e-1-1.3389725222944935611e0i) (num-test (atanh 2.0e+00+2.0e+00i) 2.3887786125685909036e-1+1.3112232696716351433e0i) (num-test (atanh 2.0e+00-2.0e+00i) 2.3887786125685909036e-1-1.3112232696716351433e0i) (num-test (atanh -2.0e+00+2.0e+00i) -2.3887786125685909036e-1+1.3112232696716351433e0i) (num-test (atanh -2.0e+00-2.0e+00i) -2.3887786125685909036e-1-1.3112232696716351433e0i) (num-test (atanh 2.0e+00+8.3886080e+06i) 2.8421709430401987951e-14+1.5707962075856070685e0i) (num-test (atanh 2.0e+00-8.3886080e+06i) 2.8421709430401987951e-14-1.5707962075856070685e0i) (num-test (atanh -2.0e+00+8.3886080e+06i) -2.8421709430401987951e-14+1.5707962075856070685e0i) (num-test (atanh -2.0e+00-8.3886080e+06i) -2.8421709430401987951e-14-1.5707962075856070685e0i) (num-test (atanh 8.3886080e+06+0.0e+00i) 1.1920928955078181469e-7-1.5707963267948966192e0i) (num-test (atanh -8.3886080e+06+0.0e+00i) -1.1920928955078181469e-7+1.5707963267948966192e0i) (num-test (atanh 8.3886080e+06+1.19209289550781250e-07i) 1.1920928955078181469e-7+1.5707963267948966192e0i) (num-test (atanh 8.3886080e+06-1.19209289550781250e-07i) 1.1920928955078181469e-7-1.5707963267948966192e0i) (num-test (atanh -8.3886080e+06+1.19209289550781250e-07i) -1.1920928955078181469e-7+1.5707963267948966192e0i) (num-test (atanh -8.3886080e+06-1.19209289550781250e-07i) -1.1920928955078181469e-7-1.5707963267948966192e0i) (num-test (atanh 8.3886080e+06+5.0e-01i) 1.1920928955078139117e-7+1.5707963267948895138e0i) (num-test (atanh 8.3886080e+06-5.0e-01i) 1.1920928955078139117e-7-1.5707963267948895138e0i) (num-test (atanh -8.3886080e+06+5.0e-01i) -1.1920928955078139117e-7+1.5707963267948895138e0i) (num-test (atanh -8.3886080e+06-5.0e-01i) -1.1920928955078139117e-7-1.5707963267948895138e0i) (num-test (atanh 8.3886080e+06+1.0e+00i) 1.1920928955078012062e-7+1.5707963267948824084e0i) (num-test (atanh 8.3886080e+06-1.0e+00i) 1.1920928955078012062e-7-1.5707963267948824084e0i) (num-test (atanh -8.3886080e+06+1.0e+00i) -1.1920928955078012062e-7+1.5707963267948824084e0i) (num-test (atanh -8.3886080e+06-1.0e+00i) -1.1920928955078012062e-7-1.5707963267948824084e0i) (num-test (atanh 8.3886080e+06+2.0e+00i) 1.1920928955077503843e-7+1.5707963267948681975e0i) (num-test (atanh 8.3886080e+06-2.0e+00i) 1.1920928955077503843e-7-1.5707963267948681975e0i) (num-test (atanh -8.3886080e+06+2.0e+00i) -1.1920928955077503843e-7+1.5707963267948681975e0i) (num-test (atanh -8.3886080e+06-2.0e+00i) -1.1920928955077503843e-7-1.5707963267948681975e0i) (num-test (atanh 8.3886080e+06+8.3886080e+06i) 5.9604644775390483828e-8+1.5707962671902518438e0i) (num-test (atanh 8.3886080e+06-8.3886080e+06i) 5.9604644775390483828e-8-1.5707962671902518438e0i) (num-test (atanh -8.3886080e+06+8.3886080e+06i) -5.9604644775390483828e-8+1.5707962671902518438e0i) (num-test (atanh -8.3886080e+06-8.3886080e+06i) -5.9604644775390483828e-8-1.5707962671902518438e0i) (let ((err 0.0)) (do ((i 0 (+ i 1)) (x 1.0 (+ x .1))) ((= i 100)) (let ((y (abs (- x (cosh (acosh x)))))) (if (> y err) (set! err y)))) (if (> err 1e-14) (begin (display "(cosh (acosh ...)) error: ") (display err) (newline)))) (let ((err 0.0)) (do ((i 0 (+ i 1)) (x 1.0+i (+ x 0.1-0.1i))) ((= i 100)) (let ((y (magnitude (- x (cosh (acosh x)))))) (if (> y err) (set! err y)))) (if (> err 1e-14) (begin (display "(cosh (acosh [complex] ...)) error: ") (display err) (newline)))) (let ((err 0.0)) (do ((i 0 (+ i 1)) (x 1.0 (+ x .1))) ((= i 100)) (let ((y (abs (- x (sinh (asinh x)))))) (if (> y err) (set! err y)))) (if (> err 1e-14) (begin (display "(sinh (asinh ...)) error: ") (display err) (newline)))) (let ((err 0.0)) (do ((i 0 (+ i 1)) (x 1.0-i (+ x -0.1+i))) ((= i 100)) (let ((y (magnitude (- x (sinh (asinh x)))))) (if (> y err) (set! err y)))) (if (> err 1e-9) (begin (display "(sinh (asinh [complex] ...)) error: ") (display err) (newline)))) (let ((err 0.0)) (do ((i 0 (+ i 1)) (x 0.0 (+ x .1))) ((= i 100)) (let ((y (magnitude (- x (tanh (atanh x)))))) (if (> y err) (set! err y)))) (if (> err 1e-12) (begin (display "(tanh (atanh ...)) error: ") (display err) (newline)))) )) ;; -------- 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 our-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 -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) (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))) (if (or (not (integer? val)) (not (eqv? sqn val))) (begin (display "(sqrt ") (display n) (display ") expected ") (display sqn) (display " but got ") (display val) (newline)))))) (list 9 491401 19439281 1248844921 235565593201) (list 3 701 4409 35339 485351)) (for-each (lambda (n) (if (positive? n) (let ((val (sqrt n))) (if (or (integer? val) (> (abs (- (* val val) n)) .001)) (begin (display "(sqrt ") (display n) (display ") expected ") (display (sqrt (exact->inexact n))) (display " but got ") (display val) (newline)))))) (list 10 491400 19439282 1248844920 235565593200)) (test (eqv? (expt 2 3) 8) #t) ;(test (eqv? (log 8 2) 3) #t) ; optimization in C (-O2) changes this (num-test (log 8 2) 3) (num-test (log 1/8 2) -3) (test (eqv? (expt 701 2) 491401) #t) (test (eqv? (log 491401 701) 2) #t) )) (let ((err 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) (set! err y)))) (if (> err 1e-14) (begin (display "(sqr (sqrt ...)) error: ") (display err) (newline)))) (let ((err 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) (set! err y)))) (if (> err 1e-12) (begin (display "(sqr (sqrt [complex] ...)) error: ") (display err) (newline)))) ;; -------- 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 our-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 our-pi))) 0+i) (num-test (exp (make-rectangular 0.0 our-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) ;; -------- log (num-test (log (/ (+ 1 (sqrt 5)) 2)) (acosh (/ (sqrt 5) 2))) (num-test (log 1) 0.0) (num-test (log -1) 0.0+3.14159265358979i) (num-test (log 2) 0.69314718055995) (num-test (log -2) 0.69314718055995+3.14159265358979i) (num-test (log 3) 1.09861228866811) (num-test (log -3) 1.09861228866811+3.14159265358979i) (num-test (log 10) 2.30258509299405) (num-test (log -10) 2.30258509299405+3.14159265358979i) (num-test (log 1234) 7.11801620446533) (num-test (log -1234) 7.11801620446533+3.14159265358979i) (num-test (log 1234000000) 20.93352676242961) (num-test (log -1234000000) 20.93352676242961+3.14159265358979i) (num-test (log 500029) 13.12242137572239) (num-test (log -500029) 13.12242137572239+3.14159265358979i) (num-test (log 362880) 12.80182748008147) (num-test (log -362880) 12.80182748008147+3.14159265358979i) (num-test (log 1/1) 0.0) (num-test (log -1/1) 0.0+3.14159265358979i) (num-test (log 1/2) -0.69314718055995) (num-test (log -1/2) -0.69314718055995+3.14159265358979i) (num-test (log 1/3) -1.09861228866811) (num-test (log -1/3) -1.09861228866811+3.14159265358979i) (num-test (log 1/10) -2.30258509299405) (num-test (log -1/10) -2.30258509299405+3.14159265358979i) (num-test (log 1/1234) -7.11801620446533) (num-test (log -1/1234) -7.11801620446533+3.14159265358979i) (num-test (log 1/1234000000) -20.93352676242961) (num-test (log -1/1234000000) -20.93352676242961+3.14159265358979i) (num-test (log 1/500029) -13.12242137572239) (num-test (log -1/500029) -13.12242137572239+3.14159265358979i) (num-test (log 1/362880) -12.80182748008147) (num-test (log -1/362880) -12.80182748008147+3.14159265358979i) (num-test (log 2/1) 0.69314718055995) (num-test (log -2/1) 0.69314718055995+3.14159265358979i) (num-test (log 2/2) 0.0) (num-test (log -2/2) 0.0+3.14159265358979i) (num-test (log 2/3) -0.40546510810816) (num-test (log -2/3) -0.40546510810816+3.14159265358979i) (num-test (log 2/10) -1.60943791243410) (num-test (log -2/10) -1.60943791243410+3.14159265358979i) (num-test (log 2/1234) -6.42486902390539) (num-test (log -2/1234) -6.42486902390539+3.14159265358979i) (num-test (log 2/1234000000) -20.24037958186966) (num-test (log -2/1234000000) -20.24037958186966+3.14159265358979i) (num-test (log 2/500029) -12.42927419516245) (num-test (log -2/500029) -12.42927419516245+3.14159265358979i) (num-test (log 2/362880) -12.10868029952152) (num-test (log -2/362880) -12.10868029952152+3.14159265358979i) (num-test (log 3/1) 1.09861228866811) (num-test (log -3/1) 1.09861228866811+3.14159265358979i) (num-test (log 3/2) 0.40546510810816) (num-test (log -3/2) 0.40546510810816+3.14159265358979i) (num-test (log 3/3) 0.0) (num-test (log -3/3) 0.0+3.14159265358979i) (num-test (log 3/10) -1.20397280432594) (num-test (log -3/10) -1.20397280432594+3.14159265358979i) (num-test (log 3/1234) -6.01940391579722) (num-test (log -3/1234) -6.01940391579722+3.14159265358979i) (num-test (log 3/1234000000) -19.83491447376150) (num-test (log -3/1234000000) -19.83491447376150+3.14159265358979i) (num-test (log 3/500029) -12.02380908705428) (num-test (log -3/500029) -12.02380908705428+3.14159265358979i) (num-test (log 3/362880) -11.70321519141336) (num-test (log -3/362880) -11.70321519141336+3.14159265358979i) (num-test (log 10/1) 2.30258509299405) (num-test (log -10/1) 2.30258509299405+3.14159265358979i) (num-test (log 10/2) 1.60943791243410) (num-test (log -10/2) 1.60943791243410+3.14159265358979i) (num-test (log 10/3) 1.20397280432594) (num-test (log -10/3) 1.20397280432594+3.14159265358979i) (num-test (log 10/10) 0.0) (num-test (log -10/10) 0.0+3.14159265358979i) (num-test (log 10/1234) -4.81543111147129) (num-test (log -10/1234) -4.81543111147129+3.14159265358979i) (num-test (log 10/1234000000) -18.63094166943556) (num-test (log -10/1234000000) -18.63094166943556+3.14159265358979i) (num-test (log 10/500029) -10.81983628272835) (num-test (log -10/500029) -10.81983628272835+3.14159265358979i) (num-test (log 10/362880) -10.49924238708742) (num-test (log -10/362880) -10.49924238708742+3.14159265358979i) (num-test (log 1234/1) 7.11801620446533) (num-test (log -1234/1) 7.11801620446533+3.14159265358979i) (num-test (log 1234/2) 6.42486902390539) (num-test (log -1234/2) 6.42486902390539+3.14159265358979i) (num-test (log 1234/3) 6.01940391579722) (num-test (log -1234/3) 6.01940391579722+3.14159265358979i) (num-test (log 1234/10) 4.81543111147129) (num-test (log -1234/10) 4.81543111147129+3.14159265358979i) (num-test (log 1234/1234) 0.0) (num-test (log -1234/1234) 0.0+3.14159265358979i) (num-test (log 1234/1234000000) -13.81551055796427) (num-test (log -1234/1234000000) -13.81551055796427+3.14159265358979i) (num-test (log 1234/500029) -6.00440517125706) (num-test (log -1234/500029) -6.00440517125706+3.14159265358979i) (num-test (log 1234/362880) -5.68381127561614) (num-test (log -1234/362880) -5.68381127561614+3.14159265358979i) (num-test (log 1234000000/1) 20.93352676242961) (num-test (log -1234000000/1) 20.93352676242961+3.14159265358979i) (num-test (log 1234000000/2) 20.24037958186966) (num-test (log -1234000000/2) 20.24037958186966+3.14159265358979i) (num-test (log 1234000000/3) 19.83491447376150) (num-test (log -1234000000/3) 19.83491447376150+3.14159265358979i) (num-test (log 1234000000/10) 18.63094166943556) (num-test (log -1234000000/10) 18.63094166943556+3.14159265358979i) (num-test (log 1234000000/1234) 13.81551055796427) (num-test (log -1234000000/1234) 13.81551055796427+3.14159265358979i) (num-test (log 1234000000/1234000000) 0.0) (num-test (log -1234000000/1234000000) 0.0+3.14159265358979i) (num-test (log 1234000000/500029) 7.81110538670721) (num-test (log -1234000000/500029) 7.81110538670721+3.14159265358979i) (num-test (log 1234000000/362880) 8.13169928234814) (num-test (log -1234000000/362880) 8.13169928234814+3.14159265358979i) (num-test (log 500029/1) 13.12242137572239) (num-test (log -500029/1) 13.12242137572239+3.14159265358979i) (num-test (log 500029/2) 12.42927419516245) (num-test (log -500029/2) 12.42927419516245+3.14159265358979i) (num-test (log 500029/3) 12.02380908705428) (num-test (log -500029/3) 12.02380908705428+3.14159265358979i) (num-test (log 500029/10) 10.81983628272835) (num-test (log -500029/10) 10.81983628272835+3.14159265358979i) (num-test (log 500029/1234) 6.00440517125706) (num-test (log -500029/1234) 6.00440517125706+3.14159265358979i) (num-test (log 500029/1234000000) -7.81110538670721) (num-test (log -500029/1234000000) -7.81110538670721+3.14159265358979i) (num-test (log 500029/500029) 0.0) (num-test (log -500029/500029) 0.0+3.14159265358979i) (num-test (log 500029/362880) 0.32059389564092) (num-test (log -500029/362880) 0.32059389564092+3.14159265358979i) (num-test (log 362880/1) 12.80182748008147) (num-test (log -362880/1) 12.80182748008147+3.14159265358979i) (num-test (log 362880/2) 12.10868029952152) (num-test (log -362880/2) 12.10868029952152+3.14159265358979i) (num-test (log 362880/3) 11.70321519141336) (num-test (log -362880/3) 11.70321519141336+3.14159265358979i) (num-test (log 362880/10) 10.49924238708742) (num-test (log -362880/10) 10.49924238708742+3.14159265358979i) (num-test (log 362880/1234) 5.68381127561614) (num-test (log -362880/1234) 5.68381127561614+3.14159265358979i) (num-test (log 362880/1234000000) -8.13169928234814) (num-test (log -362880/1234000000) -8.13169928234814+3.14159265358979i) (num-test (log 362880/500029) -0.32059389564092) (num-test (log -362880/500029) -0.32059389564092+3.14159265358979i) (num-test (log 362880/362880) 0.0) (num-test (log -362880/362880) 0.0+3.14159265358979i) (num-test (log 0.00000001) -18.42068074395237) (num-test (log -0.00000001) -18.42068074395237+3.14159265358979i) (num-test (log 1.0) 0.0) (num-test (log -1.0) 0.0+3.14159265358979i) (num-test (log our-pi) 1.14472988584940) (num-test (log -3.14159265358979) 1.14472988584940+3.14159265358979i) (num-test (log 2.71828182845905) 1.0) (num-test (log -2.71828182845905) 1.0+3.14159265358979i) (num-test (log 1234.0) 7.11801620446533) (num-test (log -1234.0) 7.11801620446533+3.14159265358979i) (num-test (log 1234000000.0) 20.93352676242961) (num-test (log -1234000000.0) 20.93352676242961+3.14159265358979i) (num-test (log 0.0+0.00000001i) -18.42068074395237+1.57079632679490i) (num-test (log -0.0+0.00000001i) -18.42068074395237+1.57079632679490i) (num-test (log 0.0-0.00000001i) -18.42068074395237-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+1.0i) 0.0+1.57079632679490i) (num-test (log 0.0-1.0i) 0.0-1.57079632679490i) (num-test (log -0.0-1.0i) 0.0-1.57079632679490i) (num-test (log 0.0+3.14159265358979i) 1.14472988584940+1.57079632679490i) (num-test (log -0.0+3.14159265358979i) 1.14472988584940+1.57079632679490i) (num-test (log 0.0-3.14159265358979i) 1.14472988584940-1.57079632679490i) (num-test (log -0.0-3.14159265358979i) 1.14472988584940-1.57079632679490i) (num-test (log 0.0+2.71828182845905i) 1.0+1.57079632679490i) (num-test (log -0.0+2.71828182845905i) 1.0+1.57079632679490i) (num-test (log 0.0-2.71828182845905i) 1.0-1.57079632679490i) (num-test (log -0.0-2.71828182845905i) 1.0-1.57079632679490i) (num-test (log 0.0+1234.0i) 7.11801620446533+1.57079632679490i) (num-test (log -0.0+1234.0i) 7.11801620446533+1.57079632679490i) (num-test (log 0.0-1234.0i) 7.11801620446533-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+1234000000.0i) 20.93352676242961+1.57079632679490i) (num-test (log 0.0-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log -0.0-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log 0.00000001+0.0i) -18.42068074395237) (num-test (log -0.00000001+0.0i) -18.42068074395237+3.14159265358979i) (num-test (log 0.00000001-0.0i) -18.42068074395237) (num-test (log -0.00000001-0.0i) -18.42068074395237+3.14159265358979i) (num-test (log 0.00000001+0.00000001i) -18.07410715367239+0.78539816339745i) (num-test (log -0.00000001+0.00000001i) -18.07410715367239+2.35619449019234i) (num-test (log 0.00000001-0.00000001i) -18.07410715367239-0.78539816339745i) (num-test (log -0.00000001-0.00000001i) -18.07410715367239-2.35619449019234i) (num-test (log 0.00000001+1.0i) 0.0+1.57079631679490i) (num-test (log -0.00000001+1.0i) 0.0+1.57079633679490i) (num-test (log 0.00000001-1.0i) 0.0-1.57079631679490i) (num-test (log -0.00000001-1.0i) 0.0-1.57079633679490i) (num-test (log 0.00000001+3.14159265358979i) 1.14472988584940+1.57079632361180i) (num-test (log -0.00000001+3.14159265358979i) 1.14472988584940+1.57079632997800i) (num-test (log 0.00000001-3.14159265358979i) 1.14472988584940-1.57079632361180i) (num-test (log -0.00000001-3.14159265358979i) 1.14472988584940-1.57079632997800i) (num-test (log 0.00000001+2.71828182845905i) 1.0+1.57079632311610i) (num-test (log -0.00000001+2.71828182845905i) 1.0+1.57079633047369i) (num-test (log 0.00000001-2.71828182845905i) 1.0-1.57079632311610i) (num-test (log -0.00000001-2.71828182845905i) 1.0-1.57079633047369i) (num-test (log 0.00000001+1234.0i) 7.11801620446533+1.57079632678679i) (num-test (log -0.00000001+1234.0i) 7.11801620446533+1.57079632680300i) (num-test (log 0.00000001-1234.0i) 7.11801620446533-1.57079632678679i) (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+1234000000.0i) 20.93352676242961+1.57079632679490i) (num-test (log 0.00000001-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log -0.00000001-1234000000.0i) 20.93352676242961-1.57079632679490i) (num-test (log 1.0+0.0i) 0.0) (num-test (log -1.0+0.0i) 0.0+3.14159265358979i) (num-test (log 1.0-0.0i) 0.0) (num-test (log -1.0-0.0i) 0.0+3.14159265358979i) (num-test (log 1.0+0.00000001i) 0.0+0.00000001i) (num-test (log -1.0+0.00000001i) 0.0+3.14159264358979i) (num-test (log 1.0-0.00000001i) 0.0-0.00000001i) (num-test (log -1.0-0.00000001i) 0.0-3.14159264358979i) (num-test (log 1.0+1.0i) 0.34657359027997+0.78539816339745i) (num-test (log -1.0+1.0i) 0.34657359027997+2.35619449019234i) (num-test (log 1.0-1.0i) 0.34657359027997-0.78539816339745i) (num-test (log -1.0-1.0i) 0.34657359027997-2.35619449019234i) (num-test (log 1.0+3.14159265358979i) 1.19298515341341+1.26262725567891i) (num-test (log -1.0+3.14159265358979i) 1.19298515341341+1.87896539791088i) (num-test (log 1.0-3.14159265358979i) 1.19298515341341-1.26262725567891i) (num-test (log -1.0-3.14159265358979i) 1.19298515341341-1.87896539791088i) (num-test (log 1.0+2.71828182845905i) 1.06346400552149+1.21828290501728i) (num-test (log -1.0+2.71828182845905i) 1.06346400552149+1.92330974857252i) (num-test (log 1.0-2.71828182845905i) 1.06346400552149-1.21828290501728i) (num-test (log -1.0-2.71828182845905i) 1.06346400552149-1.92330974857252i) (num-test (log 1.0+1234.0i) 7.11801653281724+1.56998595420081i) (num-test (log -1.0+1234.0i) 7.11801653281724+1.57160669938898i) (num-test (log 1.0-1234.0i) 7.11801653281724-1.56998595420081i) (num-test (log -1.0-1234.0i) 7.11801653281724-1.57160669938898i) (num-test (log 1.0+1234000000.0i) 20.93352676242961+1.57079632598452i) (num-test (log -1.0+1234000000.0i) 20.93352676242961+1.57079632760527i) (num-test (log 1.0-1234000000.0i) 20.93352676242961-1.57079632598452i) (num-test (log -1.0-1234000000.0i) 20.93352676242961-1.57079632760527i) (num-test (log 3.14159265358979+0.0i) 1.14472988584940) (num-test (log -3.14159265358979+0.0i) 1.14472988584940+3.14159265358979i) (num-test (log 3.14159265358979-0.0i) 1.14472988584940) (num-test (log -3.14159265358979-0.0i) 1.14472988584940+3.14159265358979i) (num-test (log 3.14159265358979+0.00000001i) 1.14472988584940+0.00000000318310i) (num-test (log -3.14159265358979+0.00000001i) 1.14472988584940+3.14159265040669i) (num-test (log 3.14159265358979-0.00000001i) 1.14472988584940-0.00000000318310i) (num-test (log -3.14159265358979-0.00000001i) 1.14472988584940-3.14159265040669i) (num-test (log 3.14159265358979+1.0i) 1.19298515341341+0.30816907111598i) (num-test (log -3.14159265358979+1.0i) 1.19298515341341+2.83342358247381i) (num-test (log 3.14159265358979-1.0i) 1.19298515341341-0.30816907111598i) (num-test (log -3.14159265358979-1.0i) 1.19298515341341-2.83342358247381i) (num-test (log 3.14159265358979+3.14159265358979i) 1.49130347612937+0.78539816339745i) (num-test (log -3.14159265358979+3.14159265358979i) 1.49130347612937+2.35619449019234i) (num-test (log 3.14159265358979-3.14159265358979i) 1.49130347612937-0.78539816339745i) (num-test (log -3.14159265358979-3.14159265358979i) 1.49130347612937-2.35619449019234i) (num-test (log 3.14159265358979+2.71828182845905i) 1.42415703773030+0.71328454043905i) (num-test (log -3.14159265358979+2.71828182845905i) 1.42415703773030+2.42830811315074i) (num-test (log 3.14159265358979-2.71828182845905i) 1.42415703773030-0.71328454043905i) (num-test (log -3.14159265358979-2.71828182845905i) 1.42415703773030-2.42830811315074i) (num-test (log 3.14159265358979+1234.0i) 7.11801944515932+1.56825047114960i) (num-test (log -3.14159265358979+1234.0i) 7.11801944515932+1.57334218244020i) (num-test (log 3.14159265358979-1234.0i) 7.11801944515932-1.56825047114960i) (num-test (log -3.14159265358979-1234.0i) 7.11801944515932-1.57334218244020i) (num-test (log 3.14159265358979+1234000000.0i) 20.93352676242961+1.57079632424904i) (num-test (log -3.14159265358979+1234000000.0i) 20.93352676242961+1.57079632934076i) (num-test (log 3.14159265358979-1234000000.0i) 20.93352676242961-1.57079632424904i) (num-test (log -3.14159265358979-1234000000.0i) 20.93352676242961-1.57079632934076i) (num-test (log 2.71828182845905+0.0i) 1.0) (num-test (log -2.71828182845905+0.0i) 1.0+3.14159265358979i) (num-test (log 2.71828182845905-0.0i) 1.0) (num-test (log -2.71828182845905-0.0i) 1.0+3.14159265358979i) (num-test (log 2.71828182845905+0.00000001i) 1.0+0.00000000367879i) (num-test (log -2.71828182845905+0.00000001i) 1.0+3.14159264991100i) (num-test (log 2.71828182845905-0.00000001i) 1.0-0.00000000367879i) (num-test (log -2.71828182845905-0.00000001i) 1.0-3.14159264991100i) (num-test (log 2.71828182845905+1.0i) 1.06346400552149+0.35251342177762i) (num-test (log -2.71828182845905+1.0i) 1.06346400552149+2.78907923181217i) (num-test (log 2.71828182845905-1.0i) 1.06346400552149-0.35251342177762i) (num-test (log -2.71828182845905-1.0i) 1.06346400552149-2.78907923181217i) (num-test (log 2.71828182845905+3.14159265358979i) 1.42415703773030+0.85751178635585i) (num-test (log -2.71828182845905+3.14159265358979i) 1.42415703773030+2.28408086723395i) (num-test (log 2.71828182845905-3.14159265358979i) 1.42415703773030-0.85751178635585i) (num-test (log -2.71828182845905-3.14159265358979i) 1.42415703773030-2.28408086723395i) (num-test (log 2.71828182845905+2.71828182845905i) 1.34657359027997+0.78539816339745i) (num-test (log -2.71828182845905+2.71828182845905i) 1.34657359027997+2.35619449019234i) (num-test (log 2.71828182845905-2.71828182845905i) 1.34657359027997-0.78539816339745i) (num-test (log -2.71828182845905-2.71828182845905i) 1.34657359027997-2.35619449019234i) (num-test (log 2.71828182845905+1234.0i) 7.11801863067090+1.56859350877892i) (num-test (log -2.71828182845905+1234.0i) 7.11801863067090+1.57299914481088i) (num-test (log 2.71828182845905-1234.0i) 7.11801863067090-1.56859350877892i) (num-test (log -2.71828182845905-1234.0i) 7.11801863067090-1.57299914481088i) (num-test (log 2.71828182845905+1234000000.0i) 20.93352676242961+1.57079632459208i) (num-test (log -2.71828182845905+1234000000.0i) 20.93352676242961+1.57079632899772i) (num-test (log 2.71828182845905-1234000000.0i) 20.93352676242961-1.57079632459208i) (num-test (log -2.71828182845905-1234000000.0i) 20.93352676242961-1.57079632899772i) (num-test (log 1234.0+0.0i) 7.11801620446533) (num-test (log -1234.0+0.0i) 7.11801620446533+3.14159265358979i) (num-test (log 1234.0-0.0i) 7.11801620446533) (num-test (log -1234.0-0.0i) 7.11801620446533+3.14159265358979i) (num-test (log 1234.0+0.00000001i) 7.11801620446533+0.00000000000810i) (num-test (log -1234.0+0.00000001i) 7.11801620446533+3.14159265358169i) (num-test (log 1234.0-0.00000001i) 7.11801620446533-0.00000000000810i) (num-test (log -1234.0-0.00000001i) 7.11801620446533-3.14159265358169i) (num-test (log 1234.0+1.0i) 7.11801653281724+0.00081037259408i) (num-test (log -1234.0+1.0i) 7.11801653281724+3.14078228099571i) (num-test (log 1234.0-1.0i) 7.11801653281724-0.00081037259408i) (num-test (log -1234.0-1.0i) 7.11801653281724-3.14078228099571i) (num-test (log 1234.0+3.14159265358979i) 7.11801944515932+0.00254585564530i) (num-test (log -1234.0+3.14159265358979i) 7.11801944515932+3.13904679794449i) (num-test (log 1234.0-3.14159265358979i) 7.11801944515932-0.00254585564530i) (num-test (log -1234.0-3.14159265358979i) 7.11801944515932-3.13904679794449i) (num-test (log 1234.0+2.71828182845905i) 7.11801863067090+0.00220281801598i) (num-test (log -1234.0+2.71828182845905i) 7.11801863067090+3.13938983557381i) (num-test (log 1234.0-2.71828182845905i) 7.11801863067090-0.00220281801598i) (num-test (log -1234.0-2.71828182845905i) 7.11801863067090-3.13938983557381i) (num-test (log 1234.0+1234.0i) 7.46458979474531+0.78539816339745i) (num-test (log -1234.0+1234.0i) 7.46458979474531+2.35619449019234i) (num-test (log 1234.0-1234.0i) 7.46458979474531-0.78539816339745i) (num-test (log -1234.0-1234.0i) 7.46458979474531-2.35619449019234i) (num-test (log 1234.0+1234000000.0i) 20.93352676243011+1.57079532679490i) (num-test (log -1234.0+1234000000.0i) 20.93352676243011+1.57079732679490i) (num-test (log 1234.0-1234000000.0i) 20.93352676243011-1.57079532679490i) (num-test (log -1234.0-1234000000.0i) 20.93352676243011-1.57079732679490i) (num-test (log 1234000000.0+0.0i) 20.93352676242961) (num-test (log -1234000000.0+0.0i) 20.93352676242961+3.14159265358979i) (num-test (log 1234000000.0-0.0i) 20.93352676242961) (num-test (log -1234000000.0-0.0i) 20.93352676242961+3.14159265358979i) (num-test (log 1234000000.0+0.00000001i) 20.93352676242961+0.0i) (num-test (log -1234000000.0+0.00000001i) 20.93352676242961+3.14159265358979i) (num-test (log 1234000000.0-0.00000001i) 20.93352676242961-0.0i) (num-test (log -1234000000.0-0.00000001i) 20.93352676242961-3.14159265358979i) (num-test (log 1234000000.0+1.0i) 20.93352676242961+0.00000000081037i) (num-test (log -1234000000.0+1.0i) 20.93352676242961+3.14159265277942i) (num-test (log 1234000000.0-1.0i) 20.93352676242961-0.00000000081037i) (num-test (log -1234000000.0-1.0i) 20.93352676242961-3.14159265277942i) (num-test (log 1234000000.0+3.14159265358979i) 20.93352676242961+0.00000000254586i) (num-test (log -1234000000.0+3.14159265358979i) 20.93352676242961+3.14159265104393i) (num-test (log 1234000000.0-3.14159265358979i) 20.93352676242961-0.00000000254586i) (num-test (log -1234000000.0-3.14159265358979i) 20.93352676242961-3.14159265104393i) (num-test (log 1234000000.0+2.71828182845905i) 20.93352676242961+0.00000000220282i) (num-test (log -1234000000.0+2.71828182845905i) 20.93352676242961+3.14159265138697i) (num-test (log 1234000000.0-2.71828182845905i) 20.93352676242961-0.00000000220282i) (num-test (log -1234000000.0-2.71828182845905i) 20.93352676242961-3.14159265138697i) (num-test (log 1234000000.0+1234.0i) 20.93352676243011+0.00000100000000i) (num-test (log -1234000000.0+1234.0i) 20.93352676243011+3.14159165358979i) (num-test (log 1234000000.0-1234.0i) 20.93352676243011-0.00000100000000i) (num-test (log -1234000000.0-1234.0i) 20.93352676243011-3.14159165358979i) (num-test (log 1234000000.0+1234000000.0i) 21.28010035270958+0.78539816339745i) (num-test (log -1234000000.0+1234000000.0i) 21.28010035270958+2.35619449019234i) (num-test (log 1234000000.0-1234000000.0i) 21.28010035270958-0.78539816339745i) (num-test (log -1234000000.0-1234000000.0i) 21.28010035270958-2.35619449019234i) (num-test (log .3678794411714423) -1.0) (num-test (log 22026.46579480672) 10.0) (num-test (log 2.688117141816135E+43) 100.0) (num-test (log 4.5399929762484853E-5) -10.0) (num-test (log 3.720075976020836E-44) -100.0) (num-test (log 2.2250739e-308) -708.39641851362) (num-test (log 1.7976931e+308) 709.78271287399) (num-test (log 1.19209289550781250e-07+0.0e+00i) -1.5942385152878742117e1+0.0i) (num-test (log -1.19209289550781250e-07+0.0e+00i) -1.5942385152878742117e1+3.1415926535897932385e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267949108301e0i) (num-test (log -1.19209289550781250e-07-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267949108301e0i) (num-test (log 5.0e-01+0.0e+00i) -6.9314718055994530942e-1+0.0i) (num-test (log -5.0e-01+0.0e+00i) -6.9314718055994530942e-1+3.1415926535897932385e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878743893e1+1.5707963863995413946e0i) (num-test (log -5.0e-01-8.3886080e+06i) 1.5942385152878743893e1-1.5707963863995413946e0i) (num-test (log 1.0e+00+0.0e+00i) 0e0+0.0i) (num-test (log -1.0e+00+0.0e+00i) 0+3.1415926535897932385e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878749222e1+1.570796446004186170e0i) (num-test (log -1.0e+00-8.3886080e+06i) 1.5942385152878749222e1-1.570796446004186170e0i) (num-test (log 2.0e+00+0.0e+00i) 6.9314718055994530942e-1+0.0i) (num-test (log -2.0e+00+0.0e+00i) 6.9314718055994530942e-1+3.1415926535897932385e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878770538e1+1.5707965652134757208e0i) (num-test (log -2.0e+00-8.3886080e+06i) 1.5942385152878770538e1-1.5707965652134757208e0i) (num-test (log 8.3886080e+06+0.0e+00i) 1.5942385152878742117e1+0.0i) (num-test (log -8.3886080e+06+0.0e+00i) 1.5942385152878742117e1+3.1415926535897932385e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.6288958743158714771e1+2.3561944901923449288e0i) (num-test (log -8.3886080e+06-8.3886080e+06i) 1.6288958743158714771e1-2.3561944901923449288e0i) (num-test (log 0.0e+00+1.19209289550781250e-07i) -1.5942385152878742117e1+1.5707963267948966192e0i) (num-test (log 0.0e+00-1.19209289550781250e-07i) -1.5942385152878742117e1-1.5707963267948966192e0i) (num-test (log 0.0e+00+5.0e-01i) -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+1.0e+00i) 0+1.5707963267948966192e0i) (num-test (log 0.0e+00-1.0e+00i) 0-1.5707963267948966192e0i) (num-test (log 0.0e+00+2.0e+00i) 6.9314718055994530942e-1+1.5707963267948966192e0i) (num-test (log 0.0e+00-2.0e+00i) 6.9314718055994530942e-1-1.5707963267948966192e0i) (num-test (log 0.0e+00+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267948966192e0i) (num-test (log 0.0e+00-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267948966192e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878742117e1+1.5707963267949108301e0i) (num-test (log -1.19209289550781250e-07-8.3886080e+06i) 1.5942385152878742117e1-1.5707963267949108301e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878743893e1+1.5707963863995413946e0i) (num-test (log -5.0e-01-8.3886080e+06i) 1.5942385152878743893e1-1.5707963863995413946e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878749222e1+1.570796446004186170e0i) (num-test (log -1.0e+00-8.3886080e+06i) 1.5942385152878749222e1-1.570796446004186170e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.5942385152878770538e1+1.5707965652134757208e0i) (num-test (log -2.0e+00-8.3886080e+06i) 1.5942385152878770538e1-1.5707965652134757208e0i) (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+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+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+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+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.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+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+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+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+8.3886080e+06i) 1.6288958743158714771e1+2.3561944901923449288e0i) (num-test (log -8.3886080e+06-8.3886080e+06i) 1.6288958743158714771e1-2.3561944901923449288e0i) (num-test (exp (log 8)) 8.0) (num-test (exp (log 1000)) 1000.0) (num-test (exp (log 1000000)) 1000000.0) (num-test (exp (log 1000000000)) 1000000000.0) (num-test (log (exp 0.1)) 0.1) (num-test (log (exp 0.0001)) 0.0001) (num-test (log (exp 0.0000001)) 0.0000001) (num-test (log (exp 8)) 8.0) (num-test (log 0+i) (make-rectangular 0.0 (* 0.5 our-pi))) (num-test (log 0-i) (make-rectangular 0.0 (* -0.5 our-pi))) (num-test (log 1.0e-8) -18.42068074395237) (num-test (log 1.0e-12) -27.63102111592855) (num-test (log (log (log -1))) 0.66457192224882+0.9410294873126i) (let ((err 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) (set! err y))))) (if (> err 1e-14) (begin (display "(exp (log ...)) error: ") (display err) (newline)))) (let ((err 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) (set! err y))))) (if (> err 1e-14) (begin (display "(exp (log [complex] ...)) error: ") (display err) (newline)))) ;; -------- expt (num-test (expt 0 0) 1) (num-test (expt 0 1) 0) (num-test (expt 0 2) 0) (num-test (expt 0 3) 0) (num-test (expt 0 10) 0) (num-test (expt 0 1234) 0) (num-test (expt 1 0) 1) (num-test (expt -1 0) 1) (num-test (expt 1 0) 1) (num-test (expt 1 1) 1) (num-test (expt -1 1) -1) (num-test (expt 1 -1) 1) (num-test (expt 1 2) 1) (num-test (expt -1 2) 1) (num-test (expt 1 -2) 1) (num-test (expt 1 3) 1) (num-test (expt -1 3) -1) (num-test (expt 1 -3) 1) (num-test (expt 1 10) 1) (num-test (expt -1 10) 1) (num-test (expt 1 -10) 1) (num-test (expt 1 1234) 1) (num-test (expt -1 1234) 1) (num-test (expt 1 -1234) 1) (num-test (expt -0 -0) 1) (num-test (expt -0.0 0) 0.0) (num-test (expt 1 -0) 1) (if with-large-powers (begin (num-test (expt 0 1234000000) 0) (num-test (expt 0 500029) 0) (num-test (expt 0 362880) 0) (num-test (expt 0 (expt 2 32)) 0) (num-test (expt 0 (expt 2 31)) 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) (num-test (expt 0.0 (expt 2 32)) 0.0) (num-test (expt 0.0 (expt 2 31)) 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) (num-test (expt 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 (- (expt 2 32))) 1) (num-test (expt -1 (+ 1 (expt 2 32))) -1) (num-test (expt 1 1234000000) 1) (num-test (expt -1 1234000000) 1) (num-test (expt 1 -1234000000) 1) (num-test (expt 1 500029) 1) (num-test (expt -1 500029) -1) (num-test (expt 1 -500029) 1) (num-test (expt 1 362880) 1) (num-test (expt -1 362880) 1) (num-test (expt 1 -362880) 1) (num-test (expt 3 10) 59049) (num-test (expt -3 10) 59049) (num-test (expt 3 -10) 1/59049) (num-test (expt 1234 2) 1522756) (num-test (expt -1234 2) 1522756) (num-test (expt 1234 -2) 1/1522756) (num-test (expt 1234 -3) 1/1879080904) (num-test (expt 1234000000 -1) 1/1234000000) (num-test (expt 500029 0) 1) (num-test (expt -500029 0) 1) (num-test (expt 500029 0) 1) (num-test (expt 500029 1) 500029) (num-test (expt -500029 1) -500029) (num-test (expt 500029 -1) 1/500029) (if (or with-bignums with-64-bit-ints) (num-test (expt 500029 -2) 1/250029000841)) (num-test (expt 362880 1) 362880) (num-test (expt -362880 1) -362880) (num-test (expt 362880 -1) 1/362880) (if (or with-bignums with-64-bit-ints) (num-test (expt 362880 -2) 1/131681894400)) (num-test (expt 2/3 1234/362880) 0.99862213634996) (num-test (expt -2/3 1234/362880) 0.99856514997103+0.01066829281071i) (num-test (expt 2/10 1234000000/500029) 0.0) (num-test (expt -2/10 1234000000/500029) 0.0) (num-test (expt 2/1234 500029/1234000000) 0.99739996551176) (num-test (expt -2/1234 500029/1234000000) 0.99739915734849+0.00126969420446i) (num-test (expt 2/1234000000 362880/1234) 0.0) (num-test (expt -2/1234000000 362880/1234) 0.0) (num-test (expt 2/500029 0/10) 1) (num-test (expt -2/500029 0/10) 1) (num-test (expt 2/362880 1/3) 0.01766399721581) (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) (num-test (expt 3/1 10/2) 243) (num-test (expt -3/1 10/2) -243) (num-test (expt 3/10 500029/362880) 0.19032743228093) (num-test (expt -3/10 500029/362880) -0.07120470796705-0.17650615015342i) (num-test (expt 3/1234 362880/500029) 0.01267163536282) (num-test (expt -3/1234 362880/500029) -0.00825127977478+0.00961700186370i) (num-test (expt 3/1234000000 0/1234000000) 1) (num-test (expt -3/1234000000 0/1234000000) 1) (num-test (expt 3/500029 1/1234) 0.99030354920325) (num-test (expt -3/500029 1/1234) 0.99030033992383+0.00252117260474i) (num-test (expt 3/362880 2/10) 0.09626571578282) (num-test (expt -3/362880 2/10) 0.07788060004397+0.05658356803852i) (num-test (expt 10/1234 0/362880) 1) (num-test (expt -10/1234 0/362880) 1) (num-test (expt 10/1234000000 1/500029) 0.99996274097186) (num-test (expt -10/1234000000 1/500029) 0.99996274095212+0.00000628258681i) (num-test (expt 10/500029 2/1234000000) 0.99999998246380) (num-test (expt -10/500029 2/1234000000) 0.99999998246380+0.00000000509172i) (num-test (expt 10/362880 3/1234) 0.97479810574733) (num-test (expt -10/362880 3/1234) 0.97476967459219+0.00744502948457i) (num-test (expt 1234/10 0/1) 1) (num-test (expt -1234/10 0/1) 1) (num-test (expt 1234/1234000000 2/362880) 0.99992385921192) (num-test (expt -1234/1234000000 2/362880) 0.99992385906203+0.00001731345596i) (num-test (expt 1234/500029 3/500029) 0.99996397630725) (num-test (expt -1234/500029 3/500029) 0.99996397612963+0.00001884778372i) (num-test (expt 1234/362880 10/1234000000) 0.99999995393994) (num-test (expt -1234/362880 10/1234000000) 0.99999995393994+0.00000002545861i) (num-test (expt 1234000000/3 0/3) 1) (num-test (expt -1234000000/3 0/3) 1) (num-test (expt 1234000000/10 1/2) 11108.55526159905094) (num-test (expt -1234000000/10 1/2) 0.00000000000068+11108.55526159905094i) (num-test (expt 1234000000/500029 10/362880) 1.00021527629325) (num-test (expt -1234000000/500029 10/362880) 1.00021527254493+0.00008659250882i) (num-test (expt 1234000000/362880 1234/500029) 1.02027058333165) (num-test (expt -1234000000/362880 1234/500029) 1.02023991975054+0.00791007960266i) (num-test (expt 500029/1 362880/1234000000) 1.00386634022855) (num-test (expt -500029/1 362880/1234000000) 1.00386591183654+0.00092741384842i) (num-test (expt 500029/2 0/1234) 1) (num-test (expt -500029/2 0/1234) 1) (num-test (expt 500029/3 1/10) 3.32803123591083) (num-test (expt -500029/3 1/10) 3.16514579334680+1.02841820970710i) (num-test (expt 500029/10 2/3) 1357.26128653075921) (num-test (expt -500029/10 2/3) -678.63064326537926+1175.42275370878747i) (num-test (expt 500029/1234 3/2) 8156.80442672750178) (num-test (expt -500029/1234 3/2) -0.00000000000150-8156.80442672750178i) (num-test (expt 500029/1234000000 10/1) 0.0) (num-test (expt -500029/1234000000 10/1) 0.0-0.0i) (num-test (expt 362880/1 0/500029) 1) (num-test (expt -362880/1 0/500029) 1) (num-test (expt 362880/2 1/1234000000) 1.00000000981254) (num-test (expt -362880/2 1/1234000000) 1.00000000981254+0.00000000254586i) (num-test (expt 362880/3 2/1234) 1.01914896791961) (num-test (expt -362880/3 2/1234) 1.01913575690562+0.00518920109559i) (num-test (expt 362880/10 3/10) 23.33076127248722) (num-test (expt -362880/10 3/10) 13.71347740072436+18.87498236114703i) (num-test (expt 362880/1234 10/3) 169106218.17807236313820) (num-test (expt -362880/1234 10/3) -84553109.08903615176678-146450280.88012450933456i) (num-test (expt 362880/1234000000 1234/2) 0.0) (num-test (expt -362880/1234000000 1234/2) -0.0))) (num-test (expt 2 0) 1) (num-test (expt -2 0) 1) (num-test (expt 2 0) 1) (num-test (expt 2 1) 2) (num-test (expt -2 1) -2) (num-test (expt 2 -1) 1/2) (num-test (expt 2 2) 4) (num-test (expt -2 2) 4) (num-test (expt 2 -2) 1/4) (num-test (expt 2 3) 8) (num-test (expt -2 3) -8) (num-test (expt 2 -3) 1/8) (num-test (expt 2 10) 1024) (num-test (expt -2 10) 1024) (num-test (expt 2 -10) 1/1024) (num-test (expt 3 0) 1) (num-test (expt -3 0) 1) (num-test (expt 3 0) 1) (num-test (expt 3 1) 3) (num-test (expt -3 1) -3) (num-test (expt 3 -1) 1/3) (num-test (expt 3 2) 9) (num-test (expt -3 2) 9) (num-test (expt 3 -2) 1/9) (num-test (expt 3 3) 27) (num-test (expt -3 3) -27) (num-test (expt 3 -3) 1/27) (num-test (expt 2.0 -1.0220000e+03) 2.225073858507201383090232717332404063624E-308) (num-test (expt 2.0 1.0230000e+03) 8.98846567431157953864652595394512365232E307) (num-test (expt 0+i 1/2) (make-rectangular (/ (sqrt 2)) (/ (sqrt 2)))) (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+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) (num-test (expt (expt 0+i 1/10) 10) 0+i) (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 0+i 2) -1) (num-test (expt 0+i 0+i) 2.078795763507619085469556198349787700342E-1) (num-test (expt 0-i 2) -1) (num-test (expt (expt 2 0+i) (/ 0+i)) 2) (num-test (expt -1 1/2) 0+i) (num-test (expt -1.0 1/2) 0+i) (num-test (expt (expt -1/2 1/2) 2) -1/2) (num-test (expt (expt -1/2 -1/2) -2) -1/2) (num-test (expt (expt 1/2 -1/2) -2) 1/2) (num-test (expt (expt -1/3 1/3) 3) -1/3) (num-test (expt (expt -1/3 1/2) 2) -1/3) (num-test (expt (expt -1/3 -1/2) -2) -1/3) (num-test (expt (expt -2 1/2) 2) -2) (num-test (expt (expt -2 -1/2) -2) -2) (num-test (expt (expt -1 -1/2) -2) -1) (num-test (expt (expt 1 -1/2) -2) 1) (num-test (expt (expt 1 1/123) 123) 1) (num-test (expt (expt -1 1/123) 123) -1) (num-test (expt -1/8 -3) -512) (test (= (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) ) #t) (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) (num-test (expt (expt x y) (/ y)) x) ;; (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 (num-test (expt 4722366482869645213696 1/2) 68719476736) (num-test (expt 324518553658426726783156020576256 1/3) 68719476736) (num-test (expt 4722366482869645213696/6561 1/2) 68719476736/81) (num-test (expt 324518553658426726783156020576256/19683 1/3) 68719476736/27) (num-test (expt 4722366482869645213696/6561 -1/2) (/ 68719476736/81)) (num-test (expt (expt -4722366482869645213696/6561 1/2) 2) -4722366482869645213696/6561) (num-test (numerator 1195068768795265792518361315725116351898245581/48889032896862784894921) 24444516448431392447461) (num-test (denominator 1195068768795265792518361315725116351898245581/48889032896862784894921) 1) (num-test (numerator 24444516448431392447461/1195068768795265792518361315725116351898245581) 1) (num-test (denominator 24444516448431392447461/1195068768795265792518361315725116351898245581) 48889032896862784894921) (if with-bigfloats (begin (num-test (expt 4722366482869645213696.0 1/2) 68719476736.0) (num-test (expt 324518553658426726783156020576256.0 1/3) 68719476736.0) (num-test (+ 12345678901234567890+12345678901234567890i 12345678901234567890-12345678901234567890i) 2.469135780246913578E19) (num-test (+ 1.0 12345678901234567890) 1.2345678901234567891E19) (num-test (* 2 12345678901234567890+12345678901234567890i) 2.469135780246913578E19+2.469135780246913578E19i) (num-test (- 2 12345678901234567890+12345678901234567890i) -12345678901234567890-12345678901234567890i) )) )) (num-test (expt 10 0) 1) (num-test (expt -10 0) 1) (num-test (expt 10 0) 1) (num-test (expt 10 1) 10) (num-test (expt -10 1) -10) (num-test (expt 10 -1) 1/10) (num-test (expt 10 2) 100) (num-test (expt -10 2) 100) (num-test (expt 10 -2) 1/100) (num-test (expt 10 3) 1000) (num-test (expt -10 3) -1000) (num-test (expt 10 -3) 1/1000) (if (or with-bignums with-64-bit-ints) (num-test (expt 10 -10) 1/10000000000)) (num-test (expt 1234 0) 1) (num-test (expt -1234 0) 1) (num-test (expt 1234 0) 1) (num-test (expt 1234 1) 1234) (num-test (expt -1234 1) -1234) (num-test (expt 1234 -1) 1/1234) (num-test (expt 1234000000 0) 1) (num-test (expt -1234000000 0) 1) (num-test (expt 1234000000 0) 1) (num-test (expt 0/500029 500029/2) 0.0) (num-test (expt 0/362880 362880/1) 0) (num-test (expt 1/2 3/362880) 0.99999426963298) (num-test (expt -1/2 3/362880) 0.99999426929571+0.00002597201266i) (num-test (expt 1/3 10/500029) 0.99997802926990) (num-test (expt -1/3 10/500029) 0.99997802729625+0.00006282682861i) (num-test (expt 1/10 1234/1234000000) 0.99999769741756) (num-test (expt -1/10 1234/1234000000) 0.99999769741262+0.00000314158542i) (num-test (expt 1/1234000000 500029/10) 0.0) (num-test (expt -1/1234000000 500029/10) -0.0) (num-test (expt 1/500029 362880/3) 0.0) (num-test (expt -1/500029 362880/3) 0.0) (num-test (expt 362880 0) 1) (num-test (expt -362880 0) 1) (num-test (expt 362880 0) 1) (num-test (expt 0/1 1/362880) 0.0) (num-test (expt 0/2 2/500029) 0.0) (num-test (expt 0/3 3/1234000000) 0.0) (num-test (expt 0/10 10/1234) 0.0) (num-test (expt 0/1234 1234/10) 0.0) (num-test (expt 1/362880 0/2) 1) (num-test (expt -1/362880 0/2) 1) (num-test (expt 2/1 3/1) 8) (num-test (expt 1/4 -2) 16) (num-test (expt 16 1/4) 2) (num-test (expt -2/1 3/1) -8) (num-test (expt 0 0.00000001) 0.0) (num-test (expt 0 1.0) 0.0) (num-test (expt 0 our-pi) 0.0) (num-test (expt 0 2.71828182845905) 0.0) (num-test (expt 0 1234.0) 0.0) (num-test (expt 0 1234000000.0) 0.0) (num-test (expt 1 0.0) 1.0) (num-test (expt -1 0.0) 1.0) (num-test (expt 1 -0.0) 1.0) (num-test (expt 1 0.00000001) 1.0) (num-test (expt -1 0.00000001) 1.0+0.00000003141593i) (num-test (expt 1 -0.00000001) 1.0) (num-test (expt 1 1.0) 1.0) (num-test (expt -1 1.0) -1.0+0.0i) (num-test (expt 1 -1.0) 1.0) (num-test (expt 1 our-pi) 1.0) (num-test (expt -1 our-pi) -0.90268536193307-0.43030121700009i) (num-test (expt 1 -3.14159265358979) 1.0) (num-test (expt 1 2.71828182845905) 1.0) (num-test (expt -1 2.71828182845905) -0.63325565131482+0.77394268526671i) (num-test (expt 1 -2.71828182845905) 1.0) (num-test (expt 1 1234.0) 1.0) (num-test (expt -1 1234.0) 1.0) (num-test (expt 1 -1234.0) 1.0) (num-test (expt 1 1234000000.0) 1.0) (num-test (expt -1 1234000000.0) 1.0) (num-test (expt 1 -1234000000.0) 1.0) (num-test (expt 2 0.0) 1.0) (num-test (expt -2 0.0) 1.0) (num-test (expt 2 -0.0) 1.0) (num-test (expt 2 0.00000001) 1.00000000693147) (num-test (expt -2 0.00000001) 1.00000000693147+0.00000003141593i) (num-test (expt 2 -0.00000001) 0.99999999306853) (num-test (expt 2 1.0) 2.0) (num-test (expt -2 1.0) -2.0+0.0i) (num-test (expt 2 -1.0) 0.50000000000000) (num-test (expt 2 our-pi) 8.82497782707629) (num-test (expt -2 our-pi) -7.96617830388569-3.79739869898975i) (num-test (expt 2 -3.14159265358979) 0.11331473229676) (num-test (expt 2 2.71828182845905) 6.58088599101792) (num-test (expt -2 2.71828182845905) -4.16738324447062+5.09322857532248i) (num-test (expt 2 -2.71828182845905) 0.15195522325791) (num-test (expt 3 0.0) 1.0) (num-test (expt -3 0.0) 1.0) (num-test (expt 3 -0.0) 1.0) (num-test (expt 3 0.00000001) 1.00000001098612) (num-test (expt -3 0.00000001) 1.00000001098612+0.00000003141593i) (num-test (expt 3 -0.00000001) 0.99999998901388) (num-test (expt 3 1.0) 3.0) (num-test (expt -3 1.0) -3.0+0.0i) (num-test (expt 3 -1.0) 0.33333333333333) (num-test (expt 3 our-pi) 31.54428070019755) (num-test (expt -3 our-pi) -28.47456044077623-13.57354237468751i) (num-test (expt 3 -3.14159265358979) 0.03170146783514) (num-test (expt 3 2.71828182845905) 19.81299074527465) (num-test (expt -3 2.71828182845905) -12.54668835889338+15.33411926056231i) (num-test (expt 3 -2.71828182845905) 0.05047193595639) (num-test (expt 10 0.0) 1.0) (num-test (expt -10 0.0) 1.0) (num-test (expt 10 -0.0) 1.0) (num-test (expt 10 0.00000001) 1.00000002302585) (num-test (expt -10 0.00000001) 1.00000002302585+0.00000003141593i) (num-test (expt 10 -0.00000001) 0.99999997697415) (num-test (expt 10 1.0) 10.0) (num-test (expt -10 1.0) -10.0+0.0i) (num-test (expt 10 -1.0) 0.1) (num-test (expt 10 our-pi) 1385.45573136701182) (num-test (expt -10 our-pi) -1250.63060831127905-596.16328730697728i) (num-test (expt 10 -3.14159265358979) 0.00072178415907) (num-test (expt 10 2.71828182845905) 522.73529967043669) (num-test (expt -10 2.71828182845905) -331.02508265804954+404.56716151063557i) (num-test (expt 10 -2.71828182845905) 0.00191301410222) (num-test (expt 1234 0.0) 1.0) (num-test (expt -1234 0.0) 1.0) (num-test (expt 1234 -0.0) 1.0) (num-test (expt 1234 0.00000001) 1.00000007118016) (num-test (expt -1234 0.00000001) 1.00000007118016+0.00000003141593i) (num-test (expt 1234 -0.00000001) 0.99999992881984) (num-test (expt 1234 1.0) 1234.00000000000045) (num-test (expt -1234 1.0) -1234.00000000000045+0.00000000000015i) (num-test (expt 1234 -1.0) 0.00081037277147) (num-test (expt 1234 -3.14159265358979) 0.00000000019424) (num-test (expt 1234 2.71828182845905) 252968138.32201290130615) (num-test (expt -1234 2.71828182845905) -160193503.19500353932381+195782840.25985893607140i) (num-test (expt 1234 -2.71828182845905) 0.00000000395307) (num-test (expt 1234000000 0.0) 1.0) (num-test (expt -1234000000 0.0) 1.0) (num-test (expt 1234000000 -0.0) 1.0) (num-test (expt 1234000000 0.00000001) 1.00000020933529) (num-test (expt -1234000000 0.00000001) 1.00000020933529+0.00000003141593i) (num-test (expt 1234000000 -0.00000001) 0.99999979066475) (num-test (expt 1234000000 -1.0) 0.00000000081037) (num-test (expt 500029 0.0) 1.0) (num-test (expt -500029 0.0) 1.0) (num-test (expt 500029 -0.0) 1.0) (num-test (expt 500029 0.00000001) 1.00000013122422) (num-test (expt -500029 0.00000001) 1.00000013122422+0.00000003141593i) (num-test (expt 500029 -0.00000001) 0.99999986877579) (num-test (expt 500029 1.0) 500029.00000000040745) (num-test (expt -500029 1.0) -500029.00000000040745+0.00000000006123i) (num-test (expt 500029 -1.0) 0.00000199988401) (num-test (expt 362880 0.0) 1.0) (num-test (expt -362880 0.0) 1.0) (num-test (expt 362880 -0.0) 1.0) (num-test (expt 362880 0.00000001) 1.00000012801828) (num-test (expt -362880 0.00000001) 1.00000012801828+0.00000003141593i) (num-test (expt 362880 -0.00000001) 0.99999987198173) (num-test (expt 362880 1.0) 362879.99999999982538) (num-test (expt -362880 1.0) -362879.99999999982538+0.00000000004444i) (num-test (expt 362880 -1.0) 0.00000275573192) (num-test (expt 0.0 0.00000001) 0.0) (num-test (expt -0.0 0.00000001) 0.0) (num-test (expt 0.0 1.0) 0.0) (num-test (expt -0.0 1.0) 0.0) (num-test (expt 0.0 our-pi) 0.0) (num-test (expt -0.0 our-pi) 0.0) (num-test (expt 0.0 2.71828182845905) 0.0) (num-test (expt -0.0 2.71828182845905) 0.0) (num-test (expt 0.0 1234.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 1234000000.0) 0.0) (num-test (expt 0.00000001 0.0) 1.0) (num-test (expt -0.00000001 0.0) 1.0) (num-test (expt 0.00000001 -0.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 0.00000001) 0.99999981579321+0.00000003141592i) (num-test (expt 0.00000001 -0.00000001) 1.00000018420682) (num-test (expt -0.00000001 -0.00000001) 1.00000018420682-0.00000003141593i) (num-test (expt 0.00000001 1.0) 0.00000001) (num-test (expt -0.00000001 1.0) -0.00000001+0.0i) (num-test (expt 0.00000001 -1.0) 100000000.00000017881393) (num-test (expt -0.00000001 -1.0) -100000000.00000017881393-0.00000001224606i) (num-test (expt 0.00000001 our-pi) 0.0) (num-test (expt -0.00000001 our-pi) -0.0-0.0i) (num-test (expt 0.00000001 2.71828182845905) 0.0) (num-test (expt -0.00000001 2.71828182845905) -0.0+0.0i) (num-test (expt 0.00000001 1234.0) 0.0) (num-test (expt -0.00000001 1234.0) 0.0) (num-test (expt 0.00000001 1234000000.0) 0.0) (num-test (expt -0.00000001 1234000000.0) 0.0) (num-test (expt 1.0 0.0) 1.0) (num-test (expt -1.0 0.0) 1.0) (num-test (expt 1.0 -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 0.00000001) 1.0+0.00000003141593i) (num-test (expt 1.0 -0.00000001) 1.0) (num-test (expt -1.0 -0.00000001) 1.0-0.00000003141593i) (num-test (expt 1.0 1.0) 1.0) (num-test (expt -1.0 1.0) -1.0+0.0i) (num-test (expt 1.0 -1.0) 1.0) (num-test (expt -1.0 -1.0) -1.0-0.0i) (num-test (expt 1.0 our-pi) 1.0) (num-test (expt -1.0 our-pi) -0.90268536193307-0.43030121700009i) (num-test (expt 1.0 -3.14159265358979) 1.0) (num-test (expt -1.0 -3.14159265358979) -0.90268536193307+0.43030121700009i) (num-test (expt 1.0 2.71828182845905) 1.0) (num-test (expt -1.0 2.71828182845905) -0.63325565131482+0.77394268526671i) (num-test (expt 1.0 -2.71828182845905) 1.0) (num-test (expt -1.0 -2.71828182845905) -0.63325565131482-0.77394268526671i) (num-test (expt 1.0 1234.0) 1.0) (num-test (expt -1.0 1234.0) 1.0) (num-test (expt 1.0 -1234.0) 1.0) (num-test (expt -1.0 -1234.0) 1.0) (num-test (expt 1.0 1234000000.0) 1.0) (num-test (expt -1.0 1234000000.0) 1.0) (num-test (expt 1.0 -1234000000.0) 1.0) (num-test (expt -1.0 -1234000000.0) 1.0) (num-test (expt 3.14159265358979 0.0) 1.0) (num-test (expt -3.14159265358979 0.0) 1.0) (num-test (expt 3.14159265358979 -0.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 0.00000001) 1.00000001144730+0.00000003141593i) (num-test (expt 3.14159265358979 -0.00000001) 0.99999998855270) (num-test (expt -3.14159265358979 -0.00000001) 0.99999998855270-0.00000003141593i) (num-test (expt 3.14159265358979 1.0) our-pi) (num-test (expt -3.14159265358979 1.0) -3.14159265358979+0.0i) (num-test (expt 3.14159265358979 -1.0) 0.31830988618379) (num-test (expt -3.14159265358979 -1.0) -0.31830988618379-0.0i) (num-test (expt 3.14159265358979 our-pi) 36.46215960720790) (num-test (expt -3.14159265358979 our-pi) -32.91385774189388-15.68971165343314i) (num-test (expt 3.14159265358979 -3.14159265358979) 0.02742569312330) (num-test (expt -3.14159265358979 -3.14159265358979) -0.02475677172327+0.01180130912803i) (num-test (expt 3.14159265358979 2.71828182845905) 22.45915771836104) (num-test (expt -3.14159265358979 2.71828182845905) -14.22238854892297+17.38210083337688i) (num-test (expt 3.14159265358979 -2.71828182845905) 0.04452526726692) (num-test (expt -3.14159265358979 -2.71828182845905) -0.02819587712308-0.03446000491078i) (num-test (expt 2.71828182845905 0.0) 1.0) (num-test (expt -2.71828182845905 0.0) 1.0) (num-test (expt 2.71828182845905 -0.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 0.00000001) 1.00000001+0.00000003141593i) (num-test (expt 2.71828182845905 -0.00000001) 0.99999999000000) (num-test (expt -2.71828182845905 -0.00000001) 0.99999999000000-0.00000003141593i) (num-test (expt 2.71828182845905 1.0) 2.71828182845905) (num-test (expt -2.71828182845905 1.0) -2.71828182845905+0.0i) (num-test (expt 2.71828182845905 -1.0) 0.36787944117144) (num-test (expt -2.71828182845905 -1.0) -0.36787944117144-0.0i) (num-test (expt 2.71828182845905 our-pi) 23.14069263277927) (num-test (expt -2.71828182845905 our-pi) -20.88876450460231-9.95746820210997i) (num-test (expt 2.71828182845905 -3.14159265358979) 0.04321391826377) (num-test (expt -2.71828182845905 -3.14159265358979) -0.03900857144848+0.01859500162024i) (num-test (expt 2.71828182845905 2.71828182845905) 15.15426224147926) (num-test (expt -2.71828182845905 2.71828182845905) -9.59652220592352+11.72853041240636i) (num-test (expt 2.71828182845905 -2.71828182845905) 0.06598803584531) (num-test (expt -2.71828182845905 -2.71828182845905) -0.04178729661821-0.05107095765760i) (num-test (expt 1234.0 0.0) 1.0) (num-test (expt -1234.0 0.0) 1.0) (num-test (expt 1234.0 -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 0.00000001) 1.00000007118016+0.00000003141593i) (num-test (expt 1234.0 -0.00000001) 0.99999992881984) (num-test (expt -1234.0 -0.00000001) 0.99999992881984-0.00000003141592i) (num-test (expt 1234.0 1.0) 1234.00000000000045) (num-test (expt -1234.0 1.0) -1234.00000000000045+0.00000000000015i) (num-test (expt 1234.0 -1.0) 0.00081037277147) (num-test (expt -1234.0 -1.0) -0.00081037277147-0.0i) (num-test (expt 1234.0 -3.14159265358979) 0.00000000019424) (num-test (expt -1234.0 -3.14159265358979) -0.00000000017534+0.00000000008358i) (num-test (expt 1234.0 2.71828182845905) 252968138.32201290130615) (num-test (expt -1234.0 2.71828182845905) -160193503.19500353932381+195782840.25985893607140i) (num-test (expt 1234.0 -2.71828182845905) 0.00000000395307) (num-test (expt -1234.0 -2.71828182845905) -0.00000000250330-0.00000000305945i) (num-test (expt 1234000000.0 0.0) 1.0) (num-test (expt -1234000000.0 0.0) 1.0) (num-test (expt 1234000000.0 -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 0.00000001) 1.00000020933529+0.00000003141593i) (num-test (expt 1234000000.0 -0.00000001) 0.99999979066475) (num-test (expt -1234000000.0 -0.00000001) 0.99999979066475-0.00000003141592i) (num-test (expt 1234000000.0 -1.0) 0.00000000081037) (num-test (expt -1234000000.0 -1.0) -0.00000000081037-0.0i) (num-test (expt 0.00000001 0) 1.0) (num-test (expt -0.00000001 0) 1.0) (num-test (expt 0.00000001 0) 1.0) (num-test (expt -0.00000001 0) 1.0) (num-test (expt 0.00000001 1) 0.00000001) (num-test (expt -0.00000001 1) -0.00000001+0.0i) (num-test (expt 0.00000001 -1) 100000000.00000017881393) (num-test (expt -0.00000001 -1) -100000000.00000017881393-0.00000001224606i) (num-test (expt 0.00000001 2) 0.0) (num-test (expt -0.00000001 2) 0.0-0.0i) (num-test (expt 0.00000001 3) 0.0) (num-test (expt -0.00000001 3) -0.0+0.0i) (num-test (expt 0.00000001 10) 0.0) (num-test (expt -0.00000001 10) 0.0-0.0i) (num-test (expt 0.00000001 1234) 0.0) (num-test (expt -0.00000001 1234) 0.0) (num-test (expt 0.00000001 1234000000) 0.0) (num-test (expt -0.00000001 1234000000) 0.0) (num-test (expt 0.00000001 500029) 0.0) (num-test (expt -0.00000001 500029) -0.0) (num-test (expt 0.00000001 362880) 0.0) (num-test (expt -0.00000001 362880) 0.0) (num-test (expt 1.0 0) 1.0) (num-test (expt -1.0 0) 1.0) (num-test (expt 1.0 0) 1.0) (num-test (expt -1.0 0) 1.0) (num-test (expt 1.0 1) 1.0) (num-test (expt -1.0 1) -1.0+0.0i) (num-test (expt 1.0 -1) 1.0) (num-test (expt -1.0 -1) -1.0-0.0i) (num-test (expt 1.0 2) 1.0) (num-test (expt -1.0 2) 1.0-0.0i) (num-test (expt 1.0 -2) 1.0) (num-test (expt -1.0 -2) 1.0+0.0i) (num-test (expt 1.0 3) 1.0) (num-test (expt -1.0 3) -1.0+0.0i) (num-test (expt 1.0 -3) 1.0) (num-test (expt -1.0 -3) -1.0-0.0i) (num-test (expt 1.0 10) 1.0) (num-test (expt -1.0 10) 1.0-0.0i) (num-test (expt 1.0 -10) 1.0) (num-test (expt -1.0 -10) 1.0+0.0i) (num-test (expt 1.0 1234) 1.0) (num-test (expt -1.0 1234) 1.0) (num-test (expt 1.0 -1234) 1.0) (num-test (expt -1.0 -1234) 1.0) (num-test (expt 1.0 1234000000) 1.0) (num-test (expt -1.0 1234000000) 1.0) (num-test (expt 1.0 -1234000000) 1.0) (num-test (expt -1.0 -1234000000) 1.0) (num-test (expt 1.0 500029) 1.0) (num-test (expt -1.0 500029) -1.0) (num-test (expt 1.0 -500029) 1.0) (num-test (expt -1.0 -500029) -1.0) (num-test (expt 1.0 362880) 1.0) (num-test (expt -1.0 362880) 1.0) (num-test (expt 1.0 -362880) 1.0) (num-test (expt -1.0 -362880) 1.0) (num-test (expt 3.14159265358979 0) 1.0) (num-test (expt -3.14159265358979 0) 1.0) (num-test (expt 3.14159265358979 0) 1.0) (num-test (expt -3.14159265358979 0) 1.0) (num-test (expt 3.14159265358979 1) our-pi) (num-test (expt -3.14159265358979 1) -3.14159265358979+0.0i) (num-test (expt 3.14159265358979 -1) 0.31830988618379) (num-test (expt -3.14159265358979 -1) -0.31830988618379-0.0i) (num-test (expt 3.14159265358979 2) 9.86960440108936) (num-test (expt -3.14159265358979 2) 9.86960440108936-0.0i) (num-test (expt 3.14159265358979 -2) 0.10132118364234) (num-test (expt -3.14159265358979 -2) 0.10132118364234+0.0i) (num-test (expt 3.14159265358979 3) 31.00627668029983) (num-test (expt -3.14159265358979 3) -31.00627668029983) (num-test (expt 3.14159265358979 -3) 0.03225153443320) (num-test (expt -3.14159265358979 -3) -0.03225153443320-0.0i) (num-test (expt 3.14159265358979 10) 93648.04747608296748) (num-test (expt -3.14159265358979 10) 93648.04747608296748) (num-test (expt 3.14159265358979 -10) 0.00001067827923) (num-test (expt -3.14159265358979 -10) 0.00001067827923+0.0i) (num-test (expt 2.71828182845905 0) 1.0) (num-test (expt -2.71828182845905 0) 1.0) (num-test (expt 2.71828182845905 0) 1.0) (num-test (expt -2.71828182845905 0) 1.0) (num-test (expt 2.71828182845905 1) 2.71828182845905) (num-test (expt -2.71828182845905 1) -2.71828182845905+0.0i) (num-test (expt 2.71828182845905 -1) 0.36787944117144) (num-test (expt -2.71828182845905 -1) -0.36787944117144-0.0i) (num-test (expt 2.71828182845905 2) 7.38905609893065) (num-test (expt -2.71828182845905 2) 7.38905609893065-0.0i) (num-test (expt 2.71828182845905 -2) 0.13533528323661) (num-test (expt -2.71828182845905 -2) 0.13533528323661+0.0i) (num-test (expt 2.71828182845905 3) 20.08553692318767) (num-test (expt -2.71828182845905 3) -20.08553692318767+0.00000000000001i) (num-test (expt 2.71828182845905 -3) 0.04978706836786) (num-test (expt -2.71828182845905 -3) -0.04978706836786-0.0i) (num-test (expt 2.71828182845905 10) 22026.46579480671789) (num-test (expt -2.71828182845905 10) 22026.46579480671789-0.00000000002697i) (num-test (expt 2.71828182845905 -10) 0.00004539992976) (num-test (expt -2.71828182845905 -10) 0.00004539992976+0.0i) (num-test (expt 1234.0 0) 1.0) (num-test (expt -1234.0 0) 1.0) (num-test (expt 1234.0 0) 1.0) (num-test (expt -1234.0 0) 1.0) (num-test (expt 1234.0 1) 1234.00000000000045) (num-test (expt -1234.0 1) -1234.00000000000045+0.00000000000015i) (num-test (expt 1234.0 -1) 0.00081037277147) (num-test (expt -1234.0 -1) -0.00081037277147-0.0i) (num-test (expt 1234.0 2) 1522756.00000000093132) (num-test (expt -1234.0 2) 1522756.00000000093132-0.00000000037296i) (num-test (expt 1234.0 -2) 0.00000065670403) (num-test (expt -1234.0 -2) 0.00000065670403+0.0i) (num-test (expt 1234.0 -3) 0.00000000053218) (num-test (expt -1234.0 -3) -0.00000000053218-0.0i) (num-test (expt 1234000000.0 0) 1.0) (num-test (expt -1234000000.0 0) 1.0) (num-test (expt 1234000000.0 0) 1.0) (num-test (expt -1234000000.0 0) 1.0) (num-test (expt 1234000000.0 -1) 0.00000000081037) (num-test (expt -1234000000.0 -1) -0.00000000081037-0.0i) (num-test (expt 0.0-1234000000.0i -1234000000.0+0.00000001i) 0.0) (num-test (expt -0.0-1234000000.0i -1234000000.0-0.00000001i) 0.0) (num-test (expt 0.00000001+0.0i 0.00000001+0.00000001i) 0.99999981579319-0.00000018420677i) (num-test (expt -0.00000001+0.0i 0.00000001-0.00000001i) 0.99999984720911+0.00000021562270i) (num-test (expt 0.00000001-0.0i -0.00000001+0.00000001i) 1.00000018420681-0.00000018420684i) (num-test (expt -0.00000001-0.0i -0.00000001-0.00000001i) 1.00000021562275+0.00000015279091i) (num-test (expt 0.00000001+0.00000001i 1.0+0.0i) 0.00000001+0.00000001i) (num-test (expt -0.00000001+0.00000001i 1.0-0.0i) -0.00000001+0.00000001i) (num-test (expt 0.00000001-0.00000001i -1.0+0.0i) 50000000.00000004470348+50000000.00000003725290i) (num-test (expt -0.00000001-0.00000001i -1.0-0.0i) -50000000.00000003725290+50000000.00000004470348i) (num-test (expt 1.0+0.00000001i 3.14159265358979+0.00000001i) 1.0+0.00000003141593i) (num-test (expt -1.0+0.00000001i 3.14159265358979-0.00000001i) -0.90268540381008-0.43030120215971i) (num-test (expt 1.0-0.00000001i -3.14159265358979+0.00000001i) 1.0+0.00000003141593i) (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) -1.37164508585166+2.16782742612896i) (num-test (expt -1.0+1.0i 2.71828182845905-0.0i) 2.54637618158683+0.31121428769451i) (num-test (expt 1.0-1.0i -2.71828182845905+0.0i) -0.20842863525121+0.32941270052205i) (num-test (expt -1.0-1.0i -2.71828182845905-0.0i) 0.38693516117166+0.04729063656767i) (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 3.14159265358979-3.14159265358979i -1234000000.0+0.0i) 0.0) (num-test (expt -3.14159265358979-3.14159265358979i -1234000000.0-0.0i) 0.0) (num-test (expt 2.71828182845905+3.14159265358979i 0.0+0.00000001i) 0.99999999142488+0.00000001424157i) (num-test (expt -2.71828182845905+3.14159265358979i 0.0-0.00000001i) 1.00000002284081-0.00000001424157i) (num-test (expt 2.71828182845905-3.14159265358979i -0.0+0.00000001i) 1.00000000857512+0.00000001424157i) (num-test (expt -2.71828182845905-3.14159265358979i -0.0-0.00000001i) 0.99999997715919-0.00000001424157i) (num-test (expt 2.71828182845905+2.71828182845905i 0.00000001+0.0i) 1.00000001346574+0.00000000785398i) (num-test (expt -2.71828182845905+2.71828182845905i 0.00000001-0.0i) 1.00000001346574+0.00000002356195i) (num-test (expt 2.71828182845905-2.71828182845905i -0.00000001+0.0i) 0.99999998653426+0.00000000785398i) (num-test (expt -2.71828182845905-2.71828182845905i -0.00000001-0.0i) 0.99999998653426+0.00000002356194i) (num-test (expt 1234.0+2.71828182845905i 1.0+0.00000001i) 1233.99999977932634+2.71836966474906i) (num-test (expt -1234.0+2.71828182845905i 1.0-0.00000001i) -1234.00003854658053+2.71836975014915i) (num-test (expt 1234.0-2.71828182845905i -1.0+0.00000001i) 0.00081036883911+0.00000178515565i) (num-test (expt -1234.0-2.71828182845905i -1.0-0.00000001i) -0.00081036881365+0.00000178515559i) (num-test (expt 1234.0+1234.0i 3.14159265358979+0.0i) -11947544392.17545890808105+9547275530.50568199157715i) (num-test (expt -1234.0+1234.0i 3.14159265358979-0.0i) 6676669154.05054950714111+13759228759.84499740600586i) (num-test (expt 1234.0-1234.0i -3.14159265358979+0.0i) -5.108095859217296E-11+4.081876325659167E-11i) (num-test (expt -1234.0-1234.0i -3.14159265358979-0.0i) 2.854567008891443E-11+5.882669873167984E-11i) (num-test (expt 1234000000.0-1234.0i -2.71828182845905+0.00000001i) 0.0+0.0i) (num-test (expt -1234000000.0-1234.0i -2.71828182845905-0.00000001i) -0.0+0.0i) (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) (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 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 -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 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 0.0e+00+1.0e+00i 0.0e+00+0.0e+00i) 1e0+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 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 0.0e+00-1.0e+00i) 4.8104773809653516555e0+0.0i) (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 -1.0e+00+0.0e+00i 0.0e+00+0.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 0.0e+00+1.0e+00i) 4.3213918263772249774e-2+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 0.0e+00-1.0e+00i) 2.3140692632779269006e1+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 0.0e+00-1.0e+00i 0.0e+00+0.0e+00i) 1e0+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 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 0.0e+00-1.0e+00i) 2.0787957635076190855e-1+0.0i) (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 5.0e-01+1.00000000000000005551e-01i 0.0e+00+0.0e+00i) 1e0+0.0i) (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 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) 1.9230769230769230687e0-3.8461538461538463509e-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 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 0.0e+00+0.0e+00i) 1e0+0.0i) (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 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) 1.9230769230769230687e0+3.8461538461538463509e-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 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 0 10) 0) (num-test (expt 1 10) 1) (num-test (expt 2 10) 1024) (num-test (expt 3 10) 59049) (num-test (expt 4 10) 1048576) (num-test (expt 5 10) 9765625) (num-test (expt 6 10) 60466176) (num-test (expt 7 10) 282475249) (num-test (expt 8 10) 1073741824) (if (or with-bignums with-64-bit-ints) (num-test (expt 9 10) 3486784401)) (if (or with-bignums with-64-bit-ints) (num-test (expt 10 10) 10000000000)) (if (or with-bignums with-64-bit-ints) (num-test (expt 11 10) 25937424601)) (num-test (expt 0 1/10) 0) (num-test (expt 1 1/10) 1) (num-test (expt 1024 1/10) 2) (num-test (expt 59049 1/10) 3) (num-test (expt 1048576 1/10) 4) (num-test (expt 9765625 1/10) 5) (num-test (expt 60466176 1/10) 6) (num-test (expt 282475249 1/10) 7) (num-test (expt 1073741824 1/10) 8) (if (or with-bignums with-64-bit-ints) (num-test (expt 3486784401 1/10) 9)) (if (or with-bignums with-64-bit-ints) (num-test (expt 10000000000 1/10) 10)) (if (or with-bignums with-64-bit-ints) (num-test (expt 25937424601 1/10) 11)) (num-test (expt 2 9) 512) (num-test (expt 8 1/3) 2) (num-test (expt 1024 1/10) 2) (num-test (expt 512 1/9) 2) (num-test (expt (expt 20 10) 1/10) 20) (num-test (expt (expt 40 10) 1/10) 40) (num-test (expt (expt 2 30) 1/30) 2) (num-test (expt (expt 2 50) 1/50) 2) (num-test (expt (expt 2 1/10) 10) 2) (num-test (expt (expt 2 1/30) 30) 2) (num-test (expt 64 1/6) 2) (num-test (expt 64 1/3) 4) (num-test (expt 64 2/3) 16) (num-test (expt 64 1/2) 8) (num-test (expt 64 3/2) 512) (num-test (expt 1/2 3) 1/8) (num-test (expt 1/64 1/2) 1/8) (num-test (expt 1/64 1/3) 1/4) (num-test (expt 1/64 3/2) 1/512) (num-test (expt 1/64 2/3) 1/16) (num-test (expt 1/2 10) 1/1024) (num-test (expt 2/3 5) (* 2/3 2/3 2/3 2/3 2/3)) (num-test (expt 2 -10) 1/1024) (num-test (expt 2 -9) 1/512) (num-test (expt 64 -1/6) 1/2) (num-test (expt 64 -1/3) 1/4) (num-test (expt 64 -2/3) 1/16) (num-test (expt 64 -1/2) 1/8) (num-test (expt 64 -3/2) 1/512) (num-test (expt 1/2 -3) 8) (num-test (expt 1/64 -1/2) 8) (num-test (expt 1/64 -1/3) 4) (num-test (expt 1/64 -3/2) 512) (num-test (expt 1/64 -2/3) 16) (num-test (expt 1/2 -10) 1024) (num-test (expt 2718/1000 617/5) 3.858179469787681136058424024656091858698003418770850904916305853631035158956514884526199288e53) ; not an int! (num-test (expt 2/3 -5) (/ 1 (* 2/3 2/3 2/3 2/3 2/3))) (num-test (expt 0 1.0+i) 0.0) ; ?? (num-test (expt 0 1.0) 0.0) (test (expt 0 0) 1 ) (test (expt 0 1) 0 ) (test (expt 0 256) 0 ) (test (expt -1 256) 1 ) (test (expt -1 255) -1 ) (test (expt -1 -256) 1 ) (test (expt -1 -255) -1 ) (test (expt 256 0) 1 ) (test (expt -256 0) 1 ) (test (expt 256 1) 256 ) (test (expt -256 1) -256 ) (test (expt 2 3) 8 ) (test (expt -2 3) -8 ) (test (expt 3 2) 9 ) (test (expt -3 2) 9 ) ;; a few picky ones (num-test (expt 3 1) 3) (num-test (expt 3/4 1) 3/4) (num-test (expt 3.0 1) 3.0) (num-test (expt 1+i 1) 1+i) (num-test (expt 3 1.0) 3.0) (num-test (expt 3/4 1.0) 0.75) (num-test (expt 3.0 1.0) 3.0) (num-test (expt 1+i 1.0) 1.0+i) (num-test (expt 0 1) 0) (num-test (expt 0.0 1) 0.0) (num-test (expt 1 0) 1) (num-test (expt 1.0 0) 1.0) (num-test (expt 1 0.0) 1.0) (num-test (expt 1.0 0.0) 1.0) (num-test (expt 3/4 0) 1) (num-test (expt 3/4 0.0) 1.0) (num-test (expt 3.0 0) 1.0) (num-test (expt 3.0 0.0) 1.0) (num-test (expt 0 0) 1) (num-test (expt 0.0 0) 0.0) (num-test (expt 0 0.0) 0.0) (num-test (expt 0.0 0.0) 0.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 (if with-64-bit-ints 74 8)))) (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 (if with-64-bit-ints 74 8)))) (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 (if with-64-bit-ints 19 4)))) (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)))))) ;;; -------- rationalize (if with-rationalize (begin (num-test (rationalize 0.0 1.0001) 0) (num-test (rationalize -0.0 1.0001) 0) (num-test (rationalize 0.0 0.50000000000000) 0) (num-test (rationalize -0.0 0.50000000000000) 0) (num-test (rationalize 0.0 0.1) 0) (num-test (rationalize -0.0 0.1) 0) (num-test (rationalize 0.0 0.001) 0) (num-test (rationalize -0.0 0.001) 0) (num-test (rationalize 0.0 0.00300000000000) 0) (num-test (rationalize -0.0 0.00300000000000) 0) (num-test (rationalize 0.0 0.00002000000000) 0) (num-test (rationalize -0.0 0.00002000000000) 0) (num-test (rationalize 0.0 0.00000001) 0) (num-test (rationalize -0.0 0.00000001) 0) (num-test (rationalize 0.00000001 1.0) 0) (num-test (rationalize -0.00000001 1.0) 0) (num-test (rationalize 0.00000001 0.50000000000000) 0) (num-test (rationalize -0.00000001 0.50000000000000) 0) (num-test (rationalize 0.00000001 0.1) 0) (num-test (rationalize -0.00000001 0.1) 0) (num-test (rationalize 0.00000001 0.001) 0) (num-test (rationalize -0.00000001 0.001) 0) (num-test (rationalize 0.00000001 0.00300000000000) 0) (num-test (rationalize -0.00000001 0.00300000000000) 0) (num-test (rationalize 0.00000001 0.00002000000000) 0) (num-test (rationalize -0.00000001 0.00002000000000) 0) (num-test (rationalize 0.00000001 0.000000011) 0) (num-test (rationalize -0.00000001 0.000000011) 0) (num-test (rationalize 1.0 1.0001) 0) (num-test (rationalize -1.0 1.0001) 0) (num-test (rationalize 1.0 0.999) 1) (num-test (rationalize -1.0 0.999) -1) (num-test (rationalize 1.0 0.50000000000000) 1) (num-test (rationalize -1.0 0.50000000000000) -1) (num-test (rationalize 1.0 0.1) 1) (num-test (rationalize -1.0 0.1) -1) (num-test (rationalize 1.0 0.001) 1) (num-test (rationalize -1.0 0.001) -1) (num-test (rationalize 1.0 0.00300000000000) 1) (num-test (rationalize -1.0 0.00300000000000) -1) (num-test (rationalize 1.0 0.00002000000000) 1) (num-test (rationalize -1.0 0.00002000000000) -1) (num-test (rationalize 1.0 0.00000001) 1) (num-test (rationalize -1.0 0.00000001) -1) (num-test (rationalize 3.14159265358979 1.0) 3) (num-test (rationalize -3.14159265358979 1.0) -3) (num-test (rationalize 3.14159265358979 0.50000000000000) 3) (num-test (rationalize -3.14159265358979 0.50000000000000) -3) (num-test (rationalize 3.14159265358979 0.1) 16/5) (num-test (rationalize -3.14159265358979 0.1) -16/5) (num-test (rationalize 3.14159265358979 0.001) 201/64) (num-test (rationalize -3.14159265358979 0.001) -201/64) (num-test (rationalize 3.14159265358979 0.00300000000000) 22/7) (num-test (rationalize -3.14159265358979 0.00300000000000) -22/7) (num-test (rationalize 3.14159265358979 0.00002000000000) 355/113) (num-test (rationalize -3.14159265358979 0.00002000000000) -355/113) (num-test (rationalize 3.14159265358979 0.00000001) 100798/32085) (num-test (rationalize -3.14159265358979 0.00000001) -100798/32085) (num-test (rationalize 2.71828182845905 1.0) 2) (num-test (rationalize -2.71828182845905 1.0) -2) (num-test (rationalize 2.71828182845905 0.50000000000000) 3) (num-test (rationalize -2.71828182845905 0.50000000000000) -3) (num-test (rationalize 2.71828182845905 0.1) 8/3) (num-test (rationalize -2.71828182845905 0.1) -8/3) (num-test (rationalize 2.71828182845905 0.001) 87/32) (num-test (rationalize -2.71828182845905 0.001) -87/32) (num-test (rationalize 2.71828182845905 0.00300000000000) 68/25) (num-test (rationalize -2.71828182845905 0.00300000000000) -68/25) (num-test (rationalize 2.71828182845905 0.00002000000000) 878/323) (num-test (rationalize -2.71828182845905 0.00002000000000) -878/323) (num-test (rationalize 2.71828182845905 0.00000001) 23225/8544) (num-test (rationalize -2.71828182845905 0.00000001) -23225/8544) (num-test (rationalize 1234.12339999999995 1.0) 1234) (num-test (rationalize -1234.12339999999995 1.0) -1234) (num-test (rationalize 1234.12339999999995 0.50000000000000) 1234) (num-test (rationalize -1234.12339999999995 0.50000000000000) -1234) (num-test (rationalize 1234.12339999999995 0.1) 6171/5) (num-test (rationalize -1234.12339999999995 0.1) -6171/5) (num-test (rationalize 1234.12339999999995 0.001) 60472/49) (num-test (rationalize -1234.12339999999995 0.001) -60472/49) (num-test (rationalize 1234.12339999999995 0.00300000000000) 9873/8) (num-test (rationalize -1234.12339999999995 0.00300000000000) -9873/8) (num-test (rationalize 1234.12339999999995 0.00002000000000) 290019/235) (num-test (rationalize -1234.12339999999995 0.00002000000000) -290019/235) (num-test (rationalize 1234.12339999999995 0.00000001) 6170617/5000) (num-test (rationalize -1234.12339999999995 0.00000001) -6170617/5000) (num-test (rationalize 1234000000.01234006881714 1.0) 1234000000/1) (num-test (rationalize -1234000000.01234006881714 1.0) -1234000000/1) (num-test (rationalize 1234000000.01234006881714 0.50000000000000) 1234000000/1) (num-test (rationalize -1234000000.01234006881714 0.50000000000000) -1234000000/1) (num-test (rationalize 1234000000.01234006881714 0.1) 1234000000/1) (num-test (rationalize -1234000000.01234006881714 0.1) -1234000000/1) (num-test (rationalize 1234000000.01234006881714 0.001) 92550000001/75) (num-test (rationalize -1234000000.01234006881714 0.001) -92550000001/75) (num-test (rationalize 1234000000.01234006881714 0.00300000000000) 81444000001/66) (num-test (rationalize -1234000000.01234006881714 0.00300000000000) -81444000001/66) (num-test (rationalize 1234000000.01234006881714 0.00002000000000) 99954000001/81) (num-test (rationalize -1234000000.01234006881714 0.00002000000000) -99954000001/81) (num-test (rationalize 1234000000.01234006881714 0.000001) 2400130000024/1945) (num-test (rationalize -1234000000.01234006881714 0.000001) -2400130000024/1945) (num-test (rationalize 0.33 1.0) 0) (num-test (rationalize -0.33 1.0) 0) (num-test (rationalize 0.33 0.50000000000000) 0) (num-test (rationalize -0.33 0.50000000000000) 0) (num-test (rationalize 0.33 0.1) 1/3) (num-test (rationalize -0.33 0.1) -1/3) (num-test (rationalize 0.33 0.001) 26/79) (num-test (rationalize -0.33 0.001) -26/79) (num-test (rationalize 0.33 0.00300000000000) 18/55) (num-test (rationalize -0.33 0.00300000000000) -18/55) (num-test (rationalize 0.33 0.00002000000000) 33/100) (num-test (rationalize -0.33 0.00002000000000) -33/100) (num-test (rationalize 0.33 0.00000001) 33/100) (num-test (rationalize -0.33 0.00000001) -33/100) (num-test (rationalize 0.99990 1.0) 0) (num-test (rationalize -0.99990 1.0) 0) (num-test (rationalize 0.99990 0.50000000000000) 1) (num-test (rationalize -0.99990 0.50000000000000) -1) (num-test (rationalize 0.99990 0.1) 1) (num-test (rationalize -0.99990 0.1) -1) (num-test (rationalize 0.99990 0.001) 1) (num-test (rationalize -0.99990 0.001) -1) (num-test (rationalize 0.99990 0.00300000000000) 1) (num-test (rationalize -0.99990 0.00300000000000) -1) (num-test (rationalize 0.99990 0.00002000000000) 8333/8334) (num-test (rationalize -0.99990 0.00002000000000) -8333/8334) (num-test (rationalize 0.99990 0.00000001) 9999/10000) (num-test (rationalize -0.99990 0.00000001) -9999/10000) (num-test (rationalize 0.5010 1.0) 0) (num-test (rationalize -0.5010 1.0) 0) (num-test (rationalize 0.5010 0.50000000000000) 1) (num-test (rationalize -0.5010 0.50000000000000) -1) (num-test (rationalize 0.5010 0.1) 1/2) (num-test (rationalize -0.5010 0.1) -1/2) (num-test (rationalize 0.5010 0.00099) 127/253) (num-test (rationalize -0.5010 0.00099) -127/253) (num-test (rationalize 0.5010 0.00300000000000) 1/2) (num-test (rationalize -0.5010 0.00300000000000) -1/2) (num-test (rationalize 0.5010 0.00002000000000) 246/491) (num-test (rationalize -0.5010 0.00002000000000) -246/491) (num-test (rationalize 0.5010 0.00000001) 501/1000) (num-test (rationalize -0.5010 0.00000001) -501/1000) (num-test (rationalize 0.499 1.0) 0) (num-test (rationalize -0.499 1.0) 0) (num-test (rationalize 0.499 0.50000000000000) 0) (num-test (rationalize -0.499 0.50000000000000) 0) (num-test (rationalize 0.499 0.1) 1/2) (num-test (rationalize -0.499 0.1) -1/2) (num-test (rationalize 0.499 0.00099) 126/253) (num-test (rationalize -0.499 0.00099) -126/253) (num-test (rationalize 0.499 0.00300000000000) 1/2) (num-test (rationalize -0.499 0.00300000000000) -1/2) (num-test (rationalize 0.499 0.00002000000000) 245/491) (num-test (rationalize -0.499 0.00002000000000) -245/491) (num-test (rationalize 0.499 0.00000001) 499/1000) (num-test (rationalize -0.499 0.00000001) -499/1000) (num-test (rationalize 1.501 1.0) 1) (num-test (rationalize -1.501 1.0) -1) (num-test (rationalize 1.501 0.50000000000000) 2) (num-test (rationalize -1.501 0.50000000000000) -2) (num-test (rationalize 1.501 0.1) 3/2) (num-test (rationalize -1.501 0.1) -3/2) (num-test (rationalize 1.501 0.001) 3/2) (num-test (rationalize -1.501 0.001) -3/2) (num-test (rationalize 1.501 0.00300000000000) 3/2) (num-test (rationalize -1.501 0.00300000000000) -3/2) (num-test (rationalize 1.501 0.00002000000000) 737/491) (num-test (rationalize -1.501 0.00002000000000) -737/491) (num-test (rationalize 1.501 0.00000001) 1501/1000) (num-test (rationalize -1.501 0.00000001) -1501/1000) (num-test (rationalize 1.499 1.0) 1) (num-test (rationalize -1.499 1.0) -1) (num-test (rationalize 1.499 0.50000000000000) 1) (num-test (rationalize -1.499 0.50000000000000) -1) (num-test (rationalize 1.499 0.1) 3/2) (num-test (rationalize -1.499 0.1) -3/2) (num-test (rationalize 1.499 0.001) 3/2) (num-test (rationalize -1.499 0.001) -3/2) (num-test (rationalize 1.499 0.00300000000000) 3/2) (num-test (rationalize -1.499 0.00300000000000) -3/2) (num-test (rationalize 1.499 0.00002000000000) 736/491) (num-test (rationalize -1.499 0.00002000000000) -736/491) (num-test (rationalize 1.499 0.00000001) 1499/1000) (num-test (rationalize -1.499 0.00000001) -1499/1000) (num-test (rationalize 1.16 .2) 1) (num-test (rationalize 1.16 .1) 5/4) (num-test (rationalize 1.16 .041) 6/5) (num-test (rationalize 1.16 .039) 7/6) (num-test (rationalize 1.16 .007) 7/6) (num-test (rationalize 1.16 .006) 22/19) (num-test (rationalize 1.16 .0022) 22/19) (num-test (rationalize 1.16 .002) 29/25) (num-test (rationalize 1.16 .0000001) 29/25) (num-test (rationalize 23.1 22.0) 2) (num-test (rationalize 23.1 22) 2) (num-test (rationalize 23.1 .5) 23) (num-test (rationalize 23.1 1/2) 23) (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 (exact->inexact 1/2) 3/4) 0) (num-test (rationalize (exact->inexact 1/2) 1/4) 1/2) (num-test (rationalize (exact->inexact 1) 3) 0) (num-test (rationalize (exact->inexact 11/10) 1/5) 1) (num-test (rationalize (exact->inexact 3/4) 1/2) 1) (num-test (rationalize (exact->inexact 1/4) 1/3) 0) (num-test (rationalize (exact->inexact 1/4) 1/6) 1/3) (num-test (rationalize (exact->inexact 2/3) 1/4) 1/2) (num-test (rationalize (exact->inexact 1/3) 1/4) 1/2) (num-test (rationalize (exact->inexact 3/10) 1/10) 1/3) (num-test (rationalize 1/2 (exact->inexact 3/4)) 0) (num-test (rationalize 1/2 (exact->inexact 1/4)) 1/2) (num-test (rationalize 1 (exact->inexact 3)) 0) (num-test (rationalize 11/10 (exact->inexact 1/5)) 1) (num-test (rationalize 3/4 (exact->inexact 1/2)) 1) (num-test (rationalize 1/4 (exact->inexact 1/3)) 0) (num-test (rationalize 1/4 (exact->inexact 1/6)) 1/3) (num-test (rationalize 2/3 (exact->inexact 1/4)) 1/2) (num-test (rationalize 1/3 (exact->inexact 1/4)) 1/2) (num-test (rationalize 3/10 (exact->inexact 1/10)) 1/3) (num-test (rationalize (exact->inexact 1/2) (exact->inexact 3/4)) 0) (num-test (rationalize (exact->inexact 1/2) (exact->inexact 1/4)) 1/2) (num-test (rationalize (exact->inexact 1) (exact->inexact 3)) 0) (num-test (rationalize (exact->inexact 11/10) (exact->inexact 1/5)) 1) (num-test (rationalize (exact->inexact 3/4) (exact->inexact 1/2)) 1) (num-test (rationalize (exact->inexact 1/4) (exact->inexact 1/3)) 0) (num-test (rationalize (exact->inexact 1/4) (exact->inexact 1/6)) 1/3) (num-test (rationalize (exact->inexact 2/3) (exact->inexact 1/4)) 1/2) (num-test (rationalize (exact->inexact 1/3) (exact->inexact 1/4)) 1/2) (num-test (rationalize (exact->inexact 3/10) (exact->inexact 1/10)) 1/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 .239 .0005) 11/46) ;baseball of course... the average .001 is the hardest to get: 1/667 (num-test (rationalize .001 .0005) 1/667) (num-test (rationalize .334 .0005) 96/287) (num-test (rationalize 1.0000001 0.00000001) 9090911/9090910) (num-test (rationalize 0.000000015 0.000000001) 1/62500001) (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)) 1/2) (if with-bigfloats (begin ;; can this sort of thing be handled with locally set precisions? (num-test (rationalize 385817946978768113605842402465609185854927496022065152.5) 771635893957536227211684804931218371709854992044130305/2) )) (num-test (rationalize 0.5 0.02) 1/2) (num-test (rationalize 1073741824 1) 1073741823) ; perverse )) ;; -------- gcd and lcm (num-test (gcd) 0) (num-test (lcm) 1) (num-test (gcd 1 0) 1) (num-test (lcm 1 0) 0) (num-test (gcd 0) 0) (num-test (lcm 0) 0) (num-test (gcd 0) 0) (num-test (lcm 0) 0) (num-test (gcd 1) 1) (num-test (lcm 1) 1) (num-test (gcd -1) 1) (num-test (lcm -1) 1) (num-test (gcd 2) 2) (num-test (lcm 2) 2) (num-test (gcd -2) 2) (num-test (lcm -2) 2) (num-test (gcd 3) 3) (num-test (lcm 3) 3) (num-test (gcd -3) 3) (num-test (lcm -3) 3) (num-test (gcd 10) 10) (num-test (lcm 10) 10) (num-test (gcd -10) 10) (num-test (lcm -10) 10) (num-test (gcd 1234) 1234) (num-test (lcm 1234) 1234) (num-test (gcd -1234) 1234) (num-test (lcm -1234) 1234) (num-test (gcd 1234000000) 1234000000) (num-test (lcm 1234000000) 1234000000) (num-test (gcd -1234000000) 1234000000) (num-test (lcm -1234000000) 1234000000) (num-test (gcd 500029) 500029) (num-test (lcm 500029) 500029) (num-test (gcd -500029) 500029) (num-test (lcm -500029) 500029) (num-test (gcd 362880) 362880) (num-test (lcm 362880) 362880) (num-test (gcd -362880) 362880) (num-test (lcm -362880) 362880) (num-test (gcd 0 0) 0) (num-test (lcm 0 0) 0) (num-test (gcd 0 0) 0) (num-test (lcm 0 0) 0) (num-test (gcd 0 0) 0) (num-test (lcm 0 0) 0) (num-test (gcd 0 0) 0) (num-test (lcm 0 0) 0) (num-test (gcd 0 1) 1) (num-test (lcm 0 1) 0) (num-test (gcd 0 1) 1) (num-test (lcm 0 1) 0) (num-test (gcd 0 -1) 1) (num-test (lcm 0 -1) 0) (num-test (gcd 0 -1) 1) (num-test (lcm 0 -1) 0) (num-test (gcd 0 2) 2) (num-test (lcm 0 2) 0) (num-test (gcd 0 2) 2) (num-test (lcm 0 2) 0) (num-test (gcd 0 -2) 2) (num-test (lcm 0 -2) 0) (num-test (gcd 0 -2) 2) (num-test (lcm 0 -2) 0) (num-test (gcd 0 3) 3) (num-test (lcm 0 3) 0) (num-test (gcd 0 3) 3) (num-test (lcm 0 3) 0) (num-test (gcd 0 -3) 3) (num-test (lcm 0 -3) 0) (num-test (gcd 0 -3) 3) (num-test (lcm 0 -3) 0) (num-test (gcd 0 10) 10) (num-test (lcm 0 10) 0) (num-test (gcd 0 10) 10) (num-test (lcm 0 10) 0) (num-test (gcd 0 -10) 10) (num-test (lcm 0 -10) 0) (num-test (gcd 0 -10) 10) (num-test (lcm 0 -10) 0) (num-test (gcd 0 1234) 1234) (num-test (lcm 0 1234) 0) (num-test (gcd 0 1234) 1234) (num-test (lcm 0 1234) 0) (num-test (gcd 0 -1234) 1234) (num-test (lcm 0 -1234) 0) (num-test (gcd 0 -1234) 1234) (num-test (lcm 0 -1234) 0) (num-test (gcd 0 1234000000) 1234000000) (num-test (lcm 0 1234000000) 0) (num-test (gcd 0 1234000000) 1234000000) (num-test (lcm 0 1234000000) 0) (num-test (gcd 0 -1234000000) 1234000000) (num-test (lcm 0 -1234000000) 0) (num-test (gcd 0 -1234000000) 1234000000) (num-test (lcm 0 -1234000000) 0) (num-test (gcd 0 500029) 500029) (num-test (lcm 0 500029) 0) (num-test (gcd 0 500029) 500029) (num-test (lcm 0 500029) 0) (num-test (gcd 0 -500029) 500029) (num-test (lcm 0 -500029) 0) (num-test (gcd 0 -500029) 500029) (num-test (lcm 0 -500029) 0) (num-test (gcd 0 362880) 362880) (num-test (lcm 0 362880) 0) (num-test (gcd 0 362880) 362880) (num-test (lcm 0 362880) 0) (num-test (gcd 0 -362880) 362880) (num-test (lcm 0 -362880) 0) (num-test (gcd 0 -362880) 362880) (num-test (lcm 0 -362880) 0) (num-test (gcd 1 0) 1) (num-test (lcm 1 0) 0) (num-test (gcd -1 0) 1) (num-test (lcm -1 0) 0) (num-test (gcd 1 0) 1) (num-test (lcm 1 0) 0) (num-test (gcd -1 0) 1) (num-test (lcm -1 0) 0) (num-test (gcd 1 1) 1) (num-test (lcm 1 1) 1) (num-test (gcd -1 1) 1) (num-test (lcm -1 1) 1) (num-test (gcd 1 -1) 1) (num-test (lcm 1 -1) 1) (num-test (gcd -1 -1) 1) (num-test (lcm -1 -1) 1) (num-test (gcd 1 2) 1) (num-test (lcm 1 2) 2) (num-test (gcd -1 2) 1) (num-test (lcm -1 2) 2) (num-test (gcd 1 -2) 1) (num-test (lcm 1 -2) 2) (num-test (gcd -1 -2) 1) (num-test (lcm -1 -2) 2) (num-test (gcd 1 3) 1) (num-test (lcm 1 3) 3) (num-test (gcd -1 3) 1) (num-test (lcm -1 3) 3) (num-test (gcd 1 -3) 1) (num-test (lcm 1 -3) 3) (num-test (gcd -1 -3) 1) (num-test (lcm -1 -3) 3) (num-test (gcd 1 10) 1) (num-test (lcm 1 10) 10) (num-test (gcd -1 10) 1) (num-test (lcm -1 10) 10) (num-test (gcd 1 -10) 1) (num-test (lcm 1 -10) 10) (num-test (gcd -1 -10) 1) (num-test (lcm -1 -10) 10) (num-test (gcd 1 1234) 1) (num-test (lcm 1 1234) 1234) (num-test (gcd -1 1234) 1) (num-test (lcm -1 1234) 1234) (num-test (gcd 1 -1234) 1) (num-test (lcm 1 -1234) 1234) (num-test (gcd -1 -1234) 1) (num-test (lcm -1 -1234) 1234) (num-test (gcd 1 1234000000) 1) (num-test (lcm 1 1234000000) 1234000000) (num-test (gcd -1 1234000000) 1) (num-test (lcm -1 1234000000) 1234000000) (num-test (gcd 1 -1234000000) 1) (num-test (lcm 1 -1234000000) 1234000000) (num-test (gcd -1 -1234000000) 1) (num-test (lcm -1 -1234000000) 1234000000) (num-test (gcd 1 500029) 1) (num-test (lcm 1 500029) 500029) (num-test (gcd -1 500029) 1) (num-test (lcm -1 500029) 500029) (num-test (gcd 1 -500029) 1) (num-test (lcm 1 -500029) 500029) (num-test (gcd -1 -500029) 1) (num-test (lcm -1 -500029) 500029) (num-test (gcd 1 362880) 1) (num-test (lcm 1 362880) 362880) (num-test (gcd -1 362880) 1) (num-test (lcm -1 362880) 362880) (num-test (gcd 1 -362880) 1) (num-test (lcm 1 -362880) 362880) (num-test (gcd -1 -362880) 1) (num-test (lcm -1 -362880) 362880) (num-test (gcd 2 0) 2) (num-test (lcm 2 0) 0) (num-test (gcd -2 0) 2) (num-test (lcm -2 0) 0) (num-test (gcd 2 0) 2) (num-test (lcm 2 0) 0) (num-test (gcd -2 0) 2) (num-test (lcm -2 0) 0) (num-test (gcd 2 1) 1) (num-test (lcm 2 1) 2) (num-test (gcd -2 1) 1) (num-test (lcm -2 1) 2) (num-test (gcd 2 -1) 1) (num-test (lcm 2 -1) 2) (num-test (gcd -2 -1) 1) (num-test (lcm -2 -1) 2) (num-test (gcd 2 2) 2) (num-test (lcm 2 2) 2) (num-test (gcd -2 2) 2) (num-test (lcm -2 2) 2) (num-test (gcd 2 -2) 2) (num-test (lcm 2 -2) 2) (num-test (gcd -2 -2) 2) (num-test (lcm -2 -2) 2) (num-test (gcd 2 3) 1) (num-test (lcm 2 3) 6) (num-test (gcd -2 3) 1) (num-test (lcm -2 3) 6) (num-test (gcd 2 -3) 1) (num-test (lcm 2 -3) 6) (num-test (gcd -2 -3) 1) (num-test (lcm -2 -3) 6) (num-test (gcd 2 10) 2) (num-test (lcm 2 10) 10) (num-test (gcd -2 10) 2) (num-test (lcm -2 10) 10) (num-test (gcd 2 -10) 2) (num-test (lcm 2 -10) 10) (num-test (gcd -2 -10) 2) (num-test (lcm -2 -10) 10) (num-test (gcd 2 1234) 2) (num-test (lcm 2 1234) 1234) (num-test (gcd -2 1234) 2) (num-test (lcm -2 1234) 1234) (num-test (gcd 2 -1234) 2) (num-test (lcm 2 -1234) 1234) (num-test (gcd -2 -1234) 2) (num-test (lcm -2 -1234) 1234) (num-test (gcd 2 1234000000) 2) (num-test (lcm 2 1234000000) 1234000000) (num-test (gcd -2 1234000000) 2) (num-test (lcm -2 1234000000) 1234000000) (num-test (gcd 2 -1234000000) 2) (num-test (lcm 2 -1234000000) 1234000000) (num-test (gcd -2 -1234000000) 2) (num-test (lcm -2 -1234000000) 1234000000) (num-test (gcd 2 500029) 1) (num-test (lcm 2 500029) 1000058) (num-test (gcd -2 500029) 1) (num-test (lcm -2 500029) 1000058) (num-test (gcd 2 -500029) 1) (num-test (lcm 2 -500029) 1000058) (num-test (gcd -2 -500029) 1) (num-test (lcm -2 -500029) 1000058) (num-test (gcd 2 362880) 2) (num-test (lcm 2 362880) 362880) (num-test (gcd -2 362880) 2) (num-test (lcm -2 362880) 362880) (num-test (gcd 2 -362880) 2) (num-test (lcm 2 -362880) 362880) (num-test (gcd -2 -362880) 2) (num-test (lcm -2 -362880) 362880) (num-test (gcd 3 0) 3) (num-test (lcm 3 0) 0) (num-test (gcd -3 0) 3) (num-test (lcm -3 0) 0) (num-test (gcd 3 0) 3) (num-test (lcm 3 0) 0) (num-test (gcd -3 0) 3) (num-test (lcm -3 0) 0) (num-test (gcd 3 1) 1) (num-test (lcm 3 1) 3) (num-test (gcd -3 1) 1) (num-test (lcm -3 1) 3) (num-test (gcd 3 -1) 1) (num-test (lcm 3 -1) 3) (num-test (gcd -3 -1) 1) (num-test (lcm -3 -1) 3) (num-test (gcd 3 2) 1) (num-test (lcm 3 2) 6) (num-test (gcd -3 2) 1) (num-test (lcm -3 2) 6) (num-test (gcd 3 -2) 1) (num-test (lcm 3 -2) 6) (num-test (gcd -3 -2) 1) (num-test (lcm -3 -2) 6) (num-test (gcd 3 3) 3) (num-test (lcm 3 3) 3) (num-test (gcd -3 3) 3) (num-test (lcm -3 3) 3) (num-test (gcd 3 -3) 3) (num-test (lcm 3 -3) 3) (num-test (gcd -3 -3) 3) (num-test (lcm -3 -3) 3) (num-test (gcd 3 10) 1) (num-test (lcm 3 10) 30) (num-test (gcd -3 10) 1) (num-test (lcm -3 10) 30) (num-test (gcd 3 -10) 1) (num-test (lcm 3 -10) 30) (num-test (gcd -3 -10) 1) (num-test (lcm -3 -10) 30) (num-test (gcd 3 1234) 1) (num-test (lcm 3 1234) 3702) (num-test (gcd -3 1234) 1) (num-test (lcm -3 1234) 3702) (num-test (gcd 3 -1234) 1) (num-test (lcm 3 -1234) 3702) (num-test (gcd -3 -1234) 1) (num-test (lcm -3 -1234) 3702) (num-test (gcd 3 1234000000) 1) (num-test (lcm 3 1234000000) 3702000000) (num-test (gcd -3 1234000000) 1) (num-test (lcm -3 1234000000) 3702000000) (num-test (gcd 3 -1234000000) 1) (num-test (lcm 3 -1234000000) 3702000000) (num-test (gcd -3 -1234000000) 1) (num-test (lcm -3 -1234000000) 3702000000) (num-test (gcd 3 500029) 1) (num-test (lcm 3 500029) 1500087) (num-test (gcd -3 500029) 1) (num-test (lcm -3 500029) 1500087) (num-test (gcd 3 -500029) 1) (num-test (lcm 3 -500029) 1500087) (num-test (gcd -3 -500029) 1) (num-test (lcm -3 -500029) 1500087) (num-test (gcd 3 362880) 3) (num-test (lcm 3 362880) 362880) (num-test (gcd -3 362880) 3) (num-test (lcm -3 362880) 362880) (num-test (gcd 3 -362880) 3) (num-test (lcm 3 -362880) 362880) (num-test (gcd -3 -362880) 3) (num-test (lcm -3 -362880) 362880) (num-test (gcd 10 0) 10) (num-test (lcm 10 0) 0) (num-test (gcd -10 0) 10) (num-test (lcm -10 0) 0) (num-test (gcd 10 0) 10) (num-test (lcm 10 0) 0) (num-test (gcd -10 0) 10) (num-test (lcm -10 0) 0) (num-test (gcd 10 1) 1) (num-test (lcm 10 1) 10) (num-test (gcd -10 1) 1) (num-test (lcm -10 1) 10) (num-test (gcd 10 -1) 1) (num-test (lcm 10 -1) 10) (num-test (gcd -10 -1) 1) (num-test (lcm -10 -1) 10) (num-test (gcd 10 2) 2) (num-test (lcm 10 2) 10) (num-test (gcd -10 2) 2) (num-test (lcm -10 2) 10) (num-test (gcd 10 -2) 2) (num-test (lcm 10 -2) 10) (num-test (gcd -10 -2) 2) (num-test (lcm -10 -2) 10) (num-test (gcd 10 3) 1) (num-test (lcm 10 3) 30) (num-test (gcd -10 3) 1) (num-test (lcm -10 3) 30) (num-test (gcd 10 -3) 1) (num-test (lcm 10 -3) 30) (num-test (gcd -10 -3) 1) (num-test (lcm -10 -3) 30) (num-test (gcd 10 10) 10) (num-test (lcm 10 10) 10) (num-test (gcd -10 10) 10) (num-test (lcm -10 10) 10) (num-test (gcd 10 -10) 10) (num-test (lcm 10 -10) 10) (num-test (gcd -10 -10) 10) (num-test (lcm -10 -10) 10) (num-test (gcd 10 1234) 2) (num-test (lcm 10 1234) 6170) (num-test (gcd -10 1234) 2) (num-test (lcm -10 1234) 6170) (num-test (gcd 10 -1234) 2) (num-test (lcm 10 -1234) 6170) (num-test (gcd -10 -1234) 2) (num-test (lcm -10 -1234) 6170) (num-test (gcd 10 1234000000) 10) (num-test (lcm 10 1234000000) 1234000000) (num-test (gcd -10 1234000000) 10) (num-test (lcm -10 1234000000) 1234000000) (num-test (gcd 10 -1234000000) 10) (num-test (lcm 10 -1234000000) 1234000000) (num-test (gcd -10 -1234000000) 10) (num-test (lcm -10 -1234000000) 1234000000) (num-test (gcd 10 500029) 1) (num-test (lcm 10 500029) 5000290) (num-test (gcd -10 500029) 1) (num-test (lcm -10 500029) 5000290) (num-test (gcd 10 -500029) 1) (num-test (lcm 10 -500029) 5000290) (num-test (gcd -10 -500029) 1) (num-test (lcm -10 -500029) 5000290) (num-test (gcd 10 362880) 10) (num-test (lcm 10 362880) 362880) (num-test (gcd -10 362880) 10) (num-test (lcm -10 362880) 362880) (num-test (gcd 10 -362880) 10) (num-test (lcm 10 -362880) 362880) (num-test (gcd -10 -362880) 10) (num-test (lcm -10 -362880) 362880) (num-test (gcd 1234 0) 1234) (num-test (lcm 1234 0) 0) (num-test (gcd -1234 0) 1234) (num-test (lcm -1234 0) 0) (num-test (gcd 1234 0) 1234) (num-test (lcm 1234 0) 0) (num-test (gcd -1234 0) 1234) (num-test (lcm -1234 0) 0) (num-test (gcd 1234 1) 1) (num-test (lcm 1234 1) 1234) (num-test (gcd -1234 1) 1) (num-test (lcm -1234 1) 1234) (num-test (gcd 1234 -1) 1) (num-test (lcm 1234 -1) 1234) (num-test (gcd -1234 -1) 1) (num-test (lcm -1234 -1) 1234) (num-test (gcd 1234 2) 2) (num-test (lcm 1234 2) 1234) (num-test (gcd -1234 2) 2) (num-test (lcm -1234 2) 1234) (num-test (gcd 1234 -2) 2) (num-test (lcm 1234 -2) 1234) (num-test (gcd -1234 -2) 2) (num-test (lcm -1234 -2) 1234) (num-test (gcd 1234 3) 1) (num-test (lcm 1234 3) 3702) (num-test (gcd -1234 3) 1) (num-test (lcm -1234 3) 3702) (num-test (gcd 1234 -3) 1) (num-test (lcm 1234 -3) 3702) (num-test (gcd -1234 -3) 1) (num-test (lcm -1234 -3) 3702) (num-test (gcd 1234 10) 2) (num-test (lcm 1234 10) 6170) (num-test (gcd -1234 10) 2) (num-test (lcm -1234 10) 6170) (num-test (gcd 1234 -10) 2) (num-test (lcm 1234 -10) 6170) (num-test (gcd -1234 -10) 2) (num-test (lcm -1234 -10) 6170) (num-test (gcd 1234 1234) 1234) (num-test (lcm 1234 1234) 1234) (num-test (gcd -1234 1234) 1234) (num-test (lcm -1234 1234) 1234) (num-test (gcd 1234 -1234) 1234) (num-test (lcm 1234 -1234) 1234) (num-test (gcd -1234 -1234) 1234) (num-test (lcm -1234 -1234) 1234) (num-test (gcd 1234 1234000000) 1234) (num-test (lcm 1234 1234000000) 1234000000) (num-test (gcd -1234 1234000000) 1234) (num-test (lcm -1234 1234000000) 1234000000) (num-test (gcd 1234 -1234000000) 1234) (num-test (lcm 1234 -1234000000) 1234000000) (num-test (gcd -1234 -1234000000) 1234) (num-test (lcm -1234 -1234000000) 1234000000) (num-test (gcd 1234 500029) 1) (num-test (lcm 1234 500029) 617035786) (num-test (gcd -1234 500029) 1) (num-test (lcm -1234 500029) 617035786) (num-test (gcd 1234 -500029) 1) (num-test (lcm 1234 -500029) 617035786) (num-test (gcd -1234 -500029) 1) (num-test (lcm -1234 -500029) 617035786) (num-test (gcd 1234 362880) 2) (num-test (lcm 1234 362880) 223896960) (num-test (gcd -1234 362880) 2) (num-test (lcm -1234 362880) 223896960) (num-test (gcd 1234 -362880) 2) (num-test (lcm 1234 -362880) 223896960) (num-test (gcd -1234 -362880) 2) (num-test (lcm -1234 -362880) 223896960) (num-test (gcd 1234000000 0) 1234000000) (num-test (lcm 1234000000 0) 0) (num-test (gcd -1234000000 0) 1234000000) (num-test (lcm -1234000000 0) 0) (num-test (gcd 1234000000 0) 1234000000) (num-test (lcm 1234000000 0) 0) (num-test (gcd -1234000000 0) 1234000000) (num-test (lcm -1234000000 0) 0) (num-test (gcd 1234000000 1) 1) (num-test (lcm 1234000000 1) 1234000000) (num-test (gcd -1234000000 1) 1) (num-test (lcm -1234000000 1) 1234000000) (num-test (gcd 1234000000 -1) 1) (num-test (lcm 1234000000 -1) 1234000000) (num-test (gcd -1234000000 -1) 1) (num-test (lcm -1234000000 -1) 1234000000) (num-test (gcd 1234000000 2) 2) (num-test (lcm 1234000000 2) 1234000000) (num-test (gcd -1234000000 2) 2) (num-test (lcm -1234000000 2) 1234000000) (num-test (gcd 1234000000 -2) 2) (num-test (lcm 1234000000 -2) 1234000000) (num-test (gcd -1234000000 -2) 2) (num-test (lcm -1234000000 -2) 1234000000) (num-test (gcd 1234000000 3) 1) (num-test (lcm 1234000000 3) 3702000000) (num-test (gcd -1234000000 3) 1) (num-test (lcm -1234000000 3) 3702000000) (num-test (gcd 1234000000 -3) 1) (num-test (lcm 1234000000 -3) 3702000000) (num-test (gcd -1234000000 -3) 1) (num-test (lcm -1234000000 -3) 3702000000) (num-test (gcd 1234000000 10) 10) (num-test (lcm 1234000000 10) 1234000000) (num-test (gcd -1234000000 10) 10) (num-test (lcm -1234000000 10) 1234000000) (num-test (gcd 1234000000 -10) 10) (num-test (lcm 1234000000 -10) 1234000000) (num-test (gcd -1234000000 -10) 10) (num-test (lcm -1234000000 -10) 1234000000) (num-test (gcd 1234000000 1234) 1234) (num-test (lcm 1234000000 1234) 1234000000) (num-test (gcd -1234000000 1234) 1234) (num-test (lcm -1234000000 1234) 1234000000) (num-test (gcd 1234000000 -1234) 1234) (num-test (lcm 1234000000 -1234) 1234000000) (num-test (gcd -1234000000 -1234) 1234) (num-test (lcm -1234000000 -1234) 1234000000) (num-test (gcd 1234000000 1234000000) 1234000000) (num-test (lcm 1234000000 1234000000) 1234000000) (num-test (gcd -1234000000 1234000000) 1234000000) (num-test (lcm -1234000000 1234000000) 1234000000) (num-test (gcd 1234000000 -1234000000) 1234000000) (num-test (lcm 1234000000 -1234000000) 1234000000) (num-test (gcd -1234000000 -1234000000) 1234000000) (num-test (lcm -1234000000 -1234000000) 1234000000) (num-test (gcd 1234000000 500029) 1) (num-test (lcm 1234000000 500029) 617035786000000) (num-test (gcd -1234000000 500029) 1) (num-test (lcm -1234000000 500029) 617035786000000) (num-test (gcd 1234000000 -500029) 1) (num-test (lcm 1234000000 -500029) 617035786000000) (num-test (gcd -1234000000 -500029) 1) (num-test (lcm -1234000000 -500029) 617035786000000) (num-test (gcd 1234000000 362880) 640) (num-test (lcm 1234000000 362880) 699678000000) (num-test (gcd -1234000000 362880) 640) (num-test (lcm -1234000000 362880) 699678000000) (num-test (gcd 1234000000 -362880) 640) (num-test (lcm 1234000000 -362880) 699678000000) (num-test (gcd -1234000000 -362880) 640) (num-test (lcm -1234000000 -362880) 699678000000) (num-test (gcd 500029 0) 500029) (num-test (lcm 500029 0) 0) (num-test (gcd -500029 0) 500029) (num-test (lcm -500029 0) 0) (num-test (gcd 500029 0) 500029) (num-test (lcm 500029 0) 0) (num-test (gcd -500029 0) 500029) (num-test (lcm -500029 0) 0) (num-test (gcd 500029 1) 1) (num-test (lcm 500029 1) 500029) (num-test (gcd -500029 1) 1) (num-test (lcm -500029 1) 500029) (num-test (gcd 500029 -1) 1) (num-test (lcm 500029 -1) 500029) (num-test (gcd -500029 -1) 1) (num-test (lcm -500029 -1) 500029) (num-test (gcd 500029 2) 1) (num-test (lcm 500029 2) 1000058) (num-test (gcd -500029 2) 1) (num-test (lcm -500029 2) 1000058) (num-test (gcd 500029 -2) 1) (num-test (lcm 500029 -2) 1000058) (num-test (gcd -500029 -2) 1) (num-test (lcm -500029 -2) 1000058) (num-test (gcd 500029 3) 1) (num-test (lcm 500029 3) 1500087) (num-test (gcd -500029 3) 1) (num-test (lcm -500029 3) 1500087) (num-test (gcd 500029 -3) 1) (num-test (lcm 500029 -3) 1500087) (num-test (gcd -500029 -3) 1) (num-test (lcm -500029 -3) 1500087) (num-test (gcd 500029 10) 1) (num-test (lcm 500029 10) 5000290) (num-test (gcd -500029 10) 1) (num-test (lcm -500029 10) 5000290) (num-test (gcd 500029 -10) 1) (num-test (lcm 500029 -10) 5000290) (num-test (gcd -500029 -10) 1) (num-test (lcm -500029 -10) 5000290) (num-test (gcd 500029 1234) 1) (num-test (lcm 500029 1234) 617035786) (num-test (gcd -500029 1234) 1) (num-test (lcm -500029 1234) 617035786) (num-test (gcd 500029 -1234) 1) (num-test (lcm 500029 -1234) 617035786) (num-test (gcd -500029 -1234) 1) (num-test (lcm -500029 -1234) 617035786) (num-test (gcd 500029 1234000000) 1) (num-test (lcm 500029 1234000000) 617035786000000) (num-test (gcd -500029 1234000000) 1) (num-test (lcm -500029 1234000000) 617035786000000) (num-test (gcd 500029 -1234000000) 1) (num-test (lcm 500029 -1234000000) 617035786000000) (num-test (gcd -500029 -1234000000) 1) (num-test (lcm -500029 -1234000000) 617035786000000) (num-test (gcd 500029 500029) 500029) (num-test (lcm 500029 500029) 500029) (num-test (gcd -500029 500029) 500029) (num-test (lcm -500029 500029) 500029) (num-test (gcd 500029 -500029) 500029) (num-test (lcm 500029 -500029) 500029) (num-test (gcd -500029 -500029) 500029) (num-test (lcm -500029 -500029) 500029) (num-test (gcd 500029 362880) 1) (num-test (lcm 500029 362880) 181450523520) (num-test (gcd -500029 362880) 1) (num-test (lcm -500029 362880) 181450523520) (num-test (gcd 500029 -362880) 1) (num-test (lcm 500029 -362880) 181450523520) (num-test (gcd -500029 -362880) 1) (num-test (lcm -500029 -362880) 181450523520) (num-test (gcd 362880 0) 362880) (num-test (lcm 362880 0) 0) (num-test (gcd -362880 0) 362880) (num-test (lcm -362880 0) 0) (num-test (gcd 362880 0) 362880) (num-test (lcm 362880 0) 0) (num-test (gcd -362880 0) 362880) (num-test (lcm -362880 0) 0) (num-test (gcd 362880 1) 1) (num-test (lcm 362880 1) 362880) (num-test (gcd -362880 1) 1) (num-test (lcm -362880 1) 362880) (num-test (gcd 362880 -1) 1) (num-test (lcm 362880 -1) 362880) (num-test (gcd -362880 -1) 1) (num-test (lcm -362880 -1) 362880) (num-test (gcd 362880 2) 2) (num-test (lcm 362880 2) 362880) (num-test (gcd -362880 2) 2) (num-test (lcm -362880 2) 362880) (num-test (gcd 362880 -2) 2) (num-test (lcm 362880 -2) 362880) (num-test (gcd -362880 -2) 2) (num-test (lcm -362880 -2) 362880) (num-test (gcd 362880 3) 3) (num-test (lcm 362880 3) 362880) (num-test (gcd -362880 3) 3) (num-test (lcm -362880 3) 362880) (num-test (gcd 362880 -3) 3) (num-test (lcm 362880 -3) 362880) (num-test (gcd -362880 -3) 3) (num-test (lcm -362880 -3) 362880) (num-test (gcd 362880 10) 10) (num-test (lcm 362880 10) 362880) (num-test (gcd -362880 10) 10) (num-test (lcm -362880 10) 362880) (num-test (gcd 362880 -10) 10) (num-test (lcm 362880 -10) 362880) (num-test (gcd -362880 -10) 10) (num-test (lcm -362880 -10) 362880) (num-test (gcd 362880 1234) 2) (num-test (lcm 362880 1234) 223896960) (num-test (gcd -362880 1234) 2) (num-test (lcm -362880 1234) 223896960) (num-test (gcd 362880 -1234) 2) (num-test (lcm 362880 -1234) 223896960) (num-test (gcd -362880 -1234) 2) (num-test (lcm -362880 -1234) 223896960) (num-test (gcd 362880 1234000000) 640) (num-test (lcm 362880 1234000000) 699678000000) (num-test (gcd -362880 1234000000) 640) (num-test (lcm -362880 1234000000) 699678000000) (num-test (gcd 362880 -1234000000) 640) (num-test (lcm 362880 -1234000000) 699678000000) (num-test (gcd -362880 -1234000000) 640) (num-test (lcm -362880 -1234000000) 699678000000) (num-test (gcd 362880 500029) 1) (num-test (lcm 362880 500029) 181450523520) (num-test (gcd -362880 500029) 1) (num-test (lcm -362880 500029) 181450523520) (num-test (gcd 362880 -500029) 1) (num-test (lcm 362880 -500029) 181450523520) (num-test (gcd -362880 -500029) 1) (num-test (lcm -362880 -500029) 181450523520) (num-test (gcd 362880 362880) 362880) (num-test (lcm 362880 362880) 362880) (num-test (gcd -362880 362880) 362880) (num-test (lcm -362880 362880) 362880) (num-test (gcd 362880 -362880) 362880) (num-test (lcm 362880 -362880) 362880) (num-test (gcd -362880 -362880) 362880) (num-test (lcm -362880 -362880) 362880) (num-test (gcd 60 42) 6) (num-test (gcd 3333 -33 101) 1) (num-test (gcd 3333 -33 1002001) 11) (num-test (gcd 91 -49) 7) (num-test (gcd 63 -42 35) 7) (num-test (gcd 0 0 0 10) 10) (num-test (lcm 0 0 0 10) 0) (num-test (gcd 0 1 -1 362880) 1) (num-test (gcd 0 2 2 -500029) 1) (num-test (gcd 0 3 -3 -1234000000) 1) (num-test (gcd 0 10 10 1234) 2) (num-test (lcm 0 10 10 1234) 0) (num-test (gcd 0 1234 -1234 10) 2) (num-test (lcm 0 1234 -1234 10) 0) (num-test (gcd 0 1234000000 1234000000 -3) 1) (num-test (gcd 0 500029 -500029 -2) 1) (num-test (gcd 0 362880 362880 1) 1) (num-test (gcd 1 0 -1 1) 1) (num-test (lcm 1 0 -1 1) 0) (num-test (gcd 1 1 2 -10) 1) (num-test (lcm 1 1 2 -10) 10) (num-test (gcd 1 2 -3 -362880) 1) (num-test (gcd 1 3 10 500029) 1) (num-test (gcd 1 10 -1234 1234000000) 1) (num-test (gcd 1 1234 1234000000 -1234) 1) (num-test (gcd 1 1234000000 -500029 -10) 1) (num-test (gcd 1 500029 362880 3) 1) (num-test (gcd 1 362880 0 2) 1) (num-test (gcd 2 0 2 -2) 2) (num-test (lcm 2 0 2 -2) 0) (num-test (gcd 2 1 -3 -1) 1) (num-test (lcm 2 1 -3 -1) 6) (num-test (gcd 2 2 10 10) 2) (num-test (lcm 2 2 10 10) 10) (num-test (gcd 2 3 -1234 362880) 1) (num-test (gcd 2 10 1234000000 -500029) 1) (num-test (gcd 2 1234 -500029 -1234000000) 1) (num-test (gcd 2 1234000000 362880 1234) 2) (num-test (gcd 2 500029 0 10) 1) (num-test (gcd 2 362880 1 -3) 1) (num-test (gcd 3 0 -3 -3) 3) (num-test (lcm 3 0 -3 -3) 0) (num-test (gcd 3 1 10 2) 1) (num-test (lcm 3 1 10 2) 30) (num-test (gcd 3 2 -1234 1) 1) (num-test (lcm 3 2 -1234 1) 3702) (num-test (gcd 3 3 1234000000 -10) 1) (num-test (gcd 3 10 -500029 -362880) 1) (num-test (gcd 3 1234 362880 500029) 1) (num-test (gcd 3 1234000000 0 1234000000) 1) (num-test (gcd 3 500029 1 -1234) 1) (num-test (gcd 3 362880 -2 -10) 1) (num-test (gcd 10 0 10 10) 10) (num-test (lcm 10 0 10 10) 0) (num-test (gcd 10 1 -1234 3) 1) (num-test (lcm 10 1 -1234 3) 18510) (num-test (gcd 10 2 1234000000 -2) 2) (num-test (gcd 10 3 -500029 -1) 1) (num-test (gcd 10 10 362880 10) 10) (num-test (gcd 10 1234 0 362880) 2) (num-test (gcd 10 1234000000 1 -500029) 1) (num-test (gcd 10 500029 -2 -1234000000) 1) (num-test (gcd 10 362880 3 1234) 1) (num-test (gcd 1234 0 -1234 1234) 1234) (num-test (lcm 1234 0 -1234 1234) 0) (num-test (gcd 1234 1 1234000000 -10) 1) (num-test (gcd 1234 2 -500029 -3) 1) (num-test (gcd 1234 3 362880 2) 1) (num-test (gcd 1234 10 0 1) 1) (num-test (lcm 1234 10 0 1) 0) (num-test (gcd 1234 1234 1 -10) 1) (num-test (lcm 1234 1234 1 -10) 6170) (num-test (gcd 1234 1234000000 -2 -362880) 2) (num-test (gcd 1234 500029 3 500029) 1) (num-test (gcd 1234 362880 -10 1234000000) 2) (num-test (gcd 1234000000 0 1234000000 -1234000000) 1234000000) (num-test (gcd 1234000000 1 -500029 -1234) 1) (num-test (gcd 1234000000 2 362880 10) 2) (num-test (gcd 1234000000 3 0 3) 1) (num-test (gcd 1234000000 10 1 -2) 1) (num-test (gcd 1234000000 1234 -2 -1) 1) (num-test (gcd 1234000000 1234000000 3 10) 1) (num-test (gcd 1234000000 500029 -10 362880) 1) (num-test (gcd 1234000000 362880 1234 -500029) 1) (num-test (gcd 500029 0 -500029 -500029) 500029) (num-test (gcd 500029 1 362880 1234000000) 1) (num-test (gcd 500029 2 0 1234) 1) (num-test (gcd 500029 3 1 -10) 1) (num-test (gcd 500029 10 -2 -3) 1) (num-test (gcd 500029 1234 3 2) 1) (num-test (gcd 500029 1234000000 -10 1) 1) (num-test (gcd 500029 500029 1234 -10) 1) (num-test (gcd 500029 362880 -1234000000 -362880) 1) (num-test (gcd 362880 0 362880 362880) 362880) (num-test (gcd 362880 1 0 500029) 1) (num-test (gcd 362880 2 1 -1234000000) 1) (num-test (gcd 362880 3 -2 -1234) 1) (num-test (gcd 362880 10 3 10) 1) (num-test (gcd 362880 1234 -10 3) 1) (num-test (gcd 362880 1234000000 1234 -2) 2) (num-test (gcd 362880 500029 -1234000000 -1) 1) (num-test (gcd 362880 362880 500029 10) 1) (num-test (gcd 323 28747 27113) 19) (num-test (lcm 323 28747 27113) 41021969) (num-test (lcm (* 512 500057) (* 128 500057) (* 2048 500057)) 1024116736) (num-test (gcd (* 512 500057) (* 128 500057) (* 2048 500057)) 64007296) (num-test (gcd 91 -49) 7) (num-test (lcm 14 35) 70) (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)) (if (or with-bignums with-64-bit-ints) (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 0 4) 4 ) (num-test (gcd -4 0) 4 ) (num-test (gcd 32 -36) 4 ) (num-test (gcd) 0 ) (num-test (lcm 32 -36) 288 ) (num-test (lcm) 1 ) (num-test (gcd 2 0) 2) (num-test (lcm 2 0) 0) ;; -------- real-part and imag-part (num-test (real-part 1) 1) (num-test (imag-part 1) 0.0) (num-test (real-part 2.0) 2.0) (num-test (imag-part -2.0) 0.0) (num-test (real-part 2/3) 2/3) (num-test (imag-part 1+i) 1.0) (num-test (imag-part 0+i) 1.0) (num-test (imag-part 1-i) -1.0) (num-test (imag-part 2/3) 0.0) (num-test (real-part 0.0+0.0i) 0.0) (num-test (imag-part 0.0+0.0i) 0.0) (num-test (real-part -0.0+0.00000001i) -0.0) (num-test (imag-part -0.0+0.00000001i) 0.00000001) (num-test (real-part 0.0-1.0i) 0.0) (num-test (imag-part 0.0-1.0i) -1.0) (num-test (real-part -0.0-3.14159265358979i) -0.0) (num-test (imag-part -0.0-3.14159265358979i) -3.14159265358979) (num-test (real-part 0.0+2.71828182845905i) 0.0) (num-test (imag-part 0.0+2.71828182845905i) 2.71828182845905) (num-test (real-part -0.0+1234.0i) -0.0) (num-test (imag-part -0.0+1234.0i) 1234.0) (num-test (real-part 0.0-1234000000.0i) 0.0) (num-test (imag-part 0.0-1234000000.0i) -1234000000.0) (num-test (real-part -0.00000001-0.0i) -0.00000001) (num-test (imag-part -0.00000001-0.0i) -0.0) (num-test (real-part 0.00000001+0.00000001i) 0.00000001) (num-test (imag-part 0.00000001+0.00000001i) 0.00000001) (num-test (real-part -0.00000001+1.0i) -0.00000001) (num-test (imag-part -0.00000001+1.0i) 1.0) (num-test (real-part 0.00000001-3.14159265358979i) 0.00000001) (num-test (imag-part 0.00000001-3.14159265358979i) -3.14159265358979) (num-test (real-part -0.00000001-2.71828182845905i) -0.00000001) (num-test (imag-part -0.00000001-2.71828182845905i) -2.71828182845905) (num-test (real-part 0.00000001+1234.0i) 0.00000001) (num-test (imag-part 0.00000001+1234.0i) 1234.0) (num-test (real-part -0.00000001+1234000000.0i) -0.00000001) (num-test (imag-part -0.00000001+1234000000.0i) 1234000000.0) (num-test (real-part 1.0-0.0i) 1.0) (num-test (imag-part 1.0-0.0i) -0.0) (num-test (real-part -1.0-0.00000001i) -1.0) (num-test (imag-part -1.0-0.00000001i) -0.00000001) (num-test (real-part 1.0+1.0i) 1.0) (num-test (imag-part 1.0+1.0i) 1.0) (num-test (real-part -1.0+3.14159265358979i) -1.0) (num-test (imag-part -1.0+3.14159265358979i) 3.14159265358979) (num-test (real-part 1.0-2.71828182845905i) 1.0) (num-test (imag-part 1.0-2.71828182845905i) -2.71828182845905) (num-test (real-part -1.0-1234.0i) -1.0) (num-test (imag-part -1.0-1234.0i) -1234.0) (num-test (real-part 1.0+1234000000.0i) 1.0) (num-test (imag-part 1.0+1234000000.0i) 1234000000.0) (num-test (real-part -3.14159265358979+0.0i) -3.14159265358979) (num-test (imag-part -3.14159265358979+0.0i) 0.0) (num-test (real-part 3.14159265358979-0.00000001i) 3.14159265358979) (num-test (imag-part 3.14159265358979-0.00000001i) -0.00000001) (num-test (real-part -3.14159265358979-1.0i) -3.14159265358979) (num-test (imag-part -3.14159265358979-1.0i) -1.0) (num-test (real-part 3.14159265358979+3.14159265358979i) 3.14159265358979) (num-test (imag-part 3.14159265358979+3.14159265358979i) 3.14159265358979) (num-test (real-part -3.14159265358979+2.71828182845905i) -3.14159265358979) (num-test (imag-part -3.14159265358979+2.71828182845905i) 2.71828182845905) (num-test (real-part 3.14159265358979-1234.0i) 3.14159265358979) (num-test (imag-part 3.14159265358979-1234.0i) -1234.0) (num-test (real-part -3.14159265358979-1234000000.0i) -3.14159265358979) (num-test (imag-part -3.14159265358979-1234000000.0i) -1234000000.0) (num-test (real-part 2.71828182845905+0.0i) 2.71828182845905) (num-test (imag-part 2.71828182845905+0.0i) 0.0) (num-test (real-part -2.71828182845905+0.00000001i) -2.71828182845905) (num-test (imag-part -2.71828182845905+0.00000001i) 0.00000001) (num-test (real-part 2.71828182845905-1.0i) 2.71828182845905) (num-test (imag-part 2.71828182845905-1.0i) -1.0) (num-test (real-part -2.71828182845905-3.14159265358979i) -2.71828182845905) (num-test (imag-part -2.71828182845905-3.14159265358979i) -3.14159265358979) (num-test (real-part 2.71828182845905+2.71828182845905i) 2.71828182845905) (num-test (imag-part 2.71828182845905+2.71828182845905i) 2.71828182845905) (num-test (real-part -2.71828182845905+1234.0i) -2.71828182845905) (num-test (imag-part -2.71828182845905+1234.0i) 1234.0) (num-test (real-part 2.71828182845905-1234000000.0i) 2.71828182845905) (num-test (imag-part 2.71828182845905-1234000000.0i) -1234000000.0) (num-test (real-part -1234.0-0.0i) -1234.0) (num-test (imag-part -1234.0-0.0i) -0.0) (num-test (real-part 1234.0+0.00000001i) 1234.0) (num-test (imag-part 1234.0+0.00000001i) 0.00000001) (num-test (real-part -1234.0+1.0i) -1234.0) (num-test (imag-part -1234.0+1.0i) 1.0) (num-test (real-part 1234.0-3.14159265358979i) 1234.0) (num-test (imag-part 1234.0-3.14159265358979i) -3.14159265358979) (num-test (real-part -1234.0-2.71828182845905i) -1234.0) (num-test (imag-part -1234.0-2.71828182845905i) -2.71828182845905) (num-test (real-part 1234.0+1234.0i) 1234.0) (num-test (imag-part 1234.0+1234.0i) 1234.0) (num-test (real-part -1234.0+1234000000.0i) -1234.0) (num-test (imag-part -1234.0+1234000000.0i) 1234000000.0) (num-test (real-part 1234000000.0-0.0i) 1234000000.0) (num-test (imag-part 1234000000.0-0.0i) -0.0) (num-test (real-part -1234000000.0-0.00000001i) -1234000000.0) (num-test (imag-part -1234000000.0-0.00000001i) -0.00000001) (num-test (real-part 1234000000.0+1.0i) 1234000000.0) (num-test (imag-part 1234000000.0+1.0i) 1.0) (num-test (real-part -1234000000.0+3.14159265358979i) -1234000000.0) (num-test (imag-part -1234000000.0+3.14159265358979i) 3.14159265358979) (num-test (real-part 1234000000.0-2.71828182845905i) 1234000000.0) (num-test (imag-part 1234000000.0-2.71828182845905i) -2.71828182845905) (num-test (real-part -1234000000.0-1234.0i) -1234000000.0) (num-test (imag-part -1234000000.0-1234.0i) -1234.0) (num-test (real-part 1234000000.0+1234000000.0i) 1234000000.0) (num-test (imag-part 1234000000.0+1234000000.0i) 1234000000.0) (num-test (real-part 5) 5) (num-test (real-part 1.4+0.0i) 1.4) (num-test (imag-part 5) 0.0) (num-test (imag-part 1.4+0.0i) 0.0) ;; -------- numerator and denominator (num-test (numerator 12/6000996) 1) (num-test (denominator 12/6000996) 500083) (num-test (numerator 1) 1) (num-test (numerator 2/3) 2) (num-test (numerator 2/4) 1) (num-test (denominator 2/4) 2) (num-test (numerator -2/6) -1) (num-test (denominator -2/6) 3) (num-test (numerator -2/3) -2) (num-test (denominator -2/3) 3) (num-test (denominator 1) 1) (num-test (denominator 2/3) 3) (num-test (numerator 0/1) 0) (num-test (denominator 0/1) 1) (num-test (numerator 0/2) 0) (num-test (denominator 0/2) 1) (num-test (numerator 0/3) 0) (num-test (denominator 0/3) 1) (num-test (numerator 0/10) 0) (num-test (denominator 0/10) 1) (num-test (numerator 0/1234) 0) (num-test (denominator 0/1234) 1) (num-test (numerator 0/1234000000) 0) (num-test (denominator 0/1234000000) 1) (num-test (numerator 0/500029) 0) (num-test (denominator 0/500029) 1) (num-test (numerator 0/362880) 0) (num-test (denominator 0/362880) 1) (num-test (numerator 1/1) 1) (num-test (denominator 1/1) 1) (num-test (numerator -1/2) -1) (num-test (denominator -1/2) 2) (num-test (numerator 1/3) 1) (num-test (denominator 1/3) 3) (num-test (numerator -1/10) -1) (num-test (denominator -1/10) 10) (num-test (numerator 1/1234) 1) (num-test (denominator 1/1234) 1234) (num-test (numerator -1/1234000000) -1) (num-test (denominator -1/1234000000) 1234000000) (num-test (numerator 1/500029) 1) (num-test (denominator 1/500029) 500029) (num-test (numerator -1/362880) -1) (num-test (denominator -1/362880) 362880) (num-test (numerator -2/1) -2) (num-test (denominator -2/1) 1) (num-test (numerator 2/2) 1) (num-test (denominator 2/2) 1) (num-test (numerator -2/3) -2) (num-test (denominator -2/3) 3) (num-test (numerator 2/10) 1) (num-test (denominator 2/10) 5) (num-test (numerator -2/1234) -1) (num-test (denominator -2/1234) 617) (num-test (numerator 2/1234000000) 1) (num-test (denominator 2/1234000000) 617000000) (num-test (numerator -2/500029) -2) (num-test (denominator -2/500029) 500029) (num-test (numerator 2/362880) 1) (num-test (denominator 2/362880) 181440) (num-test (numerator 3/1) 3) (num-test (denominator 3/1) 1) (num-test (numerator -3/2) -3) (num-test (denominator -3/2) 2) (num-test (numerator 3/3) 1) (num-test (denominator 3/3) 1) (num-test (numerator -3/10) -3) (num-test (denominator -3/10) 10) (num-test (numerator 3/1234) 3) (num-test (denominator 3/1234) 1234) (num-test (numerator -3/1234000000) -3) (num-test (denominator -3/1234000000) 1234000000) (num-test (numerator 3/500029) 3) (num-test (denominator 3/500029) 500029) (num-test (numerator -3/362880) -1) (num-test (denominator -3/362880) 120960) (num-test (numerator -10/1) -10) (num-test (denominator -10/1) 1) (num-test (numerator 10/2) 5) (num-test (denominator 10/2) 1) (num-test (numerator -10/3) -10) (num-test (denominator -10/3) 3) (num-test (numerator 10/10) 1) (num-test (denominator 10/10) 1) (num-test (numerator -10/1234) -5) (num-test (denominator -10/1234) 617) (num-test (numerator 10/1234000000) 1) (num-test (denominator 10/1234000000) 123400000) (num-test (numerator -10/500029) -10) (num-test (denominator -10/500029) 500029) (num-test (numerator 10/362880) 1) (num-test (denominator 10/362880) 36288) (num-test (numerator 1234/1) 1234) (num-test (denominator 1234/1) 1) (num-test (numerator -1234/2) -617) (num-test (denominator -1234/2) 1) (num-test (numerator 1234/3) 1234) (num-test (denominator 1234/3) 3) (num-test (numerator -1234/10) -617) (num-test (denominator -1234/10) 5) (num-test (numerator 1234/1234) 1) (num-test (denominator 1234/1234) 1) (num-test (numerator -1234/1234000000) -1) (num-test (denominator -1234/1234000000) 1000000) (num-test (numerator 1234/500029) 1234) (num-test (denominator 1234/500029) 500029) (num-test (numerator -1234/362880) -617) (num-test (denominator -1234/362880) 181440) (num-test (numerator -1234000000/1) -1234000000) (num-test (denominator -1234000000/1) 1) (num-test (numerator 1234000000/2) 617000000) (num-test (denominator 1234000000/2) 1) (num-test (numerator -1234000000/3) -1234000000) (num-test (denominator -1234000000/3) 3) (num-test (numerator 1234000000/10) 123400000) (num-test (denominator 1234000000/10) 1) (num-test (numerator -1234000000/1234) -1000000) (num-test (denominator -1234000000/1234) 1) (num-test (numerator 1234000000/1234000000) 1) (num-test (denominator 1234000000/1234000000) 1) (num-test (numerator -1234000000/500029) -1234000000) (num-test (denominator -1234000000/500029) 500029) (num-test (numerator 1234000000/362880) 1928125) (num-test (denominator 1234000000/362880) 567) (num-test (numerator 500029/1) 500029) (num-test (denominator 500029/1) 1) (num-test (numerator -500029/2) -500029) (num-test (denominator -500029/2) 2) (num-test (numerator 500029/3) 500029) (num-test (denominator 500029/3) 3) (num-test (numerator -500029/10) -500029) (num-test (denominator -500029/10) 10) (num-test (numerator 500029/1234) 500029) (num-test (denominator 500029/1234) 1234) (num-test (numerator -500029/1234000000) -500029) (num-test (denominator -500029/1234000000) 1234000000) (num-test (numerator 500029/500029) 1) (num-test (denominator 500029/500029) 1) (num-test (numerator -500029/362880) -500029) (num-test (denominator -500029/362880) 362880) (num-test (numerator -362880/1) -362880) (num-test (denominator -362880/1) 1) (num-test (numerator 362880/2) 181440) (num-test (denominator 362880/2) 1) (num-test (numerator -362880/3) -120960) (num-test (denominator -362880/3) 1) (num-test (numerator 362880/10) 36288) (num-test (denominator 362880/10) 1) (num-test (numerator -362880/1234) -181440) (num-test (denominator -362880/1234) 617) (num-test (numerator 362880/1234000000) 567) (num-test (denominator 362880/1234000000) 1928125) (num-test (numerator -362880/500029) -362880) (num-test (denominator -362880/500029) 500029) (num-test (numerator 362880/362880) 1) (num-test (denominator 362880/362880) 1) (num-test (numerator 5/2) 5) (num-test (numerator (/ 8 -6)) -4) (num-test (denominator 5/2) 2) (num-test (denominator (/ 8 -6)) 3) ;; -------- modulo, remainder, quotient ;;; (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 (num-test (modulo 0 1) 0) (num-test (modulo 3 1) 0) (num-test (modulo -3 1) 0) (num-test (modulo 3 -1) 0) (num-test (remainder 0 1) 0) (num-test (quotient 0 1) 0) (num-test (modulo 0 1) 0) (num-test (remainder 0 1) 0) (num-test (quotient 0 1) 0) (num-test (modulo 0 -1) 0) (num-test (remainder 0 -1) 0) (num-test (quotient 0 -1) 0) (num-test (modulo 0 -1) 0) (num-test (remainder 0 -1) 0) (num-test (quotient 0 -1) 0) (num-test (modulo 0 2) 0) (num-test (remainder 0 2) 0) (num-test (quotient 0 2) 0) (num-test (modulo 0 2) 0) (num-test (remainder 0 2) 0) (num-test (quotient 0 2) 0) (num-test (modulo 0 -2) 0) (num-test (remainder 0 -2) 0) (num-test (quotient 0 -2) 0) (num-test (modulo 0 -2) 0) (num-test (remainder 0 -2) 0) (num-test (quotient 0 -2) 0) (num-test (modulo 0 3) 0) (num-test (remainder 0 3) 0) (num-test (quotient 0 3) 0) (num-test (modulo 0 3) 0) (num-test (remainder 0 3) 0) (num-test (quotient 0 3) 0) (num-test (modulo 0 -3) 0) (num-test (remainder 0 -3) 0) (num-test (quotient 0 -3) 0) (num-test (modulo 0 -3) 0) (num-test (remainder 0 -3) 0) (num-test (quotient 0 -3) 0) (num-test (modulo 0 10) 0) (num-test (remainder 0 10) 0) (num-test (quotient 0 10) 0) (num-test (modulo 0 10) 0) (num-test (remainder 0 10) 0) (num-test (quotient 0 10) 0) (num-test (modulo 0 -10) 0) (num-test (remainder 0 -10) 0) (num-test (quotient 0 -10) 0) (num-test (modulo 0 -10) 0) (num-test (remainder 0 -10) 0) (num-test (quotient 0 -10) 0) (num-test (modulo 0 1234) 0) (num-test (remainder 0 1234) 0) (num-test (quotient 0 1234) 0) (num-test (modulo 0 1234) 0) (num-test (remainder 0 1234) 0) (num-test (quotient 0 1234) 0) (num-test (modulo 0 -1234) 0) (num-test (remainder 0 -1234) 0) (num-test (quotient 0 -1234) 0) (num-test (modulo 0 -1234) 0) (num-test (remainder 0 -1234) 0) (num-test (quotient 0 -1234) 0) (num-test (modulo 0 1234000000) 0) (num-test (remainder 0 1234000000) 0) (num-test (quotient 0 1234000000) 0) (num-test (modulo 0 1234000000) 0) (num-test (remainder 0 1234000000) 0) (num-test (quotient 0 1234000000) 0) (num-test (modulo 0 -1234000000) 0) (num-test (remainder 0 -1234000000) 0) (num-test (quotient 0 -1234000000) 0) (num-test (modulo 0 -1234000000) 0) (num-test (remainder 0 -1234000000) 0) (num-test (quotient 0 -1234000000) 0) (num-test (modulo 0 500029) 0) (num-test (remainder 0 500029) 0) (num-test (quotient 0 500029) 0) (num-test (modulo 0 500029) 0) (num-test (remainder 0 500029) 0) (num-test (quotient 0 500029) 0) (num-test (modulo 0 -500029) 0) (num-test (remainder 0 -500029) 0) (num-test (quotient 0 -500029) 0) (num-test (modulo 0 -500029) 0) (num-test (remainder 0 -500029) 0) (num-test (quotient 0 -500029) 0) (num-test (modulo 0 362880) 0) (num-test (remainder 0 362880) 0) (num-test (quotient 0 362880) 0) (num-test (modulo 0 362880) 0) (num-test (remainder 0 362880) 0) (num-test (quotient 0 362880) 0) (num-test (modulo 0 -362880) 0) (num-test (remainder 0 -362880) 0) (num-test (quotient 0 -362880) 0) (num-test (modulo 0 -362880) 0) (num-test (remainder 0 -362880) 0) (num-test (quotient 0 -362880) 0) (num-test (modulo 1 1) 0) (num-test (remainder 1 1) 0) (num-test (quotient 1 1) 1) (num-test (modulo -1 1) 0) (num-test (remainder -1 1) 0) (num-test (quotient -1 1) -1) (num-test (modulo 1 -1) 0) (num-test (remainder 1 -1) 0) (num-test (quotient 1 -1) -1) (num-test (modulo -1 -1) 0) (num-test (remainder -1 -1) 0) (num-test (quotient -1 -1) 1) (num-test (modulo 1 2) 1) (num-test (remainder 1 2) 1) (num-test (quotient 1 2) 0) (num-test (modulo -1 2) 1) (num-test (remainder -1 2) -1) (num-test (quotient -1 2) 0) (num-test (modulo 1 -2) -1) (num-test (remainder 1 -2) 1) (num-test (quotient 1 -2) 0) (num-test (modulo -1 -2) -1) (num-test (remainder -1 -2) -1) (num-test (quotient -1 -2) 0) (num-test (modulo 1 3) 1) (num-test (remainder 1 3) 1) (num-test (quotient 1 3) 0) (num-test (modulo -1 3) 2) (num-test (remainder -1 3) -1) (num-test (quotient -1 3) 0) (num-test (modulo 1 -3) -2) (num-test (remainder 1 -3) 1) (num-test (quotient 1 -3) 0) (num-test (modulo -1 -3) -1) (num-test (remainder -1 -3) -1) (num-test (quotient -1 -3) 0) (num-test (modulo 1 10) 1) (num-test (remainder 1 10) 1) (num-test (quotient 1 10) 0) (num-test (modulo -1 10) 9) (num-test (remainder -1 10) -1) (num-test (quotient -1 10) 0) (num-test (modulo 1 -10) -9) (num-test (remainder 1 -10) 1) (num-test (quotient 1 -10) 0) (num-test (modulo -1 -10) -1) (num-test (remainder -1 -10) -1) (num-test (quotient -1 -10) 0) (num-test (modulo 1 1234) 1) (num-test (remainder 1 1234) 1) (num-test (quotient 1 1234) 0) (num-test (modulo -1 1234) 1233) (num-test (remainder -1 1234) -1) (num-test (quotient -1 1234) 0) (num-test (modulo 1 -1234) -1233) (num-test (remainder 1 -1234) 1) (num-test (quotient 1 -1234) 0) (num-test (modulo -1 -1234) -1) (num-test (remainder -1 -1234) -1) (num-test (quotient -1 -1234) 0) (num-test (modulo 1 1234000000) 1) (num-test (remainder 1 1234000000) 1) (num-test (quotient 1 1234000000) 0) (num-test (modulo -1 1234000000) 1233999999) (num-test (remainder -1 1234000000) -1) (num-test (quotient -1 1234000000) 0) (num-test (modulo 1 -1234000000) -1233999999) (num-test (remainder 1 -1234000000) 1) (num-test (quotient 1 -1234000000) 0) (num-test (modulo -1 -1234000000) -1) (num-test (remainder -1 -1234000000) -1) (num-test (quotient -1 -1234000000) 0) (num-test (modulo 1 500029) 1) (num-test (remainder 1 500029) 1) (num-test (quotient 1 500029) 0) (num-test (modulo -1 500029) 500028) (num-test (remainder -1 500029) -1) (num-test (quotient -1 500029) 0) (num-test (modulo 1 -500029) -500028) (num-test (remainder 1 -500029) 1) (num-test (quotient 1 -500029) 0) (num-test (modulo -1 -500029) -1) (num-test (remainder -1 -500029) -1) (num-test (quotient -1 -500029) 0) (num-test (modulo 1 362880) 1) (num-test (remainder 1 362880) 1) (num-test (quotient 1 362880) 0) (num-test (modulo -1 362880) 362879) (num-test (remainder -1 362880) -1) (num-test (quotient -1 362880) 0) (num-test (modulo 1 -362880) -362879) (num-test (remainder 1 -362880) 1) (num-test (quotient 1 -362880) 0) (num-test (modulo -1 -362880) -1) (num-test (remainder -1 -362880) -1) (num-test (quotient -1 -362880) 0) (num-test (modulo 2 1) 0) (num-test (remainder 2 1) 0) (num-test (quotient 2 1) 2) (num-test (modulo -2 1) 0) (num-test (remainder -2 1) 0) (num-test (quotient -2 1) -2) (num-test (modulo 2 -1) 0) (num-test (remainder 2 -1) 0) (num-test (quotient 2 -1) -2) (num-test (modulo -2 -1) 0) (num-test (remainder -2 -1) 0) (num-test (quotient -2 -1) 2) (num-test (modulo 2 2) 0) (num-test (remainder 2 2) 0) (num-test (quotient 2 2) 1) (num-test (modulo -2 2) 0) (num-test (remainder -2 2) 0) (num-test (quotient -2 2) -1) (num-test (modulo 2 -2) 0) (num-test (remainder 2 -2) 0) (num-test (quotient 2 -2) -1) (num-test (modulo -2 -2) 0) (num-test (remainder -2 -2) 0) (num-test (quotient -2 -2) 1) (num-test (modulo 2 3) 2) (num-test (remainder 2 3) 2) (num-test (quotient 2 3) 0) (num-test (modulo -2 3) 1) (num-test (remainder -2 3) -2) (num-test (quotient -2 3) 0) (num-test (modulo 2 -3) -1) (num-test (remainder 2 -3) 2) (num-test (quotient 2 -3) 0) (num-test (modulo -2 -3) -2) (num-test (remainder -2 -3) -2) (num-test (quotient -2 -3) 0) (num-test (modulo 2 10) 2) (num-test (remainder 2 10) 2) (num-test (quotient 2 10) 0) (num-test (modulo -2 10) 8) (num-test (remainder -2 10) -2) (num-test (quotient -2 10) 0) (num-test (modulo 2 -10) -8) (num-test (remainder 2 -10) 2) (num-test (quotient 2 -10) 0) (num-test (modulo -2 -10) -2) (num-test (remainder -2 -10) -2) (num-test (quotient -2 -10) 0) (num-test (modulo 2 1234) 2) (num-test (remainder 2 1234) 2) (num-test (quotient 2 1234) 0) (num-test (modulo -2 1234) 1232) (num-test (remainder -2 1234) -2) (num-test (quotient -2 1234) 0) (num-test (modulo 2 -1234) -1232) (num-test (remainder 2 -1234) 2) (num-test (quotient 2 -1234) 0) (num-test (modulo -2 -1234) -2) (num-test (remainder -2 -1234) -2) (num-test (quotient -2 -1234) 0) (num-test (modulo 2 1234000000) 2) (num-test (remainder 2 1234000000) 2) (num-test (quotient 2 1234000000) 0) (num-test (modulo -2 1234000000) 1233999998) (num-test (remainder -2 1234000000) -2) (num-test (quotient -2 1234000000) 0) (num-test (modulo 2 -1234000000) -1233999998) (num-test (remainder 2 -1234000000) 2) (num-test (quotient 2 -1234000000) 0) (num-test (modulo -2 -1234000000) -2) (num-test (remainder -2 -1234000000) -2) (num-test (quotient -2 -1234000000) 0) (num-test (modulo 2 500029) 2) (num-test (remainder 2 500029) 2) (num-test (quotient 2 500029) 0) (num-test (modulo -2 500029) 500027) (num-test (remainder -2 500029) -2) (num-test (quotient -2 500029) 0) (num-test (modulo 2 -500029) -500027) (num-test (remainder 2 -500029) 2) (num-test (quotient 2 -500029) 0) (num-test (modulo -2 -500029) -2) (num-test (remainder -2 -500029) -2) (num-test (quotient -2 -500029) 0) (num-test (modulo 2 362880) 2) (num-test (remainder 2 362880) 2) (num-test (quotient 2 362880) 0) (num-test (modulo -2 362880) 362878) (num-test (remainder -2 362880) -2) (num-test (quotient -2 362880) 0) (num-test (modulo 2 -362880) -362878) (num-test (remainder 2 -362880) 2) (num-test (quotient 2 -362880) 0) (num-test (modulo -2 -362880) -2) (num-test (remainder -2 -362880) -2) (num-test (quotient -2 -362880) 0) (num-test (modulo 3 1) 0) (num-test (remainder 3 1) 0) (num-test (quotient 3 1) 3) (num-test (modulo -3 1) 0) (num-test (remainder -3 1) 0) (num-test (quotient -3 1) -3) (num-test (modulo 3 -1) 0) (num-test (remainder 3 -1) 0) (num-test (quotient 3 -1) -3) (num-test (modulo -3 -1) 0) (num-test (remainder -3 -1) 0) (num-test (quotient -3 -1) 3) (num-test (modulo 3 2) 1) (num-test (remainder 3 2) 1) (num-test (quotient 3 2) 1) (num-test (modulo -3 2) 1) (num-test (remainder -3 2) -1) (num-test (quotient -3 2) -1) (num-test (modulo 3 -2) -1) (num-test (remainder 3 -2) 1) (num-test (quotient 3 -2) -1) (num-test (modulo -3 -2) -1) (num-test (remainder -3 -2) -1) (num-test (quotient -3 -2) 1) (num-test (modulo 3 3) 0) (num-test (remainder 3 3) 0) (num-test (quotient 3 3) 1) (num-test (modulo -3 3) 0) (num-test (remainder -3 3) 0) (num-test (quotient -3 3) -1) (num-test (modulo 3 -3) 0) (num-test (remainder 3 -3) 0) (num-test (quotient 3 -3) -1) (num-test (modulo -3 -3) 0) (num-test (remainder -3 -3) 0) (num-test (quotient -3 -3) 1) (num-test (modulo 3 10) 3) (num-test (remainder 3 10) 3) (num-test (quotient 3 10) 0) (num-test (modulo -3 10) 7) (num-test (remainder -3 10) -3) (num-test (quotient -3 10) 0) (num-test (modulo 3 -10) -7) (num-test (remainder 3 -10) 3) (num-test (quotient 3 -10) 0) (num-test (modulo -3 -10) -3) (num-test (remainder -3 -10) -3) (num-test (quotient -3 -10) 0) (num-test (modulo 3 1234) 3) (num-test (remainder 3 1234) 3) (num-test (quotient 3 1234) 0) (num-test (modulo -3 1234) 1231) (num-test (remainder -3 1234) -3) (num-test (quotient -3 1234) 0) (num-test (modulo 3 -1234) -1231) (num-test (remainder 3 -1234) 3) (num-test (quotient 3 -1234) 0) (num-test (modulo -3 -1234) -3) (num-test (remainder -3 -1234) -3) (num-test (quotient -3 -1234) 0) (num-test (modulo 3 1234000000) 3) (num-test (remainder 3 1234000000) 3) (num-test (quotient 3 1234000000) 0) (num-test (modulo -3 1234000000) 1233999997) (num-test (remainder -3 1234000000) -3) (num-test (quotient -3 1234000000) 0) (num-test (modulo 3 -1234000000) -1233999997) (num-test (remainder 3 -1234000000) 3) (num-test (quotient 3 -1234000000) 0) (num-test (modulo -3 -1234000000) -3) (num-test (remainder -3 -1234000000) -3) (num-test (quotient -3 -1234000000) 0) (num-test (modulo 3 500029) 3) (num-test (remainder 3 500029) 3) (num-test (quotient 3 500029) 0) (num-test (modulo -3 500029) 500026) (num-test (remainder -3 500029) -3) (num-test (quotient -3 500029) 0) (num-test (modulo 3 -500029) -500026) (num-test (remainder 3 -500029) 3) (num-test (quotient 3 -500029) 0) (num-test (modulo -3 -500029) -3) (num-test (remainder -3 -500029) -3) (num-test (quotient -3 -500029) 0) (num-test (modulo 3 362880) 3) (num-test (remainder 3 362880) 3) (num-test (quotient 3 362880) 0) (num-test (modulo -3 362880) 362877) (num-test (remainder -3 362880) -3) (num-test (quotient -3 362880) 0) (num-test (modulo 3 -362880) -362877) (num-test (remainder 3 -362880) 3) (num-test (quotient 3 -362880) 0) (num-test (modulo -3 -362880) -3) (num-test (remainder -3 -362880) -3) (num-test (quotient -3 -362880) 0) (num-test (modulo 10 1) 0) (num-test (remainder 10 1) 0) (num-test (quotient 10 1) 10) (num-test (modulo -10 1) 0) (num-test (remainder -10 1) 0) (num-test (quotient -10 1) -10) (num-test (modulo 10 -1) 0) (num-test (remainder 10 -1) 0) (num-test (quotient 10 -1) -10) (num-test (modulo -10 -1) 0) (num-test (remainder -10 -1) 0) (num-test (quotient -10 -1) 10) (num-test (modulo 10 2) 0) (num-test (remainder 10 2) 0) (num-test (quotient 10 2) 5) (num-test (modulo -10 2) 0) (num-test (remainder -10 2) 0) (num-test (quotient -10 2) -5) (num-test (modulo 10 -2) 0) (num-test (remainder 10 -2) 0) (num-test (quotient 10 -2) -5) (num-test (modulo -10 -2) 0) (num-test (remainder -10 -2) 0) (num-test (quotient -10 -2) 5) (num-test (modulo 10 3) 1) (num-test (remainder 10 3) 1) (num-test (quotient 10 3) 3) (num-test (modulo -10 3) 2) (num-test (remainder -10 3) -1) (num-test (quotient -10 3) -3) (num-test (modulo 10 -3) -2) (num-test (remainder 10 -3) 1) (num-test (quotient 10 -3) -3) (num-test (modulo -10 -3) -1) (num-test (remainder -10 -3) -1) (num-test (quotient -10 -3) 3) (num-test (modulo 10 10) 0) (num-test (remainder 10 10) 0) (num-test (quotient 10 10) 1) (num-test (modulo -10 10) 0) (num-test (remainder -10 10) 0) (num-test (quotient -10 10) -1) (num-test (modulo 10 -10) 0) (num-test (remainder 10 -10) 0) (num-test (quotient 10 -10) -1) (num-test (modulo -10 -10) 0) (num-test (remainder -10 -10) 0) (num-test (quotient -10 -10) 1) (num-test (modulo 10 1234) 10) (num-test (remainder 10 1234) 10) (num-test (quotient 10 1234) 0) (num-test (modulo -10 1234) 1224) (num-test (remainder -10 1234) -10) (num-test (quotient -10 1234) 0) (num-test (modulo 10 -1234) -1224) (num-test (remainder 10 -1234) 10) (num-test (quotient 10 -1234) 0) (num-test (modulo -10 -1234) -10) (num-test (remainder -10 -1234) -10) (num-test (quotient -10 -1234) 0) (num-test (modulo 10 1234000000) 10) (num-test (remainder 10 1234000000) 10) (num-test (quotient 10 1234000000) 0) (num-test (modulo -10 1234000000) 1233999990) (num-test (remainder -10 1234000000) -10) (num-test (quotient -10 1234000000) 0) (num-test (modulo 10 -1234000000) -1233999990) (num-test (remainder 10 -1234000000) 10) (num-test (quotient 10 -1234000000) 0) (num-test (modulo -10 -1234000000) -10) (num-test (remainder -10 -1234000000) -10) (num-test (quotient -10 -1234000000) 0) (num-test (modulo 10 500029) 10) (num-test (remainder 10 500029) 10) (num-test (quotient 10 500029) 0) (num-test (modulo -10 500029) 500019) (num-test (remainder -10 500029) -10) (num-test (quotient -10 500029) 0) (num-test (modulo 10 -500029) -500019) (num-test (remainder 10 -500029) 10) (num-test (quotient 10 -500029) 0) (num-test (modulo -10 -500029) -10) (num-test (remainder -10 -500029) -10) (num-test (quotient -10 -500029) 0) (num-test (modulo 10 362880) 10) (num-test (remainder 10 362880) 10) (num-test (quotient 10 362880) 0) (num-test (modulo -10 362880) 362870) (num-test (remainder -10 362880) -10) (num-test (quotient -10 362880) 0) (num-test (modulo 10 -362880) -362870) (num-test (remainder 10 -362880) 10) (num-test (quotient 10 -362880) 0) (num-test (modulo -10 -362880) -10) (num-test (remainder -10 -362880) -10) (num-test (quotient -10 -362880) 0) (num-test (modulo 1234 1) 0) (num-test (remainder 1234 1) 0) (num-test (quotient 1234 1) 1234) (num-test (modulo -1234 1) 0) (num-test (remainder -1234 1) 0) (num-test (quotient -1234 1) -1234) (num-test (modulo 1234 -1) 0) (num-test (remainder 1234 -1) 0) (num-test (quotient 1234 -1) -1234) (num-test (modulo -1234 -1) 0) (num-test (remainder -1234 -1) 0) (num-test (quotient -1234 -1) 1234) (num-test (modulo 1234 2) 0) (num-test (remainder 1234 2) 0) (num-test (quotient 1234 2) 617) (num-test (modulo -1234 2) 0) (num-test (remainder -1234 2) 0) (num-test (quotient -1234 2) -617) (num-test (modulo 1234 -2) 0) (num-test (remainder 1234 -2) 0) (num-test (quotient 1234 -2) -617) (num-test (modulo -1234 -2) 0) (num-test (remainder -1234 -2) 0) (num-test (quotient -1234 -2) 617) (num-test (modulo 1234 3) 1) (num-test (remainder 1234 3) 1) (num-test (quotient 1234 3) 411) (num-test (modulo -1234 3) 2) (num-test (remainder -1234 3) -1) (num-test (quotient -1234 3) -411) (num-test (modulo 1234 -3) -2) (num-test (remainder 1234 -3) 1) (num-test (quotient 1234 -3) -411) (num-test (modulo -1234 -3) -1) (num-test (remainder -1234 -3) -1) (num-test (quotient -1234 -3) 411) (num-test (modulo 1234 10) 4) (num-test (remainder 1234 10) 4) (num-test (quotient 1234 10) 123) (num-test (modulo -1234 10) 6) (num-test (remainder -1234 10) -4) (num-test (quotient -1234 10) -123) (num-test (modulo 1234 -10) -6) (num-test (remainder 1234 -10) 4) (num-test (quotient 1234 -10) -123) (num-test (modulo -1234 -10) -4) (num-test (remainder -1234 -10) -4) (num-test (quotient -1234 -10) 123) (num-test (modulo 1234 1234) 0) (num-test (remainder 1234 1234) 0) (num-test (quotient 1234 1234) 1) (num-test (modulo -1234 1234) 0) (num-test (remainder -1234 1234) 0) (num-test (quotient -1234 1234) -1) (num-test (modulo 1234 -1234) 0) (num-test (remainder 1234 -1234) 0) (num-test (quotient 1234 -1234) -1) (num-test (modulo -1234 -1234) 0) (num-test (remainder -1234 -1234) 0) (num-test (quotient -1234 -1234) 1) (num-test (modulo 1234 1234000000) 1234) (num-test (remainder 1234 1234000000) 1234) (num-test (quotient 1234 1234000000) 0) (num-test (modulo -1234 1234000000) 1233998766) (num-test (remainder -1234 1234000000) -1234) (num-test (quotient -1234 1234000000) 0) (num-test (modulo 1234 -1234000000) -1233998766) (num-test (remainder 1234 -1234000000) 1234) (num-test (quotient 1234 -1234000000) 0) (num-test (modulo -1234 -1234000000) -1234) (num-test (remainder -1234 -1234000000) -1234) (num-test (quotient -1234 -1234000000) 0) (num-test (modulo 1234 500029) 1234) (num-test (remainder 1234 500029) 1234) (num-test (quotient 1234 500029) 0) (num-test (modulo -1234 500029) 498795) (num-test (remainder -1234 500029) -1234) (num-test (quotient -1234 500029) 0) (num-test (modulo 1234 -500029) -498795) (num-test (remainder 1234 -500029) 1234) (num-test (quotient 1234 -500029) 0) (num-test (modulo -1234 -500029) -1234) (num-test (remainder -1234 -500029) -1234) (num-test (quotient -1234 -500029) 0) (num-test (modulo 1234 362880) 1234) (num-test (remainder 1234 362880) 1234) (num-test (quotient 1234 362880) 0) (num-test (modulo -1234 362880) 361646) (num-test (remainder -1234 362880) -1234) (num-test (quotient -1234 362880) 0) (num-test (modulo 1234 -362880) -361646) (num-test (remainder 1234 -362880) 1234) (num-test (quotient 1234 -362880) 0) (num-test (modulo -1234 -362880) -1234) (num-test (remainder -1234 -362880) -1234) (num-test (quotient -1234 -362880) 0) (num-test (modulo 1234000000 1) 0) (num-test (remainder 1234000000 1) 0) (num-test (quotient 1234000000 1) 1234000000) (num-test (modulo -1234000000 1) 0) (num-test (remainder -1234000000 1) 0) (num-test (quotient -1234000000 1) -1234000000) (num-test (modulo 1234000000 -1) 0) (num-test (remainder 1234000000 -1) 0) (num-test (quotient 1234000000 -1) -1234000000) (num-test (modulo -1234000000 -1) 0) (num-test (remainder -1234000000 -1) 0) (num-test (quotient -1234000000 -1) 1234000000) (num-test (modulo 1234000000 2) 0) (num-test (remainder 1234000000 2) 0) (num-test (quotient 1234000000 2) 617000000) (num-test (modulo -1234000000 2) 0) (num-test (remainder -1234000000 2) 0) (num-test (quotient -1234000000 2) -617000000) (num-test (modulo 1234000000 -2) 0) (num-test (remainder 1234000000 -2) 0) (num-test (quotient 1234000000 -2) -617000000) (num-test (modulo -1234000000 -2) 0) (num-test (remainder -1234000000 -2) 0) (num-test (quotient -1234000000 -2) 617000000) (num-test (modulo 1234000000 3) 1) (num-test (remainder 1234000000 3) 1) (num-test (quotient 1234000000 3) 411333333) (num-test (modulo -1234000000 3) 2) (num-test (remainder -1234000000 3) -1) (num-test (quotient -1234000000 3) -411333333) (num-test (modulo 1234000000 -3) -2) (num-test (remainder 1234000000 -3) 1) (num-test (quotient 1234000000 -3) -411333333) (num-test (modulo -1234000000 -3) -1) (num-test (remainder -1234000000 -3) -1) (num-test (quotient -1234000000 -3) 411333333) (num-test (modulo 1234000000 10) 0) (num-test (remainder 1234000000 10) 0) (num-test (quotient 1234000000 10) 123400000) (num-test (modulo -1234000000 10) 0) (num-test (remainder -1234000000 10) 0) (num-test (quotient -1234000000 10) -123400000) (num-test (modulo 1234000000 -10) 0) (num-test (remainder 1234000000 -10) 0) (num-test (quotient 1234000000 -10) -123400000) (num-test (modulo -1234000000 -10) 0) (num-test (remainder -1234000000 -10) 0) (num-test (quotient -1234000000 -10) 123400000) (num-test (modulo 1234000000 1234) 0) (num-test (remainder 1234000000 1234) 0) (num-test (quotient 1234000000 1234) 1000000) (num-test (modulo -1234000000 1234) 0) (num-test (remainder -1234000000 1234) 0) (num-test (quotient -1234000000 1234) -1000000) (num-test (modulo 1234000000 -1234) 0) (num-test (remainder 1234000000 -1234) 0) (num-test (quotient 1234000000 -1234) -1000000) (num-test (modulo -1234000000 -1234) 0) (num-test (remainder -1234000000 -1234) 0) (num-test (quotient -1234000000 -1234) 1000000) (num-test (modulo 1234000000 1234000000) 0) (num-test (remainder 1234000000 1234000000) 0) (num-test (quotient 1234000000 1234000000) 1) (num-test (modulo -1234000000 1234000000) 0) (num-test (remainder -1234000000 1234000000) 0) (num-test (quotient -1234000000 1234000000) -1) (num-test (modulo 1234000000 -1234000000) 0) (num-test (remainder 1234000000 -1234000000) 0) (num-test (quotient 1234000000 -1234000000) -1) (num-test (modulo -1234000000 -1234000000) 0) (num-test (remainder -1234000000 -1234000000) 0) (num-test (quotient -1234000000 -1234000000) 1) (num-test (modulo 1234000000 500029) 428457) (num-test (remainder 1234000000 500029) 428457) (num-test (quotient 1234000000 500029) 2467) (num-test (modulo -1234000000 500029) 71572) (num-test (remainder -1234000000 500029) -428457) (num-test (quotient -1234000000 500029) -2467) (num-test (modulo 1234000000 -500029) -71572) (num-test (remainder 1234000000 -500029) 428457) (num-test (quotient 1234000000 -500029) -2467) (num-test (modulo -1234000000 -500029) -428457) (num-test (remainder -1234000000 -500029) -428457) (num-test (quotient -1234000000 -500029) 2467) (num-test (modulo 1234000000 362880) 208000) (num-test (remainder 1234000000 362880) 208000) (num-test (quotient 1234000000 362880) 3400) (num-test (modulo -1234000000 362880) 154880) (num-test (remainder -1234000000 362880) -208000) (num-test (quotient -1234000000 362880) -3400) (num-test (modulo 1234000000 -362880) -154880) (num-test (remainder 1234000000 -362880) 208000) (num-test (quotient 1234000000 -362880) -3400) (num-test (modulo -1234000000 -362880) -208000) (num-test (remainder -1234000000 -362880) -208000) (num-test (quotient -1234000000 -362880) 3400) (num-test (modulo 500029 1) 0) (num-test (remainder 500029 1) 0) (num-test (quotient 500029 1) 500029) (num-test (modulo -500029 1) 0) (num-test (remainder -500029 1) 0) (num-test (quotient -500029 1) -500029) (num-test (modulo 500029 -1) 0) (num-test (remainder 500029 -1) 0) (num-test (quotient 500029 -1) -500029) (num-test (modulo -500029 -1) 0) (num-test (remainder -500029 -1) 0) (num-test (quotient -500029 -1) 500029) (num-test (modulo 500029 2) 1) (num-test (remainder 500029 2) 1) (num-test (quotient 500029 2) 250014) (num-test (modulo -500029 2) 1) (num-test (remainder -500029 2) -1) (num-test (quotient -500029 2) -250014) (num-test (modulo 500029 -2) -1) (num-test (remainder 500029 -2) 1) (num-test (quotient 500029 -2) -250014) (num-test (modulo -500029 -2) -1) (num-test (remainder -500029 -2) -1) (num-test (quotient -500029 -2) 250014) (num-test (modulo 500029 3) 1) (num-test (remainder 500029 3) 1) (num-test (quotient 500029 3) 166676) (num-test (modulo -500029 3) 2) (num-test (remainder -500029 3) -1) (num-test (quotient -500029 3) -166676) (num-test (modulo 500029 -3) -2) (num-test (remainder 500029 -3) 1) (num-test (quotient 500029 -3) -166676) (num-test (modulo -500029 -3) -1) (num-test (remainder -500029 -3) -1) (num-test (quotient -500029 -3) 166676) (num-test (modulo 500029 10) 9) (num-test (remainder 500029 10) 9) (num-test (quotient 500029 10) 50002) (num-test (modulo -500029 10) 1) (num-test (remainder -500029 10) -9) (num-test (quotient -500029 10) -50002) (num-test (modulo 500029 -10) -1) (num-test (remainder 500029 -10) 9) (num-test (quotient 500029 -10) -50002) (num-test (modulo -500029 -10) -9) (num-test (remainder -500029 -10) -9) (num-test (quotient -500029 -10) 50002) (num-test (modulo 500029 1234) 259) (num-test (remainder 500029 1234) 259) (num-test (quotient 500029 1234) 405) (num-test (modulo -500029 1234) 975) (num-test (remainder -500029 1234) -259) (num-test (quotient -500029 1234) -405) (num-test (modulo 500029 -1234) -975) (num-test (remainder 500029 -1234) 259) (num-test (quotient 500029 -1234) -405) (num-test (modulo -500029 -1234) -259) (num-test (remainder -500029 -1234) -259) (num-test (quotient -500029 -1234) 405) (num-test (modulo 500029 1234000000) 500029) (num-test (remainder 500029 1234000000) 500029) (num-test (quotient 500029 1234000000) 0) (num-test (modulo -500029 1234000000) 1233499971) (num-test (remainder -500029 1234000000) -500029) (num-test (quotient -500029 1234000000) 0) (num-test (modulo 500029 -1234000000) -1233499971) (num-test (remainder 500029 -1234000000) 500029) (num-test (quotient 500029 -1234000000) 0) (num-test (modulo -500029 -1234000000) -500029) (num-test (remainder -500029 -1234000000) -500029) (num-test (quotient -500029 -1234000000) 0) (num-test (modulo 500029 500029) 0) (num-test (remainder 500029 500029) 0) (num-test (quotient 500029 500029) 1) (num-test (modulo -500029 500029) 0) (num-test (remainder -500029 500029) 0) (num-test (quotient -500029 500029) -1) (num-test (modulo 500029 -500029) 0) (num-test (remainder 500029 -500029) 0) (num-test (quotient 500029 -500029) -1) (num-test (modulo -500029 -500029) 0) (num-test (remainder -500029 -500029) 0) (num-test (quotient -500029 -500029) 1) (num-test (modulo 500029 362880) 137149) (num-test (remainder 500029 362880) 137149) (num-test (quotient 500029 362880) 1) (num-test (modulo -500029 362880) 225731) (num-test (remainder -500029 362880) -137149) (num-test (quotient -500029 362880) -1) (num-test (modulo 500029 -362880) -225731) (num-test (remainder 500029 -362880) 137149) (num-test (quotient 500029 -362880) -1) (num-test (modulo -500029 -362880) -137149) (num-test (remainder -500029 -362880) -137149) (num-test (quotient -500029 -362880) 1) (num-test (modulo 362880 1) 0) (num-test (remainder 362880 1) 0) (num-test (quotient 362880 1) 362880) (num-test (modulo -362880 1) 0) (num-test (remainder -362880 1) 0) (num-test (quotient -362880 1) -362880) (num-test (modulo 362880 -1) 0) (num-test (remainder 362880 -1) 0) (num-test (quotient 362880 -1) -362880) (num-test (modulo -362880 -1) 0) (num-test (remainder -362880 -1) 0) (num-test (quotient -362880 -1) 362880) (num-test (modulo 362880 2) 0) (num-test (remainder 362880 2) 0) (num-test (quotient 362880 2) 181440) (num-test (modulo -362880 2) 0) (num-test (remainder -362880 2) 0) (num-test (quotient -362880 2) -181440) (num-test (modulo 362880 -2) 0) (num-test (remainder 362880 -2) 0) (num-test (quotient 362880 -2) -181440) (num-test (modulo -362880 -2) 0) (num-test (remainder -362880 -2) 0) (num-test (quotient -362880 -2) 181440) (num-test (modulo 362880 3) 0) (num-test (remainder 362880 3) 0) (num-test (quotient 362880 3) 120960) (num-test (modulo -362880 3) 0) (num-test (remainder -362880 3) 0) (num-test (quotient -362880 3) -120960) (num-test (modulo 362880 -3) 0) (num-test (remainder 362880 -3) 0) (num-test (quotient 362880 -3) -120960) (num-test (modulo -362880 -3) 0) (num-test (remainder -362880 -3) 0) (num-test (quotient -362880 -3) 120960) (num-test (modulo 362880 10) 0) (num-test (remainder 362880 10) 0) (num-test (quotient 362880 10) 36288) (num-test (modulo -362880 10) 0) (num-test (remainder -362880 10) 0) (num-test (quotient -362880 10) -36288) (num-test (modulo 362880 -10) 0) (num-test (remainder 362880 -10) 0) (num-test (quotient 362880 -10) -36288) (num-test (modulo -362880 -10) 0) (num-test (remainder -362880 -10) 0) (num-test (quotient -362880 -10) 36288) (num-test (modulo 362880 1234) 84) (num-test (remainder 362880 1234) 84) (num-test (quotient 362880 1234) 294) (num-test (modulo -362880 1234) 1150) (num-test (remainder -362880 1234) -84) (num-test (quotient -362880 1234) -294) (num-test (modulo 362880 -1234) -1150) (num-test (remainder 362880 -1234) 84) (num-test (quotient 362880 -1234) -294) (num-test (modulo -362880 -1234) -84) (num-test (remainder -362880 -1234) -84) (num-test (quotient -362880 -1234) 294) (num-test (modulo 362880 1234000000) 362880) (num-test (remainder 362880 1234000000) 362880) (num-test (quotient 362880 1234000000) 0) (num-test (modulo -362880 1234000000) 1233637120) (num-test (remainder -362880 1234000000) -362880) (num-test (quotient -362880 1234000000) 0) (num-test (modulo 362880 -1234000000) -1233637120) (num-test (remainder 362880 -1234000000) 362880) (num-test (quotient 362880 -1234000000) 0) (num-test (modulo -362880 -1234000000) -362880) (num-test (remainder -362880 -1234000000) -362880) (num-test (quotient -362880 -1234000000) 0) (num-test (modulo 362880 500029) 362880) (num-test (remainder 362880 500029) 362880) (num-test (quotient 362880 500029) 0) (num-test (modulo -362880 500029) 137149) (num-test (remainder -362880 500029) -362880) (num-test (quotient -362880 500029) 0) (num-test (modulo 362880 -500029) -137149) (num-test (remainder 362880 -500029) 362880) (num-test (quotient 362880 -500029) 0) (num-test (modulo -362880 -500029) -362880) (num-test (remainder -362880 -500029) -362880) (num-test (quotient -362880 -500029) 0) (num-test (modulo 362880 362880) 0) (num-test (remainder 362880 362880) 0) (num-test (quotient 362880 362880) 1) (num-test (modulo -362880 362880) 0) (num-test (remainder -362880 362880) 0) (num-test (quotient -362880 362880) -1) (num-test (modulo 362880 -362880) 0) (num-test (remainder 362880 -362880) 0) (num-test (quotient 362880 -362880) -1) (num-test (modulo -362880 -362880) 0) (num-test (remainder -362880 -362880) 0) (num-test (quotient -362880 -362880) 1) (if with-generic-modulo (begin (num-test (modulo 3.1 2.0) 1.1) (num-test (modulo 3.1 2) 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.1 -2.0) -0.9) (num-test (modulo -3.1 -2.0) -1.1) (num-test (modulo 3 2.5) 0.5) (num-test (modulo 19439282 4409.5) 2206.0) (num-test (modulo 3/2 1/4) 0) (num-test (modulo 3/2 1/3) 1/6) (num-test (modulo 3/2 0.3) 0.0) (num-test (modulo 1.5 1/4) 0.0) (num-test (modulo 1.5 1/3) 0.16666666666667) (num-test (modulo 1.5 0.3) 0.0) (num-test (modulo 1/2 2) 1/2) (num-test (modulo 0.5 2.0) 0.5) (num-test (modulo 1/2 -2) -3/2) (num-test (modulo 0.5 -2.0) -1.5) (num-test (modulo 0.5 -2) -1.5) (num-test (modulo 1 -4) -3) (num-test (modulo -1/2 -1) -1/2) (num-test (modulo -0.5 -1) -0.5) (num-test (modulo -1/2 -1.0) -0.5) (num-test (modulo -3/2 2) 1/2) (num-test (modulo -1.5 2) 0.5) (num-test (modulo -3/2 -2) -3/2) (num-test (modulo -1.5 -2) -1.5) (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) (num-test (remainder -3.1 2.5) -0.6) (num-test (remainder 3.1 -2.0) 1.1) (num-test (remainder -3.1 -2.0) -1.1) (num-test (remainder 3 2.5) 0.5) (num-test (remainder 19439282 4409.5) 2206.0) (num-test (remainder 3/2 1/4) 0) (num-test (remainder 3/2 1/3) 1/6) (num-test (remainder 3/2 0.3) 0.0) (num-test (remainder 1.5 1/4) 0.0) (num-test (remainder 1.5 1/3) 0.16666666666667) (num-test (remainder 1.5 0.3) 0.0) (num-test (remainder 1/2 2) 1/2) (num-test (remainder 0.5 2.0) 0.5) (num-test (remainder 1/2 -2) 1/2) (num-test (remainder 0.5 -2.0) 0.5) (num-test (remainder 0.5 -2) 0.5) (num-test (remainder 1 -4) 1) (num-test (remainder -1/2 -1) -1/2) (num-test (remainder -0.5 -1) -0.5) (num-test (remainder -1/2 -1.0) -0.5) (num-test (remainder -3/2 2) -3/2) (num-test (remainder -1.5 2) -1.5) (num-test (remainder -3/2 -2) -3/2) (num-test (remainder -1.5 -2) -1.5) (num-test (quotient 3.1 2.0) 1) (num-test (quotient 3.1 2) 1) (num-test (quotient -3.1 2.0) -1) (num-test (quotient -3.1 2.5) -1) (num-test (quotient 3.1 -2.0) -1) (num-test (quotient -3.1 -2.0) 1) (num-test (quotient 3 2.5) 1) (num-test (quotient 19439282 4409.5) 4408) (num-test (quotient 3/2 1/4) 6) (num-test (quotient 3/2 1/3) 4) (num-test (quotient 3/2 0.3) 5) (num-test (quotient 1.5 1/4) 6) (num-test (quotient 1.5 1/3) 4) (num-test (quotient 1.5 0.3) 5) (num-test (quotient 1/2 2) 0) (num-test (quotient 0.5 2.0) 0) (num-test (quotient 1/2 -2) 0) (num-test (quotient 0.5 -2.0) 0) (num-test (quotient 0.5 -2) 0) (num-test (quotient 1 -4) 0) (num-test (quotient -1/2 -1) 0) (num-test (quotient -0.5 -1) 0) (num-test (quotient -1/2 -1.0) 0) (num-test (quotient -3/2 2) 0) (num-test (quotient -1.5 2) 0) (num-test (quotient -3/2 -2) 0) (num-test (quotient -1.5 -2) 0) (num-test (lcm 1/2 2) 2) (num-test (lcm 1/3 3/4) 3) (num-test (lcm 2 3/4) 6) (num-test (lcm 3/4 2) 6) (num-test (lcm 1/3 3/4 5/8) 15) (num-test (lcm 1/3 2/3) 2/3) (num-test (lcm 1/3 1/6 5/12) 5/3) (num-test (lcm 1/3 1/6 5/12 2) 10) (num-test (gcd 1/2 1/3) 1/6) (num-test (gcd 1/2 2) 1/2) (num-test (gcd 1/3 3/4) 1/12) (num-test (gcd 2 3/4) 1/4) (num-test (gcd 3/4 2) 1/4) (num-test (gcd 1/3 3/4 5/8) 1/24) (num-test (gcd 1/3 2/3) 1/3) (num-test (gcd 1/3 1/6 5/12) 1/12) (num-test (gcd 1/3 1/6 5/12 2) 1/12) )) (num-test (modulo 13 4) 1) (num-test (modulo -13 4) 3) (num-test (quotient 35 7) 5 ) (num-test (quotient -35 7) -5) (num-test (quotient 35 -7) -5) (num-test (quotient -35 -7) 5) (num-test (modulo 13 4) 1) (num-test (remainder 13 4) 1) (num-test (modulo -13 4) 3) (num-test (remainder -13 4) -1) (num-test (modulo 13 -4) -3) (num-test (remainder 13 -4) 1) (num-test (modulo -13 -4) -1) (num-test (remainder -13 -4) -1) (num-test (modulo 0 86400) 0) (num-test (modulo 0 -86400) 0) (let ((top-exp 60)) (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (inexact->exact (expt 2 i))) (val2 (+ val1 1)) (mv (modulo val2 2)) (qv (quotient val2 2)) (rv (remainder val2 2))) (if (not (= mv 1)) (begin (set! happy #f) (display "(modulo ") (display val2) (display " 2) = ") (display mv) (display "?") (newline))) (if (not (= qv (/ val1 2))) (begin (set! happy #f) (display "(quotient ") (display val2) (display " 2) = ") (display qv) (display "?") (newline))) (if (not (= rv 1)) (begin (set! happy #f) (display "(remainder ") (display val2) (display " 2) = ") (display rv) (display "?") (newline)))))) (if with-generic-modulo (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (> i top-exp))) (let* ((val1 (inexact->exact (expt 2 i))) (val2 (/ (+ val1 1) 2)) (mv (modulo val2 2)) (qv (quotient val2 2)) (rv (remainder val2 2))) (if (not (= mv 1/2)) (begin (set! happy #f) (display "(modulo ") (display val2) (display " 2) = ") (display mv) (display "?") (newline))) (if (not (= qv (/ val1 4))) (begin (set! happy #f) (display "(quotient ") (display val2) (display " 2) = ") (display qv) (display "?") (newline))) (if (not (= rv 1/2)) (begin (set! happy #f) (display "(remainder ") (display val2) (display " 2) = ") (display rv) (display "?") (newline)))))) )) ;; -------- abs and magnitude (num-test (abs 0) 0) (num-test (abs -0) 0) (num-test (magnitude 0) 0) (num-test (magnitude -0) 0) (num-test (abs 0/1) 0/1) (num-test (abs -0/1) 0/1) (num-test (magnitude 0/1) 0/1) (num-test (magnitude -0/1) 0/1) (num-test (abs 0/2) 0/2) (num-test (abs -0/2) 0/2) (num-test (magnitude 0/2) 0/2) (num-test (magnitude -0/2) 0/2) (num-test (abs 0/3) 0/3) (num-test (abs -0/3) 0/3) (num-test (magnitude 0/3) 0/3) (num-test (magnitude -0/3) 0/3) (num-test (abs 0/10) 0/10) (num-test (abs -0/10) 0/10) (num-test (magnitude 0/10) 0/10) (num-test (magnitude -0/10) 0/10) (num-test (abs 0/1234) 0/1234) (num-test (abs -0/1234) 0/1234) (num-test (magnitude 0/1234) 0/1234) (num-test (magnitude -0/1234) 0/1234) (num-test (abs 0/1234000000) 0/1234000000) (num-test (abs -0/1234000000) 0/1234000000) (num-test (magnitude 0/1234000000) 0/1234000000) (num-test (magnitude -0/1234000000) 0/1234000000) (num-test (abs 1) 1) (num-test (abs -1) 1) (num-test (magnitude 1) 1) (num-test (magnitude -1) 1) (num-test (abs 0/362880) 0/362880) (num-test (abs -0/362880) 0/362880) (num-test (magnitude 0/362880) 0/362880) (num-test (magnitude -0/362880) 0/362880) (num-test (abs 0/500029) 0/500029) (num-test (abs -0/500029) 0/500029) (num-test (magnitude 0/500029) 0/500029) (num-test (magnitude -0/500029) 0/500029) (num-test (abs 1/1) 1/1) (num-test (abs -1/1) 1/1) (num-test (magnitude 1/1) 1/1) (num-test (magnitude -1/1) 1/1) (num-test (abs 1/2) 1/2) (num-test (abs -1/2) 1/2) (num-test (magnitude 1/2) 1/2) (num-test (magnitude -1/2) 1/2) (num-test (abs 1/3) 1/3) (num-test (abs -1/3) 1/3) (num-test (magnitude 1/3) 1/3) (num-test (magnitude -1/3) 1/3) (num-test (abs 1/10) 1/10) (num-test (abs -1/10) 1/10) (num-test (magnitude 1/10) 1/10) (num-test (magnitude -1/10) 1/10) (num-test (abs 1/1234) 1/1234) (num-test (abs -1/1234) 1/1234) (num-test (magnitude 1/1234) 1/1234) (num-test (magnitude -1/1234) 1/1234) (num-test (abs 1/1234000000) 1/1234000000) (num-test (abs -1/1234000000) 1/1234000000) (num-test (magnitude 1/1234000000) 1/1234000000) (num-test (magnitude -1/1234000000) 1/1234000000) (num-test (abs 1/500029) 1/500029) (num-test (abs -1/500029) 1/500029) (num-test (magnitude 1/500029) 1/500029) (num-test (magnitude -1/500029) 1/500029) (num-test (abs 1/362880) 1/362880) (num-test (abs -1/362880) 1/362880) (num-test (magnitude 1/362880) 1/362880) (num-test (magnitude -1/362880) 1/362880) (num-test (abs 2) 2) (num-test (abs -2) 2) (num-test (magnitude 2) 2) (num-test (magnitude -2) 2) (num-test (abs 2/1) 2/1) (num-test (abs -2/1) 2/1) (num-test (magnitude 2/1) 2/1) (num-test (magnitude -2/1) 2/1) (num-test (abs 2/2) 2/2) (num-test (abs -2/2) 2/2) (num-test (magnitude 2/2) 2/2) (num-test (magnitude -2/2) 2/2) (num-test (abs 2/3) 2/3) (num-test (abs -2/3) 2/3) (num-test (magnitude 2/3) 2/3) (num-test (magnitude -2/3) 2/3) (num-test (abs 2/10) 2/10) (num-test (abs -2/10) 2/10) (num-test (magnitude 2/10) 2/10) (num-test (magnitude -2/10) 2/10) (num-test (abs 2/1234) 2/1234) (num-test (abs -2/1234) 2/1234) (num-test (magnitude 2/1234) 2/1234) (num-test (magnitude -2/1234) 2/1234) (num-test (abs 2/1234000000) 2/1234000000) (num-test (abs -2/1234000000) 2/1234000000) (num-test (magnitude 2/1234000000) 2/1234000000) (num-test (magnitude -2/1234000000) 2/1234000000) (num-test (abs 2/500029) 2/500029) (num-test (abs -2/500029) 2/500029) (num-test (magnitude 2/500029) 2/500029) (num-test (magnitude -2/500029) 2/500029) (num-test (abs 2/362880) 2/362880) (num-test (abs -2/362880) 2/362880) (num-test (magnitude 2/362880) 2/362880) (num-test (magnitude -2/362880) 2/362880) (num-test (abs 3) 3) (num-test (abs -3) 3) (num-test (magnitude 3) 3) (num-test (magnitude -3) 3) (num-test (abs 3/1) 3/1) (num-test (abs -3/1) 3/1) (num-test (magnitude 3/1) 3/1) (num-test (magnitude -3/1) 3/1) (num-test (abs 3/2) 3/2) (num-test (abs -3/2) 3/2) (num-test (magnitude 3/2) 3/2) (num-test (magnitude -3/2) 3/2) (num-test (abs 3/3) 3/3) (num-test (abs -3/3) 3/3) (num-test (magnitude 3/3) 3/3) (num-test (magnitude -3/3) 3/3) (num-test (abs 3/10) 3/10) (num-test (abs -3/10) 3/10) (num-test (magnitude 3/10) 3/10) (num-test (magnitude -3/10) 3/10) (num-test (abs 3/1234) 3/1234) (num-test (abs -3/1234) 3/1234) (num-test (magnitude 3/1234) 3/1234) (num-test (magnitude -3/1234) 3/1234) (num-test (abs 3/1234000000) 3/1234000000) (num-test (abs -3/1234000000) 3/1234000000) (num-test (magnitude 3/1234000000) 3/1234000000) (num-test (magnitude -3/1234000000) 3/1234000000) (num-test (abs 3/500029) 3/500029) (num-test (abs -3/500029) 3/500029) (num-test (magnitude 3/500029) 3/500029) (num-test (magnitude -3/500029) 3/500029) (num-test (abs 3/362880) 3/362880) (num-test (abs -3/362880) 3/362880) (num-test (magnitude 3/362880) 3/362880) (num-test (magnitude -3/362880) 3/362880) (num-test (abs 10) 10) (num-test (abs -10) 10) (num-test (magnitude 10) 10) (num-test (magnitude -10) 10) (num-test (abs 10/1) 10/1) (num-test (abs -10/1) 10/1) (num-test (magnitude 10/1) 10/1) (num-test (magnitude -10/1) 10/1) (num-test (abs 10/2) 10/2) (num-test (abs -10/2) 10/2) (num-test (magnitude 10/2) 10/2) (num-test (magnitude -10/2) 10/2) (num-test (abs 10/3) 10/3) (num-test (abs -10/3) 10/3) (num-test (magnitude 10/3) 10/3) (num-test (magnitude -10/3) 10/3) (num-test (abs 10/10) 10/10) (num-test (abs -10/10) 10/10) (num-test (magnitude 10/10) 10/10) (num-test (magnitude -10/10) 10/10) (num-test (abs 10/1234) 10/1234) (num-test (abs -10/1234) 10/1234) (num-test (magnitude 10/1234) 10/1234) (num-test (magnitude -10/1234) 10/1234) (num-test (abs 10/1234000000) 10/1234000000) (num-test (abs -10/1234000000) 10/1234000000) (num-test (magnitude 10/1234000000) 10/1234000000) (num-test (magnitude -10/1234000000) 10/1234000000) (num-test (abs 10/500029) 10/500029) (num-test (abs -10/500029) 10/500029) (num-test (magnitude 10/500029) 10/500029) (num-test (magnitude -10/500029) 10/500029) (num-test (abs 10/362880) 10/362880) (num-test (abs -10/362880) 10/362880) (num-test (magnitude 10/362880) 10/362880) (num-test (magnitude -10/362880) 10/362880) (num-test (abs 1234) 1234) (num-test (abs -1234) 1234) (num-test (magnitude 1234) 1234) (num-test (magnitude -1234) 1234) (num-test (abs 1234/1) 1234/1) (num-test (abs -1234/1) 1234/1) (num-test (magnitude 1234/1) 1234/1) (num-test (magnitude -1234/1) 1234/1) (num-test (abs 1234/2) 1234/2) (num-test (abs -1234/2) 1234/2) (num-test (magnitude 1234/2) 1234/2) (num-test (magnitude -1234/2) 1234/2) (num-test (abs 1234/3) 1234/3) (num-test (abs -1234/3) 1234/3) (num-test (magnitude 1234/3) 1234/3) (num-test (magnitude -1234/3) 1234/3) (num-test (abs 1234/10) 1234/10) (num-test (abs -1234/10) 1234/10) (num-test (magnitude 1234/10) 1234/10) (num-test (magnitude -1234/10) 1234/10) (num-test (abs 1234/1234) 1234/1234) (num-test (abs -1234/1234) 1234/1234) (num-test (magnitude 1234/1234) 1234/1234) (num-test (magnitude -1234/1234) 1234/1234) (num-test (abs 1234/1234000000) 1234/1234000000) (num-test (abs -1234/1234000000) 1234/1234000000) (num-test (magnitude 1234/1234000000) 1234/1234000000) (num-test (magnitude -1234/1234000000) 1234/1234000000) (num-test (abs 1234/500029) 1234/500029) (num-test (abs -1234/500029) 1234/500029) (num-test (magnitude 1234/500029) 1234/500029) (num-test (magnitude -1234/500029) 1234/500029) (num-test (abs 1234/362880) 1234/362880) (num-test (abs -1234/362880) 1234/362880) (num-test (magnitude 1234/362880) 1234/362880) (num-test (magnitude -1234/362880) 1234/362880) (num-test (abs 1234000000) 1234000000) (num-test (abs -1234000000) 1234000000) (num-test (magnitude 1234000000) 1234000000) (num-test (magnitude -1234000000) 1234000000) (num-test (abs 1234000000/1) 1234000000/1) (num-test (abs -1234000000/1) 1234000000/1) (num-test (magnitude 1234000000/1) 1234000000/1) (num-test (magnitude -1234000000/1) 1234000000/1) (num-test (abs 1234000000/2) 1234000000/2) (num-test (abs -1234000000/2) 1234000000/2) (num-test (magnitude 1234000000/2) 1234000000/2) (num-test (magnitude -1234000000/2) 1234000000/2) (num-test (abs 1234000000/3) 1234000000/3) (num-test (abs -1234000000/3) 1234000000/3) (num-test (magnitude 1234000000/3) 1234000000/3) (num-test (magnitude -1234000000/3) 1234000000/3) (num-test (abs 1234000000/10) 1234000000/10) (num-test (abs -1234000000/10) 1234000000/10) (num-test (magnitude 1234000000/10) 1234000000/10) (num-test (magnitude -1234000000/10) 1234000000/10) (num-test (abs 1234000000/1234) 1234000000/1234) (num-test (abs -1234000000/1234) 1234000000/1234) (num-test (magnitude 1234000000/1234) 1234000000/1234) (num-test (magnitude -1234000000/1234) 1234000000/1234) (num-test (abs 1234000000/1234000000) 1234000000/1234000000) (num-test (abs -1234000000/1234000000) 1234000000/1234000000) (num-test (magnitude 1234000000/1234000000) 1234000000/1234000000) (num-test (magnitude -1234000000/1234000000) 1234000000/1234000000) (num-test (abs 1234000000/500029) 1234000000/500029) (num-test (abs -1234000000/500029) 1234000000/500029) (num-test (magnitude 1234000000/500029) 1234000000/500029) (num-test (magnitude -1234000000/500029) 1234000000/500029) (num-test (abs 1234000000/362880) 1234000000/362880) (num-test (abs -1234000000/362880) 1234000000/362880) (num-test (magnitude 1234000000/362880) 1234000000/362880) (num-test (magnitude -1234000000/362880) 1234000000/362880) (num-test (abs 500029) 500029) (num-test (abs -500029) 500029) (num-test (magnitude 500029) 500029) (num-test (magnitude -500029) 500029) (num-test (abs 500029/1) 500029/1) (num-test (abs -500029/1) 500029/1) (num-test (magnitude 500029/1) 500029/1) (num-test (magnitude -500029/1) 500029/1) (num-test (abs 500029/2) 500029/2) (num-test (abs -500029/2) 500029/2) (num-test (magnitude 500029/2) 500029/2) (num-test (magnitude -500029/2) 500029/2) (num-test (abs 500029/3) 500029/3) (num-test (abs -500029/3) 500029/3) (num-test (magnitude 500029/3) 500029/3) (num-test (magnitude -500029/3) 500029/3) (num-test (abs 500029/10) 500029/10) (num-test (abs -500029/10) 500029/10) (num-test (magnitude 500029/10) 500029/10) (num-test (magnitude -500029/10) 500029/10) (num-test (abs 500029/1234) 500029/1234) (num-test (abs -500029/1234) 500029/1234) (num-test (magnitude 500029/1234) 500029/1234) (num-test (magnitude -500029/1234) 500029/1234) (num-test (abs 500029/1234000000) 500029/1234000000) (num-test (abs -500029/1234000000) 500029/1234000000) (num-test (magnitude 500029/1234000000) 500029/1234000000) (num-test (magnitude -500029/1234000000) 500029/1234000000) (num-test (abs 500029/500029) 500029/500029) (num-test (abs -500029/500029) 500029/500029) (num-test (magnitude 500029/500029) 500029/500029) (num-test (magnitude -500029/500029) 500029/500029) (num-test (abs 500029/362880) 500029/362880) (num-test (abs -500029/362880) 500029/362880) (num-test (magnitude 500029/362880) 500029/362880) (num-test (magnitude -500029/362880) 500029/362880) (num-test (abs 362880) 362880) (num-test (abs -362880) 362880) (num-test (magnitude 362880) 362880) (num-test (magnitude -362880) 362880) (num-test (abs 362880/1) 362880/1) (num-test (abs -362880/1) 362880/1) (num-test (magnitude 362880/1) 362880/1) (num-test (magnitude -362880/1) 362880/1) (num-test (abs 362880/2) 362880/2) (num-test (abs -362880/2) 362880/2) (num-test (magnitude 362880/2) 362880/2) (num-test (magnitude -362880/2) 362880/2) (num-test (abs 362880/3) 362880/3) (num-test (abs -362880/3) 362880/3) (num-test (magnitude 362880/3) 362880/3) (num-test (magnitude -362880/3) 362880/3) (num-test (abs 362880/10) 362880/10) (num-test (abs -362880/10) 362880/10) (num-test (magnitude 362880/10) 362880/10) (num-test (magnitude -362880/10) 362880/10) (num-test (abs 362880/1234) 362880/1234) (num-test (abs -362880/1234) 362880/1234) (num-test (magnitude 362880/1234) 362880/1234) (num-test (magnitude -362880/1234) 362880/1234) (num-test (abs 362880/1234000000) 362880/1234000000) (num-test (abs -362880/1234000000) 362880/1234000000) (num-test (magnitude 362880/1234000000) 362880/1234000000) (num-test (magnitude -362880/1234000000) 362880/1234000000) (num-test (abs 362880/500029) 362880/500029) (num-test (abs -362880/500029) 362880/500029) (num-test (magnitude 362880/500029) 362880/500029) (num-test (magnitude -362880/500029) 362880/500029) (num-test (abs 362880/362880) 362880/362880) (num-test (abs -362880/362880) 362880/362880) (num-test (magnitude 362880/362880) 362880/362880) (num-test (magnitude -362880/362880) 362880/362880) (num-test (abs 0.0) 0.0) (num-test (abs -0.0) 0.0) (num-test (magnitude 0.0) 0.0) (num-test (magnitude -0.0) 0.0) (num-test (abs 0.00000001) 0.00000001) (num-test (abs -0.00000001) 0.00000001) (num-test (magnitude 0.00000001) 0.00000001) (num-test (magnitude -0.00000001) 0.00000001) (num-test (abs 1.0) 1.0) (num-test (abs -1.0) 1.0) (num-test (magnitude 1.0) 1.0) (num-test (magnitude -1.0) 1.0) (num-test (abs our-pi) our-pi) (num-test (abs -3.14159265358979) our-pi) (num-test (magnitude our-pi) our-pi) (num-test (magnitude -3.14159265358979) our-pi) (num-test (abs 2.71828182845905) 2.71828182845905) (num-test (abs -2.71828182845905) 2.71828182845905) (num-test (magnitude 2.71828182845905) 2.71828182845905) (num-test (magnitude -2.71828182845905) 2.71828182845905) (num-test (abs 1234.0) 1234.0) (num-test (abs -1234.0) 1234.0) (num-test (magnitude 1234.0) 1234.0) (num-test (magnitude -1234.0) 1234.0) (num-test (abs 1234000000.0) 1234000000.0) (num-test (abs -1234000000.0) 1234000000.0) (num-test (magnitude 1234000000.0) 1234000000.0) (num-test (magnitude -1234000000.0) 1234000000.0) (num-test (abs 0) 0) (num-test (abs 2) 2) (num-test (abs -2) 2) (num-test (abs 10) 10) (num-test (abs -10) 10) (num-test (abs 1234000000) 1234000000) (num-test (abs -1234000000) 1234000000) (num-test (abs 362880) 362880) (num-test (abs -362880) 362880) (num-test (abs 0/1) 0/1) (num-test (abs 0/1) 0/1) (num-test (abs 2/2) 2/2) (num-test (abs -2/2) 2/2) (num-test (abs 10/3) 10/3) (num-test (abs -10/3) 10/3) (num-test (abs 1234000000/10) 1234000000/10) (num-test (abs -1234000000/10) 1234000000/10) (num-test (abs 362880/1234) 362880/1234) (num-test (abs -362880/1234) 362880/1234) (num-test (abs 0.0) 0.0) (num-test (abs -0.0) 0.0) (num-test (abs 1.0) 1.0) (num-test (abs -1.0) 1.0) (num-test (abs 2.71828182845905) 2.71828182845905) (num-test (abs -2.71828182845905) 2.71828182845905) (num-test (abs 1234000000.0) 1234000000.0) (num-test (abs -1234000000.0) 1234000000.0) (num-test (abs 6) 6) (num-test (abs -6) 6) (num-test (abs -123456789) 123456789) (num-test (abs -1234567890) 1234567890) (num-test (abs -7) 7) (num-test (abs 7) 7) (num-test (abs 0) 0) (num-test (magnitude 0.0+0.00000001i) 0.00000001) (num-test (magnitude 0.0e+00+0.0e+00i) 0e0+0.0i) (num-test (magnitude 0.0e+00+1.19209289550781250e-07i) 1.1920928955078125e-7+0.0i) (num-test (magnitude 0.0e+00-1.19209289550781250e-07i) 1.1920928955078125e-7+0.0i) (num-test (magnitude 0.0e+00+5.0e-01i) 5e-1+0.0i) (num-test (magnitude 0.0e+00-5.0e-01i) 5e-1+0.0i) (num-test (magnitude 0.0e+00+1.0e+00i) 1e0+0.0i) (num-test (magnitude 0.0e+00-1.0e+00i) 1e0+0.0i) (num-test (magnitude 0.0e+00+2.0e+00i) 2e0+0.0i) (num-test (magnitude 0.0e+00-2.0e+00i) 2e0+0.0i) (num-test (magnitude 0.0e+00+8.3886080e+06i) 8.388608e6+0.0i) (num-test (magnitude 0.0e+00-8.3886080e+06i) 8.388608e6+0.0i) (num-test (magnitude 1.19209289550781250e-07+0.0e+00i) 1.1920928955078125e-7+0.0i) (num-test (magnitude -1.19209289550781250e-07+0.0e+00i) 1.1920928955078125e-7+0.0i) (num-test (magnitude 1.19209289550781250e-07+1.19209289550781250e-07i) 1.6858739404357612715e-7+0.0i) (num-test (magnitude 1.19209289550781250e-07-1.19209289550781250e-07i) 1.6858739404357612715e-7+0.0i) (num-test (magnitude -1.19209289550781250e-07+1.19209289550781250e-07i) 1.6858739404357612715e-7+0.0i) (num-test (magnitude -1.19209289550781250e-07-1.19209289550781250e-07i) 1.6858739404357612715e-7+0.0i) (num-test (magnitude 1.19209289550781250e-07+5.0e-01i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude 1.19209289550781250e-07-5.0e-01i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude -1.19209289550781250e-07+5.0e-01i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude -1.19209289550781250e-07-5.0e-01i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude 1.19209289550781250e-07+1.0e+00i) 1.0000000000000071054e0+0.0i) (num-test (magnitude 1.19209289550781250e-07-1.0e+00i) 1.0000000000000071054e0+0.0i) (num-test (magnitude -1.19209289550781250e-07+1.0e+00i) 1.0000000000000071054e0+0.0i) (num-test (magnitude -1.19209289550781250e-07-1.0e+00i) 1.0000000000000071054e0+0.0i) (num-test (magnitude 1.19209289550781250e-07+2.0e+00i) 2.0000000000000035527e0+0.0i) (num-test (magnitude 1.19209289550781250e-07-2.0e+00i) 2.0000000000000035527e0+0.0i) (num-test (magnitude -1.19209289550781250e-07+2.0e+00i) 2.0000000000000035527e0+0.0i) (num-test (magnitude -1.19209289550781250e-07-2.0e+00i) 2.0000000000000035527e0+0.0i) (num-test (magnitude 1.19209289550781250e-07+8.3886080e+06i) 8.3886080e6+0.0i) (num-test (magnitude 1.19209289550781250e-07-8.3886080e+06i) 8.3886080e6+0.0i) (num-test (magnitude -1.19209289550781250e-07+8.3886080e+06i) 8.3886080e6+0.0i) (num-test (magnitude -1.19209289550781250e-07-8.3886080e+06i) 8.3886080e6+0.0i) (num-test (magnitude 5.0e-01+0.0e+00i) 5e-1+0.0i) (num-test (magnitude -5.0e-01+0.0e+00i) 5e-1+0.0i) (num-test (magnitude 5.0e-01+1.19209289550781250e-07i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude 5.0e-01-1.19209289550781250e-07i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude -5.0e-01+1.19209289550781250e-07i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude -5.0e-01-1.19209289550781250e-07i) 5.0000000000001421085e-1+0.0i) (num-test (magnitude 5.0e-01+5.0e-01i) 7.0710678118654752440e-1+0.0i) (num-test (magnitude 5.0e-01-5.0e-01i) 7.0710678118654752440e-1+0.0i) (num-test (magnitude -5.0e-01+5.0e-01i) 7.0710678118654752440e-1+0.0i) (num-test (magnitude -5.0e-01-5.0e-01i) 7.0710678118654752440e-1+0.0i) (num-test (magnitude 5.0e-01+1.0e+00i) 1.1180339887498948482e0+0.0i) (num-test (magnitude 5.0e-01-1.0e+00i) 1.1180339887498948482e0+0.0i) (num-test (magnitude -5.0e-01+1.0e+00i) 1.1180339887498948482e0+0.0i) (num-test (magnitude -5.0e-01-1.0e+00i) 1.1180339887498948482e0+0.0i) (num-test (magnitude 5.0e-01+2.0e+00i) 2.0615528128088302749e0+0.0i) (num-test (magnitude 5.0e-01-2.0e+00i) 2.0615528128088302749e0+0.0i) (num-test (magnitude -5.0e-01+2.0e+00i) 2.0615528128088302749e0+0.0i) (num-test (magnitude -5.0e-01-2.0e+00i) 2.0615528128088302749e0+0.0i) (num-test (magnitude 5.0e-01+8.3886080e+06i) 8.3886080000000149012e6+0.0i) (num-test (magnitude 5.0e-01-8.3886080e+06i) 8.3886080000000149012e6+0.0i) (num-test (magnitude -5.0e-01+8.3886080e+06i) 8.3886080000000149012e6+0.0i) (num-test (magnitude -5.0e-01-8.3886080e+06i) 8.3886080000000149012e6+0.0i) (num-test (magnitude 1.0e+00+0.0e+00i) 1e0+0.0i) (num-test (magnitude -1.0e+00+0.0e+00i) 1e0+0.0i) (num-test (magnitude 1.0e+00+1.19209289550781250e-07i) 1.0000000000000071054e0+0.0i) (num-test (magnitude 1.0e+00-1.19209289550781250e-07i) 1.0000000000000071054e0+0.0i) (num-test (magnitude -1.0e+00+1.19209289550781250e-07i) 1.0000000000000071054e0+0.0i) (num-test (magnitude -1.0e+00-1.19209289550781250e-07i) 1.0000000000000071054e0+0.0i) (num-test (magnitude 1.0e+00+5.0e-01i) 1.1180339887498948482e0+0.0i) (num-test (magnitude 1.0e+00-5.0e-01i) 1.1180339887498948482e0+0.0i) (num-test (magnitude -1.0e+00+5.0e-01i) 1.1180339887498948482e0+0.0i) (num-test (magnitude -1.0e+00-5.0e-01i) 1.1180339887498948482e0+0.0i) (num-test (magnitude 1.0e+00+1.0e+00i) 1.4142135623730950488e0+0.0i) (num-test (magnitude 1.0e+00-1.0e+00i) 1.4142135623730950488e0+0.0i) (num-test (magnitude -1.0e+00+1.0e+00i) 1.4142135623730950488e0+0.0i) (num-test (magnitude -1.0e+00-1.0e+00i) 1.4142135623730950488e0+0.0i) (num-test (magnitude 1.0e+00+2.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude 1.0e+00-2.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude -1.0e+00+2.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude -1.0e+00-2.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude 1.0e+00+8.3886080e+06i) 8.3886080000000596046e6+0.0i) (num-test (magnitude 1.0e+00-8.3886080e+06i) 8.3886080000000596046e6+0.0i) (num-test (magnitude -1.0e+00+8.3886080e+06i) 8.3886080000000596046e6+0.0i) (num-test (magnitude -1.0e+00-8.3886080e+06i) 8.3886080000000596046e6+0.0i) (num-test (magnitude 2.0e+00+0.0e+00i) 2e0+0.0i) (num-test (magnitude -2.0e+00+0.0e+00i) 2e0+0.0i) (num-test (magnitude 2.0e+00+1.19209289550781250e-07i) 2.0000000000000035527e0+0.0i) (num-test (magnitude 2.0e+00-1.19209289550781250e-07i) 2.0000000000000035527e0+0.0i) (num-test (magnitude -2.0e+00+1.19209289550781250e-07i) 2.0000000000000035527e0+0.0i) (num-test (magnitude -2.0e+00-1.19209289550781250e-07i) 2.0000000000000035527e0+0.0i) (num-test (magnitude 2.0e+00+5.0e-01i) 2.0615528128088302749e0+0.0i) (num-test (magnitude 2.0e+00-5.0e-01i) 2.0615528128088302749e0+0.0i) (num-test (magnitude -2.0e+00+5.0e-01i) 2.0615528128088302749e0+0.0i) (num-test (magnitude -2.0e+00-5.0e-01i) 2.0615528128088302749e0+0.0i) (num-test (magnitude 2.0e+00+1.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude 2.0e+00-1.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude -2.0e+00+1.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude -2.0e+00-1.0e+00i) 2.2360679774997896964e0+0.0i) (num-test (magnitude 2.0e+00+2.0e+00i) 2.8284271247461900976e0+0.0i) (num-test (magnitude 2.0e+00-2.0e+00i) 2.8284271247461900976e0+0.0i) (num-test (magnitude -2.0e+00+2.0e+00i) 2.8284271247461900976e0+0.0i) (num-test (magnitude -2.0e+00-2.0e+00i) 2.8284271247461900976e0+0.0i) (num-test (magnitude 2.0e+00+8.3886080e+06i) 8.3886080000002384186e6+0.0i) (num-test (magnitude 2.0e+00-8.3886080e+06i) 8.3886080000002384186e6+0.0i) (num-test (magnitude -2.0e+00+8.3886080e+06i) 8.3886080000002384186e6+0.0i) (num-test (magnitude -2.0e+00-8.3886080e+06i) 8.3886080000002384186e6+0.0i) (num-test (magnitude 8.3886080e+06+0.0e+00i) 8.388608e6+0.0i) (num-test (magnitude -8.3886080e+06+0.0e+00i) 8.388608e6+0.0i) (num-test (magnitude 8.3886080e+06+1.19209289550781250e-07i) 8.3886080e6+0.0i) (num-test (magnitude 8.3886080e+06-1.19209289550781250e-07i) 8.3886080e6+0.0i) (num-test (magnitude -8.3886080e+06+1.19209289550781250e-07i) 8.3886080e6+0.0i) (num-test (magnitude -8.3886080e+06-1.19209289550781250e-07i) 8.3886080e6+0.0i) (num-test (magnitude 8.3886080e+06+5.0e-01i) 8.3886080000000149012e6+0.0i) (num-test (magnitude 8.3886080e+06-5.0e-01i) 8.3886080000000149012e6+0.0i) (num-test (magnitude -8.3886080e+06+5.0e-01i) 8.3886080000000149012e6+0.0i) (num-test (magnitude -8.3886080e+06-5.0e-01i) 8.3886080000000149012e6+0.0i) (num-test (magnitude 8.3886080e+06+1.0e+00i) 8.3886080000000596046e6+0.0i) (num-test (magnitude 8.3886080e+06-1.0e+00i) 8.3886080000000596046e6+0.0i) (num-test (magnitude -8.3886080e+06+1.0e+00i) 8.3886080000000596046e6+0.0i) (num-test (magnitude -8.3886080e+06-1.0e+00i) 8.3886080000000596046e6+0.0i) (num-test (magnitude 8.3886080e+06+2.0e+00i) 8.3886080000002384186e6+0.0i) (num-test (magnitude 8.3886080e+06-2.0e+00i) 8.3886080000002384186e6+0.0i) (num-test (magnitude -8.3886080e+06+2.0e+00i) 8.3886080000002384186e6+0.0i) (num-test (magnitude -8.3886080e+06-2.0e+00i) 8.3886080000002384186e6+0.0i) (num-test (magnitude 8.3886080e+06+8.3886080e+06i) 1.1863283203031444111e7+0.0i) (num-test (magnitude 8.3886080e+06-8.3886080e+06i) 1.1863283203031444111e7+0.0i) (num-test (magnitude -8.3886080e+06+8.3886080e+06i) 1.1863283203031444111e7+0.0i) (num-test (magnitude -8.3886080e+06-8.3886080e+06i) 1.1863283203031444111e7+0.0i) (num-test (magnitude 0.0-0.00000001i) 0.00000001) (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+1.0i) 1.0) (num-test (magnitude 0.0-1.0i) 1.0) (num-test (magnitude -0.0-1.0i) 1.0) (num-test (magnitude 0.0+3.14159265358979i) 3.14159265358979) (num-test (magnitude -0.0+3.14159265358979i) 3.14159265358979) (num-test (magnitude 0.0-3.14159265358979i) 3.14159265358979) (num-test (magnitude -0.0-3.14159265358979i) 3.14159265358979) (num-test (magnitude 0.0+2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.0+2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.0-2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.0-2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.0+1234.0i) 1234.0) (num-test (magnitude -0.0+1234.0i) 1234.0) (num-test (magnitude 0.0-1234.0i) 1234.0) (num-test (magnitude -0.0-1234.0i) 1234.0) (num-test (magnitude 0.0+1234000000.0i) 1234000000.0) (num-test (magnitude -0.0+1234000000.0i) 1234000000.0) (num-test (magnitude 0.0-1234000000.0i) 1234000000.0) (num-test (magnitude -0.0-1234000000.0i) 1234000000.0) (num-test (magnitude 0.00000001+0.00000001i) 0.00000001414214) (num-test (magnitude -0.00000001+0.00000001i) 0.00000001414214) (num-test (magnitude 0.00000001-0.00000001i) 0.00000001414214) (num-test (magnitude -0.00000001-0.00000001i) 0.00000001414214) (num-test (magnitude 0.00000001+1.0i) 1.0) (num-test (magnitude -0.00000001+1.0i) 1.0) (num-test (magnitude 0.00000001-1.0i) 1.0) (num-test (magnitude -0.00000001-1.0i) 1.0) (num-test (magnitude 0.00000001+3.14159265358979i) our-pi) (num-test (magnitude -0.00000001+3.14159265358979i) our-pi) (num-test (magnitude 0.00000001-3.14159265358979i) our-pi) (num-test (magnitude -0.00000001-3.14159265358979i) our-pi) (num-test (magnitude 0.00000001+2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.00000001+2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.00000001-2.71828182845905i) 2.71828182845905) (num-test (magnitude -0.00000001-2.71828182845905i) 2.71828182845905) (num-test (magnitude 0.00000001+1234.0i) 1234.0) (num-test (magnitude -0.00000001+1234.0i) 1234.0) (num-test (magnitude 0.00000001-1234.0i) 1234.0) (num-test (magnitude -0.00000001-1234.0i) 1234.0) (num-test (magnitude 0.00000001+1234000000.0i) 1234000000.0) (num-test (magnitude -0.00000001+1234000000.0i) 1234000000.0) (num-test (magnitude 0.00000001-1234000000.0i) 1234000000.0) (num-test (magnitude -0.00000001-1234000000.0i) 1234000000.0) (num-test (magnitude 1.0+0.00000001i) 1.0) (num-test (magnitude -1.0+0.00000001i) 1.0) (num-test (magnitude 1.0-0.00000001i) 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-1.0i) 1.41421356237310) (num-test (magnitude -1.0-1.0i) 1.41421356237310) (num-test (magnitude 1.0+3.14159265358979i) 3.29690830947562) (num-test (magnitude -1.0+3.14159265358979i) 3.29690830947562) (num-test (magnitude 1.0-3.14159265358979i) 3.29690830947562) (num-test (magnitude -1.0-3.14159265358979i) 3.29690830947562) (num-test (magnitude 1.0+2.71828182845905i) 2.89638673159001) (num-test (magnitude -1.0+2.71828182845905i) 2.89638673159001) (num-test (magnitude 1.0-2.71828182845905i) 2.89638673159001) (num-test (magnitude -1.0-2.71828182845905i) 2.89638673159001) (num-test (magnitude 1.0+1234.0i) 1234.00040518631931) (num-test (magnitude -1.0+1234.0i) 1234.00040518631931) (num-test (magnitude 1.0-1234.0i) 1234.00040518631931) (num-test (magnitude -1.0-1234.0i) 1234.00040518631931) (num-test (magnitude 1.0+1234000000.0i) 1234000000.0) (num-test (magnitude -1.0+1234000000.0i) 1234000000.0) (num-test (magnitude 1.0-1234000000.0i) 1234000000.0) (num-test (magnitude -1.0-1234000000.0i) 1234000000.0) (num-test (magnitude 3.14159265358979+0.00000001i) our-pi) (num-test (magnitude -3.14159265358979+0.00000001i) our-pi) (num-test (magnitude 3.14159265358979-0.00000001i) our-pi) (num-test (magnitude -3.14159265358979-0.00000001i) our-pi) (num-test (magnitude 3.14159265358979+1.0i) 3.29690830947562) (num-test (magnitude -3.14159265358979+1.0i) 3.29690830947562) (num-test (magnitude 3.14159265358979-1.0i) 3.29690830947562) (num-test (magnitude -3.14159265358979-1.0i) 3.29690830947562) (num-test (magnitude 3.14159265358979+3.14159265358979i) 4.44288293815837) (num-test (magnitude -3.14159265358979+3.14159265358979i) 4.44288293815837) (num-test (magnitude 3.14159265358979-3.14159265358979i) 4.44288293815837) (num-test (magnitude -3.14159265358979-3.14159265358979i) 4.44288293815837) (num-test (magnitude 3.14159265358979+2.71828182845905i) 4.15435440231331) (num-test (magnitude -3.14159265358979+2.71828182845905i) 4.15435440231331) (num-test (magnitude 3.14159265358979-2.71828182845905i) 4.15435440231331) (num-test (magnitude -3.14159265358979-2.71828182845905i) 4.15435440231331) (num-test (magnitude 3.14159265358979+1234.0i) 1234.00399902285608) (num-test (magnitude -3.14159265358979+1234.0i) 1234.00399902285608) (num-test (magnitude 3.14159265358979-1234.0i) 1234.00399902285608) (num-test (magnitude -3.14159265358979-1234.0i) 1234.00399902285608) (num-test (magnitude 3.14159265358979+1234000000.0i) 1234000000.0) (num-test (magnitude -3.14159265358979+1234000000.0i) 1234000000.0) (num-test (magnitude 3.14159265358979-1234000000.0i) 1234000000.0) (num-test (magnitude -3.14159265358979-1234000000.0i) 1234000000.0) (num-test (magnitude 2.71828182845905+0.00000001i) 2.71828182845905) (num-test (magnitude -2.71828182845905+0.00000001i) 2.71828182845905) (num-test (magnitude 2.71828182845905-0.00000001i) 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+1.0i) 2.89638673159001) (num-test (magnitude 2.71828182845905-1.0i) 2.89638673159001) (num-test (magnitude -2.71828182845905-1.0i) 2.89638673159001) (num-test (magnitude 2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude -2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude 2.71828182845905-3.14159265358979i) 4.15435440231331) (num-test (magnitude -2.71828182845905-3.14159265358979i) 4.15435440231331) (num-test (magnitude 2.71828182845905+2.71828182845905i) 3.84423102815912) (num-test (magnitude -2.71828182845905+2.71828182845905i) 3.84423102815912) (num-test (magnitude 2.71828182845905-2.71828182845905i) 3.84423102815912) (num-test (magnitude -2.71828182845905-2.71828182845905i) 3.84423102815912) (num-test (magnitude 2.71828182845905+1234.0i) 1234.00299394130275) (num-test (magnitude -2.71828182845905+1234.0i) 1234.00299394130275) (num-test (magnitude 2.71828182845905-1234.0i) 1234.00299394130275) (num-test (magnitude -2.71828182845905-1234.0i) 1234.00299394130275) (num-test (magnitude 2.71828182845905+1234000000.0i) 1234000000.0) (num-test (magnitude -2.71828182845905+1234000000.0i) 1234000000.0) (num-test (magnitude 2.71828182845905-1234000000.0i) 1234000000.0) (num-test (magnitude -2.71828182845905-1234000000.0i) 1234000000.0) (num-test (magnitude 1234.0+0.00000001i) 1234.0) (num-test (magnitude -1234.0+0.00000001i) 1234.0) (num-test (magnitude 1234.0-0.00000001i) 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+1.0i) 1234.00040518631931) (num-test (magnitude 1234.0-1.0i) 1234.00040518631931) (num-test (magnitude -1234.0-1.0i) 1234.00040518631931) (num-test (magnitude 1234.0+3.14159265358979i) 1234.00399902285608) (num-test (magnitude -1234.0+3.14159265358979i) 1234.00399902285608) (num-test (magnitude 1234.0-3.14159265358979i) 1234.00399902285608) (num-test (magnitude -1234.0-3.14159265358979i) 1234.00399902285608) (num-test (magnitude 1234.0+2.71828182845905i) 1234.00299394130275) (num-test (magnitude -1234.0+2.71828182845905i) 1234.00299394130275) (num-test (magnitude 1234.0-2.71828182845905i) 1234.00299394130275) (num-test (magnitude -1234.0-2.71828182845905i) 1234.00299394130275) (num-test (magnitude 1234.0+1234.0i) 1745.13953596839929) (num-test (magnitude -1234.0+1234.0i) 1745.13953596839929) (num-test (magnitude 1234.0-1234.0i) 1745.13953596839929) (num-test (magnitude -1234.0-1234.0i) 1745.13953596839929) (num-test (magnitude 1234.0+1234000000.0i) 1234000000.00061702728271) (num-test (magnitude -1234.0+1234000000.0i) 1234000000.00061702728271) (num-test (magnitude 1234.0-1234000000.0i) 1234000000.00061702728271) (num-test (magnitude -1234.0-1234000000.0i) 1234000000.00061702728271) (num-test (magnitude 1234000000.0+0.00000001i) 1234000000.0) (num-test (magnitude -1234000000.0+0.00000001i) 1234000000.0) (num-test (magnitude 1234000000.0-0.00000001i) 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+1.0i) 1234000000.0) (num-test (magnitude 1234000000.0-1.0i) 1234000000.0) (num-test (magnitude -1234000000.0-1.0i) 1234000000.0) (num-test (magnitude 1234000000.0+3.14159265358979i) 1234000000.0) (num-test (magnitude -1234000000.0+3.14159265358979i) 1234000000.0) (num-test (magnitude 1234000000.0-3.14159265358979i) 1234000000.0) (num-test (magnitude -1234000000.0-3.14159265358979i) 1234000000.0) (num-test (magnitude 1234000000.0+2.71828182845905i) 1234000000.0) (num-test (magnitude -1234000000.0+2.71828182845905i) 1234000000.0) (num-test (magnitude 1234000000.0-2.71828182845905i) 1234000000.0) (num-test (magnitude -1234000000.0-2.71828182845905i) 1234000000.0) (num-test (magnitude 1234000000.0+1234.0i) 1234000000.00061702728271) (num-test (magnitude -1234000000.0+1234.0i) 1234000000.00061702728271) (num-test (magnitude 1234000000.0-1234.0i) 1234000000.00061702728271) (num-test (magnitude -1234000000.0-1234.0i) 1234000000.00061702728271) (num-test (magnitude 1234000000.0+1234000000.0i) 1745139535.96839928627014) (num-test (magnitude -1234000000.0+1234000000.0i) 1745139535.96839928627014) (num-test (magnitude 1234000000.0-1234000000.0i) 1745139535.96839928627014) (num-test (magnitude -1234000000.0-1234000000.0i) 1745139535.96839928627014) (num-test (magnitude 0.0+0.00000001i) 0.00000001) (num-test (magnitude -0.0+0.00000001i) 0.00000001) (num-test (magnitude 1.0+1.0i) 1.41421356237310) (num-test (magnitude -1.0+1.0i) 1.41421356237310) (num-test (magnitude 2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude -2.71828182845905+3.14159265358979i) 4.15435440231331) (num-test (magnitude 1234000000.0+2.71828182845905i) 1234000000.0) (num-test (magnitude -1234000000.0+2.71828182845905i) 1234000000.0) (num-test (magnitude 0) 0) ;; -------- make-polar and make-rectangular (num-test (make-rectangular 0 1) 0.0+1.0i) (num-test (make-rectangular -0 1) -0.0+1.0i) (num-test (make-rectangular 0 -1) 0.0-1.0i) (num-test (make-rectangular -0 -1) -0.0-1.0i) (num-test (make-polar 0 1) 0.0) (num-test (make-polar -0 1) -0.0) (num-test (make-polar 0 -1) 0.0) (num-test (make-polar -0 -1) 0.0) (num-test (make-rectangular 0 2) 0.0+2.0i) (num-test (make-rectangular -0 2) -0.0+2.0i) (num-test (make-rectangular 0 -2) 0.0-2.0i) (num-test (make-rectangular -0 -2) -0.0-2.0i) (num-test (make-polar 0 2) -0.0) (num-test (make-polar -0 2) 0.0) (num-test (make-polar 0 -2) 0.0) (num-test (make-polar -0 -2) 0.0) (num-test (make-rectangular 0 3) 0.0+3.0i) (num-test (make-rectangular -0 3) -0.0+3.0i) (num-test (make-rectangular 0 -3) 0.0-3.0i) (num-test (make-rectangular -0 -3) -0.0-3.0i) (num-test (make-polar 0 3) -0.0) (num-test (make-polar -0 3) 0.0) (num-test (make-polar 0 -3) 0.0) (num-test (make-polar -0 -3) 0.0) (num-test (make-rectangular 0 10) 0.0+10.0i) (num-test (make-rectangular -0 10) -0.0+10.0i) (num-test (make-rectangular 0 -10) 0.0-10.0i) (num-test (make-rectangular -0 -10) -0.0-10.0i) (num-test (make-polar 0 10) 0.0) (num-test (make-polar -0 10) 0.0) (num-test (make-polar 0 -10) -0.0) (num-test (make-polar -0 -10) 0.0) (num-test (make-rectangular 0 1234) 0.0+1234.0i) (num-test (make-rectangular -0 1234) -0.0+1234.0i) (num-test (make-rectangular 0 -1234) 0.0-1234.0i) (num-test (make-rectangular -0 -1234) -0.0-1234.0i) (num-test (make-polar 0 1234) -0.0) (num-test (make-polar -0 1234) 0.0) (num-test (make-polar 0 -1234) 0.0) (num-test (make-polar -0 -1234) 0.0) (num-test (make-rectangular 0 1234000000) 0.0+1234000000.0i) (num-test (make-rectangular -0 1234000000) -0.0+1234000000.0i) (num-test (make-rectangular 0 -1234000000) 0.0-1234000000.0i) (num-test (make-rectangular -0 -1234000000) -0.0-1234000000.0i) (num-test (make-polar 0 1234000000) 0.0) (num-test (make-polar -0 1234000000) 0.0) (num-test (make-polar 0 -1234000000) 0.0) (num-test (make-polar -0 -1234000000) -0.0) (num-test (make-rectangular 0 500029) 0.0+500029.0i) (num-test (make-rectangular -0 500029) -0.0+500029.0i) (num-test (make-rectangular 0 -500029) 0.0-500029.0i) (num-test (make-rectangular -0 -500029) -0.0-500029.0i) (num-test (make-polar 0 500029) 0.0) (num-test (make-polar -0 500029) -0.0) (num-test (make-polar 0 -500029) 0.0) (num-test (make-polar -0 -500029) 0.0) (num-test (make-rectangular 0 362880) 0.0+362880.0i) (num-test (make-rectangular -0 362880) -0.0+362880.0i) (num-test (make-rectangular 0 -362880) 0.0-362880.0i) (num-test (make-rectangular -0 -362880) -0.0-362880.0i) (num-test (make-polar 0 362880) 0.0) (num-test (make-polar -0 362880) -0.0) (num-test (make-polar 0 -362880) 0.0) (num-test (make-polar -0 -362880) 0.0) (num-test (make-rectangular 1 1) 1.0+1.0i) (num-test (make-rectangular -1 1) -1.0+1.0i) (num-test (make-rectangular 1 -1) 1.0-1.0i) (num-test (make-rectangular -1 -1) -1.0-1.0i) (num-test (make-polar 1 1) 0.54030230586814+0.84147098480790i) (num-test (make-polar -1 1) -0.54030230586814-0.84147098480790i) (num-test (make-polar 1 -1) 0.54030230586814-0.84147098480790i) (num-test (make-polar -1 -1) -0.54030230586814+0.84147098480790i) (num-test (make-rectangular 1 2) 1.0+2.0i) (num-test (make-rectangular -1 2) -1.0+2.0i) (num-test (make-rectangular 1 -2) 1.0-2.0i) (num-test (make-rectangular -1 -2) -1.0-2.0i) (num-test (make-polar 1 2) -0.41614683654714+0.90929742682568i) (num-test (make-polar -1 2) 0.41614683654714-0.90929742682568i) (num-test (make-polar 1 -2) -0.41614683654714-0.90929742682568i) (num-test (make-polar -1 -2) 0.41614683654714+0.90929742682568i) (num-test (make-rectangular 1 3) 1.0+3.0i) (num-test (make-rectangular -1 3) -1.0+3.0i) (num-test (make-rectangular 1 -3) 1.0-3.0i) (num-test (make-rectangular -1 -3) -1.0-3.0i) (num-test (make-polar 1 3) -0.98999249660045+0.14112000805987i) (num-test (make-polar -1 3) 0.98999249660045-0.14112000805987i) (num-test (make-polar 1 -3) -0.98999249660045-0.14112000805987i) (num-test (make-polar -1 -3) 0.98999249660045+0.14112000805987i) (num-test (make-rectangular 1 10) 1.0+10.0i) (num-test (make-rectangular -1 10) -1.0+10.0i) (num-test (make-rectangular 1 -10) 1.0-10.0i) (num-test (make-rectangular -1 -10) -1.0-10.0i) (num-test (make-polar 1 10) -0.83907152907645-0.54402111088937i) (num-test (make-polar -1 10) 0.83907152907645+0.54402111088937i) (num-test (make-polar 1 -10) -0.83907152907645+0.54402111088937i) (num-test (make-polar -1 -10) 0.83907152907645-0.54402111088937i) (num-test (make-rectangular 1 1234) 1.0+1234.0i) (num-test (make-rectangular -1 1234) -1.0+1234.0i) (num-test (make-rectangular 1 -1234) 1.0-1234.0i) (num-test (make-rectangular -1 -1234) -1.0-1234.0i) (num-test (make-polar 1 1234) -0.79855062358758+0.60192765476250i) (num-test (make-polar -1 1234) 0.79855062358758-0.60192765476250i) (num-test (make-polar 1 -1234) -0.79855062358758-0.60192765476250i) (num-test (make-polar -1 -1234) 0.79855062358758+0.60192765476250i) (num-test (make-rectangular 1 1234000000) 1.0+1234000000.0i) (num-test (make-rectangular -1 1234000000) -1.0+1234000000.0i) (num-test (make-rectangular 1 -1234000000) 1.0-1234000000.0i) (num-test (make-rectangular -1 -1234000000) -1.0-1234000000.0i) (num-test (make-polar 1 1234000000) 0.15890913095152-0.98729321283003i) (num-test (make-polar -1 1234000000) -0.15890913095152+0.98729321283003i) (num-test (make-polar 1 -1234000000) 0.15890913095152+0.98729321283003i) (num-test (make-polar -1 -1234000000) -0.15890913095152-0.98729321283003i) (num-test (make-rectangular 1 500029) 1.0+500029.0i) (num-test (make-rectangular -1 500029) -1.0+500029.0i) (num-test (make-rectangular 1 -500029) 1.0-500029.0i) (num-test (make-rectangular -1 -500029) -1.0-500029.0i) (num-test (make-polar 1 500029) 0.85414905629947+0.52002825848479i) (num-test (make-polar -1 500029) -0.85414905629947-0.52002825848479i) (num-test (make-polar 1 -500029) 0.85414905629947-0.52002825848479i) (num-test (make-polar -1 -500029) -0.85414905629947+0.52002825848479i) (num-test (make-rectangular 1 362880) 1.0+362880.0i) (num-test (make-rectangular -1 362880) -1.0+362880.0i) (num-test (make-rectangular 1 -362880) 1.0-362880.0i) (num-test (make-rectangular -1 -362880) -1.0-362880.0i) (num-test (make-polar 1 362880) 0.60918079547638+0.79303137291204i) (num-test (make-polar -1 362880) -0.60918079547638-0.79303137291204i) (num-test (make-polar 1 -362880) 0.60918079547638-0.79303137291204i) (num-test (make-polar -1 -362880) -0.60918079547638+0.79303137291204i) (num-test (make-rectangular 2 1) 2.0+1.0i) (num-test (make-rectangular -2 1) -2.0+1.0i) (num-test (make-rectangular 2 -1) 2.0-1.0i) (num-test (make-rectangular -2 -1) -2.0-1.0i) (num-test (make-polar 2 1) 1.08060461173628+1.68294196961579i) (num-test (make-polar -2 1) -1.08060461173628-1.68294196961579i) (num-test (make-polar 2 -1) 1.08060461173628-1.68294196961579i) (num-test (make-polar -2 -1) -1.08060461173628+1.68294196961579i) (num-test (make-rectangular 2 2) 2.0+2.0i) (num-test (make-rectangular -2 2) -2.0+2.0i) (num-test (make-rectangular 2 -2) 2.0-2.0i) (num-test (make-rectangular -2 -2) -2.0-2.0i) (num-test (make-polar 2 2) -0.83229367309428+1.81859485365136i) (num-test (make-polar -2 2) 0.83229367309428-1.81859485365136i) (num-test (make-polar 2 -2) -0.83229367309428-1.81859485365136i) (num-test (make-polar -2 -2) 0.83229367309428+1.81859485365136i) (num-test (make-rectangular 2 3) 2.0+3.0i) (num-test (make-rectangular -2 3) -2.0+3.0i) (num-test (make-rectangular 2 -3) 2.0-3.0i) (num-test (make-rectangular -2 -3) -2.0-3.0i) (num-test (make-polar 2 3) -1.97998499320089+0.28224001611973i) (num-test (make-polar -2 3) 1.97998499320089-0.28224001611973i) (num-test (make-polar 2 -3) -1.97998499320089-0.28224001611973i) (num-test (make-polar -2 -3) 1.97998499320089+0.28224001611973i) (num-test (make-rectangular 2 10) 2.0+10.0i) (num-test (make-rectangular -2 10) -2.0+10.0i) (num-test (make-rectangular 2 -10) 2.0-10.0i) (num-test (make-rectangular -2 -10) -2.0-10.0i) (num-test (make-polar 2 10) -1.67814305815290-1.08804222177874i) (num-test (make-polar -2 10) 1.67814305815290+1.08804222177874i) (num-test (make-polar 2 -10) -1.67814305815290+1.08804222177874i) (num-test (make-polar -2 -10) 1.67814305815290-1.08804222177874i) (num-test (make-rectangular 2 1234) 2.0+1234.0i) (num-test (make-rectangular -2 1234) -2.0+1234.0i) (num-test (make-rectangular 2 -1234) 2.0-1234.0i) (num-test (make-rectangular -2 -1234) -2.0-1234.0i) (num-test (make-polar 2 1234) -1.59710124717517+1.20385530952499i) (num-test (make-polar -2 1234) 1.59710124717517-1.20385530952499i) (num-test (make-polar 2 -1234) -1.59710124717517-1.20385530952499i) (num-test (make-polar -2 -1234) 1.59710124717517+1.20385530952499i) (num-test (make-rectangular 2 1234000000) 2.0+1234000000.0i) (num-test (make-rectangular -2 1234000000) -2.0+1234000000.0i) (num-test (make-rectangular 2 -1234000000) 2.0-1234000000.0i) (num-test (make-rectangular -2 -1234000000) -2.0-1234000000.0i) (num-test (make-polar 2 1234000000) 0.31781826190303-1.97458642566005i) (num-test (make-polar -2 1234000000) -0.31781826190303+1.97458642566005i) (num-test (make-polar 2 -1234000000) 0.31781826190303+1.97458642566005i) (num-test (make-polar -2 -1234000000) -0.31781826190303-1.97458642566005i) (num-test (make-rectangular 2 500029) 2.0+500029.0i) (num-test (make-rectangular -2 500029) -2.0+500029.0i) (num-test (make-rectangular 2 -500029) 2.0-500029.0i) (num-test (make-rectangular -2 -500029) -2.0-500029.0i) (num-test (make-polar 2 500029) 1.70829811259895+1.04005651696957i) (num-test (make-polar -2 500029) -1.70829811259895-1.04005651696957i) (num-test (make-polar 2 -500029) 1.70829811259895-1.04005651696957i) (num-test (make-polar -2 -500029) -1.70829811259895+1.04005651696957i) (num-test (make-rectangular 2 362880) 2.0+362880.0i) (num-test (make-rectangular -2 362880) -2.0+362880.0i) (num-test (make-rectangular 2 -362880) 2.0-362880.0i) (num-test (make-rectangular -2 -362880) -2.0-362880.0i) (num-test (make-polar 2 362880) 1.21836159095277+1.58606274582408i) (num-test (make-polar -2 362880) -1.21836159095277-1.58606274582408i) (num-test (make-polar 2 -362880) 1.21836159095277-1.58606274582408i) (num-test (make-polar -2 -362880) -1.21836159095277+1.58606274582408i) (num-test (make-rectangular 3 1) 3.0+1.0i) (num-test (make-rectangular -3 1) -3.0+1.0i) (num-test (make-rectangular 3 -1) 3.0-1.0i) (num-test (make-rectangular -3 -1) -3.0-1.0i) (num-test (make-polar 3 1) 1.62090691760442+2.52441295442369i) (num-test (make-polar -3 1) -1.62090691760442-2.52441295442369i) (num-test (make-polar 3 -1) 1.62090691760442-2.52441295442369i) (num-test (make-polar -3 -1) -1.62090691760442+2.52441295442369i) (num-test (make-rectangular 3 2) 3.0+2.0i) (num-test (make-rectangular -3 2) -3.0+2.0i) (num-test (make-rectangular 3 -2) 3.0-2.0i) (num-test (make-rectangular -3 -2) -3.0-2.0i) (num-test (make-polar 3 2) -1.24844050964143+2.72789228047704i) (num-test (make-polar -3 2) 1.24844050964143-2.72789228047704i) (num-test (make-polar 3 -2) -1.24844050964143-2.72789228047704i) (num-test (make-polar -3 -2) 1.24844050964143+2.72789228047704i) (num-test (make-rectangular 3 3) 3.0+3.0i) (num-test (make-rectangular -3 3) -3.0+3.0i) (num-test (make-rectangular 3 -3) 3.0-3.0i) (num-test (make-rectangular -3 -3) -3.0-3.0i) (num-test (make-polar 3 3) -2.96997748980134+0.42336002417960i) (num-test (make-polar -3 3) 2.96997748980134-0.42336002417960i) (num-test (make-polar 3 -3) -2.96997748980134-0.42336002417960i) (num-test (make-polar -3 -3) 2.96997748980134+0.42336002417960i) (num-test (make-rectangular 3 10) 3.0+10.0i) (num-test (make-rectangular -3 10) -3.0+10.0i) (num-test (make-rectangular 3 -10) 3.0-10.0i) (num-test (make-rectangular -3 -10) -3.0-10.0i) (num-test (make-polar 3 10) -2.51721458722936-1.63206333266811i) (num-test (make-polar -3 10) 2.51721458722936+1.63206333266811i) (num-test (make-polar 3 -10) -2.51721458722936+1.63206333266811i) (num-test (make-polar -3 -10) 2.51721458722936-1.63206333266811i) (num-test (make-rectangular 3 1234) 3.0+1234.0i) (num-test (make-rectangular -3 1234) -3.0+1234.0i) (num-test (make-rectangular 3 -1234) 3.0-1234.0i) (num-test (make-rectangular -3 -1234) -3.0-1234.0i) (num-test (make-polar 3 1234) -2.39565187076275+1.80578296428749i) (num-test (make-polar -3 1234) 2.39565187076275-1.80578296428749i) (num-test (make-polar 3 -1234) -2.39565187076275-1.80578296428749i) (num-test (make-polar -3 -1234) 2.39565187076275+1.80578296428749i) (num-test (make-rectangular 3 1234000000) 3.0+1234000000.0i) (num-test (make-rectangular -3 1234000000) -3.0+1234000000.0i) (num-test (make-rectangular 3 -1234000000) 3.0-1234000000.0i) (num-test (make-rectangular -3 -1234000000) -3.0-1234000000.0i) (num-test (make-polar 3 1234000000) 0.47672739285455-2.96187963849008i) (num-test (make-polar -3 1234000000) -0.47672739285455+2.96187963849008i) (num-test (make-polar 3 -1234000000) 0.47672739285455+2.96187963849008i) (num-test (make-polar -3 -1234000000) -0.47672739285455-2.96187963849008i) (num-test (make-rectangular 3 500029) 3.0+500029.0i) (num-test (make-rectangular -3 500029) -3.0+500029.0i) (num-test (make-rectangular 3 -500029) 3.0-500029.0i) (num-test (make-rectangular -3 -500029) -3.0-500029.0i) (num-test (make-polar 3 500029) 2.56244716889842+1.56008477545436i) (num-test (make-polar -3 500029) -2.56244716889842-1.56008477545436i) (num-test (make-polar 3 -500029) 2.56244716889842-1.56008477545436i) (num-test (make-polar -3 -500029) -2.56244716889842+1.56008477545436i) (num-test (make-rectangular 3 362880) 3.0+362880.0i) (num-test (make-rectangular -3 362880) -3.0+362880.0i) (num-test (make-rectangular 3 -362880) 3.0-362880.0i) (num-test (make-rectangular -3 -362880) -3.0-362880.0i) (num-test (make-polar 3 362880) 1.82754238642915+2.37909411873613i) (num-test (make-polar -3 362880) -1.82754238642915-2.37909411873613i) (num-test (make-polar 3 -362880) 1.82754238642915-2.37909411873613i) (num-test (make-polar -3 -362880) -1.82754238642915+2.37909411873613i) (num-test (make-rectangular 10 1) 10.0+1.0i) (num-test (make-rectangular -10 1) -10.0+1.0i) (num-test (make-rectangular 10 -1) 10.0-1.0i) (num-test (make-rectangular -10 -1) -10.0-1.0i) (num-test (make-polar 10 1) 5.40302305868140+8.41470984807897i) (num-test (make-polar -10 1) -5.40302305868140-8.41470984807897i) (num-test (make-polar 10 -1) 5.40302305868140-8.41470984807897i) (num-test (make-polar -10 -1) -5.40302305868140+8.41470984807897i) (num-test (make-rectangular 10 2) 10.0+2.0i) (num-test (make-rectangular -10 2) -10.0+2.0i) (num-test (make-rectangular 10 -2) 10.0-2.0i) (num-test (make-rectangular -10 -2) -10.0-2.0i) (num-test (make-polar 10 2) -4.16146836547142+9.09297426825682i) (num-test (make-polar -10 2) 4.16146836547142-9.09297426825682i) (num-test (make-polar 10 -2) -4.16146836547142-9.09297426825682i) (num-test (make-polar -10 -2) 4.16146836547142+9.09297426825682i) (num-test (make-rectangular 10 3) 10.0+3.0i) (num-test (make-rectangular -10 3) -10.0+3.0i) (num-test (make-rectangular 10 -3) 10.0-3.0i) (num-test (make-rectangular -10 -3) -10.0-3.0i) (num-test (make-polar 10 3) -9.89992496600445+1.41120008059867i) (num-test (make-polar -10 3) 9.89992496600445-1.41120008059867i) (num-test (make-polar 10 -3) -9.89992496600445-1.41120008059867i) (num-test (make-polar -10 -3) 9.89992496600445+1.41120008059867i) (num-test (make-rectangular 10 10) 10.0+10.0i) (num-test (make-rectangular -10 10) -10.0+10.0i) (num-test (make-rectangular 10 -10) 10.0-10.0i) (num-test (make-rectangular -10 -10) -10.0-10.0i) (num-test (make-polar 10 10) -8.39071529076452-5.44021110889370i) (num-test (make-polar -10 10) 8.39071529076452+5.44021110889370i) (num-test (make-polar 10 -10) -8.39071529076452+5.44021110889370i) (num-test (make-polar -10 -10) 8.39071529076452-5.44021110889370i) (num-test (make-rectangular 10 1234) 10.0+1234.0i) (num-test (make-rectangular -10 1234) -10.0+1234.0i) (num-test (make-rectangular 10 -1234) 10.0-1234.0i) (num-test (make-rectangular -10 -1234) -10.0-1234.0i) (num-test (make-polar 10 1234) -7.98550623587584+6.01927654762497i) (num-test (make-polar -10 1234) 7.98550623587584-6.01927654762497i) (num-test (make-polar 10 -1234) -7.98550623587584-6.01927654762497i) (num-test (make-polar -10 -1234) 7.98550623587584+6.01927654762497i) (num-test (make-rectangular 10 1234000000) 10.0+1234000000.0i) (num-test (make-rectangular -10 1234000000) -10.0+1234000000.0i) (num-test (make-rectangular 10 -1234000000) 10.0-1234000000.0i) (num-test (make-rectangular -10 -1234000000) -10.0-1234000000.0i) (num-test (make-polar 10 1234000000) 1.58909130951517-9.87293212830025i) (num-test (make-polar -10 1234000000) -1.58909130951517+9.87293212830025i) (num-test (make-polar 10 -1234000000) 1.58909130951517+9.87293212830025i) (num-test (make-polar -10 -1234000000) -1.58909130951517-9.87293212830025i) (num-test (make-rectangular 10 500029) 10.0+500029.0i) (num-test (make-rectangular -10 500029) -10.0+500029.0i) (num-test (make-rectangular 10 -500029) 10.0-500029.0i) (num-test (make-rectangular -10 -500029) -10.0-500029.0i) (num-test (make-polar 10 500029) 8.54149056299473+5.20028258484786i) (num-test (make-polar -10 500029) -8.54149056299473-5.20028258484786i) (num-test (make-polar 10 -500029) 8.54149056299473-5.20028258484786i) (num-test (make-polar -10 -500029) -8.54149056299473+5.20028258484786i) (num-test (make-rectangular 10 362880) 10.0+362880.0i) (num-test (make-rectangular -10 362880) -10.0+362880.0i) (num-test (make-rectangular 10 -362880) 10.0-362880.0i) (num-test (make-rectangular -10 -362880) -10.0-362880.0i) (num-test (make-polar 10 362880) 6.09180795476385+7.93031372912042i) (num-test (make-polar -10 362880) -6.09180795476385-7.93031372912042i) (num-test (make-polar 10 -362880) 6.09180795476385-7.93031372912042i) (num-test (make-polar -10 -362880) -6.09180795476385+7.93031372912042i) (num-test (make-rectangular 1234 1) 1234.0+1.0i) (num-test (make-rectangular -1234 1) -1234.0+1.0i) (num-test (make-rectangular 1234 -1) 1234.0-1.0i) (num-test (make-rectangular -1234 -1) -1234.0-1.0i) (num-test (make-polar 1234 1) 666.73304544128450+1038.37519525294420i) (num-test (make-polar -1234 1) -666.73304544128450-1038.37519525294420i) (num-test (make-polar 1234 -1) 666.73304544128450-1038.37519525294420i) (num-test (make-polar -1234 -1) -666.73304544128450+1038.37519525294420i) (num-test (make-rectangular 1234 2) 1234.0+2.0i) (num-test (make-rectangular -1234 2) -1234.0+2.0i) (num-test (make-rectangular 1234 -2) 1234.0-2.0i) (num-test (make-rectangular -1234 -2) -1234.0-2.0i) (num-test (make-polar 1234 2) -513.52519629917379+1122.07302470289119i) (num-test (make-polar -1234 2) 513.52519629917379-1122.07302470289119i) (num-test (make-polar 1234 -2) -513.52519629917379-1122.07302470289119i) (num-test (make-polar -1234 -2) 513.52519629917379+1122.07302470289119i) (num-test (make-rectangular 1234 3) 1234.0+3.0i) (num-test (make-rectangular -1234 3) -1234.0+3.0i) (num-test (make-rectangular 1234 -3) 1234.0-3.0i) (num-test (make-rectangular -1234 -3) -1234.0-3.0i) (num-test (make-polar 1234 3) -1221.65074080494969+174.14208994587614i) (num-test (make-polar -1234 3) 1221.65074080494969-174.14208994587614i) (num-test (make-polar 1234 -3) -1221.65074080494969-174.14208994587614i) (num-test (make-polar -1234 -3) 1221.65074080494969+174.14208994587614i) (num-test (make-rectangular 1234 10) 1234.0+10.0i) (num-test (make-rectangular -1234 10) -1234.0+10.0i) (num-test (make-rectangular 1234 -10) 1234.0-10.0i) (num-test (make-rectangular -1234 -10) -1234.0-10.0i) (num-test (make-polar 1234 10) -1035.41426688034221-671.32205083748227i) (num-test (make-polar -1234 10) 1035.41426688034221+671.32205083748227i) (num-test (make-polar 1234 -10) -1035.41426688034221+671.32205083748227i) (num-test (make-polar -1234 -10) 1035.41426688034221-671.32205083748227i) (num-test (make-rectangular 1234 1234) 1234.0+1234.0i) (num-test (make-rectangular -1234 1234) -1234.0+1234.0i) (num-test (make-rectangular 1234 -1234) 1234.0-1234.0i) (num-test (make-rectangular -1234 -1234) -1234.0-1234.0i) (num-test (make-polar 1234 1234) -985.41146950707912+742.77872597692169i) (num-test (make-polar -1234 1234) 985.41146950707912-742.77872597692169i) (num-test (make-polar 1234 -1234) -985.41146950707912-742.77872597692169i) (num-test (make-polar -1234 -1234) 985.41146950707912+742.77872597692169i) (num-test (make-rectangular 1234 1234000000) 1234.0+1234000000.0i) (num-test (make-rectangular -1234 1234000000) -1234.0+1234000000.0i) (num-test (make-rectangular 1234 -1234000000) 1234.0-1234000000.0i) (num-test (make-rectangular -1234 -1234000000) -1234.0-1234000000.0i) (num-test (make-polar 1234 1234000000) 196.09386759417183-1218.31982463225131i) (num-test (make-polar -1234 1234000000) -196.09386759417183+1218.31982463225131i) (num-test (make-polar 1234 -1234000000) 196.09386759417183+1218.31982463225131i) (num-test (make-polar -1234 -1234000000) -196.09386759417183-1218.31982463225131i) (num-test (make-rectangular 1234 500029) 1234.0+500029.0i) (num-test (make-rectangular -1234 500029) -1234.0+500029.0i) (num-test (make-rectangular 1234 -500029) 1234.0-500029.0i) (num-test (make-rectangular -1234 -500029) -1234.0-500029.0i) (num-test (make-polar 1234 500029) 1054.01993547355005+641.71487097022577i) (num-test (make-polar -1234 500029) -1054.01993547355005-641.71487097022577i) (num-test (make-polar 1234 -500029) 1054.01993547355005-641.71487097022577i) (num-test (make-polar -1234 -500029) -1054.01993547355005+641.71487097022577i) (num-test (make-rectangular 1234 362880) 1234.0+362880.0i) (num-test (make-rectangular -1234 362880) -1234.0+362880.0i) (num-test (make-rectangular 1234 -362880) 1234.0-362880.0i) (num-test (make-rectangular -1234 -362880) -1234.0-362880.0i) (num-test (make-polar 1234 362880) 751.72910161785899+978.60071417346035i) (num-test (make-polar -1234 362880) -751.72910161785899-978.60071417346035i) (num-test (make-polar 1234 -362880) 751.72910161785899-978.60071417346035i) (num-test (make-polar -1234 -362880) -751.72910161785899+978.60071417346035i) (num-test (make-rectangular 1234000000 1) 1234000000.0+1.0i) (num-test (make-rectangular -1234000000 1) -1234000000.0+1.0i) (num-test (make-rectangular 1234000000 -1) 1234000000.0-1.0i) (num-test (make-rectangular -1234000000 -1) -1234000000.0-1.0i) (num-test (make-polar 1234000000 1) 666733045.44128441810608+1038375195.25294423103333i) (num-test (make-polar -1234000000 1) -666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar 1234000000 -1) 666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar -1234000000 -1) -666733045.44128441810608+1038375195.25294423103333i) (num-test (make-rectangular 1234000000 2) 1234000000.0+2.0i) (num-test (make-rectangular -1234000000 2) -1234000000.0+2.0i) (num-test (make-rectangular 1234000000 -2) 1234000000.0-2.0i) (num-test (make-rectangular -1234000000 -2) -1234000000.0-2.0i) (num-test (make-polar 1234000000 2) -513525196.29917371273041+1122073024.70289111137390i) (num-test (make-polar -1234000000 2) 513525196.29917371273041-1122073024.70289111137390i) (num-test (make-polar 1234000000 -2) -513525196.29917371273041-1122073024.70289111137390i) (num-test (make-polar -1234000000 -2) 513525196.29917371273041+1122073024.70289111137390i) (num-test (make-rectangular 1234000000 3) 1234000000.0+3.0i) (num-test (make-rectangular -1234000000 3) -1234000000.0+3.0i) (num-test (make-rectangular 1234000000 -3) 1234000000.0-3.0i) (num-test (make-rectangular -1234000000 -3) -1234000000.0-3.0i) (num-test (make-polar 1234000000 3) -1221650740.80494976043701+174142089.94587615132332i) (num-test (make-polar -1234000000 3) 1221650740.80494976043701-174142089.94587615132332i) (num-test (make-polar 1234000000 -3) -1221650740.80494976043701-174142089.94587615132332i) (num-test (make-polar -1234000000 -3) 1221650740.80494976043701+174142089.94587615132332i) (num-test (make-rectangular 1234000000 10) 1234000000.0+10.0i) (num-test (make-rectangular -1234000000 10) -1234000000.0+10.0i) (num-test (make-rectangular 1234000000 -10) 1234000000.0-10.0i) (num-test (make-rectangular -1234000000 -10) -1234000000.0-10.0i) (num-test (make-polar 1234000000 10) -1035414266.88034236431122-671322050.83748233318329i) (num-test (make-polar -1234000000 10) 1035414266.88034236431122+671322050.83748233318329i) (num-test (make-polar 1234000000 -10) -1035414266.88034236431122+671322050.83748233318329i) (num-test (make-polar -1234000000 -10) 1035414266.88034236431122-671322050.83748233318329i) (num-test (make-rectangular 1234000000 1234) 1234000000.0+1234.0i) (num-test (make-rectangular -1234000000 1234) -1234000000.0+1234.0i) (num-test (make-rectangular 1234000000 -1234) 1234000000.0-1234.0i) (num-test (make-rectangular -1234000000 -1234) -1234000000.0-1234.0i) (num-test (make-polar 1234000000 1234) -985411469.50707900524139+742778725.97692167758942i) (num-test (make-polar -1234000000 1234) 985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar 1234000000 -1234) -985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar -1234000000 -1234) 985411469.50707900524139+742778725.97692167758942i) (num-test (make-rectangular 1234000000 1234000000) 1234000000.0+1234000000.0i) (num-test (make-rectangular -1234000000 1234000000) -1234000000.0+1234000000.0i) (num-test (make-rectangular 1234000000 -1234000000) 1234000000.0-1234000000.0i) (num-test (make-rectangular -1234000000 -1234000000) -1234000000.0-1234000000.0i) (num-test (make-polar 1234000000 1234000000) 196093867.59417182207108-1218319824.63225126266479i) (num-test (make-polar -1234000000 1234000000) -196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar 1234000000 -1234000000) 196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar -1234000000 -1234000000) -196093867.59417182207108-1218319824.63225126266479i) (num-test (make-rectangular 1234000000 500029) 1234000000.0+500029.0i) (num-test (make-rectangular -1234000000 500029) -1234000000.0+500029.0i) (num-test (make-rectangular 1234000000 -500029) 1234000000.0-500029.0i) (num-test (make-rectangular -1234000000 -500029) -1234000000.0-500029.0i) (num-test (make-polar 1234000000 500029) 1054019935.47354996204376+641714870.97022569179535i) (num-test (make-polar -1234000000 500029) -1054019935.47354996204376-641714870.97022569179535i) (num-test (make-polar 1234000000 -500029) 1054019935.47354996204376-641714870.97022569179535i) (num-test (make-polar -1234000000 -500029) -1054019935.47354996204376+641714870.97022569179535i) (num-test (make-rectangular 1234000000 362880) 1234000000.0+362880.0i) (num-test (make-rectangular -1234000000 362880) -1234000000.0+362880.0i) (num-test (make-rectangular 1234000000 -362880) 1234000000.0-362880.0i) (num-test (make-rectangular -1234000000 -362880) -1234000000.0-362880.0i) (num-test (make-polar 1234000000 362880) 751729101.61785900592804+978600714.17346036434174i) (num-test (make-polar -1234000000 362880) -751729101.61785900592804-978600714.17346036434174i) (num-test (make-polar 1234000000 -362880) 751729101.61785900592804-978600714.17346036434174i) (num-test (make-polar -1234000000 -362880) -751729101.61785900592804+978600714.17346036434174i) (num-test (make-rectangular 500029 1) 500029.0+1.0i) (num-test (make-rectangular -500029 1) -500029.0+1.0i) (num-test (make-rectangular 500029 -1) 500029.0-1.0i) (num-test (make-rectangular -500029 -1) -500029.0-1.0i) (num-test (make-polar 500029 1) 270166.82170094008325+420759.89506250765407i) (num-test (make-polar -500029 1) -270166.82170094008325-420759.89506250765407i) (num-test (make-polar 500029 -1) 270166.82170094008325-420759.89506250765407i) (num-test (make-polar -500029 -1) -270166.82170094008325+420759.89506250765407i) (num-test (make-rectangular 500029 2) 500029.0+2.0i) (num-test (make-rectangular -500029 2) -500029.0+2.0i) (num-test (make-rectangular 500029 -2) 500029.0-2.0i) (num-test (make-rectangular -500029 -2) -500029.0-2.0i) (num-test (make-polar 500029 2) -208085.48653183106217+454675.08303821878508i) (num-test (make-polar -500029 2) 208085.48653183106217-454675.08303821878508i) (num-test (make-polar 500029 -2) -208085.48653183106217-454675.08303821878508i) (num-test (make-polar -500029 -2) 208085.48653183106217+454675.08303821878508i) (num-test (make-rectangular 500029 3) 500029.0+3.0i) (num-test (make-rectangular -500029 3) -500029.0+3.0i) (num-test (make-rectangular 500029 -3) 500029.0-3.0i) (num-test (make-rectangular -500029 -3) -500029.0-3.0i) (num-test (make-polar 500029 3) -495024.95808262412902+70564.09651016735006i) (num-test (make-polar -500029 3) 495024.95808262412902-70564.09651016735006i) (num-test (make-polar 500029 -3) -495024.95808262412902-70564.09651016735006i) (num-test (make-polar -500029 -3) 495024.95808262412902+70564.09651016735006i) (num-test (make-rectangular 500029 10) 500029.0+10.0i) (num-test (make-rectangular -500029 10) -500029.0+10.0i) (num-test (make-rectangular 500029 -10) 500029.0-10.0i) (num-test (make-rectangular -500029 -10) -500029.0-10.0i) (num-test (make-polar 500029 10) -419560.09761256945785-272026.33205690066097i) (num-test (make-polar -500029 10) 419560.09761256945785+272026.33205690066097i) (num-test (make-polar 500029 -10) -419560.09761256945785+272026.33205690066097i) (num-test (make-polar -500029 -10) 419560.09761256945785-272026.33205690066097i) (num-test (make-rectangular 500029 1234) 500029.0+1234.0i) (num-test (make-rectangular -500029 1234) -500029.0+1234.0i) (num-test (make-rectangular 500029 -1234) 500029.0-1234.0i) (num-test (make-rectangular -500029 -1234) -500029.0-1234.0i) (num-test (make-polar 500029 1234) -399298.46976187621476+300981.28328323678579i) (num-test (make-polar -500029 1234) 399298.46976187621476-300981.28328323678579i) (num-test (make-polar 500029 -1234) -399298.46976187621476-300981.28328323678579i) (num-test (make-polar -500029 -1234) 399298.46976187621476+300981.28328323678579i) (num-test (make-rectangular 500029 1234000000) 500029.0+1234000000.0i) (num-test (make-rectangular -500029 1234000000) -500029.0+1234000000.0i) (num-test (make-rectangular 500029 -1234000000) 500029.0-1234000000.0i) (num-test (make-rectangular -500029 -1234000000) -500029.0-1234000000.0i) (num-test (make-polar 500029 1234000000) 79459.17384055603179-493675.23791818472091i) (num-test (make-polar -500029 1234000000) -79459.17384055603179+493675.23791818472091i) (num-test (make-polar 500029 -1234000000) 79459.17384055603179+493675.23791818472091i) (num-test (make-polar -500029 -1234000000) -79459.17384055603179-493675.23791818472091i) (num-test (make-rectangular 500029 500029) 500029.0+500029.0i) (num-test (make-rectangular -500029 500029) -500029.0+500029.0i) (num-test (make-rectangular 500029 -500029) 500029.0-500029.0i) (num-test (make-rectangular -500029 -500029) -500029.0-500029.0i) (num-test (make-polar 500029 500029) 427099.29847236932255+260029.21006188896718i) (num-test (make-polar -500029 500029) -427099.29847236932255-260029.21006188896718i) (num-test (make-polar 500029 -500029) 427099.29847236932255-260029.21006188896718i) (num-test (make-polar -500029 -500029) -427099.29847236932255+260029.21006188896718i) (num-test (make-rectangular 500029 362880) 500029.0+362880.0i) (num-test (make-rectangular -500029 362880) -500029.0+362880.0i) (num-test (make-rectangular 500029 -362880) 500029.0-362880.0i) (num-test (make-rectangular -500029 -362880) -500029.0-362880.0i) (num-test (make-polar 500029 362880) 304608.06398126127897+396538.68436583562288i) (num-test (make-polar -500029 362880) -304608.06398126127897-396538.68436583562288i) (num-test (make-polar 500029 -362880) 304608.06398126127897-396538.68436583562288i) (num-test (make-polar -500029 -362880) -304608.06398126127897+396538.68436583562288i) (num-test (make-rectangular 362880 1) 362880.0+1.0i) (num-test (make-rectangular -362880 1) -362880.0+1.0i) (num-test (make-rectangular 362880 -1) 362880.0-1.0i) (num-test (make-rectangular -362880 -1) -362880.0-1.0i) (num-test (make-polar 362880 1) 196064.90075343055651+305352.99096708948491i) (num-test (make-polar -362880 1) -196064.90075343055651-305352.99096708948491i) (num-test (make-polar 362880 -1) 196064.90075343055651-305352.99096708948491i) (num-test (make-polar -362880 -1) -196064.90075343055651+305352.99096708948491i) (num-test (make-rectangular 362880 2) 362880.0+2.0i) (num-test (make-rectangular -362880 2) -362880.0+2.0i) (num-test (make-rectangular 362880 -2) 362880.0-2.0i) (num-test (make-rectangular -362880 -2) -362880.0-2.0i) (num-test (make-polar 362880 2) -151011.36404622704140+329965.85024650336709i) (num-test (make-polar -362880 2) 151011.36404622704140-329965.85024650336709i) (num-test (make-polar 362880 -2) -151011.36404622704140-329965.85024650336709i) (num-test (make-polar -362880 -2) 151011.36404622704140+329965.85024650336709i) (num-test (make-rectangular 362880 3) 362880.0+3.0i) (num-test (make-rectangular -362880 3) -362880.0+3.0i) (num-test (make-rectangular 362880 -3) 362880.0-3.0i) (num-test (make-rectangular -362880 -3) -362880.0-3.0i) (num-test (make-polar 362880 3) -359248.47716636961559+51209.62852476461558i) (num-test (make-polar -362880 3) 359248.47716636961559-51209.62852476461558i) (num-test (make-polar 362880 -3) -359248.47716636961559-51209.62852476461558i) (num-test (make-polar -362880 -3) 359248.47716636961559+51209.62852476461558i) (num-test (make-rectangular 362880 10) 362880.0+10.0i) (num-test (make-rectangular -362880 10) -362880.0+10.0i) (num-test (make-rectangular 362880 -10) 362880.0-10.0i) (num-test (make-rectangular -362880 -10) -362880.0-10.0i) (num-test (make-polar 362880 10) -304482.27647126308875-197414.38071953449980i) (num-test (make-polar -362880 10) 304482.27647126308875+197414.38071953449980i) (num-test (make-polar 362880 -10) -304482.27647126308875+197414.38071953449980i) (num-test (make-polar -362880 -10) 304482.27647126308875-197414.38071953449980i) (num-test (make-rectangular 362880 1234) 362880.0+1234.0i) (num-test (make-rectangular -362880 1234) -362880.0+1234.0i) (num-test (make-rectangular 362880 -1234) 362880.0-1234.0i) (num-test (make-rectangular -362880 -1234) -362880.0-1234.0i) (num-test (make-polar 362880 1234) -289778.05028746259632+218427.50736021503690i) (num-test (make-polar -362880 1234) 289778.05028746259632-218427.50736021503690i) (num-test (make-polar 362880 -1234) -289778.05028746259632-218427.50736021503690i) (num-test (make-polar -362880 -1234) 289778.05028746259632+218427.50736021503690i) (num-test (make-rectangular 362880 1234000000) 362880.0+1234000000.0i) (num-test (make-rectangular -362880 1234000000) -362880.0+1234000000.0i) (num-test (make-rectangular 362880 -1234000000) 362880.0-1234000000.0i) (num-test (make-rectangular -362880 -1234000000) -362880.0-1234000000.0i) (num-test (make-polar 362880 1234000000) 57664.94543968644575-358268.96107175957877i) (num-test (make-polar -362880 1234000000) -57664.94543968644575+358268.96107175957877i) (num-test (make-polar 362880 -1234000000) 57664.94543968644575+358268.96107175957877i) (num-test (make-polar -362880 -1234000000) -57664.94543968644575-358268.96107175957877i) (num-test (make-rectangular 362880 500029) 362880.0+500029.0i) (num-test (make-rectangular -362880 500029) -362880.0+500029.0i) (num-test (make-rectangular 362880 -500029) 362880.0-500029.0i) (num-test (make-rectangular -362880 -500029) -362880.0-500029.0i) (num-test (make-polar 362880 500029) 309953.60954995284555+188707.85443895909702i) (num-test (make-polar -362880 500029) -309953.60954995284555-188707.85443895909702i) (num-test (make-polar 362880 -500029) 309953.60954995284555-188707.85443895909702i) (num-test (make-polar -362880 -500029) -309953.60954995284555+188707.85443895909702i) (num-test (make-rectangular 362880 362880) 362880.0+362880.0i) (num-test (make-rectangular -362880 362880) -362880.0+362880.0i) (num-test (make-rectangular 362880 -362880) 362880.0-362880.0i) (num-test (make-rectangular -362880 -362880) -362880.0-362880.0i) (num-test (make-polar 362880 362880) 221059.52706247055903+287775.22460232191952i) (num-test (make-polar -362880 362880) -221059.52706247055903-287775.22460232191952i) (num-test (make-polar 362880 -362880) 221059.52706247055903-287775.22460232191952i) (num-test (make-polar -362880 -362880) -221059.52706247055903+287775.22460232191952i) (num-test (make-rectangular 0.0 0.00000001) 0.0+0.00000001i) (num-test (make-rectangular -0.0 0.00000001) -0.0+0.00000001i) (num-test (make-rectangular 0.0 -0.00000001) 0.0-0.00000001i) (num-test (make-rectangular -0.0 -0.00000001) -0.0-0.00000001i) (num-test (make-polar 0.0 0.00000001) 0.0) (num-test (make-polar -0.0 0.00000001) -0.0) (num-test (make-polar 0.0 -0.00000001) 0.0) (num-test (make-polar -0.0 -0.00000001) 0.0) (num-test (make-rectangular 0.0 1.0) 0.0+1.0i) (num-test (make-rectangular -0.0 1.0) -0.0+1.0i) (num-test (make-rectangular 0.0 -1.0) 0.0-1.0i) (num-test (make-rectangular -0.0 -1.0) -0.0-1.0i) (num-test (make-polar 0.0 1.0) 0.0) (num-test (make-polar -0.0 1.0) -0.0) (num-test (make-polar 0.0 -1.0) 0.0) (num-test (make-polar -0.0 -1.0) 0.0) (num-test (make-rectangular 0.0 our-pi) 0.0+3.14159265358979i) (num-test (make-rectangular -0.0 our-pi) -0.0+3.14159265358979i) (num-test (make-rectangular 0.0 -3.14159265358979) 0.0-3.14159265358979i) (num-test (make-rectangular -0.0 -3.14159265358979) -0.0-3.14159265358979i) (num-test (make-polar 0.0 our-pi) -0.0) (num-test (make-polar -0.0 our-pi) 0.0) (num-test (make-polar 0.0 -3.14159265358979) 0.0) (num-test (make-polar -0.0 -3.14159265358979) 0.0) (num-test (make-rectangular 0.0 2.71828182845905) 0.0+2.71828182845905i) (num-test (make-rectangular -0.0 2.71828182845905) -0.0+2.71828182845905i) (num-test (make-rectangular 0.0 -2.71828182845905) 0.0-2.71828182845905i) (num-test (make-rectangular -0.0 -2.71828182845905) -0.0-2.71828182845905i) (num-test (make-polar 0.0 2.71828182845905) -0.0) (num-test (make-polar -0.0 2.71828182845905) 0.0) (num-test (make-polar 0.0 -2.71828182845905) 0.0) (num-test (make-polar -0.0 -2.71828182845905) 0.0) (num-test (make-rectangular 0.0 1234.0) 0.0+1234.0i) (num-test (make-rectangular -0.0 1234.0) -0.0+1234.0i) (num-test (make-rectangular 0.0 -1234.0) 0.0-1234.0i) (num-test (make-rectangular -0.0 -1234.0) -0.0-1234.0i) (num-test (make-polar 0.0 1234.0) -0.0) (num-test (make-polar -0.0 1234.0) 0.0) (num-test (make-polar 0.0 -1234.0) 0.0) (num-test (make-polar -0.0 -1234.0) 0.0) (num-test (make-rectangular 0.0 1234000000.0) 0.0+1234000000.0i) (num-test (make-rectangular -0.0 1234000000.0) -0.0+1234000000.0i) (num-test (make-rectangular 0.0 -1234000000.0) 0.0-1234000000.0i) (num-test (make-rectangular -0.0 -1234000000.0) -0.0-1234000000.0i) (num-test (make-polar 0.0 1234000000.0) 0.0) (num-test (make-polar -0.0 1234000000.0) 0.0) (num-test (make-polar 0.0 -1234000000.0) 0.0) (num-test (make-polar -0.0 -1234000000.0) -0.0) (num-test (make-rectangular 0.00000001 0.00000001) 0.00000001+0.00000001i) (num-test (make-rectangular -0.00000001 0.00000001) -0.00000001+0.00000001i) (num-test (make-rectangular 0.00000001 -0.00000001) 0.00000001-0.00000001i) (num-test (make-rectangular -0.00000001 -0.00000001) -0.00000001-0.00000001i) (num-test (make-polar 0.00000001 0.00000001) 0.00000001+1e-16i) (num-test (make-polar -0.00000001 0.00000001) -0.00000001-1e-16i) (num-test (make-polar 0.00000001 -0.00000001) 0.00000001-1e-16i) (num-test (make-polar -0.00000001 -0.00000001) -0.00000001+1e-16i) (num-test (make-rectangular 0.00000001 1.0) 0.00000001+1.0i) (num-test (make-rectangular -0.00000001 1.0) -0.00000001+1.0i) (num-test (make-rectangular 0.00000001 -1.0) 0.00000001-1.0i) (num-test (make-rectangular -0.00000001 -1.0) -0.00000001-1.0i) (num-test (make-polar 0.00000001 1.0) 0.00000000540302+0.00000000841471i) (num-test (make-polar -0.00000001 1.0) -0.00000000540302-0.00000000841471i) (num-test (make-polar 0.00000001 -1.0) 0.00000000540302-0.00000000841471i) (num-test (make-polar -0.00000001 -1.0) -0.00000000540302+0.00000000841471i) (num-test (make-rectangular 0.00000001 our-pi) 0.00000001+3.14159265358979i) (num-test (make-rectangular -0.00000001 our-pi) -0.00000001+3.14159265358979i) (num-test (make-rectangular 0.00000001 -3.14159265358979) 0.00000001-3.14159265358979i) (num-test (make-rectangular -0.00000001 -3.14159265358979) -0.00000001-3.14159265358979i) (num-test (make-polar 0.00000001 our-pi) -0.00000001+0.0i) (num-test (make-polar -0.00000001 our-pi) 0.00000001-0.0i) (num-test (make-polar 0.00000001 -3.14159265358979) -0.00000001-0.0i) (num-test (make-polar -0.00000001 -3.14159265358979) 0.00000001+0.0i) (num-test (make-rectangular 0.00000001 2.71828182845905) 0.00000001+2.71828182845905i) (num-test (make-rectangular -0.00000001 2.71828182845905) -0.00000001+2.71828182845905i) (num-test (make-rectangular 0.00000001 -2.71828182845905) 0.00000001-2.71828182845905i) (num-test (make-rectangular -0.00000001 -2.71828182845905) -0.00000001-2.71828182845905i) (num-test (make-polar 0.00000001 2.71828182845905) -0.00000000911734+0.00000000410781i) (num-test (make-polar -0.00000001 2.71828182845905) 0.00000000911734-0.00000000410781i) (num-test (make-polar 0.00000001 -2.71828182845905) -0.00000000911734-0.00000000410781i) (num-test (make-polar -0.00000001 -2.71828182845905) 0.00000000911734+0.00000000410781i) (num-test (make-rectangular 0.00000001 1234.0) 0.00000001+1234.0i) (num-test (make-rectangular -0.00000001 1234.0) -0.00000001+1234.0i) (num-test (make-rectangular 0.00000001 -1234.0) 0.00000001-1234.0i) (num-test (make-rectangular -0.00000001 -1234.0) -0.00000001-1234.0i) (num-test (make-polar 0.00000001 1234.0) -0.00000000798551+0.00000000601928i) (num-test (make-polar -0.00000001 1234.0) 0.00000000798551-0.00000000601928i) (num-test (make-polar 0.00000001 -1234.0) -0.00000000798551-0.00000000601928i) (num-test (make-polar -0.00000001 -1234.0) 0.00000000798551+0.00000000601928i) (num-test (make-rectangular 0.00000001 1234000000.0) 0.00000001+1234000000.0i) (num-test (make-rectangular -0.00000001 1234000000.0) -0.00000001+1234000000.0i) (num-test (make-rectangular 0.00000001 -1234000000.0) 0.00000001-1234000000.0i) (num-test (make-rectangular -0.00000001 -1234000000.0) -0.00000001-1234000000.0i) (num-test (make-polar 0.00000001 1234000000.0) 0.00000000158909-0.00000000987293i) (num-test (make-polar -0.00000001 1234000000.0) -0.00000000158909+0.00000000987293i) (num-test (make-polar 0.00000001 -1234000000.0) 0.00000000158909+0.00000000987293i) (num-test (make-polar -0.00000001 -1234000000.0) -0.00000000158909-0.00000000987293i) (num-test (make-rectangular 1.0 0.00000001) 1.0+0.00000001i) (num-test (make-rectangular -1.0 0.00000001) -1.0+0.00000001i) (num-test (make-rectangular 1.0 -0.00000001) 1.0-0.00000001i) (num-test (make-rectangular -1.0 -0.00000001) -1.0-0.00000001i) (num-test (make-polar 1.0 0.00000001) 1.0+0.00000001i) (num-test (make-polar -1.0 0.00000001) -1.0-0.00000001i) (num-test (make-polar 1.0 -0.00000001) 1.0-0.00000001i) (num-test (make-polar -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 1.0) -1.0+1.0i) (num-test (make-rectangular 1.0 -1.0) 1.0-1.0i) (num-test (make-rectangular -1.0 -1.0) -1.0-1.0i) (num-test (make-polar 1.0 1.0) 0.54030230586814+0.84147098480790i) (num-test (make-polar -1.0 1.0) -0.54030230586814-0.84147098480790i) (num-test (make-polar 1.0 -1.0) 0.54030230586814-0.84147098480790i) (num-test (make-polar -1.0 -1.0) -0.54030230586814+0.84147098480790i) (num-test (make-rectangular 1.0 our-pi) 1.0+3.14159265358979i) (num-test (make-rectangular -1.0 our-pi) -1.0+3.14159265358979i) (num-test (make-rectangular 1.0 -3.14159265358979) 1.0-3.14159265358979i) (num-test (make-rectangular -1.0 -3.14159265358979) -1.0-3.14159265358979i) (num-test (make-polar 1.0 our-pi) -1.0+0.0i) (num-test (make-polar -1.0 our-pi) 1.0-0.0i) (num-test (make-polar 1.0 -3.14159265358979) -1.0-0.0i) (num-test (make-polar -1.0 -3.14159265358979) 1.0+0.0i) (num-test (make-rectangular 1.0 2.71828182845905) 1.0+2.71828182845905i) (num-test (make-rectangular -1.0 2.71828182845905) -1.0+2.71828182845905i) (num-test (make-rectangular 1.0 -2.71828182845905) 1.0-2.71828182845905i) (num-test (make-rectangular -1.0 -2.71828182845905) -1.0-2.71828182845905i) (num-test (make-polar 1.0 2.71828182845905) -0.91173391478697+0.41078129050291i) (num-test (make-polar -1.0 2.71828182845905) 0.91173391478697-0.41078129050291i) (num-test (make-polar 1.0 -2.71828182845905) -0.91173391478697-0.41078129050291i) (num-test (make-polar -1.0 -2.71828182845905) 0.91173391478697+0.41078129050291i) (num-test (make-rectangular 1.0 1234.0) 1.0+1234.0i) (num-test (make-rectangular -1.0 1234.0) -1.0+1234.0i) (num-test (make-rectangular 1.0 -1234.0) 1.0-1234.0i) (num-test (make-rectangular -1.0 -1234.0) -1.0-1234.0i) (num-test (make-polar 1.0 1234.0) -0.79855062358758+0.60192765476250i) (num-test (make-polar -1.0 1234.0) 0.79855062358758-0.60192765476250i) (num-test (make-polar 1.0 -1234.0) -0.79855062358758-0.60192765476250i) (num-test (make-polar -1.0 -1234.0) 0.79855062358758+0.60192765476250i) (num-test (make-rectangular 1.0 1234000000.0) 1.0+1234000000.0i) (num-test (make-rectangular -1.0 1234000000.0) -1.0+1234000000.0i) (num-test (make-rectangular 1.0 -1234000000.0) 1.0-1234000000.0i) (num-test (make-rectangular -1.0 -1234000000.0) -1.0-1234000000.0i) (num-test (make-polar 1.0 1234000000.0) 0.15890913095152-0.98729321283003i) (num-test (make-polar -1.0 1234000000.0) -0.15890913095152+0.98729321283003i) (num-test (make-polar 1.0 -1234000000.0) 0.15890913095152+0.98729321283003i) (num-test (make-polar -1.0 -1234000000.0) -0.15890913095152-0.98729321283003i) (num-test (make-rectangular 3.14159265358979 0.00000001) 3.14159265358979+0.00000001i) (num-test (make-rectangular -3.14159265358979 0.00000001) -3.14159265358979+0.00000001i) (num-test (make-rectangular 3.14159265358979 -0.00000001) 3.14159265358979-0.00000001i) (num-test (make-rectangular -3.14159265358979 -0.00000001) -3.14159265358979-0.00000001i) (num-test (make-polar 3.14159265358979 0.00000001) 3.14159265358979+0.00000003141593i) (num-test (make-polar -3.14159265358979 0.00000001) -3.14159265358979-0.00000003141593i) (num-test (make-polar 3.14159265358979 -0.00000001) 3.14159265358979-0.00000003141593i) (num-test (make-polar -3.14159265358979 -0.00000001) -3.14159265358979+0.00000003141593i) (num-test (make-rectangular 3.14159265358979 1.0) 3.14159265358979+1.0i) (num-test (make-rectangular -3.14159265358979 1.0) -3.14159265358979+1.0i) (num-test (make-rectangular 3.14159265358979 -1.0) 3.14159265358979-1.0i) (num-test (make-rectangular -3.14159265358979 -1.0) -3.14159265358979-1.0i) (num-test (make-polar 3.14159265358979 1.0) 1.69740975483297+2.64355906408146i) (num-test (make-polar -3.14159265358979 1.0) -1.69740975483297-2.64355906408146i) (num-test (make-polar 3.14159265358979 -1.0) 1.69740975483297-2.64355906408146i) (num-test (make-polar -3.14159265358979 -1.0) -1.69740975483297+2.64355906408146i) (num-test (make-rectangular 3.14159265358979 our-pi) 3.14159265358979+3.14159265358979i) (num-test (make-rectangular -3.14159265358979 our-pi) -3.14159265358979+3.14159265358979i) (num-test (make-rectangular 3.14159265358979 -3.14159265358979) 3.14159265358979-3.14159265358979i) (num-test (make-rectangular -3.14159265358979 -3.14159265358979) -3.14159265358979-3.14159265358979i) (num-test (make-polar 3.14159265358979 our-pi) -3.14159265358979+0.0i) (num-test (make-polar -3.14159265358979 our-pi) 3.14159265358979-0.0i) (num-test (make-polar 3.14159265358979 -3.14159265358979) -3.14159265358979-0.0i) (num-test (make-polar -3.14159265358979 -3.14159265358979) 3.14159265358979+0.0i) (num-test (make-rectangular 3.14159265358979 2.71828182845905) 3.14159265358979+2.71828182845905i) (num-test (make-rectangular -3.14159265358979 2.71828182845905) -3.14159265358979+2.71828182845905i) (num-test (make-rectangular 3.14159265358979 -2.71828182845905) 3.14159265358979-2.71828182845905i) (num-test (make-rectangular -3.14159265358979 -2.71828182845905) -3.14159265358979-2.71828182845905i) (num-test (make-polar 3.14159265358979 2.71828182845905) -2.86429656872339+1.29050748447607i) (num-test (make-polar -3.14159265358979 2.71828182845905) 2.86429656872339-1.29050748447607i) (num-test (make-polar 3.14159265358979 -2.71828182845905) -2.86429656872339-1.29050748447607i) (num-test (make-polar -3.14159265358979 -2.71828182845905) 2.86429656872339+1.29050748447607i) (num-test (make-rectangular 3.14159265358979 1234.0) 3.14159265358979+1234.0i) (num-test (make-rectangular -3.14159265358979 1234.0) -3.14159265358979+1234.0i) (num-test (make-rectangular 3.14159265358979 -1234.0) 3.14159265358979-1234.0i) (num-test (make-rectangular -3.14159265358979 -1234.0) -3.14159265358979-1234.0i) (num-test (make-polar 3.14159265358979 1234.0) -2.50872077258230+1.89101149819439i) (num-test (make-polar -3.14159265358979 1234.0) 2.50872077258230-1.89101149819439i) (num-test (make-polar 3.14159265358979 -1234.0) -2.50872077258230-1.89101149819439i) (num-test (make-polar -3.14159265358979 -1234.0) 2.50872077258230+1.89101149819439i) (num-test (make-rectangular 3.14159265358979 1234000000.0) 3.14159265358979+1234000000.0i) (num-test (make-rectangular -3.14159265358979 1234000000.0) -3.14159265358979+1234000000.0i) (num-test (make-rectangular 3.14159265358979 -1234000000.0) 3.14159265358979-1234000000.0i) (num-test (make-rectangular -3.14159265358979 -1234000000.0) -3.14159265358979-1234000000.0i) (num-test (make-polar 3.14159265358979 1234000000.0) 0.49922775838562-3.10167310436587i) (num-test (make-polar -3.14159265358979 1234000000.0) -0.49922775838562+3.10167310436587i) (num-test (make-polar 3.14159265358979 -1234000000.0) 0.49922775838562+3.10167310436587i) (num-test (make-polar -3.14159265358979 -1234000000.0) -0.49922775838562-3.10167310436587i) (num-test (make-rectangular 2.71828182845905 0.00000001) 2.71828182845905+0.00000001i) (num-test (make-rectangular -2.71828182845905 0.00000001) -2.71828182845905+0.00000001i) (num-test (make-rectangular 2.71828182845905 -0.00000001) 2.71828182845905-0.00000001i) (num-test (make-rectangular -2.71828182845905 -0.00000001) -2.71828182845905-0.00000001i) (num-test (make-polar 2.71828182845905 0.00000001) 2.71828182845905+0.00000002718282i) (num-test (make-polar -2.71828182845905 0.00000001) -2.71828182845905-0.00000002718282i) (num-test (make-polar 2.71828182845905 -0.00000001) 2.71828182845905-0.00000002718282i) (num-test (make-polar -2.71828182845905 -0.00000001) -2.71828182845905+0.00000002718282i) (num-test (make-rectangular 2.71828182845905 1.0) 2.71828182845905+1.0i) (num-test (make-rectangular -2.71828182845905 1.0) -2.71828182845905+1.0i) (num-test (make-rectangular 2.71828182845905 -1.0) 2.71828182845905-1.0i) (num-test (make-rectangular -2.71828182845905 -1.0) -2.71828182845905-1.0i) (num-test (make-polar 2.71828182845905 1.0) 1.46869393991589+2.28735528717884i) (num-test (make-polar -2.71828182845905 1.0) -1.46869393991589-2.28735528717884i) (num-test (make-polar 2.71828182845905 -1.0) 1.46869393991589-2.28735528717884i) (num-test (make-polar -2.71828182845905 -1.0) -1.46869393991589+2.28735528717884i) (num-test (make-rectangular 2.71828182845905 our-pi) 2.71828182845905+3.14159265358979i) (num-test (make-rectangular -2.71828182845905 our-pi) -2.71828182845905+3.14159265358979i) (num-test (make-rectangular 2.71828182845905 -3.14159265358979) 2.71828182845905-3.14159265358979i) (num-test (make-rectangular -2.71828182845905 -3.14159265358979) -2.71828182845905-3.14159265358979i) (num-test (make-polar 2.71828182845905 our-pi) -2.71828182845905+0.0i) (num-test (make-polar -2.71828182845905 our-pi) 2.71828182845905-0.0i) (num-test (make-polar 2.71828182845905 -3.14159265358979) -2.71828182845905-0.0i) (num-test (make-polar -2.71828182845905 -3.14159265358979) 2.71828182845905+0.0i) (num-test (make-rectangular 2.71828182845905 2.71828182845905) 2.71828182845905+2.71828182845905i) (num-test (make-rectangular -2.71828182845905 2.71828182845905) -2.71828182845905+2.71828182845905i) (num-test (make-rectangular 2.71828182845905 -2.71828182845905) 2.71828182845905-2.71828182845905i) (num-test (make-rectangular -2.71828182845905 -2.71828182845905) -2.71828182845905-2.71828182845905i) (num-test (make-polar 2.71828182845905 2.71828182845905) -2.47834973295523+1.11661931744501i) (num-test (make-polar -2.71828182845905 2.71828182845905) 2.47834973295523-1.11661931744501i) (num-test (make-polar 2.71828182845905 -2.71828182845905) -2.47834973295523-1.11661931744501i) (num-test (make-polar -2.71828182845905 -2.71828182845905) 2.47834973295523+1.11661931744501i) (num-test (make-rectangular 2.71828182845905 1234.0) 2.71828182845905+1234.0i) (num-test (make-rectangular -2.71828182845905 1234.0) -2.71828182845905+1234.0i) (num-test (make-rectangular 2.71828182845905 -1234.0) 2.71828182845905-1234.0i) (num-test (make-rectangular -2.71828182845905 -1234.0) -2.71828182845905-1234.0i) (num-test (make-polar 2.71828182845905 1234.0) -2.17068564920277+1.63620900598787i) (num-test (make-polar -2.71828182845905 1234.0) 2.17068564920277-1.63620900598787i) (num-test (make-polar 2.71828182845905 -1234.0) -2.17068564920277-1.63620900598787i) (num-test (make-polar -2.71828182845905 -1234.0) 2.17068564920277+1.63620900598787i) (num-test (make-rectangular 2.71828182845905 1234000000.0) 2.71828182845905+1234000000.0i) (num-test (make-rectangular -2.71828182845905 1234000000.0) -2.71828182845905+1234000000.0i) (num-test (make-rectangular 2.71828182845905 -1234000000.0) 2.71828182845905-1234000000.0i) (num-test (make-rectangular -2.71828182845905 -1234000000.0) -2.71828182845905-1234000000.0i) (num-test (make-polar 2.71828182845905 1234000000.0) 0.43195980304173-2.68374119979681i) (num-test (make-polar -2.71828182845905 1234000000.0) -0.43195980304173+2.68374119979681i) (num-test (make-polar 2.71828182845905 -1234000000.0) 0.43195980304173+2.68374119979681i) (num-test (make-polar -2.71828182845905 -1234000000.0) -0.43195980304173-2.68374119979681i) (num-test (make-rectangular 1234.0 0.00000001) 1234.0+0.00000001i) (num-test (make-rectangular -1234.0 0.00000001) -1234.0+0.00000001i) (num-test (make-rectangular 1234.0 -0.00000001) 1234.0-0.00000001i) (num-test (make-rectangular -1234.0 -0.00000001) -1234.0-0.00000001i) (num-test (make-polar 1234.0 0.00000001) 1234.0+0.00001234000000i) (num-test (make-polar -1234.0 0.00000001) -1234.0-0.00001234000000i) (num-test (make-polar 1234.0 -0.00000001) 1234.0-0.00001234000000i) (num-test (make-polar -1234.0 -0.00000001) -1234.0+0.00001234000000i) (num-test (make-rectangular 1234.0 1.0) 1234.0+1.0i) (num-test (make-rectangular -1234.0 1.0) -1234.0+1.0i) (num-test (make-rectangular 1234.0 -1.0) 1234.0-1.0i) (num-test (make-rectangular -1234.0 -1.0) -1234.0-1.0i) (num-test (make-polar 1234.0 1.0) 666.73304544128450+1038.37519525294420i) (num-test (make-polar -1234.0 1.0) -666.73304544128450-1038.37519525294420i) (num-test (make-polar 1234.0 -1.0) 666.73304544128450-1038.37519525294420i) (num-test (make-polar -1234.0 -1.0) -666.73304544128450+1038.37519525294420i) (num-test (make-rectangular 1234.0 our-pi) 1234.0+3.14159265358979i) (num-test (make-rectangular -1234.0 our-pi) -1234.0+3.14159265358979i) (num-test (make-rectangular 1234.0 -3.14159265358979) 1234.0-3.14159265358979i) (num-test (make-rectangular -1234.0 -3.14159265358979) -1234.0-3.14159265358979i) (num-test (make-polar 1234.0 our-pi) -1234.0+0.00000000000015i) (num-test (make-polar -1234.0 our-pi) 1234.0-0.00000000000015i) (num-test (make-polar 1234.0 -3.14159265358979) -1234.0-0.00000000000015i) (num-test (make-polar -1234.0 -3.14159265358979) 1234.0+0.00000000000015i) (num-test (make-rectangular 1234.0 2.71828182845905) 1234.0+2.71828182845905i) (num-test (make-rectangular -1234.0 2.71828182845905) -1234.0+2.71828182845905i) (num-test (make-rectangular 1234.0 -2.71828182845905) 1234.0-2.71828182845905i) (num-test (make-rectangular -1234.0 -2.71828182845905) -1234.0-2.71828182845905i) (num-test (make-polar 1234.0 2.71828182845905) -1125.07965084711486+506.90411248058950i) (num-test (make-polar -1234.0 2.71828182845905) 1125.07965084711486-506.90411248058950i) (num-test (make-polar 1234.0 -2.71828182845905) -1125.07965084711486-506.90411248058950i) (num-test (make-polar -1234.0 -2.71828182845905) 1125.07965084711486+506.90411248058950i) (num-test (make-rectangular 1234.0 1234.0) 1234.0+1234.0i) (num-test (make-rectangular -1234.0 1234.0) -1234.0+1234.0i) (num-test (make-rectangular 1234.0 -1234.0) 1234.0-1234.0i) (num-test (make-rectangular -1234.0 -1234.0) -1234.0-1234.0i) (num-test (make-polar 1234.0 1234.0) -985.41146950707912+742.77872597692169i) (num-test (make-polar -1234.0 1234.0) 985.41146950707912-742.77872597692169i) (num-test (make-polar 1234.0 -1234.0) -985.41146950707912-742.77872597692169i) (num-test (make-polar -1234.0 -1234.0) 985.41146950707912+742.77872597692169i) (num-test (make-rectangular 1234.0 1234000000.0) 1234.0+1234000000.0i) (num-test (make-rectangular -1234.0 1234000000.0) -1234.0+1234000000.0i) (num-test (make-rectangular 1234.0 -1234000000.0) 1234.0-1234000000.0i) (num-test (make-rectangular -1234.0 -1234000000.0) -1234.0-1234000000.0i) (num-test (make-polar 1234.0 1234000000.0) 196.09386759417183-1218.31982463225131i) (num-test (make-polar -1234.0 1234000000.0) -196.09386759417183+1218.31982463225131i) (num-test (make-polar 1234.0 -1234000000.0) 196.09386759417183+1218.31982463225131i) (num-test (make-polar -1234.0 -1234000000.0) -196.09386759417183-1218.31982463225131i) (num-test (make-rectangular 1234000000.0 0.00000001) 1234000000.0+0.00000001i) (num-test (make-rectangular -1234000000.0 0.00000001) -1234000000.0+0.00000001i) (num-test (make-rectangular 1234000000.0 -0.00000001) 1234000000.0-0.00000001i) (num-test (make-rectangular -1234000000.0 -0.00000001) -1234000000.0-0.00000001i) (num-test (make-polar 1234000000.0 0.00000001) 1234000000.0+12.34000000000000i) (num-test (make-polar -1234000000.0 0.00000001) -1234000000.0-12.34000000000000i) (num-test (make-polar 1234000000.0 -0.00000001) 1234000000.0-12.34000000000000i) (num-test (make-polar -1234000000.0 -0.00000001) -1234000000.0+12.34000000000000i) (num-test (make-rectangular 1234000000.0 1.0) 1234000000.0+1.0i) (num-test (make-rectangular -1234000000.0 1.0) -1234000000.0+1.0i) (num-test (make-rectangular 1234000000.0 -1.0) 1234000000.0-1.0i) (num-test (make-rectangular -1234000000.0 -1.0) -1234000000.0-1.0i) (num-test (make-polar 1234000000.0 1.0) 666733045.44128441810608+1038375195.25294423103333i) (num-test (make-polar -1234000000.0 1.0) -666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar 1234000000.0 -1.0) 666733045.44128441810608-1038375195.25294423103333i) (num-test (make-polar -1234000000.0 -1.0) -666733045.44128441810608+1038375195.25294423103333i) (num-test (make-rectangular 1234000000.0 our-pi) 1234000000.0+3.14159265358979i) (num-test (make-rectangular -1234000000.0 our-pi) -1234000000.0+3.14159265358979i) (num-test (make-rectangular 1234000000.0 -3.14159265358979) 1234000000.0-3.14159265358979i) (num-test (make-rectangular -1234000000.0 -3.14159265358979) -1234000000.0-3.14159265358979i) (num-test (make-polar 1234000000.0 our-pi) -1234000000.0+0.00000015111642i) (num-test (make-polar -1234000000.0 our-pi) 1234000000.0-0.00000015111642i) (num-test (make-polar 1234000000.0 -3.14159265358979) -1234000000.0-0.00000015111642i) (num-test (make-polar -1234000000.0 -3.14159265358979) 1234000000.0+0.00000015111642i) (num-test (make-rectangular 1234000000.0 2.71828182845905) 1234000000.0+2.71828182845905i) (num-test (make-rectangular -1234000000.0 2.71828182845905) -1234000000.0+2.71828182845905i) (num-test (make-rectangular 1234000000.0 -2.71828182845905) 1234000000.0-2.71828182845905i) (num-test (make-rectangular -1234000000.0 -2.71828182845905) -1234000000.0-2.71828182845905i) (num-test (make-polar 1234000000.0 2.71828182845905) -1125079650.84711480140686+506904112.48058950901031i) (num-test (make-polar -1234000000.0 2.71828182845905) 1125079650.84711480140686-506904112.48058950901031i) (num-test (make-polar 1234000000.0 -2.71828182845905) -1125079650.84711480140686-506904112.48058950901031i) (num-test (make-polar -1234000000.0 -2.71828182845905) 1125079650.84711480140686+506904112.48058950901031i) (num-test (make-rectangular 1234000000.0 1234.0) 1234000000.0+1234.0i) (num-test (make-rectangular -1234000000.0 1234.0) -1234000000.0+1234.0i) (num-test (make-rectangular 1234000000.0 -1234.0) 1234000000.0-1234.0i) (num-test (make-rectangular -1234000000.0 -1234.0) -1234000000.0-1234.0i) (num-test (make-polar 1234000000.0 1234.0) -985411469.50707900524139+742778725.97692167758942i) (num-test (make-polar -1234000000.0 1234.0) 985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar 1234000000.0 -1234.0) -985411469.50707900524139-742778725.97692167758942i) (num-test (make-polar -1234000000.0 -1234.0) 985411469.50707900524139+742778725.97692167758942i) (num-test (make-rectangular 1234000000.0 1234000000.0) 1234000000.0+1234000000.0i) (num-test (make-rectangular -1234000000.0 1234000000.0) -1234000000.0+1234000000.0i) (num-test (make-rectangular 1234000000.0 -1234000000.0) 1234000000.0-1234000000.0i) (num-test (make-rectangular -1234000000.0 -1234000000.0) -1234000000.0-1234000000.0i) (num-test (make-polar 1234000000.0 1234000000.0) 196093867.59417182207108-1218319824.63225126266479i) (num-test (make-polar -1234000000.0 1234000000.0) -196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar 1234000000.0 -1234000000.0) 196093867.59417182207108+1218319824.63225126266479i) (num-test (make-polar -1234000000.0 -1234000000.0) -196093867.59417182207108-1218319824.63225126266479i) (num-test (make-polar 0 0) 0) (num-test (make-polar 0.0 0.0) 0.0) (num-test (make-rectangular 0 0) 0) (num-test (make-rectangular 0.0 0.0) 0.0) ;; -------- angle (num-test (angle 1) 0) (num-test (angle -1) our-pi) (num-test (angle 1/1) 0) (num-test (angle -1/1) our-pi) (num-test (angle 1/2) 0) (num-test (angle -1/2) our-pi) (num-test (angle 1/3) 0) (num-test (angle -1/3) our-pi) (num-test (angle 1/10) 0) (num-test (angle -1/10) our-pi) (num-test (angle 1/1234) 0) (num-test (angle -1/1234) our-pi) (num-test (angle 1/1234000000) 0) (num-test (angle -1/1234000000) our-pi) (num-test (angle 1/500029) 0) (num-test (angle -1/500029) our-pi) (num-test (angle 1/362880) 0) (num-test (angle -1/362880) our-pi) (num-test (angle 2) 0) (num-test (angle -2) our-pi) (num-test (angle 2/1) 0) (num-test (angle -2/1) our-pi) (num-test (angle 2/2) 0) (num-test (angle -2/2) our-pi) (num-test (angle 2/3) 0) (num-test (angle -2/3) our-pi) (num-test (angle 2/10) 0) (num-test (angle -2/10) our-pi) (num-test (angle 2/1234) 0) (num-test (angle -2/1234) our-pi) (num-test (angle 2/1234000000) 0) (num-test (angle -2/1234000000) our-pi) (num-test (angle 2/500029) 0) (num-test (angle -2/500029) our-pi) (num-test (angle 2/362880) 0) (num-test (angle -2/362880) our-pi) (num-test (angle 3) 0) (num-test (angle -3) our-pi) (num-test (angle 3/1) 0) (num-test (angle -3/1) our-pi) (num-test (angle 3/2) 0) (num-test (angle -3/2) our-pi) (num-test (angle 3/3) 0) (num-test (angle -3/3) our-pi) (num-test (angle 3/10) 0) (num-test (angle -3/10) our-pi) (num-test (angle 3/1234) 0) (num-test (angle -3/1234) our-pi) (num-test (angle 3/1234000000) 0) (num-test (angle -3/1234000000) our-pi) (num-test (angle 3/500029) 0) (num-test (angle -3/500029) our-pi) (num-test (angle 3/362880) 0) (num-test (angle -3/362880) our-pi) (num-test (angle 10) 0) (num-test (angle -10) our-pi) (num-test (angle 10/1) 0) (num-test (angle -10/1) our-pi) (num-test (angle 10/2) 0) (num-test (angle -10/2) our-pi) (num-test (angle 10/3) 0) (num-test (angle -10/3) our-pi) (num-test (angle 10/10) 0) (num-test (angle -10/10) our-pi) (num-test (angle 10/1234) 0) (num-test (angle -10/1234) our-pi) (num-test (angle 10/1234000000) 0) (num-test (angle -10/1234000000) our-pi) (num-test (angle 10/500029) 0) (num-test (angle -10/500029) our-pi) (num-test (angle 10/362880) 0) (num-test (angle -10/362880) our-pi) (num-test (angle 1234) 0) (num-test (angle -1234) our-pi) (num-test (angle 1234/1) 0) (num-test (angle -1234/1) our-pi) (num-test (angle 1234/2) 0) (num-test (angle -1234/2) our-pi) (num-test (angle 1234/3) 0) (num-test (angle -1234/3) our-pi) (num-test (angle 1234/10) 0) (num-test (angle -1234/10) our-pi) (num-test (angle 1234/1234) 0) (num-test (angle -1234/1234) our-pi) (num-test (angle 1234/1234000000) 0) (num-test (angle -1234/1234000000) our-pi) (num-test (angle 1234/500029) 0) (num-test (angle -1234/500029) our-pi) (num-test (angle 1234/362880) 0) (num-test (angle -1234/362880) our-pi) (num-test (angle 1234000000) 0) (num-test (angle -1234000000) our-pi) (num-test (angle 1234000000/1) 0) (num-test (angle -1234000000/1) our-pi) (num-test (angle 1234000000/2) 0) (num-test (angle -1234000000/2) our-pi) (num-test (angle 1234000000/3) 0) (num-test (angle -1234000000/3) our-pi) (num-test (angle 1234000000/10) 0) (num-test (angle -1234000000/10) our-pi) (num-test (angle 1234000000/1234) 0) (num-test (angle -1234000000/1234) our-pi) (num-test (angle 1234000000/1234000000) 0) (num-test (angle -1234000000/1234000000) our-pi) (num-test (angle 1234000000/500029) 0) (num-test (angle -1234000000/500029) our-pi) (num-test (angle 1234000000/362880) 0) (num-test (angle -1234000000/362880) our-pi) (num-test (angle 500029) 0) (num-test (angle -500029) our-pi) (num-test (angle 500029/1) 0) (num-test (angle -500029/1) our-pi) (num-test (angle 500029/2) 0) (num-test (angle -500029/2) our-pi) (num-test (angle 500029/3) 0) (num-test (angle -500029/3) our-pi) (num-test (angle 500029/10) 0) (num-test (angle -500029/10) our-pi) (num-test (angle 500029/1234) 0) (num-test (angle -500029/1234) our-pi) (num-test (angle 500029/1234000000) 0) (num-test (angle -500029/1234000000) our-pi) (num-test (angle 500029/500029) 0) (num-test (angle -500029/500029) our-pi) (num-test (angle 500029/362880) 0) (num-test (angle -500029/362880) our-pi) (num-test (angle 362880) 0) (num-test (angle -362880) our-pi) (num-test (angle 362880/1) 0) (num-test (angle -362880/1) our-pi) (num-test (angle 362880/2) 0) (num-test (angle -362880/2) our-pi) (num-test (angle 362880/3) 0) (num-test (angle -362880/3) our-pi) (num-test (angle 362880/10) 0) (num-test (angle -362880/10) our-pi) (num-test (angle 362880/1234) 0) (num-test (angle -362880/1234) our-pi) (num-test (angle 362880/1234000000) 0) (num-test (angle -362880/1234000000) our-pi) (num-test (angle 362880/500029) 0) (num-test (angle -362880/500029) our-pi) (num-test (angle 362880/362880) 0) (num-test (angle -362880/362880) our-pi) (num-test (angle 0.0+0.00000001i) 1.57079632679490) (num-test (angle -0.0+0.00000001i) 1.57079632679490) (num-test (angle 0.0-0.00000001i) -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+1.0i) 1.57079632679490) (num-test (angle 0.0-1.0i) -1.57079632679490) (num-test (angle -0.0-1.0i) -1.57079632679490) (num-test (angle 0.0+3.14159265358979i) 1.57079632679490) (num-test (angle -0.0+3.14159265358979i) 1.57079632679490) (num-test (angle 0.0-3.14159265358979i) -1.57079632679490) (num-test (angle -0.0-3.14159265358979i) -1.57079632679490) (num-test (angle 0.0+2.71828182845905i) 1.57079632679490) (num-test (angle -0.0+2.71828182845905i) 1.57079632679490) (num-test (angle 0.0-2.71828182845905i) -1.57079632679490) (num-test (angle -0.0-2.71828182845905i) -1.57079632679490) (num-test (angle 0.0+1234.0i) 1.57079632679490) (num-test (angle -0.0+1234.0i) 1.57079632679490) (num-test (angle 0.0-1234.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+1234000000.0i) 1.57079632679490) (num-test (angle 0.0-1234000000.0i) -1.57079632679490) (num-test (angle -0.0-1234000000.0i) -1.57079632679490) (num-test (angle 0.00000001) 0.0) (num-test (angle -0.00000001) our-pi) (num-test (angle 0.00000001+0.00000001i) 0.78539816339745) (num-test (angle -0.00000001+0.00000001i) 2.35619449019234) (num-test (angle 0.00000001-0.00000001i) -0.78539816339745) (num-test (angle -0.00000001-0.00000001i) -2.35619449019234) (num-test (angle 0.00000001+1.0i) 1.57079631679490) (num-test (angle -0.00000001+1.0i) 1.57079633679490) (num-test (angle 0.00000001-1.0i) -1.57079631679490) (num-test (angle -0.00000001-1.0i) -1.57079633679490) (num-test (angle 0.00000001+3.14159265358979i) 1.57079632361180) (num-test (angle -0.00000001+3.14159265358979i) 1.57079632997800) (num-test (angle 0.00000001-3.14159265358979i) -1.57079632361180) (num-test (angle -0.00000001-3.14159265358979i) -1.57079632997800) (num-test (angle 0.00000001+2.71828182845905i) 1.57079632311610) (num-test (angle -0.00000001+2.71828182845905i) 1.57079633047369) (num-test (angle 0.00000001-2.71828182845905i) -1.57079632311610) (num-test (angle -0.00000001-2.71828182845905i) -1.57079633047369) (num-test (angle 0.00000001+1234.0i) 1.57079632678679) (num-test (angle -0.00000001+1234.0i) 1.57079632680300) (num-test (angle 0.00000001-1234.0i) -1.57079632678679) (num-test (angle -0.00000001-1234.0i) -1.57079632680300) (num-test (angle 0.00000001+1234000000.0i) 1.57079632679490) (num-test (angle -0.00000001+1234000000.0i) 1.57079632679490) (num-test (angle 0.00000001-1234000000.0i) -1.57079632679490) (num-test (angle -0.00000001-1234000000.0i) -1.57079632679490) (num-test (angle 1.0) 0.0) (num-test (angle -1.0) our-pi) (num-test (angle 1.0+0.00000001i) 0.00000001) (num-test (angle -1.0+0.00000001i) 3.14159264358979) (num-test (angle 1.0-0.00000001i) -0.00000001) (num-test (angle -1.0-0.00000001i) -3.14159264358979) (num-test (angle 1.0+1.0i) 0.78539816339745) (num-test (angle -1.0+1.0i) 2.35619449019234) (num-test (angle 1.0-1.0i) -0.78539816339745) (num-test (angle -1.0-1.0i) -2.35619449019234) (num-test (angle 1.0+3.14159265358979i) 1.26262725567891) (num-test (angle -1.0+3.14159265358979i) 1.87896539791088) (num-test (angle 1.0-3.14159265358979i) -1.26262725567891) (num-test (angle -1.0-3.14159265358979i) -1.87896539791088) (num-test (angle 1.0+2.71828182845905i) 1.21828290501728) (num-test (angle -1.0+2.71828182845905i) 1.92330974857252) (num-test (angle 1.0-2.71828182845905i) -1.21828290501728) (num-test (angle -1.0-2.71828182845905i) -1.92330974857252) (num-test (angle 1.0+1234.0i) 1.56998595420081) (num-test (angle -1.0+1234.0i) 1.57160669938898) (num-test (angle 1.0-1234.0i) -1.56998595420081) (num-test (angle -1.0-1234.0i) -1.57160669938898) (num-test (angle 1.0+1234000000.0i) 1.57079632598452) (num-test (angle -1.0+1234000000.0i) 1.57079632760527) (num-test (angle 1.0-1234000000.0i) -1.57079632598452) (num-test (angle -1.0-1234000000.0i) -1.57079632760527) (num-test (angle our-pi) 0.0) (num-test (angle -3.14159265358979) our-pi) (num-test (angle 3.14159265358979+0.00000001i) 0.00000000318310) (num-test (angle -3.14159265358979+0.00000001i) 3.14159265040669) (num-test (angle 3.14159265358979-0.00000001i) -0.00000000318310) (num-test (angle -3.14159265358979-0.00000001i) -3.14159265040669) (num-test (angle 3.14159265358979+1.0i) 0.30816907111598) (num-test (angle -3.14159265358979+1.0i) 2.83342358247381) (num-test (angle 3.14159265358979-1.0i) -0.30816907111598) (num-test (angle -3.14159265358979-1.0i) -2.83342358247381) (num-test (angle 3.14159265358979+3.14159265358979i) 0.78539816339745) (num-test (angle -3.14159265358979+3.14159265358979i) 2.35619449019234) (num-test (angle 3.14159265358979-3.14159265358979i) -0.78539816339745) (num-test (angle -3.14159265358979-3.14159265358979i) -2.35619449019234) (num-test (angle 3.14159265358979+2.71828182845905i) 0.71328454043905) (num-test (angle -3.14159265358979+2.71828182845905i) 2.42830811315074) (num-test (angle 3.14159265358979-2.71828182845905i) -0.71328454043905) (num-test (angle -3.14159265358979-2.71828182845905i) -2.42830811315074) (num-test (angle 3.14159265358979+1234.0i) 1.56825047114960) (num-test (angle -3.14159265358979+1234.0i) 1.57334218244020) (num-test (angle 3.14159265358979-1234.0i) -1.56825047114960) (num-test (angle -3.14159265358979-1234.0i) -1.57334218244020) (num-test (angle 3.14159265358979+1234000000.0i) 1.57079632424904) (num-test (angle -3.14159265358979+1234000000.0i) 1.57079632934076) (num-test (angle 3.14159265358979-1234000000.0i) -1.57079632424904) (num-test (angle -3.14159265358979-1234000000.0i) -1.57079632934076) (num-test (angle 2.71828182845905) 0.0) (num-test (angle -2.71828182845905) our-pi) (num-test (angle 2.71828182845905+0.00000001i) 0.00000000367879) (num-test (angle -2.71828182845905+0.00000001i) 3.14159264991100) (num-test (angle 2.71828182845905-0.00000001i) -0.00000000367879) (num-test (angle -2.71828182845905-0.00000001i) -3.14159264991100) (num-test (angle 2.71828182845905+1.0i) 0.35251342177762) (num-test (angle -2.71828182845905+1.0i) 2.78907923181217) (num-test (angle 2.71828182845905-1.0i) -0.35251342177762) (num-test (angle -2.71828182845905-1.0i) -2.78907923181217) (num-test (angle 2.71828182845905+3.14159265358979i) 0.85751178635585) (num-test (angle -2.71828182845905+3.14159265358979i) 2.28408086723395) (num-test (angle 2.71828182845905-3.14159265358979i) -0.85751178635585) (num-test (angle -2.71828182845905-3.14159265358979i) -2.28408086723395) (num-test (angle 2.71828182845905+2.71828182845905i) 0.78539816339745) (num-test (angle -2.71828182845905+2.71828182845905i) 2.35619449019234) (num-test (angle 2.71828182845905-2.71828182845905i) -0.78539816339745) (num-test (angle -2.71828182845905-2.71828182845905i) -2.35619449019234) (num-test (angle 2.71828182845905+1234.0i) 1.56859350877892) (num-test (angle -2.71828182845905+1234.0i) 1.57299914481088) (num-test (angle 2.71828182845905-1234.0i) -1.56859350877892) (num-test (angle -2.71828182845905-1234.0i) -1.57299914481088) (num-test (angle 2.71828182845905+1234000000.0i) 1.57079632459208) (num-test (angle -2.71828182845905+1234000000.0i) 1.57079632899772) (num-test (angle 2.71828182845905-1234000000.0i) -1.57079632459208) (num-test (angle -2.71828182845905-1234000000.0i) -1.57079632899772) (num-test (angle 1234.0) 0.0) (num-test (angle -1234.0) our-pi) (num-test (angle 1234.0+0.00000001i) 0.00000000000810) (num-test (angle -1234.0+0.00000001i) 3.14159265358169) (num-test (angle 1234.0-0.00000001i) -0.00000000000810) (num-test (angle -1234.0-0.00000001i) -3.14159265358169) (num-test (angle 1234.0+1.0i) 0.00081037259408) (num-test (angle -1234.0+1.0i) 3.14078228099571) (num-test (angle 1234.0-1.0i) -0.00081037259408) (num-test (angle -1234.0-1.0i) -3.14078228099571) (num-test (angle 1234.0+3.14159265358979i) 0.00254585564530) (num-test (angle -1234.0+3.14159265358979i) 3.13904679794449) (num-test (angle 1234.0-3.14159265358979i) -0.00254585564530) (num-test (angle -1234.0-3.14159265358979i) -3.13904679794449) (num-test (angle 1234.0+2.71828182845905i) 0.00220281801598) (num-test (angle -1234.0+2.71828182845905i) 3.13938983557381) (num-test (angle 1234.0-2.71828182845905i) -0.00220281801598) (num-test (angle -1234.0-2.71828182845905i) -3.13938983557381) (num-test (angle 1234.0+1234.0i) 0.78539816339745) (num-test (angle -1234.0+1234.0i) 2.35619449019234) (num-test (angle 1234.0-1234.0i) -0.78539816339745) (num-test (angle -1234.0-1234.0i) -2.35619449019234) (num-test (angle 1234.0+1234000000.0i) 1.57079532679490) (num-test (angle -1234.0+1234000000.0i) 1.57079732679490) (num-test (angle 1234.0-1234000000.0i) -1.57079532679490) (num-test (angle -1234.0-1234000000.0i) -1.57079732679490) (num-test (angle 1234000000.0) 0.0) (num-test (angle -1234000000.0) our-pi) (num-test (angle 1234000000.0+0.00000001i) 0.0) (num-test (angle -1234000000.0+0.00000001i) our-pi) (num-test (angle 1234000000.0-0.00000001i) -0.0) (num-test (angle -1234000000.0-0.00000001i) -3.14159265358979) (num-test (angle 1234000000.0+1.0i) 0.00000000081037) (num-test (angle -1234000000.0+1.0i) 3.14159265277942) (num-test (angle 1234000000.0-1.0i) -0.00000000081037) (num-test (angle -1234000000.0-1.0i) -3.14159265277942) (num-test (angle 1234000000.0+3.14159265358979i) 0.00000000254586) (num-test (angle -1234000000.0+3.14159265358979i) 3.14159265104393) (num-test (angle 1234000000.0-3.14159265358979i) -0.00000000254586) (num-test (angle -1234000000.0-3.14159265358979i) -3.14159265104393) (num-test (angle 1234000000.0+2.71828182845905i) 0.00000000220282) (num-test (angle -1234000000.0+2.71828182845905i) 3.14159265138697) (num-test (angle 1234000000.0-2.71828182845905i) -0.00000000220282) (num-test (angle -1234000000.0-2.71828182845905i) -3.14159265138697) (num-test (angle 1234000000.0+1234.0i) 0.00000100000000) (num-test (angle -1234000000.0+1234.0i) 3.14159165358979) (num-test (angle 1234000000.0-1234.0i) -0.00000100000000) (num-test (angle -1234000000.0-1234.0i) -3.14159165358979) (num-test (angle 1234000000.0+1234000000.0i) 0.78539816339745) (num-test (angle -1234000000.0+1234000000.0i) 2.35619449019234) (num-test (angle 1234000000.0-1234000000.0i) -0.78539816339745) (num-test (angle -1234000000.0-1234000000.0i) -2.35619449019234) (num-test (angle 0.0e+00+0.0e+00i) 0e0+0.0i) (num-test (angle 0.0e+00+1.19209289550781250e-07i) 1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00-1.19209289550781250e-07i) -1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00+5.0e-01i) 1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00-5.0e-01i) -1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00+1.0e+00i) 1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00-1.0e+00i) -1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00+2.0e+00i) 1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00-2.0e+00i) -1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00+8.3886080e+06i) 1.5707963267948966192e0+0.0i) (num-test (angle 0.0e+00-8.3886080e+06i) -1.5707963267948966192e0+0.0i) (num-test (angle 1.19209289550781250e-07+0.0e+00i) 0e0+0.0i) (num-test (angle -1.19209289550781250e-07+0.0e+00i) 3.1415926535897932385e0+0.0i) (num-test (angle 1.19209289550781250e-07+1.19209289550781250e-07i) 7.8539816339744830962e-1+0.0i) (num-test (angle 1.19209289550781250e-07-1.19209289550781250e-07i) -7.8539816339744830962e-1+0.0i) (num-test (angle -1.19209289550781250e-07+1.19209289550781250e-07i) 2.3561944901923449288e0+0.0i) (num-test (angle -1.19209289550781250e-07-1.19209289550781250e-07i) -2.3561944901923449288e0+0.0i) (num-test (angle 1.19209289550781250e-07+5.0e-01i) 1.5707960883763175177e0+0.0i) (num-test (angle 1.19209289550781250e-07-5.0e-01i) -1.5707960883763175177e0+0.0i) (num-test (angle -1.19209289550781250e-07+5.0e-01i) 1.5707965652134757208e0+0.0i) (num-test (angle -1.19209289550781250e-07-5.0e-01i) -1.5707965652134757208e0+0.0i) (num-test (angle 1.19209289550781250e-07+1.0e+00i) 1.5707962075856070685e0+0.0i) (num-test (angle 1.19209289550781250e-07-1.0e+00i) -1.5707962075856070685e0+0.0i) (num-test (angle -1.19209289550781250e-07+1.0e+00i) 1.570796446004186170e0+0.0i) (num-test (angle -1.19209289550781250e-07-1.0e+00i) -1.570796446004186170e0+0.0i) (num-test (angle 1.19209289550781250e-07+2.0e+00i) 1.5707962671902518438e0+0.0i) (num-test (angle 1.19209289550781250e-07-2.0e+00i) -1.5707962671902518438e0+0.0i) (num-test (angle -1.19209289550781250e-07+2.0e+00i) 1.5707963863995413946e0+0.0i) (num-test (angle -1.19209289550781250e-07-2.0e+00i) -1.5707963863995413946e0+0.0i) (num-test (angle 1.19209289550781250e-07+8.3886080e+06i) 1.5707963267948824084e0+0.0i) (num-test (angle 1.19209289550781250e-07-8.3886080e+06i) -1.5707963267948824084e0+0.0i) (num-test (angle -1.19209289550781250e-07+8.3886080e+06i) 1.5707963267949108301e0+0.0i) (num-test (angle -1.19209289550781250e-07-8.3886080e+06i) -1.5707963267949108301e0+0.0i) (num-test (angle 5.0e-01+0.0e+00i) 0e0+0.0i) (num-test (angle -5.0e-01+0.0e+00i) 3.1415926535897932385e0+0.0i) (num-test (angle 5.0e-01+1.19209289550781250e-07i) 2.3841857910155798249e-7+0.0i) (num-test (angle 5.0e-01-1.19209289550781250e-07i) -2.3841857910155798249e-7+0.0i) (num-test (angle -5.0e-01+1.19209289550781250e-07i) 3.1415924151712141369e0+0.0i) (num-test (angle -5.0e-01-1.19209289550781250e-07i) -3.1415924151712141369e0+0.0i) (num-test (angle 5.0e-01+5.0e-01i) 7.8539816339744830962e-1+0.0i) (num-test (angle 5.0e-01-5.0e-01i) -7.8539816339744830962e-1+0.0i) (num-test (angle -5.0e-01+5.0e-01i) 2.3561944901923449288e0+0.0i) (num-test (angle -5.0e-01-5.0e-01i) -2.3561944901923449288e0+0.0i) (num-test (angle 5.0e-01+1.0e+00i) 1.1071487177940905030e0+0.0i) (num-test (angle 5.0e-01-1.0e+00i) -1.1071487177940905030e0+0.0i) (num-test (angle -5.0e-01+1.0e+00i) 2.0344439357957027354e0+0.0i) (num-test (angle -5.0e-01-1.0e+00i) -2.0344439357957027354e0+0.0i) (num-test (angle 5.0e-01+2.0e+00i) 1.3258176636680324651e0+0.0i) (num-test (angle 5.0e-01-2.0e+00i) -1.3258176636680324651e0+0.0i) (num-test (angle -5.0e-01+2.0e+00i) 1.8157749899217607734e0+0.0i) (num-test (angle -5.0e-01-2.0e+00i) -1.8157749899217607734e0+0.0i) (num-test (angle 5.0e-01+8.3886080e+06i) 1.5707962671902518438e0+0.0i) (num-test (angle 5.0e-01-8.3886080e+06i) -1.5707962671902518438e0+0.0i) (num-test (angle -5.0e-01+8.3886080e+06i) 1.5707963863995413946e0+0.0i) (num-test (angle -5.0e-01-8.3886080e+06i) -1.5707963863995413946e0+0.0i) (num-test (angle 1.0e+00+0.0e+00i) 0e0+0.0i) (num-test (angle -1.0e+00+0.0e+00i) 3.1415926535897932385e0+0.0i) (num-test (angle 1.0e+00+1.19209289550781250e-07i) 1.1920928955078068531e-7+0.0i) (num-test (angle 1.0e+00-1.19209289550781250e-07i) -1.1920928955078068531e-7+0.0i) (num-test (angle -1.0e+00+1.19209289550781250e-07i) 3.1415925343805036877e0+0.0i) (num-test (angle -1.0e+00-1.19209289550781250e-07i) -3.1415925343805036877e0+0.0i) (num-test (angle 1.0e+00+5.0e-01i) 4.6364760900080611621e-1+0.0i) (num-test (angle 1.0e+00-5.0e-01i) -4.6364760900080611621e-1+0.0i) (num-test (angle -1.0e+00+5.0e-01i) 2.6779450445889871222e0+0.0i) (num-test (angle -1.0e+00-5.0e-01i) -2.6779450445889871222e0+0.0i) (num-test (angle 1.0e+00+1.0e+00i) 7.8539816339744830962e-1+0.0i) (num-test (angle 1.0e+00-1.0e+00i) -7.8539816339744830962e-1+0.0i) (num-test (angle -1.0e+00+1.0e+00i) 2.3561944901923449288e0+0.0i) (num-test (angle -1.0e+00-1.0e+00i) -2.3561944901923449288e0+0.0i) (num-test (angle 1.0e+00+2.0e+00i) 1.1071487177940905030e0+0.0i) (num-test (angle 1.0e+00-2.0e+00i) -1.1071487177940905030e0+0.0i) (num-test (angle -1.0e+00+2.0e+00i) 2.0344439357957027354e0+0.0i) (num-test (angle -1.0e+00-2.0e+00i) -2.0344439357957027354e0+0.0i) (num-test (angle 1.0e+00+8.3886080e+06i) 1.5707962075856070685e0+0.0i) (num-test (angle 1.0e+00-8.3886080e+06i) -1.5707962075856070685e0+0.0i) (num-test (angle -1.0e+00+8.3886080e+06i) 1.570796446004186170e0+0.0i) (num-test (angle -1.0e+00-8.3886080e+06i) -1.570796446004186170e0+0.0i) (num-test (angle 2.0e+00+0.0e+00i) 0e0+0.0i) (num-test (angle -2.0e+00+0.0e+00i) 3.1415926535897932385e0+0.0i) (num-test (angle 2.0e+00+1.19209289550781250e-07i) 5.9604644775390554414e-8+0.0i) (num-test (angle 2.0e+00-1.19209289550781250e-07i) -5.9604644775390554414e-8+0.0i) (num-test (angle -2.0e+00+1.19209289550781250e-07i) 3.1415925939851484631e0+0.0i) (num-test (angle -2.0e+00-1.19209289550781250e-07i) -3.1415925939851484631e0+0.0i) (num-test (angle 2.0e+00+5.0e-01i) 2.4497866312686415417e-1+0.0i) (num-test (angle 2.0e+00-5.0e-01i) -2.4497866312686415417e-1+0.0i) (num-test (angle -2.0e+00+5.0e-01i) 2.8966139904629290843e0+0.0i) (num-test (angle -2.0e+00-5.0e-01i) -2.8966139904629290843e0+0.0i) (num-test (angle 2.0e+00+1.0e+00i) 4.6364760900080611621e-1+0.0i) (num-test (angle 2.0e+00-1.0e+00i) -4.6364760900080611621e-1+0.0i) (num-test (angle -2.0e+00+1.0e+00i) 2.6779450445889871222e0+0.0i) (num-test (angle -2.0e+00-1.0e+00i) -2.6779450445889871222e0+0.0i) (num-test (angle 2.0e+00+2.0e+00i) 7.8539816339744830962e-1+0.0i) (num-test (angle 2.0e+00-2.0e+00i) -7.8539816339744830962e-1+0.0i) (num-test (angle -2.0e+00+2.0e+00i) 2.3561944901923449288e0+0.0i) (num-test (angle -2.0e+00-2.0e+00i) -2.3561944901923449288e0+0.0i) (num-test (angle 2.0e+00+8.3886080e+06i) 1.5707960883763175177e0+0.0i) (num-test (angle 2.0e+00-8.3886080e+06i) -1.5707960883763175177e0+0.0i) (num-test (angle -2.0e+00+8.3886080e+06i) 1.5707965652134757208e0+0.0i) (num-test (angle -2.0e+00-8.3886080e+06i) -1.5707965652134757208e0+0.0i) (num-test (angle 8.3886080e+06+0.0e+00i) 0e0+0.0i) (num-test (angle -8.3886080e+06+0.0e+00i) 3.1415926535897932385e0+0.0i) (num-test (angle 8.3886080e+06+1.19209289550781250e-07i) 1.4210854715202003717e-14+0.0i) (num-test (angle 8.3886080e+06-1.19209289550781250e-07i) -1.4210854715202003717e-14+0.0i) (num-test (angle -8.3886080e+06+1.19209289550781250e-07i) 3.1415926535897790276e0+0.0i) (num-test (angle -8.3886080e+06-1.19209289550781250e-07i) -3.1415926535897790276e0+0.0i) (num-test (angle 8.3886080e+06+5.0e-01i) 5.9604644775390554414e-8+0.0i) (num-test (angle 8.3886080e+06-5.0e-01i) -5.9604644775390554414e-8+0.0i) (num-test (angle -8.3886080e+06+5.0e-01i) 3.1415925939851484631e0+0.0i) (num-test (angle -8.3886080e+06-5.0e-01i) -3.1415925939851484631e0+0.0i) (num-test (angle 8.3886080e+06+1.0e+00i) 1.1920928955078068531e-7+0.0i) (num-test (angle 8.3886080e+06-1.0e+00i) -1.1920928955078068531e-7+0.0i) (num-test (angle -8.3886080e+06+1.0e+00i) 3.1415925343805036877e0+0.0i) (num-test (angle -8.3886080e+06-1.0e+00i) -3.1415925343805036877e0+0.0i) (num-test (angle 8.3886080e+06+2.0e+00i) 2.3841857910155798249e-7+0.0i) (num-test (angle 8.3886080e+06-2.0e+00i) -2.3841857910155798249e-7+0.0i) (num-test (angle -8.3886080e+06+2.0e+00i) 3.1415924151712141369e0+0.0i) (num-test (angle -8.3886080e+06-2.0e+00i) -3.1415924151712141369e0+0.0i) (num-test (angle 8.3886080e+06+8.3886080e+06i) 7.8539816339744830962e-1+0.0i) (num-test (angle 8.3886080e+06-8.3886080e+06i) -7.8539816339744830962e-1+0.0i) (num-test (angle -8.3886080e+06+8.3886080e+06i) 2.3561944901923449288e0+0.0i) (num-test (angle -8.3886080e+06-8.3886080e+06i) -2.3561944901923449288e0+0.0i) (num-test (angle -0) 0) (num-test (angle 0) 0) (num-test (angle 0.0) 0.0) ;; -------- floor, ceiling, truncate, round (num-test (truncate 19) 19) (num-test (truncate 2/3) 0) (num-test (truncate -2/3) 0) (num-test (truncate 17.3) 17) (num-test (truncate -17/2) -8) (num-test (truncate -0.1) 0) (num-test (truncate -0.9) 0) (num-test (truncate -1.1) -1) (num-test (truncate -1.9) -1) (num-test (truncate -1/10) 0) (num-test (truncate -9/10) 0) (num-test (truncate -11/10) -1) (num-test (truncate -19/10) -1) (num-test (truncate -1/2) 0) (num-test (truncate -3/2) -1) (num-test (truncate 0.1) 0) (num-test (truncate 0.9) 0) (num-test (truncate 1.1) 1) (num-test (truncate 1.9) 1) (num-test (truncate 1/10) 0) (num-test (truncate 9/10) 0) (num-test (truncate 11/10) 1) (num-test (truncate 19/10) 1) (num-test (truncate 1/2) 0) (num-test (truncate 3/2) 1) (num-test (floor (+ 1 (expt 2 30))) 1073741825) (num-test (floor 19) 19) (num-test (floor 2/3) 0) (num-test (floor -2/3) -1) (num-test (floor 17.3) 17) (num-test (floor -17/2) -9) (num-test (floor -0.1) -1) (num-test (floor -0.9) -1) (num-test (floor -1.1) -2) (num-test (floor -1.9) -2) (num-test (floor -1/10) -1) (num-test (floor -9/10) -1) (num-test (floor -11/10) -2) (num-test (floor -19/10) -2) (num-test (floor -1/2) -1) (num-test (floor -3/2) -2) (num-test (floor 0.1) 0) (num-test (floor 0.9) 0) (num-test (floor 1.1) 1) (num-test (floor 1.9) 1) (num-test (floor 1/10) 0) (num-test (floor 9/10) 0) (num-test (floor 11/10) 1) (num-test (floor 19/10) 1) (num-test (floor 1/2) 0) (num-test (floor 3/2) 1) (num-test (ceiling 19) 19) (num-test (ceiling 2/3) 1) (num-test (ceiling -2/3) 0) (num-test (ceiling 17.3) 18) (num-test (ceiling -17/2) -8) (num-test (ceiling -0.1) 0) (num-test (ceiling -0.9) 0) (num-test (ceiling -1.1) -1) (num-test (ceiling -1.9) -1) (num-test (ceiling -1/10) 0) (num-test (ceiling -9/10) 0) (num-test (ceiling -11/10) -1) (num-test (ceiling -19/10) -1) (num-test (ceiling -1/2) 0) (num-test (ceiling -3/2) -1) (num-test (ceiling 0.1) 1) (num-test (ceiling 0.9) 1) (num-test (ceiling 1.1) 2) (num-test (ceiling 1.9) 2) (num-test (ceiling 1/10) 1) (num-test (ceiling 9/10) 1) (num-test (ceiling 11/10) 2) (num-test (ceiling 19/10) 2) (num-test (ceiling 1/2) 1) (num-test (ceiling 3/2) 2) (num-test (round 19) 19) (num-test (round 2/3) 1) (num-test (round -2/3) -1) (num-test (round 17.3) 17) (num-test (round -17/2) -8) (num-test (round 2.5) 2) (num-test (round 3.5) 4) (num-test (round -0.1) 0) (num-test (round -0.9) -1) (num-test (round -1.1) -1) (num-test (round -1.9) -2) (num-test (round -1/10) 0) (num-test (round -9/10) -1) (num-test (round -11/10) -1) (num-test (round -19/10) -2) (num-test (round -1/2) 0) (num-test (round -3/2) -2) (num-test (round 0.1) 0) (num-test (round 0.9) 1) (num-test (round 1.1) 1) (num-test (round 1.9) 2) (num-test (round 1/10) 0) (num-test (round 9/10) 1) (num-test (round 11/10) 1) (num-test (round 19/10) 2) (num-test (round 1/2) 0) (num-test (round 3/2) 2) (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) (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) (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) (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) (num-test (floor 0) 0) (num-test (round 0) 0) (num-test (ceiling 0) 0) (num-test (truncate 0) 0) (num-test (floor -0) 0) (num-test (round -0) 0) (num-test (ceiling -0) 0) (num-test (truncate -0) 0) (num-test (floor 0.0) 0) (num-test (round 0.0) 0) (num-test (ceiling 0.0) 0) (num-test (truncate 0.0) 0) (num-test (floor -0.0) 0) (num-test (round -0.0) 0) (num-test (ceiling -0.0) 0) (num-test (truncate -0.0) 0) (num-test (floor -1) -1) (num-test (round -1) -1) (num-test (ceiling -1) -1) (num-test (truncate -1) -1) (num-test (floor 1) 1) (num-test (round 1) 1) (num-test (ceiling 1) 1) (num-test (truncate 1) 1) (num-test (floor 1/123400000) 0) (num-test (round 1/123400000) 0) (num-test (ceiling 1/123400000) 1) (num-test (truncate 1/123400000) 0) (num-test (floor -1/123400000) -1) (num-test (round -1/123400000) 0) (num-test (ceiling -1/123400000) 0) (num-test (truncate -1/123400000) 0) (num-test (floor (- 1 1/123400000)) 0) (num-test (round (- 1 1/123400000)) 1) (num-test (ceiling (- 1 1/123400000)) 1) (num-test (truncate (- 1 1/123400000)) 0) (num-test (floor (- (+ 1 -1/123400000))) -1) (num-test (round (- (+ 1 -1/123400000))) -1) (num-test (ceiling (- (+ 1 -1/123400000))) 0) (num-test (truncate (- (+ 1 -1/123400000))) 0) (num-test (floor 2.6) 2) (num-test (floor 2.5) 2) (num-test (ceiling 2.6) 3) (num-test (ceiling 2.5) 3) (num-test (ceiling 2.4) 3) (num-test (truncate 2.6) 2) (num-test (truncate 2.5) 2) (num-test (truncate 2.4) 2) (num-test (round 2.6) 3) (num-test (round 2.5) 2) (num-test (round 2.4) 2) (let ((top-exp 60)) (if with-bignums (set! top-exp 150) (if (not with-64-bit-ints) (set! top-exp 30))) (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) (display "(floor ") (display val1) (display ") = ") (display fv) (display "?") (newline))) (if (not (= cv val2)) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = ") (display cv) (display "?") (newline))) (if (not (= tv (- val2 1))) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = ") (display tv) (display "?") (newline))) (if (not (= rv val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = ") (display fv) (display "?") (newline))) (if (not (= cv (+ val2 1))) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = ") (display cv) (display "?") (newline))) (if (not (= tv val2)) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = ") (display tv) (display "?") (newline))) (if (not (= rv val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = (floor ") (display val2) (display ")?") (newline))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = (ceiling ") (display val2) (display ")?") (newline))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = (truncate ") (display val2) (display ")?") (newline))) (if (= (round val1) (round val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = (round ") (display val2) (display ")?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = (floor ") (display val2) (display ")?") (newline))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = (ceiling ") (display val2) (display ")?") (newline))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = (truncate ") (display val2) (display ")?") (newline))) (if (= (round val1) (round val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = (round ") (display val2) (display ")?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = ") (display fv) (display "?") (newline))) (if (not (= cv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = ") (display cv) (display "?") (newline))) (if (not (= tv (- val1 off-by))) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = ") (display tv) (display "?") (newline))) (if (= off-by 1/3) (if (not (= rv (- val1 off-by))) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline))) (if (not (= rv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline)))) (if (= off-by 1/3) (set! off-by 2/3) (set! off-by 1/3))))) (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) (display "(floor ") (display val1) (display ") = ") (display fv) (display "?") (newline))) (if (not (= cv (+ val2 1))) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = ") (display cv) (display "?") (newline))) (if (not (= tv (+ val2 1))) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = ") (display tv) (display "?") (newline))) (if (not (= rv val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = ") (display fv) (display "?") (newline))) (if (not (= cv val2)) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = ") (display cv) (display "?") (newline))) (if (not (= tv val2)) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = ") (display tv) (display "?") (newline))) (if (not (= rv val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = (floor ") (display val2) (display ")?") (newline))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = (ceiling ") (display val2) (display ")?") (newline))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = (truncate ") (display val2) (display ")?") (newline))) (if (= (round val1) (round val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = (round ") (display val2) (display ")?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = (floor ") (display val2) (display ")?") (newline))) (if (= (ceiling val1) (ceiling val2)) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = (ceiling ") (display val2) (display ")?") (newline))) (if (= (truncate val1) (truncate val2)) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = (truncate ") (display val2) (display ")?") (newline))) (if (= (round val1) (round val2)) (begin (set! happy #f) (display "(round ") (display val1) (display ") = (round ") (display val2) (display ")?") (newline)))))) (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) (display "(floor ") (display val1) (display ") = ") (display fv) (display "?") (newline))) (if (not (= cv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (display "(ceiling ") (display val1) (display ") = ") (display cv) (display "?") (newline))) (if (not (= tv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (display "(truncate ") (display val1) (display ") = ") (display tv) (display "?") (newline))) (if (= off-by 1/3) (if (not (= rv (- val1 off-by))) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline))) (if (not (= rv (+ val1 (- 1 off-by)))) (begin (set! happy #f) (display "(round ") (display val1) (display ") = ") (display rv) (display "?") (newline)))) (if (= off-by 1/3) (set! off-by 2/3) (set! off-by 1/3))))) ) ;; -------- negative?, positive?, zero? (test (zero? 0) #t ) (test (zero? -0) #t ) (test (zero? -0.0) #t ) (test (zero? 0.0) #t ) (test (zero? 1) #f ) (test (zero? -1) #f ) (test (zero? -100) #f ) (test (positive? 4) #t ) (test (positive? -4) #f ) (test (positive? 0) #f ) (test (negative? 4) #f ) (test (negative? -4) #t ) (test (negative? 0) #f ) (test (negative? -0) #f ) (test (negative? 0.0) #f ) (test (negative? -0.0) #f ) (for-each (lambda (n) (if (not (positive? n)) (begin (display "(positive? ") (display n) (display ") returned #f?") (newline)))) (list 1 123 123456123 1.4 0.001 1/2 124124124.2)) (for-each (lambda (n) (if (negative? n) (begin (display "(negative? ") (display n) (display ") returned #t?") (newline)))) (list 1 123 123456123 1.4 0.001 1/2 12341243124.2)) (for-each (lambda (n) (if (positive? n) (begin (display "(positive? ") (display n) (display ") returned #t?") (newline)))) (list -1 -123 -123456123 -3/2 -0.00001 -1.4 -123124124.1)) (for-each (lambda (n) (if (not (negative? n)) (begin (display "(negative? ") (display n) (display ") returned #f?") (newline)))) (list -1 -123 -123456123 -2/3 -0.00001 -1.4 -123124124.1)) (for-each (lambda (n) (if (not (zero? n)) (begin (display "(zero? ") (display n) (display ") returned #f?") (newline)))) (list 0 0.0 0+0i 0/1 0.0-0.0i)) (for-each (lambda (n) (if (zero? n) (begin (display "(zero? ") (display n) (display ") returned #t?") (newline)))) (list 1 1/100 -0.001 0.0+1.0i)) ;; -------- even?, odd? (test (odd? 3) #t ) (test (odd? 2) #f ) (test (odd? -4) #f ) (test (odd? -1) #t ) (test (even? 3) #f ) (test (even? 2) #t ) (test (even? -4) #t ) (test (even? -1) #f ) (for-each (lambda (n) (if (not (even? n)) (begin (display "(even? ") (display n) (display ") returned #f?") (newline)))) (list 0 2 1234 -4 -10000002 1000000006)) (for-each (lambda (n) (if (odd? n) (begin (display "(odd? ") (display n) (display ") returned #t?") (newline)))) (list 0 2 1234 -4 -10000002 1000000006)) (for-each (lambda (n) (if (even? n) (begin (display "(even? ") (display n) (display ") returned #t?") (newline)))) (list 1 -1 31 50001 543321)) (for-each (lambda (n) (if (not (odd? n)) (begin (display "(odd? ") (display n) (display ") returned #f?") (newline)))) (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))))))) ;; -------- real?, complex?, number?, integer?, rational? (test (number? -) #f) (test (number? +) #f) (test (number? 12) #t) (test (number? (expt 2 130)) #t) (test (number? 5/3+7.2i) #t) (test (number? #f) #f) (test (number? (cons 1 2)) #f) (test (number? 2.5-.5i) #t) (test (real? (+ 1+i 1-i)) #t) (test (real? (- 1+i 1+i)) #t) (test (real? (+ 1+i -1-i)) #t) (test (real? (/ 1+i 1+i)) #t) (test (real? (* 0+i 0+i)) #t) (test (real? (magnitude 1+i)) #t) (test (real? (string->number "1+0i")) #t) (test (real? (make-rectangular 1 0)) #t) (test (real? (make-rectangular 0 0)) #t) (test (real? (make-polar 0 0)) #t) (test (real? (make-polar 1 0)) #t) (test (real? (angle 1+i)) #t) (test (real? (real-part 1+i)) #t) (test (real? (imag-part 1+i)) #t) (test (real? (expt 0+i 0+i)) #t) (test (number? 3) #t ) (test (complex? 3) #t ) (test (real? 3) #t ) (test (rational? 3) #t ) (test (integer? 3) #t ) (for-each (lambda (op opname) (for-each (lambda (arg) (if (op arg) (begin (display "(") (display opname) (display " ") (display arg) (display ") returned #t?") (newline)))) (list "hi" (integer->char 65) #f #t '(1 2) 'a-symbol (cons 1 2) (make-vector 3) abs))) (list number? complex? real? rational? integer?) (list 'number? 'complex? 'real? 'rational? 'integer?)) (for-each (lambda (arg) (if (not (complex? arg)) (begin (display "(complex? ") (display arg) (display ") returned #f?") (newline)))) (list 1 1.0 1.0+0.5i 1/2)) (if (not (integer? 1234)) (display ";1234 is not an integer?~%")) (for-each (lambda (arg) (if (integer? arg) (begin (display "(integer? ") (display arg) (display ") returned #t?") (newline)))) (list 1.5 1.0+0.5i 1/2)) (if (real? 1.0+1.0i) (display ";1.0+1.0i is real?~%")) (for-each (lambda (arg) (if (not (real? arg)) (begin (display "(real? ") (display arg) (display ") returned #f?") (newline)))) (list 1 1.0 1/2)) (if (not (rational? 1/2)) (begin (display "(rational? 1/2) is #f?") (newline))) (if (not (rational? 2)) (begin (display "(rational? 2) is #f?") (newline))) ;; -------- exact?, inexact?, inexact->exact, exact->inexact (test (exact? 3) #t ) (test (inexact? 3) #f) (test (exact? 3.123) #f) (test (inexact? 3.123) #t) (test (exact? -0) #t) (test (inexact? -1) #f) (test (exact? 1/2) #t) (test (inexact? 1/2) #f) (test (exact? 1.5+0.123i) #f) (test (inexact? 1.5+0.123i) #t) (num-test (inexact->exact 1.5) 3/2) (num-test (exact->inexact 3/2) 1.5) (num-test (inexact->exact 1) 1) (num-test (exact->inexact 1) 1.0) (num-test (exact->inexact 1.0) 1.0) ;; -------- min, max (num-test (max 3/2 1/2) 3/2) (num-test (max -3/2 1/2) 1/2) (num-test (max 3/2 -1/2) 3/2) (num-test (max -3/2 -1/2) -1/2) (num-test (max 1 1/2) 1) (num-test (max -1 1/2) 1/2) (num-test (max 1 -1/2) 1) (num-test (max -1 -1/2) -1/2) (num-test (max 1/2 1) 1) (num-test (max -1/2 1) 1) (num-test (max 1/2 -1) 1/2) (num-test (max -1/2 -1) -1/2) (num-test (min 3/2 1/2) 1/2) (num-test (min -3/2 1/2) -3/2) (num-test (min 3/2 -1/2) -1/2) (num-test (min -3/2 -1/2) -3/2) (num-test (min 1 1/2) 1/2) (num-test (min -1 1/2) -1) (num-test (min 1 -1/2) -1/2) (num-test (min -1 -1/2) -1) (num-test (min 1/2 1) 1/2) (num-test (min -1/2 1) -1/2) (num-test (min 1/2 -1) -1) (num-test (min -1/2 -1) -1) (num-test (max 3/2 6/5) 3/2) (num-test (max -3/2 6/5) 6/5) (num-test (max 3/2 -6/5) 3/2) (num-test (max -3/2 -6/5) -6/5) (num-test (min 3/2 6/5) 6/5) (num-test (min -3/2 6/5) -3/2) (num-test (min 3/2 -6/5) -6/5) (num-test (min -3/2 -6/5) -3/2) (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))) )))) (num-test (min 0) 0) (num-test (min 2) 2) (num-test (min -2) -2) (num-test (min 10) 10) (num-test (min -10) -10) (num-test (min 1234000000) 1234000000) (num-test (min -1234000000) -1234000000) (num-test (min 362880) 362880) (num-test (min -362880) -362880) (num-test (min 0/1) 0/1) (num-test (min 0/1) 0/1) (num-test (min 2/2) 2/2) (num-test (min -2/2) -2/2) (num-test (min 10/3) 10/3) (num-test (min -10/3) -10/3) (num-test (min 1234000000/10) 1234000000/10) (num-test (min -1234000000/10) -1234000000/10) (num-test (min 362880/1234) 362880/1234) (num-test (min -362880/1234) -362880/1234) (num-test (min 0.0) 0.0) (num-test (min -0.0) -0.0) (num-test (min 1.0) 1.0) (num-test (min -1.0) -1.0) (num-test (min 2.71828182845905) 2.71828182845905) (num-test (min -2.71828182845905) -2.71828182845905) (num-test (min 1234000000.0) 1234000000.0) (num-test (min -1234000000.0) -1234000000.0) (num-test (min 1 1) 1) (num-test (min 1 1.0) 1.0) (num-test (min 1 1/1) 1) (num-test (min 1 1234) 1) (num-test (min 1 123.4) 1.0) (num-test (min 1 1234/11) 1) (num-test (min 1.0 1) 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 1234) 1.0) (num-test (min 1.0 123.4) 1.0) (num-test (min 1.0 1234/11) 1.0) (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 1234) 1) (num-test (min 1/1 123.4) 1.0) (num-test (min 1/1 1234/11) 1) (num-test (min 0 1) 0) (num-test (min 0 1.0) 0.0) (num-test (min 0 1/1) 0) (num-test (min 0 1234) 0) (num-test (min 0 123.4) 0.0) (num-test (min 0 1234/11) 0) (num-test (min 0.0 1) 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 1234) 0.0) (num-test (min 0.0 123.4) 0.0) (num-test (min 0.0 1234/11) 0.0) (num-test (min 1234 1) 1) (num-test (min 1234 1.0) 1.0) (num-test (min 1234 1/1) 1) (num-test (min 1234 1234) 1234) (num-test (min 1234 123.4) 123.4) (num-test (min 1234 1234/11) 1234/11) (num-test (min 123.4 1) 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 1234) 123.4) (num-test (min 123.4 123.4) 123.4) (num-test (min 123.4 1234/11) 112.18181818181819) (num-test (min 1234/11 1) 1) (num-test (min 1234/11 1.0) 1.0) (num-test (min 1234/11 1/1) 1) (num-test (min 1234/11 1234) 1234/11) (num-test (min 1234/11 123.4) 112.18181818181819) (num-test (min 1234/11 1234/11) 1234/11) (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 1234) 1) (num-test (min 1 1 123.4) 1.0) (num-test (min 1 1 1234/11) 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 1234) 1.0) (num-test (min 1 1.0 123.4) 1.0) (num-test (min 1 1.0 1234/11) 1.0) (num-test (min 1 1/1 1) 1) (num-test (min 1 1/1 1.0) 1.0) (num-test (min 1 1/1 1/1) 1) (num-test (min 1 1/1 1234) 1) (num-test (min 1 1/1 123.4) 1.0) (num-test (min 1 1/1 1234/11) 1) (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 1234) 1) (num-test (min 1 1234 123.4) 1.0) (num-test (min 1 1234 1234/11) 1) (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 1234) 1.0) (num-test (min 1 123.4 123.4) 1.0) (num-test (min 1 123.4 1234/11) 1.0) (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 1234) 1) (num-test (min 1 1234/11 123.4) 1.0) (num-test (min 1 1234/11 1234/11) 1) (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 1234) 1.0) (num-test (min 1.0 1 123.4) 1.0) (num-test (min 1.0 1 1234/11) 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 1234) 1.0) (num-test (min 1.0 1.0 123.4) 1.0) (num-test (min 1.0 1.0 1234/11) 1.0) (num-test (min 1.0 1/1 1) 1.0) (num-test (min 1.0 1/1 1.0) 1.0) (num-test (min 1.0 1/1 1/1) 1.0) (num-test (min 1.0 1/1 1234) 1.0) (num-test (min 1.0 1/1 123.4) 1.0) (num-test (min 1.0 1/1 1234/11) 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 1234) 1.0) (num-test (min 1.0 1234 123.4) 1.0) (num-test (min 1.0 1234 1234/11) 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 1234) 1.0) (num-test (min 1.0 123.4 123.4) 1.0) (num-test (min 1.0 123.4 1234/11) 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 1234) 1.0) (num-test (min 1.0 1234/11 123.4) 1.0) (num-test (min 1.0 1234/11 1234/11) 1.0) (num-test (min 1/1 1 1) 1) (num-test (min 1/1 1 1.0) 1.0) (num-test (min 1/1 1 1/1) 1) (num-test (min 1/1 1 1234) 1) (num-test (min 1/1 1 123.4) 1.0) (num-test (min 1/1 1 1234/11) 1) (num-test (min 1/1 1.0 1) 1.0) (num-test (min 1/1 1.0 1.0) 1.0) (num-test (min 1/1 1.0 1/1) 1.0) (num-test (min 1/1 1.0 1234) 1.0) (num-test (min 1/1 1.0 123.4) 1.0) (num-test (min 1/1 1.0 1234/11) 1.0) (num-test (min 1/1 1/1 1) 1) (num-test (min 1/1 1/1 1.0) 1.0) (num-test (min 1/1 1/1 1/1) 1) (num-test (min 1/1 1/1 1234) 1) (num-test (min 1/1 1/1 123.4) 1.0) (num-test (min 1/1 1/1 1234/11) 1) (num-test (min 1/1 1234 1) 1) (num-test (min 1/1 1234 1.0) 1.0) (num-test (min 1/1 1234 1/1) 1) (num-test (min 1/1 1234 1234) 1) (num-test (min 1/1 1234 123.4) 1.0) (num-test (min 1/1 1234 1234/11) 1) (num-test (min 1/1 123.4 1) 1.0) (num-test (min 1/1 123.4 1.0) 1.0) (num-test (min 1/1 123.4 1/1) 1.0) (num-test (min 1/1 123.4 1234) 1.0) (num-test (min 1/1 123.4 123.4) 1.0) (num-test (min 1/1 123.4 1234/11) 1.0) (num-test (min 1/1 1234/11 1) 1) (num-test (min 1/1 1234/11 1.0) 1.0) (num-test (min 1/1 1234/11 1/1) 1) (num-test (min 1/1 1234/11 1234) 1) (num-test (min 1/1 1234/11 123.4) 1.0) (num-test (min 1/1 1234/11 1234/11) 1) (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 1234) 0) (num-test (min 0 1 123.4) 0.0) (num-test (min 0 1 1234/11) 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 1234) 0.0) (num-test (min 0 1.0 123.4) 0.0) (num-test (min 0 1.0 1234/11) 0.0) (num-test (min 0 1/1 1) 0) (num-test (min 0 1/1 1.0) 0.0) (num-test (min 0 1/1 1/1) 0) (num-test (min 0 1/1 1234) 0) (num-test (min 0 1/1 123.4) 0.0) (num-test (min 0 1/1 1234/11) 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 1234) 0) (num-test (min 0 1234 123.4) 0.0) (num-test (min 0 1234 1234/11) 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 1234) 0.0) (num-test (min 0 123.4 123.4) 0.0) (num-test (min 0 123.4 1234/11) 0.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 1234) 0) (num-test (min 0 1234/11 123.4) 0.0) (num-test (min 0 1234/11 1234/11) 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 1234) 0.0) (num-test (min 0.0 1 123.4) 0.0) (num-test (min 0.0 1 1234/11) 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 1234) 0.0) (num-test (min 0.0 1.0 123.4) 0.0) (num-test (min 0.0 1.0 1234/11) 0.0) (num-test (min 0.0 1/1 1) 0.0) (num-test (min 0.0 1/1 1.0) 0.0) (num-test (min 0.0 1/1 1/1) 0.0) (num-test (min 0.0 1/1 1234) 0.0) (num-test (min 0.0 1/1 123.4) 0.0) (num-test (min 0.0 1/1 1234/11) 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 1234) 0.0) (num-test (min 0.0 1234 123.4) 0.0) (num-test (min 0.0 1234 1234/11) 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 1234) 0.0) (num-test (min 0.0 123.4 123.4) 0.0) (num-test (min 0.0 123.4 1234/11) 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 1234) 0.0) (num-test (min 0.0 1234/11 123.4) 0.0) (num-test (min 0.0 1234/11 1234/11) 0.0) (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 1234) 1) (num-test (min 1234 1 123.4) 1.0) (num-test (min 1234 1 1234/11) 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 1234) 1.0) (num-test (min 1234 1.0 123.4) 1.0) (num-test (min 1234 1.0 1234/11) 1.0) (num-test (min 1234 1/1 1) 1) (num-test (min 1234 1/1 1.0) 1.0) (num-test (min 1234 1/1 1/1) 1) (num-test (min 1234 1/1 1234) 1) (num-test (min 1234 1/1 123.4) 1.0) (num-test (min 1234 1/1 1234/11) 1) (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 1234) 1234) (num-test (min 1234 1234 123.4) 123.4) (num-test (min 1234 1234 1234/11) 1234/11) (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 1234) 123.4) (num-test (min 1234 123.4 123.4) 123.4) (num-test (min 1234 123.4 1234/11) 112.18181818181819) (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 1234) 1234/11) (num-test (min 1234 1234/11 123.4) 112.18181818181819) (num-test (min 1234 1234/11 1234/11) 1234/11) (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 1234) 1.0) (num-test (min 123.4 1 123.4) 1.0) (num-test (min 123.4 1 1234/11) 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 1234) 1.0) (num-test (min 123.4 1.0 123.4) 1.0) (num-test (min 123.4 1.0 1234/11) 1.0) (num-test (min 123.4 1/1 1) 1.0) (num-test (min 123.4 1/1 1.0) 1.0) (num-test (min 123.4 1/1 1/1) 1.0) (num-test (min 123.4 1/1 1234) 1.0) (num-test (min 123.4 1/1 123.4) 1.0) (num-test (min 123.4 1/1 1234/11) 1.0) (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 1234) 123.4) (num-test (min 123.4 1234 123.4) 123.4) (num-test (min 123.4 1234 1234/11) 112.18181818181819) (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 1234) 123.4) (num-test (min 123.4 123.4 123.4) 123.4) (num-test (min 123.4 123.4 1234/11) 112.18181818181819) (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 1234) 112.18181818181819) (num-test (min 123.4 1234/11 123.4) 112.18181818181819) (num-test (min 123.4 1234/11 1234/11) 112.18181818181819) (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 1234) 1) (num-test (min 1234/11 1 123.4) 1.0) (num-test (min 1234/11 1 1234/11) 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 1234) 1.0) (num-test (min 1234/11 1.0 123.4) 1.0) (num-test (min 1234/11 1.0 1234/11) 1.0) (num-test (min 1234/11 1/1 1) 1) (num-test (min 1234/11 1/1 1.0) 1.0) (num-test (min 1234/11 1/1 1/1) 1) (num-test (min 1234/11 1/1 1234) 1) (num-test (min 1234/11 1/1 123.4) 1.0) (num-test (min 1234/11 1/1 1234/11) 1) (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 1234) 1234/11) (num-test (min 1234/11 1234 123.4) 112.18181818181819) (num-test (min 1234/11 1234 1234/11) 1234/11) (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 1234) 112.18181818181819) (num-test (min 1234/11 123.4 123.4) 112.18181818181819) (num-test (min 1234/11 123.4 1234/11) 112.18181818181819) (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 1234) 1234/11) (num-test (min 1234/11 1234/11 123.4) 112.18181818181819) (num-test (min 1234/11 1234/11 1234/11) 1234/11) (num-test (min 3) 3) (num-test (min 6 12) 6) (num-test (min -6 -12) -12) (num-test (min 1 3 2 -7) -7) (num-test (min -2 3 0 7) -2) (num-test (min 5.0 2) 2.0) ; why not 2? (num-test (min 3.0 7 1) 1.0) (num-test (min 3 5 5 330 4 -24) -24 ) (num-test (max 0) 0) (num-test (max 2) 2) (num-test (max -2) -2) (num-test (max 10) 10) (num-test (max -10) -10) (num-test (max 1234000000) 1234000000) (num-test (max -1234000000) -1234000000) (num-test (max 362880) 362880) (num-test (max -362880) -362880) (num-test (max 0/1) 0/1) (num-test (max 0/1) 0/1) (num-test (max 2/2) 2/2) (num-test (max -2/2) -2/2) (num-test (max 10/3) 10/3) (num-test (max -10/3) -10/3) (num-test (max 1234000000/10) 1234000000/10) (num-test (max -1234000000/10) -1234000000/10) (num-test (max 362880/1234) 362880/1234) (num-test (max -362880/1234) -362880/1234) (num-test (max 0.0) 0.0) (num-test (max -0.0) -0.0) (num-test (max 1.0) 1.0) (num-test (max -1.0) -1.0) (num-test (max 2.71828182845905) 2.71828182845905) (num-test (max -2.71828182845905) -2.71828182845905) (num-test (max 1234000000.0) 1234000000.0) (num-test (max -1234000000.0) -1234000000.0) (num-test (max 1 1) 1) (num-test (max 1 1.0) 1.0) (num-test (max 1 1/1) 1) (num-test (max 1 1234) 1234) (num-test (max 1 123.4) 123.4) (num-test (max 1 1234/11) 1234/11) (num-test (max 1.0 1) 1.0) (num-test (max 1.0 1.0) 1.0) (num-test (max 1.0 1/1) 1.0) (num-test (max 1.0 1234) 1234.0) (num-test (max 1.0 123.4) 123.4) (num-test (max 1.0 1234/11) 112.18181818181819) (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 1234) 1234) (num-test (max 1/1 123.4) 123.4) (num-test (max 1/1 1234/11) 1234/11) (num-test (max 0 1) 1) (num-test (max 0 1.0) 1.0) (num-test (max 0 1/1) 1) (num-test (max 0 1234) 1234) (num-test (max 0 123.4) 123.4) (num-test (max 0 1234/11) 1234/11) (num-test (max 0.0 1) 1.0) (num-test (max 0.0 1.0) 1.0) (num-test (max 0.0 1/1) 1.0) (num-test (max 0.0 1234) 1234.0) (num-test (max 0.0 123.4) 123.4) (num-test (max 0.0 1234/11) 112.18181818181819) (num-test (max 1234 1) 1234) (num-test (max 1234 1.0) 1234.0) (num-test (max 1234 1/1) 1234) (num-test (max 1234 1234) 1234) (num-test (max 1234 123.4) 1234.0) (num-test (max 1234 1234/11) 1234) (num-test (max 123.4 1) 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 1234) 1234.0) (num-test (max 123.4 123.4) 123.4) (num-test (max 123.4 1234/11) 123.4) (num-test (max 1234/11 1) 1234/11) (num-test (max 1234/11 1.0) 112.18181818181819) (num-test (max 1234/11 1/1) 1234/11) (num-test (max 1234/11 1234) 1234) (num-test (max 1234/11 123.4) 123.4) (num-test (max 1234/11 1234/11) 1234/11) (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 1234) 1234) (num-test (max 1 1 123.4) 123.4) (num-test (max 1 1 1234/11) 1234/11) (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 1234) 1234.0) (num-test (max 1 1.0 123.4) 123.4) (num-test (max 1 1.0 1234/11) 112.18181818181819) (num-test (max 1 1/1 1) 1) (num-test (max 1 1/1 1.0) 1.0) (num-test (max 1 1/1 1/1) 1) (num-test (max 1 1/1 1234) 1234) (num-test (max 1 1/1 123.4) 123.4) (num-test (max 1 1/1 1234/11) 1234/11) (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 1234) 1234) (num-test (max 1 1234 123.4) 1234.0) (num-test (max 1 1234 1234/11) 1234) (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 1234) 1234.0) (num-test (max 1 123.4 123.4) 123.4) (num-test (max 1 123.4 1234/11) 123.4) (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 1234) 1234) (num-test (max 1 1234/11 123.4) 123.4) (num-test (max 1 1234/11 1234/11) 1234/11) (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 1234) 1234.0) (num-test (max 1.0 1 123.4) 123.4) (num-test (max 1.0 1 1234/11) 112.18181818181819) (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 1234) 1234.0) (num-test (max 1.0 1.0 123.4) 123.4) (num-test (max 1.0 1.0 1234/11) 112.18181818181819) (num-test (max 1.0 1/1 1) 1.0) (num-test (max 1.0 1/1 1.0) 1.0) (num-test (max 1.0 1/1 1/1) 1.0) (num-test (max 1.0 1/1 1234) 1234.0) (num-test (max 1.0 1/1 123.4) 123.4) (num-test (max 1.0 1/1 1234/11) 112.18181818181819) (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 1234) 1234.0) (num-test (max 1.0 1234 123.4) 1234.0) (num-test (max 1.0 1234 1234/11) 1234.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 1234) 1234.0) (num-test (max 1.0 123.4 123.4) 123.4) (num-test (max 1.0 123.4 1234/11) 123.4) (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 1234) 1234.0) (num-test (max 1.0 1234/11 123.4) 123.4) (num-test (max 1.0 1234/11 1234/11) 112.18181818181819) (num-test (max 1/1 1 1) 1) (num-test (max 1/1 1 1.0) 1.0) (num-test (max 1/1 1 1/1) 1) (num-test (max 1/1 1 1234) 1234) (num-test (max 1/1 1 123.4) 123.4) (num-test (max 1/1 1 1234/11) 1234/11) (num-test (max 1/1 1.0 1) 1.0) (num-test (max 1/1 1.0 1.0) 1.0) (num-test (max 1/1 1.0 1/1) 1.0) (num-test (max 1/1 1.0 1234) 1234.0) (num-test (max 1/1 1.0 123.4) 123.4) (num-test (max 1/1 1.0 1234/11) 112.18181818181819) (num-test (max 1/1 1/1 1) 1) (num-test (max 1/1 1/1 1.0) 1.0) (num-test (max 1/1 1/1 1/1) 1) (num-test (max 1/1 1/1 1234) 1234) (num-test (max 1/1 1/1 123.4) 123.4) (num-test (max 1/1 1/1 1234/11) 1234/11) (num-test (max 1/1 1234 1) 1234) (num-test (max 1/1 1234 1.0) 1234.0) (num-test (max 1/1 1234 1/1) 1234) (num-test (max 1/1 1234 1234) 1234) (num-test (max 1/1 1234 123.4) 1234.0) (num-test (max 1/1 1234 1234/11) 1234) (num-test (max 1/1 123.4 1) 123.4) (num-test (max 1/1 123.4 1.0) 123.4) (num-test (max 1/1 123.4 1/1) 123.4) (num-test (max 1/1 123.4 1234) 1234.0) (num-test (max 1/1 123.4 123.4) 123.4) (num-test (max 1/1 123.4 1234/11) 123.4) (num-test (max 1/1 1234/11 1) 1234/11) (num-test (max 1/1 1234/11 1.0) 112.18181818181819) (num-test (max 1/1 1234/11 1/1) 1234/11) (num-test (max 1/1 1234/11 1234) 1234) (num-test (max 1/1 1234/11 123.4) 123.4) (num-test (max 1/1 1234/11 1234/11) 1234/11) (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 1234) 1234) (num-test (max 0 1 123.4) 123.4) (num-test (max 0 1 1234/11) 1234/11) (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 1234) 1234.0) (num-test (max 0 1.0 123.4) 123.4) (num-test (max 0 1.0 1234/11) 112.18181818181819) (num-test (max 0 1/1 1) 1) (num-test (max 0 1/1 1.0) 1.0) (num-test (max 0 1/1 1/1) 1) (num-test (max 0 1/1 1234) 1234) (num-test (max 0 1/1 123.4) 123.4) (num-test (max 0 1/1 1234/11) 1234/11) (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 1234) 1234) (num-test (max 0 1234 123.4) 1234.0) (num-test (max 0 1234 1234/11) 1234) (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 1234) 1234.0) (num-test (max 0 123.4 123.4) 123.4) (num-test (max 0 123.4 1234/11) 123.4) (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 1234) 1234) (num-test (max 0 1234/11 123.4) 123.4) (num-test (max 0 1234/11 1234/11) 1234/11) (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 1234) 1234.0) (num-test (max 0.0 1 123.4) 123.4) (num-test (max 0.0 1 1234/11) 112.18181818181819) (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 1234) 1234.0) (num-test (max 0.0 1.0 123.4) 123.4) (num-test (max 0.0 1.0 1234/11) 112.18181818181819) (num-test (max 0.0 1/1 1) 1.0) (num-test (max 0.0 1/1 1.0) 1.0) (num-test (max 0.0 1/1 1/1) 1.0) (num-test (max 0.0 1/1 1234) 1234.0) (num-test (max 0.0 1/1 123.4) 123.4) (num-test (max 0.0 1/1 1234/11) 112.18181818181819) (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 1234) 1234.0) (num-test (max 0.0 1234 123.4) 1234.0) (num-test (max 0.0 1234 1234/11) 1234.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 1234) 1234.0) (num-test (max 0.0 123.4 123.4) 123.4) (num-test (max 0.0 123.4 1234/11) 123.4) (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 1234) 1234.0) (num-test (max 0.0 1234/11 123.4) 123.4) (num-test (max 0.0 1234/11 1234/11) 112.18181818181819) (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 1234) 1234) (num-test (max 1234 1 123.4) 1234.0) (num-test (max 1234 1 1234/11) 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 1234) 1234.0) (num-test (max 1234 1.0 123.4) 1234.0) (num-test (max 1234 1.0 1234/11) 1234.0) (num-test (max 1234 1/1 1) 1234) (num-test (max 1234 1/1 1.0) 1234.0) (num-test (max 1234 1/1 1/1) 1234) (num-test (max 1234 1/1 1234) 1234) (num-test (max 1234 1/1 123.4) 1234.0) (num-test (max 1234 1/1 1234/11) 1234) (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 1234) 1234) (num-test (max 1234 1234 123.4) 1234.0) (num-test (max 1234 1234 1234/11) 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 1234) 1234.0) (num-test (max 1234 123.4 123.4) 1234.0) (num-test (max 1234 123.4 1234/11) 1234.0) (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 1234) 1234) (num-test (max 1234 1234/11 123.4) 1234.0) (num-test (max 1234 1234/11 1234/11) 1234) (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 1234) 1234.0) (num-test (max 123.4 1 123.4) 123.4) (num-test (max 123.4 1 1234/11) 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 1234) 1234.0) (num-test (max 123.4 1.0 123.4) 123.4) (num-test (max 123.4 1.0 1234/11) 123.4) (num-test (max 123.4 1/1 1) 123.4) (num-test (max 123.4 1/1 1.0) 123.4) (num-test (max 123.4 1/1 1/1) 123.4) (num-test (max 123.4 1/1 1234) 1234.0) (num-test (max 123.4 1/1 123.4) 123.4) (num-test (max 123.4 1/1 1234/11) 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 1234) 1234.0) (num-test (max 123.4 1234 123.4) 1234.0) (num-test (max 123.4 1234 1234/11) 1234.0) (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 1234) 1234.0) (num-test (max 123.4 123.4 123.4) 123.4) (num-test (max 123.4 123.4 1234/11) 123.4) (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 1234) 1234.0) (num-test (max 123.4 1234/11 123.4) 123.4) (num-test (max 123.4 1234/11 1234/11) 123.4) (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 1234) 1234) (num-test (max 1234/11 1 123.4) 123.4) (num-test (max 1234/11 1 1234/11) 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 1234) 1234.0) (num-test (max 1234/11 1.0 123.4) 123.4) (num-test (max 1234/11 1.0 1234/11) 112.18181818181819) (num-test (max 1234/11 1/1 1) 1234/11) (num-test (max 1234/11 1/1 1.0) 112.18181818181819) (num-test (max 1234/11 1/1 1/1) 1234/11) (num-test (max 1234/11 1/1 1234) 1234) (num-test (max 1234/11 1/1 123.4) 123.4) (num-test (max 1234/11 1/1 1234/11) 1234/11) (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 1234) 1234) (num-test (max 1234/11 1234 123.4) 1234.0) (num-test (max 1234/11 1234 1234/11) 1234) (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 1234) 1234.0) (num-test (max 1234/11 123.4 123.4) 123.4) (num-test (max 1234/11 123.4 1234/11) 123.4) (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 1234) 1234) (num-test (max 1234/11 1234/11 123.4) 123.4) (num-test (max 1234/11 1234/11 1234/11) 1234/11) (num-test (max 3) 3) (num-test (max 6 12) 12) (num-test (max -6 -12) -6) (num-test (max 1 3 2 -7) 3) (num-test (max -2 3 0 7) 7) (num-test (max 5.0 2) 5.0) (num-test (max 3.0 7 1) 7.0) (num-test (max 1 3 2 -7) 3) (num-test (max 34 5 7 38 6) 38 ) ;; -------- = < > <= >= + - / * (test (= 22 22 22) #t ) (test (= 22 22) #t ) (test (= 34 34 35) #f ) (test (= 34 35) #f ) (test (> 3 -6246) #t ) (test (> 9 9 -2424) #f ) (test (>= 3 -4 -6246) #t ) (test (>= 9 9) #t ) (test (>= 8 9) #f ) (test (< -1 2 3 4 5 6 7 8) #t ) (test (< -1 2 3 4 4 5 6 7) #f ) (test (<= -1 2 3 4 5 6 7 8) #t ) (test (<= -1 2 3 4 4 5 6 7) #t ) (test (< 1 3 2) #f ) (test (>= 1 3 2) #f ) (test (< 0 -0) #f) (test (< -0 0) #f) (test (= -0 0) #t) (test (< 0.0 -0.0) #f) (test (< -0.0 0.0) #f) (test (= -0.0 0.0) #t) (test (= 1+0i 1-0i) #t) (test (< 1 1 2) #f) (test (>= 1 1 2) #f) (test (> 2 2 1) #f) (test (<= 2 2 1) #f) (test (= 1/2 1/2+0i) #t) (num-test (+ 0) 0) (num-test (- 0) 0) (num-test (* 0) 0) (num-test (- 0) 0) (num-test (* 0) 0) (num-test (+ 2) 2) (num-test (- 2) -2) (num-test (* 2) 2) (num-test (/ 2) 1/2) (num-test (+ -2) -2) (num-test (- -2) 2) (num-test (* -2) -2) (num-test (/ -2) -1/2) (num-test (+ 10) 10) (num-test (- 10) -10) (num-test (* 10) 10) (num-test (/ 10) 1/10) (num-test (+ -10) -10) (num-test (- -10) 10) (num-test (* -10) -10) (num-test (/ -10) -1/10) (num-test (+ 1234000000) 1234000000) (num-test (- 1234000000) -1234000000) (num-test (* 1234000000) 1234000000) (num-test (/ 1234000000) 1/1234000000) (num-test (+ -1234000000) -1234000000) (num-test (- -1234000000) 1234000000) (num-test (* -1234000000) -1234000000) (num-test (/ -1234000000) -1/1234000000) (num-test (+ 362880) 362880) (num-test (- 362880) -362880) (num-test (* 362880) 362880) (num-test (/ 362880) 1/362880) (num-test (+ -362880) -362880) (num-test (- -362880) 362880) (num-test (* -362880) -362880) (num-test (/ -362880) -1/362880) (num-test (+ 0/1) 0/1) (num-test (- 0/1) 0/1) (num-test (* 0/1) 0/1) (num-test (+ 0/1) 0/1) (num-test (- 0/1) 0/1) (num-test (* 0/1) 0/1) (num-test (+ 2/2) 2/2) (num-test (- 2/2) -2/2) (num-test (* 2/2) 2/2) (num-test (/ 2/2) 2/2) (num-test (+ -2/2) -2/2) (num-test (- -2/2) 2/2) (num-test (* -2/2) -2/2) (num-test (/ -2/2) -2/2) (num-test (+ 10/3) 10/3) (num-test (- 10/3) -10/3) (num-test (* 10/3) 10/3) (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 (/ -10/3) -3/10) (num-test (+ 1234000000/10) 1234000000/10) (num-test (- 1234000000/10) -1234000000/10) (num-test (* 1234000000/10) 1234000000/10) (num-test (/ 1234000000/10) 10/1234000000) (num-test (+ -1234000000/10) -1234000000/10) (num-test (- -1234000000/10) 1234000000/10) (num-test (* -1234000000/10) -1234000000/10) (num-test (/ -1234000000/10) -10/1234000000) (num-test (+ 362880/1234) 362880/1234) (num-test (- 362880/1234) -362880/1234) (num-test (* 362880/1234) 362880/1234) (num-test (/ 362880/1234) 1234/362880) (num-test (+ -362880/1234) -362880/1234) (num-test (- -362880/1234) 362880/1234) (num-test (* -362880/1234) -362880/1234) (num-test (/ -362880/1234) -1234/362880) (num-test (+ 0.0) 0.0) (num-test (- 0.0) -0.0) (num-test (* 0.0) 0.0) (num-test (+ -0.0) -0.0) (num-test (- -0.0) 0.0) (num-test (* -0.0) -0.0) (num-test (+ 1.0) 1.0) (num-test (- 1.0) -1.0) (num-test (* 1.0) 1.0) (num-test (/ 1.0) 1.0) (num-test (+ -1.0) -1.0) (num-test (- -1.0) 1.0) (num-test (* -1.0) -1.0) (num-test (/ -1.0) -1.0) (num-test (+ 2.71828182845905) 2.71828182845905) (num-test (- 2.71828182845905) -2.71828182845905) (num-test (* 2.71828182845905) 2.71828182845905) (num-test (/ 2.71828182845905) 0.36787944117144) (num-test (+ -2.71828182845905) -2.71828182845905) (num-test (- -2.71828182845905) 2.71828182845905) (num-test (* -2.71828182845905) -2.71828182845905) (num-test (/ -2.71828182845905) -0.36787944117144) (num-test (+ 1234000000.0) 1234000000.0) (num-test (- 1234000000.0) -1234000000.0) (num-test (* 1234000000.0) 1234000000.0) (num-test (/ 1234000000.0) 0.00000000081037) (num-test (+ -1234000000.0) -1234000000.0) (num-test (- -1234000000.0) 1234000000.0) (num-test (* -1234000000.0) -1234000000.0) (num-test (/ -1234000000.0) -0.00000000081037) (num-test (+ 0.0+0.00000001i) 0.0+0.00000001i) (num-test (- 0.0+0.00000001i) -0.0-0.00000001i) (num-test (- 0.0-0.00000001i) -0.0+0.00000001i) (num-test (* 0.0+0.00000001i) 0.0+0.00000001i) (num-test (/ 0.0+0.00000001i) 0.0-100000000.0i) (num-test (+ -0.0+0.00000001i) -0.0+0.00000001i) (num-test (- -0.0+0.00000001i) 0.0-0.00000001i) (num-test (* -0.0+0.00000001i) -0.0+0.00000001i) (num-test (/ -0.0+0.00000001i) 0.0-100000000.0i) (num-test (+ 1.0+1.0i) 1.0+1.0i) (num-test (- 1.0+1.0i) -1.0-1.0i) (num-test (* 1.0+1.0i) 1.0+1.0i) (num-test (/ 1.0+1.0i) 0.5-0.5i) (num-test (+ -1.0+1.0i) -1.0+1.0i) (num-test (- -1.0+1.0i) 1.0-1.0i) (num-test (* -1.0+1.0i) -1.0+1.0i) (num-test (/ -1.0+1.0i) -0.5-0.5i) (num-test (+ 2.71828182845905+3.14159265358979i) 2.71828182845905+3.14159265358979i) (num-test (+ 2.71828182845905-3.14159265358979i) 2.71828182845905-3.14159265358979i) (num-test (- 2.71828182845905+3.14159265358979i) -2.71828182845905-3.14159265358979i) (num-test (- 2.71828182845905-3.14159265358979i) -2.71828182845905+3.14159265358979i) (num-test (* 2.71828182845905+3.14159265358979i) 2.71828182845905+3.14159265358979i) (num-test (/ 2.71828182845905+3.14159265358979i) 0.15750247989732-0.18202992367723i) (num-test (+ -2.71828182845905+3.14159265358979i) -2.71828182845905+3.14159265358979i) (num-test (- -2.71828182845905+3.14159265358979i) 2.71828182845905-3.14159265358979i) (num-test (- -2.71828182845905-3.14159265358979i) 2.71828182845905+3.14159265358979i) (num-test (* -2.71828182845905+3.14159265358979i) -2.71828182845905+3.14159265358979i) (num-test (/ -2.71828182845905+3.14159265358979i) -0.15750247989732-0.18202992367723i) (num-test (+ 1234000000.0+2.71828182845905i) 1234000000.0+2.71828182845905i) (num-test (+ 1234000000.0-2.71828182845905i) 1234000000.0-2.71828182845905i) (num-test (- 1234000000.0+2.71828182845905i) -1234000000.0-2.71828182845905i) (num-test (- 1234000000.0-2.71828182845905i) -1234000000.0+2.71828182845905i) (num-test (* 1234000000.0+2.71828182845905i) 1234000000.0+2.71828182845905i) (num-test (/ 1234000000.0+2.71828182845905i) 0.00000000081037-0.0i) (num-test (+ -1234000000.0+2.71828182845905i) -1234000000.0+2.71828182845905i) (num-test (- -1234000000.0+2.71828182845905i) 1234000000.0-2.71828182845905i) (num-test (* -1234000000.0+2.71828182845905i) -1234000000.0+2.71828182845905i) (num-test (/ -1234000000.0+2.71828182845905i) -0.00000000081037-0.0i) (num-test (+ 1 1) 2) (num-test (- 1 1) 0) (num-test (* 1 1) 1) (num-test (/ 1 1) 1) (num-test (= 1 1) #t) (num-test (< 1 1) #f) (num-test (<= 1 1) #t) (num-test (> 1 1) #f) (num-test (>= 1 1) #t) (num-test (+ 1 1.0) 2.0) (num-test (- 1 1.0) 0.0) (num-test (* 1 1.0) 1.0) (num-test (/ 1 1.0) 1.0) (num-test (= 1 1.0) #t) (num-test (< 1 1.0) #f) (num-test (<= 1 1.0) #t) (num-test (> 1 1.0) #f) (num-test (>= 1 1.0) #t) (num-test (+ 1 1/1) 2) (num-test (- 1 1/1) 0) (num-test (* 1 1/1) 1) (num-test (/ 1 1/1) 1) (num-test (= 1 1/1) #t) (num-test (< 1 1/1) #f) (num-test (<= 1 1/1) #t) (num-test (> 1 1/1) #f) (num-test (>= 1 1/1) #t) (num-test (+ 1 1.0+1.0i) 2.0+1.0i) (num-test (- 1 1.0+1.0i) 0.0-1.0i) (num-test (* 1 1.0+1.0i) 1.0+1.0i) (num-test (/ 1 1.0+1.0i) 0.5-0.5i) (num-test (= 1 1.0+1.0i) #f) (num-test (+ 1 0) 1) (num-test (- 1 0) 1) (num-test (* 1 0) 0) (num-test (+ 1 0.0) 1.0) (num-test (- 1 0.0) 1.0) (num-test (* 1 0.0) 0.0) (num-test (+ 1 1234) 1235) (num-test (- 1 1234) -1233) (num-test (* 1 1234) 1234) (num-test (/ 1 1234) 1/1234) (num-test (= 1 1234) #f) (num-test (< 1 1234) #t) (num-test (<= 1 1234) #t) (num-test (> 1 1234) #f) (num-test (>= 1 1234) #f) (num-test (+ 1 123.4) 124.4) (num-test (- 1 123.4) -122.4) (num-test (* 1 123.4) 123.4) (num-test (/ 1 123.4) 0.00810372771475) (num-test (= 1 123.4) #f) (num-test (< 1 123.4) #t) (num-test (<= 1 123.4) #t) (num-test (> 1 123.4) #f) (num-test (>= 1 123.4) #f) (num-test (+ 1 1234/11) 1245/11) (num-test (- 1 1234/11) -1223/11) (num-test (* 1 1234/11) 1234/11) (num-test (/ 1 1234/11) 11/1234) (num-test (= 1 1234/11) #f) (num-test (< 1 1234/11) #t) (num-test (<= 1 1234/11) #t) (num-test (> 1 1234/11) #f) (num-test (>= 1 1234/11) #f) (num-test (+ 1 1.234+1.234i) 2.234+1.234i) (num-test (- 1 1.234+1.234i) -0.234-1.234i) (num-test (* 1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1 1.234+1.234i) #f) (num-test (+ 1 -1.0+1.0i) 0.0+1.0i) (num-test (- 1 -1.0+1.0i) 2.0-1.0i) (num-test (* 1 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1 -1.0+1.0i) #f) (num-test (+ 1 0.0+1.0i) 1.0+1.0i) (num-test (- 1 0.0+1.0i) 1.0-1.0i) (num-test (* 1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1 0.0+1.0i) 0.0-1.0i) (num-test (= 1 0.0+1.0i) #f) (num-test (+ 1.0 1) 2.0) (num-test (- 1.0 1) 0.0) (num-test (* 1.0 1) 1.0) (num-test (/ 1.0 1) 1.0) (num-test (= 1.0 1) #t) (num-test (< 1.0 1) #f) (num-test (<= 1.0 1) #t) (num-test (> 1.0 1) #f) (num-test (>= 1.0 1) #t) (num-test (+ 1.0 1.0) 2.0) (num-test (- 1.0 1.0) 0.0) (num-test (* 1.0 1.0) 1.0) (num-test (/ 1.0 1.0) 1.0) (num-test (= 1.0 1.0) #t) (num-test (< 1.0 1.0) #f) (num-test (<= 1.0 1.0) #t) (num-test (> 1.0 1.0) #f) (num-test (>= 1.0 1.0) #t) (num-test (+ 1.0 1/1) 2.0) (num-test (- 1.0 1/1) 0.0) (num-test (* 1.0 1/1) 1.0) (num-test (/ 1.0 1/1) 1.0) (num-test (= 1.0 1/1) #t) (num-test (< 1.0 1/1) #f) (num-test (<= 1.0 1/1) #t) (num-test (> 1.0 1/1) #f) (num-test (>= 1.0 1/1) #t) (num-test (+ 1.0 1.0+1.0i) 2.0+1.0i) (num-test (- 1.0 1.0+1.0i) 0.0-1.0i) (num-test (* 1.0 1.0+1.0i) 1.0+1.0i) (num-test (/ 1.0 1.0+1.0i) 0.5-0.5i) (num-test (= 1.0 1.0+1.0i) #f) (num-test (+ 1.0 0) 1.0) (num-test (- 1.0 0) 1.0) (num-test (* 1.0 0) 0.0) (num-test (+ 1.0 0.0) 1.0) (num-test (- 1.0 0.0) 1.0) (num-test (* 1.0 0.0) 0.0) (num-test (+ 1.0 1234) 1235.0) (num-test (- 1.0 1234) -1233.0) (num-test (* 1.0 1234) 1234.0) (num-test (/ 1.0 1234) 0.00081037277147) (num-test (= 1.0 1234) #f) (num-test (< 1.0 1234) #t) (num-test (<= 1.0 1234) #t) (num-test (> 1.0 1234) #f) (num-test (>= 1.0 1234) #f) (num-test (+ 1.0 123.4) 124.4) (num-test (- 1.0 123.4) -122.4) (num-test (* 1.0 123.4) 123.4) (num-test (/ 1.0 123.4) 0.00810372771475) (num-test (= 1.0 123.4) #f) (num-test (< 1.0 123.4) #t) (num-test (<= 1.0 123.4) #t) (num-test (> 1.0 123.4) #f) (num-test (>= 1.0 123.4) #f) (num-test (+ 1.0 1234/11) 113.18181818181819) (num-test (- 1.0 1234/11) -111.18181818181819) (num-test (* 1.0 1234/11) 112.18181818181819) (num-test (/ 1.0 1234/11) 0.00891410048622) (num-test (= 1.0 1234/11) #f) (num-test (< 1.0 1234/11) #t) (num-test (<= 1.0 1234/11) #t) (num-test (> 1.0 1234/11) #f) (num-test (>= 1.0 1234/11) #f) (num-test (+ 1.0 1.234+1.234i) 2.234+1.234i) (num-test (- 1.0 1.234+1.234i) -0.234-1.234i) (num-test (* 1.0 1.234+1.234i) 1.234+1.234i) (num-test (/ 1.0 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1.0 1.234+1.234i) #f) (num-test (+ 1.0 -1.0+1.0i) 0.0+1.0i) (num-test (- 1.0 -1.0+1.0i) 2.0-1.0i) (num-test (* 1.0 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1.0 -1.0+1.0i) -0.5-0.5i) (num-test (= 1.0 -1.0+1.0i) #f) (num-test (+ 1.0 0.0+1.0i) 1.0+1.0i) (num-test (- 1.0 0.0+1.0i) 1.0-1.0i) (num-test (* 1.0 0.0+1.0i) 0.0+1.0i) (num-test (/ 1.0 0.0+1.0i) 0.0-1.0i) (num-test (= 1.0 0.0+1.0i) #f) (num-test (+ 1/1 1) 2) (num-test (- 1/1 1) 0) (num-test (* 1/1 1) 1) (num-test (/ 1/1 1) 1) (num-test (= 1/1 1) #t) (num-test (< 1/1 1) #f) (num-test (<= 1/1 1) #t) (num-test (> 1/1 1) #f) (num-test (>= 1/1 1) #t) (num-test (+ 1/1 1.0) 2.0) (num-test (- 1/1 1.0) 0.0) (num-test (* 1/1 1.0) 1.0) (num-test (/ 1/1 1.0) 1.0) (num-test (= 1/1 1.0) #t) (num-test (< 1/1 1.0) #f) (num-test (<= 1/1 1.0) #t) (num-test (> 1/1 1.0) #f) (num-test (>= 1/1 1.0) #t) (num-test (+ 1/1 1/1) 2) (num-test (- 1/1 1/1) 0) (num-test (* 1/1 1/1) 1) (num-test (/ 1/1 1/1) 1) (num-test (= 1/1 1/1) #t) (num-test (< 1/1 1/1) #f) (num-test (<= 1/1 1/1) #t) (num-test (> 1/1 1/1) #f) (num-test (>= 1/1 1/1) #t) (num-test (+ 1/1 1.0+1.0i) 2.0+1.0i) (num-test (- 1/1 1.0+1.0i) 0.0-1.0i) (num-test (* 1/1 1.0+1.0i) 1.0+1.0i) (num-test (/ 1/1 1.0+1.0i) 0.5-0.5i) (num-test (= 1/1 1.0+1.0i) #f) (num-test (+ 1/1 0) 1) (num-test (- 1/1 0) 1) (num-test (* 1/1 0) 0) (num-test (+ 1/1 0.0) 1.0) (num-test (- 1/1 0.0) 1.0) (num-test (* 1/1 0.0) 0.0) (num-test (+ 1/1 1234) 1235) (num-test (- 1/1 1234) -1233) (num-test (* 1/1 1234) 1234) (num-test (/ 1/1 1234) 1/1234) (num-test (= 1/1 1234) #f) (num-test (< 1/1 1234) #t) (num-test (<= 1/1 1234) #t) (num-test (> 1/1 1234) #f) (num-test (>= 1/1 1234) #f) (num-test (+ 1/1 123.4) 124.4) (num-test (- 1/1 123.4) -122.4) (num-test (* 1/1 123.4) 123.4) (num-test (/ 1/1 123.4) 0.00810372771475) (num-test (= 1/1 123.4) #f) (num-test (< 1/1 123.4) #t) (num-test (<= 1/1 123.4) #t) (num-test (> 1/1 123.4) #f) (num-test (>= 1/1 123.4) #f) (num-test (+ 1/1 1234/11) 1245/11) (num-test (- 1/1 1234/11) -1223/11) (num-test (* 1/1 1234/11) 1234/11) (num-test (/ 1/1 1234/11) 11/1234) (num-test (= 1/1 1234/11) #f) (num-test (< 1/1 1234/11) #t) (num-test (<= 1/1 1234/11) #t) (num-test (> 1/1 1234/11) #f) (num-test (>= 1/1 1234/11) #f) (num-test (+ 1/1 1.234+1.234i) 2.234+1.234i) (num-test (- 1/1 1.234+1.234i) -0.234-1.234i) (num-test (* 1/1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1/1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1/1 1.234+1.234i) #f) (num-test (+ 1/1 -1.0+1.0i) 0.0+1.0i) (num-test (- 1/1 -1.0+1.0i) 2.0-1.0i) (num-test (* 1/1 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1/1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1/1 -1.0+1.0i) #f) (num-test (+ 1/1 0.0+1.0i) 1.0+1.0i) (num-test (- 1/1 0.0+1.0i) 1.0-1.0i) (num-test (* 1/1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1/1 0.0+1.0i) 0.0-1.0i) (num-test (= 1/1 0.0+1.0i) #f) (num-test (+ 1.0+1.0i 1) 2.0+1.0i) (num-test (- 1.0+1.0i 1) 0.0+1.0i) (num-test (* 1.0+1.0i 1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1) 1.0+1.0i) (num-test (= 1.0+1.0i 1) #f) (num-test (+ 1.0+1.0i 1.0) 2.0+1.0i) (num-test (- 1.0+1.0i 1.0) 0.0+1.0i) (num-test (* 1.0+1.0i 1.0) 1.0+1.0i) (num-test (/ 1.0+1.0i 1.0) 1.0+1.0i) (num-test (= 1.0+1.0i 1.0) #f) (num-test (+ 1.0+1.0i 1/1) 2.0+1.0i) (num-test (- 1.0+1.0i 1/1) 0.0+1.0i) (num-test (* 1.0+1.0i 1/1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1/1) 1.0+1.0i) (num-test (= 1.0+1.0i 1/1) #f) (num-test (+ 1.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (- 1.0+1.0i 1.0+1.0i) 0.0) (num-test (* 1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (/ 1.0+1.0i 1.0+1.0i) 1.0) (num-test (= 1.0+1.0i 1.0+1.0i) #t) (num-test (+ 1.0+1.0i 0) 1.0+1.0i) (num-test (- 1.0+1.0i 0) 1.0+1.0i) (num-test (* 1.0+1.0i 0) 0.0) (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) 0.0) (num-test (+ 1.0+1.0i 1234) 1235.0+1.0i) (num-test (- 1.0+1.0i 1234) -1233.0+1.0i) (num-test (* 1.0+1.0i 1234) 1234.0+1234.0i) (num-test (/ 1.0+1.0i 1234) 0.00081037277147+0.00081037277147i) (num-test (= 1.0+1.0i 1234) #f) (num-test (+ 1.0+1.0i 123.4) 124.4+1.0i) (num-test (- 1.0+1.0i 123.4) -122.4+1.0i) (num-test (* 1.0+1.0i 123.4) 123.4+123.4i) (num-test (/ 1.0+1.0i 123.4) 0.00810372771475+0.00810372771475i) (num-test (= 1.0+1.0i 123.4) #f) (num-test (+ 1.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11) -111.18181818181819+1.0i) (num-test (* 1.0+1.0i 1234/11) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1234/11) 0.00891410048622+0.00891410048622i) (num-test (= 1.0+1.0i 1234/11) #f) (num-test (+ 1.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (- 1.0+1.0i 1.234+1.234i) -0.234-0.234i) (num-test (* 1.0+1.0i 1.234+1.234i) 0.0+2.468i) (num-test (/ 1.0+1.0i 1.234+1.234i) 0.81037277147488) (num-test (= 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (- 1.0+1.0i -1.0+1.0i) 2.0) (num-test (* 1.0+1.0i -1.0+1.0i) -2.0) (num-test (/ 1.0+1.0i -1.0+1.0i) -0.0-1.0i) (num-test (= 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (- 1.0+1.0i 0.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 0.0+1.0i) 1.0-1.0i) (num-test (= 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 0 1) 1) (num-test (- 0 1) -1) (num-test (* 0 1) 0) (num-test (/ 0 1) 0) (num-test (= 0 1) #f) (num-test (< 0 1) #t) (num-test (<= 0 1) #t) (num-test (> 0 1) #f) (num-test (>= 0 1) #f) (num-test (+ 0 1.0) 1.0) (num-test (- 0 1.0) -1.0) (num-test (* 0 1.0) 0.0) (num-test (/ 0 1.0) 0.0) (num-test (= 0 1.0) #f) (num-test (< 0 1.0) #t) (num-test (<= 0 1.0) #t) (num-test (> 0 1.0) #f) (num-test (>= 0 1.0) #f) (num-test (+ 0 1/1) 1) (num-test (- 0 1/1) -1) (num-test (* 0 1/1) 0) (num-test (/ 0 1/1) 0) (num-test (= 0 1/1) #f) (num-test (< 0 1/1) #t) (num-test (<= 0 1/1) #t) (num-test (> 0 1/1) #f) (num-test (>= 0 1/1) #f) (num-test (+ 0 1.0+1.0i) 1.0+1.0i) (num-test (- 0 1.0+1.0i) -1.0-1.0i) (num-test (* 0 1.0+1.0i) 0.0) (num-test (/ 0 1.0+1.0i) 0.0) (num-test (= 0 1.0+1.0i) #f) (num-test (+ 0 0) 0) (num-test (- 0 0) 0) (num-test (* 0 0) 0) (num-test (+ 0 0.0) 0.0) (num-test (- 0 0.0) 0.0) (num-test (* 0 0.0) 0.0) (num-test (+ 0 1234) 1234) (num-test (- 0 1234) -1234) (num-test (* 0 1234) 0) (num-test (/ 0 1234) 0) (num-test (= 0 1234) #f) (num-test (< 0 1234) #t) (num-test (<= 0 1234) #t) (num-test (> 0 1234) #f) (num-test (>= 0 1234) #f) (num-test (+ 0 123.4) 123.4) (num-test (- 0 123.4) -123.4) (num-test (* 0 123.4) 0.0) (num-test (/ 0 123.4) 0.0) (num-test (= 0 123.4) #f) (num-test (< 0 123.4) #t) (num-test (<= 0 123.4) #t) (num-test (> 0 123.4) #f) (num-test (>= 0 123.4) #f) (num-test (+ 0 1234/11) 1234/11) (num-test (- 0 1234/11) -1234/11) (num-test (* 0 1234/11) 0) (num-test (/ 0 1234/11) 0) (num-test (= 0 1234/11) #f) (num-test (< 0 1234/11) #t) (num-test (<= 0 1234/11) #t) (num-test (> 0 1234/11) #f) (num-test (>= 0 1234/11) #f) (num-test (+ 0 1.234+1.234i) 1.234+1.234i) (num-test (- 0 1.234+1.234i) -1.234-1.234i) (num-test (* 0 1.234+1.234i) 0.0) (num-test (/ 0 1.234+1.234i) 0.0) (num-test (= 0 1.234+1.234i) #f) (num-test (+ 0 -1.0+1.0i) -1.0+1.0i) (num-test (- 0 -1.0+1.0i) 1.0-1.0i) (num-test (* 0 -1.0+1.0i) -0.0) (num-test (/ 0 -1.0+1.0i) -0.0) (num-test (= 0 -1.0+1.0i) #f) (num-test (+ 0 0.0+1.0i) 0.0+1.0i) (num-test (- 0 0.0+1.0i) 0.0-1.0i) (num-test (* 0 0.0+1.0i) 0.0) (num-test (/ 0 0.0+1.0i) 0.0) (num-test (= 0 0.0+1.0i) #f) (num-test (+ 0.0 1) 1.0) (num-test (- 0.0 1) -1.0) (num-test (* 0.0 1) 0.0) (num-test (/ 0.0 1) 0.0) (num-test (= 0.0 1) #f) (num-test (< 0.0 1) #t) (num-test (<= 0.0 1) #t) (num-test (> 0.0 1) #f) (num-test (>= 0.0 1) #f) (num-test (+ 0.0 1.0) 1.0) (num-test (- 0.0 1.0) -1.0) (num-test (* 0.0 1.0) 0.0) (num-test (/ 0.0 1.0) 0.0) (num-test (= 0.0 1.0) #f) (num-test (< 0.0 1.0) #t) (num-test (<= 0.0 1.0) #t) (num-test (> 0.0 1.0) #f) (num-test (>= 0.0 1.0) #f) (num-test (+ 0.0 1/1) 1.0) (num-test (- 0.0 1/1) -1.0) (num-test (* 0.0 1/1) 0.0) (num-test (/ 0.0 1/1) 0.0) (num-test (= 0.0 1/1) #f) (num-test (< 0.0 1/1) #t) (num-test (<= 0.0 1/1) #t) (num-test (> 0.0 1/1) #f) (num-test (>= 0.0 1/1) #f) (num-test (+ 0.0 1.0+1.0i) 1.0+1.0i) (num-test (- 0.0 1.0+1.0i) -1.0-1.0i) (num-test (* 0.0 1.0+1.0i) 0.0) (num-test (/ 0.0 1.0+1.0i) 0.0) (num-test (= 0.0 1.0+1.0i) #f) (num-test (+ 0.0 0) 0.0) (num-test (- 0.0 0) 0.0) (num-test (* 0.0 0) 0.0) (num-test (+ 0.0 0.0) 0.0) (num-test (- 0.0 0.0) 0.0) (num-test (* 0.0 0.0) 0.0) (num-test (+ 0.0 1234) 1234.0) (num-test (- 0.0 1234) -1234.0) (num-test (* 0.0 1234) 0.0) (num-test (/ 0.0 1234) 0.0) (num-test (= 0.0 1234) #f) (num-test (< 0.0 1234) #t) (num-test (<= 0.0 1234) #t) (num-test (> 0.0 1234) #f) (num-test (>= 0.0 1234) #f) (num-test (+ 0.0 123.4) 123.4) (num-test (- 0.0 123.4) -123.4) (num-test (* 0.0 123.4) 0.0) (num-test (/ 0.0 123.4) 0.0) (num-test (= 0.0 123.4) #f) (num-test (< 0.0 123.4) #t) (num-test (<= 0.0 123.4) #t) (num-test (> 0.0 123.4) #f) (num-test (>= 0.0 123.4) #f) (num-test (+ 0.0 1234/11) 112.18181818181819) (num-test (- 0.0 1234/11) -112.18181818181819) (num-test (* 0.0 1234/11) 0.0) (num-test (/ 0.0 1234/11) 0.0) (num-test (= 0.0 1234/11) #f) (num-test (< 0.0 1234/11) #t) (num-test (<= 0.0 1234/11) #t) (num-test (> 0.0 1234/11) #f) (num-test (>= 0.0 1234/11) #f) (num-test (+ 0.0 1.234+1.234i) 1.234+1.234i) (num-test (- 0.0 1.234+1.234i) -1.234-1.234i) (num-test (* 0.0 1.234+1.234i) 0.0) (num-test (/ 0.0 1.234+1.234i) 0.0) (num-test (= 0.0 1.234+1.234i) #f) (num-test (+ 0.0 -1.0+1.0i) -1.0+1.0i) (num-test (- 0.0 -1.0+1.0i) 1.0-1.0i) (num-test (* 0.0 -1.0+1.0i) -0.0) (num-test (/ 0.0 -1.0+1.0i) -0.0) (num-test (= 0.0 -1.0+1.0i) #f) (num-test (+ 0.0 0.0+1.0i) 0.0+1.0i) (num-test (- 0.0 0.0+1.0i) 0.0-1.0i) (num-test (* 0.0 0.0+1.0i) 0.0) (num-test (/ 0.0 0.0+1.0i) 0.0) (num-test (= 0.0 0.0+1.0i) #f) (num-test (+ 1234 1) 1235) (num-test (- 1234 1) 1233) (num-test (* 1234 1) 1234) (num-test (/ 1234 1) 1234) (num-test (= 1234 1) #f) (num-test (< 1234 1) #f) (num-test (<= 1234 1) #f) (num-test (> 1234 1) #t) (num-test (>= 1234 1) #t) (num-test (+ 1234 1.0) 1235.0) (num-test (- 1234 1.0) 1233.0) (num-test (* 1234 1.0) 1234.0) (num-test (/ 1234 1.0) 1234.0) (num-test (= 1234 1.0) #f) (num-test (< 1234 1.0) #f) (num-test (<= 1234 1.0) #f) (num-test (> 1234 1.0) #t) (num-test (>= 1234 1.0) #t) (num-test (+ 1234 1/1) 1235) (num-test (- 1234 1/1) 1233) (num-test (* 1234 1/1) 1234) (num-test (/ 1234 1/1) 1234) (num-test (= 1234 1/1) #f) (num-test (< 1234 1/1) #f) (num-test (<= 1234 1/1) #f) (num-test (> 1234 1/1) #t) (num-test (>= 1234 1/1) #t) (num-test (+ 1234 1.0+1.0i) 1235.0+1.0i) (num-test (- 1234 1.0+1.0i) 1233.0-1.0i) (num-test (* 1234 1.0+1.0i) 1234.0+1234.0i) (num-test (/ 1234 1.0+1.0i) 617.0-617.0i) (num-test (= 1234 1.0+1.0i) #f) (num-test (+ 1234 0) 1234) (num-test (- 1234 0) 1234) (num-test (* 1234 0) 0) (num-test (+ 1234 0.0) 1234.0) (num-test (- 1234 0.0) 1234.0) (num-test (* 1234 0.0) 0.0) (num-test (+ 1234 1234) 2468) (num-test (- 1234 1234) 0) (num-test (* 1234 1234) 1522756) (num-test (/ 1234 1234) 1) (num-test (= 1234 1234) #t) (num-test (< 1234 1234) #f) (num-test (<= 1234 1234) #t) (num-test (> 1234 1234) #f) (num-test (>= 1234 1234) #t) (num-test (+ 1234 123.4) 1357.4) (num-test (- 1234 123.4) 1110.59999999999991) (num-test (* 1234 123.4) 152275.60000000000582) (num-test (/ 1234 123.4) 10.0) (num-test (= 1234 123.4) #f) (num-test (< 1234 123.4) #f) (num-test (<= 1234 123.4) #f) (num-test (> 1234 123.4) #t) (num-test (>= 1234 123.4) #t) (num-test (+ 1234 1234/11) 14808/11) (num-test (- 1234 1234/11) 12340/11) (num-test (* 1234 1234/11) 1522756/11) (num-test (/ 1234 1234/11) 11) (num-test (= 1234 1234/11) #f) (num-test (< 1234 1234/11) #f) (num-test (<= 1234 1234/11) #f) (num-test (> 1234 1234/11) #t) (num-test (>= 1234 1234/11) #t) (num-test (+ 1234 1.234+1.234i) 1235.23399999999992+1.234i) (num-test (- 1234 1.234+1.234i) 1232.766-1.234i) (num-test (* 1234 1.234+1.234i) 1522.756+1522.756i) (num-test (/ 1234 1.234+1.234i) 500.0-500.0i) (num-test (= 1234 1.234+1.234i) #f) (num-test (+ 1234 -1.0+1.0i) 1233.0+1.0i) (num-test (- 1234 -1.0+1.0i) 1235.0-1.0i) (num-test (* 1234 -1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1234 -1.0+1.0i) -617.0-617.0i) (num-test (= 1234 -1.0+1.0i) #f) (num-test (+ 1234 0.0+1.0i) 1234.0+1.0i) (num-test (- 1234 0.0+1.0i) 1234.0-1.0i) (num-test (* 1234 0.0+1.0i) 0.0+1234.0i) (num-test (/ 1234 0.0+1.0i) 0.0-1234.0i) (num-test (= 1234 0.0+1.0i) #f) (num-test (+ 123.4 1) 124.4) (num-test (- 123.4 1) 122.4) (num-test (* 123.4 1) 123.4) (num-test (/ 123.4 1) 123.4) (num-test (= 123.4 1) #f) (num-test (< 123.4 1) #f) (num-test (<= 123.4 1) #f) (num-test (> 123.4 1) #t) (num-test (>= 123.4 1) #t) (num-test (+ 123.4 1.0) 124.4) (num-test (- 123.4 1.0) 122.4) (num-test (* 123.4 1.0) 123.4) (num-test (/ 123.4 1.0) 123.4) (num-test (= 123.4 1.0) #f) (num-test (< 123.4 1.0) #f) (num-test (<= 123.4 1.0) #f) (num-test (> 123.4 1.0) #t) (num-test (>= 123.4 1.0) #t) (num-test (+ 123.4 1/1) 124.4) (num-test (- 123.4 1/1) 122.4) (num-test (* 123.4 1/1) 123.4) (num-test (/ 123.4 1/1) 123.4) (num-test (= 123.4 1/1) #f) (num-test (< 123.4 1/1) #f) (num-test (<= 123.4 1/1) #f) (num-test (> 123.4 1/1) #t) (num-test (>= 123.4 1/1) #t) (num-test (+ 123.4 1.0+1.0i) 124.4+1.0i) (num-test (- 123.4 1.0+1.0i) 122.4-1.0i) (num-test (* 123.4 1.0+1.0i) 123.4+123.4i) (num-test (/ 123.4 1.0+1.0i) 61.7-61.7i) (num-test (= 123.4 1.0+1.0i) #f) (num-test (+ 123.4 0) 123.4) (num-test (- 123.4 0) 123.4) (num-test (* 123.4 0) 0.0) (num-test (+ 123.4 0.0) 123.4) (num-test (- 123.4 0.0) 123.4) (num-test (* 123.4 0.0) 0.0) (num-test (+ 123.4 1234) 1357.4) (num-test (- 123.4 1234) -1110.59999999999991) (num-test (* 123.4 1234) 152275.60000000000582) (num-test (/ 123.4 1234) 0.1) (num-test (= 123.4 1234) #f) (num-test (< 123.4 1234) #t) (num-test (<= 123.4 1234) #t) (num-test (> 123.4 1234) #f) (num-test (>= 123.4 1234) #f) (num-test (+ 123.4 123.4) 246.8) (num-test (- 123.4 123.4) 0.0) (num-test (* 123.4 123.4) 15227.56000000000131) (num-test (/ 123.4 123.4) 1.0) (num-test (= 123.4 123.4) #t) (num-test (< 123.4 123.4) #f) (num-test (<= 123.4 123.4) #t) (num-test (> 123.4 123.4) #f) (num-test (>= 123.4 123.4) #t) (num-test (+ 123.4 1234/11) 235.58181818181819) (num-test (- 123.4 1234/11) 11.21818181818182) (num-test (* 123.4 1234/11) 13843.23636363636433) (num-test (/ 123.4 1234/11) 1.10000000000000) (num-test (= 123.4 1234/11) #f) (num-test (< 123.4 1234/11) #f) (num-test (<= 123.4 1234/11) #f) (num-test (> 123.4 1234/11) #t) (num-test (>= 123.4 1234/11) #t) (num-test (+ 123.4 1.234+1.234i) 124.634+1.234i) (num-test (- 123.4 1.234+1.234i) 122.16600000000001-1.234i) (num-test (* 123.4 1.234+1.234i) 152.2756+152.2756i) (num-test (/ 123.4 1.234+1.234i) 50.0-50.0i) (num-test (= 123.4 1.234+1.234i) #f) (num-test (+ 123.4 -1.0+1.0i) 122.4+1.0i) (num-test (- 123.4 -1.0+1.0i) 124.4-1.0i) (num-test (* 123.4 -1.0+1.0i) -123.4+123.4i) (num-test (/ 123.4 -1.0+1.0i) -61.7-61.7i) (num-test (= 123.4 -1.0+1.0i) #f) (num-test (+ 123.4 0.0+1.0i) 123.4+1.0i) (num-test (- 123.4 0.0+1.0i) 123.4-1.0i) (num-test (* 123.4 0.0+1.0i) 0.0+123.4i) (num-test (/ 123.4 0.0+1.0i) 0.0-123.4i) (num-test (= 123.4 0.0+1.0i) #f) (num-test (+ 1234/11 1) 1245/11) (num-test (- 1234/11 1) 1223/11) (num-test (* 1234/11 1) 1234/11) (num-test (/ 1234/11 1) 1234/11) (num-test (= 1234/11 1) #f) (num-test (< 1234/11 1) #f) (num-test (<= 1234/11 1) #f) (num-test (> 1234/11 1) #t) (num-test (>= 1234/11 1) #t) (num-test (+ 1234/11 1.0) 113.18181818181819) (num-test (- 1234/11 1.0) 111.18181818181819) (num-test (* 1234/11 1.0) 112.18181818181819) (num-test (/ 1234/11 1.0) 112.18181818181819) (num-test (= 1234/11 1.0) #f) (num-test (< 1234/11 1.0) #f) (num-test (<= 1234/11 1.0) #f) (num-test (> 1234/11 1.0) #t) (num-test (>= 1234/11 1.0) #t) (num-test (+ 1234/11 1/1) 1245/11) (num-test (- 1234/11 1/1) 1223/11) (num-test (* 1234/11 1/1) 1234/11) (num-test (/ 1234/11 1/1) 1234/11) (num-test (= 1234/11 1/1) #f) (num-test (< 1234/11 1/1) #f) (num-test (<= 1234/11 1/1) #f) (num-test (> 1234/11 1/1) #t) (num-test (>= 1234/11 1/1) #t) (num-test (+ 1234/11 1.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1234/11 1.0+1.0i) 111.18181818181819-1.0i) (num-test (* 1234/11 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1.0+1.0i) 56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1.0+1.0i) #f) (num-test (+ 1234/11 0) 1234/11) (num-test (- 1234/11 0) 1234/11) (num-test (* 1234/11 0) 0) (num-test (+ 1234/11 0.0) 112.18181818181819) (num-test (- 1234/11 0.0) 112.18181818181819) (num-test (* 1234/11 0.0) 0.0) (num-test (+ 1234/11 1234) 14808/11) (num-test (- 1234/11 1234) -12340/11) (num-test (* 1234/11 1234) 1522756/11) (num-test (/ 1234/11 1234) 1/11) (num-test (= 1234/11 1234) #f) (num-test (< 1234/11 1234) #t) (num-test (<= 1234/11 1234) #t) (num-test (> 1234/11 1234) #f) (num-test (>= 1234/11 1234) #f) (num-test (+ 1234/11 123.4) 235.58181818181819) (num-test (- 1234/11 123.4) -11.21818181818182) (num-test (* 1234/11 123.4) 13843.23636363636433) (num-test (/ 1234/11 123.4) 0.90909090909091) (num-test (= 1234/11 123.4) #f) (num-test (< 1234/11 123.4) #t) (num-test (<= 1234/11 123.4) #t) (num-test (> 1234/11 123.4) #f) (num-test (>= 1234/11 123.4) #f) (num-test (+ 1234/11 1234/11) 2468/11) (num-test (- 1234/11 1234/11) 0) (num-test (* 1234/11 1234/11) 1522756/121) (num-test (/ 1234/11 1234/11) 1) (num-test (= 1234/11 1234/11) #t) (num-test (< 1234/11 1234/11) #f) (num-test (<= 1234/11 1234/11) #t) (num-test (> 1234/11 1234/11) #f) (num-test (>= 1234/11 1234/11) #t) (num-test (+ 1234/11 1.234+1.234i) 113.41581818181818+1.234i) (num-test (- 1234/11 1.234+1.234i) 110.94781818181819-1.234i) (num-test (* 1234/11 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1.234+1.234i) 45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1.234+1.234i) #f) (num-test (+ 1234/11 -1.0+1.0i) 111.18181818181819+1.0i) (num-test (- 1234/11 -1.0+1.0i) 113.18181818181819-1.0i) (num-test (* 1234/11 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 -1.0+1.0i) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 -1.0+1.0i) #f) (num-test (+ 1234/11 0.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1234/11 0.0+1.0i) 112.18181818181819-1.0i) (num-test (* 1234/11 0.0+1.0i) 0.0+112.18181818181819i) (num-test (/ 1234/11 0.0+1.0i) 0.0-112.18181818181819i) (num-test (= 1234/11 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 1) 2.234+1.234i) (num-test (- 1.234+1.234i 1) 0.234+1.234i) (num-test (* 1.234+1.234i 1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1) 1.234+1.234i) (num-test (= 1.234+1.234i 1) #f) (num-test (+ 1.234+1.234i 1.0) 2.234+1.234i) (num-test (- 1.234+1.234i 1.0) 0.234+1.234i) (num-test (* 1.234+1.234i 1.0) 1.234+1.234i) (num-test (/ 1.234+1.234i 1.0) 1.234+1.234i) (num-test (= 1.234+1.234i 1.0) #f) (num-test (+ 1.234+1.234i 1/1) 2.234+1.234i) (num-test (- 1.234+1.234i 1/1) 0.234+1.234i) (num-test (* 1.234+1.234i 1/1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1/1) 1.234+1.234i) (num-test (= 1.234+1.234i 1/1) #f) (num-test (+ 1.234+1.234i 1.0+1.0i) 2.234+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i) 0.234+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i) 0.0+2.468i) (num-test (/ 1.234+1.234i 1.0+1.0i) 1.234) (num-test (= 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 0) 1.234+1.234i) (num-test (- 1.234+1.234i 0) 1.234+1.234i) (num-test (* 1.234+1.234i 0) 0.0) (num-test (+ 1.234+1.234i 0.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) 0.0) (num-test (+ 1.234+1.234i 1234) 1235.23399999999992+1.234i) (num-test (- 1.234+1.234i 1234) -1232.766+1.234i) (num-test (* 1.234+1.234i 1234) 1522.756+1522.756i) (num-test (/ 1.234+1.234i 1234) 0.001+0.001i) (num-test (= 1.234+1.234i 1234) #f) (num-test (+ 1.234+1.234i 123.4) 124.634+1.234i) (num-test (- 1.234+1.234i 123.4) -122.16600000000001+1.234i) (num-test (* 1.234+1.234i 123.4) 152.2756+152.2756i) (num-test (/ 1.234+1.234i 123.4) 0.01+0.01i) (num-test (= 1.234+1.234i 123.4) #f) (num-test (+ 1.234+1.234i 1234/11) 113.41581818181818+1.234i) (num-test (- 1.234+1.234i 1234/11) -110.94781818181818+1.234i) (num-test (* 1.234+1.234i 1234/11) 138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1234/11) 0.011+0.011i) (num-test (= 1.234+1.234i 1234/11) #f) (num-test (+ 1.234+1.234i 1.234+1.234i) 2.468+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i) 0.0) (num-test (* 1.234+1.234i 1.234+1.234i) 0.0+3.04551200000000i) (num-test (/ 1.234+1.234i 1.234+1.234i) 1.0) (num-test (= 1.234+1.234i 1.234+1.234i) #t) (num-test (+ 1.234+1.234i -1.0+1.0i) 0.234+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i) 2.234+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i) -2.468) (num-test (/ 1.234+1.234i -1.0+1.0i) -0.0-1.234i) (num-test (= 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 0.0+1.0i) 1.234+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i) 1.234+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i) -1.234+1.234i) (num-test (/ 1.234+1.234i 0.0+1.0i) 1.234-1.234i) (num-test (= 1.234+1.234i 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 1) 0.0+1.0i) (num-test (- -1.0+1.0i 1) -2.0+1.0i) (num-test (* -1.0+1.0i 1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1) -1.0+1.0i) (num-test (= -1.0+1.0i 1) #f) (num-test (+ -1.0+1.0i 1.0) 0.0+1.0i) (num-test (- -1.0+1.0i 1.0) -2.0+1.0i) (num-test (* -1.0+1.0i 1.0) -1.0+1.0i) (num-test (/ -1.0+1.0i 1.0) -1.0+1.0i) (num-test (= -1.0+1.0i 1.0) #f) (num-test (+ -1.0+1.0i 1/1) 0.0+1.0i) (num-test (- -1.0+1.0i 1/1) -2.0+1.0i) (num-test (* -1.0+1.0i 1/1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1/1) -1.0+1.0i) (num-test (= -1.0+1.0i 1/1) #f) (num-test (+ -1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (- -1.0+1.0i 1.0+1.0i) -2.0) (num-test (* -1.0+1.0i 1.0+1.0i) -2.0) (num-test (/ -1.0+1.0i 1.0+1.0i) 0.0+1.0i) (num-test (= -1.0+1.0i 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 0) -1.0+1.0i) (num-test (- -1.0+1.0i 0) -1.0+1.0i) (num-test (* -1.0+1.0i 0) -0.0) (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) -0.0) (num-test (+ -1.0+1.0i 1234) 1233.0+1.0i) (num-test (- -1.0+1.0i 1234) -1235.0+1.0i) (num-test (* -1.0+1.0i 1234) -1234.0+1234.0i) (num-test (/ -1.0+1.0i 1234) -0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1234) #f) (num-test (+ -1.0+1.0i 123.4) 122.4+1.0i) (num-test (- -1.0+1.0i 123.4) -124.4+1.0i) (num-test (* -1.0+1.0i 123.4) -123.4+123.4i) (num-test (/ -1.0+1.0i 123.4) -0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 123.4) #f) (num-test (+ -1.0+1.0i 1234/11) 111.18181818181819+1.0i) (num-test (- -1.0+1.0i 1234/11) -113.18181818181819+1.0i) (num-test (* -1.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ -1.0+1.0i 1234/11) -0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1234/11) #f) (num-test (+ -1.0+1.0i 1.234+1.234i) 0.234+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i) -2.234-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i) -2.468) (num-test (/ -1.0+1.0i 1.234+1.234i) 0.0+0.81037277147488i) (num-test (= -1.0+1.0i 1.234+1.234i) #f) (num-test (+ -1.0+1.0i -1.0+1.0i) -2.0+2.0i) (num-test (- -1.0+1.0i -1.0+1.0i) 0.0) (num-test (* -1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (/ -1.0+1.0i -1.0+1.0i) 1.0) (num-test (= -1.0+1.0i -1.0+1.0i) #t) (num-test (+ -1.0+1.0i 0.0+1.0i) -1.0+2.0i) (num-test (- -1.0+1.0i 0.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 0.0+1.0i) 1.0+1.0i) (num-test (= -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 1) 1.0+1.0i) (num-test (- 0.0+1.0i 1) -1.0+1.0i) (num-test (* 0.0+1.0i 1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1) 0.0+1.0i) (num-test (= 0.0+1.0i 1) #f) (num-test (+ 0.0+1.0i 1.0) 1.0+1.0i) (num-test (- 0.0+1.0i 1.0) -1.0+1.0i) (num-test (* 0.0+1.0i 1.0) 0.0+1.0i) (num-test (/ 0.0+1.0i 1.0) 0.0+1.0i) (num-test (= 0.0+1.0i 1.0) #f) (num-test (+ 0.0+1.0i 1/1) 1.0+1.0i) (num-test (- 0.0+1.0i 1/1) -1.0+1.0i) (num-test (* 0.0+1.0i 1/1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1/1) 0.0+1.0i) (num-test (= 0.0+1.0i 1/1) #f) (num-test (+ 0.0+1.0i 1.0+1.0i) 1.0+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i) -1.0) (num-test (* 0.0+1.0i 1.0+1.0i) -1.0+1.0i) (num-test (/ 0.0+1.0i 1.0+1.0i) 0.5+0.5i) (num-test (= 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 0) 0.0+1.0i) (num-test (- 0.0+1.0i 0) 0.0+1.0i) (num-test (* 0.0+1.0i 0) 0.0) (num-test (+ 0.0+1.0i 0.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) 0.0) (num-test (+ 0.0+1.0i 1234) 1234.0+1.0i) (num-test (- 0.0+1.0i 1234) -1234.0+1.0i) (num-test (* 0.0+1.0i 1234) 0.0+1234.0i) (num-test (/ 0.0+1.0i 1234) 0.0+0.00081037277147i) (num-test (= 0.0+1.0i 1234) #f) (num-test (+ 0.0+1.0i 123.4) 123.4+1.0i) (num-test (- 0.0+1.0i 123.4) -123.4+1.0i) (num-test (* 0.0+1.0i 123.4) 0.0+123.4i) (num-test (/ 0.0+1.0i 123.4) 0.0+0.00810372771475i) (num-test (= 0.0+1.0i 123.4) #f) (num-test (+ 0.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (- 0.0+1.0i 1234/11) -112.18181818181819+1.0i) (num-test (* 0.0+1.0i 1234/11) 0.0+112.18181818181819i) (num-test (/ 0.0+1.0i 1234/11) 0.0+0.00891410048622i) (num-test (= 0.0+1.0i 1234/11) #f) (num-test (+ 0.0+1.0i 1.234+1.234i) 1.234+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i) -1.234-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i) -1.234+1.234i) (num-test (/ 0.0+1.0i 1.234+1.234i) 0.40518638573744+0.40518638573744i) (num-test (= 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 0.0+1.0i -1.0+1.0i) -1.0+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i) 1.0) (num-test (* 0.0+1.0i -1.0+1.0i) -1.0-1.0i) (num-test (/ 0.0+1.0i -1.0+1.0i) 0.5-0.5i) (num-test (= 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 0.0+1.0i) 0.0+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i) 0.0) (num-test (* 0.0+1.0i 0.0+1.0i) -1.0) (num-test (/ 0.0+1.0i 0.0+1.0i) 1.0) (num-test (= 0.0+1.0i 0.0+1.0i) #t) (num-test (+ 1 1 1) 3) (num-test (- 1 1 1) -1) (num-test (* 1 1 1) 1) (num-test (/ 1 1 1) 1) (num-test (= 1 1 1) #t) (num-test (< 1 1 1) #f) (num-test (<= 1 1 1) #t) (num-test (> 1 1 1) #f) (num-test (>= 1 1 1) #t) (num-test (+ 1 1 1.0) 3.0) (num-test (- 1 1 1.0) -1.0) (num-test (* 1 1 1.0) 1.0) (num-test (/ 1 1 1.0) 1.0) (num-test (= 1 1 1.0) #t) (num-test (< 1 1 1.0) #f) (num-test (<= 1 1 1.0) #t) (num-test (> 1 1 1.0) #f) (num-test (>= 1 1 1.0) #t) (num-test (+ 1 1 1/1) 3) (num-test (- 1 1 1/1) -1) (num-test (* 1 1 1/1) 1) (num-test (/ 1 1 1/1) 1) (num-test (= 1 1 1/1) #t) (num-test (< 1 1 1/1) #f) (num-test (<= 1 1 1/1) #t) (num-test (> 1 1 1/1) #f) (num-test (>= 1 1 1/1) #t) (num-test (+ 1 1 1.0+1.0i) 3.0+1.0i) (num-test (- 1 1 1.0+1.0i) -1.0-1.0i) (num-test (* 1 1 1.0+1.0i) 1.0+1.0i) (num-test (/ 1 1 1.0+1.0i) 0.5-0.5i) (num-test (= 1 1 1.0+1.0i) #f) (num-test (+ 1 1 0) 2) (num-test (- 1 1 0) 0) (num-test (* 1 1 0) 0) (num-test (+ 1 1 0.0) 2.0) (num-test (- 1 1 0.0) 0.0) (num-test (* 1 1 0.0) 0.0) (num-test (+ 1 1 1234) 1236) (num-test (- 1 1 1234) -1234) (num-test (* 1 1 1234) 1234) (num-test (/ 1 1 1234) 1/1234) (num-test (= 1 1 1234) #f) (num-test (< 1 1 1234) #f) (num-test (<= 1 1 1234) #t) (num-test (> 1 1 1234) #f) (num-test (>= 1 1 1234) #f) (num-test (+ 1 1 123.4) 125.4) (num-test (- 1 1 123.4) -123.4) (num-test (* 1 1 123.4) 123.4) (num-test (/ 1 1 123.4) 0.00810372771475) (num-test (= 1 1 123.4) #f) (num-test (< 1 1 123.4) #f) (num-test (<= 1 1 123.4) #t) (num-test (> 1 1 123.4) #f) (num-test (>= 1 1 123.4) #f) (num-test (+ 1 1 1234/11) 1256/11) (num-test (- 1 1 1234/11) -1234/11) (num-test (* 1 1 1234/11) 1234/11) (num-test (/ 1 1 1234/11) 11/1234) (num-test (= 1 1 1234/11) #f) (num-test (< 1 1 1234/11) #f) (num-test (<= 1 1 1234/11) #t) (num-test (> 1 1 1234/11) #f) (num-test (>= 1 1 1234/11) #f) (num-test (+ 1 1 1.234+1.234i) 3.234+1.234i) (num-test (- 1 1 1.234+1.234i) -1.234-1.234i) (num-test (* 1 1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1 1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1 1 1.234+1.234i) #f) (num-test (+ 1 1 -1.0+1.0i) 1.0+1.0i) (num-test (- 1 1 -1.0+1.0i) 1.0-1.0i) (num-test (* 1 1 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1 1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1 1 -1.0+1.0i) #f) (num-test (+ 1 1 0.0+1.0i) 2.0+1.0i) (num-test (- 1 1 0.0+1.0i) 0.0-1.0i) (num-test (* 1 1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1 1 0.0+1.0i) 0.0-1.0i) (num-test (= 1 1 0.0+1.0i) #f) (num-test (+ 1 1.0 1) 3.0) (num-test (- 1 1.0 1) -1.0) (num-test (* 1 1.0 1) 1.0) (num-test (/ 1 1.0 1) 1.0) (num-test (= 1 1.0 1) #t) (num-test (< 1 1.0 1) #f) (num-test (<= 1 1.0 1) #t) (num-test (> 1 1.0 1) #f) (num-test (>= 1 1.0 1) #t) (num-test (+ 1 1.0 1.0) 3.0) (num-test (- 1 1.0 1.0) -1.0) (num-test (* 1 1.0 1.0) 1.0) (num-test (/ 1 1.0 1.0) 1.0) (num-test (= 1 1.0 1.0) #t) (num-test (< 1 1.0 1.0) #f) (num-test (<= 1 1.0 1.0) #t) (num-test (> 1 1.0 1.0) #f) (num-test (>= 1 1.0 1.0) #t) (num-test (+ 1 1.0 1/1) 3.0) (num-test (- 1 1.0 1/1) -1.0) (num-test (* 1 1.0 1/1) 1.0) (num-test (/ 1 1.0 1/1) 1.0) (num-test (= 1 1.0 1/1) #t) (num-test (< 1 1.0 1/1) #f) (num-test (<= 1 1.0 1/1) #t) (num-test (> 1 1.0 1/1) #f) (num-test (>= 1 1.0 1/1) #t) (num-test (+ 1 1.0 1.0+1.0i) 3.0+1.0i) (num-test (- 1 1.0 1.0+1.0i) -1.0-1.0i) (num-test (* 1 1.0 1.0+1.0i) 1.0+1.0i) (num-test (/ 1 1.0 1.0+1.0i) 0.5-0.5i) (num-test (= 1 1.0 1.0+1.0i) #f) (num-test (+ 1 1.0 0) 2.0) (num-test (- 1 1.0 0) 0.0) (num-test (* 1 1.0 0) 0.0) (num-test (+ 1 1.0 0.0) 2.0) (num-test (- 1 1.0 0.0) 0.0) (num-test (* 1 1.0 0.0) 0.0) (num-test (+ 1 1.0 1234) 1236.0) (num-test (- 1 1.0 1234) -1234.0) (num-test (* 1 1.0 1234) 1234.0) (num-test (/ 1 1.0 1234) 0.00081037277147) (num-test (= 1 1.0 1234) #f) (num-test (< 1 1.0 1234) #f) (num-test (<= 1 1.0 1234) #t) (num-test (> 1 1.0 1234) #f) (num-test (>= 1 1.0 1234) #f) (num-test (+ 1 1.0 123.4) 125.4) (num-test (- 1 1.0 123.4) -123.4) (num-test (* 1 1.0 123.4) 123.4) (num-test (/ 1 1.0 123.4) 0.00810372771475) (num-test (= 1 1.0 123.4) #f) (num-test (< 1 1.0 123.4) #f) (num-test (<= 1 1.0 123.4) #t) (num-test (> 1 1.0 123.4) #f) (num-test (>= 1 1.0 123.4) #f) (num-test (+ 1 1.0 1234/11) 114.18181818181819) (num-test (- 1 1.0 1234/11) -112.18181818181819) (num-test (* 1 1.0 1234/11) 112.18181818181819) (num-test (/ 1 1.0 1234/11) 0.00891410048622) (num-test (= 1 1.0 1234/11) #f) (num-test (< 1 1.0 1234/11) #f) (num-test (<= 1 1.0 1234/11) #t) (num-test (> 1 1.0 1234/11) #f) (num-test (>= 1 1.0 1234/11) #f) (num-test (+ 1 1.0 1.234+1.234i) 3.234+1.234i) (num-test (- 1 1.0 1.234+1.234i) -1.234-1.234i) (num-test (* 1 1.0 1.234+1.234i) 1.234+1.234i) (num-test (/ 1 1.0 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1 1.0 1.234+1.234i) #f) (num-test (+ 1 1.0 -1.0+1.0i) 1.0+1.0i) (num-test (- 1 1.0 -1.0+1.0i) 1.0-1.0i) (num-test (* 1 1.0 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1 1.0 -1.0+1.0i) -0.5-0.5i) (num-test (= 1 1.0 -1.0+1.0i) #f) (num-test (+ 1 1.0 0.0+1.0i) 2.0+1.0i) (num-test (- 1 1.0 0.0+1.0i) 0.0-1.0i) (num-test (* 1 1.0 0.0+1.0i) 0.0+1.0i) (num-test (/ 1 1.0 0.0+1.0i) 0.0-1.0i) (num-test (= 1 1.0 0.0+1.0i) #f) (num-test (+ 1 1/1 1) 3) (num-test (- 1 1/1 1) -1) (num-test (* 1 1/1 1) 1) (num-test (/ 1 1/1 1) 1) (num-test (= 1 1/1 1) #t) (num-test (< 1 1/1 1) #f) (num-test (<= 1 1/1 1) #t) (num-test (> 1 1/1 1) #f) (num-test (>= 1 1/1 1) #t) (num-test (+ 1 1/1 1.0) 3.0) (num-test (- 1 1/1 1.0) -1.0) (num-test (* 1 1/1 1.0) 1.0) (num-test (/ 1 1/1 1.0) 1.0) (num-test (= 1 1/1 1.0) #t) (num-test (< 1 1/1 1.0) #f) (num-test (<= 1 1/1 1.0) #t) (num-test (> 1 1/1 1.0) #f) (num-test (>= 1 1/1 1.0) #t) (num-test (+ 1 1/1 1/1) 3) (num-test (- 1 1/1 1/1) -1) (num-test (* 1 1/1 1/1) 1) (num-test (/ 1 1/1 1/1) 1) (num-test (= 1 1/1 1/1) #t) (num-test (< 1 1/1 1/1) #f) (num-test (<= 1 1/1 1/1) #t) (num-test (> 1 1/1 1/1) #f) (num-test (>= 1 1/1 1/1) #t) (num-test (+ 1 1/1 1.0+1.0i) 3.0+1.0i) (num-test (- 1 1/1 1.0+1.0i) -1.0-1.0i) (num-test (* 1 1/1 1.0+1.0i) 1.0+1.0i) (num-test (/ 1 1/1 1.0+1.0i) 0.5-0.5i) (num-test (= 1 1/1 1.0+1.0i) #f) (num-test (+ 1 1/1 0) 2) (num-test (- 1 1/1 0) 0) (num-test (* 1 1/1 0) 0) (num-test (+ 1 1/1 0.0) 2.0) (num-test (- 1 1/1 0.0) 0.0) (num-test (* 1 1/1 0.0) 0.0) (num-test (+ 1 1/1 1234) 1236) (num-test (- 1 1/1 1234) -1234) (num-test (* 1 1/1 1234) 1234) (num-test (/ 1 1/1 1234) 1/1234) (num-test (= 1 1/1 1234) #f) (num-test (< 1 1/1 1234) #f) (num-test (<= 1 1/1 1234) #t) (num-test (> 1 1/1 1234) #f) (num-test (>= 1 1/1 1234) #f) (num-test (+ 1 1/1 123.4) 125.4) (num-test (- 1 1/1 123.4) -123.4) (num-test (* 1 1/1 123.4) 123.4) (num-test (/ 1 1/1 123.4) 0.00810372771475) (num-test (= 1 1/1 123.4) #f) (num-test (< 1 1/1 123.4) #f) (num-test (<= 1 1/1 123.4) #t) (num-test (> 1 1/1 123.4) #f) (num-test (>= 1 1/1 123.4) #f) (num-test (+ 1 1/1 1234/11) 1256/11) (num-test (- 1 1/1 1234/11) -1234/11) (num-test (* 1 1/1 1234/11) 1234/11) (num-test (/ 1 1/1 1234/11) 11/1234) (num-test (= 1 1/1 1234/11) #f) (num-test (< 1 1/1 1234/11) #f) (num-test (<= 1 1/1 1234/11) #t) (num-test (> 1 1/1 1234/11) #f) (num-test (>= 1 1/1 1234/11) #f) (num-test (+ 1 1/1 1.234+1.234i) 3.234+1.234i) (num-test (- 1 1/1 1.234+1.234i) -1.234-1.234i) (num-test (* 1 1/1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1 1/1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1 1/1 1.234+1.234i) #f) (num-test (+ 1 1/1 -1.0+1.0i) 1.0+1.0i) (num-test (- 1 1/1 -1.0+1.0i) 1.0-1.0i) (num-test (* 1 1/1 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1 1/1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1 1/1 -1.0+1.0i) #f) (num-test (+ 1 1/1 0.0+1.0i) 2.0+1.0i) (num-test (- 1 1/1 0.0+1.0i) 0.0-1.0i) (num-test (* 1 1/1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1 1/1 0.0+1.0i) 0.0-1.0i) (num-test (= 1 1/1 0.0+1.0i) #f) (num-test (+ 1 1.0+1.0i 1) 3.0+1.0i) (num-test (- 1 1.0+1.0i 1) -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.5-0.5i) (num-test (= 1 1.0+1.0i 1) #f) (num-test (+ 1 1.0+1.0i 1.0) 3.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.0+1.0i) (num-test (/ 1 1.0+1.0i 1.0) 0.5-0.5i) (num-test (= 1 1.0+1.0i 1.0) #f) (num-test (+ 1 1.0+1.0i 1/1) 3.0+1.0i) (num-test (- 1 1.0+1.0i 1/1) -1.0-1.0i) (num-test (* 1 1.0+1.0i 1/1) 1.0+1.0i) (num-test (/ 1 1.0+1.0i 1/1) 0.5-0.5i) (num-test (= 1 1.0+1.0i 1/1) #f) (num-test (+ 1 1.0+1.0i 1.0+1.0i) 3.0+2.0i) (num-test (- 1 1.0+1.0i 1.0+1.0i) -1.0-2.0i) (num-test (* 1 1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (/ 1 1.0+1.0i 1.0+1.0i) 0.0-0.5i) (num-test (= 1 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1 1.0+1.0i 0) 2.0+1.0i) (num-test (- 1 1.0+1.0i 0) 0.0-1.0i) (num-test (* 1 1.0+1.0i 0) 0.0) (num-test (+ 1 1.0+1.0i 0.0) 2.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) 0.0) (num-test (+ 1 1.0+1.0i 1234) 1236.0+1.0i) (num-test (- 1 1.0+1.0i 1234) -1234.0-1.0i) (num-test (* 1 1.0+1.0i 1234) 1234.0+1234.0i) (num-test (/ 1 1.0+1.0i 1234) 0.00040518638574-0.00040518638574i) (num-test (= 1 1.0+1.0i 1234) #f) (num-test (+ 1 1.0+1.0i 123.4) 125.4+1.0i) (num-test (- 1 1.0+1.0i 123.4) -123.4-1.0i) (num-test (* 1 1.0+1.0i 123.4) 123.4+123.4i) (num-test (/ 1 1.0+1.0i 123.4) 0.00405186385737-0.00405186385737i) (num-test (= 1 1.0+1.0i 123.4) #f) (num-test (+ 1 1.0+1.0i 1234/11) 114.18181818181819+1.0i) (num-test (- 1 1.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (* 1 1.0+1.0i 1234/11) 112.18181818181819+112.18181818181819i) (num-test (/ 1 1.0+1.0i 1234/11) 0.00445705024311-0.00445705024311i) (num-test (= 1 1.0+1.0i 1234/11) #f) (num-test (+ 1 1.0+1.0i 1.234+1.234i) 3.234+2.234i) (num-test (- 1 1.0+1.0i 1.234+1.234i) -1.234-2.234i) (num-test (* 1 1.0+1.0i 1.234+1.234i) 0.0+2.468i) (num-test (/ 1 1.0+1.0i 1.234+1.234i) 0.0-0.40518638573744i) (num-test (= 1 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1 1.0+1.0i -1.0+1.0i) 1.0+2.0i) (num-test (- 1 1.0+1.0i -1.0+1.0i) 1.0-2.0i) (num-test (* 1 1.0+1.0i -1.0+1.0i) -2.0) (num-test (/ 1 1.0+1.0i -1.0+1.0i) -0.5) (num-test (= 1 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1 1.0+1.0i 0.0+1.0i) 2.0+2.0i) (num-test (- 1 1.0+1.0i 0.0+1.0i) 0.0-2.0i) (num-test (* 1 1.0+1.0i 0.0+1.0i) -1.0+1.0i) (num-test (/ 1 1.0+1.0i 0.0+1.0i) -0.5-0.5i) (num-test (= 1 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1 0 1) 2) (num-test (- 1 0 1) 0) (num-test (* 1 0 1) 0) (num-test (+ 1 0 1.0) 2.0) (num-test (- 1 0 1.0) 0.0) (num-test (* 1 0 1.0) 0.0) (num-test (+ 1 0 1/1) 2) (num-test (- 1 0 1/1) 0) (num-test (* 1 0 1/1) 0) (num-test (+ 1 0 1.0+1.0i) 2.0+1.0i) (num-test (- 1 0 1.0+1.0i) 0.0-1.0i) (num-test (* 1 0 1.0+1.0i) 0.0) (num-test (+ 1 0 0) 1) (num-test (- 1 0 0) 1) (num-test (* 1 0 0) 0) (num-test (+ 1 0 0.0) 1.0) (num-test (- 1 0 0.0) 1.0) (num-test (* 1 0 0.0) 0.0) (num-test (+ 1 0 1234) 1235) (num-test (- 1 0 1234) -1233) (num-test (* 1 0 1234) 0) (num-test (+ 1 0 123.4) 124.4) (num-test (- 1 0 123.4) -122.4) (num-test (* 1 0 123.4) 0.0) (num-test (+ 1 0 1234/11) 1245/11) (num-test (- 1 0 1234/11) -1223/11) (num-test (* 1 0 1234/11) 0) (num-test (+ 1 0 1.234+1.234i) 2.234+1.234i) (num-test (- 1 0 1.234+1.234i) -0.234-1.234i) (num-test (* 1 0 1.234+1.234i) 0.0) (num-test (+ 1 0 -1.0+1.0i) 0.0+1.0i) (num-test (- 1 0 -1.0+1.0i) 2.0-1.0i) (num-test (* 1 0 -1.0+1.0i) -0.0) (num-test (+ 1 0 0.0+1.0i) 1.0+1.0i) (num-test (- 1 0 0.0+1.0i) 1.0-1.0i) (num-test (* 1 0 0.0+1.0i) 0.0) (num-test (+ 1 0.0 1) 2.0) (num-test (- 1 0.0 1) 0.0) (num-test (* 1 0.0 1) 0.0) (num-test (+ 1 0.0 1.0) 2.0) (num-test (- 1 0.0 1.0) 0.0) (num-test (* 1 0.0 1.0) 0.0) (num-test (+ 1 0.0 1/1) 2.0) (num-test (- 1 0.0 1/1) 0.0) (num-test (* 1 0.0 1/1) 0.0) (num-test (+ 1 0.0 1.0+1.0i) 2.0+1.0i) (num-test (- 1 0.0 1.0+1.0i) 0.0-1.0i) (num-test (* 1 0.0 1.0+1.0i) 0.0) (num-test (+ 1 0.0 0) 1.0) (num-test (- 1 0.0 0) 1.0) (num-test (* 1 0.0 0) 0.0) (num-test (+ 1 0.0 0.0) 1.0) (num-test (- 1 0.0 0.0) 1.0) (num-test (* 1 0.0 0.0) 0.0) (num-test (+ 1 0.0 1234) 1235.0) (num-test (- 1 0.0 1234) -1233.0) (num-test (* 1 0.0 1234) 0.0) (num-test (+ 1 0.0 123.4) 124.4) (num-test (- 1 0.0 123.4) -122.4) (num-test (* 1 0.0 123.4) 0.0) (num-test (+ 1 0.0 1234/11) 113.18181818181819) (num-test (- 1 0.0 1234/11) -111.18181818181819) (num-test (* 1 0.0 1234/11) 0.0) (num-test (+ 1 0.0 1.234+1.234i) 2.234+1.234i) (num-test (- 1 0.0 1.234+1.234i) -0.234-1.234i) (num-test (* 1 0.0 1.234+1.234i) 0.0) (num-test (+ 1 0.0 -1.0+1.0i) 0.0+1.0i) (num-test (- 1 0.0 -1.0+1.0i) 2.0-1.0i) (num-test (* 1 0.0 -1.0+1.0i) -0.0) (num-test (+ 1 0.0 0.0+1.0i) 1.0+1.0i) (num-test (- 1 0.0 0.0+1.0i) 1.0-1.0i) (num-test (* 1 0.0 0.0+1.0i) 0.0) (num-test (+ 1 1234 1) 1236) (num-test (- 1 1234 1) -1234) (num-test (* 1 1234 1) 1234) (num-test (/ 1 1234 1) 1/1234) (num-test (= 1 1234 1) #f) (num-test (< 1 1234 1) #f) (num-test (<= 1 1234 1) #f) (num-test (> 1 1234 1) #f) (num-test (>= 1 1234 1) #f) (num-test (+ 1 1234 1.0) 1236.0) (num-test (- 1 1234 1.0) -1234.0) (num-test (* 1 1234 1.0) 1234.0) (num-test (/ 1 1234 1.0) 0.00081037277147) (num-test (= 1 1234 1.0) #f) (num-test (< 1 1234 1.0) #f) (num-test (<= 1 1234 1.0) #f) (num-test (> 1 1234 1.0) #f) (num-test (>= 1 1234 1.0) #f) (num-test (+ 1 1234 1/1) 1236) (num-test (- 1 1234 1/1) -1234) (num-test (* 1 1234 1/1) 1234) (num-test (/ 1 1234 1/1) 1/1234) (num-test (= 1 1234 1/1) #f) (num-test (< 1 1234 1/1) #f) (num-test (<= 1 1234 1/1) #f) (num-test (> 1 1234 1/1) #f) (num-test (>= 1 1234 1/1) #f) (num-test (+ 1 1234 1.0+1.0i) 1236.0+1.0i) (num-test (- 1 1234 1.0+1.0i) -1234.0-1.0i) (num-test (* 1 1234 1.0+1.0i) 1234.0+1234.0i) (num-test (/ 1 1234 1.0+1.0i) 0.00040518638574-0.00040518638574i) (num-test (= 1 1234 1.0+1.0i) #f) (num-test (+ 1 1234 0) 1235) (num-test (- 1 1234 0) -1233) (num-test (* 1 1234 0) 0) (num-test (+ 1 1234 0.0) 1235.0) (num-test (- 1 1234 0.0) -1233.0) (num-test (* 1 1234 0.0) 0.0) (num-test (+ 1 1234 1234) 2469) (num-test (- 1 1234 1234) -2467) (num-test (* 1 1234 1234) 1522756) (num-test (/ 1 1234 1234) 1/1522756) (num-test (= 1 1234 1234) #f) (num-test (< 1 1234 1234) #f) (num-test (<= 1 1234 1234) #t) (num-test (> 1 1234 1234) #f) (num-test (>= 1 1234 1234) #f) (num-test (+ 1 1234 123.4) 1358.4) (num-test (- 1 1234 123.4) -1356.4) (num-test (* 1 1234 123.4) 152275.60000000000582) (num-test (/ 1 1234 123.4) 0.00000656704029) (num-test (= 1 1234 123.4) #f) (num-test (< 1 1234 123.4) #f) (num-test (<= 1 1234 123.4) #f) (num-test (> 1 1234 123.4) #f) (num-test (>= 1 1234 123.4) #f) (num-test (+ 1 1234 1234/11) 14819/11) (num-test (- 1 1234 1234/11) -14797/11) (num-test (* 1 1234 1234/11) 1522756/11) (num-test (/ 1 1234 1234/11) 11/1522756) (num-test (= 1 1234 1234/11) #f) (num-test (< 1 1234 1234/11) #f) (num-test (<= 1 1234 1234/11) #f) (num-test (> 1 1234 1234/11) #f) (num-test (>= 1 1234 1234/11) #f) (num-test (+ 1 1234 1.234+1.234i) 1236.23399999999992+1.234i) (num-test (- 1 1234 1.234+1.234i) -1234.23399999999992-1.234i) (num-test (* 1 1234 1.234+1.234i) 1522.756+1522.756i) (num-test (/ 1 1234 1.234+1.234i) 0.00032835201437-0.00032835201437i) (num-test (= 1 1234 1.234+1.234i) #f) (num-test (+ 1 1234 -1.0+1.0i) 1234.0+1.0i) (num-test (- 1 1234 -1.0+1.0i) -1232.0-1.0i) (num-test (* 1 1234 -1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1 1234 -1.0+1.0i) -0.00040518638574-0.00040518638574i) (num-test (= 1 1234 -1.0+1.0i) #f) (num-test (+ 1 1234 0.0+1.0i) 1235.0+1.0i) (num-test (- 1 1234 0.0+1.0i) -1233.0-1.0i) (num-test (* 1 1234 0.0+1.0i) 0.0+1234.0i) (num-test (/ 1 1234 0.0+1.0i) 0.0-0.00081037277147i) (num-test (= 1 1234 0.0+1.0i) #f) (num-test (+ 1 123.4 1) 125.4) (num-test (- 1 123.4 1) -123.4) (num-test (* 1 123.4 1) 123.4) (num-test (/ 1 123.4 1) 0.00810372771475) (num-test (= 1 123.4 1) #f) (num-test (< 1 123.4 1) #f) (num-test (<= 1 123.4 1) #f) (num-test (> 1 123.4 1) #f) (num-test (>= 1 123.4 1) #f) (num-test (+ 1 123.4 1.0) 125.4) (num-test (- 1 123.4 1.0) -123.4) (num-test (* 1 123.4 1.0) 123.4) (num-test (/ 1 123.4 1.0) 0.00810372771475) (num-test (= 1 123.4 1.0) #f) (num-test (< 1 123.4 1.0) #f) (num-test (<= 1 123.4 1.0) #f) (num-test (> 1 123.4 1.0) #f) (num-test (>= 1 123.4 1.0) #f) (num-test (+ 1 123.4 1/1) 125.4) (num-test (- 1 123.4 1/1) -123.4) (num-test (* 1 123.4 1/1) 123.4) (num-test (/ 1 123.4 1/1) 0.00810372771475) (num-test (= 1 123.4 1/1) #f) (num-test (< 1 123.4 1/1) #f) (num-test (<= 1 123.4 1/1) #f) (num-test (> 1 123.4 1/1) #f) (num-test (>= 1 123.4 1/1) #f) (num-test (+ 1 123.4 1.0+1.0i) 125.4+1.0i) (num-test (- 1 123.4 1.0+1.0i) -123.4-1.0i) (num-test (* 1 123.4 1.0+1.0i) 123.4+123.4i) (num-test (/ 1 123.4 1.0+1.0i) 0.00405186385737-0.00405186385737i) (num-test (= 1 123.4 1.0+1.0i) #f) (num-test (+ 1 123.4 0) 124.4) (num-test (- 1 123.4 0) -122.4) (num-test (* 1 123.4 0) 0.0) (num-test (+ 1 123.4 0.0) 124.4) (num-test (- 1 123.4 0.0) -122.4) (num-test (* 1 123.4 0.0) 0.0) (num-test (+ 1 123.4 1234) 1358.4) (num-test (- 1 123.4 1234) -1356.4) (num-test (* 1 123.4 1234) 152275.60000000000582) (num-test (/ 1 123.4 1234) 0.00000656704029) (num-test (= 1 123.4 1234) #f) (num-test (< 1 123.4 1234) #t) (num-test (<= 1 123.4 1234) #t) (num-test (> 1 123.4 1234) #f) (num-test (>= 1 123.4 1234) #f) (num-test (+ 1 123.4 123.4) 247.8) (num-test (- 1 123.4 123.4) -245.8) (num-test (* 1 123.4 123.4) 15227.56000000000131) (num-test (/ 1 123.4 123.4) 0.00006567040287) (num-test (= 1 123.4 123.4) #f) (num-test (< 1 123.4 123.4) #f) (num-test (<= 1 123.4 123.4) #t) (num-test (> 1 123.4 123.4) #f) (num-test (>= 1 123.4 123.4) #f) (num-test (+ 1 123.4 1234/11) 236.58181818181819) (num-test (- 1 123.4 1234/11) -234.58181818181819) (num-test (* 1 123.4 1234/11) 13843.23636363636433) (num-test (/ 1 123.4 1234/11) 0.00007223744316) (num-test (= 1 123.4 1234/11) #f) (num-test (< 1 123.4 1234/11) #f) (num-test (<= 1 123.4 1234/11) #f) (num-test (> 1 123.4 1234/11) #f) (num-test (>= 1 123.4 1234/11) #f) (num-test (+ 1 123.4 1.234+1.234i) 125.634+1.234i) (num-test (- 1 123.4 1.234+1.234i) -123.634-1.234i) (num-test (* 1 123.4 1.234+1.234i) 152.2756+152.2756i) (num-test (/ 1 123.4 1.234+1.234i) 0.00328352014374-0.00328352014374i) (num-test (= 1 123.4 1.234+1.234i) #f) (num-test (+ 1 123.4 -1.0+1.0i) 123.4+1.0i) (num-test (- 1 123.4 -1.0+1.0i) -121.4-1.0i) (num-test (* 1 123.4 -1.0+1.0i) -123.4+123.4i) (num-test (/ 1 123.4 -1.0+1.0i) -0.00405186385737-0.00405186385737i) (num-test (= 1 123.4 -1.0+1.0i) #f) (num-test (+ 1 123.4 0.0+1.0i) 124.4+1.0i) (num-test (- 1 123.4 0.0+1.0i) -122.4-1.0i) (num-test (* 1 123.4 0.0+1.0i) 0.0+123.4i) (num-test (/ 1 123.4 0.0+1.0i) 0.0-0.00810372771475i) (num-test (= 1 123.4 0.0+1.0i) #f) (num-test (+ 1 1234/11 1) 1256/11) (num-test (- 1 1234/11 1) -1234/11) (num-test (* 1 1234/11 1) 1234/11) (num-test (/ 1 1234/11 1) 11/1234) (num-test (= 1 1234/11 1) #f) (num-test (< 1 1234/11 1) #f) (num-test (<= 1 1234/11 1) #f) (num-test (> 1 1234/11 1) #f) (num-test (>= 1 1234/11 1) #f) (num-test (+ 1 1234/11 1.0) 114.18181818181819) (num-test (- 1 1234/11 1.0) -112.18181818181819) (num-test (* 1 1234/11 1.0) 112.18181818181819) (num-test (/ 1 1234/11 1.0) 0.00891410048622) (num-test (= 1 1234/11 1.0) #f) (num-test (< 1 1234/11 1.0) #f) (num-test (<= 1 1234/11 1.0) #f) (num-test (> 1 1234/11 1.0) #f) (num-test (>= 1 1234/11 1.0) #f) (num-test (+ 1 1234/11 1/1) 1256/11) (num-test (- 1 1234/11 1/1) -1234/11) (num-test (* 1 1234/11 1/1) 1234/11) (num-test (/ 1 1234/11 1/1) 11/1234) (num-test (= 1 1234/11 1/1) #f) (num-test (< 1 1234/11 1/1) #f) (num-test (<= 1 1234/11 1/1) #f) (num-test (> 1 1234/11 1/1) #f) (num-test (>= 1 1234/11 1/1) #f) (num-test (+ 1 1234/11 1.0+1.0i) 114.18181818181819+1.0i) (num-test (- 1 1234/11 1.0+1.0i) -112.18181818181819-1.0i) (num-test (* 1 1234/11 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (/ 1 1234/11 1.0+1.0i) 0.00445705024311-0.00445705024311i) (num-test (= 1 1234/11 1.0+1.0i) #f) (num-test (+ 1 1234/11 0) 1245/11) (num-test (- 1 1234/11 0) -1223/11) (num-test (* 1 1234/11 0) 0) (num-test (+ 1 1234/11 0.0) 113.18181818181819) (num-test (- 1 1234/11 0.0) -111.18181818181819) (num-test (* 1 1234/11 0.0) 0.0) (num-test (+ 1 1234/11 1234) 14819/11) (num-test (- 1 1234/11 1234) -14797/11) (num-test (* 1 1234/11 1234) 1522756/11) (num-test (/ 1 1234/11 1234) 11/1522756) (num-test (= 1 1234/11 1234) #f) (num-test (< 1 1234/11 1234) #t) (num-test (<= 1 1234/11 1234) #t) (num-test (> 1 1234/11 1234) #f) (num-test (>= 1 1234/11 1234) #f) (num-test (+ 1 1234/11 123.4) 236.58181818181819) (num-test (- 1 1234/11 123.4) -234.58181818181819) (num-test (* 1 1234/11 123.4) 13843.23636363636433) (num-test (/ 1 1234/11 123.4) 0.00007223744316) (num-test (= 1 1234/11 123.4) #f) (num-test (< 1 1234/11 123.4) #t) (num-test (<= 1 1234/11 123.4) #t) (num-test (> 1 1234/11 123.4) #f) (num-test (>= 1 1234/11 123.4) #f) (num-test (+ 1 1234/11 1234/11) 2479/11) (num-test (- 1 1234/11 1234/11) -2457/11) (num-test (* 1 1234/11 1234/11) 1522756/121) (num-test (/ 1 1234/11 1234/11) 121/1522756) (num-test (= 1 1234/11 1234/11) #f) (num-test (< 1 1234/11 1234/11) #f) (num-test (<= 1 1234/11 1234/11) #t) (num-test (> 1 1234/11 1234/11) #f) (num-test (>= 1 1234/11 1234/11) #f) (num-test (+ 1 1234/11 1.234+1.234i) 114.41581818181818+1.234i) (num-test (- 1 1234/11 1.234+1.234i) -112.41581818181818-1.234i) (num-test (* 1 1234/11 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (/ 1 1234/11 1.234+1.234i) 0.00361187215811-0.00361187215811i) (num-test (= 1 1234/11 1.234+1.234i) #f) (num-test (+ 1 1234/11 -1.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1 1234/11 -1.0+1.0i) -110.18181818181819-1.0i) (num-test (* 1 1234/11 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1 1234/11 -1.0+1.0i) -0.00445705024311-0.00445705024311i) (num-test (= 1 1234/11 -1.0+1.0i) #f) (num-test (+ 1 1234/11 0.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1 1234/11 0.0+1.0i) -111.18181818181819-1.0i) (num-test (* 1 1234/11 0.0+1.0i) 0.0+112.18181818181819i) (num-test (/ 1 1234/11 0.0+1.0i) 0.0-0.00891410048622i) (num-test (= 1 1234/11 0.0+1.0i) #f) (num-test (+ 1 1.234+1.234i 1) 3.234+1.234i) (num-test (- 1 1.234+1.234i 1) -1.234-1.234i) (num-test (* 1 1.234+1.234i 1) 1.234+1.234i) (num-test (/ 1 1.234+1.234i 1) 0.40518638573744-0.40518638573744i) (num-test (= 1 1.234+1.234i 1) #f) (num-test (+ 1 1.234+1.234i 1.0) 3.234+1.234i) (num-test (- 1 1.234+1.234i 1.0) -1.234-1.234i) (num-test (* 1 1.234+1.234i 1.0) 1.234+1.234i) (num-test (/ 1 1.234+1.234i 1.0) 0.40518638573744-0.40518638573744i) (num-test (= 1 1.234+1.234i 1.0) #f) (num-test (+ 1 1.234+1.234i 1/1) 3.234+1.234i) (num-test (- 1 1.234+1.234i 1/1) -1.234-1.234i) (num-test (* 1 1.234+1.234i 1/1) 1.234+1.234i) (num-test (/ 1 1.234+1.234i 1/1) 0.40518638573744-0.40518638573744i) (num-test (= 1 1.234+1.234i 1/1) #f) (num-test (+ 1 1.234+1.234i 1.0+1.0i) 3.234+2.234i) (num-test (- 1 1.234+1.234i 1.0+1.0i) -1.234-2.234i) (num-test (* 1 1.234+1.234i 1.0+1.0i) 0.0+2.468i) (num-test (/ 1 1.234+1.234i 1.0+1.0i) 0.0-0.40518638573744i) (num-test (= 1 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 1 1.234+1.234i 0) 2.234+1.234i) (num-test (- 1 1.234+1.234i 0) -0.234-1.234i) (num-test (* 1 1.234+1.234i 0) 0.0) (num-test (+ 1 1.234+1.234i 0.0) 2.234+1.234i) (num-test (- 1 1.234+1.234i 0.0) -0.234-1.234i) (num-test (* 1 1.234+1.234i 0.0) 0.0) (num-test (+ 1 1.234+1.234i 1234) 1236.23399999999992+1.234i) (num-test (- 1 1.234+1.234i 1234) -1234.23399999999992-1.234i) (num-test (* 1 1.234+1.234i 1234) 1522.756+1522.756i) (num-test (/ 1 1.234+1.234i 1234) 0.00032835201437-0.00032835201437i) (num-test (= 1 1.234+1.234i 1234) #f) (num-test (+ 1 1.234+1.234i 123.4) 125.634+1.234i) (num-test (- 1 1.234+1.234i 123.4) -123.634-1.234i) (num-test (* 1 1.234+1.234i 123.4) 152.2756+152.2756i) (num-test (/ 1 1.234+1.234i 123.4) 0.00328352014374-0.00328352014374i) (num-test (= 1 1.234+1.234i 123.4) #f) (num-test (+ 1 1.234+1.234i 1234/11) 114.41581818181818+1.234i) (num-test (- 1 1.234+1.234i 1234/11) -112.41581818181818-1.234i) (num-test (* 1 1.234+1.234i 1234/11) 138.43236363636365+138.43236363636365i) (num-test (/ 1 1.234+1.234i 1234/11) 0.00361187215811-0.00361187215811i) (num-test (= 1 1.234+1.234i 1234/11) #f) (num-test (+ 1 1.234+1.234i 1.234+1.234i) 3.468+2.468i) (num-test (- 1 1.234+1.234i 1.234+1.234i) -1.468-2.468i) (num-test (* 1 1.234+1.234i 1.234+1.234i) 0.0+3.04551200000000i) (num-test (/ 1 1.234+1.234i 1.234+1.234i) 0.0-0.32835201437394i) (num-test (= 1 1.234+1.234i 1.234+1.234i) #f) (num-test (+ 1 1.234+1.234i -1.0+1.0i) 1.234+2.234i) (num-test (- 1 1.234+1.234i -1.0+1.0i) 0.766-2.234i) (num-test (* 1 1.234+1.234i -1.0+1.0i) -2.468) (num-test (/ 1 1.234+1.234i -1.0+1.0i) -0.40518638573744) (num-test (= 1 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 1 1.234+1.234i 0.0+1.0i) 2.234+2.234i) (num-test (- 1 1.234+1.234i 0.0+1.0i) -0.234-2.234i) (num-test (* 1 1.234+1.234i 0.0+1.0i) -1.234+1.234i) (num-test (/ 1 1.234+1.234i 0.0+1.0i) -0.40518638573744-0.40518638573744i) (num-test (= 1 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 1 -1.0+1.0i 1) 1.0+1.0i) (num-test (- 1 -1.0+1.0i 1) 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.5-0.5i) (num-test (= 1 -1.0+1.0i 1) #f) (num-test (+ 1 -1.0+1.0i 1.0) 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.0+1.0i) (num-test (/ 1 -1.0+1.0i 1.0) -0.5-0.5i) (num-test (= 1 -1.0+1.0i 1.0) #f) (num-test (+ 1 -1.0+1.0i 1/1) 1.0+1.0i) (num-test (- 1 -1.0+1.0i 1/1) 1.0-1.0i) (num-test (* 1 -1.0+1.0i 1/1) -1.0+1.0i) (num-test (/ 1 -1.0+1.0i 1/1) -0.5-0.5i) (num-test (= 1 -1.0+1.0i 1/1) #f) (num-test (+ 1 -1.0+1.0i 1.0+1.0i) 1.0+2.0i) (num-test (- 1 -1.0+1.0i 1.0+1.0i) 1.0-2.0i) (num-test (* 1 -1.0+1.0i 1.0+1.0i) -2.0) (num-test (/ 1 -1.0+1.0i 1.0+1.0i) -0.5) (num-test (= 1 -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1 -1.0+1.0i 0) 0.0+1.0i) (num-test (- 1 -1.0+1.0i 0) 2.0-1.0i) (num-test (* 1 -1.0+1.0i 0) -0.0) (num-test (+ 1 -1.0+1.0i 0.0) 0.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) -0.0) (num-test (+ 1 -1.0+1.0i 1234) 1234.0+1.0i) (num-test (- 1 -1.0+1.0i 1234) -1232.0-1.0i) (num-test (* 1 -1.0+1.0i 1234) -1234.0+1234.0i) (num-test (/ 1 -1.0+1.0i 1234) -0.00040518638574-0.00040518638574i) (num-test (= 1 -1.0+1.0i 1234) #f) (num-test (+ 1 -1.0+1.0i 123.4) 123.4+1.0i) (num-test (- 1 -1.0+1.0i 123.4) -121.4-1.0i) (num-test (* 1 -1.0+1.0i 123.4) -123.4+123.4i) (num-test (/ 1 -1.0+1.0i 123.4) -0.00405186385737-0.00405186385737i) (num-test (= 1 -1.0+1.0i 123.4) #f) (num-test (+ 1 -1.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (- 1 -1.0+1.0i 1234/11) -110.18181818181819-1.0i) (num-test (* 1 -1.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ 1 -1.0+1.0i 1234/11) -0.00445705024311-0.00445705024311i) (num-test (= 1 -1.0+1.0i 1234/11) #f) (num-test (+ 1 -1.0+1.0i 1.234+1.234i) 1.234+2.234i) (num-test (- 1 -1.0+1.0i 1.234+1.234i) 0.766-2.234i) (num-test (* 1 -1.0+1.0i 1.234+1.234i) -2.468) (num-test (/ 1 -1.0+1.0i 1.234+1.234i) -0.40518638573744) (num-test (= 1 -1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1 -1.0+1.0i -1.0+1.0i) -1.0+2.0i) (num-test (- 1 -1.0+1.0i -1.0+1.0i) 3.0-2.0i) (num-test (* 1 -1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (/ 1 -1.0+1.0i -1.0+1.0i) -0.0+0.5i) (num-test (= 1 -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1 -1.0+1.0i 0.0+1.0i) 0.0+2.0i) (num-test (- 1 -1.0+1.0i 0.0+1.0i) 2.0-2.0i) (num-test (* 1 -1.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (/ 1 -1.0+1.0i 0.0+1.0i) -0.5+0.5i) (num-test (= 1 -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1 0.0+1.0i 1) 2.0+1.0i) (num-test (- 1 0.0+1.0i 1) 0.0-1.0i) (num-test (* 1 0.0+1.0i 1) 0.0+1.0i) (num-test (/ 1 0.0+1.0i 1) 0.0-1.0i) (num-test (= 1 0.0+1.0i 1) #f) (num-test (+ 1 0.0+1.0i 1.0) 2.0+1.0i) (num-test (- 1 0.0+1.0i 1.0) 0.0-1.0i) (num-test (* 1 0.0+1.0i 1.0) 0.0+1.0i) (num-test (/ 1 0.0+1.0i 1.0) 0.0-1.0i) (num-test (= 1 0.0+1.0i 1.0) #f) (num-test (+ 1 0.0+1.0i 1/1) 2.0+1.0i) (num-test (- 1 0.0+1.0i 1/1) 0.0-1.0i) (num-test (* 1 0.0+1.0i 1/1) 0.0+1.0i) (num-test (/ 1 0.0+1.0i 1/1) 0.0-1.0i) (num-test (= 1 0.0+1.0i 1/1) #f) (num-test (+ 1 0.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (- 1 0.0+1.0i 1.0+1.0i) 0.0-2.0i) (num-test (* 1 0.0+1.0i 1.0+1.0i) -1.0+1.0i) (num-test (/ 1 0.0+1.0i 1.0+1.0i) -0.5-0.5i) (num-test (= 1 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 1 0.0+1.0i 0) 1.0+1.0i) (num-test (- 1 0.0+1.0i 0) 1.0-1.0i) (num-test (* 1 0.0+1.0i 0) 0.0) (num-test (+ 1 0.0+1.0i 0.0) 1.0+1.0i) (num-test (- 1 0.0+1.0i 0.0) 1.0-1.0i) (num-test (* 1 0.0+1.0i 0.0) 0.0) (num-test (+ 1 0.0+1.0i 1234) 1235.0+1.0i) (num-test (- 1 0.0+1.0i 1234) -1233.0-1.0i) (num-test (* 1 0.0+1.0i 1234) 0.0+1234.0i) (num-test (/ 1 0.0+1.0i 1234) 0.0-0.00081037277147i) (num-test (= 1 0.0+1.0i 1234) #f) (num-test (+ 1 0.0+1.0i 123.4) 124.4+1.0i) (num-test (- 1 0.0+1.0i 123.4) -122.4-1.0i) (num-test (* 1 0.0+1.0i 123.4) 0.0+123.4i) (num-test (/ 1 0.0+1.0i 123.4) 0.0-0.00810372771475i) (num-test (= 1 0.0+1.0i 123.4) #f) (num-test (+ 1 0.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (- 1 0.0+1.0i 1234/11) -111.18181818181819-1.0i) (num-test (* 1 0.0+1.0i 1234/11) 0.0+112.18181818181819i) (num-test (/ 1 0.0+1.0i 1234/11) 0.0-0.00891410048622i) (num-test (= 1 0.0+1.0i 1234/11) #f) (num-test (+ 1 0.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (- 1 0.0+1.0i 1.234+1.234i) -0.234-2.234i) (num-test (* 1 0.0+1.0i 1.234+1.234i) -1.234+1.234i) (num-test (/ 1 0.0+1.0i 1.234+1.234i) -0.40518638573744-0.40518638573744i) (num-test (= 1 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 1 0.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (- 1 0.0+1.0i -1.0+1.0i) 2.0-2.0i) (num-test (* 1 0.0+1.0i -1.0+1.0i) -1.0-1.0i) (num-test (/ 1 0.0+1.0i -1.0+1.0i) -0.5+0.5i) (num-test (= 1 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 1 0.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (- 1 0.0+1.0i 0.0+1.0i) 1.0-2.0i) (num-test (* 1 0.0+1.0i 0.0+1.0i) -1.0) (num-test (/ 1 0.0+1.0i 0.0+1.0i) -1.0) (num-test (= 1 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.0 1 1) 3.0) (num-test (- 1.0 1 1) -1.0) (num-test (* 1.0 1 1) 1.0) (num-test (/ 1.0 1 1) 1.0) (num-test (= 1.0 1 1) #t) (num-test (< 1.0 1 1) #f) (num-test (<= 1.0 1 1) #t) (num-test (> 1.0 1 1) #f) (num-test (>= 1.0 1 1) #t) (num-test (+ 1.0 1 1.0) 3.0) (num-test (- 1.0 1 1.0) -1.0) (num-test (* 1.0 1 1.0) 1.0) (num-test (/ 1.0 1 1.0) 1.0) (num-test (= 1.0 1 1.0) #t) (num-test (< 1.0 1 1.0) #f) (num-test (<= 1.0 1 1.0) #t) (num-test (> 1.0 1 1.0) #f) (num-test (>= 1.0 1 1.0) #t) (num-test (+ 1.0 1 1/1) 3.0) (num-test (- 1.0 1 1/1) -1.0) (num-test (* 1.0 1 1/1) 1.0) (num-test (/ 1.0 1 1/1) 1.0) (num-test (= 1.0 1 1/1) #t) (num-test (< 1.0 1 1/1) #f) (num-test (<= 1.0 1 1/1) #t) (num-test (> 1.0 1 1/1) #f) (num-test (>= 1.0 1 1/1) #t) (num-test (+ 1.0 1 1.0+1.0i) 3.0+1.0i) (num-test (- 1.0 1 1.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 1.0+1.0i) 0.5-0.5i) (num-test (= 1.0 1 1.0+1.0i) #f) (num-test (+ 1.0 1 0) 2.0) (num-test (- 1.0 1 0) 0.0) (num-test (* 1.0 1 0) 0.0) (num-test (+ 1.0 1 0.0) 2.0) (num-test (- 1.0 1 0.0) 0.0) (num-test (* 1.0 1 0.0) 0.0) (num-test (+ 1.0 1 1234) 1236.0) (num-test (- 1.0 1 1234) -1234.0) (num-test (* 1.0 1 1234) 1234.0) (num-test (/ 1.0 1 1234) 0.00081037277147) (num-test (= 1.0 1 1234) #f) (num-test (< 1.0 1 1234) #f) (num-test (<= 1.0 1 1234) #t) (num-test (> 1.0 1 1234) #f) (num-test (>= 1.0 1 1234) #f) (num-test (+ 1.0 1 123.4) 125.4) (num-test (- 1.0 1 123.4) -123.4) (num-test (* 1.0 1 123.4) 123.4) (num-test (/ 1.0 1 123.4) 0.00810372771475) (num-test (= 1.0 1 123.4) #f) (num-test (< 1.0 1 123.4) #f) (num-test (<= 1.0 1 123.4) #t) (num-test (> 1.0 1 123.4) #f) (num-test (>= 1.0 1 123.4) #f) (num-test (+ 1.0 1 1234/11) 114.18181818181819) (num-test (- 1.0 1 1234/11) -112.18181818181819) (num-test (* 1.0 1 1234/11) 112.18181818181819) (num-test (/ 1.0 1 1234/11) 0.00891410048622) (num-test (= 1.0 1 1234/11) #f) (num-test (< 1.0 1 1234/11) #f) (num-test (<= 1.0 1 1234/11) #t) (num-test (> 1.0 1 1234/11) #f) (num-test (>= 1.0 1 1234/11) #f) (num-test (+ 1.0 1 1.234+1.234i) 3.234+1.234i) (num-test (- 1.0 1 1.234+1.234i) -1.234-1.234i) (num-test (* 1.0 1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1.0 1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1.0 1 1.234+1.234i) #f) (num-test (+ 1.0 1 -1.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 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1.0 1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1.0 1 -1.0+1.0i) #f) (num-test (+ 1.0 1 0.0+1.0i) 2.0+1.0i) (num-test (- 1.0 1 0.0+1.0i) 0.0-1.0i) (num-test (* 1.0 1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1.0 1 0.0+1.0i) 0.0-1.0i) (num-test (= 1.0 1 0.0+1.0i) #f) (num-test (+ 1.0 1.0 1) 3.0) (num-test (- 1.0 1.0 1) -1.0) (num-test (* 1.0 1.0 1) 1.0) (num-test (/ 1.0 1.0 1) 1.0) (num-test (= 1.0 1.0 1) #t) (num-test (< 1.0 1.0 1) #f) (num-test (<= 1.0 1.0 1) #t) (num-test (> 1.0 1.0 1) #f) (num-test (>= 1.0 1.0 1) #t) (num-test (+ 1.0 1.0 1.0) 3.0) (num-test (- 1.0 1.0 1.0) -1.0) (num-test (* 1.0 1.0 1.0) 1.0) (num-test (/ 1.0 1.0 1.0) 1.0) (num-test (= 1.0 1.0 1.0) #t) (num-test (< 1.0 1.0 1.0) #f) (num-test (<= 1.0 1.0 1.0) #t) (num-test (> 1.0 1.0 1.0) #f) (num-test (>= 1.0 1.0 1.0) #t) (num-test (+ 1.0 1.0 1/1) 3.0) (num-test (- 1.0 1.0 1/1) -1.0) (num-test (* 1.0 1.0 1/1) 1.0) (num-test (/ 1.0 1.0 1/1) 1.0) (num-test (= 1.0 1.0 1/1) #t) (num-test (< 1.0 1.0 1/1) #f) (num-test (<= 1.0 1.0 1/1) #t) (num-test (> 1.0 1.0 1/1) #f) (num-test (>= 1.0 1.0 1/1) #t) (num-test (+ 1.0 1.0 1.0+1.0i) 3.0+1.0i) (num-test (- 1.0 1.0 1.0+1.0i) -1.0-1.0i) (num-test (* 1.0 1.0 1.0+1.0i) 1.0+1.0i) (num-test (/ 1.0 1.0 1.0+1.0i) 0.5-0.5i) (num-test (= 1.0 1.0 1.0+1.0i) #f) (num-test (+ 1.0 1.0 0) 2.0) (num-test (- 1.0 1.0 0) 0.0) (num-test (* 1.0 1.0 0) 0.0) (num-test (+ 1.0 1.0 0.0) 2.0) (num-test (- 1.0 1.0 0.0) 0.0) (num-test (* 1.0 1.0 0.0) 0.0) (num-test (+ 1.0 1.0 1234) 1236.0) (num-test (- 1.0 1.0 1234) -1234.0) (num-test (* 1.0 1.0 1234) 1234.0) (num-test (/ 1.0 1.0 1234) 0.00081037277147) (num-test (= 1.0 1.0 1234) #f) (num-test (< 1.0 1.0 1234) #f) (num-test (<= 1.0 1.0 1234) #t) (num-test (> 1.0 1.0 1234) #f) (num-test (>= 1.0 1.0 1234) #f) (num-test (+ 1.0 1.0 123.4) 125.4) (num-test (- 1.0 1.0 123.4) -123.4) (num-test (* 1.0 1.0 123.4) 123.4) (num-test (/ 1.0 1.0 123.4) 0.00810372771475) (num-test (= 1.0 1.0 123.4) #f) (num-test (< 1.0 1.0 123.4) #f) (num-test (<= 1.0 1.0 123.4) #t) (num-test (> 1.0 1.0 123.4) #f) (num-test (>= 1.0 1.0 123.4) #f) (num-test (+ 1.0 1.0 1234/11) 114.18181818181819) (num-test (- 1.0 1.0 1234/11) -112.18181818181819) (num-test (* 1.0 1.0 1234/11) 112.18181818181819) (num-test (/ 1.0 1.0 1234/11) 0.00891410048622) (num-test (= 1.0 1.0 1234/11) #f) (num-test (< 1.0 1.0 1234/11) #f) (num-test (<= 1.0 1.0 1234/11) #t) (num-test (> 1.0 1.0 1234/11) #f) (num-test (>= 1.0 1.0 1234/11) #f) (num-test (+ 1.0 1.0 1.234+1.234i) 3.234+1.234i) (num-test (- 1.0 1.0 1.234+1.234i) -1.234-1.234i) (num-test (* 1.0 1.0 1.234+1.234i) 1.234+1.234i) (num-test (/ 1.0 1.0 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1.0 1.0 1.234+1.234i) #f) (num-test (+ 1.0 1.0 -1.0+1.0i) 1.0+1.0i) (num-test (- 1.0 1.0 -1.0+1.0i) 1.0-1.0i) (num-test (* 1.0 1.0 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1.0 1.0 -1.0+1.0i) -0.5-0.5i) (num-test (= 1.0 1.0 -1.0+1.0i) #f) (num-test (+ 1.0 1.0 0.0+1.0i) 2.0+1.0i) (num-test (- 1.0 1.0 0.0+1.0i) 0.0-1.0i) (num-test (* 1.0 1.0 0.0+1.0i) 0.0+1.0i) (num-test (/ 1.0 1.0 0.0+1.0i) 0.0-1.0i) (num-test (= 1.0 1.0 0.0+1.0i) #f) (num-test (+ 1.0 1/1 1) 3.0) (num-test (- 1.0 1/1 1) -1.0) (num-test (* 1.0 1/1 1) 1.0) (num-test (/ 1.0 1/1 1) 1.0) (num-test (= 1.0 1/1 1) #t) (num-test (< 1.0 1/1 1) #f) (num-test (<= 1.0 1/1 1) #t) (num-test (> 1.0 1/1 1) #f) (num-test (>= 1.0 1/1 1) #t) (num-test (+ 1.0 1/1 1.0) 3.0) (num-test (- 1.0 1/1 1.0) -1.0) (num-test (* 1.0 1/1 1.0) 1.0) (num-test (/ 1.0 1/1 1.0) 1.0) (num-test (= 1.0 1/1 1.0) #t) (num-test (< 1.0 1/1 1.0) #f) (num-test (<= 1.0 1/1 1.0) #t) (num-test (> 1.0 1/1 1.0) #f) (num-test (>= 1.0 1/1 1.0) #t) (num-test (+ 1.0 1/1 1/1) 3.0) (num-test (- 1.0 1/1 1/1) -1.0) (num-test (* 1.0 1/1 1/1) 1.0) (num-test (/ 1.0 1/1 1/1) 1.0) (num-test (= 1.0 1/1 1/1) #t) (num-test (< 1.0 1/1 1/1) #f) (num-test (<= 1.0 1/1 1/1) #t) (num-test (> 1.0 1/1 1/1) #f) (num-test (>= 1.0 1/1 1/1) #t) (num-test (+ 1.0 1/1 1.0+1.0i) 3.0+1.0i) (num-test (- 1.0 1/1 1.0+1.0i) -1.0-1.0i) (num-test (* 1.0 1/1 1.0+1.0i) 1.0+1.0i) (num-test (/ 1.0 1/1 1.0+1.0i) 0.5-0.5i) (num-test (= 1.0 1/1 1.0+1.0i) #f) (num-test (+ 1.0 1/1 0) 2.0) (num-test (- 1.0 1/1 0) 0.0) (num-test (* 1.0 1/1 0) 0.0) (num-test (+ 1.0 1/1 0.0) 2.0) (num-test (- 1.0 1/1 0.0) 0.0) (num-test (* 1.0 1/1 0.0) 0.0) (num-test (+ 1.0 1/1 1234) 1236.0) (num-test (- 1.0 1/1 1234) -1234.0) (num-test (* 1.0 1/1 1234) 1234.0) (num-test (/ 1.0 1/1 1234) 0.00081037277147) (num-test (= 1.0 1/1 1234) #f) (num-test (< 1.0 1/1 1234) #f) (num-test (<= 1.0 1/1 1234) #t) (num-test (> 1.0 1/1 1234) #f) (num-test (>= 1.0 1/1 1234) #f) (num-test (+ 1.0 1/1 123.4) 125.4) (num-test (- 1.0 1/1 123.4) -123.4) (num-test (* 1.0 1/1 123.4) 123.4) (num-test (/ 1.0 1/1 123.4) 0.00810372771475) (num-test (= 1.0 1/1 123.4) #f) (num-test (< 1.0 1/1 123.4) #f) (num-test (<= 1.0 1/1 123.4) #t) (num-test (> 1.0 1/1 123.4) #f) (num-test (>= 1.0 1/1 123.4) #f) (num-test (+ 1.0 1/1 1234/11) 114.18181818181819) (num-test (- 1.0 1/1 1234/11) -112.18181818181819) (num-test (* 1.0 1/1 1234/11) 112.18181818181819) (num-test (/ 1.0 1/1 1234/11) 0.00891410048622) (num-test (= 1.0 1/1 1234/11) #f) (num-test (< 1.0 1/1 1234/11) #f) (num-test (<= 1.0 1/1 1234/11) #t) (num-test (> 1.0 1/1 1234/11) #f) (num-test (>= 1.0 1/1 1234/11) #f) (num-test (+ 1.0 1/1 1.234+1.234i) 3.234+1.234i) (num-test (- 1.0 1/1 1.234+1.234i) -1.234-1.234i) (num-test (* 1.0 1/1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1.0 1/1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1.0 1/1 1.234+1.234i) #f) (num-test (+ 1.0 1/1 -1.0+1.0i) 1.0+1.0i) (num-test (- 1.0 1/1 -1.0+1.0i) 1.0-1.0i) (num-test (* 1.0 1/1 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1.0 1/1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1.0 1/1 -1.0+1.0i) #f) (num-test (+ 1.0 1/1 0.0+1.0i) 2.0+1.0i) (num-test (- 1.0 1/1 0.0+1.0i) 0.0-1.0i) (num-test (* 1.0 1/1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1.0 1/1 0.0+1.0i) 0.0-1.0i) (num-test (= 1.0 1/1 0.0+1.0i) #f) (num-test (+ 1.0 1.0+1.0i 1) 3.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) 1.0+1.0i) (num-test (/ 1.0 1.0+1.0i 1) 0.5-0.5i) (num-test (= 1.0 1.0+1.0i 1) #f) (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.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) 0.5-0.5i) (num-test (= 1.0 1.0+1.0i 1.0) #f) (num-test (+ 1.0 1.0+1.0i 1/1) 3.0+1.0i) (num-test (- 1.0 1.0+1.0i 1/1) -1.0-1.0i) (num-test (* 1.0 1.0+1.0i 1/1) 1.0+1.0i) (num-test (/ 1.0 1.0+1.0i 1/1) 0.5-0.5i) (num-test (= 1.0 1.0+1.0i 1/1) #f) (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.0+1.0i) -1.0-2.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.0+1.0i) 0.0-0.5i) (num-test (= 1.0 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1.0 1.0+1.0i 0) 2.0+1.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) (num-test (+ 1.0 1.0+1.0i 0.0) 2.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) 0.0) (num-test (+ 1.0 1.0+1.0i 1234) 1236.0+1.0i) (num-test (- 1.0 1.0+1.0i 1234) -1234.0-1.0i) (num-test (* 1.0 1.0+1.0i 1234) 1234.0+1234.0i) (num-test (/ 1.0 1.0+1.0i 1234) 0.00040518638574-0.00040518638574i) (num-test (= 1.0 1.0+1.0i 1234) #f) (num-test (+ 1.0 1.0+1.0i 123.4) 125.4+1.0i) (num-test (- 1.0 1.0+1.0i 123.4) -123.4-1.0i) (num-test (* 1.0 1.0+1.0i 123.4) 123.4+123.4i) (num-test (/ 1.0 1.0+1.0i 123.4) 0.00405186385737-0.00405186385737i) (num-test (= 1.0 1.0+1.0i 123.4) #f) (num-test (+ 1.0 1.0+1.0i 1234/11) 114.18181818181819+1.0i) (num-test (- 1.0 1.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (* 1.0 1.0+1.0i 1234/11) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0 1.0+1.0i 1234/11) 0.00445705024311-0.00445705024311i) (num-test (= 1.0 1.0+1.0i 1234/11) #f) (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.234+1.234i) -1.234-2.234i) (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.234+1.234i) 0.0-0.40518638573744i) (num-test (= 1.0 1.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 1.0-2.0i) (num-test (* 1.0 1.0+1.0i -1.0+1.0i) -2.0) (num-test (/ 1.0 1.0+1.0i -1.0+1.0i) -0.5) (num-test (= 1.0 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1.0 1.0+1.0i 0.0+1.0i) 2.0+2.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 0.0+1.0i) -1.0+1.0i) (num-test (/ 1.0 1.0+1.0i 0.0+1.0i) -0.5-0.5i) (num-test (= 1.0 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.0 0 1) 2.0) (num-test (- 1.0 0 1) 0.0) (num-test (* 1.0 0 1) 0.0) (num-test (+ 1.0 0 1.0) 2.0) (num-test (- 1.0 0 1.0) 0.0) (num-test (* 1.0 0 1.0) 0.0) (num-test (+ 1.0 0 1/1) 2.0) (num-test (- 1.0 0 1/1) 0.0) (num-test (* 1.0 0 1/1) 0.0) (num-test (+ 1.0 0 1.0+1.0i) 2.0+1.0i) (num-test (- 1.0 0 1.0+1.0i) 0.0-1.0i) (num-test (* 1.0 0 1.0+1.0i) 0.0) (num-test (+ 1.0 0 0) 1.0) (num-test (- 1.0 0 0) 1.0) (num-test (* 1.0 0 0) 0.0) (num-test (+ 1.0 0 0.0) 1.0) (num-test (- 1.0 0 0.0) 1.0) (num-test (* 1.0 0 0.0) 0.0) (num-test (+ 1.0 0 1234) 1235.0) (num-test (- 1.0 0 1234) -1233.0) (num-test (* 1.0 0 1234) 0.0) (num-test (+ 1.0 0 123.4) 124.4) (num-test (- 1.0 0 123.4) -122.4) (num-test (* 1.0 0 123.4) 0.0) (num-test (+ 1.0 0 1234/11) 113.18181818181819) (num-test (- 1.0 0 1234/11) -111.18181818181819) (num-test (* 1.0 0 1234/11) 0.0) (num-test (+ 1.0 0 1.234+1.234i) 2.234+1.234i) (num-test (- 1.0 0 1.234+1.234i) -0.234-1.234i) (num-test (* 1.0 0 1.234+1.234i) 0.0) (num-test (+ 1.0 0 -1.0+1.0i) 0.0+1.0i) (num-test (- 1.0 0 -1.0+1.0i) 2.0-1.0i) (num-test (* 1.0 0 -1.0+1.0i) -0.0) (num-test (+ 1.0 0 0.0+1.0i) 1.0+1.0i) (num-test (- 1.0 0 0.0+1.0i) 1.0-1.0i) (num-test (* 1.0 0 0.0+1.0i) 0.0) (num-test (+ 1.0 0.0 1) 2.0) (num-test (- 1.0 0.0 1) 0.0) (num-test (* 1.0 0.0 1) 0.0) (num-test (+ 1.0 0.0 1.0) 2.0) (num-test (- 1.0 0.0 1.0) 0.0) (num-test (* 1.0 0.0 1.0) 0.0) (num-test (+ 1.0 0.0 1/1) 2.0) (num-test (- 1.0 0.0 1/1) 0.0) (num-test (* 1.0 0.0 1/1) 0.0) (num-test (+ 1.0 0.0 1.0+1.0i) 2.0+1.0i) (num-test (- 1.0 0.0 1.0+1.0i) 0.0-1.0i) (num-test (* 1.0 0.0 1.0+1.0i) 0.0) (num-test (+ 1.0 0.0 0) 1.0) (num-test (- 1.0 0.0 0) 1.0) (num-test (* 1.0 0.0 0) 0.0) (num-test (+ 1.0 0.0 0.0) 1.0) (num-test (- 1.0 0.0 0.0) 1.0) (num-test (* 1.0 0.0 0.0) 0.0) (num-test (+ 1.0 0.0 1234) 1235.0) (num-test (- 1.0 0.0 1234) -1233.0) (num-test (* 1.0 0.0 1234) 0.0) (num-test (+ 1.0 0.0 123.4) 124.4) (num-test (- 1.0 0.0 123.4) -122.4) (num-test (* 1.0 0.0 123.4) 0.0) (num-test (+ 1.0 0.0 1234/11) 113.18181818181819) (num-test (- 1.0 0.0 1234/11) -111.18181818181819) (num-test (* 1.0 0.0 1234/11) 0.0) (num-test (+ 1.0 0.0 1.234+1.234i) 2.234+1.234i) (num-test (- 1.0 0.0 1.234+1.234i) -0.234-1.234i) (num-test (* 1.0 0.0 1.234+1.234i) 0.0) (num-test (+ 1.0 0.0 -1.0+1.0i) 0.0+1.0i) (num-test (- 1.0 0.0 -1.0+1.0i) 2.0-1.0i) (num-test (* 1.0 0.0 -1.0+1.0i) -0.0) (num-test (+ 1.0 0.0 0.0+1.0i) 1.0+1.0i) (num-test (- 1.0 0.0 0.0+1.0i) 1.0-1.0i) (num-test (* 1.0 0.0 0.0+1.0i) 0.0) (num-test (+ 1.0 1234 1) 1236.0) (num-test (- 1.0 1234 1) -1234.0) (num-test (* 1.0 1234 1) 1234.0) (num-test (/ 1.0 1234 1) 0.00081037277147) (num-test (= 1.0 1234 1) #f) (num-test (< 1.0 1234 1) #f) (num-test (<= 1.0 1234 1) #f) (num-test (> 1.0 1234 1) #f) (num-test (>= 1.0 1234 1) #f) (num-test (+ 1.0 1234 1.0) 1236.0) (num-test (- 1.0 1234 1.0) -1234.0) (num-test (* 1.0 1234 1.0) 1234.0) (num-test (/ 1.0 1234 1.0) 0.00081037277147) (num-test (= 1.0 1234 1.0) #f) (num-test (< 1.0 1234 1.0) #f) (num-test (<= 1.0 1234 1.0) #f) (num-test (> 1.0 1234 1.0) #f) (num-test (>= 1.0 1234 1.0) #f) (num-test (+ 1.0 1234 1/1) 1236.0) (num-test (- 1.0 1234 1/1) -1234.0) (num-test (* 1.0 1234 1/1) 1234.0) (num-test (/ 1.0 1234 1/1) 0.00081037277147) (num-test (= 1.0 1234 1/1) #f) (num-test (< 1.0 1234 1/1) #f) (num-test (<= 1.0 1234 1/1) #f) (num-test (> 1.0 1234 1/1) #f) (num-test (>= 1.0 1234 1/1) #f) (num-test (+ 1.0 1234 1.0+1.0i) 1236.0+1.0i) (num-test (- 1.0 1234 1.0+1.0i) -1234.0-1.0i) (num-test (* 1.0 1234 1.0+1.0i) 1234.0+1234.0i) (num-test (/ 1.0 1234 1.0+1.0i) 0.00040518638574-0.00040518638574i) (num-test (= 1.0 1234 1.0+1.0i) #f) (num-test (+ 1.0 1234 0) 1235.0) (num-test (- 1.0 1234 0) -1233.0) (num-test (* 1.0 1234 0) 0.0) (num-test (+ 1.0 1234 0.0) 1235.0) (num-test (- 1.0 1234 0.0) -1233.0) (num-test (* 1.0 1234 0.0) 0.0) (num-test (+ 1.0 1234 1234) 2469.0) (num-test (- 1.0 1234 1234) -2467.0) (num-test (* 1.0 1234 1234) 1522756.0) (num-test (/ 1.0 1234 1234) 0.00000065670403) (num-test (= 1.0 1234 1234) #f) (num-test (< 1.0 1234 1234) #f) (num-test (<= 1.0 1234 1234) #t) (num-test (> 1.0 1234 1234) #f) (num-test (>= 1.0 1234 1234) #f) (num-test (+ 1.0 1234 123.4) 1358.4) (num-test (- 1.0 1234 123.4) -1356.4) (num-test (* 1.0 1234 123.4) 152275.60000000000582) (num-test (/ 1.0 1234 123.4) 0.00000656704029) (num-test (= 1.0 1234 123.4) #f) (num-test (< 1.0 1234 123.4) #f) (num-test (<= 1.0 1234 123.4) #f) (num-test (> 1.0 1234 123.4) #f) (num-test (>= 1.0 1234 123.4) #f) (num-test (+ 1.0 1234 1234/11) 1347.18181818181824) (num-test (- 1.0 1234 1234/11) -1345.18181818181824) (num-test (* 1.0 1234 1234/11) 138432.36363636364695) (num-test (/ 1.0 1234 1234/11) 0.00000722374432) (num-test (= 1.0 1234 1234/11) #f) (num-test (< 1.0 1234 1234/11) #f) (num-test (<= 1.0 1234 1234/11) #f) (num-test (> 1.0 1234 1234/11) #f) (num-test (>= 1.0 1234 1234/11) #f) (num-test (+ 1.0 1234 1.234+1.234i) 1236.23399999999992+1.234i) (num-test (- 1.0 1234 1.234+1.234i) -1234.23399999999992-1.234i) (num-test (* 1.0 1234 1.234+1.234i) 1522.756+1522.756i) (num-test (/ 1.0 1234 1.234+1.234i) 0.00032835201437-0.00032835201437i) (num-test (= 1.0 1234 1.234+1.234i) #f) (num-test (+ 1.0 1234 -1.0+1.0i) 1234.0+1.0i) (num-test (- 1.0 1234 -1.0+1.0i) -1232.0-1.0i) (num-test (* 1.0 1234 -1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1.0 1234 -1.0+1.0i) -0.00040518638574-0.00040518638574i) (num-test (= 1.0 1234 -1.0+1.0i) #f) (num-test (+ 1.0 1234 0.0+1.0i) 1235.0+1.0i) (num-test (- 1.0 1234 0.0+1.0i) -1233.0-1.0i) (num-test (* 1.0 1234 0.0+1.0i) 0.0+1234.0i) (num-test (/ 1.0 1234 0.0+1.0i) 0.0-0.00081037277147i) (num-test (= 1.0 1234 0.0+1.0i) #f) (num-test (+ 1.0 123.4 1) 125.4) (num-test (- 1.0 123.4 1) -123.4) (num-test (* 1.0 123.4 1) 123.4) (num-test (/ 1.0 123.4 1) 0.00810372771475) (num-test (= 1.0 123.4 1) #f) (num-test (< 1.0 123.4 1) #f) (num-test (<= 1.0 123.4 1) #f) (num-test (> 1.0 123.4 1) #f) (num-test (>= 1.0 123.4 1) #f) (num-test (+ 1.0 123.4 1.0) 125.4) (num-test (- 1.0 123.4 1.0) -123.4) (num-test (* 1.0 123.4 1.0) 123.4) (num-test (/ 1.0 123.4 1.0) 0.00810372771475) (num-test (= 1.0 123.4 1.0) #f) (num-test (< 1.0 123.4 1.0) #f) (num-test (<= 1.0 123.4 1.0) #f) (num-test (> 1.0 123.4 1.0) #f) (num-test (>= 1.0 123.4 1.0) #f) (num-test (+ 1.0 123.4 1/1) 125.4) (num-test (- 1.0 123.4 1/1) -123.4) (num-test (* 1.0 123.4 1/1) 123.4) (num-test (/ 1.0 123.4 1/1) 0.00810372771475) (num-test (= 1.0 123.4 1/1) #f) (num-test (< 1.0 123.4 1/1) #f) (num-test (<= 1.0 123.4 1/1) #f) (num-test (> 1.0 123.4 1/1) #f) (num-test (>= 1.0 123.4 1/1) #f) (num-test (+ 1.0 123.4 1.0+1.0i) 125.4+1.0i) (num-test (- 1.0 123.4 1.0+1.0i) -123.4-1.0i) (num-test (* 1.0 123.4 1.0+1.0i) 123.4+123.4i) (num-test (/ 1.0 123.4 1.0+1.0i) 0.00405186385737-0.00405186385737i) (num-test (= 1.0 123.4 1.0+1.0i) #f) (num-test (+ 1.0 123.4 0) 124.4) (num-test (- 1.0 123.4 0) -122.4) (num-test (* 1.0 123.4 0) 0.0) (num-test (+ 1.0 123.4 0.0) 124.4) (num-test (- 1.0 123.4 0.0) -122.4) (num-test (* 1.0 123.4 0.0) 0.0) (num-test (+ 1.0 123.4 1234) 1358.4) (num-test (- 1.0 123.4 1234) -1356.4) (num-test (* 1.0 123.4 1234) 152275.60000000000582) (num-test (/ 1.0 123.4 1234) 0.00000656704029) (num-test (= 1.0 123.4 1234) #f) (num-test (< 1.0 123.4 1234) #t) (num-test (<= 1.0 123.4 1234) #t) (num-test (> 1.0 123.4 1234) #f) (num-test (>= 1.0 123.4 1234) #f) (num-test (+ 1.0 123.4 123.4) 247.8) (num-test (- 1.0 123.4 123.4) -245.8) (num-test (* 1.0 123.4 123.4) 15227.56000000000131) (num-test (/ 1.0 123.4 123.4) 0.00006567040287) (num-test (= 1.0 123.4 123.4) #f) (num-test (< 1.0 123.4 123.4) #f) (num-test (<= 1.0 123.4 123.4) #t) (num-test (> 1.0 123.4 123.4) #f) (num-test (>= 1.0 123.4 123.4) #f) (num-test (+ 1.0 123.4 1234/11) 236.58181818181819) (num-test (- 1.0 123.4 1234/11) -234.58181818181819) (num-test (* 1.0 123.4 1234/11) 13843.23636363636433) (num-test (/ 1.0 123.4 1234/11) 0.00007223744316) (num-test (= 1.0 123.4 1234/11) #f) (num-test (< 1.0 123.4 1234/11) #f) (num-test (<= 1.0 123.4 1234/11) #f) (num-test (> 1.0 123.4 1234/11) #f) (num-test (>= 1.0 123.4 1234/11) #f) (num-test (+ 1.0 123.4 1.234+1.234i) 125.634+1.234i) (num-test (- 1.0 123.4 1.234+1.234i) -123.634-1.234i) (num-test (* 1.0 123.4 1.234+1.234i) 152.2756+152.2756i) (num-test (/ 1.0 123.4 1.234+1.234i) 0.00328352014374-0.00328352014374i) (num-test (= 1.0 123.4 1.234+1.234i) #f) (num-test (+ 1.0 123.4 -1.0+1.0i) 123.4+1.0i) (num-test (- 1.0 123.4 -1.0+1.0i) -121.4-1.0i) (num-test (* 1.0 123.4 -1.0+1.0i) -123.4+123.4i) (num-test (/ 1.0 123.4 -1.0+1.0i) -0.00405186385737-0.00405186385737i) (num-test (= 1.0 123.4 -1.0+1.0i) #f) (num-test (+ 1.0 123.4 0.0+1.0i) 124.4+1.0i) (num-test (- 1.0 123.4 0.0+1.0i) -122.4-1.0i) (num-test (* 1.0 123.4 0.0+1.0i) 0.0+123.4i) (num-test (/ 1.0 123.4 0.0+1.0i) 0.0-0.00810372771475i) (num-test (= 1.0 123.4 0.0+1.0i) #f) (num-test (+ 1.0 1234/11 1) 114.18181818181819) (num-test (- 1.0 1234/11 1) -112.18181818181819) (num-test (* 1.0 1234/11 1) 112.18181818181819) (num-test (/ 1.0 1234/11 1) 0.00891410048622) (num-test (= 1.0 1234/11 1) #f) (num-test (< 1.0 1234/11 1) #f) (num-test (<= 1.0 1234/11 1) #f) (num-test (> 1.0 1234/11 1) #f) (num-test (>= 1.0 1234/11 1) #f) (num-test (+ 1.0 1234/11 1.0) 114.18181818181819) (num-test (- 1.0 1234/11 1.0) -112.18181818181819) (num-test (* 1.0 1234/11 1.0) 112.18181818181819) (num-test (/ 1.0 1234/11 1.0) 0.00891410048622) (num-test (= 1.0 1234/11 1.0) #f) (num-test (< 1.0 1234/11 1.0) #f) (num-test (<= 1.0 1234/11 1.0) #f) (num-test (> 1.0 1234/11 1.0) #f) (num-test (>= 1.0 1234/11 1.0) #f) (num-test (+ 1.0 1234/11 1/1) 114.18181818181819) (num-test (- 1.0 1234/11 1/1) -112.18181818181819) (num-test (* 1.0 1234/11 1/1) 112.18181818181819) (num-test (/ 1.0 1234/11 1/1) 0.00891410048622) (num-test (= 1.0 1234/11 1/1) #f) (num-test (< 1.0 1234/11 1/1) #f) (num-test (<= 1.0 1234/11 1/1) #f) (num-test (> 1.0 1234/11 1/1) #f) (num-test (>= 1.0 1234/11 1/1) #f) (num-test (+ 1.0 1234/11 1.0+1.0i) 114.18181818181819+1.0i) (num-test (- 1.0 1234/11 1.0+1.0i) -112.18181818181819-1.0i) (num-test (* 1.0 1234/11 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0 1234/11 1.0+1.0i) 0.00445705024311-0.00445705024311i) (num-test (= 1.0 1234/11 1.0+1.0i) #f) (num-test (+ 1.0 1234/11 0) 113.18181818181819) (num-test (- 1.0 1234/11 0) -111.18181818181819) (num-test (* 1.0 1234/11 0) 0.0) (num-test (+ 1.0 1234/11 0.0) 113.18181818181819) (num-test (- 1.0 1234/11 0.0) -111.18181818181819) (num-test (* 1.0 1234/11 0.0) 0.0) (num-test (+ 1.0 1234/11 1234) 1347.18181818181824) (num-test (- 1.0 1234/11 1234) -1345.18181818181824) (num-test (* 1.0 1234/11 1234) 138432.36363636364695) (num-test (/ 1.0 1234/11 1234) 0.00000722374432) (num-test (= 1.0 1234/11 1234) #f) (num-test (< 1.0 1234/11 1234) #t) (num-test (<= 1.0 1234/11 1234) #t) (num-test (> 1.0 1234/11 1234) #f) (num-test (>= 1.0 1234/11 1234) #f) (num-test (+ 1.0 1234/11 123.4) 236.58181818181819) (num-test (- 1.0 1234/11 123.4) -234.58181818181819) (num-test (* 1.0 1234/11 123.4) 13843.23636363636433) (num-test (/ 1.0 1234/11 123.4) 0.00007223744316) (num-test (= 1.0 1234/11 123.4) #f) (num-test (< 1.0 1234/11 123.4) #t) (num-test (<= 1.0 1234/11 123.4) #t) (num-test (> 1.0 1234/11 123.4) #f) (num-test (>= 1.0 1234/11 123.4) #f) (num-test (+ 1.0 1234/11 1234/11) 225.36363636363637) (num-test (- 1.0 1234/11 1234/11) -223.36363636363637) (num-test (* 1.0 1234/11 1234/11) 12584.76033057851237) (num-test (/ 1.0 1234/11 1234/11) 0.00007946118748) (num-test (= 1.0 1234/11 1234/11) #f) (num-test (< 1.0 1234/11 1234/11) #f) (num-test (<= 1.0 1234/11 1234/11) #t) (num-test (> 1.0 1234/11 1234/11) #f) (num-test (>= 1.0 1234/11 1234/11) #f) (num-test (+ 1.0 1234/11 1.234+1.234i) 114.41581818181818+1.234i) (num-test (- 1.0 1234/11 1.234+1.234i) -112.41581818181818-1.234i) (num-test (* 1.0 1234/11 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (/ 1.0 1234/11 1.234+1.234i) 0.00361187215811-0.00361187215811i) (num-test (= 1.0 1234/11 1.234+1.234i) #f) (num-test (+ 1.0 1234/11 -1.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1.0 1234/11 -1.0+1.0i) -110.18181818181819-1.0i) (num-test (* 1.0 1234/11 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1.0 1234/11 -1.0+1.0i) -0.00445705024311-0.00445705024311i) (num-test (= 1.0 1234/11 -1.0+1.0i) #f) (num-test (+ 1.0 1234/11 0.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1.0 1234/11 0.0+1.0i) -111.18181818181819-1.0i) (num-test (* 1.0 1234/11 0.0+1.0i) 0.0+112.18181818181819i) (num-test (/ 1.0 1234/11 0.0+1.0i) 0.0-0.00891410048622i) (num-test (= 1.0 1234/11 0.0+1.0i) #f) (num-test (+ 1.0 1.234+1.234i 1) 3.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) 1.234+1.234i) (num-test (/ 1.0 1.234+1.234i 1) 0.40518638573744-0.40518638573744i) (num-test (= 1.0 1.234+1.234i 1) #f) (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.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) 0.40518638573744-0.40518638573744i) (num-test (= 1.0 1.234+1.234i 1.0) #f) (num-test (+ 1.0 1.234+1.234i 1/1) 3.234+1.234i) (num-test (- 1.0 1.234+1.234i 1/1) -1.234-1.234i) (num-test (* 1.0 1.234+1.234i 1/1) 1.234+1.234i) (num-test (/ 1.0 1.234+1.234i 1/1) 0.40518638573744-0.40518638573744i) (num-test (= 1.0 1.234+1.234i 1/1) #f) (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.0+1.0i) -1.234-2.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.0+1.0i) 0.0-0.40518638573744i) (num-test (= 1.0 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 1.0 1.234+1.234i 0) 2.234+1.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) (num-test (+ 1.0 1.234+1.234i 0.0) 2.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) 0.0) (num-test (+ 1.0 1.234+1.234i 1234) 1236.23399999999992+1.234i) (num-test (- 1.0 1.234+1.234i 1234) -1234.23399999999992-1.234i) (num-test (* 1.0 1.234+1.234i 1234) 1522.756+1522.756i) (num-test (/ 1.0 1.234+1.234i 1234) 0.00032835201437-0.00032835201437i) (num-test (= 1.0 1.234+1.234i 1234) #f) (num-test (+ 1.0 1.234+1.234i 123.4) 125.634+1.234i) (num-test (- 1.0 1.234+1.234i 123.4) -123.634-1.234i) (num-test (* 1.0 1.234+1.234i 123.4) 152.2756+152.2756i) (num-test (/ 1.0 1.234+1.234i 123.4) 0.00328352014374-0.00328352014374i) (num-test (= 1.0 1.234+1.234i 123.4) #f) (num-test (+ 1.0 1.234+1.234i 1234/11) 114.41581818181818+1.234i) (num-test (- 1.0 1.234+1.234i 1234/11) -112.41581818181818-1.234i) (num-test (* 1.0 1.234+1.234i 1234/11) 138.43236363636365+138.43236363636365i) (num-test (/ 1.0 1.234+1.234i 1234/11) 0.00361187215811-0.00361187215811i) (num-test (= 1.0 1.234+1.234i 1234/11) #f) (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.234+1.234i) -1.468-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.234+1.234i) 0.0-0.32835201437394i) (num-test (= 1.0 1.234+1.234i 1.234+1.234i) #f) (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.0+1.0i) 0.766-2.234i) (num-test (* 1.0 1.234+1.234i -1.0+1.0i) -2.468) (num-test (/ 1.0 1.234+1.234i -1.0+1.0i) -0.40518638573744) (num-test (= 1.0 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 1.0 1.234+1.234i 0.0+1.0i) 2.234+2.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 0.0+1.0i) -1.234+1.234i) (num-test (/ 1.0 1.234+1.234i 0.0+1.0i) -0.40518638573744-0.40518638573744i) (num-test (= 1.0 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 1.0 -1.0+1.0i 1) 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) -1.0+1.0i) (num-test (/ 1.0 -1.0+1.0i 1) -0.5-0.5i) (num-test (= 1.0 -1.0+1.0i 1) #f) (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.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) -0.5-0.5i) (num-test (= 1.0 -1.0+1.0i 1.0) #f) (num-test (+ 1.0 -1.0+1.0i 1/1) 1.0+1.0i) (num-test (- 1.0 -1.0+1.0i 1/1) 1.0-1.0i) (num-test (* 1.0 -1.0+1.0i 1/1) -1.0+1.0i) (num-test (/ 1.0 -1.0+1.0i 1/1) -0.5-0.5i) (num-test (= 1.0 -1.0+1.0i 1/1) #f) (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.0+1.0i) 1.0-2.0i) (num-test (* 1.0 -1.0+1.0i 1.0+1.0i) -2.0) (num-test (/ 1.0 -1.0+1.0i 1.0+1.0i) -0.5) (num-test (= 1.0 -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1.0 -1.0+1.0i 0) 0.0+1.0i) (num-test (- 1.0 -1.0+1.0i 0) 2.0-1.0i) (num-test (* 1.0 -1.0+1.0i 0) -0.0) (num-test (+ 1.0 -1.0+1.0i 0.0) 0.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) -0.0) (num-test (+ 1.0 -1.0+1.0i 1234) 1234.0+1.0i) (num-test (- 1.0 -1.0+1.0i 1234) -1232.0-1.0i) (num-test (* 1.0 -1.0+1.0i 1234) -1234.0+1234.0i) (num-test (/ 1.0 -1.0+1.0i 1234) -0.00040518638574-0.00040518638574i) (num-test (= 1.0 -1.0+1.0i 1234) #f) (num-test (+ 1.0 -1.0+1.0i 123.4) 123.4+1.0i) (num-test (- 1.0 -1.0+1.0i 123.4) -121.4-1.0i) (num-test (* 1.0 -1.0+1.0i 123.4) -123.4+123.4i) (num-test (/ 1.0 -1.0+1.0i 123.4) -0.00405186385737-0.00405186385737i) (num-test (= 1.0 -1.0+1.0i 123.4) #f) (num-test (+ 1.0 -1.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (- 1.0 -1.0+1.0i 1234/11) -110.18181818181819-1.0i) (num-test (* 1.0 -1.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ 1.0 -1.0+1.0i 1234/11) -0.00445705024311-0.00445705024311i) (num-test (= 1.0 -1.0+1.0i 1234/11) #f) (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.234+1.234i) 0.766-2.234i) (num-test (* 1.0 -1.0+1.0i 1.234+1.234i) -2.468) (num-test (/ 1.0 -1.0+1.0i 1.234+1.234i) -0.40518638573744) (num-test (= 1.0 -1.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 3.0-2.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.0+1.0i) -0.0+0.5i) (num-test (= 1.0 -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1.0 -1.0+1.0i 0.0+1.0i) 0.0+2.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 0.0+1.0i) -1.0-1.0i) (num-test (/ 1.0 -1.0+1.0i 0.0+1.0i) -0.5+0.5i) (num-test (= 1.0 -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.0 0.0+1.0i 1) 2.0+1.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+1.0i) (num-test (/ 1.0 0.0+1.0i 1) 0.0-1.0i) (num-test (= 1.0 0.0+1.0i 1) #f) (num-test (+ 1.0 0.0+1.0i 1.0) 2.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) 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) #f) (num-test (+ 1.0 0.0+1.0i 1/1) 2.0+1.0i) (num-test (- 1.0 0.0+1.0i 1/1) 0.0-1.0i) (num-test (* 1.0 0.0+1.0i 1/1) 0.0+1.0i) (num-test (/ 1.0 0.0+1.0i 1/1) 0.0-1.0i) (num-test (= 1.0 0.0+1.0i 1/1) #f) (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.0+1.0i) 0.0-2.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.0+1.0i) -0.5-0.5i) (num-test (= 1.0 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 1.0 0.0+1.0i 0) 1.0+1.0i) (num-test (- 1.0 0.0+1.0i 0) 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) 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) 0.0) (num-test (+ 1.0 0.0+1.0i 1234) 1235.0+1.0i) (num-test (- 1.0 0.0+1.0i 1234) -1233.0-1.0i) (num-test (* 1.0 0.0+1.0i 1234) 0.0+1234.0i) (num-test (/ 1.0 0.0+1.0i 1234) 0.0-0.00081037277147i) (num-test (= 1.0 0.0+1.0i 1234) #f) (num-test (+ 1.0 0.0+1.0i 123.4) 124.4+1.0i) (num-test (- 1.0 0.0+1.0i 123.4) -122.4-1.0i) (num-test (* 1.0 0.0+1.0i 123.4) 0.0+123.4i) (num-test (/ 1.0 0.0+1.0i 123.4) 0.0-0.00810372771475i) (num-test (= 1.0 0.0+1.0i 123.4) #f) (num-test (+ 1.0 0.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (- 1.0 0.0+1.0i 1234/11) -111.18181818181819-1.0i) (num-test (* 1.0 0.0+1.0i 1234/11) 0.0+112.18181818181819i) (num-test (/ 1.0 0.0+1.0i 1234/11) 0.0-0.00891410048622i) (num-test (= 1.0 0.0+1.0i 1234/11) #f) (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.234+1.234i) -0.234-2.234i) (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.234+1.234i) -0.40518638573744-0.40518638573744i) (num-test (= 1.0 0.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 2.0-2.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.0+1.0i) -0.5+0.5i) (num-test (= 1.0 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 1.0 0.0+1.0i 0.0+1.0i) 1.0+2.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 0.0+1.0i) -1.0) (num-test (/ 1.0 0.0+1.0i 0.0+1.0i) -1.0) (num-test (= 1.0 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 1/1 1 1) 3) (num-test (- 1/1 1 1) -1) (num-test (* 1/1 1 1) 1) (num-test (/ 1/1 1 1) 1) (num-test (= 1/1 1 1) #t) (num-test (< 1/1 1 1) #f) (num-test (<= 1/1 1 1) #t) (num-test (> 1/1 1 1) #f) (num-test (>= 1/1 1 1) #t) (num-test (+ 1/1 1 1.0) 3.0) (num-test (- 1/1 1 1.0) -1.0) (num-test (* 1/1 1 1.0) 1.0) (num-test (/ 1/1 1 1.0) 1.0) (num-test (= 1/1 1 1.0) #t) (num-test (< 1/1 1 1.0) #f) (num-test (<= 1/1 1 1.0) #t) (num-test (> 1/1 1 1.0) #f) (num-test (>= 1/1 1 1.0) #t) (num-test (+ 1/1 1 1/1) 3) (num-test (- 1/1 1 1/1) -1) (num-test (* 1/1 1 1/1) 1) (num-test (/ 1/1 1 1/1) 1) (num-test (= 1/1 1 1/1) #t) (num-test (< 1/1 1 1/1) #f) (num-test (<= 1/1 1 1/1) #t) (num-test (> 1/1 1 1/1) #f) (num-test (>= 1/1 1 1/1) #t) (num-test (+ 1/1 1 1.0+1.0i) 3.0+1.0i) (num-test (- 1/1 1 1.0+1.0i) -1.0-1.0i) (num-test (* 1/1 1 1.0+1.0i) 1.0+1.0i) (num-test (/ 1/1 1 1.0+1.0i) 0.5-0.5i) (num-test (= 1/1 1 1.0+1.0i) #f) (num-test (+ 1/1 1 0) 2) (num-test (- 1/1 1 0) 0) (num-test (* 1/1 1 0) 0) (num-test (+ 1/1 1 0.0) 2.0) (num-test (- 1/1 1 0.0) 0.0) (num-test (* 1/1 1 0.0) 0.0) (num-test (+ 1/1 1 1234) 1236) (num-test (- 1/1 1 1234) -1234) (num-test (* 1/1 1 1234) 1234) (num-test (/ 1/1 1 1234) 1/1234) (num-test (= 1/1 1 1234) #f) (num-test (< 1/1 1 1234) #f) (num-test (<= 1/1 1 1234) #t) (num-test (> 1/1 1 1234) #f) (num-test (>= 1/1 1 1234) #f) (num-test (+ 1/1 1 123.4) 125.4) (num-test (- 1/1 1 123.4) -123.4) (num-test (* 1/1 1 123.4) 123.4) (num-test (/ 1/1 1 123.4) 0.00810372771475) (num-test (= 1/1 1 123.4) #f) (num-test (< 1/1 1 123.4) #f) (num-test (<= 1/1 1 123.4) #t) (num-test (> 1/1 1 123.4) #f) (num-test (>= 1/1 1 123.4) #f) (num-test (+ 1/1 1 1234/11) 1256/11) (num-test (- 1/1 1 1234/11) -1234/11) (num-test (* 1/1 1 1234/11) 1234/11) (num-test (/ 1/1 1 1234/11) 11/1234) (num-test (= 1/1 1 1234/11) #f) (num-test (< 1/1 1 1234/11) #f) (num-test (<= 1/1 1 1234/11) #t) (num-test (> 1/1 1 1234/11) #f) (num-test (>= 1/1 1 1234/11) #f) (num-test (+ 1/1 1 1.234+1.234i) 3.234+1.234i) (num-test (- 1/1 1 1.234+1.234i) -1.234-1.234i) (num-test (* 1/1 1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1/1 1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1/1 1 1.234+1.234i) #f) (num-test (+ 1/1 1 -1.0+1.0i) 1.0+1.0i) (num-test (- 1/1 1 -1.0+1.0i) 1.0-1.0i) (num-test (* 1/1 1 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1/1 1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1/1 1 -1.0+1.0i) #f) (num-test (+ 1/1 1 0.0+1.0i) 2.0+1.0i) (num-test (- 1/1 1 0.0+1.0i) 0.0-1.0i) (num-test (* 1/1 1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1/1 1 0.0+1.0i) 0.0-1.0i) (num-test (= 1/1 1 0.0+1.0i) #f) (num-test (+ 1/1 1.0 1) 3.0) (num-test (- 1/1 1.0 1) -1.0) (num-test (* 1/1 1.0 1) 1.0) (num-test (/ 1/1 1.0 1) 1.0) (num-test (= 1/1 1.0 1) #t) (num-test (< 1/1 1.0 1) #f) (num-test (<= 1/1 1.0 1) #t) (num-test (> 1/1 1.0 1) #f) (num-test (>= 1/1 1.0 1) #t) (num-test (+ 1/1 1.0 1.0) 3.0) (num-test (- 1/1 1.0 1.0) -1.0) (num-test (* 1/1 1.0 1.0) 1.0) (num-test (/ 1/1 1.0 1.0) 1.0) (num-test (= 1/1 1.0 1.0) #t) (num-test (< 1/1 1.0 1.0) #f) (num-test (<= 1/1 1.0 1.0) #t) (num-test (> 1/1 1.0 1.0) #f) (num-test (>= 1/1 1.0 1.0) #t) (num-test (+ 1/1 1.0 1/1) 3.0) (num-test (- 1/1 1.0 1/1) -1.0) (num-test (* 1/1 1.0 1/1) 1.0) (num-test (/ 1/1 1.0 1/1) 1.0) (num-test (= 1/1 1.0 1/1) #t) (num-test (< 1/1 1.0 1/1) #f) (num-test (<= 1/1 1.0 1/1) #t) (num-test (> 1/1 1.0 1/1) #f) (num-test (>= 1/1 1.0 1/1) #t) (num-test (+ 1/1 1.0 1.0+1.0i) 3.0+1.0i) (num-test (- 1/1 1.0 1.0+1.0i) -1.0-1.0i) (num-test (* 1/1 1.0 1.0+1.0i) 1.0+1.0i) (num-test (/ 1/1 1.0 1.0+1.0i) 0.5-0.5i) (num-test (= 1/1 1.0 1.0+1.0i) #f) (num-test (+ 1/1 1.0 0) 2.0) (num-test (- 1/1 1.0 0) 0.0) (num-test (* 1/1 1.0 0) 0.0) (num-test (+ 1/1 1.0 0.0) 2.0) (num-test (- 1/1 1.0 0.0) 0.0) (num-test (* 1/1 1.0 0.0) 0.0) (num-test (+ 1/1 1.0 1234) 1236.0) (num-test (- 1/1 1.0 1234) -1234.0) (num-test (* 1/1 1.0 1234) 1234.0) (num-test (/ 1/1 1.0 1234) 0.00081037277147) (num-test (= 1/1 1.0 1234) #f) (num-test (< 1/1 1.0 1234) #f) (num-test (<= 1/1 1.0 1234) #t) (num-test (> 1/1 1.0 1234) #f) (num-test (>= 1/1 1.0 1234) #f) (num-test (+ 1/1 1.0 123.4) 125.4) (num-test (- 1/1 1.0 123.4) -123.4) (num-test (* 1/1 1.0 123.4) 123.4) (num-test (/ 1/1 1.0 123.4) 0.00810372771475) (num-test (= 1/1 1.0 123.4) #f) (num-test (< 1/1 1.0 123.4) #f) (num-test (<= 1/1 1.0 123.4) #t) (num-test (> 1/1 1.0 123.4) #f) (num-test (>= 1/1 1.0 123.4) #f) (num-test (+ 1/1 1.0 1234/11) 114.18181818181819) (num-test (- 1/1 1.0 1234/11) -112.18181818181819) (num-test (* 1/1 1.0 1234/11) 112.18181818181819) (num-test (/ 1/1 1.0 1234/11) 0.00891410048622) (num-test (= 1/1 1.0 1234/11) #f) (num-test (< 1/1 1.0 1234/11) #f) (num-test (<= 1/1 1.0 1234/11) #t) (num-test (> 1/1 1.0 1234/11) #f) (num-test (>= 1/1 1.0 1234/11) #f) (num-test (+ 1/1 1.0 1.234+1.234i) 3.234+1.234i) (num-test (- 1/1 1.0 1.234+1.234i) -1.234-1.234i) (num-test (* 1/1 1.0 1.234+1.234i) 1.234+1.234i) (num-test (/ 1/1 1.0 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1/1 1.0 1.234+1.234i) #f) (num-test (+ 1/1 1.0 -1.0+1.0i) 1.0+1.0i) (num-test (- 1/1 1.0 -1.0+1.0i) 1.0-1.0i) (num-test (* 1/1 1.0 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1/1 1.0 -1.0+1.0i) -0.5-0.5i) (num-test (= 1/1 1.0 -1.0+1.0i) #f) (num-test (+ 1/1 1.0 0.0+1.0i) 2.0+1.0i) (num-test (- 1/1 1.0 0.0+1.0i) 0.0-1.0i) (num-test (* 1/1 1.0 0.0+1.0i) 0.0+1.0i) (num-test (/ 1/1 1.0 0.0+1.0i) 0.0-1.0i) (num-test (= 1/1 1.0 0.0+1.0i) #f) (num-test (+ 1/1 1/1 1) 3) (num-test (- 1/1 1/1 1) -1) (num-test (* 1/1 1/1 1) 1) (num-test (/ 1/1 1/1 1) 1) (num-test (= 1/1 1/1 1) #t) (num-test (< 1/1 1/1 1) #f) (num-test (<= 1/1 1/1 1) #t) (num-test (> 1/1 1/1 1) #f) (num-test (>= 1/1 1/1 1) #t) (num-test (+ 1/1 1/1 1.0) 3.0) (num-test (- 1/1 1/1 1.0) -1.0) (num-test (* 1/1 1/1 1.0) 1.0) (num-test (/ 1/1 1/1 1.0) 1.0) (num-test (= 1/1 1/1 1.0) #t) (num-test (< 1/1 1/1 1.0) #f) (num-test (<= 1/1 1/1 1.0) #t) (num-test (> 1/1 1/1 1.0) #f) (num-test (>= 1/1 1/1 1.0) #t) (num-test (+ 1/1 1/1 1/1) 3) (num-test (- 1/1 1/1 1/1) -1) (num-test (* 1/1 1/1 1/1) 1) (num-test (/ 1/1 1/1 1/1) 1) (num-test (= 1/1 1/1 1/1) #t) (num-test (< 1/1 1/1 1/1) #f) (num-test (<= 1/1 1/1 1/1) #t) (num-test (> 1/1 1/1 1/1) #f) (num-test (>= 1/1 1/1 1/1) #t) (num-test (+ 1/1 1/1 1.0+1.0i) 3.0+1.0i) (num-test (- 1/1 1/1 1.0+1.0i) -1.0-1.0i) (num-test (* 1/1 1/1 1.0+1.0i) 1.0+1.0i) (num-test (/ 1/1 1/1 1.0+1.0i) 0.5-0.5i) (num-test (= 1/1 1/1 1.0+1.0i) #f) (num-test (+ 1/1 1/1 0) 2) (num-test (- 1/1 1/1 0) 0) (num-test (* 1/1 1/1 0) 0) (num-test (+ 1/1 1/1 0.0) 2.0) (num-test (- 1/1 1/1 0.0) 0.0) (num-test (* 1/1 1/1 0.0) 0.0) (num-test (+ 1/1 1/1 1234) 1236) (num-test (- 1/1 1/1 1234) -1234) (num-test (* 1/1 1/1 1234) 1234) (num-test (/ 1/1 1/1 1234) 1/1234) (num-test (= 1/1 1/1 1234) #f) (num-test (< 1/1 1/1 1234) #f) (num-test (<= 1/1 1/1 1234) #t) (num-test (> 1/1 1/1 1234) #f) (num-test (>= 1/1 1/1 1234) #f) (num-test (+ 1/1 1/1 123.4) 125.4) (num-test (- 1/1 1/1 123.4) -123.4) (num-test (* 1/1 1/1 123.4) 123.4) (num-test (/ 1/1 1/1 123.4) 0.00810372771475) (num-test (= 1/1 1/1 123.4) #f) (num-test (< 1/1 1/1 123.4) #f) (num-test (<= 1/1 1/1 123.4) #t) (num-test (> 1/1 1/1 123.4) #f) (num-test (>= 1/1 1/1 123.4) #f) (num-test (+ 1/1 1/1 1234/11) 1256/11) (num-test (- 1/1 1/1 1234/11) -1234/11) (num-test (* 1/1 1/1 1234/11) 1234/11) (num-test (/ 1/1 1/1 1234/11) 11/1234) (num-test (= 1/1 1/1 1234/11) #f) (num-test (< 1/1 1/1 1234/11) #f) (num-test (<= 1/1 1/1 1234/11) #t) (num-test (> 1/1 1/1 1234/11) #f) (num-test (>= 1/1 1/1 1234/11) #f) (num-test (+ 1/1 1/1 1.234+1.234i) 3.234+1.234i) (num-test (- 1/1 1/1 1.234+1.234i) -1.234-1.234i) (num-test (* 1/1 1/1 1.234+1.234i) 1.234+1.234i) (num-test (/ 1/1 1/1 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1/1 1/1 1.234+1.234i) #f) (num-test (+ 1/1 1/1 -1.0+1.0i) 1.0+1.0i) (num-test (- 1/1 1/1 -1.0+1.0i) 1.0-1.0i) (num-test (* 1/1 1/1 -1.0+1.0i) -1.0+1.0i) (num-test (/ 1/1 1/1 -1.0+1.0i) -0.5-0.5i) (num-test (= 1/1 1/1 -1.0+1.0i) #f) (num-test (+ 1/1 1/1 0.0+1.0i) 2.0+1.0i) (num-test (- 1/1 1/1 0.0+1.0i) 0.0-1.0i) (num-test (* 1/1 1/1 0.0+1.0i) 0.0+1.0i) (num-test (/ 1/1 1/1 0.0+1.0i) 0.0-1.0i) (num-test (= 1/1 1/1 0.0+1.0i) #f) (num-test (+ 1/1 1.0+1.0i 1) 3.0+1.0i) (num-test (- 1/1 1.0+1.0i 1) -1.0-1.0i) (num-test (* 1/1 1.0+1.0i 1) 1.0+1.0i) (num-test (/ 1/1 1.0+1.0i 1) 0.5-0.5i) (num-test (= 1/1 1.0+1.0i 1) #f) (num-test (+ 1/1 1.0+1.0i 1.0) 3.0+1.0i) (num-test (- 1/1 1.0+1.0i 1.0) -1.0-1.0i) (num-test (* 1/1 1.0+1.0i 1.0) 1.0+1.0i) (num-test (/ 1/1 1.0+1.0i 1.0) 0.5-0.5i) (num-test (= 1/1 1.0+1.0i 1.0) #f) (num-test (+ 1/1 1.0+1.0i 1/1) 3.0+1.0i) (num-test (- 1/1 1.0+1.0i 1/1) -1.0-1.0i) (num-test (* 1/1 1.0+1.0i 1/1) 1.0+1.0i) (num-test (/ 1/1 1.0+1.0i 1/1) 0.5-0.5i) (num-test (= 1/1 1.0+1.0i 1/1) #f) (num-test (+ 1/1 1.0+1.0i 1.0+1.0i) 3.0+2.0i) (num-test (- 1/1 1.0+1.0i 1.0+1.0i) -1.0-2.0i) (num-test (* 1/1 1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (/ 1/1 1.0+1.0i 1.0+1.0i) 0.0-0.5i) (num-test (= 1/1 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1/1 1.0+1.0i 0) 2.0+1.0i) (num-test (- 1/1 1.0+1.0i 0) 0.0-1.0i) (num-test (* 1/1 1.0+1.0i 0) 0.0) (num-test (+ 1/1 1.0+1.0i 0.0) 2.0+1.0i) (num-test (- 1/1 1.0+1.0i 0.0) 0.0-1.0i) (num-test (* 1/1 1.0+1.0i 0.0) 0.0) (num-test (+ 1/1 1.0+1.0i 1234) 1236.0+1.0i) (num-test (- 1/1 1.0+1.0i 1234) -1234.0-1.0i) (num-test (* 1/1 1.0+1.0i 1234) 1234.0+1234.0i) (num-test (/ 1/1 1.0+1.0i 1234) 0.00040518638574-0.00040518638574i) (num-test (= 1/1 1.0+1.0i 1234) #f) (num-test (+ 1/1 1.0+1.0i 123.4) 125.4+1.0i) (num-test (- 1/1 1.0+1.0i 123.4) -123.4-1.0i) (num-test (* 1/1 1.0+1.0i 123.4) 123.4+123.4i) (num-test (/ 1/1 1.0+1.0i 123.4) 0.00405186385737-0.00405186385737i) (num-test (= 1/1 1.0+1.0i 123.4) #f) (num-test (+ 1/1 1.0+1.0i 1234/11) 114.18181818181819+1.0i) (num-test (- 1/1 1.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (* 1/1 1.0+1.0i 1234/11) 112.18181818181819+112.18181818181819i) (num-test (/ 1/1 1.0+1.0i 1234/11) 0.00445705024311-0.00445705024311i) (num-test (= 1/1 1.0+1.0i 1234/11) #f) (num-test (+ 1/1 1.0+1.0i 1.234+1.234i) 3.234+2.234i) (num-test (- 1/1 1.0+1.0i 1.234+1.234i) -1.234-2.234i) (num-test (* 1/1 1.0+1.0i 1.234+1.234i) 0.0+2.468i) (num-test (/ 1/1 1.0+1.0i 1.234+1.234i) 0.0-0.40518638573744i) (num-test (= 1/1 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1/1 1.0+1.0i -1.0+1.0i) 1.0+2.0i) (num-test (- 1/1 1.0+1.0i -1.0+1.0i) 1.0-2.0i) (num-test (* 1/1 1.0+1.0i -1.0+1.0i) -2.0) (num-test (/ 1/1 1.0+1.0i -1.0+1.0i) -0.5) (num-test (= 1/1 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1/1 1.0+1.0i 0.0+1.0i) 2.0+2.0i) (num-test (- 1/1 1.0+1.0i 0.0+1.0i) 0.0-2.0i) (num-test (* 1/1 1.0+1.0i 0.0+1.0i) -1.0+1.0i) (num-test (/ 1/1 1.0+1.0i 0.0+1.0i) -0.5-0.5i) (num-test (= 1/1 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1/1 0 1) 2) (num-test (- 1/1 0 1) 0) (num-test (* 1/1 0 1) 0) (num-test (+ 1/1 0 1.0) 2.0) (num-test (- 1/1 0 1.0) 0.0) (num-test (* 1/1 0 1.0) 0.0) (num-test (+ 1/1 0 1/1) 2) (num-test (- 1/1 0 1/1) 0) (num-test (* 1/1 0 1/1) 0) (num-test (+ 1/1 0 1.0+1.0i) 2.0+1.0i) (num-test (- 1/1 0 1.0+1.0i) 0.0-1.0i) (num-test (* 1/1 0 1.0+1.0i) 0.0) (num-test (+ 1/1 0 0) 1) (num-test (- 1/1 0 0) 1) (num-test (* 1/1 0 0) 0) (num-test (+ 1/1 0 0.0) 1.0) (num-test (- 1/1 0 0.0) 1.0) (num-test (* 1/1 0 0.0) 0.0) (num-test (+ 1/1 0 1234) 1235) (num-test (- 1/1 0 1234) -1233) (num-test (* 1/1 0 1234) 0) (num-test (+ 1/1 0 123.4) 124.4) (num-test (- 1/1 0 123.4) -122.4) (num-test (* 1/1 0 123.4) 0.0) (num-test (+ 1/1 0 1234/11) 1245/11) (num-test (- 1/1 0 1234/11) -1223/11) (num-test (* 1/1 0 1234/11) 0) (num-test (+ 1/1 0 1.234+1.234i) 2.234+1.234i) (num-test (- 1/1 0 1.234+1.234i) -0.234-1.234i) (num-test (* 1/1 0 1.234+1.234i) 0.0) (num-test (+ 1/1 0 -1.0+1.0i) 0.0+1.0i) (num-test (- 1/1 0 -1.0+1.0i) 2.0-1.0i) (num-test (* 1/1 0 -1.0+1.0i) -0.0) (num-test (+ 1/1 0 0.0+1.0i) 1.0+1.0i) (num-test (- 1/1 0 0.0+1.0i) 1.0-1.0i) (num-test (* 1/1 0 0.0+1.0i) 0.0) (num-test (+ 1/1 0.0 1) 2.0) (num-test (- 1/1 0.0 1) 0.0) (num-test (* 1/1 0.0 1) 0.0) (num-test (+ 1/1 0.0 1.0) 2.0) (num-test (- 1/1 0.0 1.0) 0.0) (num-test (* 1/1 0.0 1.0) 0.0) (num-test (+ 1/1 0.0 1/1) 2.0) (num-test (- 1/1 0.0 1/1) 0.0) (num-test (* 1/1 0.0 1/1) 0.0) (num-test (+ 1/1 0.0 1.0+1.0i) 2.0+1.0i) (num-test (- 1/1 0.0 1.0+1.0i) 0.0-1.0i) (num-test (* 1/1 0.0 1.0+1.0i) 0.0) (num-test (+ 1/1 0.0 0) 1.0) (num-test (- 1/1 0.0 0) 1.0) (num-test (* 1/1 0.0 0) 0.0) (num-test (+ 1/1 0.0 0.0) 1.0) (num-test (- 1/1 0.0 0.0) 1.0) (num-test (* 1/1 0.0 0.0) 0.0) (num-test (+ 1/1 0.0 1234) 1235.0) (num-test (- 1/1 0.0 1234) -1233.0) (num-test (* 1/1 0.0 1234) 0.0) (num-test (+ 1/1 0.0 123.4) 124.4) (num-test (- 1/1 0.0 123.4) -122.4) (num-test (* 1/1 0.0 123.4) 0.0) (num-test (+ 1/1 0.0 1234/11) 113.18181818181819) (num-test (- 1/1 0.0 1234/11) -111.18181818181819) (num-test (* 1/1 0.0 1234/11) 0.0) (num-test (+ 1/1 0.0 1.234+1.234i) 2.234+1.234i) (num-test (- 1/1 0.0 1.234+1.234i) -0.234-1.234i) (num-test (* 1/1 0.0 1.234+1.234i) 0.0) (num-test (+ 1/1 0.0 -1.0+1.0i) 0.0+1.0i) (num-test (- 1/1 0.0 -1.0+1.0i) 2.0-1.0i) (num-test (* 1/1 0.0 -1.0+1.0i) -0.0) (num-test (+ 1/1 0.0 0.0+1.0i) 1.0+1.0i) (num-test (- 1/1 0.0 0.0+1.0i) 1.0-1.0i) (num-test (* 1/1 0.0 0.0+1.0i) 0.0) (num-test (+ 1/1 1234 1) 1236) (num-test (- 1/1 1234 1) -1234) (num-test (* 1/1 1234 1) 1234) (num-test (/ 1/1 1234 1) 1/1234) (num-test (= 1/1 1234 1) #f) (num-test (< 1/1 1234 1) #f) (num-test (<= 1/1 1234 1) #f) (num-test (> 1/1 1234 1) #f) (num-test (>= 1/1 1234 1) #f) (num-test (+ 1/1 1234 1.0) 1236.0) (num-test (- 1/1 1234 1.0) -1234.0) (num-test (* 1/1 1234 1.0) 1234.0) (num-test (/ 1/1 1234 1.0) 0.00081037277147) (num-test (= 1/1 1234 1.0) #f) (num-test (< 1/1 1234 1.0) #f) (num-test (<= 1/1 1234 1.0) #f) (num-test (> 1/1 1234 1.0) #f) (num-test (>= 1/1 1234 1.0) #f) (num-test (+ 1/1 1234 1/1) 1236) (num-test (- 1/1 1234 1/1) -1234) (num-test (* 1/1 1234 1/1) 1234) (num-test (/ 1/1 1234 1/1) 1/1234) (num-test (= 1/1 1234 1/1) #f) (num-test (< 1/1 1234 1/1) #f) (num-test (<= 1/1 1234 1/1) #f) (num-test (> 1/1 1234 1/1) #f) (num-test (>= 1/1 1234 1/1) #f) (num-test (+ 1/1 1234 1.0+1.0i) 1236.0+1.0i) (num-test (- 1/1 1234 1.0+1.0i) -1234.0-1.0i) (num-test (* 1/1 1234 1.0+1.0i) 1234.0+1234.0i) (num-test (/ 1/1 1234 1.0+1.0i) 0.00040518638574-0.00040518638574i) (num-test (= 1/1 1234 1.0+1.0i) #f) (num-test (+ 1/1 1234 0) 1235) (num-test (- 1/1 1234 0) -1233) (num-test (* 1/1 1234 0) 0) (num-test (+ 1/1 1234 0.0) 1235.0) (num-test (- 1/1 1234 0.0) -1233.0) (num-test (* 1/1 1234 0.0) 0.0) (num-test (+ 1/1 1234 1234) 2469) (num-test (- 1/1 1234 1234) -2467) (num-test (* 1/1 1234 1234) 1522756) (num-test (/ 1/1 1234 1234) 1/1522756) (num-test (= 1/1 1234 1234) #f) (num-test (< 1/1 1234 1234) #f) (num-test (<= 1/1 1234 1234) #t) (num-test (> 1/1 1234 1234) #f) (num-test (>= 1/1 1234 1234) #f) (num-test (+ 1/1 1234 123.4) 1358.4) (num-test (- 1/1 1234 123.4) -1356.4) (num-test (* 1/1 1234 123.4) 152275.60000000000582) (num-test (/ 1/1 1234 123.4) 0.00000656704029) (num-test (= 1/1 1234 123.4) #f) (num-test (< 1/1 1234 123.4) #f) (num-test (<= 1/1 1234 123.4) #f) (num-test (> 1/1 1234 123.4) #f) (num-test (>= 1/1 1234 123.4) #f) (num-test (+ 1/1 1234 1234/11) 14819/11) (num-test (- 1/1 1234 1234/11) -14797/11) (num-test (* 1/1 1234 1234/11) 1522756/11) (num-test (/ 1/1 1234 1234/11) 11/1522756) (num-test (= 1/1 1234 1234/11) #f) (num-test (< 1/1 1234 1234/11) #f) (num-test (<= 1/1 1234 1234/11) #f) (num-test (> 1/1 1234 1234/11) #f) (num-test (>= 1/1 1234 1234/11) #f) (num-test (+ 1/1 1234 1.234+1.234i) 1236.23399999999992+1.234i) (num-test (- 1/1 1234 1.234+1.234i) -1234.23399999999992-1.234i) (num-test (* 1/1 1234 1.234+1.234i) 1522.756+1522.756i) (num-test (/ 1/1 1234 1.234+1.234i) 0.00032835201437-0.00032835201437i) (num-test (= 1/1 1234 1.234+1.234i) #f) (num-test (+ 1/1 1234 -1.0+1.0i) 1234.0+1.0i) (num-test (- 1/1 1234 -1.0+1.0i) -1232.0-1.0i) (num-test (* 1/1 1234 -1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1/1 1234 -1.0+1.0i) -0.00040518638574-0.00040518638574i) (num-test (= 1/1 1234 -1.0+1.0i) #f) (num-test (+ 1/1 1234 0.0+1.0i) 1235.0+1.0i) (num-test (- 1/1 1234 0.0+1.0i) -1233.0-1.0i) (num-test (* 1/1 1234 0.0+1.0i) 0.0+1234.0i) (num-test (/ 1/1 1234 0.0+1.0i) 0.0-0.00081037277147i) (num-test (= 1/1 1234 0.0+1.0i) #f) (num-test (+ 1/1 123.4 1) 125.4) (num-test (- 1/1 123.4 1) -123.4) (num-test (* 1/1 123.4 1) 123.4) (num-test (/ 1/1 123.4 1) 0.00810372771475) (num-test (= 1/1 123.4 1) #f) (num-test (< 1/1 123.4 1) #f) (num-test (<= 1/1 123.4 1) #f) (num-test (> 1/1 123.4 1) #f) (num-test (>= 1/1 123.4 1) #f) (num-test (+ 1/1 123.4 1.0) 125.4) (num-test (- 1/1 123.4 1.0) -123.4) (num-test (* 1/1 123.4 1.0) 123.4) (num-test (/ 1/1 123.4 1.0) 0.00810372771475) (num-test (= 1/1 123.4 1.0) #f) (num-test (< 1/1 123.4 1.0) #f) (num-test (<= 1/1 123.4 1.0) #f) (num-test (> 1/1 123.4 1.0) #f) (num-test (>= 1/1 123.4 1.0) #f) (num-test (+ 1/1 123.4 1/1) 125.4) (num-test (- 1/1 123.4 1/1) -123.4) (num-test (* 1/1 123.4 1/1) 123.4) (num-test (/ 1/1 123.4 1/1) 0.00810372771475) (num-test (= 1/1 123.4 1/1) #f) (num-test (< 1/1 123.4 1/1) #f) (num-test (<= 1/1 123.4 1/1) #f) (num-test (> 1/1 123.4 1/1) #f) (num-test (>= 1/1 123.4 1/1) #f) (num-test (+ 1/1 123.4 1.0+1.0i) 125.4+1.0i) (num-test (- 1/1 123.4 1.0+1.0i) -123.4-1.0i) (num-test (* 1/1 123.4 1.0+1.0i) 123.4+123.4i) (num-test (/ 1/1 123.4 1.0+1.0i) 0.00405186385737-0.00405186385737i) (num-test (= 1/1 123.4 1.0+1.0i) #f) (num-test (+ 1/1 123.4 0) 124.4) (num-test (- 1/1 123.4 0) -122.4) (num-test (* 1/1 123.4 0) 0.0) (num-test (+ 1/1 123.4 0.0) 124.4) (num-test (- 1/1 123.4 0.0) -122.4) (num-test (* 1/1 123.4 0.0) 0.0) (num-test (+ 1/1 123.4 1234) 1358.4) (num-test (- 1/1 123.4 1234) -1356.4) (num-test (* 1/1 123.4 1234) 152275.60000000000582) (num-test (/ 1/1 123.4 1234) 0.00000656704029) (num-test (= 1/1 123.4 1234) #f) (num-test (< 1/1 123.4 1234) #t) (num-test (<= 1/1 123.4 1234) #t) (num-test (> 1/1 123.4 1234) #f) (num-test (>= 1/1 123.4 1234) #f) (num-test (+ 1/1 123.4 123.4) 247.8) (num-test (- 1/1 123.4 123.4) -245.8) (num-test (* 1/1 123.4 123.4) 15227.56000000000131) (num-test (/ 1/1 123.4 123.4) 0.00006567040287) (num-test (= 1/1 123.4 123.4) #f) (num-test (< 1/1 123.4 123.4) #f) (num-test (<= 1/1 123.4 123.4) #t) (num-test (> 1/1 123.4 123.4) #f) (num-test (>= 1/1 123.4 123.4) #f) (num-test (+ 1/1 123.4 1234/11) 236.58181818181819) (num-test (- 1/1 123.4 1234/11) -234.58181818181819) (num-test (* 1/1 123.4 1234/11) 13843.23636363636433) (num-test (/ 1/1 123.4 1234/11) 0.00007223744316) (num-test (= 1/1 123.4 1234/11) #f) (num-test (< 1/1 123.4 1234/11) #f) (num-test (<= 1/1 123.4 1234/11) #f) (num-test (> 1/1 123.4 1234/11) #f) (num-test (>= 1/1 123.4 1234/11) #f) (num-test (+ 1/1 123.4 1.234+1.234i) 125.634+1.234i) (num-test (- 1/1 123.4 1.234+1.234i) -123.634-1.234i) (num-test (* 1/1 123.4 1.234+1.234i) 152.2756+152.2756i) (num-test (/ 1/1 123.4 1.234+1.234i) 0.00328352014374-0.00328352014374i) (num-test (= 1/1 123.4 1.234+1.234i) #f) (num-test (+ 1/1 123.4 -1.0+1.0i) 123.4+1.0i) (num-test (- 1/1 123.4 -1.0+1.0i) -121.4-1.0i) (num-test (* 1/1 123.4 -1.0+1.0i) -123.4+123.4i) (num-test (/ 1/1 123.4 -1.0+1.0i) -0.00405186385737-0.00405186385737i) (num-test (= 1/1 123.4 -1.0+1.0i) #f) (num-test (+ 1/1 123.4 0.0+1.0i) 124.4+1.0i) (num-test (- 1/1 123.4 0.0+1.0i) -122.4-1.0i) (num-test (* 1/1 123.4 0.0+1.0i) 0.0+123.4i) (num-test (/ 1/1 123.4 0.0+1.0i) 0.0-0.00810372771475i) (num-test (= 1/1 123.4 0.0+1.0i) #f) (num-test (+ 1/1 1234/11 1) 1256/11) (num-test (- 1/1 1234/11 1) -1234/11) (num-test (* 1/1 1234/11 1) 1234/11) (num-test (/ 1/1 1234/11 1) 11/1234) (num-test (= 1/1 1234/11 1) #f) (num-test (< 1/1 1234/11 1) #f) (num-test (<= 1/1 1234/11 1) #f) (num-test (> 1/1 1234/11 1) #f) (num-test (>= 1/1 1234/11 1) #f) (num-test (+ 1/1 1234/11 1.0) 114.18181818181819) (num-test (- 1/1 1234/11 1.0) -112.18181818181819) (num-test (* 1/1 1234/11 1.0) 112.18181818181819) (num-test (/ 1/1 1234/11 1.0) 0.00891410048622) (num-test (= 1/1 1234/11 1.0) #f) (num-test (< 1/1 1234/11 1.0) #f) (num-test (<= 1/1 1234/11 1.0) #f) (num-test (> 1/1 1234/11 1.0) #f) (num-test (>= 1/1 1234/11 1.0) #f) (num-test (+ 1/1 1234/11 1/1) 1256/11) (num-test (- 1/1 1234/11 1/1) -1234/11) (num-test (* 1/1 1234/11 1/1) 1234/11) (num-test (/ 1/1 1234/11 1/1) 11/1234) (num-test (= 1/1 1234/11 1/1) #f) (num-test (< 1/1 1234/11 1/1) #f) (num-test (<= 1/1 1234/11 1/1) #f) (num-test (> 1/1 1234/11 1/1) #f) (num-test (>= 1/1 1234/11 1/1) #f) (num-test (+ 1/1 1234/11 1.0+1.0i) 114.18181818181819+1.0i) (num-test (- 1/1 1234/11 1.0+1.0i) -112.18181818181819-1.0i) (num-test (* 1/1 1234/11 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (/ 1/1 1234/11 1.0+1.0i) 0.00445705024311-0.00445705024311i) (num-test (= 1/1 1234/11 1.0+1.0i) #f) (num-test (+ 1/1 1234/11 0) 1245/11) (num-test (- 1/1 1234/11 0) -1223/11) (num-test (* 1/1 1234/11 0) 0) (num-test (+ 1/1 1234/11 0.0) 113.18181818181819) (num-test (- 1/1 1234/11 0.0) -111.18181818181819) (num-test (* 1/1 1234/11 0.0) 0.0) (num-test (+ 1/1 1234/11 1234) 14819/11) (num-test (- 1/1 1234/11 1234) -14797/11) (num-test (* 1/1 1234/11 1234) 1522756/11) (num-test (/ 1/1 1234/11 1234) 11/1522756) (num-test (= 1/1 1234/11 1234) #f) (num-test (< 1/1 1234/11 1234) #t) (num-test (<= 1/1 1234/11 1234) #t) (num-test (> 1/1 1234/11 1234) #f) (num-test (>= 1/1 1234/11 1234) #f) (num-test (+ 1/1 1234/11 123.4) 236.58181818181819) (num-test (- 1/1 1234/11 123.4) -234.58181818181819) (num-test (* 1/1 1234/11 123.4) 13843.23636363636433) (num-test (/ 1/1 1234/11 123.4) 0.00007223744316) (num-test (= 1/1 1234/11 123.4) #f) (num-test (< 1/1 1234/11 123.4) #t) (num-test (<= 1/1 1234/11 123.4) #t) (num-test (> 1/1 1234/11 123.4) #f) (num-test (>= 1/1 1234/11 123.4) #f) (num-test (+ 1/1 1234/11 1234/11) 2479/11) (num-test (- 1/1 1234/11 1234/11) -2457/11) (num-test (* 1/1 1234/11 1234/11) 1522756/121) (num-test (/ 1/1 1234/11 1234/11) 121/1522756) (num-test (= 1/1 1234/11 1234/11) #f) (num-test (< 1/1 1234/11 1234/11) #f) (num-test (<= 1/1 1234/11 1234/11) #t) (num-test (> 1/1 1234/11 1234/11) #f) (num-test (>= 1/1 1234/11 1234/11) #f) (num-test (+ 1/1 1234/11 1.234+1.234i) 114.41581818181818+1.234i) (num-test (- 1/1 1234/11 1.234+1.234i) -112.41581818181818-1.234i) (num-test (* 1/1 1234/11 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (/ 1/1 1234/11 1.234+1.234i) 0.00361187215811-0.00361187215811i) (num-test (= 1/1 1234/11 1.234+1.234i) #f) (num-test (+ 1/1 1234/11 -1.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1/1 1234/11 -1.0+1.0i) -110.18181818181819-1.0i) (num-test (* 1/1 1234/11 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1/1 1234/11 -1.0+1.0i) -0.00445705024311-0.00445705024311i) (num-test (= 1/1 1234/11 -1.0+1.0i) #f) (num-test (+ 1/1 1234/11 0.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1/1 1234/11 0.0+1.0i) -111.18181818181819-1.0i) (num-test (* 1/1 1234/11 0.0+1.0i) 0.0+112.18181818181819i) (num-test (/ 1/1 1234/11 0.0+1.0i) 0.0-0.00891410048622i) (num-test (= 1/1 1234/11 0.0+1.0i) #f) (num-test (+ 1/1 1.234+1.234i 1) 3.234+1.234i) (num-test (- 1/1 1.234+1.234i 1) -1.234-1.234i) (num-test (* 1/1 1.234+1.234i 1) 1.234+1.234i) (num-test (/ 1/1 1.234+1.234i 1) 0.40518638573744-0.40518638573744i) (num-test (= 1/1 1.234+1.234i 1) #f) (num-test (+ 1/1 1.234+1.234i 1.0) 3.234+1.234i) (num-test (- 1/1 1.234+1.234i 1.0) -1.234-1.234i) (num-test (* 1/1 1.234+1.234i 1.0) 1.234+1.234i) (num-test (/ 1/1 1.234+1.234i 1.0) 0.40518638573744-0.40518638573744i) (num-test (= 1/1 1.234+1.234i 1.0) #f) (num-test (+ 1/1 1.234+1.234i 1/1) 3.234+1.234i) (num-test (- 1/1 1.234+1.234i 1/1) -1.234-1.234i) (num-test (* 1/1 1.234+1.234i 1/1) 1.234+1.234i) (num-test (/ 1/1 1.234+1.234i 1/1) 0.40518638573744-0.40518638573744i) (num-test (= 1/1 1.234+1.234i 1/1) #f) (num-test (+ 1/1 1.234+1.234i 1.0+1.0i) 3.234+2.234i) (num-test (- 1/1 1.234+1.234i 1.0+1.0i) -1.234-2.234i) (num-test (* 1/1 1.234+1.234i 1.0+1.0i) 0.0+2.468i) (num-test (/ 1/1 1.234+1.234i 1.0+1.0i) 0.0-0.40518638573744i) (num-test (= 1/1 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 1/1 1.234+1.234i 0) 2.234+1.234i) (num-test (- 1/1 1.234+1.234i 0) -0.234-1.234i) (num-test (* 1/1 1.234+1.234i 0) 0.0) (num-test (+ 1/1 1.234+1.234i 0.0) 2.234+1.234i) (num-test (- 1/1 1.234+1.234i 0.0) -0.234-1.234i) (num-test (* 1/1 1.234+1.234i 0.0) 0.0) (num-test (+ 1/1 1.234+1.234i 1234) 1236.23399999999992+1.234i) (num-test (- 1/1 1.234+1.234i 1234) -1234.23399999999992-1.234i) (num-test (* 1/1 1.234+1.234i 1234) 1522.756+1522.756i) (num-test (/ 1/1 1.234+1.234i 1234) 0.00032835201437-0.00032835201437i) (num-test (= 1/1 1.234+1.234i 1234) #f) (num-test (+ 1/1 1.234+1.234i 123.4) 125.634+1.234i) (num-test (- 1/1 1.234+1.234i 123.4) -123.634-1.234i) (num-test (* 1/1 1.234+1.234i 123.4) 152.2756+152.2756i) (num-test (/ 1/1 1.234+1.234i 123.4) 0.00328352014374-0.00328352014374i) (num-test (= 1/1 1.234+1.234i 123.4) #f) (num-test (+ 1/1 1.234+1.234i 1234/11) 114.41581818181818+1.234i) (num-test (- 1/1 1.234+1.234i 1234/11) -112.41581818181818-1.234i) (num-test (* 1/1 1.234+1.234i 1234/11) 138.43236363636365+138.43236363636365i) (num-test (/ 1/1 1.234+1.234i 1234/11) 0.00361187215811-0.00361187215811i) (num-test (= 1/1 1.234+1.234i 1234/11) #f) (num-test (+ 1/1 1.234+1.234i 1.234+1.234i) 3.468+2.468i) (num-test (- 1/1 1.234+1.234i 1.234+1.234i) -1.468-2.468i) (num-test (* 1/1 1.234+1.234i 1.234+1.234i) 0.0+3.04551200000000i) (num-test (/ 1/1 1.234+1.234i 1.234+1.234i) 0.0-0.32835201437394i) (num-test (= 1/1 1.234+1.234i 1.234+1.234i) #f) (num-test (+ 1/1 1.234+1.234i -1.0+1.0i) 1.234+2.234i) (num-test (- 1/1 1.234+1.234i -1.0+1.0i) 0.766-2.234i) (num-test (* 1/1 1.234+1.234i -1.0+1.0i) -2.468) (num-test (/ 1/1 1.234+1.234i -1.0+1.0i) -0.40518638573744) (num-test (= 1/1 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 1/1 1.234+1.234i 0.0+1.0i) 2.234+2.234i) (num-test (- 1/1 1.234+1.234i 0.0+1.0i) -0.234-2.234i) (num-test (* 1/1 1.234+1.234i 0.0+1.0i) -1.234+1.234i) (num-test (/ 1/1 1.234+1.234i 0.0+1.0i) -0.40518638573744-0.40518638573744i) (num-test (= 1/1 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 1/1 -1.0+1.0i 1) 1.0+1.0i) (num-test (- 1/1 -1.0+1.0i 1) 1.0-1.0i) (num-test (* 1/1 -1.0+1.0i 1) -1.0+1.0i) (num-test (/ 1/1 -1.0+1.0i 1) -0.5-0.5i) (num-test (= 1/1 -1.0+1.0i 1) #f) (num-test (+ 1/1 -1.0+1.0i 1.0) 1.0+1.0i) (num-test (- 1/1 -1.0+1.0i 1.0) 1.0-1.0i) (num-test (* 1/1 -1.0+1.0i 1.0) -1.0+1.0i) (num-test (/ 1/1 -1.0+1.0i 1.0) -0.5-0.5i) (num-test (= 1/1 -1.0+1.0i 1.0) #f) (num-test (+ 1/1 -1.0+1.0i 1/1) 1.0+1.0i) (num-test (- 1/1 -1.0+1.0i 1/1) 1.0-1.0i) (num-test (* 1/1 -1.0+1.0i 1/1) -1.0+1.0i) (num-test (/ 1/1 -1.0+1.0i 1/1) -0.5-0.5i) (num-test (= 1/1 -1.0+1.0i 1/1) #f) (num-test (+ 1/1 -1.0+1.0i 1.0+1.0i) 1.0+2.0i) (num-test (- 1/1 -1.0+1.0i 1.0+1.0i) 1.0-2.0i) (num-test (* 1/1 -1.0+1.0i 1.0+1.0i) -2.0) (num-test (/ 1/1 -1.0+1.0i 1.0+1.0i) -0.5) (num-test (= 1/1 -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1/1 -1.0+1.0i 0) 0.0+1.0i) (num-test (- 1/1 -1.0+1.0i 0) 2.0-1.0i) (num-test (* 1/1 -1.0+1.0i 0) -0.0) (num-test (+ 1/1 -1.0+1.0i 0.0) 0.0+1.0i) (num-test (- 1/1 -1.0+1.0i 0.0) 2.0-1.0i) (num-test (* 1/1 -1.0+1.0i 0.0) -0.0) (num-test (+ 1/1 -1.0+1.0i 1234) 1234.0+1.0i) (num-test (- 1/1 -1.0+1.0i 1234) -1232.0-1.0i) (num-test (* 1/1 -1.0+1.0i 1234) -1234.0+1234.0i) (num-test (/ 1/1 -1.0+1.0i 1234) -0.00040518638574-0.00040518638574i) (num-test (= 1/1 -1.0+1.0i 1234) #f) (num-test (+ 1/1 -1.0+1.0i 123.4) 123.4+1.0i) (num-test (- 1/1 -1.0+1.0i 123.4) -121.4-1.0i) (num-test (* 1/1 -1.0+1.0i 123.4) -123.4+123.4i) (num-test (/ 1/1 -1.0+1.0i 123.4) -0.00405186385737-0.00405186385737i) (num-test (= 1/1 -1.0+1.0i 123.4) #f) (num-test (+ 1/1 -1.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (- 1/1 -1.0+1.0i 1234/11) -110.18181818181819-1.0i) (num-test (* 1/1 -1.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ 1/1 -1.0+1.0i 1234/11) -0.00445705024311-0.00445705024311i) (num-test (= 1/1 -1.0+1.0i 1234/11) #f) (num-test (+ 1/1 -1.0+1.0i 1.234+1.234i) 1.234+2.234i) (num-test (- 1/1 -1.0+1.0i 1.234+1.234i) 0.766-2.234i) (num-test (* 1/1 -1.0+1.0i 1.234+1.234i) -2.468) (num-test (/ 1/1 -1.0+1.0i 1.234+1.234i) -0.40518638573744) (num-test (= 1/1 -1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1/1 -1.0+1.0i -1.0+1.0i) -1.0+2.0i) (num-test (- 1/1 -1.0+1.0i -1.0+1.0i) 3.0-2.0i) (num-test (* 1/1 -1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (/ 1/1 -1.0+1.0i -1.0+1.0i) -0.0+0.5i) (num-test (= 1/1 -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1/1 -1.0+1.0i 0.0+1.0i) 0.0+2.0i) (num-test (- 1/1 -1.0+1.0i 0.0+1.0i) 2.0-2.0i) (num-test (* 1/1 -1.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (/ 1/1 -1.0+1.0i 0.0+1.0i) -0.5+0.5i) (num-test (= 1/1 -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1/1 0.0+1.0i 1) 2.0+1.0i) (num-test (- 1/1 0.0+1.0i 1) 0.0-1.0i) (num-test (* 1/1 0.0+1.0i 1) 0.0+1.0i) (num-test (/ 1/1 0.0+1.0i 1) 0.0-1.0i) (num-test (= 1/1 0.0+1.0i 1) #f) (num-test (+ 1/1 0.0+1.0i 1.0) 2.0+1.0i) (num-test (- 1/1 0.0+1.0i 1.0) 0.0-1.0i) (num-test (* 1/1 0.0+1.0i 1.0) 0.0+1.0i) (num-test (/ 1/1 0.0+1.0i 1.0) 0.0-1.0i) (num-test (= 1/1 0.0+1.0i 1.0) #f) (num-test (+ 1/1 0.0+1.0i 1/1) 2.0+1.0i) (num-test (- 1/1 0.0+1.0i 1/1) 0.0-1.0i) (num-test (* 1/1 0.0+1.0i 1/1) 0.0+1.0i) (num-test (/ 1/1 0.0+1.0i 1/1) 0.0-1.0i) (num-test (= 1/1 0.0+1.0i 1/1) #f) (num-test (+ 1/1 0.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (- 1/1 0.0+1.0i 1.0+1.0i) 0.0-2.0i) (num-test (* 1/1 0.0+1.0i 1.0+1.0i) -1.0+1.0i) (num-test (/ 1/1 0.0+1.0i 1.0+1.0i) -0.5-0.5i) (num-test (= 1/1 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 1/1 0.0+1.0i 0) 1.0+1.0i) (num-test (- 1/1 0.0+1.0i 0) 1.0-1.0i) (num-test (* 1/1 0.0+1.0i 0) 0.0) (num-test (+ 1/1 0.0+1.0i 0.0) 1.0+1.0i) (num-test (- 1/1 0.0+1.0i 0.0) 1.0-1.0i) (num-test (* 1/1 0.0+1.0i 0.0) 0.0) (num-test (+ 1/1 0.0+1.0i 1234) 1235.0+1.0i) (num-test (- 1/1 0.0+1.0i 1234) -1233.0-1.0i) (num-test (* 1/1 0.0+1.0i 1234) 0.0+1234.0i) (num-test (/ 1/1 0.0+1.0i 1234) 0.0-0.00081037277147i) (num-test (= 1/1 0.0+1.0i 1234) #f) (num-test (+ 1/1 0.0+1.0i 123.4) 124.4+1.0i) (num-test (- 1/1 0.0+1.0i 123.4) -122.4-1.0i) (num-test (* 1/1 0.0+1.0i 123.4) 0.0+123.4i) (num-test (/ 1/1 0.0+1.0i 123.4) 0.0-0.00810372771475i) (num-test (= 1/1 0.0+1.0i 123.4) #f) (num-test (+ 1/1 0.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (- 1/1 0.0+1.0i 1234/11) -111.18181818181819-1.0i) (num-test (* 1/1 0.0+1.0i 1234/11) 0.0+112.18181818181819i) (num-test (/ 1/1 0.0+1.0i 1234/11) 0.0-0.00891410048622i) (num-test (= 1/1 0.0+1.0i 1234/11) #f) (num-test (+ 1/1 0.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (- 1/1 0.0+1.0i 1.234+1.234i) -0.234-2.234i) (num-test (* 1/1 0.0+1.0i 1.234+1.234i) -1.234+1.234i) (num-test (/ 1/1 0.0+1.0i 1.234+1.234i) -0.40518638573744-0.40518638573744i) (num-test (= 1/1 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 1/1 0.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (- 1/1 0.0+1.0i -1.0+1.0i) 2.0-2.0i) (num-test (* 1/1 0.0+1.0i -1.0+1.0i) -1.0-1.0i) (num-test (/ 1/1 0.0+1.0i -1.0+1.0i) -0.5+0.5i) (num-test (= 1/1 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 1/1 0.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (- 1/1 0.0+1.0i 0.0+1.0i) 1.0-2.0i) (num-test (* 1/1 0.0+1.0i 0.0+1.0i) -1.0) (num-test (/ 1/1 0.0+1.0i 0.0+1.0i) -1.0) (num-test (= 1/1 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.0+1.0i 1 1) 3.0+1.0i) (num-test (- 1.0+1.0i 1 1) -1.0+1.0i) (num-test (* 1.0+1.0i 1 1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1 1) 1.0+1.0i) (num-test (= 1.0+1.0i 1 1) #f) (num-test (+ 1.0+1.0i 1 1.0) 3.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.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) #f) (num-test (+ 1.0+1.0i 1 1/1) 3.0+1.0i) (num-test (- 1.0+1.0i 1 1/1) -1.0+1.0i) (num-test (* 1.0+1.0i 1 1/1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1 1/1) 1.0+1.0i) (num-test (= 1.0+1.0i 1 1/1) #f) (num-test (+ 1.0+1.0i 1 1.0+1.0i) 3.0+2.0i) (num-test (- 1.0+1.0i 1 1.0+1.0i) -1.0) (num-test (* 1.0+1.0i 1 1.0+1.0i) 0.0+2.0i) (num-test (/ 1.0+1.0i 1 1.0+1.0i) 1.0) (num-test (= 1.0+1.0i 1 1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1 0) 2.0+1.0i) (num-test (- 1.0+1.0i 1 0) 0.0+1.0i) (num-test (* 1.0+1.0i 1 0) 0.0) (num-test (+ 1.0+1.0i 1 0.0) 2.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) 0.0) (num-test (+ 1.0+1.0i 1 1234) 1236.0+1.0i) (num-test (- 1.0+1.0i 1 1234) -1234.0+1.0i) (num-test (* 1.0+1.0i 1 1234) 1234.0+1234.0i) (num-test (/ 1.0+1.0i 1 1234) 0.00081037277147+0.00081037277147i) (num-test (= 1.0+1.0i 1 1234) #f) (num-test (+ 1.0+1.0i 1 123.4) 125.4+1.0i) (num-test (- 1.0+1.0i 1 123.4) -123.4+1.0i) (num-test (* 1.0+1.0i 1 123.4) 123.4+123.4i) (num-test (/ 1.0+1.0i 1 123.4) 0.00810372771475+0.00810372771475i) (num-test (= 1.0+1.0i 1 123.4) #f) (num-test (+ 1.0+1.0i 1 1234/11) 114.18181818181819+1.0i) (num-test (- 1.0+1.0i 1 1234/11) -112.18181818181819+1.0i) (num-test (* 1.0+1.0i 1 1234/11) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1 1234/11) 0.00891410048622+0.00891410048622i) (num-test (= 1.0+1.0i 1 1234/11) #f) (num-test (+ 1.0+1.0i 1 1.234+1.234i) 3.234+2.234i) (num-test (- 1.0+1.0i 1 1.234+1.234i) -1.234-0.234i) (num-test (* 1.0+1.0i 1 1.234+1.234i) 0.0+2.468i) (num-test (/ 1.0+1.0i 1 1.234+1.234i) 0.81037277147488) (num-test (= 1.0+1.0i 1 1.234+1.234i) #f) (num-test (+ 1.0+1.0i 1 -1.0+1.0i) 1.0+2.0i) (num-test (- 1.0+1.0i 1 -1.0+1.0i) 1.0) (num-test (* 1.0+1.0i 1 -1.0+1.0i) -2.0) (num-test (/ 1.0+1.0i 1 -1.0+1.0i) -0.0-1.0i) (num-test (= 1.0+1.0i 1 -1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1 0.0+1.0i) 2.0+2.0i) (num-test (- 1.0+1.0i 1 0.0+1.0i) 0.0) (num-test (* 1.0+1.0i 1 0.0+1.0i) -1.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 0.0+1.0i) #f) (num-test (+ 1.0+1.0i 1.0 1) 3.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) 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) #f) (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.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.0+1.0i) (num-test (= 1.0+1.0i 1.0 1.0) #f) (num-test (+ 1.0+1.0i 1.0 1/1) 3.0+1.0i) (num-test (- 1.0+1.0i 1.0 1/1) -1.0+1.0i) (num-test (* 1.0+1.0i 1.0 1/1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1.0 1/1) 1.0+1.0i) (num-test (= 1.0+1.0i 1.0 1/1) #f) (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.0+1.0i) -1.0) (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.0+1.0i) 1.0) (num-test (= 1.0+1.0i 1.0 1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1.0 0) 2.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) 0.0) (num-test (+ 1.0+1.0i 1.0 0.0) 2.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) 0.0) (num-test (+ 1.0+1.0i 1.0 1234) 1236.0+1.0i) (num-test (- 1.0+1.0i 1.0 1234) -1234.0+1.0i) (num-test (* 1.0+1.0i 1.0 1234) 1234.0+1234.0i) (num-test (/ 1.0+1.0i 1.0 1234) 0.00081037277147+0.00081037277147i) (num-test (= 1.0+1.0i 1.0 1234) #f) (num-test (+ 1.0+1.0i 1.0 123.4) 125.4+1.0i) (num-test (- 1.0+1.0i 1.0 123.4) -123.4+1.0i) (num-test (* 1.0+1.0i 1.0 123.4) 123.4+123.4i) (num-test (/ 1.0+1.0i 1.0 123.4) 0.00810372771475+0.00810372771475i) (num-test (= 1.0+1.0i 1.0 123.4) #f) (num-test (+ 1.0+1.0i 1.0 1234/11) 114.18181818181819+1.0i) (num-test (- 1.0+1.0i 1.0 1234/11) -112.18181818181819+1.0i) (num-test (* 1.0+1.0i 1.0 1234/11) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1.0 1234/11) 0.00891410048622+0.00891410048622i) (num-test (= 1.0+1.0i 1.0 1234/11) #f) (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.234+1.234i) -1.234-0.234i) (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.234+1.234i) 0.81037277147488) (num-test (= 1.0+1.0i 1.0 1.234+1.234i) #f) (num-test (+ 1.0+1.0i 1.0 -1.0+1.0i) 1.0+2.0i) (num-test (- 1.0+1.0i 1.0 -1.0+1.0i) 1.0) (num-test (* 1.0+1.0i 1.0 -1.0+1.0i) -2.0) (num-test (/ 1.0+1.0i 1.0 -1.0+1.0i) -0.0-1.0i) (num-test (= 1.0+1.0i 1.0 -1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1.0 0.0+1.0i) 2.0+2.0i) (num-test (- 1.0+1.0i 1.0 0.0+1.0i) 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 0.0+1.0i) 1.0-1.0i) (num-test (= 1.0+1.0i 1.0 0.0+1.0i) #f) (num-test (+ 1.0+1.0i 1/1 1) 3.0+1.0i) (num-test (- 1.0+1.0i 1/1 1) -1.0+1.0i) (num-test (* 1.0+1.0i 1/1 1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1/1 1) 1.0+1.0i) (num-test (= 1.0+1.0i 1/1 1) #f) (num-test (+ 1.0+1.0i 1/1 1.0) 3.0+1.0i) (num-test (- 1.0+1.0i 1/1 1.0) -1.0+1.0i) (num-test (* 1.0+1.0i 1/1 1.0) 1.0+1.0i) (num-test (/ 1.0+1.0i 1/1 1.0) 1.0+1.0i) (num-test (= 1.0+1.0i 1/1 1.0) #f) (num-test (+ 1.0+1.0i 1/1 1/1) 3.0+1.0i) (num-test (- 1.0+1.0i 1/1 1/1) -1.0+1.0i) (num-test (* 1.0+1.0i 1/1 1/1) 1.0+1.0i) (num-test (/ 1.0+1.0i 1/1 1/1) 1.0+1.0i) (num-test (= 1.0+1.0i 1/1 1/1) #f) (num-test (+ 1.0+1.0i 1/1 1.0+1.0i) 3.0+2.0i) (num-test (- 1.0+1.0i 1/1 1.0+1.0i) -1.0) (num-test (* 1.0+1.0i 1/1 1.0+1.0i) 0.0+2.0i) (num-test (/ 1.0+1.0i 1/1 1.0+1.0i) 1.0) (num-test (= 1.0+1.0i 1/1 1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1/1 0) 2.0+1.0i) (num-test (- 1.0+1.0i 1/1 0) 0.0+1.0i) (num-test (* 1.0+1.0i 1/1 0) 0.0) (num-test (+ 1.0+1.0i 1/1 0.0) 2.0+1.0i) (num-test (- 1.0+1.0i 1/1 0.0) 0.0+1.0i) (num-test (* 1.0+1.0i 1/1 0.0) 0.0) (num-test (+ 1.0+1.0i 1/1 1234) 1236.0+1.0i) (num-test (- 1.0+1.0i 1/1 1234) -1234.0+1.0i) (num-test (* 1.0+1.0i 1/1 1234) 1234.0+1234.0i) (num-test (/ 1.0+1.0i 1/1 1234) 0.00081037277147+0.00081037277147i) (num-test (= 1.0+1.0i 1/1 1234) #f) (num-test (+ 1.0+1.0i 1/1 123.4) 125.4+1.0i) (num-test (- 1.0+1.0i 1/1 123.4) -123.4+1.0i) (num-test (* 1.0+1.0i 1/1 123.4) 123.4+123.4i) (num-test (/ 1.0+1.0i 1/1 123.4) 0.00810372771475+0.00810372771475i) (num-test (= 1.0+1.0i 1/1 123.4) #f) (num-test (+ 1.0+1.0i 1/1 1234/11) 114.18181818181819+1.0i) (num-test (- 1.0+1.0i 1/1 1234/11) -112.18181818181819+1.0i) (num-test (* 1.0+1.0i 1/1 1234/11) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1/1 1234/11) 0.00891410048622+0.00891410048622i) (num-test (= 1.0+1.0i 1/1 1234/11) #f) (num-test (+ 1.0+1.0i 1/1 1.234+1.234i) 3.234+2.234i) (num-test (- 1.0+1.0i 1/1 1.234+1.234i) -1.234-0.234i) (num-test (* 1.0+1.0i 1/1 1.234+1.234i) 0.0+2.468i) (num-test (/ 1.0+1.0i 1/1 1.234+1.234i) 0.81037277147488) (num-test (= 1.0+1.0i 1/1 1.234+1.234i) #f) (num-test (+ 1.0+1.0i 1/1 -1.0+1.0i) 1.0+2.0i) (num-test (- 1.0+1.0i 1/1 -1.0+1.0i) 1.0) (num-test (* 1.0+1.0i 1/1 -1.0+1.0i) -2.0) (num-test (/ 1.0+1.0i 1/1 -1.0+1.0i) -0.0-1.0i) (num-test (= 1.0+1.0i 1/1 -1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1/1 0.0+1.0i) 2.0+2.0i) (num-test (- 1.0+1.0i 1/1 0.0+1.0i) 0.0) (num-test (* 1.0+1.0i 1/1 0.0+1.0i) -1.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 1/1 0.0+1.0i) #f) (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) -1.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) 1.0) (num-test (= 1.0+1.0i 1.0+1.0i 1) #f) (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.0) (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.0) (num-test (= 1.0+1.0i 1.0+1.0i 1.0) #f) (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 1/1) -1.0) (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 1/1) 1.0) (num-test (= 1.0+1.0i 1.0+1.0i 1/1) #f) (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.0+1.0i) -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 1.0+1.0i) 0.5-0.5i) (num-test (= 1.0+1.0i 1.0+1.0i 1.0+1.0i) #t) (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.0) (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) 2.0+2.0i) (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) 0.0) (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) -1234.0) (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) 0.00081037277147) (num-test (= 1.0+1.0i 1.0+1.0i 1234) #f) (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 123.4) -123.4) (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 123.4) 0.00810372771475) (num-test (= 1.0+1.0i 1.0+1.0i 123.4) #f) (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 1234/11) -112.18181818181819) (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 1234/11) 0.00891410048622) (num-test (= 1.0+1.0i 1.0+1.0i 1234/11) #f) (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.234+1.234i) -1.234-1.234i) (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.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1.0+1.0i 1.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 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 -1.0+1.0i) -0.5-0.5i) (num-test (= 1.0+1.0i 1.0+1.0i -1.0+1.0i) #f) (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 0.0+1.0i) 0.0-1.0i) (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 0.0+1.0i) 0.0-1.0i) (num-test (= 1.0+1.0i 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.0+1.0i 0 1) 2.0+1.0i) (num-test (- 1.0+1.0i 0 1) 0.0+1.0i) (num-test (* 1.0+1.0i 0 1) 0.0) (num-test (+ 1.0+1.0i 0 1.0) 2.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) 0.0) (num-test (+ 1.0+1.0i 0 1/1) 2.0+1.0i) (num-test (- 1.0+1.0i 0 1/1) 0.0+1.0i) (num-test (* 1.0+1.0i 0 1/1) 0.0) (num-test (+ 1.0+1.0i 0 1.0+1.0i) 2.0+2.0i) (num-test (- 1.0+1.0i 0 1.0+1.0i) 0.0) (num-test (* 1.0+1.0i 0 1.0+1.0i) 0.0) (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) 0.0) (num-test (+ 1.0+1.0i 0 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) 0.0) (num-test (+ 1.0+1.0i 0 1234) 1235.0+1.0i) (num-test (- 1.0+1.0i 0 1234) -1233.0+1.0i) (num-test (* 1.0+1.0i 0 1234) 0.0) (num-test (+ 1.0+1.0i 0 123.4) 124.4+1.0i) (num-test (- 1.0+1.0i 0 123.4) -122.4+1.0i) (num-test (* 1.0+1.0i 0 123.4) 0.0) (num-test (+ 1.0+1.0i 0 1234/11) 113.18181818181819+1.0i) (num-test (- 1.0+1.0i 0 1234/11) -111.18181818181819+1.0i) (num-test (* 1.0+1.0i 0 1234/11) 0.0) (num-test (+ 1.0+1.0i 0 1.234+1.234i) 2.234+2.234i) (num-test (- 1.0+1.0i 0 1.234+1.234i) -0.234-0.234i) (num-test (* 1.0+1.0i 0 1.234+1.234i) 0.0) (num-test (+ 1.0+1.0i 0 -1.0+1.0i) 0.0+2.0i) (num-test (- 1.0+1.0i 0 -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+1.0i) 1.0+2.0i) (num-test (- 1.0+1.0i 0 0.0+1.0i) 1.0) (num-test (* 1.0+1.0i 0 0.0+1.0i) 0.0) (num-test (+ 1.0+1.0i 0.0 1) 2.0+1.0i) (num-test (- 1.0+1.0i 0.0 1) 0.0+1.0i) (num-test (* 1.0+1.0i 0.0 1) 0.0) (num-test (+ 1.0+1.0i 0.0 1.0) 2.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) 0.0) (num-test (+ 1.0+1.0i 0.0 1/1) 2.0+1.0i) (num-test (- 1.0+1.0i 0.0 1/1) 0.0+1.0i) (num-test (* 1.0+1.0i 0.0 1/1) 0.0) (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.0+1.0i) 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) 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) 0.0) (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.0+1.0i) (num-test (* 1.0+1.0i 0.0 0.0) 0.0) (num-test (+ 1.0+1.0i 0.0 1234) 1235.0+1.0i) (num-test (- 1.0+1.0i 0.0 1234) -1233.0+1.0i) (num-test (* 1.0+1.0i 0.0 1234) 0.0) (num-test (+ 1.0+1.0i 0.0 123.4) 124.4+1.0i) (num-test (- 1.0+1.0i 0.0 123.4) -122.4+1.0i) (num-test (* 1.0+1.0i 0.0 123.4) 0.0) (num-test (+ 1.0+1.0i 0.0 1234/11) 113.18181818181819+1.0i) (num-test (- 1.0+1.0i 0.0 1234/11) -111.18181818181819+1.0i) (num-test (* 1.0+1.0i 0.0 1234/11) 0.0) (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.234+1.234i) -0.234-0.234i) (num-test (* 1.0+1.0i 0.0 1.234+1.234i) 0.0) (num-test (+ 1.0+1.0i 0.0 -1.0+1.0i) 0.0+2.0i) (num-test (- 1.0+1.0i 0.0 -1.0+1.0i) 2.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+1.0i) 1.0+2.0i) (num-test (- 1.0+1.0i 0.0 0.0+1.0i) 1.0) (num-test (* 1.0+1.0i 0.0 0.0+1.0i) 0.0) (num-test (+ 1.0+1.0i 1234 1) 1236.0+1.0i) (num-test (- 1.0+1.0i 1234 1) -1234.0+1.0i) (num-test (* 1.0+1.0i 1234 1) 1234.0+1234.0i) (num-test (/ 1.0+1.0i 1234 1) 0.00081037277147+0.00081037277147i) (num-test (= 1.0+1.0i 1234 1) #f) (num-test (+ 1.0+1.0i 1234 1.0) 1236.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) 1234.0+1234.0i) (num-test (/ 1.0+1.0i 1234 1.0) 0.00081037277147+0.00081037277147i) (num-test (= 1.0+1.0i 1234 1.0) #f) (num-test (+ 1.0+1.0i 1234 1/1) 1236.0+1.0i) (num-test (- 1.0+1.0i 1234 1/1) -1234.0+1.0i) (num-test (* 1.0+1.0i 1234 1/1) 1234.0+1234.0i) (num-test (/ 1.0+1.0i 1234 1/1) 0.00081037277147+0.00081037277147i) (num-test (= 1.0+1.0i 1234 1/1) #f) (num-test (+ 1.0+1.0i 1234 1.0+1.0i) 1236.0+2.0i) (num-test (- 1.0+1.0i 1234 1.0+1.0i) -1234.0) (num-test (* 1.0+1.0i 1234 1.0+1.0i) 0.0+2468.0i) (num-test (/ 1.0+1.0i 1234 1.0+1.0i) 0.00081037277147) (num-test (= 1.0+1.0i 1234 1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1234 0) 1235.0+1.0i) (num-test (- 1.0+1.0i 1234 0) -1233.0+1.0i) (num-test (* 1.0+1.0i 1234 0) 0.0) (num-test (+ 1.0+1.0i 1234 0.0) 1235.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) 0.0) (num-test (+ 1.0+1.0i 1234 1234) 2469.0+1.0i) (num-test (- 1.0+1.0i 1234 1234) -2467.0+1.0i) (num-test (* 1.0+1.0i 1234 1234) 1522756.0+1522756.0i) (num-test (/ 1.0+1.0i 1234 1234) 0.00000065670403+0.00000065670403i) (num-test (= 1.0+1.0i 1234 1234) #f) (num-test (+ 1.0+1.0i 1234 123.4) 1358.4+1.0i) (num-test (- 1.0+1.0i 1234 123.4) -1356.4+1.0i) (num-test (* 1.0+1.0i 1234 123.4) 152275.60000000000582+152275.60000000000582i) (num-test (/ 1.0+1.0i 1234 123.4) 0.00000656704029+0.00000656704029i) (num-test (= 1.0+1.0i 1234 123.4) #f) (num-test (+ 1.0+1.0i 1234 1234/11) 1347.18181818181824+1.0i) (num-test (- 1.0+1.0i 1234 1234/11) -1345.18181818181824+1.0i) (num-test (* 1.0+1.0i 1234 1234/11) 138432.36363636364695+138432.36363636364695i) (num-test (/ 1.0+1.0i 1234 1234/11) 0.00000722374432+0.00000722374432i) (num-test (= 1.0+1.0i 1234 1234/11) #f) (num-test (+ 1.0+1.0i 1234 1.234+1.234i) 1236.23399999999992+2.234i) (num-test (- 1.0+1.0i 1234 1.234+1.234i) -1234.23399999999992-0.234i) (num-test (* 1.0+1.0i 1234 1.234+1.234i) 0.0+3045.51200000000017i) (num-test (/ 1.0+1.0i 1234 1.234+1.234i) 0.00065670402875) (num-test (= 1.0+1.0i 1234 1.234+1.234i) #f) (num-test (+ 1.0+1.0i 1234 -1.0+1.0i) 1234.0+2.0i) (num-test (- 1.0+1.0i 1234 -1.0+1.0i) -1232.0) (num-test (* 1.0+1.0i 1234 -1.0+1.0i) -2468.0) (num-test (/ 1.0+1.0i 1234 -1.0+1.0i) -0.0-0.00081037277147i) (num-test (= 1.0+1.0i 1234 -1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1234 0.0+1.0i) 1235.0+2.0i) (num-test (- 1.0+1.0i 1234 0.0+1.0i) -1233.0) (num-test (* 1.0+1.0i 1234 0.0+1.0i) -1234.0+1234.0i) (num-test (/ 1.0+1.0i 1234 0.0+1.0i) 0.00081037277147-0.00081037277147i) (num-test (= 1.0+1.0i 1234 0.0+1.0i) #f) (num-test (+ 1.0+1.0i 123.4 1) 125.4+1.0i) (num-test (- 1.0+1.0i 123.4 1) -123.4+1.0i) (num-test (* 1.0+1.0i 123.4 1) 123.4+123.4i) (num-test (/ 1.0+1.0i 123.4 1) 0.00810372771475+0.00810372771475i) (num-test (= 1.0+1.0i 123.4 1) #f) (num-test (+ 1.0+1.0i 123.4 1.0) 125.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) 123.4+123.4i) (num-test (/ 1.0+1.0i 123.4 1.0) 0.00810372771475+0.00810372771475i) (num-test (= 1.0+1.0i 123.4 1.0) #f) (num-test (+ 1.0+1.0i 123.4 1/1) 125.4+1.0i) (num-test (- 1.0+1.0i 123.4 1/1) -123.4+1.0i) (num-test (* 1.0+1.0i 123.4 1/1) 123.4+123.4i) (num-test (/ 1.0+1.0i 123.4 1/1) 0.00810372771475+0.00810372771475i) (num-test (= 1.0+1.0i 123.4 1/1) #f) (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.0+1.0i) -123.4) (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.0+1.0i) 0.00810372771475) (num-test (= 1.0+1.0i 123.4 1.0+1.0i) #f) (num-test (+ 1.0+1.0i 123.4 0) 124.4+1.0i) (num-test (- 1.0+1.0i 123.4 0) -122.4+1.0i) (num-test (* 1.0+1.0i 123.4 0) 0.0) (num-test (+ 1.0+1.0i 123.4 0.0) 124.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) 0.0) (num-test (+ 1.0+1.0i 123.4 1234) 1358.4+1.0i) (num-test (- 1.0+1.0i 123.4 1234) -1356.4+1.0i) (num-test (* 1.0+1.0i 123.4 1234) 152275.60000000000582+152275.60000000000582i) (num-test (/ 1.0+1.0i 123.4 1234) 0.00000656704029+0.00000656704029i) (num-test (= 1.0+1.0i 123.4 1234) #f) (num-test (+ 1.0+1.0i 123.4 123.4) 247.8+1.0i) (num-test (- 1.0+1.0i 123.4 123.4) -245.8+1.0i) (num-test (* 1.0+1.0i 123.4 123.4) 15227.56000000000131+15227.56000000000131i) (num-test (/ 1.0+1.0i 123.4 123.4) 0.00006567040287+0.00006567040287i) (num-test (= 1.0+1.0i 123.4 123.4) #f) (num-test (+ 1.0+1.0i 123.4 1234/11) 236.58181818181819+1.0i) (num-test (- 1.0+1.0i 123.4 1234/11) -234.58181818181819+1.0i) (num-test (* 1.0+1.0i 123.4 1234/11) 13843.23636363636433+13843.23636363636433i) (num-test (/ 1.0+1.0i 123.4 1234/11) 0.00007223744316+0.00007223744316i) (num-test (= 1.0+1.0i 123.4 1234/11) #f) (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.234+1.234i) -123.634-0.234i) (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.234+1.234i) 0.00656704028748) (num-test (= 1.0+1.0i 123.4 1.234+1.234i) #f) (num-test (+ 1.0+1.0i 123.4 -1.0+1.0i) 123.4+2.0i) (num-test (- 1.0+1.0i 123.4 -1.0+1.0i) -121.4) (num-test (* 1.0+1.0i 123.4 -1.0+1.0i) -246.8) (num-test (/ 1.0+1.0i 123.4 -1.0+1.0i) -0.0-0.00810372771475i) (num-test (= 1.0+1.0i 123.4 -1.0+1.0i) #f) (num-test (+ 1.0+1.0i 123.4 0.0+1.0i) 124.4+2.0i) (num-test (- 1.0+1.0i 123.4 0.0+1.0i) -122.4) (num-test (* 1.0+1.0i 123.4 0.0+1.0i) -123.4+123.4i) (num-test (/ 1.0+1.0i 123.4 0.0+1.0i) 0.00810372771475-0.00810372771475i) (num-test (= 1.0+1.0i 123.4 0.0+1.0i) #f) (num-test (+ 1.0+1.0i 1234/11 1) 114.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 1) -112.18181818181819+1.0i) (num-test (* 1.0+1.0i 1234/11 1) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1234/11 1) 0.00891410048622+0.00891410048622i) (num-test (= 1.0+1.0i 1234/11 1) #f) (num-test (+ 1.0+1.0i 1234/11 1.0) 114.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) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1234/11 1.0) 0.00891410048622+0.00891410048622i) (num-test (= 1.0+1.0i 1234/11 1.0) #f) (num-test (+ 1.0+1.0i 1234/11 1/1) 114.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 1/1) -112.18181818181819+1.0i) (num-test (* 1.0+1.0i 1234/11 1/1) 112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1234/11 1/1) 0.00891410048622+0.00891410048622i) (num-test (= 1.0+1.0i 1234/11 1/1) #f) (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.0+1.0i) -112.18181818181819) (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.0+1.0i) 0.00891410048622) (num-test (= 1.0+1.0i 1234/11 1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1234/11 0) 113.18181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 0) -111.18181818181819+1.0i) (num-test (* 1.0+1.0i 1234/11 0) 0.0) (num-test (+ 1.0+1.0i 1234/11 0.0) 113.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) 0.0) (num-test (+ 1.0+1.0i 1234/11 1234) 1347.18181818181824+1.0i) (num-test (- 1.0+1.0i 1234/11 1234) -1345.18181818181824+1.0i) (num-test (* 1.0+1.0i 1234/11 1234) 138432.36363636364695+138432.36363636364695i) (num-test (/ 1.0+1.0i 1234/11 1234) 0.00000722374432+0.00000722374432i) (num-test (= 1.0+1.0i 1234/11 1234) #f) (num-test (+ 1.0+1.0i 1234/11 123.4) 236.58181818181819+1.0i) (num-test (- 1.0+1.0i 1234/11 123.4) -234.58181818181819+1.0i) (num-test (* 1.0+1.0i 1234/11 123.4) 13843.23636363636433+13843.23636363636433i) (num-test (/ 1.0+1.0i 1234/11 123.4) 0.00007223744316+0.00007223744316i) (num-test (= 1.0+1.0i 1234/11 123.4) #f) (num-test (+ 1.0+1.0i 1234/11 1234/11) 225.36363636363637+1.0i) (num-test (- 1.0+1.0i 1234/11 1234/11) -223.36363636363637+1.0i) (num-test (* 1.0+1.0i 1234/11 1234/11) 12584.76033057851419+12584.76033057851419i) (num-test (/ 1.0+1.0i 1234/11 1234/11) 0.00007946118748+0.00007946118748i) (num-test (= 1.0+1.0i 1234/11 1234/11) #f) (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.234+1.234i) -112.41581818181818-0.234i) (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.234+1.234i) 0.00722374431623) (num-test (= 1.0+1.0i 1234/11 1.234+1.234i) #f) (num-test (+ 1.0+1.0i 1234/11 -1.0+1.0i) 112.18181818181819+2.0i) (num-test (- 1.0+1.0i 1234/11 -1.0+1.0i) -110.18181818181819) (num-test (* 1.0+1.0i 1234/11 -1.0+1.0i) -224.36363636363637) (num-test (/ 1.0+1.0i 1234/11 -1.0+1.0i) -0.0-0.00891410048622i) (num-test (= 1.0+1.0i 1234/11 -1.0+1.0i) #f) (num-test (+ 1.0+1.0i 1234/11 0.0+1.0i) 113.18181818181819+2.0i) (num-test (- 1.0+1.0i 1234/11 0.0+1.0i) -111.18181818181819) (num-test (* 1.0+1.0i 1234/11 0.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1.0+1.0i 1234/11 0.0+1.0i) 0.00891410048622-0.00891410048622i) (num-test (= 1.0+1.0i 1234/11 0.0+1.0i) #f) (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) -1.234-0.234i) (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.81037277147488) (num-test (= 1.0+1.0i 1.234+1.234i 1) #f) (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.234-0.234i) (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) 0.81037277147488) (num-test (= 1.0+1.0i 1.234+1.234i 1.0) #f) (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 1/1) -1.234-0.234i) (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 1/1) 0.81037277147488) (num-test (= 1.0+1.0i 1.234+1.234i 1/1) #f) (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.0+1.0i) -1.234-1.234i) (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.0+1.0i) 0.40518638573744-0.40518638573744i) (num-test (= 1.0+1.0i 1.234+1.234i 1.0+1.0i) #f) (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.234-0.234i) (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) 2.234+2.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) 0.0) (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) -1234.23399999999992-0.234i) (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) 0.00065670402875) (num-test (= 1.0+1.0i 1.234+1.234i 1234) #f) (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 123.4) -123.634-0.234i) (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 123.4) 0.00656704028748) (num-test (= 1.0+1.0i 1.234+1.234i 123.4) #f) (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 1234/11) -112.41581818181818-0.234i) (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 1234/11) 0.00722374431623) (num-test (= 1.0+1.0i 1.234+1.234i 1234/11) #f) (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.234+1.234i) -1.468-1.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.234+1.234i) 0.32835201437394-0.32835201437394i) (num-test (= 1.0+1.0i 1.234+1.234i 1.234+1.234i) #f) (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 -1.0+1.0i) 0.766-1.234i) (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.0+1.0i) -0.40518638573744-0.40518638573744i) (num-test (= 1.0+1.0i 1.234+1.234i -1.0+1.0i) #f) (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 0.0+1.0i) -0.234-1.234i) (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 0.0+1.0i) 0.0-0.81037277147488i) (num-test (= 1.0+1.0i 1.234+1.234i 0.0+1.0i) #f) (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) 1.0) (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.0-1.0i) (num-test (= 1.0+1.0i -1.0+1.0i 1) #f) (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.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) -0.0-1.0i) (num-test (= 1.0+1.0i -1.0+1.0i 1.0) #f) (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 1/1) 1.0) (num-test (* 1.0+1.0i -1.0+1.0i 1/1) -2.0) (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 1/1) #f) (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.0+1.0i) 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 1.0+1.0i) -0.5-0.5i) (num-test (= 1.0+1.0i -1.0+1.0i 1.0+1.0i) #f) (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) 2.0) (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+2.0i) (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) -0.0) (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) -1232.0) (num-test (* 1.0+1.0i -1.0+1.0i 1234) -2468.0) (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) #f) (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 123.4) -121.4) (num-test (* 1.0+1.0i -1.0+1.0i 123.4) -246.8) (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 123.4) #f) (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 1234/11) -110.18181818181819) (num-test (* 1.0+1.0i -1.0+1.0i 1234/11) -224.36363636363637) (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 1234/11) #f) (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.234+1.234i) 0.766-1.234i) (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.234+1.234i) -0.40518638573744-0.40518638573744i) (num-test (= 1.0+1.0i -1.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 3.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 -1.0+1.0i) -0.5+0.5i) (num-test (= 1.0+1.0i -1.0+1.0i -1.0+1.0i) #f) (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 0.0+1.0i) 2.0-1.0i) (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 0.0+1.0i) -1.0) (num-test (= 1.0+1.0i -1.0+1.0i 0.0+1.0i) #f) (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.0) (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) 1.0-1.0i) (num-test (= 1.0+1.0i 0.0+1.0i 1) #f) (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) 0.0) (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.0-1.0i) (num-test (= 1.0+1.0i 0.0+1.0i 1.0) #f) (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 1/1) 0.0) (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 1/1) 1.0-1.0i) (num-test (= 1.0+1.0i 0.0+1.0i 1/1) #f) (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.0+1.0i) 0.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.0+1.0i) 0.0-1.0i) (num-test (= 1.0+1.0i 0.0+1.0i 1.0+1.0i) #f) (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) 1.0) (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) 1.0+2.0i) (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) -0.0) (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) -1233.0) (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) 0.00081037277147-0.00081037277147i) (num-test (= 1.0+1.0i 0.0+1.0i 1234) #f) (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 123.4) -122.4) (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 123.4) 0.00810372771475-0.00810372771475i) (num-test (= 1.0+1.0i 0.0+1.0i 123.4) #f) (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 1234/11) -111.18181818181819) (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 1234/11) 0.00891410048622-0.00891410048622i) (num-test (= 1.0+1.0i 0.0+1.0i 1234/11) #f) (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.234+1.234i) -0.234-1.234i) (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.234+1.234i) 0.0-0.81037277147488i) (num-test (= 1.0+1.0i 0.0+1.0i 1.234+1.234i) #f) (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 -1.0+1.0i) 2.0-1.0i) (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 -1.0+1.0i) -1.0) (num-test (= 1.0+1.0i 0.0+1.0i -1.0+1.0i) #f) (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 0.0+1.0i) 1.0-1.0i) (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 0.0+1.0i) -1.0-1.0i) (num-test (= 1.0+1.0i 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 0 1 1) 2) (num-test (- 0 1 1) -2) (num-test (* 0 1 1) 0) (num-test (/ 0 1 1) 0) (num-test (= 0 1 1) #f) (num-test (< 0 1 1) #f) (num-test (<= 0 1 1) #t) (num-test (> 0 1 1) #f) (num-test (>= 0 1 1) #f) (num-test (+ 0 1 1.0) 2.0) (num-test (- 0 1 1.0) -2.0) (num-test (* 0 1 1.0) 0.0) (num-test (/ 0 1 1.0) 0.0) (num-test (= 0 1 1.0) #f) (num-test (< 0 1 1.0) #f) (num-test (<= 0 1 1.0) #t) (num-test (> 0 1 1.0) #f) (num-test (>= 0 1 1.0) #f) (num-test (+ 0 1 1/1) 2) (num-test (- 0 1 1/1) -2) (num-test (* 0 1 1/1) 0) (num-test (/ 0 1 1/1) 0) (num-test (= 0 1 1/1) #f) (num-test (< 0 1 1/1) #f) (num-test (<= 0 1 1/1) #t) (num-test (> 0 1 1/1) #f) (num-test (>= 0 1 1/1) #f) (num-test (+ 0 1 1.0+1.0i) 2.0+1.0i) (num-test (- 0 1 1.0+1.0i) -2.0-1.0i) (num-test (* 0 1 1.0+1.0i) 0.0) (num-test (/ 0 1 1.0+1.0i) 0.0) (num-test (= 0 1 1.0+1.0i) #f) (num-test (+ 0 1 0) 1) (num-test (- 0 1 0) -1) (num-test (* 0 1 0) 0) (num-test (+ 0 1 0.0) 1.0) (num-test (- 0 1 0.0) -1.0) (num-test (* 0 1 0.0) 0.0) (num-test (+ 0 1 1234) 1235) (num-test (- 0 1 1234) -1235) (num-test (* 0 1 1234) 0) (num-test (/ 0 1 1234) 0) (num-test (= 0 1 1234) #f) (num-test (< 0 1 1234) #t) (num-test (<= 0 1 1234) #t) (num-test (> 0 1 1234) #f) (num-test (>= 0 1 1234) #f) (num-test (+ 0 1 123.4) 124.4) (num-test (- 0 1 123.4) -124.4) (num-test (* 0 1 123.4) 0.0) (num-test (/ 0 1 123.4) 0.0) (num-test (= 0 1 123.4) #f) (num-test (< 0 1 123.4) #t) (num-test (<= 0 1 123.4) #t) (num-test (> 0 1 123.4) #f) (num-test (>= 0 1 123.4) #f) (num-test (+ 0 1 1234/11) 1245/11) (num-test (- 0 1 1234/11) -1245/11) (num-test (* 0 1 1234/11) 0) (num-test (/ 0 1 1234/11) 0) (num-test (= 0 1 1234/11) #f) (num-test (< 0 1 1234/11) #t) (num-test (<= 0 1 1234/11) #t) (num-test (> 0 1 1234/11) #f) (num-test (>= 0 1 1234/11) #f) (num-test (+ 0 1 1.234+1.234i) 2.234+1.234i) (num-test (- 0 1 1.234+1.234i) -2.234-1.234i) (num-test (* 0 1 1.234+1.234i) 0.0) (num-test (/ 0 1 1.234+1.234i) 0.0) (num-test (= 0 1 1.234+1.234i) #f) (num-test (+ 0 1 -1.0+1.0i) 0.0+1.0i) (num-test (- 0 1 -1.0+1.0i) 0.0-1.0i) (num-test (* 0 1 -1.0+1.0i) -0.0) (num-test (/ 0 1 -1.0+1.0i) -0.0) (num-test (= 0 1 -1.0+1.0i) #f) (num-test (+ 0 1 0.0+1.0i) 1.0+1.0i) (num-test (- 0 1 0.0+1.0i) -1.0-1.0i) (num-test (* 0 1 0.0+1.0i) 0.0) (num-test (/ 0 1 0.0+1.0i) 0.0) (num-test (= 0 1 0.0+1.0i) #f) (num-test (+ 0 1.0 1) 2.0) (num-test (- 0 1.0 1) -2.0) (num-test (* 0 1.0 1) 0.0) (num-test (/ 0 1.0 1) 0.0) (num-test (= 0 1.0 1) #f) (num-test (< 0 1.0 1) #f) (num-test (<= 0 1.0 1) #t) (num-test (> 0 1.0 1) #f) (num-test (>= 0 1.0 1) #f) (num-test (+ 0 1.0 1.0) 2.0) (num-test (- 0 1.0 1.0) -2.0) (num-test (* 0 1.0 1.0) 0.0) (num-test (/ 0 1.0 1.0) 0.0) (num-test (= 0 1.0 1.0) #f) (num-test (< 0 1.0 1.0) #f) (num-test (<= 0 1.0 1.0) #t) (num-test (> 0 1.0 1.0) #f) (num-test (>= 0 1.0 1.0) #f) (num-test (+ 0 1.0 1/1) 2.0) (num-test (- 0 1.0 1/1) -2.0) (num-test (* 0 1.0 1/1) 0.0) (num-test (/ 0 1.0 1/1) 0.0) (num-test (= 0 1.0 1/1) #f) (num-test (< 0 1.0 1/1) #f) (num-test (<= 0 1.0 1/1) #t) (num-test (> 0 1.0 1/1) #f) (num-test (>= 0 1.0 1/1) #f) (num-test (+ 0 1.0 1.0+1.0i) 2.0+1.0i) (num-test (- 0 1.0 1.0+1.0i) -2.0-1.0i) (num-test (* 0 1.0 1.0+1.0i) 0.0) (num-test (/ 0 1.0 1.0+1.0i) 0.0) (num-test (= 0 1.0 1.0+1.0i) #f) (num-test (+ 0 1.0 0) 1.0) (num-test (- 0 1.0 0) -1.0) (num-test (* 0 1.0 0) 0.0) (num-test (+ 0 1.0 0.0) 1.0) (num-test (- 0 1.0 0.0) -1.0) (num-test (* 0 1.0 0.0) 0.0) (num-test (+ 0 1.0 1234) 1235.0) (num-test (- 0 1.0 1234) -1235.0) (num-test (* 0 1.0 1234) 0.0) (num-test (/ 0 1.0 1234) 0.0) (num-test (= 0 1.0 1234) #f) (num-test (< 0 1.0 1234) #t) (num-test (<= 0 1.0 1234) #t) (num-test (> 0 1.0 1234) #f) (num-test (>= 0 1.0 1234) #f) (num-test (+ 0 1.0 123.4) 124.4) (num-test (- 0 1.0 123.4) -124.4) (num-test (* 0 1.0 123.4) 0.0) (num-test (/ 0 1.0 123.4) 0.0) (num-test (= 0 1.0 123.4) #f) (num-test (< 0 1.0 123.4) #t) (num-test (<= 0 1.0 123.4) #t) (num-test (> 0 1.0 123.4) #f) (num-test (>= 0 1.0 123.4) #f) (num-test (+ 0 1.0 1234/11) 113.18181818181819) (num-test (- 0 1.0 1234/11) -113.18181818181819) (num-test (* 0 1.0 1234/11) 0.0) (num-test (/ 0 1.0 1234/11) 0.0) (num-test (= 0 1.0 1234/11) #f) (num-test (< 0 1.0 1234/11) #t) (num-test (<= 0 1.0 1234/11) #t) (num-test (> 0 1.0 1234/11) #f) (num-test (>= 0 1.0 1234/11) #f) (num-test (+ 0 1.0 1.234+1.234i) 2.234+1.234i) (num-test (- 0 1.0 1.234+1.234i) -2.234-1.234i) (num-test (* 0 1.0 1.234+1.234i) 0.0) (num-test (/ 0 1.0 1.234+1.234i) 0.0) (num-test (= 0 1.0 1.234+1.234i) #f) (num-test (+ 0 1.0 -1.0+1.0i) 0.0+1.0i) (num-test (- 0 1.0 -1.0+1.0i) 0.0-1.0i) (num-test (* 0 1.0 -1.0+1.0i) -0.0) (num-test (/ 0 1.0 -1.0+1.0i) -0.0) (num-test (= 0 1.0 -1.0+1.0i) #f) (num-test (+ 0 1.0 0.0+1.0i) 1.0+1.0i) (num-test (- 0 1.0 0.0+1.0i) -1.0-1.0i) (num-test (* 0 1.0 0.0+1.0i) 0.0) (num-test (/ 0 1.0 0.0+1.0i) 0.0) (num-test (= 0 1.0 0.0+1.0i) #f) (num-test (+ 0 1/1 1) 2) (num-test (- 0 1/1 1) -2) (num-test (* 0 1/1 1) 0) (num-test (/ 0 1/1 1) 0) (num-test (= 0 1/1 1) #f) (num-test (< 0 1/1 1) #f) (num-test (<= 0 1/1 1) #t) (num-test (> 0 1/1 1) #f) (num-test (>= 0 1/1 1) #f) (num-test (+ 0 1/1 1.0) 2.0) (num-test (- 0 1/1 1.0) -2.0) (num-test (* 0 1/1 1.0) 0.0) (num-test (/ 0 1/1 1.0) 0.0) (num-test (= 0 1/1 1.0) #f) (num-test (< 0 1/1 1.0) #f) (num-test (<= 0 1/1 1.0) #t) (num-test (> 0 1/1 1.0) #f) (num-test (>= 0 1/1 1.0) #f) (num-test (+ 0 1/1 1/1) 2) (num-test (- 0 1/1 1/1) -2) (num-test (* 0 1/1 1/1) 0) (num-test (/ 0 1/1 1/1) 0) (num-test (= 0 1/1 1/1) #f) (num-test (< 0 1/1 1/1) #f) (num-test (<= 0 1/1 1/1) #t) (num-test (> 0 1/1 1/1) #f) (num-test (>= 0 1/1 1/1) #f) (num-test (+ 0 1/1 1.0+1.0i) 2.0+1.0i) (num-test (- 0 1/1 1.0+1.0i) -2.0-1.0i) (num-test (* 0 1/1 1.0+1.0i) 0.0) (num-test (/ 0 1/1 1.0+1.0i) 0.0) (num-test (= 0 1/1 1.0+1.0i) #f) (num-test (+ 0 1/1 0) 1) (num-test (- 0 1/1 0) -1) (num-test (* 0 1/1 0) 0) (num-test (+ 0 1/1 0.0) 1.0) (num-test (- 0 1/1 0.0) -1.0) (num-test (* 0 1/1 0.0) 0.0) (num-test (+ 0 1/1 1234) 1235) (num-test (- 0 1/1 1234) -1235) (num-test (* 0 1/1 1234) 0) (num-test (/ 0 1/1 1234) 0) (num-test (= 0 1/1 1234) #f) (num-test (< 0 1/1 1234) #t) (num-test (<= 0 1/1 1234) #t) (num-test (> 0 1/1 1234) #f) (num-test (>= 0 1/1 1234) #f) (num-test (+ 0 1/1 123.4) 124.4) (num-test (- 0 1/1 123.4) -124.4) (num-test (* 0 1/1 123.4) 0.0) (num-test (/ 0 1/1 123.4) 0.0) (num-test (= 0 1/1 123.4) #f) (num-test (< 0 1/1 123.4) #t) (num-test (<= 0 1/1 123.4) #t) (num-test (> 0 1/1 123.4) #f) (num-test (>= 0 1/1 123.4) #f) (num-test (+ 0 1/1 1234/11) 1245/11) (num-test (- 0 1/1 1234/11) -1245/11) (num-test (* 0 1/1 1234/11) 0) (num-test (/ 0 1/1 1234/11) 0) (num-test (= 0 1/1 1234/11) #f) (num-test (< 0 1/1 1234/11) #t) (num-test (<= 0 1/1 1234/11) #t) (num-test (> 0 1/1 1234/11) #f) (num-test (>= 0 1/1 1234/11) #f) (num-test (+ 0 1/1 1.234+1.234i) 2.234+1.234i) (num-test (- 0 1/1 1.234+1.234i) -2.234-1.234i) (num-test (* 0 1/1 1.234+1.234i) 0.0) (num-test (/ 0 1/1 1.234+1.234i) 0.0) (num-test (= 0 1/1 1.234+1.234i) #f) (num-test (+ 0 1/1 -1.0+1.0i) 0.0+1.0i) (num-test (- 0 1/1 -1.0+1.0i) 0.0-1.0i) (num-test (* 0 1/1 -1.0+1.0i) -0.0) (num-test (/ 0 1/1 -1.0+1.0i) -0.0) (num-test (= 0 1/1 -1.0+1.0i) #f) (num-test (+ 0 1/1 0.0+1.0i) 1.0+1.0i) (num-test (- 0 1/1 0.0+1.0i) -1.0-1.0i) (num-test (* 0 1/1 0.0+1.0i) 0.0) (num-test (/ 0 1/1 0.0+1.0i) 0.0) (num-test (= 0 1/1 0.0+1.0i) #f) (num-test (+ 0 1.0+1.0i 1) 2.0+1.0i) (num-test (- 0 1.0+1.0i 1) -2.0-1.0i) (num-test (* 0 1.0+1.0i 1) 0.0) (num-test (/ 0 1.0+1.0i 1) 0.0) (num-test (= 0 1.0+1.0i 1) #f) (num-test (+ 0 1.0+1.0i 1.0) 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) 0.0) (num-test (/ 0 1.0+1.0i 1.0) 0.0) (num-test (= 0 1.0+1.0i 1.0) #f) (num-test (+ 0 1.0+1.0i 1/1) 2.0+1.0i) (num-test (- 0 1.0+1.0i 1/1) -2.0-1.0i) (num-test (* 0 1.0+1.0i 1/1) 0.0) (num-test (/ 0 1.0+1.0i 1/1) 0.0) (num-test (= 0 1.0+1.0i 1/1) #f) (num-test (+ 0 1.0+1.0i 1.0+1.0i) 2.0+2.0i) (num-test (- 0 1.0+1.0i 1.0+1.0i) -2.0-2.0i) (num-test (* 0 1.0+1.0i 1.0+1.0i) 0.0) (num-test (/ 0 1.0+1.0i 1.0+1.0i) 0.0) (num-test (= 0 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 0 1.0+1.0i 0) 1.0+1.0i) (num-test (- 0 1.0+1.0i 0) -1.0-1.0i) (num-test (* 0 1.0+1.0i 0) 0.0) (num-test (+ 0 1.0+1.0i 0.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) 0.0) (num-test (+ 0 1.0+1.0i 1234) 1235.0+1.0i) (num-test (- 0 1.0+1.0i 1234) -1235.0-1.0i) (num-test (* 0 1.0+1.0i 1234) 0.0) (num-test (/ 0 1.0+1.0i 1234) 0.0) (num-test (= 0 1.0+1.0i 1234) #f) (num-test (+ 0 1.0+1.0i 123.4) 124.4+1.0i) (num-test (- 0 1.0+1.0i 123.4) -124.4-1.0i) (num-test (* 0 1.0+1.0i 123.4) 0.0) (num-test (/ 0 1.0+1.0i 123.4) 0.0) (num-test (= 0 1.0+1.0i 123.4) #f) (num-test (+ 0 1.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (- 0 1.0+1.0i 1234/11) -113.18181818181819-1.0i) (num-test (* 0 1.0+1.0i 1234/11) 0.0) (num-test (/ 0 1.0+1.0i 1234/11) 0.0) (num-test (= 0 1.0+1.0i 1234/11) #f) (num-test (+ 0 1.0+1.0i 1.234+1.234i) 2.234+2.234i) (num-test (- 0 1.0+1.0i 1.234+1.234i) -2.234-2.234i) (num-test (* 0 1.0+1.0i 1.234+1.234i) 0.0) (num-test (/ 0 1.0+1.0i 1.234+1.234i) 0.0) (num-test (= 0 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 0 1.0+1.0i -1.0+1.0i) 0.0+2.0i) (num-test (- 0 1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (* 0 1.0+1.0i -1.0+1.0i) -0.0) (num-test (/ 0 1.0+1.0i -1.0+1.0i) -0.0) (num-test (= 0 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 0 1.0+1.0i 0.0+1.0i) 1.0+2.0i) (num-test (- 0 1.0+1.0i 0.0+1.0i) -1.0-2.0i) (num-test (* 0 1.0+1.0i 0.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 0.0+1.0i) #f) (num-test (+ 0 0 1) 1) (num-test (- 0 0 1) -1) (num-test (* 0 0 1) 0) (num-test (+ 0 0 1.0) 1.0) (num-test (- 0 0 1.0) -1.0) (num-test (* 0 0 1.0) 0.0) (num-test (+ 0 0 1/1) 1) (num-test (- 0 0 1/1) -1) (num-test (* 0 0 1/1) 0) (num-test (+ 0 0 1.0+1.0i) 1.0+1.0i) (num-test (- 0 0 1.0+1.0i) -1.0-1.0i) (num-test (* 0 0 1.0+1.0i) 0.0) (num-test (+ 0 0 0) 0) (num-test (- 0 0 0) 0) (num-test (* 0 0 0) 0) (num-test (+ 0 0 0.0) 0.0) (num-test (- 0 0 0.0) 0.0) (num-test (* 0 0 0.0) 0.0) (num-test (+ 0 0 1234) 1234) (num-test (- 0 0 1234) -1234) (num-test (* 0 0 1234) 0) (num-test (+ 0 0 123.4) 123.4) (num-test (- 0 0 123.4) -123.4) (num-test (* 0 0 123.4) 0.0) (num-test (+ 0 0 1234/11) 1234/11) (num-test (- 0 0 1234/11) -1234/11) (num-test (* 0 0 1234/11) 0) (num-test (+ 0 0 1.234+1.234i) 1.234+1.234i) (num-test (- 0 0 1.234+1.234i) -1.234-1.234i) (num-test (* 0 0 1.234+1.234i) 0.0) (num-test (+ 0 0 -1.0+1.0i) -1.0+1.0i) (num-test (- 0 0 -1.0+1.0i) 1.0-1.0i) (num-test (* 0 0 -1.0+1.0i) -0.0) (num-test (+ 0 0 0.0+1.0i) 0.0+1.0i) (num-test (- 0 0 0.0+1.0i) 0.0-1.0i) (num-test (* 0 0 0.0+1.0i) 0.0) (num-test (+ 0 0.0 1) 1.0) (num-test (- 0 0.0 1) -1.0) (num-test (* 0 0.0 1) 0.0) (num-test (+ 0 0.0 1.0) 1.0) (num-test (- 0 0.0 1.0) -1.0) (num-test (* 0 0.0 1.0) 0.0) (num-test (+ 0 0.0 1/1) 1.0) (num-test (- 0 0.0 1/1) -1.0) (num-test (* 0 0.0 1/1) 0.0) (num-test (+ 0 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 1.0+1.0i) 0.0) (num-test (+ 0 0.0 0) 0.0) (num-test (- 0 0.0 0) 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) 0.0) (num-test (* 0 0.0 0.0) 0.0) (num-test (+ 0 0.0 1234) 1234.0) (num-test (- 0 0.0 1234) -1234.0) (num-test (* 0 0.0 1234) 0.0) (num-test (+ 0 0.0 123.4) 123.4) (num-test (- 0 0.0 123.4) -123.4) (num-test (* 0 0.0 123.4) 0.0) (num-test (+ 0 0.0 1234/11) 112.18181818181819) (num-test (- 0 0.0 1234/11) -112.18181818181819) (num-test (* 0 0.0 1234/11) 0.0) (num-test (+ 0 0.0 1.234+1.234i) 1.234+1.234i) (num-test (- 0 0.0 1.234+1.234i) -1.234-1.234i) (num-test (* 0 0.0 1.234+1.234i) 0.0) (num-test (+ 0 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 -1.0+1.0i) -0.0) (num-test (+ 0 0.0 0.0+1.0i) 0.0+1.0i) (num-test (- 0 0.0 0.0+1.0i) 0.0-1.0i) (num-test (* 0 0.0 0.0+1.0i) 0.0) (num-test (+ 0 1234 1) 1235) (num-test (- 0 1234 1) -1235) (num-test (* 0 1234 1) 0) (num-test (/ 0 1234 1) 0) (num-test (= 0 1234 1) #f) (num-test (< 0 1234 1) #f) (num-test (<= 0 1234 1) #f) (num-test (> 0 1234 1) #f) (num-test (>= 0 1234 1) #f) (num-test (+ 0 1234 1.0) 1235.0) (num-test (- 0 1234 1.0) -1235.0) (num-test (* 0 1234 1.0) 0.0) (num-test (/ 0 1234 1.0) 0.0) (num-test (= 0 1234 1.0) #f) (num-test (< 0 1234 1.0) #f) (num-test (<= 0 1234 1.0) #f) (num-test (> 0 1234 1.0) #f) (num-test (>= 0 1234 1.0) #f) (num-test (+ 0 1234 1/1) 1235) (num-test (- 0 1234 1/1) -1235) (num-test (* 0 1234 1/1) 0) (num-test (/ 0 1234 1/1) 0) (num-test (= 0 1234 1/1) #f) (num-test (< 0 1234 1/1) #f) (num-test (<= 0 1234 1/1) #f) (num-test (> 0 1234 1/1) #f) (num-test (>= 0 1234 1/1) #f) (num-test (+ 0 1234 1.0+1.0i) 1235.0+1.0i) (num-test (- 0 1234 1.0+1.0i) -1235.0-1.0i) (num-test (* 0 1234 1.0+1.0i) 0.0) (num-test (/ 0 1234 1.0+1.0i) 0.0) (num-test (= 0 1234 1.0+1.0i) #f) (num-test (+ 0 1234 0) 1234) (num-test (- 0 1234 0) -1234) (num-test (* 0 1234 0) 0) (num-test (+ 0 1234 0.0) 1234.0) (num-test (- 0 1234 0.0) -1234.0) (num-test (* 0 1234 0.0) 0.0) (num-test (+ 0 1234 1234) 2468) (num-test (- 0 1234 1234) -2468) (num-test (* 0 1234 1234) 0) (num-test (/ 0 1234 1234) 0) (num-test (= 0 1234 1234) #f) (num-test (< 0 1234 1234) #f) (num-test (<= 0 1234 1234) #t) (num-test (> 0 1234 1234) #f) (num-test (>= 0 1234 1234) #f) (num-test (+ 0 1234 123.4) 1357.4) (num-test (- 0 1234 123.4) -1357.4) (num-test (* 0 1234 123.4) 0.0) (num-test (/ 0 1234 123.4) 0.0) (num-test (= 0 1234 123.4) #f) (num-test (< 0 1234 123.4) #f) (num-test (<= 0 1234 123.4) #f) (num-test (> 0 1234 123.4) #f) (num-test (>= 0 1234 123.4) #f) (num-test (+ 0 1234 1234/11) 14808/11) (num-test (- 0 1234 1234/11) -14808/11) (num-test (* 0 1234 1234/11) 0) (num-test (/ 0 1234 1234/11) 0) (num-test (= 0 1234 1234/11) #f) (num-test (< 0 1234 1234/11) #f) (num-test (<= 0 1234 1234/11) #f) (num-test (> 0 1234 1234/11) #f) (num-test (>= 0 1234 1234/11) #f) (num-test (+ 0 1234 1.234+1.234i) 1235.23399999999992+1.234i) (num-test (- 0 1234 1.234+1.234i) -1235.23399999999992-1.234i) (num-test (* 0 1234 1.234+1.234i) 0.0) (num-test (/ 0 1234 1.234+1.234i) 0.0) (num-test (= 0 1234 1.234+1.234i) #f) (num-test (+ 0 1234 -1.0+1.0i) 1233.0+1.0i) (num-test (- 0 1234 -1.0+1.0i) -1233.0-1.0i) (num-test (* 0 1234 -1.0+1.0i) -0.0) (num-test (/ 0 1234 -1.0+1.0i) -0.0) (num-test (= 0 1234 -1.0+1.0i) #f) (num-test (+ 0 1234 0.0+1.0i) 1234.0+1.0i) (num-test (- 0 1234 0.0+1.0i) -1234.0-1.0i) (num-test (* 0 1234 0.0+1.0i) 0.0) (num-test (/ 0 1234 0.0+1.0i) 0.0) (num-test (= 0 1234 0.0+1.0i) #f) (num-test (+ 0 123.4 1) 124.4) (num-test (- 0 123.4 1) -124.4) (num-test (* 0 123.4 1) 0.0) (num-test (/ 0 123.4 1) 0.0) (num-test (= 0 123.4 1) #f) (num-test (< 0 123.4 1) #f) (num-test (<= 0 123.4 1) #f) (num-test (> 0 123.4 1) #f) (num-test (>= 0 123.4 1) #f) (num-test (+ 0 123.4 1.0) 124.4) (num-test (- 0 123.4 1.0) -124.4) (num-test (* 0 123.4 1.0) 0.0) (num-test (/ 0 123.4 1.0) 0.0) (num-test (= 0 123.4 1.0) #f) (num-test (< 0 123.4 1.0) #f) (num-test (<= 0 123.4 1.0) #f) (num-test (> 0 123.4 1.0) #f) (num-test (>= 0 123.4 1.0) #f) (num-test (+ 0 123.4 1/1) 124.4) (num-test (- 0 123.4 1/1) -124.4) (num-test (* 0 123.4 1/1) 0.0) (num-test (/ 0 123.4 1/1) 0.0) (num-test (= 0 123.4 1/1) #f) (num-test (< 0 123.4 1/1) #f) (num-test (<= 0 123.4 1/1) #f) (num-test (> 0 123.4 1/1) #f) (num-test (>= 0 123.4 1/1) #f) (num-test (+ 0 123.4 1.0+1.0i) 124.4+1.0i) (num-test (- 0 123.4 1.0+1.0i) -124.4-1.0i) (num-test (* 0 123.4 1.0+1.0i) 0.0) (num-test (/ 0 123.4 1.0+1.0i) 0.0) (num-test (= 0 123.4 1.0+1.0i) #f) (num-test (+ 0 123.4 0) 123.4) (num-test (- 0 123.4 0) -123.4) (num-test (* 0 123.4 0) 0.0) (num-test (+ 0 123.4 0.0) 123.4) (num-test (- 0 123.4 0.0) -123.4) (num-test (* 0 123.4 0.0) 0.0) (num-test (+ 0 123.4 1234) 1357.4) (num-test (- 0 123.4 1234) -1357.4) (num-test (* 0 123.4 1234) 0.0) (num-test (/ 0 123.4 1234) 0.0) (num-test (= 0 123.4 1234) #f) (num-test (< 0 123.4 1234) #t) (num-test (<= 0 123.4 1234) #t) (num-test (> 0 123.4 1234) #f) (num-test (>= 0 123.4 1234) #f) (num-test (+ 0 123.4 123.4) 246.8) (num-test (- 0 123.4 123.4) -246.8) (num-test (* 0 123.4 123.4) 0.0) (num-test (/ 0 123.4 123.4) 0.0) (num-test (= 0 123.4 123.4) #f) (num-test (< 0 123.4 123.4) #f) (num-test (<= 0 123.4 123.4) #t) (num-test (> 0 123.4 123.4) #f) (num-test (>= 0 123.4 123.4) #f) (num-test (+ 0 123.4 1234/11) 235.58181818181819) (num-test (- 0 123.4 1234/11) -235.58181818181819) (num-test (* 0 123.4 1234/11) 0.0) (num-test (/ 0 123.4 1234/11) 0.0) (num-test (= 0 123.4 1234/11) #f) (num-test (< 0 123.4 1234/11) #f) (num-test (<= 0 123.4 1234/11) #f) (num-test (> 0 123.4 1234/11) #f) (num-test (>= 0 123.4 1234/11) #f) (num-test (+ 0 123.4 1.234+1.234i) 124.634+1.234i) (num-test (- 0 123.4 1.234+1.234i) -124.634-1.234i) (num-test (* 0 123.4 1.234+1.234i) 0.0) (num-test (/ 0 123.4 1.234+1.234i) 0.0) (num-test (= 0 123.4 1.234+1.234i) #f) (num-test (+ 0 123.4 -1.0+1.0i) 122.4+1.0i) (num-test (- 0 123.4 -1.0+1.0i) -122.4-1.0i) (num-test (* 0 123.4 -1.0+1.0i) -0.0) (num-test (/ 0 123.4 -1.0+1.0i) -0.0) (num-test (= 0 123.4 -1.0+1.0i) #f) (num-test (+ 0 123.4 0.0+1.0i) 123.4+1.0i) (num-test (- 0 123.4 0.0+1.0i) -123.4-1.0i) (num-test (* 0 123.4 0.0+1.0i) 0.0) (num-test (/ 0 123.4 0.0+1.0i) 0.0) (num-test (= 0 123.4 0.0+1.0i) #f) (num-test (+ 0 1234/11 1) 1245/11) (num-test (- 0 1234/11 1) -1245/11) (num-test (* 0 1234/11 1) 0) (num-test (/ 0 1234/11 1) 0) (num-test (= 0 1234/11 1) #f) (num-test (< 0 1234/11 1) #f) (num-test (<= 0 1234/11 1) #f) (num-test (> 0 1234/11 1) #f) (num-test (>= 0 1234/11 1) #f) (num-test (+ 0 1234/11 1.0) 113.18181818181819) (num-test (- 0 1234/11 1.0) -113.18181818181819) (num-test (* 0 1234/11 1.0) 0.0) (num-test (/ 0 1234/11 1.0) 0.0) (num-test (= 0 1234/11 1.0) #f) (num-test (< 0 1234/11 1.0) #f) (num-test (<= 0 1234/11 1.0) #f) (num-test (> 0 1234/11 1.0) #f) (num-test (>= 0 1234/11 1.0) #f) (num-test (+ 0 1234/11 1/1) 1245/11) (num-test (- 0 1234/11 1/1) -1245/11) (num-test (* 0 1234/11 1/1) 0) (num-test (/ 0 1234/11 1/1) 0) (num-test (= 0 1234/11 1/1) #f) (num-test (< 0 1234/11 1/1) #f) (num-test (<= 0 1234/11 1/1) #f) (num-test (> 0 1234/11 1/1) #f) (num-test (>= 0 1234/11 1/1) #f) (num-test (+ 0 1234/11 1.0+1.0i) 113.18181818181819+1.0i) (num-test (- 0 1234/11 1.0+1.0i) -113.18181818181819-1.0i) (num-test (* 0 1234/11 1.0+1.0i) 0.0) (num-test (/ 0 1234/11 1.0+1.0i) 0.0) (num-test (= 0 1234/11 1.0+1.0i) #f) (num-test (+ 0 1234/11 0) 1234/11) (num-test (- 0 1234/11 0) -1234/11) (num-test (* 0 1234/11 0) 0) (num-test (+ 0 1234/11 0.0) 112.18181818181819) (num-test (- 0 1234/11 0.0) -112.18181818181819) (num-test (* 0 1234/11 0.0) 0.0) (num-test (+ 0 1234/11 1234) 14808/11) (num-test (- 0 1234/11 1234) -14808/11) (num-test (* 0 1234/11 1234) 0) (num-test (/ 0 1234/11 1234) 0) (num-test (= 0 1234/11 1234) #f) (num-test (< 0 1234/11 1234) #t) (num-test (<= 0 1234/11 1234) #t) (num-test (> 0 1234/11 1234) #f) (num-test (>= 0 1234/11 1234) #f) (num-test (+ 0 1234/11 123.4) 235.58181818181819) (num-test (- 0 1234/11 123.4) -235.58181818181819) (num-test (* 0 1234/11 123.4) 0.0) (num-test (/ 0 1234/11 123.4) 0.0) (num-test (= 0 1234/11 123.4) #f) (num-test (< 0 1234/11 123.4) #t) (num-test (<= 0 1234/11 123.4) #t) (num-test (> 0 1234/11 123.4) #f) (num-test (>= 0 1234/11 123.4) #f) (num-test (+ 0 1234/11 1234/11) 2468/11) (num-test (- 0 1234/11 1234/11) -2468/11) (num-test (* 0 1234/11 1234/11) 0) (num-test (/ 0 1234/11 1234/11) 0) (num-test (= 0 1234/11 1234/11) #f) (num-test (< 0 1234/11 1234/11) #f) (num-test (<= 0 1234/11 1234/11) #t) (num-test (> 0 1234/11 1234/11) #f) (num-test (>= 0 1234/11 1234/11) #f) (num-test (+ 0 1234/11 1.234+1.234i) 113.41581818181818+1.234i) (num-test (- 0 1234/11 1.234+1.234i) -113.41581818181818-1.234i) (num-test (* 0 1234/11 1.234+1.234i) 0.0) (num-test (/ 0 1234/11 1.234+1.234i) 0.0) (num-test (= 0 1234/11 1.234+1.234i) #f) (num-test (+ 0 1234/11 -1.0+1.0i) 111.18181818181819+1.0i) (num-test (- 0 1234/11 -1.0+1.0i) -111.18181818181819-1.0i) (num-test (* 0 1234/11 -1.0+1.0i) -0.0) (num-test (/ 0 1234/11 -1.0+1.0i) -0.0) (num-test (= 0 1234/11 -1.0+1.0i) #f) (num-test (+ 0 1234/11 0.0+1.0i) 112.18181818181819+1.0i) (num-test (- 0 1234/11 0.0+1.0i) -112.18181818181819-1.0i) (num-test (* 0 1234/11 0.0+1.0i) 0.0) (num-test (/ 0 1234/11 0.0+1.0i) 0.0) (num-test (= 0 1234/11 0.0+1.0i) #f) (num-test (+ 0 1.234+1.234i 1) 2.234+1.234i) (num-test (- 0 1.234+1.234i 1) -2.234-1.234i) (num-test (* 0 1.234+1.234i 1) 0.0) (num-test (/ 0 1.234+1.234i 1) 0.0) (num-test (= 0 1.234+1.234i 1) #f) (num-test (+ 0 1.234+1.234i 1.0) 2.234+1.234i) (num-test (- 0 1.234+1.234i 1.0) -2.234-1.234i) (num-test (* 0 1.234+1.234i 1.0) 0.0) (num-test (/ 0 1.234+1.234i 1.0) 0.0) (num-test (= 0 1.234+1.234i 1.0) #f) (num-test (+ 0 1.234+1.234i 1/1) 2.234+1.234i) (num-test (- 0 1.234+1.234i 1/1) -2.234-1.234i) (num-test (* 0 1.234+1.234i 1/1) 0.0) (num-test (/ 0 1.234+1.234i 1/1) 0.0) (num-test (= 0 1.234+1.234i 1/1) #f) (num-test (+ 0 1.234+1.234i 1.0+1.0i) 2.234+2.234i) (num-test (- 0 1.234+1.234i 1.0+1.0i) -2.234-2.234i) (num-test (* 0 1.234+1.234i 1.0+1.0i) 0.0) (num-test (/ 0 1.234+1.234i 1.0+1.0i) 0.0) (num-test (= 0 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 0 1.234+1.234i 0) 1.234+1.234i) (num-test (- 0 1.234+1.234i 0) -1.234-1.234i) (num-test (* 0 1.234+1.234i 0) 0.0) (num-test (+ 0 1.234+1.234i 0.0) 1.234+1.234i) (num-test (- 0 1.234+1.234i 0.0) -1.234-1.234i) (num-test (* 0 1.234+1.234i 0.0) 0.0) (num-test (+ 0 1.234+1.234i 1234) 1235.23399999999992+1.234i) (num-test (- 0 1.234+1.234i 1234) -1235.23399999999992-1.234i) (num-test (* 0 1.234+1.234i 1234) 0.0) (num-test (/ 0 1.234+1.234i 1234) 0.0) (num-test (= 0 1.234+1.234i 1234) #f) (num-test (+ 0 1.234+1.234i 123.4) 124.634+1.234i) (num-test (- 0 1.234+1.234i 123.4) -124.634-1.234i) (num-test (* 0 1.234+1.234i 123.4) 0.0) (num-test (/ 0 1.234+1.234i 123.4) 0.0) (num-test (= 0 1.234+1.234i 123.4) #f) (num-test (+ 0 1.234+1.234i 1234/11) 113.41581818181818+1.234i) (num-test (- 0 1.234+1.234i 1234/11) -113.41581818181818-1.234i) (num-test (* 0 1.234+1.234i 1234/11) 0.0) (num-test (/ 0 1.234+1.234i 1234/11) 0.0) (num-test (= 0 1.234+1.234i 1234/11) #f) (num-test (+ 0 1.234+1.234i 1.234+1.234i) 2.468+2.468i) (num-test (- 0 1.234+1.234i 1.234+1.234i) -2.468-2.468i) (num-test (* 0 1.234+1.234i 1.234+1.234i) 0.0) (num-test (/ 0 1.234+1.234i 1.234+1.234i) 0.0) (num-test (= 0 1.234+1.234i 1.234+1.234i) #f) (num-test (+ 0 1.234+1.234i -1.0+1.0i) 0.234+2.234i) (num-test (- 0 1.234+1.234i -1.0+1.0i) -0.234-2.234i) (num-test (* 0 1.234+1.234i -1.0+1.0i) -0.0) (num-test (/ 0 1.234+1.234i -1.0+1.0i) -0.0) (num-test (= 0 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 0 1.234+1.234i 0.0+1.0i) 1.234+2.234i) (num-test (- 0 1.234+1.234i 0.0+1.0i) -1.234-2.234i) (num-test (* 0 1.234+1.234i 0.0+1.0i) 0.0) (num-test (/ 0 1.234+1.234i 0.0+1.0i) 0.0) (num-test (= 0 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 0 -1.0+1.0i 1) 0.0+1.0i) (num-test (- 0 -1.0+1.0i 1) 0.0-1.0i) (num-test (* 0 -1.0+1.0i 1) -0.0) (num-test (/ 0 -1.0+1.0i 1) -0.0) (num-test (= 0 -1.0+1.0i 1) #f) (num-test (+ 0 -1.0+1.0i 1.0) 0.0+1.0i) (num-test (- 0 -1.0+1.0i 1.0) 0.0-1.0i) (num-test (* 0 -1.0+1.0i 1.0) -0.0) (num-test (/ 0 -1.0+1.0i 1.0) -0.0) (num-test (= 0 -1.0+1.0i 1.0) #f) (num-test (+ 0 -1.0+1.0i 1/1) 0.0+1.0i) (num-test (- 0 -1.0+1.0i 1/1) 0.0-1.0i) (num-test (* 0 -1.0+1.0i 1/1) -0.0) (num-test (/ 0 -1.0+1.0i 1/1) -0.0) (num-test (= 0 -1.0+1.0i 1/1) #f) (num-test (+ 0 -1.0+1.0i 1.0+1.0i) 0.0+2.0i) (num-test (- 0 -1.0+1.0i 1.0+1.0i) 0.0-2.0i) (num-test (* 0 -1.0+1.0i 1.0+1.0i) -0.0) (num-test (/ 0 -1.0+1.0i 1.0+1.0i) -0.0) (num-test (= 0 -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 0 -1.0+1.0i 0) -1.0+1.0i) (num-test (- 0 -1.0+1.0i 0) 1.0-1.0i) (num-test (* 0 -1.0+1.0i 0) -0.0) (num-test (+ 0 -1.0+1.0i 0.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) -0.0) (num-test (+ 0 -1.0+1.0i 1234) 1233.0+1.0i) (num-test (- 0 -1.0+1.0i 1234) -1233.0-1.0i) (num-test (* 0 -1.0+1.0i 1234) -0.0) (num-test (/ 0 -1.0+1.0i 1234) -0.0) (num-test (= 0 -1.0+1.0i 1234) #f) (num-test (+ 0 -1.0+1.0i 123.4) 122.4+1.0i) (num-test (- 0 -1.0+1.0i 123.4) -122.4-1.0i) (num-test (* 0 -1.0+1.0i 123.4) -0.0) (num-test (/ 0 -1.0+1.0i 123.4) -0.0) (num-test (= 0 -1.0+1.0i 123.4) #f) (num-test (+ 0 -1.0+1.0i 1234/11) 111.18181818181819+1.0i) (num-test (- 0 -1.0+1.0i 1234/11) -111.18181818181819-1.0i) (num-test (* 0 -1.0+1.0i 1234/11) -0.0) (num-test (/ 0 -1.0+1.0i 1234/11) -0.0) (num-test (= 0 -1.0+1.0i 1234/11) #f) (num-test (+ 0 -1.0+1.0i 1.234+1.234i) 0.234+2.234i) (num-test (- 0 -1.0+1.0i 1.234+1.234i) -0.234-2.234i) (num-test (* 0 -1.0+1.0i 1.234+1.234i) -0.0) (num-test (/ 0 -1.0+1.0i 1.234+1.234i) -0.0) (num-test (= 0 -1.0+1.0i 1.234+1.234i) #f) (num-test (+ 0 -1.0+1.0i -1.0+1.0i) -2.0+2.0i) (num-test (- 0 -1.0+1.0i -1.0+1.0i) 2.0-2.0i) (num-test (* 0 -1.0+1.0i -1.0+1.0i) 0.0) (num-test (/ 0 -1.0+1.0i -1.0+1.0i) -0.0) (num-test (= 0 -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 0 -1.0+1.0i 0.0+1.0i) -1.0+2.0i) (num-test (- 0 -1.0+1.0i 0.0+1.0i) 1.0-2.0i) (num-test (* 0 -1.0+1.0i 0.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 0.0+1.0i) #f) (num-test (+ 0 0.0+1.0i 1) 1.0+1.0i) (num-test (- 0 0.0+1.0i 1) -1.0-1.0i) (num-test (* 0 0.0+1.0i 1) 0.0) (num-test (/ 0 0.0+1.0i 1) 0.0) (num-test (= 0 0.0+1.0i 1) #f) (num-test (+ 0 0.0+1.0i 1.0) 1.0+1.0i) (num-test (- 0 0.0+1.0i 1.0) -1.0-1.0i) (num-test (* 0 0.0+1.0i 1.0) 0.0) (num-test (/ 0 0.0+1.0i 1.0) 0.0) (num-test (= 0 0.0+1.0i 1.0) #f) (num-test (+ 0 0.0+1.0i 1/1) 1.0+1.0i) (num-test (- 0 0.0+1.0i 1/1) -1.0-1.0i) (num-test (* 0 0.0+1.0i 1/1) 0.0) (num-test (/ 0 0.0+1.0i 1/1) 0.0) (num-test (= 0 0.0+1.0i 1/1) #f) (num-test (+ 0 0.0+1.0i 1.0+1.0i) 1.0+2.0i) (num-test (- 0 0.0+1.0i 1.0+1.0i) -1.0-2.0i) (num-test (* 0 0.0+1.0i 1.0+1.0i) 0.0) (num-test (/ 0 0.0+1.0i 1.0+1.0i) 0.0) (num-test (= 0 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 0 0.0+1.0i 0) 0.0+1.0i) (num-test (- 0 0.0+1.0i 0) 0.0-1.0i) (num-test (* 0 0.0+1.0i 0) 0.0) (num-test (+ 0 0.0+1.0i 0.0) 0.0+1.0i) (num-test (- 0 0.0+1.0i 0.0) 0.0-1.0i) (num-test (* 0 0.0+1.0i 0.0) 0.0) (num-test (+ 0 0.0+1.0i 1234) 1234.0+1.0i) (num-test (- 0 0.0+1.0i 1234) -1234.0-1.0i) (num-test (* 0 0.0+1.0i 1234) 0.0) (num-test (/ 0 0.0+1.0i 1234) 0.0) (num-test (= 0 0.0+1.0i 1234) #f) (num-test (+ 0 0.0+1.0i 123.4) 123.4+1.0i) (num-test (- 0 0.0+1.0i 123.4) -123.4-1.0i) (num-test (* 0 0.0+1.0i 123.4) 0.0) (num-test (/ 0 0.0+1.0i 123.4) 0.0) (num-test (= 0 0.0+1.0i 123.4) #f) (num-test (+ 0 0.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (- 0 0.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (* 0 0.0+1.0i 1234/11) 0.0) (num-test (/ 0 0.0+1.0i 1234/11) 0.0) (num-test (= 0 0.0+1.0i 1234/11) #f) (num-test (+ 0 0.0+1.0i 1.234+1.234i) 1.234+2.234i) (num-test (- 0 0.0+1.0i 1.234+1.234i) -1.234-2.234i) (num-test (* 0 0.0+1.0i 1.234+1.234i) 0.0) (num-test (/ 0 0.0+1.0i 1.234+1.234i) 0.0) (num-test (= 0 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 0 0.0+1.0i -1.0+1.0i) -1.0+2.0i) (num-test (- 0 0.0+1.0i -1.0+1.0i) 1.0-2.0i) (num-test (* 0 0.0+1.0i -1.0+1.0i) -0.0) (num-test (/ 0 0.0+1.0i -1.0+1.0i) -0.0) (num-test (= 0 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 0 0.0+1.0i 0.0+1.0i) 0.0+2.0i) (num-test (- 0 0.0+1.0i 0.0+1.0i) 0.0-2.0i) (num-test (* 0 0.0+1.0i 0.0+1.0i) 0.0) (num-test (/ 0 0.0+1.0i 0.0+1.0i) 0.0) (num-test (= 0 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 0.0 1 1) 2.0) (num-test (- 0.0 1 1) -2.0) (num-test (* 0.0 1 1) 0.0) (num-test (/ 0.0 1 1) 0.0) (num-test (= 0.0 1 1) #f) (num-test (< 0.0 1 1) #f) (num-test (<= 0.0 1 1) #t) (num-test (> 0.0 1 1) #f) (num-test (>= 0.0 1 1) #f) (num-test (+ 0.0 1 1.0) 2.0) (num-test (- 0.0 1 1.0) -2.0) (num-test (* 0.0 1 1.0) 0.0) (num-test (/ 0.0 1 1.0) 0.0) (num-test (= 0.0 1 1.0) #f) (num-test (< 0.0 1 1.0) #f) (num-test (<= 0.0 1 1.0) #t) (num-test (> 0.0 1 1.0) #f) (num-test (>= 0.0 1 1.0) #f) (num-test (+ 0.0 1 1/1) 2.0) (num-test (- 0.0 1 1/1) -2.0) (num-test (* 0.0 1 1/1) 0.0) (num-test (/ 0.0 1 1/1) 0.0) (num-test (= 0.0 1 1/1) #f) (num-test (< 0.0 1 1/1) #f) (num-test (<= 0.0 1 1/1) #t) (num-test (> 0.0 1 1/1) #f) (num-test (>= 0.0 1 1/1) #f) (num-test (+ 0.0 1 1.0+1.0i) 2.0+1.0i) (num-test (- 0.0 1 1.0+1.0i) -2.0-1.0i) (num-test (* 0.0 1 1.0+1.0i) 0.0) (num-test (/ 0.0 1 1.0+1.0i) 0.0) (num-test (= 0.0 1 1.0+1.0i) #f) (num-test (+ 0.0 1 0) 1.0) (num-test (- 0.0 1 0) -1.0) (num-test (* 0.0 1 0) 0.0) (num-test (+ 0.0 1 0.0) 1.0) (num-test (- 0.0 1 0.0) -1.0) (num-test (* 0.0 1 0.0) 0.0) (num-test (+ 0.0 1 1234) 1235.0) (num-test (- 0.0 1 1234) -1235.0) (num-test (* 0.0 1 1234) 0.0) (num-test (/ 0.0 1 1234) 0.0) (num-test (= 0.0 1 1234) #f) (num-test (< 0.0 1 1234) #t) (num-test (<= 0.0 1 1234) #t) (num-test (> 0.0 1 1234) #f) (num-test (>= 0.0 1 1234) #f) (num-test (+ 0.0 1 123.4) 124.4) (num-test (- 0.0 1 123.4) -124.4) (num-test (* 0.0 1 123.4) 0.0) (num-test (/ 0.0 1 123.4) 0.0) (num-test (= 0.0 1 123.4) #f) (num-test (< 0.0 1 123.4) #t) (num-test (<= 0.0 1 123.4) #t) (num-test (> 0.0 1 123.4) #f) (num-test (>= 0.0 1 123.4) #f) (num-test (+ 0.0 1 1234/11) 113.18181818181819) (num-test (- 0.0 1 1234/11) -113.18181818181819) (num-test (* 0.0 1 1234/11) 0.0) (num-test (/ 0.0 1 1234/11) 0.0) (num-test (= 0.0 1 1234/11) #f) (num-test (< 0.0 1 1234/11) #t) (num-test (<= 0.0 1 1234/11) #t) (num-test (> 0.0 1 1234/11) #f) (num-test (>= 0.0 1 1234/11) #f) (num-test (+ 0.0 1 1.234+1.234i) 2.234+1.234i) (num-test (- 0.0 1 1.234+1.234i) -2.234-1.234i) (num-test (* 0.0 1 1.234+1.234i) 0.0) (num-test (/ 0.0 1 1.234+1.234i) 0.0) (num-test (= 0.0 1 1.234+1.234i) #f) (num-test (+ 0.0 1 -1.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 -1.0+1.0i) -0.0) (num-test (/ 0.0 1 -1.0+1.0i) -0.0) (num-test (= 0.0 1 -1.0+1.0i) #f) (num-test (+ 0.0 1 0.0+1.0i) 1.0+1.0i) (num-test (- 0.0 1 0.0+1.0i) -1.0-1.0i) (num-test (* 0.0 1 0.0+1.0i) 0.0) (num-test (/ 0.0 1 0.0+1.0i) 0.0) (num-test (= 0.0 1 0.0+1.0i) #f) (num-test (+ 0.0 1.0 1) 2.0) (num-test (- 0.0 1.0 1) -2.0) (num-test (* 0.0 1.0 1) 0.0) (num-test (/ 0.0 1.0 1) 0.0) (num-test (= 0.0 1.0 1) #f) (num-test (< 0.0 1.0 1) #f) (num-test (<= 0.0 1.0 1) #t) (num-test (> 0.0 1.0 1) #f) (num-test (>= 0.0 1.0 1) #f) (num-test (+ 0.0 1.0 1.0) 2.0) (num-test (- 0.0 1.0 1.0) -2.0) (num-test (* 0.0 1.0 1.0) 0.0) (num-test (/ 0.0 1.0 1.0) 0.0) (num-test (= 0.0 1.0 1.0) #f) (num-test (< 0.0 1.0 1.0) #f) (num-test (<= 0.0 1.0 1.0) #t) (num-test (> 0.0 1.0 1.0) #f) (num-test (>= 0.0 1.0 1.0) #f) (num-test (+ 0.0 1.0 1/1) 2.0) (num-test (- 0.0 1.0 1/1) -2.0) (num-test (* 0.0 1.0 1/1) 0.0) (num-test (/ 0.0 1.0 1/1) 0.0) (num-test (= 0.0 1.0 1/1) #f) (num-test (< 0.0 1.0 1/1) #f) (num-test (<= 0.0 1.0 1/1) #t) (num-test (> 0.0 1.0 1/1) #f) (num-test (>= 0.0 1.0 1/1) #f) (num-test (+ 0.0 1.0 1.0+1.0i) 2.0+1.0i) (num-test (- 0.0 1.0 1.0+1.0i) -2.0-1.0i) (num-test (* 0.0 1.0 1.0+1.0i) 0.0) (num-test (/ 0.0 1.0 1.0+1.0i) 0.0) (num-test (= 0.0 1.0 1.0+1.0i) #f) (num-test (+ 0.0 1.0 0) 1.0) (num-test (- 0.0 1.0 0) -1.0) (num-test (* 0.0 1.0 0) 0.0) (num-test (+ 0.0 1.0 0.0) 1.0) (num-test (- 0.0 1.0 0.0) -1.0) (num-test (* 0.0 1.0 0.0) 0.0) (num-test (+ 0.0 1.0 1234) 1235.0) (num-test (- 0.0 1.0 1234) -1235.0) (num-test (* 0.0 1.0 1234) 0.0) (num-test (/ 0.0 1.0 1234) 0.0) (num-test (= 0.0 1.0 1234) #f) (num-test (< 0.0 1.0 1234) #t) (num-test (<= 0.0 1.0 1234) #t) (num-test (> 0.0 1.0 1234) #f) (num-test (>= 0.0 1.0 1234) #f) (num-test (+ 0.0 1.0 123.4) 124.4) (num-test (- 0.0 1.0 123.4) -124.4) (num-test (* 0.0 1.0 123.4) 0.0) (num-test (/ 0.0 1.0 123.4) 0.0) (num-test (= 0.0 1.0 123.4) #f) (num-test (< 0.0 1.0 123.4) #t) (num-test (<= 0.0 1.0 123.4) #t) (num-test (> 0.0 1.0 123.4) #f) (num-test (>= 0.0 1.0 123.4) #f) (num-test (+ 0.0 1.0 1234/11) 113.18181818181819) (num-test (- 0.0 1.0 1234/11) -113.18181818181819) (num-test (* 0.0 1.0 1234/11) 0.0) (num-test (/ 0.0 1.0 1234/11) 0.0) (num-test (= 0.0 1.0 1234/11) #f) (num-test (< 0.0 1.0 1234/11) #t) (num-test (<= 0.0 1.0 1234/11) #t) (num-test (> 0.0 1.0 1234/11) #f) (num-test (>= 0.0 1.0 1234/11) #f) (num-test (+ 0.0 1.0 1.234+1.234i) 2.234+1.234i) (num-test (- 0.0 1.0 1.234+1.234i) -2.234-1.234i) (num-test (* 0.0 1.0 1.234+1.234i) 0.0) (num-test (/ 0.0 1.0 1.234+1.234i) 0.0) (num-test (= 0.0 1.0 1.234+1.234i) #f) (num-test (+ 0.0 1.0 -1.0+1.0i) 0.0+1.0i) (num-test (- 0.0 1.0 -1.0+1.0i) 0.0-1.0i) (num-test (* 0.0 1.0 -1.0+1.0i) -0.0) (num-test (/ 0.0 1.0 -1.0+1.0i) -0.0) (num-test (= 0.0 1.0 -1.0+1.0i) #f) (num-test (+ 0.0 1.0 0.0+1.0i) 1.0+1.0i) (num-test (- 0.0 1.0 0.0+1.0i) -1.0-1.0i) (num-test (* 0.0 1.0 0.0+1.0i) 0.0) (num-test (/ 0.0 1.0 0.0+1.0i) 0.0) (num-test (= 0.0 1.0 0.0+1.0i) #f) (num-test (+ 0.0 1/1 1) 2.0) (num-test (- 0.0 1/1 1) -2.0) (num-test (* 0.0 1/1 1) 0.0) (num-test (/ 0.0 1/1 1) 0.0) (num-test (= 0.0 1/1 1) #f) (num-test (< 0.0 1/1 1) #f) (num-test (<= 0.0 1/1 1) #t) (num-test (> 0.0 1/1 1) #f) (num-test (>= 0.0 1/1 1) #f) (num-test (+ 0.0 1/1 1.0) 2.0) (num-test (- 0.0 1/1 1.0) -2.0) (num-test (* 0.0 1/1 1.0) 0.0) (num-test (/ 0.0 1/1 1.0) 0.0) (num-test (= 0.0 1/1 1.0) #f) (num-test (< 0.0 1/1 1.0) #f) (num-test (<= 0.0 1/1 1.0) #t) (num-test (> 0.0 1/1 1.0) #f) (num-test (>= 0.0 1/1 1.0) #f) (num-test (+ 0.0 1/1 1/1) 2.0) (num-test (- 0.0 1/1 1/1) -2.0) (num-test (* 0.0 1/1 1/1) 0.0) (num-test (/ 0.0 1/1 1/1) 0.0) (num-test (= 0.0 1/1 1/1) #f) (num-test (< 0.0 1/1 1/1) #f) (num-test (<= 0.0 1/1 1/1) #t) (num-test (> 0.0 1/1 1/1) #f) (num-test (>= 0.0 1/1 1/1) #f) (num-test (+ 0.0 1/1 1.0+1.0i) 2.0+1.0i) (num-test (- 0.0 1/1 1.0+1.0i) -2.0-1.0i) (num-test (* 0.0 1/1 1.0+1.0i) 0.0) (num-test (/ 0.0 1/1 1.0+1.0i) 0.0) (num-test (= 0.0 1/1 1.0+1.0i) #f) (num-test (+ 0.0 1/1 0) 1.0) (num-test (- 0.0 1/1 0) -1.0) (num-test (* 0.0 1/1 0) 0.0) (num-test (+ 0.0 1/1 0.0) 1.0) (num-test (- 0.0 1/1 0.0) -1.0) (num-test (* 0.0 1/1 0.0) 0.0) (num-test (+ 0.0 1/1 1234) 1235.0) (num-test (- 0.0 1/1 1234) -1235.0) (num-test (* 0.0 1/1 1234) 0.0) (num-test (/ 0.0 1/1 1234) 0.0) (num-test (= 0.0 1/1 1234) #f) (num-test (< 0.0 1/1 1234) #t) (num-test (<= 0.0 1/1 1234) #t) (num-test (> 0.0 1/1 1234) #f) (num-test (>= 0.0 1/1 1234) #f) (num-test (+ 0.0 1/1 123.4) 124.4) (num-test (- 0.0 1/1 123.4) -124.4) (num-test (* 0.0 1/1 123.4) 0.0) (num-test (/ 0.0 1/1 123.4) 0.0) (num-test (= 0.0 1/1 123.4) #f) (num-test (< 0.0 1/1 123.4) #t) (num-test (<= 0.0 1/1 123.4) #t) (num-test (> 0.0 1/1 123.4) #f) (num-test (>= 0.0 1/1 123.4) #f) (num-test (+ 0.0 1/1 1234/11) 113.18181818181819) (num-test (- 0.0 1/1 1234/11) -113.18181818181819) (num-test (* 0.0 1/1 1234/11) 0.0) (num-test (/ 0.0 1/1 1234/11) 0.0) (num-test (= 0.0 1/1 1234/11) #f) (num-test (< 0.0 1/1 1234/11) #t) (num-test (<= 0.0 1/1 1234/11) #t) (num-test (> 0.0 1/1 1234/11) #f) (num-test (>= 0.0 1/1 1234/11) #f) (num-test (+ 0.0 1/1 1.234+1.234i) 2.234+1.234i) (num-test (- 0.0 1/1 1.234+1.234i) -2.234-1.234i) (num-test (* 0.0 1/1 1.234+1.234i) 0.0) (num-test (/ 0.0 1/1 1.234+1.234i) 0.0) (num-test (= 0.0 1/1 1.234+1.234i) #f) (num-test (+ 0.0 1/1 -1.0+1.0i) 0.0+1.0i) (num-test (- 0.0 1/1 -1.0+1.0i) 0.0-1.0i) (num-test (* 0.0 1/1 -1.0+1.0i) -0.0) (num-test (/ 0.0 1/1 -1.0+1.0i) -0.0) (num-test (= 0.0 1/1 -1.0+1.0i) #f) (num-test (+ 0.0 1/1 0.0+1.0i) 1.0+1.0i) (num-test (- 0.0 1/1 0.0+1.0i) -1.0-1.0i) (num-test (* 0.0 1/1 0.0+1.0i) 0.0) (num-test (/ 0.0 1/1 0.0+1.0i) 0.0) (num-test (= 0.0 1/1 0.0+1.0i) #f) (num-test (+ 0.0 1.0+1.0i 1) 2.0+1.0i) (num-test (- 0.0 1.0+1.0i 1) -2.0-1.0i) (num-test (* 0.0 1.0+1.0i 1) 0.0) (num-test (/ 0.0 1.0+1.0i 1) 0.0) (num-test (= 0.0 1.0+1.0i 1) #f) (num-test (+ 0.0 1.0+1.0i 1.0) 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) 0.0) (num-test (/ 0.0 1.0+1.0i 1.0) 0.0) (num-test (= 0.0 1.0+1.0i 1.0) #f) (num-test (+ 0.0 1.0+1.0i 1/1) 2.0+1.0i) (num-test (- 0.0 1.0+1.0i 1/1) -2.0-1.0i) (num-test (* 0.0 1.0+1.0i 1/1) 0.0) (num-test (/ 0.0 1.0+1.0i 1/1) 0.0) (num-test (= 0.0 1.0+1.0i 1/1) #f) (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.0+1.0i) -2.0-2.0i) (num-test (* 0.0 1.0+1.0i 1.0+1.0i) 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.0+1.0i) #f) (num-test (+ 0.0 1.0+1.0i 0) 1.0+1.0i) (num-test (- 0.0 1.0+1.0i 0) -1.0-1.0i) (num-test (* 0.0 1.0+1.0i 0) 0.0) (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.0-1.0i) (num-test (* 0.0 1.0+1.0i 0.0) 0.0) (num-test (+ 0.0 1.0+1.0i 1234) 1235.0+1.0i) (num-test (- 0.0 1.0+1.0i 1234) -1235.0-1.0i) (num-test (* 0.0 1.0+1.0i 1234) 0.0) (num-test (/ 0.0 1.0+1.0i 1234) 0.0) (num-test (= 0.0 1.0+1.0i 1234) #f) (num-test (+ 0.0 1.0+1.0i 123.4) 124.4+1.0i) (num-test (- 0.0 1.0+1.0i 123.4) -124.4-1.0i) (num-test (* 0.0 1.0+1.0i 123.4) 0.0) (num-test (/ 0.0 1.0+1.0i 123.4) 0.0) (num-test (= 0.0 1.0+1.0i 123.4) #f) (num-test (+ 0.0 1.0+1.0i 1234/11) 113.18181818181819+1.0i) (num-test (- 0.0 1.0+1.0i 1234/11) -113.18181818181819-1.0i) (num-test (* 0.0 1.0+1.0i 1234/11) 0.0) (num-test (/ 0.0 1.0+1.0i 1234/11) 0.0) (num-test (= 0.0 1.0+1.0i 1234/11) #f) (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.234+1.234i) -2.234-2.234i) (num-test (* 0.0 1.0+1.0i 1.234+1.234i) 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.234+1.234i) #f) (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.0+1.0i) 0.0-2.0i) (num-test (* 0.0 1.0+1.0i -1.0+1.0i) -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.0+1.0i) #f) (num-test (+ 0.0 1.0+1.0i 0.0+1.0i) 1.0+2.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 0.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 0.0+1.0i) #f) (num-test (+ 0.0 0 1) 1.0) (num-test (- 0.0 0 1) -1.0) (num-test (* 0.0 0 1) 0.0) (num-test (+ 0.0 0 1.0) 1.0) (num-test (- 0.0 0 1.0) -1.0) (num-test (* 0.0 0 1.0) 0.0) (num-test (+ 0.0 0 1/1) 1.0) (num-test (- 0.0 0 1/1) -1.0) (num-test (* 0.0 0 1/1) 0.0) (num-test (+ 0.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 1.0+1.0i) 0.0) (num-test (+ 0.0 0 0) 0.0) (num-test (- 0.0 0 0) 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) 0.0) (num-test (* 0.0 0 0.0) 0.0) (num-test (+ 0.0 0 1234) 1234.0) (num-test (- 0.0 0 1234) -1234.0) (num-test (* 0.0 0 1234) 0.0) (num-test (+ 0.0 0 123.4) 123.4) (num-test (- 0.0 0 123.4) -123.4) (num-test (* 0.0 0 123.4) 0.0) (num-test (+ 0.0 0 1234/11) 112.18181818181819) (num-test (- 0.0 0 1234/11) -112.18181818181819) (num-test (* 0.0 0 1234/11) 0.0) (num-test (+ 0.0 0 1.234+1.234i) 1.234+1.234i) (num-test (- 0.0 0 1.234+1.234i) -1.234-1.234i) (num-test (* 0.0 0 1.234+1.234i) 0.0) (num-test (+ 0.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 -1.0+1.0i) -0.0) (num-test (+ 0.0 0 0.0+1.0i) 0.0+1.0i) (num-test (- 0.0 0 0.0+1.0i) 0.0-1.0i) (num-test (* 0.0 0 0.0+1.0i) 0.0) (num-test (+ 0.0 0.0 1) 1.0) (num-test (- 0.0 0.0 1) -1.0) (num-test (* 0.0 0.0 1) 0.0) (num-test (+ 0.0 0.0 1.0) 1.0) (num-test (- 0.0 0.0 1.0) -1.0) (num-test (* 0.0 0.0 1.0) 0.0) (num-test (+ 0.0 0.0 1/1) 1.0) (num-test (- 0.0 0.0 1/1) -1.0) (num-test (* 0.0 0.0 1/1) 0.0) (num-test (+ 0.0 0.0 1.0+1.0i) 1.0+1.0i) (num-test (- 0.0 0.0 1.0+1.0i) -1.0-1.0i) (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) (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) 0.0) (num-test (* 0.0 0.0 0.0) 0.0) (num-test (+ 0.0 0.0 1234) 1234.0) (num-test (- 0.0 0.0 1234) -1234.0) (num-test (* 0.0 0.0 1234) 0.0) (num-test (+ 0.0 0.0 123.4) 123.4) (num-test (- 0.0 0.0 123.4) -123.4) (num-test (* 0.0 0.0 123.4) 0.0) (num-test (+ 0.0 0.0 1234/11) 112.18181818181819) (num-test (- 0.0 0.0 1234/11) -112.18181818181819) (num-test (* 0.0 0.0 1234/11) 0.0) (num-test (+ 0.0 0.0 1.234+1.234i) 1.234+1.234i) (num-test (- 0.0 0.0 1.234+1.234i) -1.234-1.234i) (num-test (* 0.0 0.0 1.234+1.234i) 0.0) (num-test (+ 0.0 0.0 -1.0+1.0i) -1.0+1.0i) (num-test (- 0.0 0.0 -1.0+1.0i) 1.0-1.0i) (num-test (* 0.0 0.0 -1.0+1.0i) -0.0) (num-test (+ 0.0 0.0 0.0+1.0i) 0.0+1.0i) (num-test (- 0.0 0.0 0.0+1.0i) 0.0-1.0i) (num-test (* 0.0 0.0 0.0+1.0i) 0.0) (num-test (+ 0.0 1234 1) 1235.0) (num-test (- 0.0 1234 1) -1235.0) (num-test (* 0.0 1234 1) 0.0) (num-test (/ 0.0 1234 1) 0.0) (num-test (= 0.0 1234 1) #f) (num-test (< 0.0 1234 1) #f) (num-test (<= 0.0 1234 1) #f) (num-test (> 0.0 1234 1) #f) (num-test (>= 0.0 1234 1) #f) (num-test (+ 0.0 1234 1.0) 1235.0) (num-test (- 0.0 1234 1.0) -1235.0) (num-test (* 0.0 1234 1.0) 0.0) (num-test (/ 0.0 1234 1.0) 0.0) (num-test (= 0.0 1234 1.0) #f) (num-test (< 0.0 1234 1.0) #f) (num-test (<= 0.0 1234 1.0) #f) (num-test (> 0.0 1234 1.0) #f) (num-test (>= 0.0 1234 1.0) #f) (num-test (+ 0.0 1234 1/1) 1235.0) (num-test (- 0.0 1234 1/1) -1235.0) (num-test (* 0.0 1234 1/1) 0.0) (num-test (/ 0.0 1234 1/1) 0.0) (num-test (= 0.0 1234 1/1) #f) (num-test (< 0.0 1234 1/1) #f) (num-test (<= 0.0 1234 1/1) #f) (num-test (> 0.0 1234 1/1) #f) (num-test (>= 0.0 1234 1/1) #f) (num-test (+ 0.0 1234 1.0+1.0i) 1235.0+1.0i) (num-test (- 0.0 1234 1.0+1.0i) -1235.0-1.0i) (num-test (* 0.0 1234 1.0+1.0i) 0.0) (num-test (/ 0.0 1234 1.0+1.0i) 0.0) (num-test (= 0.0 1234 1.0+1.0i) #f) (num-test (+ 0.0 1234 0) 1234.0) (num-test (- 0.0 1234 0) -1234.0) (num-test (* 0.0 1234 0) 0.0) (num-test (+ 0.0 1234 0.0) 1234.0) (num-test (- 0.0 1234 0.0) -1234.0) (num-test (* 0.0 1234 0.0) 0.0) (num-test (+ 0.0 1234 1234) 2468.0) (num-test (- 0.0 1234 1234) -2468.0) (num-test (* 0.0 1234 1234) 0.0) (num-test (/ 0.0 1234 1234) 0.0) (num-test (= 0.0 1234 1234) #f) (num-test (< 0.0 1234 1234) #f) (num-test (<= 0.0 1234 1234) #t) (num-test (> 0.0 1234 1234) #f) (num-test (>= 0.0 1234 1234) #f) (num-test (+ 0.0 1234 123.4) 1357.4) (num-test (- 0.0 1234 123.4) -1357.4) (num-test (* 0.0 1234 123.4) 0.0) (num-test (/ 0.0 1234 123.4) 0.0) (num-test (= 0.0 1234 123.4) #f) (num-test (< 0.0 1234 123.4) #f) (num-test (<= 0.0 1234 123.4) #f) (num-test (> 0.0 1234 123.4) #f) (num-test (>= 0.0 1234 123.4) #f) (num-test (+ 0.0 1234 1234/11) 1346.18181818181824) (num-test (- 0.0 1234 1234/11) -1346.18181818181824) (num-test (* 0.0 1234 1234/11) 0.0) (num-test (/ 0.0 1234 1234/11) 0.0) (num-test (= 0.0 1234 1234/11) #f) (num-test (< 0.0 1234 1234/11) #f) (num-test (<= 0.0 1234 1234/11) #f) (num-test (> 0.0 1234 1234/11) #f) (num-test (>= 0.0 1234 1234/11) #f) (num-test (+ 0.0 1234 1.234+1.234i) 1235.23399999999992+1.234i) (num-test (- 0.0 1234 1.234+1.234i) -1235.23399999999992-1.234i) (num-test (* 0.0 1234 1.234+1.234i) 0.0) (num-test (/ 0.0 1234 1.234+1.234i) 0.0) (num-test (= 0.0 1234 1.234+1.234i) #f) (num-test (+ 0.0 1234 -1.0+1.0i) 1233.0+1.0i) (num-test (- 0.0 1234 -1.0+1.0i) -1233.0-1.0i) (num-test (* 0.0 1234 -1.0+1.0i) -0.0) (num-test (/ 0.0 1234 -1.0+1.0i) -0.0) (num-test (= 0.0 1234 -1.0+1.0i) #f) (num-test (+ 0.0 1234 0.0+1.0i) 1234.0+1.0i) (num-test (- 0.0 1234 0.0+1.0i) -1234.0-1.0i) (num-test (* 0.0 1234 0.0+1.0i) 0.0) (num-test (/ 0.0 1234 0.0+1.0i) 0.0) (num-test (= 0.0 1234 0.0+1.0i) #f) (num-test (+ 0.0 123.4 1) 124.4) (num-test (- 0.0 123.4 1) -124.4) (num-test (* 0.0 123.4 1) 0.0) (num-test (/ 0.0 123.4 1) 0.0) (num-test (= 0.0 123.4 1) #f) (num-test (< 0.0 123.4 1) #f) (num-test (<= 0.0 123.4 1) #f) (num-test (> 0.0 123.4 1) #f) (num-test (>= 0.0 123.4 1) #f) (num-test (+ 0.0 123.4 1.0) 124.4) (num-test (- 0.0 123.4 1.0) -124.4) (num-test (* 0.0 123.4 1.0) 0.0) (num-test (/ 0.0 123.4 1.0) 0.0) (num-test (= 0.0 123.4 1.0) #f) (num-test (< 0.0 123.4 1.0) #f) (num-test (<= 0.0 123.4 1.0) #f) (num-test (> 0.0 123.4 1.0) #f) (num-test (>= 0.0 123.4 1.0) #f) (num-test (+ 0.0 123.4 1/1) 124.4) (num-test (- 0.0 123.4 1/1) -124.4) (num-test (* 0.0 123.4 1/1) 0.0) (num-test (/ 0.0 123.4 1/1) 0.0) (num-test (= 0.0 123.4 1/1) #f) (num-test (< 0.0 123.4 1/1) #f) (num-test (<= 0.0 123.4 1/1) #f) (num-test (> 0.0 123.4 1/1) #f) (num-test (>= 0.0 123.4 1/1) #f) (num-test (+ 0.0 123.4 1.0+1.0i) 124.4+1.0i) (num-test (- 0.0 123.4 1.0+1.0i) -124.4-1.0i) (num-test (* 0.0 123.4 1.0+1.0i) 0.0) (num-test (/ 0.0 123.4 1.0+1.0i) 0.0) (num-test (= 0.0 123.4 1.0+1.0i) #f) (num-test (+ 0.0 123.4 0) 123.4) (num-test (- 0.0 123.4 0) -123.4) (num-test (* 0.0 123.4 0) 0.0) (num-test (+ 0.0 123.4 0.0) 123.4) (num-test (- 0.0 123.4 0.0) -123.4) (num-test (* 0.0 123.4 0.0) 0.0) (num-test (+ 0.0 123.4 1234) 1357.4) (num-test (- 0.0 123.4 1234) -1357.4) (num-test (* 0.0 123.4 1234) 0.0) (num-test (/ 0.0 123.4 1234) 0.0) (num-test (= 0.0 123.4 1234) #f) (num-test (< 0.0 123.4 1234) #t) (num-test (<= 0.0 123.4 1234) #t) (num-test (> 0.0 123.4 1234) #f) (num-test (>= 0.0 123.4 1234) #f) (num-test (+ 0.0 123.4 123.4) 246.8) (num-test (- 0.0 123.4 123.4) -246.8) (num-test (* 0.0 123.4 123.4) 0.0) (num-test (/ 0.0 123.4 123.4) 0.0) (num-test (= 0.0 123.4 123.4) #f) (num-test (< 0.0 123.4 123.4) #f) (num-test (<= 0.0 123.4 123.4) #t) (num-test (> 0.0 123.4 123.4) #f) (num-test (>= 0.0 123.4 123.4) #f) (num-test (+ 0.0 123.4 1234/11) 235.58181818181819) (num-test (- 0.0 123.4 1234/11) -235.58181818181819) (num-test (* 0.0 123.4 1234/11) 0.0) (num-test (/ 0.0 123.4 1234/11) 0.0) (num-test (= 0.0 123.4 1234/11) #f) (num-test (< 0.0 123.4 1234/11) #f) (num-test (<= 0.0 123.4 1234/11) #f) (num-test (> 0.0 123.4 1234/11) #f) (num-test (>= 0.0 123.4 1234/11) #f) (num-test (+ 0.0 123.4 1.234+1.234i) 124.634+1.234i) (num-test (- 0.0 123.4 1.234+1.234i) -124.634-1.234i) (num-test (* 0.0 123.4 1.234+1.234i) 0.0) (num-test (/ 0.0 123.4 1.234+1.234i) 0.0) (num-test (= 0.0 123.4 1.234+1.234i) #f) (num-test (+ 0.0 123.4 -1.0+1.0i) 122.4+1.0i) (num-test (- 0.0 123.4 -1.0+1.0i) -122.4-1.0i) (num-test (* 0.0 123.4 -1.0+1.0i) -0.0) (num-test (/ 0.0 123.4 -1.0+1.0i) -0.0) (num-test (= 0.0 123.4 -1.0+1.0i) #f) (num-test (+ 0.0 123.4 0.0+1.0i) 123.4+1.0i) (num-test (- 0.0 123.4 0.0+1.0i) -123.4-1.0i) (num-test (* 0.0 123.4 0.0+1.0i) 0.0) (num-test (/ 0.0 123.4 0.0+1.0i) 0.0) (num-test (= 0.0 123.4 0.0+1.0i) #f) (num-test (+ 0.0 1234/11 1) 113.18181818181819) (num-test (- 0.0 1234/11 1) -113.18181818181819) (num-test (* 0.0 1234/11 1) 0.0) (num-test (/ 0.0 1234/11 1) 0.0) (num-test (= 0.0 1234/11 1) #f) (num-test (< 0.0 1234/11 1) #f) (num-test (<= 0.0 1234/11 1) #f) (num-test (> 0.0 1234/11 1) #f) (num-test (>= 0.0 1234/11 1) #f) (num-test (+ 0.0 1234/11 1.0) 113.18181818181819) (num-test (- 0.0 1234/11 1.0) -113.18181818181819) (num-test (* 0.0 1234/11 1.0) 0.0) (num-test (/ 0.0 1234/11 1.0) 0.0) (num-test (= 0.0 1234/11 1.0) #f) (num-test (< 0.0 1234/11 1.0) #f) (num-test (<= 0.0 1234/11 1.0) #f) (num-test (> 0.0 1234/11 1.0) #f) (num-test (>= 0.0 1234/11 1.0) #f) (num-test (+ 0.0 1234/11 1/1) 113.18181818181819) (num-test (- 0.0 1234/11 1/1) -113.18181818181819) (num-test (* 0.0 1234/11 1/1) 0.0) (num-test (/ 0.0 1234/11 1/1) 0.0) (num-test (= 0.0 1234/11 1/1) #f) (num-test (< 0.0 1234/11 1/1) #f) (num-test (<= 0.0 1234/11 1/1) #f) (num-test (> 0.0 1234/11 1/1) #f) (num-test (>= 0.0 1234/11 1/1) #f) (num-test (+ 0.0 1234/11 1.0+1.0i) 113.18181818181819+1.0i) (num-test (- 0.0 1234/11 1.0+1.0i) -113.18181818181819-1.0i) (num-test (* 0.0 1234/11 1.0+1.0i) 0.0) (num-test (/ 0.0 1234/11 1.0+1.0i) 0.0) (num-test (= 0.0 1234/11 1.0+1.0i) #f) (num-test (+ 0.0 1234/11 0) 112.18181818181819) (num-test (- 0.0 1234/11 0) -112.18181818181819) (num-test (* 0.0 1234/11 0) 0.0) (num-test (+ 0.0 1234/11 0.0) 112.18181818181819) (num-test (- 0.0 1234/11 0.0) -112.18181818181819) (num-test (* 0.0 1234/11 0.0) 0.0) (num-test (+ 0.0 1234/11 1234) 1346.18181818181824) (num-test (- 0.0 1234/11 1234) -1346.18181818181824) (num-test (* 0.0 1234/11 1234) 0.0) (num-test (/ 0.0 1234/11 1234) 0.0) (num-test (= 0.0 1234/11 1234) #f) (num-test (< 0.0 1234/11 1234) #t) (num-test (<= 0.0 1234/11 1234) #t) (num-test (> 0.0 1234/11 1234) #f) (num-test (>= 0.0 1234/11 1234) #f) (num-test (+ 0.0 1234/11 123.4) 235.58181818181819) (num-test (- 0.0 1234/11 123.4) -235.58181818181819) (num-test (* 0.0 1234/11 123.4) 0.0) (num-test (/ 0.0 1234/11 123.4) 0.0) (num-test (= 0.0 1234/11 123.4) #f) (num-test (< 0.0 1234/11 123.4) #t) (num-test (<= 0.0 1234/11 123.4) #t) (num-test (> 0.0 1234/11 123.4) #f) (num-test (>= 0.0 1234/11 123.4) #f) (num-test (+ 0.0 1234/11 1234/11) 224.36363636363637) (num-test (- 0.0 1234/11 1234/11) -224.36363636363637) (num-test (* 0.0 1234/11 1234/11) 0.0) (num-test (/ 0.0 1234/11 1234/11) 0.0) (num-test (= 0.0 1234/11 1234/11) #f) (num-test (< 0.0 1234/11 1234/11) #f) (num-test (<= 0.0 1234/11 1234/11) #t) (num-test (> 0.0 1234/11 1234/11) #f) (num-test (>= 0.0 1234/11 1234/11) #f) (num-test (+ 0.0 1234/11 1.234+1.234i) 113.41581818181818+1.234i) (num-test (- 0.0 1234/11 1.234+1.234i) -113.41581818181818-1.234i) (num-test (* 0.0 1234/11 1.234+1.234i) 0.0) (num-test (/ 0.0 1234/11 1.234+1.234i) 0.0) (num-test (= 0.0 1234/11 1.234+1.234i) #f) (num-test (+ 0.0 1234/11 -1.0+1.0i) 111.18181818181819+1.0i) (num-test (- 0.0 1234/11 -1.0+1.0i) -111.18181818181819-1.0i) (num-test (* 0.0 1234/11 -1.0+1.0i) -0.0) (num-test (/ 0.0 1234/11 -1.0+1.0i) -0.0) (num-test (= 0.0 1234/11 -1.0+1.0i) #f) (num-test (+ 0.0 1234/11 0.0+1.0i) 112.18181818181819+1.0i) (num-test (- 0.0 1234/11 0.0+1.0i) -112.18181818181819-1.0i) (num-test (* 0.0 1234/11 0.0+1.0i) 0.0) (num-test (/ 0.0 1234/11 0.0+1.0i) 0.0) (num-test (= 0.0 1234/11 0.0+1.0i) #f) (num-test (+ 0.0 1.234+1.234i 1) 2.234+1.234i) (num-test (- 0.0 1.234+1.234i 1) -2.234-1.234i) (num-test (* 0.0 1.234+1.234i 1) 0.0) (num-test (/ 0.0 1.234+1.234i 1) 0.0) (num-test (= 0.0 1.234+1.234i 1) #f) (num-test (+ 0.0 1.234+1.234i 1.0) 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) 0.0) (num-test (/ 0.0 1.234+1.234i 1.0) 0.0) (num-test (= 0.0 1.234+1.234i 1.0) #f) (num-test (+ 0.0 1.234+1.234i 1/1) 2.234+1.234i) (num-test (- 0.0 1.234+1.234i 1/1) -2.234-1.234i) (num-test (* 0.0 1.234+1.234i 1/1) 0.0) (num-test (/ 0.0 1.234+1.234i 1/1) 0.0) (num-test (= 0.0 1.234+1.234i 1/1) #f) (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.0+1.0i) -2.234-2.234i) (num-test (* 0.0 1.234+1.234i 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 1.0+1.0i) #f) (num-test (+ 0.0 1.234+1.234i 0) 1.234+1.234i) (num-test (- 0.0 1.234+1.234i 0) -1.234-1.234i) (num-test (* 0.0 1.234+1.234i 0) 0.0) (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.234-1.234i) (num-test (* 0.0 1.234+1.234i 0.0) 0.0) (num-test (+ 0.0 1.234+1.234i 1234) 1235.23399999999992+1.234i) (num-test (- 0.0 1.234+1.234i 1234) -1235.23399999999992-1.234i) (num-test (* 0.0 1.234+1.234i 1234) 0.0) (num-test (/ 0.0 1.234+1.234i 1234) 0.0) (num-test (= 0.0 1.234+1.234i 1234) #f) (num-test (+ 0.0 1.234+1.234i 123.4) 124.634+1.234i) (num-test (- 0.0 1.234+1.234i 123.4) -124.634-1.234i) (num-test (* 0.0 1.234+1.234i 123.4) 0.0) (num-test (/ 0.0 1.234+1.234i 123.4) 0.0) (num-test (= 0.0 1.234+1.234i 123.4) #f) (num-test (+ 0.0 1.234+1.234i 1234/11) 113.41581818181818+1.234i) (num-test (- 0.0 1.234+1.234i 1234/11) -113.41581818181818-1.234i) (num-test (* 0.0 1.234+1.234i 1234/11) 0.0) (num-test (/ 0.0 1.234+1.234i 1234/11) 0.0) (num-test (= 0.0 1.234+1.234i 1234/11) #f) (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.234+1.234i) -2.468-2.468i) (num-test (* 0.0 1.234+1.234i 1.234+1.234i) 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.234+1.234i) #f) (num-test (+ 0.0 1.234+1.234i -1.0+1.0i) 0.234+2.234i) (num-test (- 0.0 1.234+1.234i -1.0+1.0i) -0.234-2.234i) (num-test (* 0.0 1.234+1.234i -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 -1.0+1.0i) #f) (num-test (+ 0.0 1.234+1.234i 0.0+1.0i) 1.234+2.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 0.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 0.0+1.0i) #f) (num-test (+ 0.0 -1.0+1.0i 1) 0.0+1.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) (num-test (/ 0.0 -1.0+1.0i 1) -0.0) (num-test (= 0.0 -1.0+1.0i 1) #f) (num-test (+ 0.0 -1.0+1.0i 1.0) 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) -0.0) (num-test (/ 0.0 -1.0+1.0i 1.0) -0.0) (num-test (= 0.0 -1.0+1.0i 1.0) #f) (num-test (+ 0.0 -1.0+1.0i 1/1) 0.0+1.0i) (num-test (- 0.0 -1.0+1.0i 1/1) 0.0-1.0i) (num-test (* 0.0 -1.0+1.0i 1/1) -0.0) (num-test (/ 0.0 -1.0+1.0i 1/1) -0.0) (num-test (= 0.0 -1.0+1.0i 1/1) #f) (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.0+1.0i) 0.0-2.0i) (num-test (* 0.0 -1.0+1.0i 1.0+1.0i) -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.0+1.0i) #f) (num-test (+ 0.0 -1.0+1.0i 0) -1.0+1.0i) (num-test (- 0.0 -1.0+1.0i 0) 1.0-1.0i) (num-test (* 0.0 -1.0+1.0i 0) -0.0) (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.0-1.0i) (num-test (* 0.0 -1.0+1.0i 0.0) -0.0) (num-test (+ 0.0 -1.0+1.0i 1234) 1233.0+1.0i) (num-test (- 0.0 -1.0+1.0i 1234) -1233.0-1.0i) (num-test (* 0.0 -1.0+1.0i 1234) -0.0) (num-test (/ 0.0 -1.0+1.0i 1234) -0.0) (num-test (= 0.0 -1.0+1.0i 1234) #f) (num-test (+ 0.0 -1.0+1.0i 123.4) 122.4+1.0i) (num-test (- 0.0 -1.0+1.0i 123.4) -122.4-1.0i) (num-test (* 0.0 -1.0+1.0i 123.4) -0.0) (num-test (/ 0.0 -1.0+1.0i 123.4) -0.0) (num-test (= 0.0 -1.0+1.0i 123.4) #f) (num-test (+ 0.0 -1.0+1.0i 1234/11) 111.18181818181819+1.0i) (num-test (- 0.0 -1.0+1.0i 1234/11) -111.18181818181819-1.0i) (num-test (* 0.0 -1.0+1.0i 1234/11) -0.0) (num-test (/ 0.0 -1.0+1.0i 1234/11) -0.0) (num-test (= 0.0 -1.0+1.0i 1234/11) #f) (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.234+1.234i) -0.234-2.234i) (num-test (* 0.0 -1.0+1.0i 1.234+1.234i) -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.234+1.234i) #f) (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.0+1.0i) 2.0-2.0i) (num-test (* 0.0 -1.0+1.0i -1.0+1.0i) 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.0+1.0i) #f) (num-test (+ 0.0 -1.0+1.0i 0.0+1.0i) -1.0+2.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 0.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 0.0+1.0i) #f) (num-test (+ 0.0 0.0+1.0i 1) 1.0+1.0i) (num-test (- 0.0 0.0+1.0i 1) -1.0-1.0i) (num-test (* 0.0 0.0+1.0i 1) 0.0) (num-test (/ 0.0 0.0+1.0i 1) 0.0) (num-test (= 0.0 0.0+1.0i 1) #f) (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.0-1.0i) (num-test (* 0.0 0.0+1.0i 1.0) 0.0) (num-test (/ 0.0 0.0+1.0i 1.0) 0.0) (num-test (= 0.0 0.0+1.0i 1.0) #f) (num-test (+ 0.0 0.0+1.0i 1/1) 1.0+1.0i) (num-test (- 0.0 0.0+1.0i 1/1) -1.0-1.0i) (num-test (* 0.0 0.0+1.0i 1/1) 0.0) (num-test (/ 0.0 0.0+1.0i 1/1) 0.0) (num-test (= 0.0 0.0+1.0i 1/1) #f) (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.0+1.0i) -1.0-2.0i) (num-test (* 0.0 0.0+1.0i 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 1.0+1.0i) #f) (num-test (+ 0.0 0.0+1.0i 0) 0.0+1.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) (num-test (+ 0.0 0.0+1.0i 0.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) 0.0) (num-test (+ 0.0 0.0+1.0i 1234) 1234.0+1.0i) (num-test (- 0.0 0.0+1.0i 1234) -1234.0-1.0i) (num-test (* 0.0 0.0+1.0i 1234) 0.0) (num-test (/ 0.0 0.0+1.0i 1234) 0.0) (num-test (= 0.0 0.0+1.0i 1234) #f) (num-test (+ 0.0 0.0+1.0i 123.4) 123.4+1.0i) (num-test (- 0.0 0.0+1.0i 123.4) -123.4-1.0i) (num-test (* 0.0 0.0+1.0i 123.4) 0.0) (num-test (/ 0.0 0.0+1.0i 123.4) 0.0) (num-test (= 0.0 0.0+1.0i 123.4) #f) (num-test (+ 0.0 0.0+1.0i 1234/11) 112.18181818181819+1.0i) (num-test (- 0.0 0.0+1.0i 1234/11) -112.18181818181819-1.0i) (num-test (* 0.0 0.0+1.0i 1234/11) 0.0) (num-test (/ 0.0 0.0+1.0i 1234/11) 0.0) (num-test (= 0.0 0.0+1.0i 1234/11) #f) (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.234+1.234i) -1.234-2.234i) (num-test (* 0.0 0.0+1.0i 1.234+1.234i) 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.234+1.234i) #f) (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.0+1.0i) 1.0-2.0i) (num-test (* 0.0 0.0+1.0i -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 -1.0+1.0i) #f) (num-test (+ 0.0 0.0+1.0i 0.0+1.0i) 0.0+2.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 0.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 0.0+1.0i) #f) (num-test (+ 1234 1 1) 1236) (num-test (- 1234 1 1) 1232) (num-test (* 1234 1 1) 1234) (num-test (/ 1234 1 1) 1234) (num-test (= 1234 1 1) #f) (num-test (< 1234 1 1) #f) (num-test (<= 1234 1 1) #f) (num-test (> 1234 1 1) #f) (num-test (>= 1234 1 1) #t) (num-test (+ 1234 1 1.0) 1236.0) (num-test (- 1234 1 1.0) 1232.0) (num-test (* 1234 1 1.0) 1234.0) (num-test (/ 1234 1 1.0) 1234.0) (num-test (= 1234 1 1.0) #f) (num-test (< 1234 1 1.0) #f) (num-test (<= 1234 1 1.0) #f) (num-test (> 1234 1 1.0) #f) (num-test (>= 1234 1 1.0) #t) (num-test (+ 1234 1 1/1) 1236) (num-test (- 1234 1 1/1) 1232) (num-test (* 1234 1 1/1) 1234) (num-test (/ 1234 1 1/1) 1234) (num-test (= 1234 1 1/1) #f) (num-test (< 1234 1 1/1) #f) (num-test (<= 1234 1 1/1) #f) (num-test (> 1234 1 1/1) #f) (num-test (>= 1234 1 1/1) #t) (num-test (+ 1234 1 1.0+1.0i) 1236.0+1.0i) (num-test (- 1234 1 1.0+1.0i) 1232.0-1.0i) (num-test (* 1234 1 1.0+1.0i) 1234.0+1234.0i) (num-test (/ 1234 1 1.0+1.0i) 617.0-617.0i) (num-test (= 1234 1 1.0+1.0i) #f) (num-test (+ 1234 1 0) 1235) (num-test (- 1234 1 0) 1233) (num-test (* 1234 1 0) 0) (num-test (+ 1234 1 0.0) 1235.0) (num-test (- 1234 1 0.0) 1233.0) (num-test (* 1234 1 0.0) 0.0) (num-test (+ 1234 1 1234) 2469) (num-test (- 1234 1 1234) -1) (num-test (* 1234 1 1234) 1522756) (num-test (/ 1234 1 1234) 1) (num-test (= 1234 1 1234) #f) (num-test (< 1234 1 1234) #f) (num-test (<= 1234 1 1234) #f) (num-test (> 1234 1 1234) #f) (num-test (>= 1234 1 1234) #f) (num-test (+ 1234 1 123.4) 1358.4) (num-test (- 1234 1 123.4) 1109.59999999999991) (num-test (* 1234 1 123.4) 152275.60000000000582) (num-test (/ 1234 1 123.4) 10.0) (num-test (= 1234 1 123.4) #f) (num-test (< 1234 1 123.4) #f) (num-test (<= 1234 1 123.4) #f) (num-test (> 1234 1 123.4) #f) (num-test (>= 1234 1 123.4) #f) (num-test (+ 1234 1 1234/11) 14819/11) (num-test (- 1234 1 1234/11) 12329/11) (num-test (* 1234 1 1234/11) 1522756/11) (num-test (/ 1234 1 1234/11) 11) (num-test (= 1234 1 1234/11) #f) (num-test (< 1234 1 1234/11) #f) (num-test (<= 1234 1 1234/11) #f) (num-test (> 1234 1 1234/11) #f) (num-test (>= 1234 1 1234/11) #f) (num-test (+ 1234 1 1.234+1.234i) 1236.23399999999992+1.234i) (num-test (- 1234 1 1.234+1.234i) 1231.766-1.234i) (num-test (* 1234 1 1.234+1.234i) 1522.756+1522.756i) (num-test (/ 1234 1 1.234+1.234i) 500.0-500.0i) (num-test (= 1234 1 1.234+1.234i) #f) (num-test (+ 1234 1 -1.0+1.0i) 1234.0+1.0i) (num-test (- 1234 1 -1.0+1.0i) 1234.0-1.0i) (num-test (* 1234 1 -1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1234 1 -1.0+1.0i) -617.0-617.0i) (num-test (= 1234 1 -1.0+1.0i) #f) (num-test (+ 1234 1 0.0+1.0i) 1235.0+1.0i) (num-test (- 1234 1 0.0+1.0i) 1233.0-1.0i) (num-test (* 1234 1 0.0+1.0i) 0.0+1234.0i) (num-test (/ 1234 1 0.0+1.0i) 0.0-1234.0i) (num-test (= 1234 1 0.0+1.0i) #f) (num-test (+ 1234 1.0 1) 1236.0) (num-test (- 1234 1.0 1) 1232.0) (num-test (* 1234 1.0 1) 1234.0) (num-test (/ 1234 1.0 1) 1234.0) (num-test (= 1234 1.0 1) #f) (num-test (< 1234 1.0 1) #f) (num-test (<= 1234 1.0 1) #f) (num-test (> 1234 1.0 1) #f) (num-test (>= 1234 1.0 1) #t) (num-test (+ 1234 1.0 1.0) 1236.0) (num-test (- 1234 1.0 1.0) 1232.0) (num-test (* 1234 1.0 1.0) 1234.0) (num-test (/ 1234 1.0 1.0) 1234.0) (num-test (= 1234 1.0 1.0) #f) (num-test (< 1234 1.0 1.0) #f) (num-test (<= 1234 1.0 1.0) #f) (num-test (> 1234 1.0 1.0) #f) (num-test (>= 1234 1.0 1.0) #t) (num-test (+ 1234 1.0 1/1) 1236.0) (num-test (- 1234 1.0 1/1) 1232.0) (num-test (* 1234 1.0 1/1) 1234.0) (num-test (/ 1234 1.0 1/1) 1234.0) (num-test (= 1234 1.0 1/1) #f) (num-test (< 1234 1.0 1/1) #f) (num-test (<= 1234 1.0 1/1) #f) (num-test (> 1234 1.0 1/1) #f) (num-test (>= 1234 1.0 1/1) #t) (num-test (+ 1234 1.0 1.0+1.0i) 1236.0+1.0i) (num-test (- 1234 1.0 1.0+1.0i) 1232.0-1.0i) (num-test (* 1234 1.0 1.0+1.0i) 1234.0+1234.0i) (num-test (/ 1234 1.0 1.0+1.0i) 617.0-617.0i) (num-test (= 1234 1.0 1.0+1.0i) #f) (num-test (+ 1234 1.0 0) 1235.0) (num-test (- 1234 1.0 0) 1233.0) (num-test (* 1234 1.0 0) 0.0) (num-test (+ 1234 1.0 0.0) 1235.0) (num-test (- 1234 1.0 0.0) 1233.0) (num-test (* 1234 1.0 0.0) 0.0) (num-test (+ 1234 1.0 1234) 2469.0) (num-test (- 1234 1.0 1234) -1.0) (num-test (* 1234 1.0 1234) 1522756.0) (num-test (/ 1234 1.0 1234) 1.0) (num-test (= 1234 1.0 1234) #f) (num-test (< 1234 1.0 1234) #f) (num-test (<= 1234 1.0 1234) #f) (num-test (> 1234 1.0 1234) #f) (num-test (>= 1234 1.0 1234) #f) (num-test (+ 1234 1.0 123.4) 1358.4) (num-test (- 1234 1.0 123.4) 1109.59999999999991) (num-test (* 1234 1.0 123.4) 152275.60000000000582) (num-test (/ 1234 1.0 123.4) 10.0) (num-test (= 1234 1.0 123.4) #f) (num-test (< 1234 1.0 123.4) #f) (num-test (<= 1234 1.0 123.4) #f) (num-test (> 1234 1.0 123.4) #f) (num-test (>= 1234 1.0 123.4) #f) (num-test (+ 1234 1.0 1234/11) 1347.18181818181824) (num-test (- 1234 1.0 1234/11) 1120.81818181818176) (num-test (* 1234 1.0 1234/11) 138432.36363636364695) (num-test (/ 1234 1.0 1234/11) 11.0) (num-test (= 1234 1.0 1234/11) #f) (num-test (< 1234 1.0 1234/11) #f) (num-test (<= 1234 1.0 1234/11) #f) (num-test (> 1234 1.0 1234/11) #f) (num-test (>= 1234 1.0 1234/11) #f) (num-test (+ 1234 1.0 1.234+1.234i) 1236.23399999999992+1.234i) (num-test (- 1234 1.0 1.234+1.234i) 1231.766-1.234i) (num-test (* 1234 1.0 1.234+1.234i) 1522.756+1522.756i) (num-test (/ 1234 1.0 1.234+1.234i) 500.0-500.0i) (num-test (= 1234 1.0 1.234+1.234i) #f) (num-test (+ 1234 1.0 -1.0+1.0i) 1234.0+1.0i) (num-test (- 1234 1.0 -1.0+1.0i) 1234.0-1.0i) (num-test (* 1234 1.0 -1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1234 1.0 -1.0+1.0i) -617.0-617.0i) (num-test (= 1234 1.0 -1.0+1.0i) #f) (num-test (+ 1234 1.0 0.0+1.0i) 1235.0+1.0i) (num-test (- 1234 1.0 0.0+1.0i) 1233.0-1.0i) (num-test (* 1234 1.0 0.0+1.0i) 0.0+1234.0i) (num-test (/ 1234 1.0 0.0+1.0i) 0.0-1234.0i) (num-test (= 1234 1.0 0.0+1.0i) #f) (num-test (+ 1234 1/1 1) 1236) (num-test (- 1234 1/1 1) 1232) (num-test (* 1234 1/1 1) 1234) (num-test (/ 1234 1/1 1) 1234) (num-test (= 1234 1/1 1) #f) (num-test (< 1234 1/1 1) #f) (num-test (<= 1234 1/1 1) #f) (num-test (> 1234 1/1 1) #f) (num-test (>= 1234 1/1 1) #t) (num-test (+ 1234 1/1 1.0) 1236.0) (num-test (- 1234 1/1 1.0) 1232.0) (num-test (* 1234 1/1 1.0) 1234.0) (num-test (/ 1234 1/1 1.0) 1234.0) (num-test (= 1234 1/1 1.0) #f) (num-test (< 1234 1/1 1.0) #f) (num-test (<= 1234 1/1 1.0) #f) (num-test (> 1234 1/1 1.0) #f) (num-test (>= 1234 1/1 1.0) #t) (num-test (+ 1234 1/1 1/1) 1236) (num-test (- 1234 1/1 1/1) 1232) (num-test (* 1234 1/1 1/1) 1234) (num-test (/ 1234 1/1 1/1) 1234) (num-test (= 1234 1/1 1/1) #f) (num-test (< 1234 1/1 1/1) #f) (num-test (<= 1234 1/1 1/1) #f) (num-test (> 1234 1/1 1/1) #f) (num-test (>= 1234 1/1 1/1) #t) (num-test (+ 1234 1/1 1.0+1.0i) 1236.0+1.0i) (num-test (- 1234 1/1 1.0+1.0i) 1232.0-1.0i) (num-test (* 1234 1/1 1.0+1.0i) 1234.0+1234.0i) (num-test (/ 1234 1/1 1.0+1.0i) 617.0-617.0i) (num-test (= 1234 1/1 1.0+1.0i) #f) (num-test (+ 1234 1/1 0) 1235) (num-test (- 1234 1/1 0) 1233) (num-test (* 1234 1/1 0) 0) (num-test (+ 1234 1/1 0.0) 1235.0) (num-test (- 1234 1/1 0.0) 1233.0) (num-test (* 1234 1/1 0.0) 0.0) (num-test (+ 1234 1/1 1234) 2469) (num-test (- 1234 1/1 1234) -1) (num-test (* 1234 1/1 1234) 1522756) (num-test (/ 1234 1/1 1234) 1) (num-test (= 1234 1/1 1234) #f) (num-test (< 1234 1/1 1234) #f) (num-test (<= 1234 1/1 1234) #f) (num-test (> 1234 1/1 1234) #f) (num-test (>= 1234 1/1 1234) #f) (num-test (+ 1234 1/1 123.4) 1358.4) (num-test (- 1234 1/1 123.4) 1109.59999999999991) (num-test (* 1234 1/1 123.4) 152275.60000000000582) (num-test (/ 1234 1/1 123.4) 10.0) (num-test (= 1234 1/1 123.4) #f) (num-test (< 1234 1/1 123.4) #f) (num-test (<= 1234 1/1 123.4) #f) (num-test (> 1234 1/1 123.4) #f) (num-test (>= 1234 1/1 123.4) #f) (num-test (+ 1234 1/1 1234/11) 14819/11) (num-test (- 1234 1/1 1234/11) 12329/11) (num-test (* 1234 1/1 1234/11) 1522756/11) (num-test (/ 1234 1/1 1234/11) 11) (num-test (= 1234 1/1 1234/11) #f) (num-test (< 1234 1/1 1234/11) #f) (num-test (<= 1234 1/1 1234/11) #f) (num-test (> 1234 1/1 1234/11) #f) (num-test (>= 1234 1/1 1234/11) #f) (num-test (+ 1234 1/1 1.234+1.234i) 1236.23399999999992+1.234i) (num-test (- 1234 1/1 1.234+1.234i) 1231.766-1.234i) (num-test (* 1234 1/1 1.234+1.234i) 1522.756+1522.756i) (num-test (/ 1234 1/1 1.234+1.234i) 500.0-500.0i) (num-test (= 1234 1/1 1.234+1.234i) #f) (num-test (+ 1234 1/1 -1.0+1.0i) 1234.0+1.0i) (num-test (- 1234 1/1 -1.0+1.0i) 1234.0-1.0i) (num-test (* 1234 1/1 -1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1234 1/1 -1.0+1.0i) -617.0-617.0i) (num-test (= 1234 1/1 -1.0+1.0i) #f) (num-test (+ 1234 1/1 0.0+1.0i) 1235.0+1.0i) (num-test (- 1234 1/1 0.0+1.0i) 1233.0-1.0i) (num-test (* 1234 1/1 0.0+1.0i) 0.0+1234.0i) (num-test (/ 1234 1/1 0.0+1.0i) 0.0-1234.0i) (num-test (= 1234 1/1 0.0+1.0i) #f) (num-test (+ 1234 1.0+1.0i 1) 1236.0+1.0i) (num-test (- 1234 1.0+1.0i 1) 1232.0-1.0i) (num-test (* 1234 1.0+1.0i 1) 1234.0+1234.0i) (num-test (/ 1234 1.0+1.0i 1) 617.0-617.0i) (num-test (= 1234 1.0+1.0i 1) #f) (num-test (+ 1234 1.0+1.0i 1.0) 1236.0+1.0i) (num-test (- 1234 1.0+1.0i 1.0) 1232.0-1.0i) (num-test (* 1234 1.0+1.0i 1.0) 1234.0+1234.0i) (num-test (/ 1234 1.0+1.0i 1.0) 617.0-617.0i) (num-test (= 1234 1.0+1.0i 1.0) #f) (num-test (+ 1234 1.0+1.0i 1/1) 1236.0+1.0i) (num-test (- 1234 1.0+1.0i 1/1) 1232.0-1.0i) (num-test (* 1234 1.0+1.0i 1/1) 1234.0+1234.0i) (num-test (/ 1234 1.0+1.0i 1/1) 617.0-617.0i) (num-test (= 1234 1.0+1.0i 1/1) #f) (num-test (+ 1234 1.0+1.0i 1.0+1.0i) 1236.0+2.0i) (num-test (- 1234 1.0+1.0i 1.0+1.0i) 1232.0-2.0i) (num-test (* 1234 1.0+1.0i 1.0+1.0i) 0.0+2468.0i) (num-test (/ 1234 1.0+1.0i 1.0+1.0i) 0.0-617.0i) (num-test (= 1234 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1234 1.0+1.0i 0) 1235.0+1.0i) (num-test (- 1234 1.0+1.0i 0) 1233.0-1.0i) (num-test (* 1234 1.0+1.0i 0) 0.0) (num-test (+ 1234 1.0+1.0i 0.0) 1235.0+1.0i) (num-test (- 1234 1.0+1.0i 0.0) 1233.0-1.0i) (num-test (* 1234 1.0+1.0i 0.0) 0.0) (num-test (+ 1234 1.0+1.0i 1234) 2469.0+1.0i) (num-test (- 1234 1.0+1.0i 1234) -1.0-1.0i) (num-test (* 1234 1.0+1.0i 1234) 1522756.0+1522756.0i) (num-test (/ 1234 1.0+1.0i 1234) 0.5-0.5i) (num-test (= 1234 1.0+1.0i 1234) #f) (num-test (+ 1234 1.0+1.0i 123.4) 1358.4+1.0i) (num-test (- 1234 1.0+1.0i 123.4) 1109.59999999999991-1.0i) (num-test (* 1234 1.0+1.0i 123.4) 152275.60000000000582+152275.60000000000582i) (num-test (/ 1234 1.0+1.0i 123.4) 5.0-5.0i) (num-test (= 1234 1.0+1.0i 123.4) #f) (num-test (+ 1234 1.0+1.0i 1234/11) 1347.18181818181824+1.0i) (num-test (- 1234 1.0+1.0i 1234/11) 1120.81818181818176-1.0i) (num-test (* 1234 1.0+1.0i 1234/11) 138432.36363636364695+138432.36363636364695i) (num-test (/ 1234 1.0+1.0i 1234/11) 5.50000000000000-5.50000000000000i) (num-test (= 1234 1.0+1.0i 1234/11) #f) (num-test (+ 1234 1.0+1.0i 1.234+1.234i) 1236.23399999999992+2.234i) (num-test (- 1234 1.0+1.0i 1.234+1.234i) 1231.766-2.234i) (num-test (* 1234 1.0+1.0i 1.234+1.234i) 0.0+3045.51200000000017i) (num-test (/ 1234 1.0+1.0i 1.234+1.234i) 0.0-500.0i) (num-test (= 1234 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1234 1.0+1.0i -1.0+1.0i) 1234.0+2.0i) (num-test (- 1234 1.0+1.0i -1.0+1.0i) 1234.0-2.0i) (num-test (* 1234 1.0+1.0i -1.0+1.0i) -2468.0) (num-test (/ 1234 1.0+1.0i -1.0+1.0i) -617.0) (num-test (= 1234 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1234 1.0+1.0i 0.0+1.0i) 1235.0+2.0i) (num-test (- 1234 1.0+1.0i 0.0+1.0i) 1233.0-2.0i) (num-test (* 1234 1.0+1.0i 0.0+1.0i) -1234.0+1234.0i) (num-test (/ 1234 1.0+1.0i 0.0+1.0i) -617.0-617.0i) (num-test (= 1234 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1234 0 1) 1235) (num-test (- 1234 0 1) 1233) (num-test (* 1234 0 1) 0) (num-test (+ 1234 0 1.0) 1235.0) (num-test (- 1234 0 1.0) 1233.0) (num-test (* 1234 0 1.0) 0.0) (num-test (+ 1234 0 1/1) 1235) (num-test (- 1234 0 1/1) 1233) (num-test (* 1234 0 1/1) 0) (num-test (+ 1234 0 1.0+1.0i) 1235.0+1.0i) (num-test (- 1234 0 1.0+1.0i) 1233.0-1.0i) (num-test (* 1234 0 1.0+1.0i) 0.0) (num-test (+ 1234 0 0) 1234) (num-test (- 1234 0 0) 1234) (num-test (* 1234 0 0) 0) (num-test (+ 1234 0 0.0) 1234.0) (num-test (- 1234 0 0.0) 1234.0) (num-test (* 1234 0 0.0) 0.0) (num-test (+ 1234 0 1234) 2468) (num-test (- 1234 0 1234) 0) (num-test (* 1234 0 1234) 0) (num-test (+ 1234 0 123.4) 1357.4) (num-test (- 1234 0 123.4) 1110.59999999999991) (num-test (* 1234 0 123.4) 0.0) (num-test (+ 1234 0 1234/11) 14808/11) (num-test (- 1234 0 1234/11) 12340/11) (num-test (* 1234 0 1234/11) 0) (num-test (+ 1234 0 1.234+1.234i) 1235.23399999999992+1.234i) (num-test (- 1234 0 1.234+1.234i) 1232.766-1.234i) (num-test (* 1234 0 1.234+1.234i) 0.0) (num-test (+ 1234 0 -1.0+1.0i) 1233.0+1.0i) (num-test (- 1234 0 -1.0+1.0i) 1235.0-1.0i) (num-test (* 1234 0 -1.0+1.0i) -0.0) (num-test (+ 1234 0 0.0+1.0i) 1234.0+1.0i) (num-test (- 1234 0 0.0+1.0i) 1234.0-1.0i) (num-test (* 1234 0 0.0+1.0i) 0.0) (num-test (+ 1234 0.0 1) 1235.0) (num-test (- 1234 0.0 1) 1233.0) (num-test (* 1234 0.0 1) 0.0) (num-test (+ 1234 0.0 1.0) 1235.0) (num-test (- 1234 0.0 1.0) 1233.0) (num-test (* 1234 0.0 1.0) 0.0) (num-test (+ 1234 0.0 1/1) 1235.0) (num-test (- 1234 0.0 1/1) 1233.0) (num-test (* 1234 0.0 1/1) 0.0) (num-test (+ 1234 0.0 1.0+1.0i) 1235.0+1.0i) (num-test (- 1234 0.0 1.0+1.0i) 1233.0-1.0i) (num-test (* 1234 0.0 1.0+1.0i) 0.0) (num-test (+ 1234 0.0 0) 1234.0) (num-test (- 1234 0.0 0) 1234.0) (num-test (* 1234 0.0 0) 0.0) (num-test (+ 1234 0.0 0.0) 1234.0) (num-test (- 1234 0.0 0.0) 1234.0) (num-test (* 1234 0.0 0.0) 0.0) (num-test (+ 1234 0.0 1234) 2468.0) (num-test (- 1234 0.0 1234) 0.0) (num-test (* 1234 0.0 1234) 0.0) (num-test (+ 1234 0.0 123.4) 1357.4) (num-test (- 1234 0.0 123.4) 1110.59999999999991) (num-test (* 1234 0.0 123.4) 0.0) (num-test (+ 1234 0.0 1234/11) 1346.18181818181824) (num-test (- 1234 0.0 1234/11) 1121.81818181818176) (num-test (* 1234 0.0 1234/11) 0.0) (num-test (+ 1234 0.0 1.234+1.234i) 1235.23399999999992+1.234i) (num-test (- 1234 0.0 1.234+1.234i) 1232.766-1.234i) (num-test (* 1234 0.0 1.234+1.234i) 0.0) (num-test (+ 1234 0.0 -1.0+1.0i) 1233.0+1.0i) (num-test (- 1234 0.0 -1.0+1.0i) 1235.0-1.0i) (num-test (* 1234 0.0 -1.0+1.0i) -0.0) (num-test (+ 1234 0.0 0.0+1.0i) 1234.0+1.0i) (num-test (- 1234 0.0 0.0+1.0i) 1234.0-1.0i) (num-test (* 1234 0.0 0.0+1.0i) 0.0) (num-test (+ 1234 1234 1) 2469) (num-test (- 1234 1234 1) -1) (num-test (* 1234 1234 1) 1522756) (num-test (/ 1234 1234 1) 1) (num-test (= 1234 1234 1) #f) (num-test (< 1234 1234 1) #f) (num-test (<= 1234 1234 1) #f) (num-test (> 1234 1234 1) #f) (num-test (>= 1234 1234 1) #t) (num-test (+ 1234 1234 1.0) 2469.0) (num-test (- 1234 1234 1.0) -1.0) (num-test (* 1234 1234 1.0) 1522756.0) (num-test (/ 1234 1234 1.0) 1.0) (num-test (= 1234 1234 1.0) #f) (num-test (< 1234 1234 1.0) #f) (num-test (<= 1234 1234 1.0) #f) (num-test (> 1234 1234 1.0) #f) (num-test (>= 1234 1234 1.0) #t) (num-test (+ 1234 1234 1/1) 2469) (num-test (- 1234 1234 1/1) -1) (num-test (* 1234 1234 1/1) 1522756) (num-test (/ 1234 1234 1/1) 1) (num-test (= 1234 1234 1/1) #f) (num-test (< 1234 1234 1/1) #f) (num-test (<= 1234 1234 1/1) #f) (num-test (> 1234 1234 1/1) #f) (num-test (>= 1234 1234 1/1) #t) (num-test (+ 1234 1234 1.0+1.0i) 2469.0+1.0i) (num-test (- 1234 1234 1.0+1.0i) -1.0-1.0i) (num-test (* 1234 1234 1.0+1.0i) 1522756.0+1522756.0i) (num-test (/ 1234 1234 1.0+1.0i) 0.5-0.5i) (num-test (= 1234 1234 1.0+1.0i) #f) (num-test (+ 1234 1234 0) 2468) (num-test (- 1234 1234 0) 0) (num-test (* 1234 1234 0) 0) (num-test (+ 1234 1234 0.0) 2468.0) (num-test (- 1234 1234 0.0) 0.0) (num-test (* 1234 1234 0.0) 0.0) (num-test (+ 1234 1234 1234) 3702) (num-test (- 1234 1234 1234) -1234) (num-test (* 1234 1234 1234) 1879080904) (num-test (/ 1234 1234 1234) 1/1234) (num-test (= 1234 1234 1234) #t) (num-test (< 1234 1234 1234) #f) (num-test (<= 1234 1234 1234) #t) (num-test (> 1234 1234 1234) #f) (num-test (>= 1234 1234 1234) #t) (num-test (+ 1234 1234 123.4) 2591.4) (num-test (- 1234 1234 123.4) -123.4) (num-test (* 1234 1234 123.4) 187908090.40000000596046) (num-test (/ 1234 1234 123.4) 0.00810372771475) (num-test (= 1234 1234 123.4) #f) (num-test (< 1234 1234 123.4) #f) (num-test (<= 1234 1234 123.4) #f) (num-test (> 1234 1234 123.4) #f) (num-test (>= 1234 1234 123.4) #t) (num-test (+ 1234 1234 1234/11) 28382/11) (num-test (- 1234 1234 1234/11) -1234/11) (if (not with-64-bit-ints) (num-test (* 1234 1234 1234/11) 170825536.727273) (num-test (* 1234 1234 1234/11) 1879080904/11)) (num-test (/ 1234 1234 1234/11) 11/1234) (num-test (= 1234 1234 1234/11) #f) (num-test (< 1234 1234 1234/11) #f) (num-test (<= 1234 1234 1234/11) #f) (num-test (> 1234 1234 1234/11) #f) (num-test (>= 1234 1234 1234/11) #t) (num-test (+ 1234 1234 1.234+1.234i) 2469.23399999999992+1.234i) (num-test (- 1234 1234 1.234+1.234i) -1.234-1.234i) (num-test (* 1234 1234 1.234+1.234i) 1879080.90399999986403+1879080.90399999986403i) (num-test (/ 1234 1234 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1234 1234 1.234+1.234i) #f) (num-test (+ 1234 1234 -1.0+1.0i) 2467.0+1.0i) (num-test (- 1234 1234 -1.0+1.0i) 1.0-1.0i) (num-test (* 1234 1234 -1.0+1.0i) -1522756.0+1522756.0i) (num-test (/ 1234 1234 -1.0+1.0i) -0.5-0.5i) (num-test (= 1234 1234 -1.0+1.0i) #f) (num-test (+ 1234 1234 0.0+1.0i) 2468.0+1.0i) (num-test (- 1234 1234 0.0+1.0i) 0.0-1.0i) (num-test (* 1234 1234 0.0+1.0i) 0.0+1522756.0i) (num-test (/ 1234 1234 0.0+1.0i) 0.0-1.0i) (num-test (= 1234 1234 0.0+1.0i) #f) (num-test (+ 1234 123.4 1) 1358.4) (num-test (- 1234 123.4 1) 1109.59999999999991) (num-test (* 1234 123.4 1) 152275.60000000000582) (num-test (/ 1234 123.4 1) 10.0) (num-test (= 1234 123.4 1) #f) (num-test (< 1234 123.4 1) #f) (num-test (<= 1234 123.4 1) #f) (num-test (> 1234 123.4 1) #t) (num-test (>= 1234 123.4 1) #t) (num-test (+ 1234 123.4 1.0) 1358.4) (num-test (- 1234 123.4 1.0) 1109.59999999999991) (num-test (* 1234 123.4 1.0) 152275.60000000000582) (num-test (/ 1234 123.4 1.0) 10.0) (num-test (= 1234 123.4 1.0) #f) (num-test (< 1234 123.4 1.0) #f) (num-test (<= 1234 123.4 1.0) #f) (num-test (> 1234 123.4 1.0) #t) (num-test (>= 1234 123.4 1.0) #t) (num-test (+ 1234 123.4 1/1) 1358.4) (num-test (- 1234 123.4 1/1) 1109.59999999999991) (num-test (* 1234 123.4 1/1) 152275.60000000000582) (num-test (/ 1234 123.4 1/1) 10.0) (num-test (= 1234 123.4 1/1) #f) (num-test (< 1234 123.4 1/1) #f) (num-test (<= 1234 123.4 1/1) #f) (num-test (> 1234 123.4 1/1) #t) (num-test (>= 1234 123.4 1/1) #t) (num-test (+ 1234 123.4 1.0+1.0i) 1358.4+1.0i) (num-test (- 1234 123.4 1.0+1.0i) 1109.59999999999991-1.0i) (num-test (* 1234 123.4 1.0+1.0i) 152275.60000000000582+152275.60000000000582i) (num-test (/ 1234 123.4 1.0+1.0i) 5.0-5.0i) (num-test (= 1234 123.4 1.0+1.0i) #f) (num-test (+ 1234 123.4 0) 1357.4) (num-test (- 1234 123.4 0) 1110.59999999999991) (num-test (* 1234 123.4 0) 0.0) (num-test (+ 1234 123.4 0.0) 1357.4) (num-test (- 1234 123.4 0.0) 1110.59999999999991) (num-test (* 1234 123.4 0.0) 0.0) (num-test (+ 1234 123.4 1234) 2591.4) (num-test (- 1234 123.4 1234) -123.4) (num-test (* 1234 123.4 1234) 187908090.40000000596046) (num-test (/ 1234 123.4 1234) 0.00810372771475) (num-test (= 1234 123.4 1234) #f) (num-test (< 1234 123.4 1234) #f) (num-test (<= 1234 123.4 1234) #f) (num-test (> 1234 123.4 1234) #f) (num-test (>= 1234 123.4 1234) #f) (num-test (+ 1234 123.4 123.4) 1480.80000000000018) (num-test (- 1234 123.4 123.4) 987.19999999999993) (num-test (* 1234 123.4 123.4) 18790809.04000000283122) (num-test (/ 1234 123.4 123.4) 0.08103727714749) (num-test (= 1234 123.4 123.4) #f) (num-test (< 1234 123.4 123.4) #f) (num-test (<= 1234 123.4 123.4) #f) (num-test (> 1234 123.4 123.4) #f) (num-test (>= 1234 123.4 123.4) #t) (num-test (+ 1234 123.4 1234/11) 1469.58181818181833) (num-test (- 1234 123.4 1234/11) 998.41818181818178) (num-test (* 1234 123.4 1234/11) 17082553.67272727191448) (num-test (/ 1234 123.4 1234/11) 0.08914100486224) (num-test (= 1234 123.4 1234/11) #f) (num-test (< 1234 123.4 1234/11) #f) (num-test (<= 1234 123.4 1234/11) #f) (num-test (> 1234 123.4 1234/11) #t) (num-test (>= 1234 123.4 1234/11) #t) (num-test (+ 1234 123.4 1.234+1.234i) 1358.63400000000001+1.234i) (num-test (- 1234 123.4 1.234+1.234i) 1109.36599999999999-1.234i) (num-test (* 1234 123.4 1.234+1.234i) 187908.09040000001551+187908.09040000001551i) (num-test (/ 1234 123.4 1.234+1.234i) 4.05186385737439-4.05186385737439i) (num-test (= 1234 123.4 1.234+1.234i) #f) (num-test (+ 1234 123.4 -1.0+1.0i) 1356.4+1.0i) (num-test (- 1234 123.4 -1.0+1.0i) 1111.59999999999991-1.0i) (num-test (* 1234 123.4 -1.0+1.0i) -152275.60000000000582+152275.60000000000582i) (num-test (/ 1234 123.4 -1.0+1.0i) -5.0-5.0i) (num-test (= 1234 123.4 -1.0+1.0i) #f) (num-test (+ 1234 123.4 0.0+1.0i) 1357.4+1.0i) (num-test (- 1234 123.4 0.0+1.0i) 1110.59999999999991-1.0i) (num-test (* 1234 123.4 0.0+1.0i) 0.0+152275.60000000000582i) (num-test (/ 1234 123.4 0.0+1.0i) 0.0-10.0i) (num-test (= 1234 123.4 0.0+1.0i) #f) (num-test (+ 1234 1234/11 1) 14819/11) (num-test (- 1234 1234/11 1) 12329/11) (num-test (* 1234 1234/11 1) 1522756/11) (num-test (/ 1234 1234/11 1) 11) (num-test (= 1234 1234/11 1) #f) (num-test (< 1234 1234/11 1) #f) (num-test (<= 1234 1234/11 1) #f) (num-test (> 1234 1234/11 1) #t) (num-test (>= 1234 1234/11 1) #t) (num-test (+ 1234 1234/11 1.0) 1347.18181818181824) (num-test (- 1234 1234/11 1.0) 1120.81818181818176) (num-test (* 1234 1234/11 1.0) 138432.36363636364695) (num-test (/ 1234 1234/11 1.0) 11.0) (num-test (= 1234 1234/11 1.0) #f) (num-test (< 1234 1234/11 1.0) #f) (num-test (<= 1234 1234/11 1.0) #f) (num-test (> 1234 1234/11 1.0) #t) (num-test (>= 1234 1234/11 1.0) #t) (num-test (+ 1234 1234/11 1/1) 14819/11) (num-test (- 1234 1234/11 1/1) 12329/11) (num-test (* 1234 1234/11 1/1) 1522756/11) (num-test (/ 1234 1234/11 1/1) 11) (num-test (= 1234 1234/11 1/1) #f) (num-test (< 1234 1234/11 1/1) #f) (num-test (<= 1234 1234/11 1/1) #f) (num-test (> 1234 1234/11 1/1) #t) (num-test (>= 1234 1234/11 1/1) #t) (num-test (+ 1234 1234/11 1.0+1.0i) 1347.18181818181824+1.0i) (num-test (- 1234 1234/11 1.0+1.0i) 1120.81818181818176-1.0i) (num-test (* 1234 1234/11 1.0+1.0i) 138432.36363636364695+138432.36363636364695i) (num-test (/ 1234 1234/11 1.0+1.0i) 5.50000000000000-5.50000000000000i) (num-test (= 1234 1234/11 1.0+1.0i) #f) (num-test (+ 1234 1234/11 0) 14808/11) (num-test (- 1234 1234/11 0) 12340/11) (num-test (* 1234 1234/11 0) 0) (num-test (+ 1234 1234/11 0.0) 1346.18181818181824) (num-test (- 1234 1234/11 0.0) 1121.81818181818176) (num-test (* 1234 1234/11 0.0) 0.0) (num-test (+ 1234 1234/11 1234) 28382/11) (num-test (- 1234 1234/11 1234) -1234/11) (if (not with-64-bit-ints) (num-test (* 1234 1234/11 1234) 170825536.727273) (num-test (* 1234 1234/11 1234) 1879080904/11)) (num-test (/ 1234 1234/11 1234) 11/1234) (num-test (= 1234 1234/11 1234) #f) (num-test (< 1234 1234/11 1234) #f) (num-test (<= 1234 1234/11 1234) #f) (num-test (> 1234 1234/11 1234) #f) (num-test (>= 1234 1234/11 1234) #f) (num-test (+ 1234 1234/11 123.4) 1469.58181818181833) (num-test (- 1234 1234/11 123.4) 998.41818181818178) (num-test (* 1234 1234/11 123.4) 17082553.67272727563977) (num-test (/ 1234 1234/11 123.4) 0.08914100486224) (num-test (= 1234 1234/11 123.4) #f) (num-test (< 1234 1234/11 123.4) #f) (num-test (<= 1234 1234/11 123.4) #f) (num-test (> 1234 1234/11 123.4) #f) (num-test (>= 1234 1234/11 123.4) #f) (num-test (+ 1234 1234/11 1234/11) 16042/11) (num-test (- 1234 1234/11 1234/11) 11106/11) (if (not with-64-bit-ints) (num-test (* 1234 1234/11 1234/11) 15529594.2479339) (num-test (* 1234 1234/11 1234/11) 1879080904/121)) (num-test (/ 1234 1234/11 1234/11) 121/1234) (num-test (= 1234 1234/11 1234/11) #f) (num-test (< 1234 1234/11 1234/11) #f) (num-test (<= 1234 1234/11 1234/11) #f) (num-test (> 1234 1234/11 1234/11) #f) (num-test (>= 1234 1234/11 1234/11) #t) (num-test (+ 1234 1234/11 1.234+1.234i) 1347.41581818181817+1.234i) (num-test (- 1234 1234/11 1.234+1.234i) 1120.58418181818183-1.234i) (num-test (* 1234 1234/11 1.234+1.234i) 170825.53672727273079+170825.53672727273079i) (num-test (/ 1234 1234/11 1.234+1.234i) 4.45705024311183-4.45705024311183i) (num-test (= 1234 1234/11 1.234+1.234i) #f) (num-test (+ 1234 1234/11 -1.0+1.0i) 1345.18181818181824+1.0i) (num-test (- 1234 1234/11 -1.0+1.0i) 1122.81818181818176-1.0i) (num-test (* 1234 1234/11 -1.0+1.0i) -138432.36363636364695+138432.36363636364695i) (num-test (/ 1234 1234/11 -1.0+1.0i) -5.50000000000000-5.50000000000000i) (num-test (= 1234 1234/11 -1.0+1.0i) #f) (num-test (+ 1234 1234/11 0.0+1.0i) 1346.18181818181824+1.0i) (num-test (- 1234 1234/11 0.0+1.0i) 1121.81818181818176-1.0i) (num-test (* 1234 1234/11 0.0+1.0i) 0.0+138432.36363636364695i) (num-test (/ 1234 1234/11 0.0+1.0i) 0.0-11.0i) (num-test (= 1234 1234/11 0.0+1.0i) #f) (num-test (+ 1234 1.234+1.234i 1) 1236.23399999999992+1.234i) (num-test (- 1234 1.234+1.234i 1) 1231.766-1.234i) (num-test (* 1234 1.234+1.234i 1) 1522.756+1522.756i) (num-test (/ 1234 1.234+1.234i 1) 500.0-500.0i) (num-test (= 1234 1.234+1.234i 1) #f) (num-test (+ 1234 1.234+1.234i 1.0) 1236.23399999999992+1.234i) (num-test (- 1234 1.234+1.234i 1.0) 1231.766-1.234i) (num-test (* 1234 1.234+1.234i 1.0) 1522.756+1522.756i) (num-test (/ 1234 1.234+1.234i 1.0) 500.0-500.0i) (num-test (= 1234 1.234+1.234i 1.0) #f) (num-test (+ 1234 1.234+1.234i 1/1) 1236.23399999999992+1.234i) (num-test (- 1234 1.234+1.234i 1/1) 1231.766-1.234i) (num-test (* 1234 1.234+1.234i 1/1) 1522.756+1522.756i) (num-test (/ 1234 1.234+1.234i 1/1) 500.0-500.0i) (num-test (= 1234 1.234+1.234i 1/1) #f) (num-test (+ 1234 1.234+1.234i 1.0+1.0i) 1236.23399999999992+2.234i) (num-test (- 1234 1.234+1.234i 1.0+1.0i) 1231.766-2.234i) (num-test (* 1234 1.234+1.234i 1.0+1.0i) 0.0+3045.51200000000017i) (num-test (/ 1234 1.234+1.234i 1.0+1.0i) 0.0-500.0i) (num-test (= 1234 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 1234 1.234+1.234i 0) 1235.23399999999992+1.234i) (num-test (- 1234 1.234+1.234i 0) 1232.766-1.234i) (num-test (* 1234 1.234+1.234i 0) 0.0) (num-test (+ 1234 1.234+1.234i 0.0) 1235.23399999999992+1.234i) (num-test (- 1234 1.234+1.234i 0.0) 1232.766-1.234i) (num-test (* 1234 1.234+1.234i 0.0) 0.0) (num-test (+ 1234 1.234+1.234i 1234) 2469.23399999999992+1.234i) (num-test (- 1234 1.234+1.234i 1234) -1.23399999999992-1.234i) (num-test (* 1234 1.234+1.234i 1234) 1879080.90400000009686+1879080.90400000009686i) (num-test (/ 1234 1.234+1.234i 1234) 0.40518638573744-0.40518638573744i) (num-test (= 1234 1.234+1.234i 1234) #f) (num-test (+ 1234 1.234+1.234i 123.4) 1358.63400000000001+1.234i) (num-test (- 1234 1.234+1.234i 123.4) 1109.36599999999999-1.234i) (num-test (* 1234 1.234+1.234i 123.4) 187908.09040000001551+187908.09040000001551i) (num-test (/ 1234 1.234+1.234i 123.4) 4.05186385737439-4.05186385737439i) (num-test (= 1234 1.234+1.234i 123.4) #f) (num-test (+ 1234 1.234+1.234i 1234/11) 1347.41581818181817+1.234i) (num-test (- 1234 1.234+1.234i 1234/11) 1120.58418181818183-1.234i) (num-test (* 1234 1.234+1.234i 1234/11) 170825.53672727273079+170825.53672727273079i) (num-test (/ 1234 1.234+1.234i 1234/11) 4.45705024311183-4.45705024311183i) (num-test (= 1234 1.234+1.234i 1234/11) #f) (num-test (+ 1234 1.234+1.234i 1.234+1.234i) 1236.46799999999985+2.468i) (num-test (- 1234 1.234+1.234i 1.234+1.234i) 1231.53200000000015-2.468i) (num-test (* 1234 1.234+1.234i 1.234+1.234i) 0.0+3758.16180800000029i) (num-test (/ 1234 1.234+1.234i 1.234+1.234i) 0.0-405.18638573743925i) (num-test (= 1234 1.234+1.234i 1.234+1.234i) #f) (num-test (+ 1234 1.234+1.234i -1.0+1.0i) 1234.23399999999992+2.234i) (num-test (- 1234 1.234+1.234i -1.0+1.0i) 1233.766-2.234i) (num-test (* 1234 1.234+1.234i -1.0+1.0i) -3045.51200000000017) (num-test (/ 1234 1.234+1.234i -1.0+1.0i) -500.0) (num-test (= 1234 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 1234 1.234+1.234i 0.0+1.0i) 1235.23399999999992+2.234i) (num-test (- 1234 1.234+1.234i 0.0+1.0i) 1232.766-2.234i) (num-test (* 1234 1.234+1.234i 0.0+1.0i) -1522.756+1522.756i) (num-test (/ 1234 1.234+1.234i 0.0+1.0i) -500.0-500.0i) (num-test (= 1234 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 1234 -1.0+1.0i 1) 1234.0+1.0i) (num-test (- 1234 -1.0+1.0i 1) 1234.0-1.0i) (num-test (* 1234 -1.0+1.0i 1) -1234.0+1234.0i) (num-test (/ 1234 -1.0+1.0i 1) -617.0-617.0i) (num-test (= 1234 -1.0+1.0i 1) #f) (num-test (+ 1234 -1.0+1.0i 1.0) 1234.0+1.0i) (num-test (- 1234 -1.0+1.0i 1.0) 1234.0-1.0i) (num-test (* 1234 -1.0+1.0i 1.0) -1234.0+1234.0i) (num-test (/ 1234 -1.0+1.0i 1.0) -617.0-617.0i) (num-test (= 1234 -1.0+1.0i 1.0) #f) (num-test (+ 1234 -1.0+1.0i 1/1) 1234.0+1.0i) (num-test (- 1234 -1.0+1.0i 1/1) 1234.0-1.0i) (num-test (* 1234 -1.0+1.0i 1/1) -1234.0+1234.0i) (num-test (/ 1234 -1.0+1.0i 1/1) -617.0-617.0i) (num-test (= 1234 -1.0+1.0i 1/1) #f) (num-test (+ 1234 -1.0+1.0i 1.0+1.0i) 1234.0+2.0i) (num-test (- 1234 -1.0+1.0i 1.0+1.0i) 1234.0-2.0i) (num-test (* 1234 -1.0+1.0i 1.0+1.0i) -2468.0) (num-test (/ 1234 -1.0+1.0i 1.0+1.0i) -617.0) (num-test (= 1234 -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1234 -1.0+1.0i 0) 1233.0+1.0i) (num-test (- 1234 -1.0+1.0i 0) 1235.0-1.0i) (num-test (* 1234 -1.0+1.0i 0) -0.0) (num-test (+ 1234 -1.0+1.0i 0.0) 1233.0+1.0i) (num-test (- 1234 -1.0+1.0i 0.0) 1235.0-1.0i) (num-test (* 1234 -1.0+1.0i 0.0) -0.0) (num-test (+ 1234 -1.0+1.0i 1234) 2467.0+1.0i) (num-test (- 1234 -1.0+1.0i 1234) 1.0-1.0i) (num-test (* 1234 -1.0+1.0i 1234) -1522756.0+1522756.0i) (num-test (/ 1234 -1.0+1.0i 1234) -0.5-0.5i) (num-test (= 1234 -1.0+1.0i 1234) #f) (num-test (+ 1234 -1.0+1.0i 123.4) 1356.4+1.0i) (num-test (- 1234 -1.0+1.0i 123.4) 1111.59999999999991-1.0i) (num-test (* 1234 -1.0+1.0i 123.4) -152275.60000000000582+152275.60000000000582i) (num-test (/ 1234 -1.0+1.0i 123.4) -5.0-5.0i) (num-test (= 1234 -1.0+1.0i 123.4) #f) (num-test (+ 1234 -1.0+1.0i 1234/11) 1345.18181818181824+1.0i) (num-test (- 1234 -1.0+1.0i 1234/11) 1122.81818181818176-1.0i) (num-test (* 1234 -1.0+1.0i 1234/11) -138432.36363636364695+138432.36363636364695i) (num-test (/ 1234 -1.0+1.0i 1234/11) -5.50000000000000-5.50000000000000i) (num-test (= 1234 -1.0+1.0i 1234/11) #f) (num-test (+ 1234 -1.0+1.0i 1.234+1.234i) 1234.23399999999992+2.234i) (num-test (- 1234 -1.0+1.0i 1.234+1.234i) 1233.766-2.234i) (num-test (* 1234 -1.0+1.0i 1.234+1.234i) -3045.51200000000017) (num-test (/ 1234 -1.0+1.0i 1.234+1.234i) -500.0) (num-test (= 1234 -1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1234 -1.0+1.0i -1.0+1.0i) 1232.0+2.0i) (num-test (- 1234 -1.0+1.0i -1.0+1.0i) 1236.0-2.0i) (num-test (* 1234 -1.0+1.0i -1.0+1.0i) 0.0-2468.0i) (num-test (/ 1234 -1.0+1.0i -1.0+1.0i) -0.0+617.0i) (num-test (= 1234 -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1234 -1.0+1.0i 0.0+1.0i) 1233.0+2.0i) (num-test (- 1234 -1.0+1.0i 0.0+1.0i) 1235.0-2.0i) (num-test (* 1234 -1.0+1.0i 0.0+1.0i) -1234.0-1234.0i) (num-test (/ 1234 -1.0+1.0i 0.0+1.0i) -617.0+617.0i) (num-test (= 1234 -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1234 0.0+1.0i 1) 1235.0+1.0i) (num-test (- 1234 0.0+1.0i 1) 1233.0-1.0i) (num-test (* 1234 0.0+1.0i 1) 0.0+1234.0i) (num-test (/ 1234 0.0+1.0i 1) 0.0-1234.0i) (num-test (= 1234 0.0+1.0i 1) #f) (num-test (+ 1234 0.0+1.0i 1.0) 1235.0+1.0i) (num-test (- 1234 0.0+1.0i 1.0) 1233.0-1.0i) (num-test (* 1234 0.0+1.0i 1.0) 0.0+1234.0i) (num-test (/ 1234 0.0+1.0i 1.0) 0.0-1234.0i) (num-test (= 1234 0.0+1.0i 1.0) #f) (num-test (+ 1234 0.0+1.0i 1/1) 1235.0+1.0i) (num-test (- 1234 0.0+1.0i 1/1) 1233.0-1.0i) (num-test (* 1234 0.0+1.0i 1/1) 0.0+1234.0i) (num-test (/ 1234 0.0+1.0i 1/1) 0.0-1234.0i) (num-test (= 1234 0.0+1.0i 1/1) #f) (num-test (+ 1234 0.0+1.0i 1.0+1.0i) 1235.0+2.0i) (num-test (- 1234 0.0+1.0i 1.0+1.0i) 1233.0-2.0i) (num-test (* 1234 0.0+1.0i 1.0+1.0i) -1234.0+1234.0i) (num-test (/ 1234 0.0+1.0i 1.0+1.0i) -617.0-617.0i) (num-test (= 1234 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 1234 0.0+1.0i 0) 1234.0+1.0i) (num-test (- 1234 0.0+1.0i 0) 1234.0-1.0i) (num-test (* 1234 0.0+1.0i 0) 0.0) (num-test (+ 1234 0.0+1.0i 0.0) 1234.0+1.0i) (num-test (- 1234 0.0+1.0i 0.0) 1234.0-1.0i) (num-test (* 1234 0.0+1.0i 0.0) 0.0) (num-test (+ 1234 0.0+1.0i 1234) 2468.0+1.0i) (num-test (- 1234 0.0+1.0i 1234) 0.0-1.0i) (num-test (* 1234 0.0+1.0i 1234) 0.0+1522756.0i) (num-test (/ 1234 0.0+1.0i 1234) 0.0-1.0i) (num-test (= 1234 0.0+1.0i 1234) #f) (num-test (+ 1234 0.0+1.0i 123.4) 1357.4+1.0i) (num-test (- 1234 0.0+1.0i 123.4) 1110.59999999999991-1.0i) (num-test (* 1234 0.0+1.0i 123.4) 0.0+152275.60000000000582i) (num-test (/ 1234 0.0+1.0i 123.4) 0.0-10.0i) (num-test (= 1234 0.0+1.0i 123.4) #f) (num-test (+ 1234 0.0+1.0i 1234/11) 1346.18181818181824+1.0i) (num-test (- 1234 0.0+1.0i 1234/11) 1121.81818181818176-1.0i) (num-test (* 1234 0.0+1.0i 1234/11) 0.0+138432.36363636364695i) (num-test (/ 1234 0.0+1.0i 1234/11) 0.0-11.0i) (num-test (= 1234 0.0+1.0i 1234/11) #f) (num-test (+ 1234 0.0+1.0i 1.234+1.234i) 1235.23399999999992+2.234i) (num-test (- 1234 0.0+1.0i 1.234+1.234i) 1232.766-2.234i) (num-test (* 1234 0.0+1.0i 1.234+1.234i) -1522.756+1522.756i) (num-test (/ 1234 0.0+1.0i 1.234+1.234i) -500.0-500.0i) (num-test (= 1234 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 1234 0.0+1.0i -1.0+1.0i) 1233.0+2.0i) (num-test (- 1234 0.0+1.0i -1.0+1.0i) 1235.0-2.0i) (num-test (* 1234 0.0+1.0i -1.0+1.0i) -1234.0-1234.0i) (num-test (/ 1234 0.0+1.0i -1.0+1.0i) -617.0+617.0i) (num-test (= 1234 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 1234 0.0+1.0i 0.0+1.0i) 1234.0+2.0i) (num-test (- 1234 0.0+1.0i 0.0+1.0i) 1234.0-2.0i) (num-test (* 1234 0.0+1.0i 0.0+1.0i) -1234.0) (num-test (/ 1234 0.0+1.0i 0.0+1.0i) -1234.0) (num-test (= 1234 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 123.4 1 1) 125.4) (num-test (- 123.4 1 1) 121.4) (num-test (* 123.4 1 1) 123.4) (num-test (/ 123.4 1 1) 123.4) (num-test (= 123.4 1 1) #f) (num-test (< 123.4 1 1) #f) (num-test (<= 123.4 1 1) #f) (num-test (> 123.4 1 1) #f) (num-test (>= 123.4 1 1) #t) (num-test (+ 123.4 1 1.0) 125.4) (num-test (- 123.4 1 1.0) 121.4) (num-test (* 123.4 1 1.0) 123.4) (num-test (/ 123.4 1 1.0) 123.4) (num-test (= 123.4 1 1.0) #f) (num-test (< 123.4 1 1.0) #f) (num-test (<= 123.4 1 1.0) #f) (num-test (> 123.4 1 1.0) #f) (num-test (>= 123.4 1 1.0) #t) (num-test (+ 123.4 1 1/1) 125.4) (num-test (- 123.4 1 1/1) 121.4) (num-test (* 123.4 1 1/1) 123.4) (num-test (/ 123.4 1 1/1) 123.4) (num-test (= 123.4 1 1/1) #f) (num-test (< 123.4 1 1/1) #f) (num-test (<= 123.4 1 1/1) #f) (num-test (> 123.4 1 1/1) #f) (num-test (>= 123.4 1 1/1) #t) (num-test (+ 123.4 1 1.0+1.0i) 125.4+1.0i) (num-test (- 123.4 1 1.0+1.0i) 121.4-1.0i) (num-test (* 123.4 1 1.0+1.0i) 123.4+123.4i) (num-test (/ 123.4 1 1.0+1.0i) 61.7-61.7i) (num-test (= 123.4 1 1.0+1.0i) #f) (num-test (+ 123.4 1 0) 124.4) (num-test (- 123.4 1 0) 122.4) (num-test (* 123.4 1 0) 0.0) (num-test (+ 123.4 1 0.0) 124.4) (num-test (- 123.4 1 0.0) 122.4) (num-test (* 123.4 1 0.0) 0.0) (num-test (+ 123.4 1 1234) 1358.4) (num-test (- 123.4 1 1234) -1111.59999999999991) (num-test (* 123.4 1 1234) 152275.60000000000582) (num-test (/ 123.4 1 1234) 0.1) (num-test (= 123.4 1 1234) #f) (num-test (< 123.4 1 1234) #f) (num-test (<= 123.4 1 1234) #f) (num-test (> 123.4 1 1234) #f) (num-test (>= 123.4 1 1234) #f) (num-test (+ 123.4 1 123.4) 247.8) (num-test (- 123.4 1 123.4) -1.0) (num-test (* 123.4 1 123.4) 15227.56000000000131) (num-test (/ 123.4 1 123.4) 1.0) (num-test (= 123.4 1 123.4) #f) (num-test (< 123.4 1 123.4) #f) (num-test (<= 123.4 1 123.4) #f) (num-test (> 123.4 1 123.4) #f) (num-test (>= 123.4 1 123.4) #f) (num-test (+ 123.4 1 1234/11) 236.58181818181819) (num-test (- 123.4 1 1234/11) 10.21818181818182) (num-test (* 123.4 1 1234/11) 13843.23636363636433) (num-test (/ 123.4 1 1234/11) 1.10000000000000) (num-test (= 123.4 1 1234/11) #f) (num-test (< 123.4 1 1234/11) #f) (num-test (<= 123.4 1 1234/11) #f) (num-test (> 123.4 1 1234/11) #f) (num-test (>= 123.4 1 1234/11) #f) (num-test (+ 123.4 1 1.234+1.234i) 125.634+1.234i) (num-test (- 123.4 1 1.234+1.234i) 121.16600000000001-1.234i) (num-test (* 123.4 1 1.234+1.234i) 152.2756+152.2756i) (num-test (/ 123.4 1 1.234+1.234i) 50.0-50.0i) (num-test (= 123.4 1 1.234+1.234i) #f) (num-test (+ 123.4 1 -1.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 -1.0+1.0i) -123.4+123.4i) (num-test (/ 123.4 1 -1.0+1.0i) -61.7-61.7i) (num-test (= 123.4 1 -1.0+1.0i) #f) (num-test (+ 123.4 1 0.0+1.0i) 124.4+1.0i) (num-test (- 123.4 1 0.0+1.0i) 122.4-1.0i) (num-test (* 123.4 1 0.0+1.0i) 0.0+123.4i) (num-test (/ 123.4 1 0.0+1.0i) 0.0-123.4i) (num-test (= 123.4 1 0.0+1.0i) #f) (num-test (+ 123.4 1.0 1) 125.4) (num-test (- 123.4 1.0 1) 121.4) (num-test (* 123.4 1.0 1) 123.4) (num-test (/ 123.4 1.0 1) 123.4) (num-test (= 123.4 1.0 1) #f) (num-test (< 123.4 1.0 1) #f) (num-test (<= 123.4 1.0 1) #f) (num-test (> 123.4 1.0 1) #f) (num-test (>= 123.4 1.0 1) #t) (num-test (+ 123.4 1.0 1.0) 125.4) (num-test (- 123.4 1.0 1.0) 121.4) (num-test (* 123.4 1.0 1.0) 123.4) (num-test (/ 123.4 1.0 1.0) 123.4) (num-test (= 123.4 1.0 1.0) #f) (num-test (< 123.4 1.0 1.0) #f) (num-test (<= 123.4 1.0 1.0) #f) (num-test (> 123.4 1.0 1.0) #f) (num-test (>= 123.4 1.0 1.0) #t) (num-test (+ 123.4 1.0 1/1) 125.4) (num-test (- 123.4 1.0 1/1) 121.4) (num-test (* 123.4 1.0 1/1) 123.4) (num-test (/ 123.4 1.0 1/1) 123.4) (num-test (= 123.4 1.0 1/1) #f) (num-test (< 123.4 1.0 1/1) #f) (num-test (<= 123.4 1.0 1/1) #f) (num-test (> 123.4 1.0 1/1) #f) (num-test (>= 123.4 1.0 1/1) #t) (num-test (+ 123.4 1.0 1.0+1.0i) 125.4+1.0i) (num-test (- 123.4 1.0 1.0+1.0i) 121.4-1.0i) (num-test (* 123.4 1.0 1.0+1.0i) 123.4+123.4i) (num-test (/ 123.4 1.0 1.0+1.0i) 61.7-61.7i) (num-test (= 123.4 1.0 1.0+1.0i) #f) (num-test (+ 123.4 1.0 0) 124.4) (num-test (- 123.4 1.0 0) 122.4) (num-test (* 123.4 1.0 0) 0.0) (num-test (+ 123.4 1.0 0.0) 124.4) (num-test (- 123.4 1.0 0.0) 122.4) (num-test (* 123.4 1.0 0.0) 0.0) (num-test (+ 123.4 1.0 1234) 1358.4) (num-test (- 123.4 1.0 1234) -1111.59999999999991) (num-test (* 123.4 1.0 1234) 152275.60000000000582) (num-test (/ 123.4 1.0 1234) 0.1) (num-test (= 123.4 1.0 1234) #f) (num-test (< 123.4 1.0 1234) #f) (num-test (<= 123.4 1.0 1234) #f) (num-test (> 123.4 1.0 1234) #f) (num-test (>= 123.4 1.0 1234) #f) (num-test (+ 123.4 1.0 123.4) 247.8) (num-test (- 123.4 1.0 123.4) -1.0) (num-test (* 123.4 1.0 123.4) 15227.56000000000131) (num-test (/ 123.4 1.0 123.4) 1.0) (num-test (= 123.4 1.0 123.4) #f) (num-test (< 123.4 1.0 123.4) #f) (num-test (<= 123.4 1.0 123.4) #f) (num-test (> 123.4 1.0 123.4) #f) (num-test (>= 123.4 1.0 123.4) #f) (num-test (+ 123.4 1.0 1234/11) 236.58181818181819) (num-test (- 123.4 1.0 1234/11) 10.21818181818182) (num-test (* 123.4 1.0 1234/11) 13843.23636363636433) (num-test (/ 123.4 1.0 1234/11) 1.10000000000000) (num-test (= 123.4 1.0 1234/11) #f) (num-test (< 123.4 1.0 1234/11) #f) (num-test (<= 123.4 1.0 1234/11) #f) (num-test (> 123.4 1.0 1234/11) #f) (num-test (>= 123.4 1.0 1234/11) #f) (num-test (+ 123.4 1.0 1.234+1.234i) 125.634+1.234i) (num-test (- 123.4 1.0 1.234+1.234i) 121.16600000000001-1.234i) (num-test (* 123.4 1.0 1.234+1.234i) 152.2756+152.2756i) (num-test (/ 123.4 1.0 1.234+1.234i) 50.0-50.0i) (num-test (= 123.4 1.0 1.234+1.234i) #f) (num-test (+ 123.4 1.0 -1.0+1.0i) 123.4+1.0i) (num-test (- 123.4 1.0 -1.0+1.0i) 123.4-1.0i) (num-test (* 123.4 1.0 -1.0+1.0i) -123.4+123.4i) (num-test (/ 123.4 1.0 -1.0+1.0i) -61.7-61.7i) (num-test (= 123.4 1.0 -1.0+1.0i) #f) (num-test (+ 123.4 1.0 0.0+1.0i) 124.4+1.0i) (num-test (- 123.4 1.0 0.0+1.0i) 122.4-1.0i) (num-test (* 123.4 1.0 0.0+1.0i) 0.0+123.4i) (num-test (/ 123.4 1.0 0.0+1.0i) 0.0-123.4i) (num-test (= 123.4 1.0 0.0+1.0i) #f) (num-test (+ 123.4 1/1 1) 125.4) (num-test (- 123.4 1/1 1) 121.4) (num-test (* 123.4 1/1 1) 123.4) (num-test (/ 123.4 1/1 1) 123.4) (num-test (= 123.4 1/1 1) #f) (num-test (< 123.4 1/1 1) #f) (num-test (<= 123.4 1/1 1) #f) (num-test (> 123.4 1/1 1) #f) (num-test (>= 123.4 1/1 1) #t) (num-test (+ 123.4 1/1 1.0) 125.4) (num-test (- 123.4 1/1 1.0) 121.4) (num-test (* 123.4 1/1 1.0) 123.4) (num-test (/ 123.4 1/1 1.0) 123.4) (num-test (= 123.4 1/1 1.0) #f) (num-test (< 123.4 1/1 1.0) #f) (num-test (<= 123.4 1/1 1.0) #f) (num-test (> 123.4 1/1 1.0) #f) (num-test (>= 123.4 1/1 1.0) #t) (num-test (+ 123.4 1/1 1/1) 125.4) (num-test (- 123.4 1/1 1/1) 121.4) (num-test (* 123.4 1/1 1/1) 123.4) (num-test (/ 123.4 1/1 1/1) 123.4) (num-test (= 123.4 1/1 1/1) #f) (num-test (< 123.4 1/1 1/1) #f) (num-test (<= 123.4 1/1 1/1) #f) (num-test (> 123.4 1/1 1/1) #f) (num-test (>= 123.4 1/1 1/1) #t) (num-test (+ 123.4 1/1 1.0+1.0i) 125.4+1.0i) (num-test (- 123.4 1/1 1.0+1.0i) 121.4-1.0i) (num-test (* 123.4 1/1 1.0+1.0i) 123.4+123.4i) (num-test (/ 123.4 1/1 1.0+1.0i) 61.7-61.7i) (num-test (= 123.4 1/1 1.0+1.0i) #f) (num-test (+ 123.4 1/1 0) 124.4) (num-test (- 123.4 1/1 0) 122.4) (num-test (* 123.4 1/1 0) 0.0) (num-test (+ 123.4 1/1 0.0) 124.4) (num-test (- 123.4 1/1 0.0) 122.4) (num-test (* 123.4 1/1 0.0) 0.0) (num-test (+ 123.4 1/1 1234) 1358.4) (num-test (- 123.4 1/1 1234) -1111.59999999999991) (num-test (* 123.4 1/1 1234) 152275.60000000000582) (num-test (/ 123.4 1/1 1234) 0.1) (num-test (= 123.4 1/1 1234) #f) (num-test (< 123.4 1/1 1234) #f) (num-test (<= 123.4 1/1 1234) #f) (num-test (> 123.4 1/1 1234) #f) (num-test (>= 123.4 1/1 1234) #f) (num-test (+ 123.4 1/1 123.4) 247.8) (num-test (- 123.4 1/1 123.4) -1.0) (num-test (* 123.4 1/1 123.4) 15227.56000000000131) (num-test (/ 123.4 1/1 123.4) 1.0) (num-test (= 123.4 1/1 123.4) #f) (num-test (< 123.4 1/1 123.4) #f) (num-test (<= 123.4 1/1 123.4) #f) (num-test (> 123.4 1/1 123.4) #f) (num-test (>= 123.4 1/1 123.4) #f) (num-test (+ 123.4 1/1 1234/11) 236.58181818181819) (num-test (- 123.4 1/1 1234/11) 10.21818181818182) (num-test (* 123.4 1/1 1234/11) 13843.23636363636433) (num-test (/ 123.4 1/1 1234/11) 1.10000000000000) (num-test (= 123.4 1/1 1234/11) #f) (num-test (< 123.4 1/1 1234/11) #f) (num-test (<= 123.4 1/1 1234/11) #f) (num-test (> 123.4 1/1 1234/11) #f) (num-test (>= 123.4 1/1 1234/11) #f) (num-test (+ 123.4 1/1 1.234+1.234i) 125.634+1.234i) (num-test (- 123.4 1/1 1.234+1.234i) 121.16600000000001-1.234i) (num-test (* 123.4 1/1 1.234+1.234i) 152.2756+152.2756i) (num-test (/ 123.4 1/1 1.234+1.234i) 50.0-50.0i) (num-test (= 123.4 1/1 1.234+1.234i) #f) (num-test (+ 123.4 1/1 -1.0+1.0i) 123.4+1.0i) (num-test (- 123.4 1/1 -1.0+1.0i) 123.4-1.0i) (num-test (* 123.4 1/1 -1.0+1.0i) -123.4+123.4i) (num-test (/ 123.4 1/1 -1.0+1.0i) -61.7-61.7i) (num-test (= 123.4 1/1 -1.0+1.0i) #f) (num-test (+ 123.4 1/1 0.0+1.0i) 124.4+1.0i) (num-test (- 123.4 1/1 0.0+1.0i) 122.4-1.0i) (num-test (* 123.4 1/1 0.0+1.0i) 0.0+123.4i) (num-test (/ 123.4 1/1 0.0+1.0i) 0.0-123.4i) (num-test (= 123.4 1/1 0.0+1.0i) #f) (num-test (+ 123.4 1.0+1.0i 1) 125.4+1.0i) (num-test (- 123.4 1.0+1.0i 1) 121.4-1.0i) (num-test (* 123.4 1.0+1.0i 1) 123.4+123.4i) (num-test (/ 123.4 1.0+1.0i 1) 61.7-61.7i) (num-test (= 123.4 1.0+1.0i 1) #f) (num-test (+ 123.4 1.0+1.0i 1.0) 125.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) 123.4+123.4i) (num-test (/ 123.4 1.0+1.0i 1.0) 61.7-61.7i) (num-test (= 123.4 1.0+1.0i 1.0) #f) (num-test (+ 123.4 1.0+1.0i 1/1) 125.4+1.0i) (num-test (- 123.4 1.0+1.0i 1/1) 121.4-1.0i) (num-test (* 123.4 1.0+1.0i 1/1) 123.4+123.4i) (num-test (/ 123.4 1.0+1.0i 1/1) 61.7-61.7i) (num-test (= 123.4 1.0+1.0i 1/1) #f) (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.0+1.0i) 121.4-2.0i) (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.0+1.0i) 0.0-61.7i) (num-test (= 123.4 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 123.4 1.0+1.0i 0) 124.4+1.0i) (num-test (- 123.4 1.0+1.0i 0) 122.4-1.0i) (num-test (* 123.4 1.0+1.0i 0) 0.0) (num-test (+ 123.4 1.0+1.0i 0.0) 124.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) 0.0) (num-test (+ 123.4 1.0+1.0i 1234) 1358.4+1.0i) (num-test (- 123.4 1.0+1.0i 1234) -1111.59999999999991-1.0i) (num-test (* 123.4 1.0+1.0i 1234) 152275.60000000000582+152275.60000000000582i) (num-test (/ 123.4 1.0+1.0i 1234) 0.05000000000000-0.05000000000000i) (num-test (= 123.4 1.0+1.0i 1234) #f) (num-test (+ 123.4 1.0+1.0i 123.4) 247.8+1.0i) (num-test (- 123.4 1.0+1.0i 123.4) -1.0-1.0i) (num-test (* 123.4 1.0+1.0i 123.4) 15227.56000000000131+15227.56000000000131i) (num-test (/ 123.4 1.0+1.0i 123.4) 0.5-0.5i) (num-test (= 123.4 1.0+1.0i 123.4) #f) (num-test (+ 123.4 1.0+1.0i 1234/11) 236.58181818181819+1.0i) (num-test (- 123.4 1.0+1.0i 1234/11) 10.21818181818182-1.0i) (num-test (* 123.4 1.0+1.0i 1234/11) 13843.23636363636433+13843.23636363636433i) (num-test (/ 123.4 1.0+1.0i 1234/11) 0.55000000000000-0.55000000000000i) (num-test (= 123.4 1.0+1.0i 1234/11) #f) (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.234+1.234i) 121.16600000000001-2.234i) (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.234+1.234i) 0.0-50.0i) (num-test (= 123.4 1.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 123.4-2.0i) (num-test (* 123.4 1.0+1.0i -1.0+1.0i) -246.8) (num-test (/ 123.4 1.0+1.0i -1.0+1.0i) -61.7) (num-test (= 123.4 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 123.4 1.0+1.0i 0.0+1.0i) 124.4+2.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 0.0+1.0i) -123.4+123.4i) (num-test (/ 123.4 1.0+1.0i 0.0+1.0i) -61.7-61.7i) (num-test (= 123.4 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 123.4 0 1) 124.4) (num-test (- 123.4 0 1) 122.4) (num-test (* 123.4 0 1) 0.0) (num-test (+ 123.4 0 1.0) 124.4) (num-test (- 123.4 0 1.0) 122.4) (num-test (* 123.4 0 1.0) 0.0) (num-test (+ 123.4 0 1/1) 124.4) (num-test (- 123.4 0 1/1) 122.4) (num-test (* 123.4 0 1/1) 0.0) (num-test (+ 123.4 0 1.0+1.0i) 124.4+1.0i) (num-test (- 123.4 0 1.0+1.0i) 122.4-1.0i) (num-test (* 123.4 0 1.0+1.0i) 0.0) (num-test (+ 123.4 0 0) 123.4) (num-test (- 123.4 0 0) 123.4) (num-test (* 123.4 0 0) 0.0) (num-test (+ 123.4 0 0.0) 123.4) (num-test (- 123.4 0 0.0) 123.4) (num-test (* 123.4 0 0.0) 0.0) (num-test (+ 123.4 0 1234) 1357.4) (num-test (- 123.4 0 1234) -1110.59999999999991) (num-test (* 123.4 0 1234) 0.0) (num-test (+ 123.4 0 123.4) 246.8) (num-test (- 123.4 0 123.4) 0.0) (num-test (* 123.4 0 123.4) 0.0) (num-test (+ 123.4 0 1234/11) 235.58181818181819) (num-test (- 123.4 0 1234/11) 11.21818181818182) (num-test (* 123.4 0 1234/11) 0.0) (num-test (+ 123.4 0 1.234+1.234i) 124.634+1.234i) (num-test (- 123.4 0 1.234+1.234i) 122.16600000000001-1.234i) (num-test (* 123.4 0 1.234+1.234i) 0.0) (num-test (+ 123.4 0 -1.0+1.0i) 122.4+1.0i) (num-test (- 123.4 0 -1.0+1.0i) 124.4-1.0i) (num-test (* 123.4 0 -1.0+1.0i) -0.0) (num-test (+ 123.4 0 0.0+1.0i) 123.4+1.0i) (num-test (- 123.4 0 0.0+1.0i) 123.4-1.0i) (num-test (* 123.4 0 0.0+1.0i) 0.0) (num-test (+ 123.4 0.0 1) 124.4) (num-test (- 123.4 0.0 1) 122.4) (num-test (* 123.4 0.0 1) 0.0) (num-test (+ 123.4 0.0 1.0) 124.4) (num-test (- 123.4 0.0 1.0) 122.4) (num-test (* 123.4 0.0 1.0) 0.0) (num-test (+ 123.4 0.0 1/1) 124.4) (num-test (- 123.4 0.0 1/1) 122.4) (num-test (* 123.4 0.0 1/1) 0.0) (num-test (+ 123.4 0.0 1.0+1.0i) 124.4+1.0i) (num-test (- 123.4 0.0 1.0+1.0i) 122.4-1.0i) (num-test (* 123.4 0.0 1.0+1.0i) 0.0) (num-test (+ 123.4 0.0 0) 123.4) (num-test (- 123.4 0.0 0) 123.4) (num-test (* 123.4 0.0 0) 0.0) (num-test (+ 123.4 0.0 0.0) 123.4) (num-test (- 123.4 0.0 0.0) 123.4) (num-test (* 123.4 0.0 0.0) 0.0) (num-test (+ 123.4 0.0 1234) 1357.4) (num-test (- 123.4 0.0 1234) -1110.59999999999991) (num-test (* 123.4 0.0 1234) 0.0) (num-test (+ 123.4 0.0 123.4) 246.8) (num-test (- 123.4 0.0 123.4) 0.0) (num-test (* 123.4 0.0 123.4) 0.0) (num-test (+ 123.4 0.0 1234/11) 235.58181818181819) (num-test (- 123.4 0.0 1234/11) 11.21818181818182) (num-test (* 123.4 0.0 1234/11) 0.0) (num-test (+ 123.4 0.0 1.234+1.234i) 124.634+1.234i) (num-test (- 123.4 0.0 1.234+1.234i) 122.16600000000001-1.234i) (num-test (* 123.4 0.0 1.234+1.234i) 0.0) (num-test (+ 123.4 0.0 -1.0+1.0i) 122.4+1.0i) (num-test (- 123.4 0.0 -1.0+1.0i) 124.4-1.0i) (num-test (* 123.4 0.0 -1.0+1.0i) -0.0) (num-test (+ 123.4 0.0 0.0+1.0i) 123.4+1.0i) (num-test (- 123.4 0.0 0.0+1.0i) 123.4-1.0i) (num-test (* 123.4 0.0 0.0+1.0i) 0.0) (num-test (+ 123.4 1234 1) 1358.4) (num-test (- 123.4 1234 1) -1111.59999999999991) (num-test (* 123.4 1234 1) 152275.60000000000582) (num-test (/ 123.4 1234 1) 0.1) (num-test (= 123.4 1234 1) #f) (num-test (< 123.4 1234 1) #f) (num-test (<= 123.4 1234 1) #f) (num-test (> 123.4 1234 1) #f) (num-test (>= 123.4 1234 1) #f) (num-test (+ 123.4 1234 1.0) 1358.4) (num-test (- 123.4 1234 1.0) -1111.59999999999991) (num-test (* 123.4 1234 1.0) 152275.60000000000582) (num-test (/ 123.4 1234 1.0) 0.1) (num-test (= 123.4 1234 1.0) #f) (num-test (< 123.4 1234 1.0) #f) (num-test (<= 123.4 1234 1.0) #f) (num-test (> 123.4 1234 1.0) #f) (num-test (>= 123.4 1234 1.0) #f) (num-test (+ 123.4 1234 1/1) 1358.4) (num-test (- 123.4 1234 1/1) -1111.59999999999991) (num-test (* 123.4 1234 1/1) 152275.60000000000582) (num-test (/ 123.4 1234 1/1) 0.1) (num-test (= 123.4 1234 1/1) #f) (num-test (< 123.4 1234 1/1) #f) (num-test (<= 123.4 1234 1/1) #f) (num-test (> 123.4 1234 1/1) #f) (num-test (>= 123.4 1234 1/1) #f) (num-test (+ 123.4 1234 1.0+1.0i) 1358.4+1.0i) (num-test (- 123.4 1234 1.0+1.0i) -1111.59999999999991-1.0i) (num-test (* 123.4 1234 1.0+1.0i) 152275.60000000000582+152275.60000000000582i) (num-test (/ 123.4 1234 1.0+1.0i) 0.05000000000000-0.05000000000000i) (num-test (= 123.4 1234 1.0+1.0i) #f) (num-test (+ 123.4 1234 0) 1357.4) (num-test (- 123.4 1234 0) -1110.59999999999991) (num-test (* 123.4 1234 0) 0.0) (num-test (+ 123.4 1234 0.0) 1357.4) (num-test (- 123.4 1234 0.0) -1110.59999999999991) (num-test (* 123.4 1234 0.0) 0.0) (num-test (+ 123.4 1234 1234) 2591.4) (num-test (- 123.4 1234 1234) -2344.59999999999991) (num-test (* 123.4 1234 1234) 187908090.40000000596046) (num-test (/ 123.4 1234 1234) 0.00008103727715) (num-test (= 123.4 1234 1234) #f) (num-test (< 123.4 1234 1234) #f) (num-test (<= 123.4 1234 1234) #t) (num-test (> 123.4 1234 1234) #f) (num-test (>= 123.4 1234 1234) #f) (num-test (+ 123.4 1234 123.4) 1480.80000000000018) (num-test (- 123.4 1234 123.4) -1234.0) (num-test (* 123.4 1234 123.4) 18790809.04000000283122) (num-test (/ 123.4 1234 123.4) 0.00081037277147) (num-test (= 123.4 1234 123.4) #f) (num-test (< 123.4 1234 123.4) #f) (num-test (<= 123.4 1234 123.4) #f) (num-test (> 123.4 1234 123.4) #f) (num-test (>= 123.4 1234 123.4) #f) (num-test (+ 123.4 1234 1234/11) 1469.58181818181833) (num-test (- 123.4 1234 1234/11) -1222.78181818181815) (num-test (* 123.4 1234 1234/11) 17082553.67272727191448) (num-test (/ 123.4 1234 1234/11) 0.00089141004862) (num-test (= 123.4 1234 1234/11) #f) (num-test (< 123.4 1234 1234/11) #f) (num-test (<= 123.4 1234 1234/11) #f) (num-test (> 123.4 1234 1234/11) #f) (num-test (>= 123.4 1234 1234/11) #f) (num-test (+ 123.4 1234 1.234+1.234i) 1358.63400000000001+1.234i) (num-test (- 123.4 1234 1.234+1.234i) -1111.83399999999983-1.234i) (num-test (* 123.4 1234 1.234+1.234i) 187908.09040000001551+187908.09040000001551i) (num-test (/ 123.4 1234 1.234+1.234i) 0.04051863857374-0.04051863857374i) (num-test (= 123.4 1234 1.234+1.234i) #f) (num-test (+ 123.4 1234 -1.0+1.0i) 1356.4+1.0i) (num-test (- 123.4 1234 -1.0+1.0i) -1109.59999999999991-1.0i) (num-test (* 123.4 1234 -1.0+1.0i) -152275.60000000000582+152275.60000000000582i) (num-test (/ 123.4 1234 -1.0+1.0i) -0.05000000000000-0.05000000000000i) (num-test (= 123.4 1234 -1.0+1.0i) #f) (num-test (+ 123.4 1234 0.0+1.0i) 1357.4+1.0i) (num-test (- 123.4 1234 0.0+1.0i) -1110.59999999999991-1.0i) (num-test (* 123.4 1234 0.0+1.0i) 0.0+152275.60000000000582i) (num-test (/ 123.4 1234 0.0+1.0i) 0.0-0.1i) (num-test (= 123.4 1234 0.0+1.0i) #f) (num-test (+ 123.4 123.4 1) 247.8) (num-test (- 123.4 123.4 1) -1.0) (num-test (* 123.4 123.4 1) 15227.56000000000131) (num-test (/ 123.4 123.4 1) 1.0) (num-test (= 123.4 123.4 1) #f) (num-test (< 123.4 123.4 1) #f) (num-test (<= 123.4 123.4 1) #f) (num-test (> 123.4 123.4 1) #f) (num-test (>= 123.4 123.4 1) #t) (num-test (+ 123.4 123.4 1.0) 247.8) (num-test (- 123.4 123.4 1.0) -1.0) (num-test (* 123.4 123.4 1.0) 15227.56000000000131) (num-test (/ 123.4 123.4 1.0) 1.0) (num-test (= 123.4 123.4 1.0) #f) (num-test (< 123.4 123.4 1.0) #f) (num-test (<= 123.4 123.4 1.0) #f) (num-test (> 123.4 123.4 1.0) #f) (num-test (>= 123.4 123.4 1.0) #t) (num-test (+ 123.4 123.4 1/1) 247.8) (num-test (- 123.4 123.4 1/1) -1.0) (num-test (* 123.4 123.4 1/1) 15227.56000000000131) (num-test (/ 123.4 123.4 1/1) 1.0) (num-test (= 123.4 123.4 1/1) #f) (num-test (< 123.4 123.4 1/1) #f) (num-test (<= 123.4 123.4 1/1) #f) (num-test (> 123.4 123.4 1/1) #f) (num-test (>= 123.4 123.4 1/1) #t) (num-test (+ 123.4 123.4 1.0+1.0i) 247.8+1.0i) (num-test (- 123.4 123.4 1.0+1.0i) -1.0-1.0i) (num-test (* 123.4 123.4 1.0+1.0i) 15227.56000000000131+15227.56000000000131i) (num-test (/ 123.4 123.4 1.0+1.0i) 0.5-0.5i) (num-test (= 123.4 123.4 1.0+1.0i) #f) (num-test (+ 123.4 123.4 0) 246.8) (num-test (- 123.4 123.4 0) 0.0) (num-test (* 123.4 123.4 0) 0.0) (num-test (+ 123.4 123.4 0.0) 246.8) (num-test (- 123.4 123.4 0.0) 0.0) (num-test (* 123.4 123.4 0.0) 0.0) (num-test (+ 123.4 123.4 1234) 1480.79999999999995) (num-test (- 123.4 123.4 1234) -1234.0) (num-test (* 123.4 123.4 1234) 18790809.04000000283122) (num-test (/ 123.4 123.4 1234) 0.00081037277147) (num-test (= 123.4 123.4 1234) #f) (num-test (< 123.4 123.4 1234) #f) (num-test (<= 123.4 123.4 1234) #t) (num-test (> 123.4 123.4 1234) #f) (num-test (>= 123.4 123.4 1234) #f) (num-test (+ 123.4 123.4 123.4) 370.20000000000005) (num-test (- 123.4 123.4 123.4) -123.4) (num-test (* 123.4 123.4 123.4) 1879080.90400000032969) (num-test (/ 123.4 123.4 123.4) 0.00810372771475) (num-test (= 123.4 123.4 123.4) #t) (num-test (< 123.4 123.4 123.4) #f) (num-test (<= 123.4 123.4 123.4) #t) (num-test (> 123.4 123.4 123.4) #f) (num-test (>= 123.4 123.4 123.4) #t) (num-test (+ 123.4 123.4 1234/11) 358.98181818181820) (num-test (- 123.4 123.4 1234/11) -112.18181818181819) (num-test (* 123.4 123.4 1234/11) 1708255.36727272742428) (num-test (/ 123.4 123.4 1234/11) 0.00891410048622) (num-test (= 123.4 123.4 1234/11) #f) (num-test (< 123.4 123.4 1234/11) #f) (num-test (<= 123.4 123.4 1234/11) #f) (num-test (> 123.4 123.4 1234/11) #f) (num-test (>= 123.4 123.4 1234/11) #t) (num-test (+ 123.4 123.4 1.234+1.234i) 248.03400000000002+1.234i) (num-test (- 123.4 123.4 1.234+1.234i) -1.234-1.234i) (num-test (* 123.4 123.4 1.234+1.234i) 18790.80904000000010+18790.80904000000010i) (num-test (/ 123.4 123.4 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 123.4 123.4 1.234+1.234i) #f) (num-test (+ 123.4 123.4 -1.0+1.0i) 245.8+1.0i) (num-test (- 123.4 123.4 -1.0+1.0i) 1.0-1.0i) (num-test (* 123.4 123.4 -1.0+1.0i) -15227.56000000000131+15227.56000000000131i) (num-test (/ 123.4 123.4 -1.0+1.0i) -0.5-0.5i) (num-test (= 123.4 123.4 -1.0+1.0i) #f) (num-test (+ 123.4 123.4 0.0+1.0i) 246.8+1.0i) (num-test (- 123.4 123.4 0.0+1.0i) 0.0-1.0i) (num-test (* 123.4 123.4 0.0+1.0i) 0.0+15227.56000000000131i) (num-test (/ 123.4 123.4 0.0+1.0i) 0.0-1.0i) (num-test (= 123.4 123.4 0.0+1.0i) #f) (num-test (+ 123.4 1234/11 1) 236.58181818181819) (num-test (- 123.4 1234/11 1) 10.21818181818182) (num-test (* 123.4 1234/11 1) 13843.23636363636433) (num-test (/ 123.4 1234/11 1) 1.10000000000000) (num-test (= 123.4 1234/11 1) #f) (num-test (< 123.4 1234/11 1) #f) (num-test (<= 123.4 1234/11 1) #f) (num-test (> 123.4 1234/11 1) #t) (num-test (>= 123.4 1234/11 1) #t) (num-test (+ 123.4 1234/11 1.0) 236.58181818181819) (num-test (- 123.4 1234/11 1.0) 10.21818181818182) (num-test (* 123.4 1234/11 1.0) 13843.23636363636433) (num-test (/ 123.4 1234/11 1.0) 1.10000000000000) (num-test (= 123.4 1234/11 1.0) #f) (num-test (< 123.4 1234/11 1.0) #f) (num-test (<= 123.4 1234/11 1.0) #f) (num-test (> 123.4 1234/11 1.0) #t) (num-test (>= 123.4 1234/11 1.0) #t) (num-test (+ 123.4 1234/11 1/1) 236.58181818181819) (num-test (- 123.4 1234/11 1/1) 10.21818181818182) (num-test (* 123.4 1234/11 1/1) 13843.23636363636433) (num-test (/ 123.4 1234/11 1/1) 1.10000000000000) (num-test (= 123.4 1234/11 1/1) #f) (num-test (< 123.4 1234/11 1/1) #f) (num-test (<= 123.4 1234/11 1/1) #f) (num-test (> 123.4 1234/11 1/1) #t) (num-test (>= 123.4 1234/11 1/1) #t) (num-test (+ 123.4 1234/11 1.0+1.0i) 236.58181818181819+1.0i) (num-test (- 123.4 1234/11 1.0+1.0i) 10.21818181818182-1.0i) (num-test (* 123.4 1234/11 1.0+1.0i) 13843.23636363636433+13843.23636363636433i) (num-test (/ 123.4 1234/11 1.0+1.0i) 0.55000000000000-0.55000000000000i) (num-test (= 123.4 1234/11 1.0+1.0i) #f) (num-test (+ 123.4 1234/11 0) 235.58181818181819) (num-test (- 123.4 1234/11 0) 11.21818181818182) (num-test (* 123.4 1234/11 0) 0.0) (num-test (+ 123.4 1234/11 0.0) 235.58181818181819) (num-test (- 123.4 1234/11 0.0) 11.21818181818182) (num-test (* 123.4 1234/11 0.0) 0.0) (num-test (+ 123.4 1234/11 1234) 1469.58181818181811) (num-test (- 123.4 1234/11 1234) -1222.78181818181815) (num-test (* 123.4 1234/11 1234) 17082553.67272727191448) (num-test (/ 123.4 1234/11 1234) 0.00089141004862) (num-test (= 123.4 1234/11 1234) #f) (num-test (< 123.4 1234/11 1234) #f) (num-test (<= 123.4 1234/11 1234) #f) (num-test (> 123.4 1234/11 1234) #f) (num-test (>= 123.4 1234/11 1234) #f) (num-test (+ 123.4 1234/11 123.4) 358.98181818181820) (num-test (- 123.4 1234/11 123.4) -112.18181818181819) (num-test (* 123.4 1234/11 123.4) 1708255.36727272742428) (num-test (/ 123.4 1234/11 123.4) 0.00891410048622) (num-test (= 123.4 1234/11 123.4) #f) (num-test (< 123.4 1234/11 123.4) #f) (num-test (<= 123.4 1234/11 123.4) #f) (num-test (> 123.4 1234/11 123.4) #f) (num-test (>= 123.4 1234/11 123.4) #f) (num-test (+ 123.4 1234/11 1234/11) 347.76363636363635) (num-test (- 123.4 1234/11 1234/11) -100.96363636363635) (num-test (* 123.4 1234/11 1234/11) 1552959.42479338846169) (num-test (/ 123.4 1234/11 1234/11) 0.00980551053485) (num-test (= 123.4 1234/11 1234/11) #f) (num-test (< 123.4 1234/11 1234/11) #f) (num-test (<= 123.4 1234/11 1234/11) #f) (num-test (> 123.4 1234/11 1234/11) #f) (num-test (>= 123.4 1234/11 1234/11) #t) (num-test (+ 123.4 1234/11 1.234+1.234i) 236.81581818181820+1.234i) (num-test (- 123.4 1234/11 1.234+1.234i) 9.98418181818182-1.234i) (num-test (* 123.4 1234/11 1.234+1.234i) 17082.55367272727381+17082.55367272727381i) (num-test (/ 123.4 1234/11 1.234+1.234i) 0.44570502431118-0.44570502431118i) (num-test (= 123.4 1234/11 1.234+1.234i) #f) (num-test (+ 123.4 1234/11 -1.0+1.0i) 234.58181818181819+1.0i) (num-test (- 123.4 1234/11 -1.0+1.0i) 12.21818181818182-1.0i) (num-test (* 123.4 1234/11 -1.0+1.0i) -13843.23636363636433+13843.23636363636433i) (num-test (/ 123.4 1234/11 -1.0+1.0i) -0.55000000000000-0.55000000000000i) (num-test (= 123.4 1234/11 -1.0+1.0i) #f) (num-test (+ 123.4 1234/11 0.0+1.0i) 235.58181818181819+1.0i) (num-test (- 123.4 1234/11 0.0+1.0i) 11.21818181818182-1.0i) (num-test (* 123.4 1234/11 0.0+1.0i) 0.0+13843.23636363636433i) (num-test (/ 123.4 1234/11 0.0+1.0i) 0.0-1.10000000000000i) (num-test (= 123.4 1234/11 0.0+1.0i) #f) (num-test (+ 123.4 1.234+1.234i 1) 125.634+1.234i) (num-test (- 123.4 1.234+1.234i 1) 121.16600000000001-1.234i) (num-test (* 123.4 1.234+1.234i 1) 152.2756+152.2756i) (num-test (/ 123.4 1.234+1.234i 1) 50.0-50.0i) (num-test (= 123.4 1.234+1.234i 1) #f) (num-test (+ 123.4 1.234+1.234i 1.0) 125.634+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) 152.2756+152.2756i) (num-test (/ 123.4 1.234+1.234i 1.0) 50.0-50.0i) (num-test (= 123.4 1.234+1.234i 1.0) #f) (num-test (+ 123.4 1.234+1.234i 1/1) 125.634+1.234i) (num-test (- 123.4 1.234+1.234i 1/1) 121.16600000000001-1.234i) (num-test (* 123.4 1.234+1.234i 1/1) 152.2756+152.2756i) (num-test (/ 123.4 1.234+1.234i 1/1) 50.0-50.0i) (num-test (= 123.4 1.234+1.234i 1/1) #f) (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.0+1.0i) 121.16600000000001-2.234i) (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.0+1.0i) 0.0-50.0i) (num-test (= 123.4 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 123.4 1.234+1.234i 0) 124.634+1.234i) (num-test (- 123.4 1.234+1.234i 0) 122.16600000000001-1.234i) (num-test (* 123.4 1.234+1.234i 0) 0.0) (num-test (+ 123.4 1.234+1.234i 0.0) 124.634+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) 0.0) (num-test (+ 123.4 1.234+1.234i 1234) 1358.63400000000001+1.234i) (num-test (- 123.4 1.234+1.234i 1234) -1111.83400000000006-1.234i) (num-test (* 123.4 1.234+1.234i 1234) 187908.09039999998640+187908.09039999998640i) (num-test (/ 123.4 1.234+1.234i 1234) 0.04051863857374-0.04051863857374i) (num-test (= 123.4 1.234+1.234i 1234) #f) (num-test (+ 123.4 1.234+1.234i 123.4) 248.03399999999999+1.234i) (num-test (- 123.4 1.234+1.234i 123.4) -1.23399999999999-1.234i) (num-test (* 123.4 1.234+1.234i 123.4) 18790.80904000000010+18790.80904000000010i) (num-test (/ 123.4 1.234+1.234i 123.4) 0.40518638573744-0.40518638573744i) (num-test (= 123.4 1.234+1.234i 123.4) #f) (num-test (+ 123.4 1.234+1.234i 1234/11) 236.81581818181817+1.234i) (num-test (- 123.4 1.234+1.234i 1234/11) 9.98418181818183-1.234i) (num-test (* 123.4 1.234+1.234i 1234/11) 17082.55367272727381+17082.55367272727381i) (num-test (/ 123.4 1.234+1.234i 1234/11) 0.44570502431118-0.44570502431118i) (num-test (= 123.4 1.234+1.234i 1234/11) #f) (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.234+1.234i) 120.93200000000002-2.468i) (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.234+1.234i) 0.0-40.51863857374392i) (num-test (= 123.4 1.234+1.234i 1.234+1.234i) #f) (num-test (+ 123.4 1.234+1.234i -1.0+1.0i) 123.634+2.234i) (num-test (- 123.4 1.234+1.234i -1.0+1.0i) 123.16600000000001-2.234i) (num-test (* 123.4 1.234+1.234i -1.0+1.0i) -304.55119999999999) (num-test (/ 123.4 1.234+1.234i -1.0+1.0i) -50.0) (num-test (= 123.4 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 123.4 1.234+1.234i 0.0+1.0i) 124.634+2.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 0.0+1.0i) -152.2756+152.2756i) (num-test (/ 123.4 1.234+1.234i 0.0+1.0i) -50.0-50.0i) (num-test (= 123.4 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 123.4 -1.0+1.0i 1) 123.4+1.0i) (num-test (- 123.4 -1.0+1.0i 1) 123.4-1.0i) (num-test (* 123.4 -1.0+1.0i 1) -123.4+123.4i) (num-test (/ 123.4 -1.0+1.0i 1) -61.7-61.7i) (num-test (= 123.4 -1.0+1.0i 1) #f) (num-test (+ 123.4 -1.0+1.0i 1.0) 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) -123.4+123.4i) (num-test (/ 123.4 -1.0+1.0i 1.0) -61.7-61.7i) (num-test (= 123.4 -1.0+1.0i 1.0) #f) (num-test (+ 123.4 -1.0+1.0i 1/1) 123.4+1.0i) (num-test (- 123.4 -1.0+1.0i 1/1) 123.4-1.0i) (num-test (* 123.4 -1.0+1.0i 1/1) -123.4+123.4i) (num-test (/ 123.4 -1.0+1.0i 1/1) -61.7-61.7i) (num-test (= 123.4 -1.0+1.0i 1/1) #f) (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.0+1.0i) 123.4-2.0i) (num-test (* 123.4 -1.0+1.0i 1.0+1.0i) -246.8) (num-test (/ 123.4 -1.0+1.0i 1.0+1.0i) -61.7) (num-test (= 123.4 -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 123.4 -1.0+1.0i 0) 122.4+1.0i) (num-test (- 123.4 -1.0+1.0i 0) 124.4-1.0i) (num-test (* 123.4 -1.0+1.0i 0) -0.0) (num-test (+ 123.4 -1.0+1.0i 0.0) 122.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) -0.0) (num-test (+ 123.4 -1.0+1.0i 1234) 1356.4+1.0i) (num-test (- 123.4 -1.0+1.0i 1234) -1109.59999999999991-1.0i) (num-test (* 123.4 -1.0+1.0i 1234) -152275.60000000000582+152275.60000000000582i) (num-test (/ 123.4 -1.0+1.0i 1234) -0.05000000000000-0.05000000000000i) (num-test (= 123.4 -1.0+1.0i 1234) #f) (num-test (+ 123.4 -1.0+1.0i 123.4) 245.8+1.0i) (num-test (- 123.4 -1.0+1.0i 123.4) 1.0-1.0i) (num-test (* 123.4 -1.0+1.0i 123.4) -15227.56000000000131+15227.56000000000131i) (num-test (/ 123.4 -1.0+1.0i 123.4) -0.5-0.5i) (num-test (= 123.4 -1.0+1.0i 123.4) #f) (num-test (+ 123.4 -1.0+1.0i 1234/11) 234.58181818181819+1.0i) (num-test (- 123.4 -1.0+1.0i 1234/11) 12.21818181818182-1.0i) (num-test (* 123.4 -1.0+1.0i 1234/11) -13843.23636363636433+13843.23636363636433i) (num-test (/ 123.4 -1.0+1.0i 1234/11) -0.55000000000000-0.55000000000000i) (num-test (= 123.4 -1.0+1.0i 1234/11) #f) (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.234+1.234i) 123.16600000000001-2.234i) (num-test (* 123.4 -1.0+1.0i 1.234+1.234i) -304.55119999999999) (num-test (/ 123.4 -1.0+1.0i 1.234+1.234i) -50.0) (num-test (= 123.4 -1.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 125.4-2.0i) (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.0+1.0i) -0.0+61.7i) (num-test (= 123.4 -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 123.4 -1.0+1.0i 0.0+1.0i) 122.4+2.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 0.0+1.0i) -123.4-123.4i) (num-test (/ 123.4 -1.0+1.0i 0.0+1.0i) -61.7+61.7i) (num-test (= 123.4 -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 123.4 0.0+1.0i 1) 124.4+1.0i) (num-test (- 123.4 0.0+1.0i 1) 122.4-1.0i) (num-test (* 123.4 0.0+1.0i 1) 0.0+123.4i) (num-test (/ 123.4 0.0+1.0i 1) 0.0-123.4i) (num-test (= 123.4 0.0+1.0i 1) #f) (num-test (+ 123.4 0.0+1.0i 1.0) 124.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) 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) #f) (num-test (+ 123.4 0.0+1.0i 1/1) 124.4+1.0i) (num-test (- 123.4 0.0+1.0i 1/1) 122.4-1.0i) (num-test (* 123.4 0.0+1.0i 1/1) 0.0+123.4i) (num-test (/ 123.4 0.0+1.0i 1/1) 0.0-123.4i) (num-test (= 123.4 0.0+1.0i 1/1) #f) (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.0+1.0i) 122.4-2.0i) (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.0+1.0i) -61.7-61.7i) (num-test (= 123.4 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 123.4 0.0+1.0i 0) 123.4+1.0i) (num-test (- 123.4 0.0+1.0i 0) 123.4-1.0i) (num-test (* 123.4 0.0+1.0i 0) 0.0) (num-test (+ 123.4 0.0+1.0i 0.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) 0.0) (num-test (+ 123.4 0.0+1.0i 1234) 1357.4+1.0i) (num-test (- 123.4 0.0+1.0i 1234) -1110.59999999999991-1.0i) (num-test (* 123.4 0.0+1.0i 1234) 0.0+152275.60000000000582i) (num-test (/ 123.4 0.0+1.0i 1234) 0.0-0.1i) (num-test (= 123.4 0.0+1.0i 1234) #f) (num-test (+ 123.4 0.0+1.0i 123.4) 246.8+1.0i) (num-test (- 123.4 0.0+1.0i 123.4) 0.0-1.0i) (num-test (* 123.4 0.0+1.0i 123.4) 0.0+15227.56000000000131i) (num-test (/ 123.4 0.0+1.0i 123.4) 0.0-1.0i) (num-test (= 123.4 0.0+1.0i 123.4) #f) (num-test (+ 123.4 0.0+1.0i 1234/11) 235.58181818181819+1.0i) (num-test (- 123.4 0.0+1.0i 1234/11) 11.21818181818182-1.0i) (num-test (* 123.4 0.0+1.0i 1234/11) 0.0+13843.23636363636433i) (num-test (/ 123.4 0.0+1.0i 1234/11) 0.0-1.10000000000000i) (num-test (= 123.4 0.0+1.0i 1234/11) #f) (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.234+1.234i) 122.16600000000001-2.234i) (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.234+1.234i) -50.0-50.0i) (num-test (= 123.4 0.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 124.4-2.0i) (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.0+1.0i) -61.7+61.7i) (num-test (= 123.4 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 123.4 0.0+1.0i 0.0+1.0i) 123.4+2.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 0.0+1.0i) -123.4) (num-test (/ 123.4 0.0+1.0i 0.0+1.0i) -123.4) (num-test (= 123.4 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 1234/11 1 1) 1256/11) (num-test (- 1234/11 1 1) 1212/11) (num-test (* 1234/11 1 1) 1234/11) (num-test (/ 1234/11 1 1) 1234/11) (num-test (= 1234/11 1 1) #f) (num-test (< 1234/11 1 1) #f) (num-test (<= 1234/11 1 1) #f) (num-test (> 1234/11 1 1) #f) (num-test (>= 1234/11 1 1) #t) (num-test (+ 1234/11 1 1.0) 114.18181818181819) (num-test (- 1234/11 1 1.0) 110.18181818181819) (num-test (* 1234/11 1 1.0) 112.18181818181819) (num-test (/ 1234/11 1 1.0) 112.18181818181819) (num-test (= 1234/11 1 1.0) #f) (num-test (< 1234/11 1 1.0) #f) (num-test (<= 1234/11 1 1.0) #f) (num-test (> 1234/11 1 1.0) #f) (num-test (>= 1234/11 1 1.0) #t) (num-test (+ 1234/11 1 1/1) 1256/11) (num-test (- 1234/11 1 1/1) 1212/11) (num-test (* 1234/11 1 1/1) 1234/11) (num-test (/ 1234/11 1 1/1) 1234/11) (num-test (= 1234/11 1 1/1) #f) (num-test (< 1234/11 1 1/1) #f) (num-test (<= 1234/11 1 1/1) #f) (num-test (> 1234/11 1 1/1) #f) (num-test (>= 1234/11 1 1/1) #t) (num-test (+ 1234/11 1 1.0+1.0i) 114.18181818181819+1.0i) (num-test (- 1234/11 1 1.0+1.0i) 110.18181818181819-1.0i) (num-test (* 1234/11 1 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1 1.0+1.0i) 56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1 1.0+1.0i) #f) (num-test (+ 1234/11 1 0) 1245/11) (num-test (- 1234/11 1 0) 1223/11) (num-test (* 1234/11 1 0) 0) (num-test (+ 1234/11 1 0.0) 113.18181818181819) (num-test (- 1234/11 1 0.0) 111.18181818181819) (num-test (* 1234/11 1 0.0) 0.0) (num-test (+ 1234/11 1 1234) 14819/11) (num-test (- 1234/11 1 1234) -12351/11) (num-test (* 1234/11 1 1234) 1522756/11) (num-test (/ 1234/11 1 1234) 1/11) (num-test (= 1234/11 1 1234) #f) (num-test (< 1234/11 1 1234) #f) (num-test (<= 1234/11 1 1234) #f) (num-test (> 1234/11 1 1234) #f) (num-test (>= 1234/11 1 1234) #f) (num-test (+ 1234/11 1 123.4) 236.58181818181819) (num-test (- 1234/11 1 123.4) -12.21818181818182) (num-test (* 1234/11 1 123.4) 13843.23636363636433) (num-test (/ 1234/11 1 123.4) 0.90909090909091) (num-test (= 1234/11 1 123.4) #f) (num-test (< 1234/11 1 123.4) #f) (num-test (<= 1234/11 1 123.4) #f) (num-test (> 1234/11 1 123.4) #f) (num-test (>= 1234/11 1 123.4) #f) (num-test (+ 1234/11 1 1234/11) 2479/11) (num-test (- 1234/11 1 1234/11) -1) (num-test (* 1234/11 1 1234/11) 1522756/121) (num-test (/ 1234/11 1 1234/11) 1) (num-test (= 1234/11 1 1234/11) #f) (num-test (< 1234/11 1 1234/11) #f) (num-test (<= 1234/11 1 1234/11) #f) (num-test (> 1234/11 1 1234/11) #f) (num-test (>= 1234/11 1 1234/11) #f) (num-test (+ 1234/11 1 1.234+1.234i) 114.41581818181818+1.234i) (num-test (- 1234/11 1 1.234+1.234i) 109.94781818181819-1.234i) (num-test (* 1234/11 1 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1 1.234+1.234i) 45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1 1.234+1.234i) #f) (num-test (+ 1234/11 1 -1.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1234/11 1 -1.0+1.0i) 112.18181818181819-1.0i) (num-test (* 1234/11 1 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1 -1.0+1.0i) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1 -1.0+1.0i) #f) (num-test (+ 1234/11 1 0.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1234/11 1 0.0+1.0i) 111.18181818181819-1.0i) (num-test (* 1234/11 1 0.0+1.0i) 0.0+112.18181818181819i) (num-test (/ 1234/11 1 0.0+1.0i) 0.0-112.18181818181819i) (num-test (= 1234/11 1 0.0+1.0i) #f) (num-test (+ 1234/11 1.0 1) 114.18181818181819) (num-test (- 1234/11 1.0 1) 110.18181818181819) (num-test (* 1234/11 1.0 1) 112.18181818181819) (num-test (/ 1234/11 1.0 1) 112.18181818181819) (num-test (= 1234/11 1.0 1) #f) (num-test (< 1234/11 1.0 1) #f) (num-test (<= 1234/11 1.0 1) #f) (num-test (> 1234/11 1.0 1) #f) (num-test (>= 1234/11 1.0 1) #t) (num-test (+ 1234/11 1.0 1.0) 114.18181818181819) (num-test (- 1234/11 1.0 1.0) 110.18181818181819) (num-test (* 1234/11 1.0 1.0) 112.18181818181819) (num-test (/ 1234/11 1.0 1.0) 112.18181818181819) (num-test (= 1234/11 1.0 1.0) #f) (num-test (< 1234/11 1.0 1.0) #f) (num-test (<= 1234/11 1.0 1.0) #f) (num-test (> 1234/11 1.0 1.0) #f) (num-test (>= 1234/11 1.0 1.0) #t) (num-test (+ 1234/11 1.0 1/1) 114.18181818181819) (num-test (- 1234/11 1.0 1/1) 110.18181818181819) (num-test (* 1234/11 1.0 1/1) 112.18181818181819) (num-test (/ 1234/11 1.0 1/1) 112.18181818181819) (num-test (= 1234/11 1.0 1/1) #f) (num-test (< 1234/11 1.0 1/1) #f) (num-test (<= 1234/11 1.0 1/1) #f) (num-test (> 1234/11 1.0 1/1) #f) (num-test (>= 1234/11 1.0 1/1) #t) (num-test (+ 1234/11 1.0 1.0+1.0i) 114.18181818181819+1.0i) (num-test (- 1234/11 1.0 1.0+1.0i) 110.18181818181819-1.0i) (num-test (* 1234/11 1.0 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1.0 1.0+1.0i) 56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1.0 1.0+1.0i) #f) (num-test (+ 1234/11 1.0 0) 113.18181818181819) (num-test (- 1234/11 1.0 0) 111.18181818181819) (num-test (* 1234/11 1.0 0) 0.0) (num-test (+ 1234/11 1.0 0.0) 113.18181818181819) (num-test (- 1234/11 1.0 0.0) 111.18181818181819) (num-test (* 1234/11 1.0 0.0) 0.0) (num-test (+ 1234/11 1.0 1234) 1347.18181818181824) (num-test (- 1234/11 1.0 1234) -1122.81818181818176) (num-test (* 1234/11 1.0 1234) 138432.36363636364695) (num-test (/ 1234/11 1.0 1234) 0.09090909090909) (num-test (= 1234/11 1.0 1234) #f) (num-test (< 1234/11 1.0 1234) #f) (num-test (<= 1234/11 1.0 1234) #f) (num-test (> 1234/11 1.0 1234) #f) (num-test (>= 1234/11 1.0 1234) #f) (num-test (+ 1234/11 1.0 123.4) 236.58181818181819) (num-test (- 1234/11 1.0 123.4) -12.21818181818182) (num-test (* 1234/11 1.0 123.4) 13843.23636363636433) (num-test (/ 1234/11 1.0 123.4) 0.90909090909091) (num-test (= 1234/11 1.0 123.4) #f) (num-test (< 1234/11 1.0 123.4) #f) (num-test (<= 1234/11 1.0 123.4) #f) (num-test (> 1234/11 1.0 123.4) #f) (num-test (>= 1234/11 1.0 123.4) #f) (num-test (+ 1234/11 1.0 1234/11) 225.36363636363637) (num-test (- 1234/11 1.0 1234/11) -1.0) (num-test (* 1234/11 1.0 1234/11) 12584.76033057851237) (num-test (/ 1234/11 1.0 1234/11) 1.0) (num-test (= 1234/11 1.0 1234/11) #f) (num-test (< 1234/11 1.0 1234/11) #f) (num-test (<= 1234/11 1.0 1234/11) #f) (num-test (> 1234/11 1.0 1234/11) #f) (num-test (>= 1234/11 1.0 1234/11) #f) (num-test (+ 1234/11 1.0 1.234+1.234i) 114.41581818181818+1.234i) (num-test (- 1234/11 1.0 1.234+1.234i) 109.94781818181819-1.234i) (num-test (* 1234/11 1.0 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1.0 1.234+1.234i) 45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1.0 1.234+1.234i) #f) (num-test (+ 1234/11 1.0 -1.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1234/11 1.0 -1.0+1.0i) 112.18181818181819-1.0i) (num-test (* 1234/11 1.0 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1.0 -1.0+1.0i) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1.0 -1.0+1.0i) #f) (num-test (+ 1234/11 1.0 0.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1234/11 1.0 0.0+1.0i) 111.18181818181819-1.0i) (num-test (* 1234/11 1.0 0.0+1.0i) 0.0+112.18181818181819i) (num-test (/ 1234/11 1.0 0.0+1.0i) 0.0-112.18181818181819i) (num-test (= 1234/11 1.0 0.0+1.0i) #f) (num-test (+ 1234/11 1/1 1) 1256/11) (num-test (- 1234/11 1/1 1) 1212/11) (num-test (* 1234/11 1/1 1) 1234/11) (num-test (/ 1234/11 1/1 1) 1234/11) (num-test (= 1234/11 1/1 1) #f) (num-test (< 1234/11 1/1 1) #f) (num-test (<= 1234/11 1/1 1) #f) (num-test (> 1234/11 1/1 1) #f) (num-test (>= 1234/11 1/1 1) #t) (num-test (+ 1234/11 1/1 1.0) 114.18181818181819) (num-test (- 1234/11 1/1 1.0) 110.18181818181819) (num-test (* 1234/11 1/1 1.0) 112.18181818181819) (num-test (/ 1234/11 1/1 1.0) 112.18181818181819) (num-test (= 1234/11 1/1 1.0) #f) (num-test (< 1234/11 1/1 1.0) #f) (num-test (<= 1234/11 1/1 1.0) #f) (num-test (> 1234/11 1/1 1.0) #f) (num-test (>= 1234/11 1/1 1.0) #t) (num-test (+ 1234/11 1/1 1/1) 1256/11) (num-test (- 1234/11 1/1 1/1) 1212/11) (num-test (* 1234/11 1/1 1/1) 1234/11) (num-test (/ 1234/11 1/1 1/1) 1234/11) (num-test (= 1234/11 1/1 1/1) #f) (num-test (< 1234/11 1/1 1/1) #f) (num-test (<= 1234/11 1/1 1/1) #f) (num-test (> 1234/11 1/1 1/1) #f) (num-test (>= 1234/11 1/1 1/1) #t) (num-test (+ 1234/11 1/1 1.0+1.0i) 114.18181818181819+1.0i) (num-test (- 1234/11 1/1 1.0+1.0i) 110.18181818181819-1.0i) (num-test (* 1234/11 1/1 1.0+1.0i) 112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1/1 1.0+1.0i) 56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1/1 1.0+1.0i) #f) (num-test (+ 1234/11 1/1 0) 1245/11) (num-test (- 1234/11 1/1 0) 1223/11) (num-test (* 1234/11 1/1 0) 0) (num-test (+ 1234/11 1/1 0.0) 113.18181818181819) (num-test (- 1234/11 1/1 0.0) 111.18181818181819) (num-test (* 1234/11 1/1 0.0) 0.0) (num-test (+ 1234/11 1/1 1234) 14819/11) (num-test (- 1234/11 1/1 1234) -12351/11) (num-test (* 1234/11 1/1 1234) 1522756/11) (num-test (/ 1234/11 1/1 1234) 1/11) (num-test (= 1234/11 1/1 1234) #f) (num-test (< 1234/11 1/1 1234) #f) (num-test (<= 1234/11 1/1 1234) #f) (num-test (> 1234/11 1/1 1234) #f) (num-test (>= 1234/11 1/1 1234) #f) (num-test (+ 1234/11 1/1 123.4) 236.58181818181819) (num-test (- 1234/11 1/1 123.4) -12.21818181818182) (num-test (* 1234/11 1/1 123.4) 13843.23636363636433) (num-test (/ 1234/11 1/1 123.4) 0.90909090909091) (num-test (= 1234/11 1/1 123.4) #f) (num-test (< 1234/11 1/1 123.4) #f) (num-test (<= 1234/11 1/1 123.4) #f) (num-test (> 1234/11 1/1 123.4) #f) (num-test (>= 1234/11 1/1 123.4) #f) (num-test (+ 1234/11 1/1 1234/11) 2479/11) (num-test (- 1234/11 1/1 1234/11) -1) (num-test (* 1234/11 1/1 1234/11) 1522756/121) (num-test (/ 1234/11 1/1 1234/11) 1) (num-test (= 1234/11 1/1 1234/11) #f) (num-test (< 1234/11 1/1 1234/11) #f) (num-test (<= 1234/11 1/1 1234/11) #f) (num-test (> 1234/11 1/1 1234/11) #f) (num-test (>= 1234/11 1/1 1234/11) #f) (num-test (+ 1234/11 1/1 1.234+1.234i) 114.41581818181818+1.234i) (num-test (- 1234/11 1/1 1.234+1.234i) 109.94781818181819-1.234i) (num-test (* 1234/11 1/1 1.234+1.234i) 138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1/1 1.234+1.234i) 45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1/1 1.234+1.234i) #f) (num-test (+ 1234/11 1/1 -1.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1234/11 1/1 -1.0+1.0i) 112.18181818181819-1.0i) (num-test (* 1234/11 1/1 -1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1/1 -1.0+1.0i) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1/1 -1.0+1.0i) #f) (num-test (+ 1234/11 1/1 0.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1234/11 1/1 0.0+1.0i) 111.18181818181819-1.0i) (num-test (* 1234/11 1/1 0.0+1.0i) 0.0+112.18181818181819i) (num-test (/ 1234/11 1/1 0.0+1.0i) 0.0-112.18181818181819i) (num-test (= 1234/11 1/1 0.0+1.0i) #f) (num-test (+ 1234/11 1.0+1.0i 1) 114.18181818181819+1.0i) (num-test (- 1234/11 1.0+1.0i 1) 110.18181818181819-1.0i) (num-test (* 1234/11 1.0+1.0i 1) 112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1.0+1.0i 1) 56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1.0+1.0i 1) #f) (num-test (+ 1234/11 1.0+1.0i 1.0) 114.18181818181819+1.0i) (num-test (- 1234/11 1.0+1.0i 1.0) 110.18181818181819-1.0i) (num-test (* 1234/11 1.0+1.0i 1.0) 112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1.0+1.0i 1.0) 56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1.0+1.0i 1.0) #f) (num-test (+ 1234/11 1.0+1.0i 1/1) 114.18181818181819+1.0i) (num-test (- 1234/11 1.0+1.0i 1/1) 110.18181818181819-1.0i) (num-test (* 1234/11 1.0+1.0i 1/1) 112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1.0+1.0i 1/1) 56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1.0+1.0i 1/1) #f) (num-test (+ 1234/11 1.0+1.0i 1.0+1.0i) 114.18181818181819+2.0i) (num-test (- 1234/11 1.0+1.0i 1.0+1.0i) 110.18181818181819-2.0i) (num-test (* 1234/11 1.0+1.0i 1.0+1.0i) 0.0+224.36363636363637i) (num-test (/ 1234/11 1.0+1.0i 1.0+1.0i) 0.0-56.09090909090909i) (num-test (= 1234/11 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1234/11 1.0+1.0i 0) 113.18181818181819+1.0i) (num-test (- 1234/11 1.0+1.0i 0) 111.18181818181819-1.0i) (num-test (* 1234/11 1.0+1.0i 0) 0.0) (num-test (+ 1234/11 1.0+1.0i 0.0) 113.18181818181819+1.0i) (num-test (- 1234/11 1.0+1.0i 0.0) 111.18181818181819-1.0i) (num-test (* 1234/11 1.0+1.0i 0.0) 0.0) (num-test (+ 1234/11 1.0+1.0i 1234) 1347.18181818181824+1.0i) (num-test (- 1234/11 1.0+1.0i 1234) -1122.81818181818176-1.0i) (num-test (* 1234/11 1.0+1.0i 1234) 138432.36363636364695+138432.36363636364695i) (num-test (/ 1234/11 1.0+1.0i 1234) 0.04545454545455-0.04545454545455i) (num-test (= 1234/11 1.0+1.0i 1234) #f) (num-test (+ 1234/11 1.0+1.0i 123.4) 236.58181818181819+1.0i) (num-test (- 1234/11 1.0+1.0i 123.4) -12.21818181818182-1.0i) (num-test (* 1234/11 1.0+1.0i 123.4) 13843.23636363636433+13843.23636363636433i) (num-test (/ 1234/11 1.0+1.0i 123.4) 0.45454545454545-0.45454545454545i) (num-test (= 1234/11 1.0+1.0i 123.4) #f) (num-test (+ 1234/11 1.0+1.0i 1234/11) 225.36363636363637+1.0i) (num-test (- 1234/11 1.0+1.0i 1234/11) -1.0-1.0i) (num-test (* 1234/11 1.0+1.0i 1234/11) 12584.76033057851419+12584.76033057851419i) (num-test (/ 1234/11 1.0+1.0i 1234/11) 0.5-0.5i) (num-test (= 1234/11 1.0+1.0i 1234/11) #f) (num-test (+ 1234/11 1.0+1.0i 1.234+1.234i) 114.41581818181818+2.234i) (num-test (- 1234/11 1.0+1.0i 1.234+1.234i) 109.94781818181819-2.234i) (num-test (* 1234/11 1.0+1.0i 1.234+1.234i) 0.0+276.86472727272729i) (num-test (/ 1234/11 1.0+1.0i 1.234+1.234i) 0.0-45.45454545454546i) (num-test (= 1234/11 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1234/11 1.0+1.0i -1.0+1.0i) 112.18181818181819+2.0i) (num-test (- 1234/11 1.0+1.0i -1.0+1.0i) 112.18181818181819-2.0i) (num-test (* 1234/11 1.0+1.0i -1.0+1.0i) -224.36363636363637) (num-test (/ 1234/11 1.0+1.0i -1.0+1.0i) -56.09090909090909) (num-test (= 1234/11 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1234/11 1.0+1.0i 0.0+1.0i) 113.18181818181819+2.0i) (num-test (- 1234/11 1.0+1.0i 0.0+1.0i) 111.18181818181819-2.0i) (num-test (* 1234/11 1.0+1.0i 0.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 1.0+1.0i 0.0+1.0i) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1234/11 0 1) 1245/11) (num-test (- 1234/11 0 1) 1223/11) (num-test (* 1234/11 0 1) 0) (num-test (+ 1234/11 0 1.0) 113.18181818181819) (num-test (- 1234/11 0 1.0) 111.18181818181819) (num-test (* 1234/11 0 1.0) 0.0) (num-test (+ 1234/11 0 1/1) 1245/11) (num-test (- 1234/11 0 1/1) 1223/11) (num-test (* 1234/11 0 1/1) 0) (num-test (+ 1234/11 0 1.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1234/11 0 1.0+1.0i) 111.18181818181819-1.0i) (num-test (* 1234/11 0 1.0+1.0i) 0.0) (num-test (+ 1234/11 0 0) 1234/11) (num-test (- 1234/11 0 0) 1234/11) (num-test (* 1234/11 0 0) 0) (num-test (+ 1234/11 0 0.0) 112.18181818181819) (num-test (- 1234/11 0 0.0) 112.18181818181819) (num-test (* 1234/11 0 0.0) 0.0) (num-test (+ 1234/11 0 1234) 14808/11) (num-test (- 1234/11 0 1234) -12340/11) (num-test (* 1234/11 0 1234) 0) (num-test (+ 1234/11 0 123.4) 235.58181818181819) (num-test (- 1234/11 0 123.4) -11.21818181818182) (num-test (* 1234/11 0 123.4) 0.0) (num-test (+ 1234/11 0 1234/11) 2468/11) (num-test (- 1234/11 0 1234/11) 0) (num-test (* 1234/11 0 1234/11) 0) (num-test (+ 1234/11 0 1.234+1.234i) 113.41581818181818+1.234i) (num-test (- 1234/11 0 1.234+1.234i) 110.94781818181819-1.234i) (num-test (* 1234/11 0 1.234+1.234i) 0.0) (num-test (+ 1234/11 0 -1.0+1.0i) 111.18181818181819+1.0i) (num-test (- 1234/11 0 -1.0+1.0i) 113.18181818181819-1.0i) (num-test (* 1234/11 0 -1.0+1.0i) -0.0) (num-test (+ 1234/11 0 0.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1234/11 0 0.0+1.0i) 112.18181818181819-1.0i) (num-test (* 1234/11 0 0.0+1.0i) 0.0) (num-test (+ 1234/11 0.0 1) 113.18181818181819) (num-test (- 1234/11 0.0 1) 111.18181818181819) (num-test (* 1234/11 0.0 1) 0.0) (num-test (+ 1234/11 0.0 1.0) 113.18181818181819) (num-test (- 1234/11 0.0 1.0) 111.18181818181819) (num-test (* 1234/11 0.0 1.0) 0.0) (num-test (+ 1234/11 0.0 1/1) 113.18181818181819) (num-test (- 1234/11 0.0 1/1) 111.18181818181819) (num-test (* 1234/11 0.0 1/1) 0.0) (num-test (+ 1234/11 0.0 1.0+1.0i) 113.18181818181819+1.0i) (num-test (- 1234/11 0.0 1.0+1.0i) 111.18181818181819-1.0i) (num-test (* 1234/11 0.0 1.0+1.0i) 0.0) (num-test (+ 1234/11 0.0 0) 112.18181818181819) (num-test (- 1234/11 0.0 0) 112.18181818181819) (num-test (* 1234/11 0.0 0) 0.0) (num-test (+ 1234/11 0.0 0.0) 112.18181818181819) (num-test (- 1234/11 0.0 0.0) 112.18181818181819) (num-test (* 1234/11 0.0 0.0) 0.0) (num-test (+ 1234/11 0.0 1234) 1346.18181818181824) (num-test (- 1234/11 0.0 1234) -1121.81818181818176) (num-test (* 1234/11 0.0 1234) 0.0) (num-test (+ 1234/11 0.0 123.4) 235.58181818181819) (num-test (- 1234/11 0.0 123.4) -11.21818181818182) (num-test (* 1234/11 0.0 123.4) 0.0) (num-test (+ 1234/11 0.0 1234/11) 224.36363636363637) (num-test (- 1234/11 0.0 1234/11) 0.00000000000001) (num-test (* 1234/11 0.0 1234/11) 0.0) (num-test (+ 1234/11 0.0 1.234+1.234i) 113.41581818181818+1.234i) (num-test (- 1234/11 0.0 1.234+1.234i) 110.94781818181819-1.234i) (num-test (* 1234/11 0.0 1.234+1.234i) 0.0) (num-test (+ 1234/11 0.0 -1.0+1.0i) 111.18181818181819+1.0i) (num-test (- 1234/11 0.0 -1.0+1.0i) 113.18181818181819-1.0i) (num-test (* 1234/11 0.0 -1.0+1.0i) -0.0) (num-test (+ 1234/11 0.0 0.0+1.0i) 112.18181818181819+1.0i) (num-test (- 1234/11 0.0 0.0+1.0i) 112.18181818181819-1.0i) (num-test (* 1234/11 0.0 0.0+1.0i) 0.0) (num-test (+ 1234/11 1234 1) 14819/11) (num-test (- 1234/11 1234 1) -12351/11) (num-test (* 1234/11 1234 1) 1522756/11) (num-test (/ 1234/11 1234 1) 1/11) (num-test (= 1234/11 1234 1) #f) (num-test (< 1234/11 1234 1) #f) (num-test (<= 1234/11 1234 1) #f) (num-test (> 1234/11 1234 1) #f) (num-test (>= 1234/11 1234 1) #f) (num-test (+ 1234/11 1234 1.0) 1347.18181818181824) (num-test (- 1234/11 1234 1.0) -1122.81818181818176) (num-test (* 1234/11 1234 1.0) 138432.36363636364695) (num-test (/ 1234/11 1234 1.0) 0.09090909090909) (num-test (= 1234/11 1234 1.0) #f) (num-test (< 1234/11 1234 1.0) #f) (num-test (<= 1234/11 1234 1.0) #f) (num-test (> 1234/11 1234 1.0) #f) (num-test (>= 1234/11 1234 1.0) #f) (num-test (+ 1234/11 1234 1/1) 14819/11) (num-test (- 1234/11 1234 1/1) -12351/11) (num-test (* 1234/11 1234 1/1) 1522756/11) (num-test (/ 1234/11 1234 1/1) 1/11) (num-test (= 1234/11 1234 1/1) #f) (num-test (< 1234/11 1234 1/1) #f) (num-test (<= 1234/11 1234 1/1) #f) (num-test (> 1234/11 1234 1/1) #f) (num-test (>= 1234/11 1234 1/1) #f) (num-test (+ 1234/11 1234 1.0+1.0i) 1347.18181818181824+1.0i) (num-test (- 1234/11 1234 1.0+1.0i) -1122.81818181818176-1.0i) (num-test (* 1234/11 1234 1.0+1.0i) 138432.36363636364695+138432.36363636364695i) (num-test (/ 1234/11 1234 1.0+1.0i) 0.04545454545455-0.04545454545455i) (num-test (= 1234/11 1234 1.0+1.0i) #f) (num-test (+ 1234/11 1234 0) 14808/11) (num-test (- 1234/11 1234 0) -12340/11) (num-test (* 1234/11 1234 0) 0) (num-test (+ 1234/11 1234 0.0) 1346.18181818181824) (num-test (- 1234/11 1234 0.0) -1121.81818181818176) (num-test (* 1234/11 1234 0.0) 0.0) (num-test (+ 1234/11 1234 1234) 28382/11) (num-test (- 1234/11 1234 1234) -25914/11) (if (not with-64-bit-ints) (num-test (* 1234/11 1234 1234) 170825536.727273) (num-test (* 1234/11 1234 1234) 1879080904/11)) (num-test (/ 1234/11 1234 1234) 1/13574) (num-test (= 1234/11 1234 1234) #f) (num-test (< 1234/11 1234 1234) #f) (num-test (<= 1234/11 1234 1234) #t) (num-test (> 1234/11 1234 1234) #f) (num-test (>= 1234/11 1234 1234) #f) (num-test (+ 1234/11 1234 123.4) 1469.58181818181833) (num-test (- 1234/11 1234 123.4) -1245.21818181818185) (num-test (* 1234/11 1234 123.4) 17082553.67272727563977) (num-test (/ 1234/11 1234 123.4) 0.00073670251952) (num-test (= 1234/11 1234 123.4) #f) (num-test (< 1234/11 1234 123.4) #f) (num-test (<= 1234/11 1234 123.4) #f) (num-test (> 1234/11 1234 123.4) #f) (num-test (>= 1234/11 1234 123.4) #f) (num-test (+ 1234/11 1234 1234/11) 16042/11) (num-test (- 1234/11 1234 1234/11) -1234) (if (not with-64-bit-ints) (num-test (* 1234/11 1234 1234/11) 15529594.2479339) (num-test (* 1234/11 1234 1234/11) 1879080904/121)) (num-test (/ 1234/11 1234 1234/11) 1/1234) (num-test (= 1234/11 1234 1234/11) #f) (num-test (< 1234/11 1234 1234/11) #f) (num-test (<= 1234/11 1234 1234/11) #f) (num-test (> 1234/11 1234 1234/11) #f) (num-test (>= 1234/11 1234 1234/11) #f) (num-test (+ 1234/11 1234 1.234+1.234i) 1347.41581818181817+1.234i) (num-test (- 1234/11 1234 1.234+1.234i) -1123.05218181818168-1.234i) (num-test (* 1234/11 1234 1.234+1.234i) 170825.53672727273079+170825.53672727273079i) (num-test (/ 1234/11 1234 1.234+1.234i) 0.03683512597613-0.03683512597613i) (num-test (= 1234/11 1234 1.234+1.234i) #f) (num-test (+ 1234/11 1234 -1.0+1.0i) 1345.18181818181824+1.0i) (num-test (- 1234/11 1234 -1.0+1.0i) -1120.81818181818176-1.0i) (num-test (* 1234/11 1234 -1.0+1.0i) -138432.36363636364695+138432.36363636364695i) (num-test (/ 1234/11 1234 -1.0+1.0i) -0.04545454545455-0.04545454545455i) (num-test (= 1234/11 1234 -1.0+1.0i) #f) (num-test (+ 1234/11 1234 0.0+1.0i) 1346.18181818181824+1.0i) (num-test (- 1234/11 1234 0.0+1.0i) -1121.81818181818176-1.0i) (num-test (* 1234/11 1234 0.0+1.0i) 0.0+138432.36363636364695i) (num-test (/ 1234/11 1234 0.0+1.0i) 0.0-0.09090909090909i) (num-test (= 1234/11 1234 0.0+1.0i) #f) (num-test (+ 1234/11 123.4 1) 236.58181818181819) (num-test (- 1234/11 123.4 1) -12.21818181818182) (num-test (* 1234/11 123.4 1) 13843.23636363636433) (num-test (/ 1234/11 123.4 1) 0.90909090909091) (num-test (= 1234/11 123.4 1) #f) (num-test (< 1234/11 123.4 1) #f) (num-test (<= 1234/11 123.4 1) #f) (num-test (> 1234/11 123.4 1) #f) (num-test (>= 1234/11 123.4 1) #f) (num-test (+ 1234/11 123.4 1.0) 236.58181818181819) (num-test (- 1234/11 123.4 1.0) -12.21818181818182) (num-test (* 1234/11 123.4 1.0) 13843.23636363636433) (num-test (/ 1234/11 123.4 1.0) 0.90909090909091) (num-test (= 1234/11 123.4 1.0) #f) (num-test (< 1234/11 123.4 1.0) #f) (num-test (<= 1234/11 123.4 1.0) #f) (num-test (> 1234/11 123.4 1.0) #f) (num-test (>= 1234/11 123.4 1.0) #f) (num-test (+ 1234/11 123.4 1/1) 236.58181818181819) (num-test (- 1234/11 123.4 1/1) -12.21818181818182) (num-test (* 1234/11 123.4 1/1) 13843.23636363636433) (num-test (/ 1234/11 123.4 1/1) 0.90909090909091) (num-test (= 1234/11 123.4 1/1) #f) (num-test (< 1234/11 123.4 1/1) #f) (num-test (<= 1234/11 123.4 1/1) #f) (num-test (> 1234/11 123.4 1/1) #f) (num-test (>= 1234/11 123.4 1/1) #f) (num-test (+ 1234/11 123.4 1.0+1.0i) 236.58181818181819+1.0i) (num-test (- 1234/11 123.4 1.0+1.0i) -12.21818181818182-1.0i) (num-test (* 1234/11 123.4 1.0+1.0i) 13843.23636363636433+13843.23636363636433i) (num-test (/ 1234/11 123.4 1.0+1.0i) 0.45454545454545-0.45454545454545i) (num-test (= 1234/11 123.4 1.0+1.0i) #f) (num-test (+ 1234/11 123.4 0) 235.58181818181819) (num-test (- 1234/11 123.4 0) -11.21818181818182) (num-test (* 1234/11 123.4 0) 0.0) (num-test (+ 1234/11 123.4 0.0) 235.58181818181819) (num-test (- 1234/11 123.4 0.0) -11.21818181818182) (num-test (* 1234/11 123.4 0.0) 0.0) (num-test (+ 1234/11 123.4 1234) 1469.58181818181811) (num-test (- 1234/11 123.4 1234) -1245.21818181818185) (num-test (* 1234/11 123.4 1234) 17082553.67272727191448) (num-test (/ 1234/11 123.4 1234) 0.00073670251952) (num-test (= 1234/11 123.4 1234) #f) (num-test (< 1234/11 123.4 1234) #t) (num-test (<= 1234/11 123.4 1234) #t) (num-test (> 1234/11 123.4 1234) #f) (num-test (>= 1234/11 123.4 1234) #f) (num-test (+ 1234/11 123.4 123.4) 358.98181818181820) (num-test (- 1234/11 123.4 123.4) -134.61818181818182) (num-test (* 1234/11 123.4 123.4) 1708255.36727272742428) (num-test (/ 1234/11 123.4 123.4) 0.00736702519523) (num-test (= 1234/11 123.4 123.4) #f) (num-test (< 1234/11 123.4 123.4) #f) (num-test (<= 1234/11 123.4 123.4) #t) (num-test (> 1234/11 123.4 123.4) #f) (num-test (>= 1234/11 123.4 123.4) #f) (num-test (+ 1234/11 123.4 1234/11) 347.76363636363635) (num-test (- 1234/11 123.4 1234/11) -123.4) (num-test (* 1234/11 123.4 1234/11) 1552959.42479338846169) (num-test (/ 1234/11 123.4 1234/11) 0.00810372771475) (num-test (= 1234/11 123.4 1234/11) #f) (num-test (< 1234/11 123.4 1234/11) #f) (num-test (<= 1234/11 123.4 1234/11) #f) (num-test (> 1234/11 123.4 1234/11) #f) (num-test (>= 1234/11 123.4 1234/11) #f) (num-test (+ 1234/11 123.4 1.234+1.234i) 236.81581818181820+1.234i) (num-test (- 1234/11 123.4 1.234+1.234i) -12.45218181818182-1.234i) (num-test (* 1234/11 123.4 1.234+1.234i) 17082.55367272727381+17082.55367272727381i) (num-test (/ 1234/11 123.4 1.234+1.234i) 0.36835125976131-0.36835125976131i) (num-test (= 1234/11 123.4 1.234+1.234i) #f) (num-test (+ 1234/11 123.4 -1.0+1.0i) 234.58181818181819+1.0i) (num-test (- 1234/11 123.4 -1.0+1.0i) -10.21818181818182-1.0i) (num-test (* 1234/11 123.4 -1.0+1.0i) -13843.23636363636433+13843.23636363636433i) (num-test (/ 1234/11 123.4 -1.0+1.0i) -0.45454545454545-0.45454545454545i) (num-test (= 1234/11 123.4 -1.0+1.0i) #f) (num-test (+ 1234/11 123.4 0.0+1.0i) 235.58181818181819+1.0i) (num-test (- 1234/11 123.4 0.0+1.0i) -11.21818181818182-1.0i) (num-test (* 1234/11 123.4 0.0+1.0i) 0.0+13843.23636363636433i) (num-test (/ 1234/11 123.4 0.0+1.0i) 0.0-0.90909090909091i) (num-test (= 1234/11 123.4 0.0+1.0i) #f) (num-test (+ 1234/11 1234/11 1) 2479/11) (num-test (- 1234/11 1234/11 1) -1) (num-test (* 1234/11 1234/11 1) 1522756/121) (num-test (/ 1234/11 1234/11 1) 1) (num-test (= 1234/11 1234/11 1) #f) (num-test (< 1234/11 1234/11 1) #f) (num-test (<= 1234/11 1234/11 1) #f) (num-test (> 1234/11 1234/11 1) #f) (num-test (>= 1234/11 1234/11 1) #t) (num-test (+ 1234/11 1234/11 1.0) 225.36363636363637) (num-test (- 1234/11 1234/11 1.0) -1.0) (num-test (* 1234/11 1234/11 1.0) 12584.76033057851237) (num-test (/ 1234/11 1234/11 1.0) 1.0) (num-test (= 1234/11 1234/11 1.0) #f) (num-test (< 1234/11 1234/11 1.0) #f) (num-test (<= 1234/11 1234/11 1.0) #f) (num-test (> 1234/11 1234/11 1.0) #f) (num-test (>= 1234/11 1234/11 1.0) #t) (num-test (+ 1234/11 1234/11 1/1) 2479/11) (num-test (- 1234/11 1234/11 1/1) -1) (num-test (* 1234/11 1234/11 1/1) 1522756/121) (num-test (/ 1234/11 1234/11 1/1) 1) (num-test (= 1234/11 1234/11 1/1) #f) (num-test (< 1234/11 1234/11 1/1) #f) (num-test (<= 1234/11 1234/11 1/1) #f) (num-test (> 1234/11 1234/11 1/1) #f) (num-test (>= 1234/11 1234/11 1/1) #t) (num-test (+ 1234/11 1234/11 1.0+1.0i) 225.36363636363637+1.0i) (num-test (- 1234/11 1234/11 1.0+1.0i) -1.0-1.0i) (num-test (* 1234/11 1234/11 1.0+1.0i) 12584.76033057851419+12584.76033057851419i) (num-test (/ 1234/11 1234/11 1.0+1.0i) 0.5-0.5i) (num-test (= 1234/11 1234/11 1.0+1.0i) #f) (num-test (+ 1234/11 1234/11 0) 2468/11) (num-test (- 1234/11 1234/11 0) 0) (num-test (* 1234/11 1234/11 0) 0) (num-test (+ 1234/11 1234/11 0.0) 224.36363636363637) (num-test (- 1234/11 1234/11 0.0) 0.0) (num-test (* 1234/11 1234/11 0.0) 0.0) (num-test (+ 1234/11 1234/11 1234) 16042/11) (num-test (- 1234/11 1234/11 1234) -1234) (if (not with-64-bit-ints) (num-test (* 1234/11 1234/11 1234) 15529594.2479339) (num-test (* 1234/11 1234/11 1234) 1879080904/121)) (num-test (/ 1234/11 1234/11 1234) 1/1234) (num-test (= 1234/11 1234/11 1234) #f) (num-test (< 1234/11 1234/11 1234) #f) (num-test (<= 1234/11 1234/11 1234) #t) (num-test (> 1234/11 1234/11 1234) #f) (num-test (>= 1234/11 1234/11 1234) #f) (num-test (+ 1234/11 1234/11 123.4) 347.76363636363635) (num-test (- 1234/11 1234/11 123.4) -123.4) (num-test (* 1234/11 1234/11 123.4) 1552959.42479338846169) (num-test (/ 1234/11 1234/11 123.4) 0.00810372771475) (num-test (= 1234/11 1234/11 123.4) #f) (num-test (< 1234/11 1234/11 123.4) #f) (num-test (<= 1234/11 1234/11 123.4) #t) (num-test (> 1234/11 1234/11 123.4) #f) (num-test (>= 1234/11 1234/11 123.4) #f) (num-test (+ 1234/11 1234/11 1234/11) 3702/11) (num-test (- 1234/11 1234/11 1234/11) -1234/11) (if (not with-64-bit-ints) (num-test (* 1234/11 1234/11 1234/11) 1411781.29526672) (num-test (* 1234/11 1234/11 1234/11) 1879080904/1331)) (num-test (/ 1234/11 1234/11 1234/11) 11/1234) (num-test (= 1234/11 1234/11 1234/11) #t) (num-test (< 1234/11 1234/11 1234/11) #f) (num-test (<= 1234/11 1234/11 1234/11) #t) (num-test (> 1234/11 1234/11 1234/11) #f) (num-test (>= 1234/11 1234/11 1234/11) #t) (num-test (+ 1234/11 1234/11 1.234+1.234i) 225.59763636363638+1.234i) (num-test (- 1234/11 1234/11 1.234+1.234i) -1.23399999999999-1.234i) (num-test (* 1234/11 1234/11 1.234+1.234i) 15529.59424793388644+15529.59424793388644i) (num-test (/ 1234/11 1234/11 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1234/11 1234/11 1.234+1.234i) #f) (num-test (+ 1234/11 1234/11 -1.0+1.0i) 223.36363636363637+1.0i) (num-test (- 1234/11 1234/11 -1.0+1.0i) 1.00000000000001-1.0i) (num-test (* 1234/11 1234/11 -1.0+1.0i) -12584.76033057851419+12584.76033057851419i) (num-test (/ 1234/11 1234/11 -1.0+1.0i) -0.5-0.5i) (num-test (= 1234/11 1234/11 -1.0+1.0i) #f) (num-test (+ 1234/11 1234/11 0.0+1.0i) 224.36363636363637+1.0i) (num-test (- 1234/11 1234/11 0.0+1.0i) 0.0-1.0i) (num-test (* 1234/11 1234/11 0.0+1.0i) 0.0+12584.76033057851419i) (num-test (/ 1234/11 1234/11 0.0+1.0i) 0.0-1.0i) (num-test (= 1234/11 1234/11 0.0+1.0i) #f) (num-test (+ 1234/11 1.234+1.234i 1) 114.41581818181818+1.234i) (num-test (- 1234/11 1.234+1.234i 1) 109.94781818181819-1.234i) (num-test (* 1234/11 1.234+1.234i 1) 138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1.234+1.234i 1) 45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1.234+1.234i 1) #f) (num-test (+ 1234/11 1.234+1.234i 1.0) 114.41581818181818+1.234i) (num-test (- 1234/11 1.234+1.234i 1.0) 109.94781818181819-1.234i) (num-test (* 1234/11 1.234+1.234i 1.0) 138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1.234+1.234i 1.0) 45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1.234+1.234i 1.0) #f) (num-test (+ 1234/11 1.234+1.234i 1/1) 114.41581818181818+1.234i) (num-test (- 1234/11 1.234+1.234i 1/1) 109.94781818181819-1.234i) (num-test (* 1234/11 1.234+1.234i 1/1) 138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1.234+1.234i 1/1) 45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1.234+1.234i 1/1) #f) (num-test (+ 1234/11 1.234+1.234i 1.0+1.0i) 114.41581818181818+2.234i) (num-test (- 1234/11 1.234+1.234i 1.0+1.0i) 109.94781818181819-2.234i) (num-test (* 1234/11 1.234+1.234i 1.0+1.0i) 0.0+276.86472727272729i) (num-test (/ 1234/11 1.234+1.234i 1.0+1.0i) 0.0-45.45454545454546i) (num-test (= 1234/11 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 1234/11 1.234+1.234i 0) 113.41581818181818+1.234i) (num-test (- 1234/11 1.234+1.234i 0) 110.94781818181819-1.234i) (num-test (* 1234/11 1.234+1.234i 0) 0.0) (num-test (+ 1234/11 1.234+1.234i 0.0) 113.41581818181818+1.234i) (num-test (- 1234/11 1.234+1.234i 0.0) 110.94781818181819-1.234i) (num-test (* 1234/11 1.234+1.234i 0.0) 0.0) (num-test (+ 1234/11 1.234+1.234i 1234) 1347.41581818181817+1.234i) (num-test (- 1234/11 1.234+1.234i 1234) -1123.05218181818191-1.234i) (num-test (* 1234/11 1.234+1.234i 1234) 170825.53672727273079+170825.53672727273079i) (num-test (/ 1234/11 1.234+1.234i 1234) 0.03683512597613-0.03683512597613i) (num-test (= 1234/11 1.234+1.234i 1234) #f) (num-test (+ 1234/11 1.234+1.234i 123.4) 236.81581818181820+1.234i) (num-test (- 1234/11 1.234+1.234i 123.4) -12.45218181818181-1.234i) (num-test (* 1234/11 1.234+1.234i 123.4) 17082.55367272727381+17082.55367272727381i) (num-test (/ 1234/11 1.234+1.234i 123.4) 0.36835125976131-0.36835125976131i) (num-test (= 1234/11 1.234+1.234i 123.4) #f) (num-test (+ 1234/11 1.234+1.234i 1234/11) 225.59763636363635+1.234i) (num-test (- 1234/11 1.234+1.234i 1234/11) -1.23399999999999-1.234i) (num-test (* 1234/11 1.234+1.234i 1234/11) 15529.59424793388644+15529.59424793388644i) (num-test (/ 1234/11 1.234+1.234i 1234/11) 0.40518638573744-0.40518638573744i) (num-test (= 1234/11 1.234+1.234i 1234/11) #f) (num-test (+ 1234/11 1.234+1.234i 1.234+1.234i) 114.64981818181818+2.468i) (num-test (- 1234/11 1.234+1.234i 1.234+1.234i) 109.71381818181820-2.468i) (num-test (* 1234/11 1.234+1.234i 1.234+1.234i) 0.0+341.65107345454550i) (num-test (/ 1234/11 1.234+1.234i 1.234+1.234i) 0.0-36.83512597613085i) (num-test (= 1234/11 1.234+1.234i 1.234+1.234i) #f) (num-test (+ 1234/11 1.234+1.234i -1.0+1.0i) 112.41581818181818+2.234i) (num-test (- 1234/11 1.234+1.234i -1.0+1.0i) 111.94781818181819-2.234i) (num-test (* 1234/11 1.234+1.234i -1.0+1.0i) -276.86472727272729) (num-test (/ 1234/11 1.234+1.234i -1.0+1.0i) -45.45454545454546) (num-test (= 1234/11 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 1234/11 1.234+1.234i 0.0+1.0i) 113.41581818181818+2.234i) (num-test (- 1234/11 1.234+1.234i 0.0+1.0i) 110.94781818181819-2.234i) (num-test (* 1234/11 1.234+1.234i 0.0+1.0i) -138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 1.234+1.234i 0.0+1.0i) -45.45454545454546-45.45454545454546i) (num-test (= 1234/11 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 1234/11 -1.0+1.0i 1) 112.18181818181819+1.0i) (num-test (- 1234/11 -1.0+1.0i 1) 112.18181818181819-1.0i) (num-test (* 1234/11 -1.0+1.0i 1) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 -1.0+1.0i 1) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 -1.0+1.0i 1) #f) (num-test (+ 1234/11 -1.0+1.0i 1.0) 112.18181818181819+1.0i) (num-test (- 1234/11 -1.0+1.0i 1.0) 112.18181818181819-1.0i) (num-test (* 1234/11 -1.0+1.0i 1.0) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 -1.0+1.0i 1.0) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 -1.0+1.0i 1.0) #f) (num-test (+ 1234/11 -1.0+1.0i 1/1) 112.18181818181819+1.0i) (num-test (- 1234/11 -1.0+1.0i 1/1) 112.18181818181819-1.0i) (num-test (* 1234/11 -1.0+1.0i 1/1) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 -1.0+1.0i 1/1) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 -1.0+1.0i 1/1) #f) (num-test (+ 1234/11 -1.0+1.0i 1.0+1.0i) 112.18181818181819+2.0i) (num-test (- 1234/11 -1.0+1.0i 1.0+1.0i) 112.18181818181819-2.0i) (num-test (* 1234/11 -1.0+1.0i 1.0+1.0i) -224.36363636363637) (num-test (/ 1234/11 -1.0+1.0i 1.0+1.0i) -56.09090909090909) (num-test (= 1234/11 -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1234/11 -1.0+1.0i 0) 111.18181818181819+1.0i) (num-test (- 1234/11 -1.0+1.0i 0) 113.18181818181819-1.0i) (num-test (* 1234/11 -1.0+1.0i 0) -0.0) (num-test (+ 1234/11 -1.0+1.0i 0.0) 111.18181818181819+1.0i) (num-test (- 1234/11 -1.0+1.0i 0.0) 113.18181818181819-1.0i) (num-test (* 1234/11 -1.0+1.0i 0.0) -0.0) (num-test (+ 1234/11 -1.0+1.0i 1234) 1345.18181818181824+1.0i) (num-test (- 1234/11 -1.0+1.0i 1234) -1120.81818181818176-1.0i) (num-test (* 1234/11 -1.0+1.0i 1234) -138432.36363636364695+138432.36363636364695i) (num-test (/ 1234/11 -1.0+1.0i 1234) -0.04545454545455-0.04545454545455i) (num-test (= 1234/11 -1.0+1.0i 1234) #f) (num-test (+ 1234/11 -1.0+1.0i 123.4) 234.58181818181819+1.0i) (num-test (- 1234/11 -1.0+1.0i 123.4) -10.21818181818182-1.0i) (num-test (* 1234/11 -1.0+1.0i 123.4) -13843.23636363636433+13843.23636363636433i) (num-test (/ 1234/11 -1.0+1.0i 123.4) -0.45454545454545-0.45454545454545i) (num-test (= 1234/11 -1.0+1.0i 123.4) #f) (num-test (+ 1234/11 -1.0+1.0i 1234/11) 223.36363636363637+1.0i) (num-test (- 1234/11 -1.0+1.0i 1234/11) 1.00000000000001-1.0i) (num-test (* 1234/11 -1.0+1.0i 1234/11) -12584.76033057851419+12584.76033057851419i) (num-test (/ 1234/11 -1.0+1.0i 1234/11) -0.5-0.5i) (num-test (= 1234/11 -1.0+1.0i 1234/11) #f) (num-test (+ 1234/11 -1.0+1.0i 1.234+1.234i) 112.41581818181818+2.234i) (num-test (- 1234/11 -1.0+1.0i 1.234+1.234i) 111.94781818181819-2.234i) (num-test (* 1234/11 -1.0+1.0i 1.234+1.234i) -276.86472727272729) (num-test (/ 1234/11 -1.0+1.0i 1.234+1.234i) -45.45454545454546) (num-test (= 1234/11 -1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1234/11 -1.0+1.0i -1.0+1.0i) 110.18181818181819+2.0i) (num-test (- 1234/11 -1.0+1.0i -1.0+1.0i) 114.18181818181819-2.0i) (num-test (* 1234/11 -1.0+1.0i -1.0+1.0i) 0.0-224.36363636363637i) (num-test (/ 1234/11 -1.0+1.0i -1.0+1.0i) -0.0+56.09090909090909i) (num-test (= 1234/11 -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1234/11 -1.0+1.0i 0.0+1.0i) 111.18181818181819+2.0i) (num-test (- 1234/11 -1.0+1.0i 0.0+1.0i) 113.18181818181819-2.0i) (num-test (* 1234/11 -1.0+1.0i 0.0+1.0i) -112.18181818181819-112.18181818181819i) (num-test (/ 1234/11 -1.0+1.0i 0.0+1.0i) -56.09090909090909+56.09090909090909i) (num-test (= 1234/11 -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1234/11 0.0+1.0i 1) 113.18181818181819+1.0i) (num-test (- 1234/11 0.0+1.0i 1) 111.18181818181819-1.0i) (num-test (* 1234/11 0.0+1.0i 1) 0.0+112.18181818181819i) (num-test (/ 1234/11 0.0+1.0i 1) 0.0-112.18181818181819i) (num-test (= 1234/11 0.0+1.0i 1) #f) (num-test (+ 1234/11 0.0+1.0i 1.0) 113.18181818181819+1.0i) (num-test (- 1234/11 0.0+1.0i 1.0) 111.18181818181819-1.0i) (num-test (* 1234/11 0.0+1.0i 1.0) 0.0+112.18181818181819i) (num-test (/ 1234/11 0.0+1.0i 1.0) 0.0-112.18181818181819i) (num-test (= 1234/11 0.0+1.0i 1.0) #f) (num-test (+ 1234/11 0.0+1.0i 1/1) 113.18181818181819+1.0i) (num-test (- 1234/11 0.0+1.0i 1/1) 111.18181818181819-1.0i) (num-test (* 1234/11 0.0+1.0i 1/1) 0.0+112.18181818181819i) (num-test (/ 1234/11 0.0+1.0i 1/1) 0.0-112.18181818181819i) (num-test (= 1234/11 0.0+1.0i 1/1) #f) (num-test (+ 1234/11 0.0+1.0i 1.0+1.0i) 113.18181818181819+2.0i) (num-test (- 1234/11 0.0+1.0i 1.0+1.0i) 111.18181818181819-2.0i) (num-test (* 1234/11 0.0+1.0i 1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 1234/11 0.0+1.0i 1.0+1.0i) -56.09090909090909-56.09090909090909i) (num-test (= 1234/11 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 1234/11 0.0+1.0i 0) 112.18181818181819+1.0i) (num-test (- 1234/11 0.0+1.0i 0) 112.18181818181819-1.0i) (num-test (* 1234/11 0.0+1.0i 0) 0.0) (num-test (+ 1234/11 0.0+1.0i 0.0) 112.18181818181819+1.0i) (num-test (- 1234/11 0.0+1.0i 0.0) 112.18181818181819-1.0i) (num-test (* 1234/11 0.0+1.0i 0.0) 0.0) (num-test (+ 1234/11 0.0+1.0i 1234) 1346.18181818181824+1.0i) (num-test (- 1234/11 0.0+1.0i 1234) -1121.81818181818176-1.0i) (num-test (* 1234/11 0.0+1.0i 1234) 0.0+138432.36363636364695i) (num-test (/ 1234/11 0.0+1.0i 1234) 0.0-0.09090909090909i) (num-test (= 1234/11 0.0+1.0i 1234) #f) (num-test (+ 1234/11 0.0+1.0i 123.4) 235.58181818181819+1.0i) (num-test (- 1234/11 0.0+1.0i 123.4) -11.21818181818182-1.0i) (num-test (* 1234/11 0.0+1.0i 123.4) 0.0+13843.23636363636433i) (num-test (/ 1234/11 0.0+1.0i 123.4) 0.0-0.90909090909091i) (num-test (= 1234/11 0.0+1.0i 123.4) #f) (num-test (+ 1234/11 0.0+1.0i 1234/11) 224.36363636363637+1.0i) (num-test (- 1234/11 0.0+1.0i 1234/11) 0.00000000000001-1.0i) (num-test (* 1234/11 0.0+1.0i 1234/11) 0.0+12584.76033057851419i) (num-test (/ 1234/11 0.0+1.0i 1234/11) 0.0-1.0i) (num-test (= 1234/11 0.0+1.0i 1234/11) #f) (num-test (+ 1234/11 0.0+1.0i 1.234+1.234i) 113.41581818181818+2.234i) (num-test (- 1234/11 0.0+1.0i 1.234+1.234i) 110.94781818181819-2.234i) (num-test (* 1234/11 0.0+1.0i 1.234+1.234i) -138.43236363636365+138.43236363636365i) (num-test (/ 1234/11 0.0+1.0i 1.234+1.234i) -45.45454545454546-45.45454545454546i) (num-test (= 1234/11 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 1234/11 0.0+1.0i -1.0+1.0i) 111.18181818181819+2.0i) (num-test (- 1234/11 0.0+1.0i -1.0+1.0i) 113.18181818181819-2.0i) (num-test (* 1234/11 0.0+1.0i -1.0+1.0i) -112.18181818181819-112.18181818181819i) (num-test (/ 1234/11 0.0+1.0i -1.0+1.0i) -56.09090909090909+56.09090909090909i) (num-test (= 1234/11 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 1234/11 0.0+1.0i 0.0+1.0i) 112.18181818181819+2.0i) (num-test (- 1234/11 0.0+1.0i 0.0+1.0i) 112.18181818181819-2.0i) (num-test (* 1234/11 0.0+1.0i 0.0+1.0i) -112.18181818181819) (num-test (/ 1234/11 0.0+1.0i 0.0+1.0i) -112.18181818181819) (num-test (= 1234/11 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 1 1) 3.234+1.234i) (num-test (- 1.234+1.234i 1 1) -0.766+1.234i) (num-test (* 1.234+1.234i 1 1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1 1) 1.234+1.234i) (num-test (= 1.234+1.234i 1 1) #f) (num-test (+ 1.234+1.234i 1 1.0) 3.234+1.234i) (num-test (- 1.234+1.234i 1 1.0) -0.766+1.234i) (num-test (* 1.234+1.234i 1 1.0) 1.234+1.234i) (num-test (/ 1.234+1.234i 1 1.0) 1.234+1.234i) (num-test (= 1.234+1.234i 1 1.0) #f) (num-test (+ 1.234+1.234i 1 1/1) 3.234+1.234i) (num-test (- 1.234+1.234i 1 1/1) -0.766+1.234i) (num-test (* 1.234+1.234i 1 1/1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1 1/1) 1.234+1.234i) (num-test (= 1.234+1.234i 1 1/1) #f) (num-test (+ 1.234+1.234i 1 1.0+1.0i) 3.234+2.234i) (num-test (- 1.234+1.234i 1 1.0+1.0i) -0.766+0.234i) (num-test (* 1.234+1.234i 1 1.0+1.0i) 0.0+2.468i) (num-test (/ 1.234+1.234i 1 1.0+1.0i) 1.234) (num-test (= 1.234+1.234i 1 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1 0) 2.234+1.234i) (num-test (- 1.234+1.234i 1 0) 0.234+1.234i) (num-test (* 1.234+1.234i 1 0) 0.0) (num-test (+ 1.234+1.234i 1 0.0) 2.234+1.234i) (num-test (- 1.234+1.234i 1 0.0) 0.234+1.234i) (num-test (* 1.234+1.234i 1 0.0) 0.0) (num-test (+ 1.234+1.234i 1 1234) 1236.23399999999992+1.234i) (num-test (- 1.234+1.234i 1 1234) -1233.766+1.234i) (num-test (* 1.234+1.234i 1 1234) 1522.756+1522.756i) (num-test (/ 1.234+1.234i 1 1234) 0.001+0.001i) (num-test (= 1.234+1.234i 1 1234) #f) (num-test (+ 1.234+1.234i 1 123.4) 125.634+1.234i) (num-test (- 1.234+1.234i 1 123.4) -123.16600000000001+1.234i) (num-test (* 1.234+1.234i 1 123.4) 152.2756+152.2756i) (num-test (/ 1.234+1.234i 1 123.4) 0.01+0.01i) (num-test (= 1.234+1.234i 1 123.4) #f) (num-test (+ 1.234+1.234i 1 1234/11) 114.41581818181818+1.234i) (num-test (- 1.234+1.234i 1 1234/11) -111.94781818181818+1.234i) (num-test (* 1.234+1.234i 1 1234/11) 138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1 1234/11) 0.011+0.011i) (num-test (= 1.234+1.234i 1 1234/11) #f) (num-test (+ 1.234+1.234i 1 1.234+1.234i) 3.468+2.468i) (num-test (- 1.234+1.234i 1 1.234+1.234i) -1.0) (num-test (* 1.234+1.234i 1 1.234+1.234i) 0.0+3.04551200000000i) (num-test (/ 1.234+1.234i 1 1.234+1.234i) 1.0) (num-test (= 1.234+1.234i 1 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 1 -1.0+1.0i) 1.234+2.234i) (num-test (- 1.234+1.234i 1 -1.0+1.0i) 1.234+0.234i) (num-test (* 1.234+1.234i 1 -1.0+1.0i) -2.468) (num-test (/ 1.234+1.234i 1 -1.0+1.0i) -0.0-1.234i) (num-test (= 1.234+1.234i 1 -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1 0.0+1.0i) 2.234+2.234i) (num-test (- 1.234+1.234i 1 0.0+1.0i) 0.234+0.234i) (num-test (* 1.234+1.234i 1 0.0+1.0i) -1.234+1.234i) (num-test (/ 1.234+1.234i 1 0.0+1.0i) 1.234-1.234i) (num-test (= 1.234+1.234i 1 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.0 1) 3.234+1.234i) (num-test (- 1.234+1.234i 1.0 1) -0.766+1.234i) (num-test (* 1.234+1.234i 1.0 1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1.0 1) 1.234+1.234i) (num-test (= 1.234+1.234i 1.0 1) #f) (num-test (+ 1.234+1.234i 1.0 1.0) 3.234+1.234i) (num-test (- 1.234+1.234i 1.0 1.0) -0.766+1.234i) (num-test (* 1.234+1.234i 1.0 1.0) 1.234+1.234i) (num-test (/ 1.234+1.234i 1.0 1.0) 1.234+1.234i) (num-test (= 1.234+1.234i 1.0 1.0) #f) (num-test (+ 1.234+1.234i 1.0 1/1) 3.234+1.234i) (num-test (- 1.234+1.234i 1.0 1/1) -0.766+1.234i) (num-test (* 1.234+1.234i 1.0 1/1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1.0 1/1) 1.234+1.234i) (num-test (= 1.234+1.234i 1.0 1/1) #f) (num-test (+ 1.234+1.234i 1.0 1.0+1.0i) 3.234+2.234i) (num-test (- 1.234+1.234i 1.0 1.0+1.0i) -0.766+0.234i) (num-test (* 1.234+1.234i 1.0 1.0+1.0i) 0.0+2.468i) (num-test (/ 1.234+1.234i 1.0 1.0+1.0i) 1.234) (num-test (= 1.234+1.234i 1.0 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.0 0) 2.234+1.234i) (num-test (- 1.234+1.234i 1.0 0) 0.234+1.234i) (num-test (* 1.234+1.234i 1.0 0) 0.0) (num-test (+ 1.234+1.234i 1.0 0.0) 2.234+1.234i) (num-test (- 1.234+1.234i 1.0 0.0) 0.234+1.234i) (num-test (* 1.234+1.234i 1.0 0.0) 0.0) (num-test (+ 1.234+1.234i 1.0 1234) 1236.23399999999992+1.234i) (num-test (- 1.234+1.234i 1.0 1234) -1233.766+1.234i) (num-test (* 1.234+1.234i 1.0 1234) 1522.756+1522.756i) (num-test (/ 1.234+1.234i 1.0 1234) 0.001+0.001i) (num-test (= 1.234+1.234i 1.0 1234) #f) (num-test (+ 1.234+1.234i 1.0 123.4) 125.634+1.234i) (num-test (- 1.234+1.234i 1.0 123.4) -123.16600000000001+1.234i) (num-test (* 1.234+1.234i 1.0 123.4) 152.2756+152.2756i) (num-test (/ 1.234+1.234i 1.0 123.4) 0.01+0.01i) (num-test (= 1.234+1.234i 1.0 123.4) #f) (num-test (+ 1.234+1.234i 1.0 1234/11) 114.41581818181818+1.234i) (num-test (- 1.234+1.234i 1.0 1234/11) -111.94781818181818+1.234i) (num-test (* 1.234+1.234i 1.0 1234/11) 138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1.0 1234/11) 0.011+0.011i) (num-test (= 1.234+1.234i 1.0 1234/11) #f) (num-test (+ 1.234+1.234i 1.0 1.234+1.234i) 3.468+2.468i) (num-test (- 1.234+1.234i 1.0 1.234+1.234i) -1.0) (num-test (* 1.234+1.234i 1.0 1.234+1.234i) 0.0+3.04551200000000i) (num-test (/ 1.234+1.234i 1.0 1.234+1.234i) 1.0) (num-test (= 1.234+1.234i 1.0 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 1.0 -1.0+1.0i) 1.234+2.234i) (num-test (- 1.234+1.234i 1.0 -1.0+1.0i) 1.234+0.234i) (num-test (* 1.234+1.234i 1.0 -1.0+1.0i) -2.468) (num-test (/ 1.234+1.234i 1.0 -1.0+1.0i) -0.0-1.234i) (num-test (= 1.234+1.234i 1.0 -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.0 0.0+1.0i) 2.234+2.234i) (num-test (- 1.234+1.234i 1.0 0.0+1.0i) 0.234+0.234i) (num-test (* 1.234+1.234i 1.0 0.0+1.0i) -1.234+1.234i) (num-test (/ 1.234+1.234i 1.0 0.0+1.0i) 1.234-1.234i) (num-test (= 1.234+1.234i 1.0 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 1/1 1) 3.234+1.234i) (num-test (- 1.234+1.234i 1/1 1) -0.766+1.234i) (num-test (* 1.234+1.234i 1/1 1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1/1 1) 1.234+1.234i) (num-test (= 1.234+1.234i 1/1 1) #f) (num-test (+ 1.234+1.234i 1/1 1.0) 3.234+1.234i) (num-test (- 1.234+1.234i 1/1 1.0) -0.766+1.234i) (num-test (* 1.234+1.234i 1/1 1.0) 1.234+1.234i) (num-test (/ 1.234+1.234i 1/1 1.0) 1.234+1.234i) (num-test (= 1.234+1.234i 1/1 1.0) #f) (num-test (+ 1.234+1.234i 1/1 1/1) 3.234+1.234i) (num-test (- 1.234+1.234i 1/1 1/1) -0.766+1.234i) (num-test (* 1.234+1.234i 1/1 1/1) 1.234+1.234i) (num-test (/ 1.234+1.234i 1/1 1/1) 1.234+1.234i) (num-test (= 1.234+1.234i 1/1 1/1) #f) (num-test (+ 1.234+1.234i 1/1 1.0+1.0i) 3.234+2.234i) (num-test (- 1.234+1.234i 1/1 1.0+1.0i) -0.766+0.234i) (num-test (* 1.234+1.234i 1/1 1.0+1.0i) 0.0+2.468i) (num-test (/ 1.234+1.234i 1/1 1.0+1.0i) 1.234) (num-test (= 1.234+1.234i 1/1 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1/1 0) 2.234+1.234i) (num-test (- 1.234+1.234i 1/1 0) 0.234+1.234i) (num-test (* 1.234+1.234i 1/1 0) 0.0) (num-test (+ 1.234+1.234i 1/1 0.0) 2.234+1.234i) (num-test (- 1.234+1.234i 1/1 0.0) 0.234+1.234i) (num-test (* 1.234+1.234i 1/1 0.0) 0.0) (num-test (+ 1.234+1.234i 1/1 1234) 1236.23399999999992+1.234i) (num-test (- 1.234+1.234i 1/1 1234) -1233.766+1.234i) (num-test (* 1.234+1.234i 1/1 1234) 1522.756+1522.756i) (num-test (/ 1.234+1.234i 1/1 1234) 0.001+0.001i) (num-test (= 1.234+1.234i 1/1 1234) #f) (num-test (+ 1.234+1.234i 1/1 123.4) 125.634+1.234i) (num-test (- 1.234+1.234i 1/1 123.4) -123.16600000000001+1.234i) (num-test (* 1.234+1.234i 1/1 123.4) 152.2756+152.2756i) (num-test (/ 1.234+1.234i 1/1 123.4) 0.01+0.01i) (num-test (= 1.234+1.234i 1/1 123.4) #f) (num-test (+ 1.234+1.234i 1/1 1234/11) 114.41581818181818+1.234i) (num-test (- 1.234+1.234i 1/1 1234/11) -111.94781818181818+1.234i) (num-test (* 1.234+1.234i 1/1 1234/11) 138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1/1 1234/11) 0.011+0.011i) (num-test (= 1.234+1.234i 1/1 1234/11) #f) (num-test (+ 1.234+1.234i 1/1 1.234+1.234i) 3.468+2.468i) (num-test (- 1.234+1.234i 1/1 1.234+1.234i) -1.0) (num-test (* 1.234+1.234i 1/1 1.234+1.234i) 0.0+3.04551200000000i) (num-test (/ 1.234+1.234i 1/1 1.234+1.234i) 1.0) (num-test (= 1.234+1.234i 1/1 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 1/1 -1.0+1.0i) 1.234+2.234i) (num-test (- 1.234+1.234i 1/1 -1.0+1.0i) 1.234+0.234i) (num-test (* 1.234+1.234i 1/1 -1.0+1.0i) -2.468) (num-test (/ 1.234+1.234i 1/1 -1.0+1.0i) -0.0-1.234i) (num-test (= 1.234+1.234i 1/1 -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1/1 0.0+1.0i) 2.234+2.234i) (num-test (- 1.234+1.234i 1/1 0.0+1.0i) 0.234+0.234i) (num-test (* 1.234+1.234i 1/1 0.0+1.0i) -1.234+1.234i) (num-test (/ 1.234+1.234i 1/1 0.0+1.0i) 1.234-1.234i) (num-test (= 1.234+1.234i 1/1 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 1) 3.234+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 1) -0.766+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 1) 0.0+2.468i) (num-test (/ 1.234+1.234i 1.0+1.0i 1) 1.234) (num-test (= 1.234+1.234i 1.0+1.0i 1) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 1.0) 3.234+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 1.0) -0.766+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 1.0) 0.0+2.468i) (num-test (/ 1.234+1.234i 1.0+1.0i 1.0) 1.234) (num-test (= 1.234+1.234i 1.0+1.0i 1.0) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 1/1) 3.234+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 1/1) -0.766+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 1/1) 0.0+2.468i) (num-test (/ 1.234+1.234i 1.0+1.0i 1/1) 1.234) (num-test (= 1.234+1.234i 1.0+1.0i 1/1) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 1.0+1.0i) 3.234+3.234i) (num-test (- 1.234+1.234i 1.0+1.0i 1.0+1.0i) -0.766-0.766i) (num-test (* 1.234+1.234i 1.0+1.0i 1.0+1.0i) -2.468+2.468i) (num-test (/ 1.234+1.234i 1.0+1.0i 1.0+1.0i) 0.617-0.617i) (num-test (= 1.234+1.234i 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 0) 2.234+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 0) 0.234+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 0) 0.0) (num-test (+ 1.234+1.234i 1.0+1.0i 0.0) 2.234+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 0.0) 0.234+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 0.0) 0.0) (num-test (+ 1.234+1.234i 1.0+1.0i 1234) 1236.23399999999992+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 1234) -1233.766+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 1234) 0.0+3045.51200000000017i) (num-test (/ 1.234+1.234i 1.0+1.0i 1234) 0.001) (num-test (= 1.234+1.234i 1.0+1.0i 1234) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 123.4) 125.634+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 123.4) -123.16600000000001+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 123.4) 0.0+304.55119999999999i) (num-test (/ 1.234+1.234i 1.0+1.0i 123.4) 0.01) (num-test (= 1.234+1.234i 1.0+1.0i 123.4) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 1234/11) 114.41581818181818+2.234i) (num-test (- 1.234+1.234i 1.0+1.0i 1234/11) -111.94781818181818+0.234i) (num-test (* 1.234+1.234i 1.0+1.0i 1234/11) 0.0+276.86472727272729i) (num-test (/ 1.234+1.234i 1.0+1.0i 1234/11) 0.011) (num-test (= 1.234+1.234i 1.0+1.0i 1234/11) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 1.234+1.234i) 3.468+3.468i) (num-test (- 1.234+1.234i 1.0+1.0i 1.234+1.234i) -1.0-1.0i) (num-test (* 1.234+1.234i 1.0+1.0i 1.234+1.234i) -3.04551200000000+3.04551200000000i) (num-test (/ 1.234+1.234i 1.0+1.0i 1.234+1.234i) 0.5-0.5i) (num-test (= 1.234+1.234i 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 1.0+1.0i -1.0+1.0i) 1.234+3.234i) (num-test (- 1.234+1.234i 1.0+1.0i -1.0+1.0i) 1.234-0.766i) (num-test (* 1.234+1.234i 1.0+1.0i -1.0+1.0i) -2.468-2.468i) (num-test (/ 1.234+1.234i 1.0+1.0i -1.0+1.0i) -0.617-0.617i) (num-test (= 1.234+1.234i 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.0+1.0i 0.0+1.0i) 2.234+3.234i) (num-test (- 1.234+1.234i 1.0+1.0i 0.0+1.0i) 0.234-0.766i) (num-test (* 1.234+1.234i 1.0+1.0i 0.0+1.0i) -2.468) (num-test (/ 1.234+1.234i 1.0+1.0i 0.0+1.0i) 0.0-1.234i) (num-test (= 1.234+1.234i 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 0 1) 2.234+1.234i) (num-test (- 1.234+1.234i 0 1) 0.234+1.234i) (num-test (* 1.234+1.234i 0 1) 0.0) (num-test (+ 1.234+1.234i 0 1.0) 2.234+1.234i) (num-test (- 1.234+1.234i 0 1.0) 0.234+1.234i) (num-test (* 1.234+1.234i 0 1.0) 0.0) (num-test (+ 1.234+1.234i 0 1/1) 2.234+1.234i) (num-test (- 1.234+1.234i 0 1/1) 0.234+1.234i) (num-test (* 1.234+1.234i 0 1/1) 0.0) (num-test (+ 1.234+1.234i 0 1.0+1.0i) 2.234+2.234i) (num-test (- 1.234+1.234i 0 1.0+1.0i) 0.234+0.234i) (num-test (* 1.234+1.234i 0 1.0+1.0i) 0.0) (num-test (+ 1.234+1.234i 0 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) 0.0) (num-test (+ 1.234+1.234i 0 0.0) 1.234+1.234i) (num-test (- 1.234+1.234i 0 0.0) 1.234+1.234i) (num-test (* 1.234+1.234i 0 0.0) 0.0) (num-test (+ 1.234+1.234i 0 1234) 1235.23399999999992+1.234i) (num-test (- 1.234+1.234i 0 1234) -1232.766+1.234i) (num-test (* 1.234+1.234i 0 1234) 0.0) (num-test (+ 1.234+1.234i 0 123.4) 124.634+1.234i) (num-test (- 1.234+1.234i 0 123.4) -122.16600000000001+1.234i) (num-test (* 1.234+1.234i 0 123.4) 0.0) (num-test (+ 1.234+1.234i 0 1234/11) 113.41581818181818+1.234i) (num-test (- 1.234+1.234i 0 1234/11) -110.94781818181818+1.234i) (num-test (* 1.234+1.234i 0 1234/11) 0.0) (num-test (+ 1.234+1.234i 0 1.234+1.234i) 2.468+2.468i) (num-test (- 1.234+1.234i 0 1.234+1.234i) 0.0) (num-test (* 1.234+1.234i 0 1.234+1.234i) 0.0) (num-test (+ 1.234+1.234i 0 -1.0+1.0i) 0.234+2.234i) (num-test (- 1.234+1.234i 0 -1.0+1.0i) 2.234+0.234i) (num-test (* 1.234+1.234i 0 -1.0+1.0i) -0.0) (num-test (+ 1.234+1.234i 0 0.0+1.0i) 1.234+2.234i) (num-test (- 1.234+1.234i 0 0.0+1.0i) 1.234+0.234i) (num-test (* 1.234+1.234i 0 0.0+1.0i) 0.0) (num-test (+ 1.234+1.234i 0.0 1) 2.234+1.234i) (num-test (- 1.234+1.234i 0.0 1) 0.234+1.234i) (num-test (* 1.234+1.234i 0.0 1) 0.0) (num-test (+ 1.234+1.234i 0.0 1.0) 2.234+1.234i) (num-test (- 1.234+1.234i 0.0 1.0) 0.234+1.234i) (num-test (* 1.234+1.234i 0.0 1.0) 0.0) (num-test (+ 1.234+1.234i 0.0 1/1) 2.234+1.234i) (num-test (- 1.234+1.234i 0.0 1/1) 0.234+1.234i) (num-test (* 1.234+1.234i 0.0 1/1) 0.0) (num-test (+ 1.234+1.234i 0.0 1.0+1.0i) 2.234+2.234i) (num-test (- 1.234+1.234i 0.0 1.0+1.0i) 0.234+0.234i) (num-test (* 1.234+1.234i 0.0 1.0+1.0i) 0.0) (num-test (+ 1.234+1.234i 0.0 0) 1.234+1.234i) (num-test (- 1.234+1.234i 0.0 0) 1.234+1.234i) (num-test (* 1.234+1.234i 0.0 0) 0.0) (num-test (+ 1.234+1.234i 0.0 0.0) 1.234+1.234i) (num-test (- 1.234+1.234i 0.0 0.0) 1.234+1.234i) (num-test (* 1.234+1.234i 0.0 0.0) 0.0) (num-test (+ 1.234+1.234i 0.0 1234) 1235.23399999999992+1.234i) (num-test (- 1.234+1.234i 0.0 1234) -1232.766+1.234i) (num-test (* 1.234+1.234i 0.0 1234) 0.0) (num-test (+ 1.234+1.234i 0.0 123.4) 124.634+1.234i) (num-test (- 1.234+1.234i 0.0 123.4) -122.166+1.234i) (num-test (* 1.234+1.234i 0.0 123.4) 0.0) (num-test (+ 1.234+1.234i 0.0 1234/11) 113.41581818181818+1.234i) (num-test (- 1.234+1.234i 0.0 1234/11) -110.94781818181818+1.234i) (num-test (* 1.234+1.234i 0.0 1234/11) 0.0) (num-test (+ 1.234+1.234i 0.0 1.234+1.234i) 2.468+2.468i) (num-test (- 1.234+1.234i 0.0 1.234+1.234i) 0.0) (num-test (* 1.234+1.234i 0.0 1.234+1.234i) 0.0) (num-test (+ 1.234+1.234i 0.0 -1.0+1.0i) 0.234+2.234i) (num-test (- 1.234+1.234i 0.0 -1.0+1.0i) 2.234+0.234i) (num-test (* 1.234+1.234i 0.0 -1.0+1.0i) -0.0) (num-test (+ 1.234+1.234i 0.0 0.0+1.0i) 1.234+2.234i) (num-test (- 1.234+1.234i 0.0 0.0+1.0i) 1.234+0.234i) (num-test (* 1.234+1.234i 0.0 0.0+1.0i) 0.0) (num-test (+ 1.234+1.234i 1234 1) 1236.23399999999992+1.234i) (num-test (- 1.234+1.234i 1234 1) -1233.766+1.234i) (num-test (* 1.234+1.234i 1234 1) 1522.756+1522.756i) (num-test (/ 1.234+1.234i 1234 1) 0.001+0.001i) (num-test (= 1.234+1.234i 1234 1) #f) (num-test (+ 1.234+1.234i 1234 1.0) 1236.23399999999992+1.234i) (num-test (- 1.234+1.234i 1234 1.0) -1233.766+1.234i) (num-test (* 1.234+1.234i 1234 1.0) 1522.756+1522.756i) (num-test (/ 1.234+1.234i 1234 1.0) 0.001+0.001i) (num-test (= 1.234+1.234i 1234 1.0) #f) (num-test (+ 1.234+1.234i 1234 1/1) 1236.23399999999992+1.234i) (num-test (- 1.234+1.234i 1234 1/1) -1233.766+1.234i) (num-test (* 1.234+1.234i 1234 1/1) 1522.756+1522.756i) (num-test (/ 1.234+1.234i 1234 1/1) 0.001+0.001i) (num-test (= 1.234+1.234i 1234 1/1) #f) (num-test (+ 1.234+1.234i 1234 1.0+1.0i) 1236.23399999999992+2.234i) (num-test (- 1.234+1.234i 1234 1.0+1.0i) -1233.766+0.234i) (num-test (* 1.234+1.234i 1234 1.0+1.0i) 0.0+3045.51200000000017i) (num-test (/ 1.234+1.234i 1234 1.0+1.0i) 0.001) (num-test (= 1.234+1.234i 1234 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1234 0) 1235.23399999999992+1.234i) (num-test (- 1.234+1.234i 1234 0) -1232.766+1.234i) (num-test (* 1.234+1.234i 1234 0) 0.0) (num-test (+ 1.234+1.234i 1234 0.0) 1235.23399999999992+1.234i) (num-test (- 1.234+1.234i 1234 0.0) -1232.766+1.234i) (num-test (* 1.234+1.234i 1234 0.0) 0.0) (num-test (+ 1.234+1.234i 1234 1234) 2469.23399999999992+1.234i) (num-test (- 1.234+1.234i 1234 1234) -2466.766+1.234i) (num-test (* 1.234+1.234i 1234 1234) 1879080.90400000009686+1879080.90400000009686i) (num-test (/ 1.234+1.234i 1234 1234) 0.00000081037277+0.00000081037277i) (num-test (= 1.234+1.234i 1234 1234) #f) (num-test (+ 1.234+1.234i 1234 123.4) 1358.63400000000001+1.234i) (num-test (- 1.234+1.234i 1234 123.4) -1356.16600000000017+1.234i) (num-test (* 1.234+1.234i 1234 123.4) 187908.09040000001551+187908.09040000001551i) (num-test (/ 1.234+1.234i 1234 123.4) 0.00000810372771+0.00000810372771i) (num-test (= 1.234+1.234i 1234 123.4) #f) (num-test (+ 1.234+1.234i 1234 1234/11) 1347.41581818181817+1.234i) (num-test (- 1.234+1.234i 1234 1234/11) -1344.94781818181832+1.234i) (num-test (* 1.234+1.234i 1234 1234/11) 170825.53672727273079+170825.53672727273079i) (num-test (/ 1.234+1.234i 1234 1234/11) 0.00000891410049+0.00000891410049i) (num-test (= 1.234+1.234i 1234 1234/11) #f) (num-test (+ 1.234+1.234i 1234 1.234+1.234i) 1236.46799999999985+2.468i) (num-test (- 1.234+1.234i 1234 1.234+1.234i) -1234.0) (num-test (* 1.234+1.234i 1234 1.234+1.234i) 0.0+3758.16180800000029i) (num-test (/ 1.234+1.234i 1234 1.234+1.234i) 0.00081037277147) (num-test (= 1.234+1.234i 1234 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 1234 -1.0+1.0i) 1234.23399999999992+2.234i) (num-test (- 1.234+1.234i 1234 -1.0+1.0i) -1231.766+0.234i) (num-test (* 1.234+1.234i 1234 -1.0+1.0i) -3045.51200000000017) (num-test (/ 1.234+1.234i 1234 -1.0+1.0i) -0.0-0.001i) (num-test (= 1.234+1.234i 1234 -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1234 0.0+1.0i) 1235.23399999999992+2.234i) (num-test (- 1.234+1.234i 1234 0.0+1.0i) -1232.766+0.234i) (num-test (* 1.234+1.234i 1234 0.0+1.0i) -1522.756+1522.756i) (num-test (/ 1.234+1.234i 1234 0.0+1.0i) 0.001-0.001i) (num-test (= 1.234+1.234i 1234 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 123.4 1) 125.634+1.234i) (num-test (- 1.234+1.234i 123.4 1) -123.16600000000001+1.234i) (num-test (* 1.234+1.234i 123.4 1) 152.2756+152.2756i) (num-test (/ 1.234+1.234i 123.4 1) 0.01+0.01i) (num-test (= 1.234+1.234i 123.4 1) #f) (num-test (+ 1.234+1.234i 123.4 1.0) 125.634+1.234i) (num-test (- 1.234+1.234i 123.4 1.0) -123.16600000000001+1.234i) (num-test (* 1.234+1.234i 123.4 1.0) 152.2756+152.2756i) (num-test (/ 1.234+1.234i 123.4 1.0) 0.01+0.01i) (num-test (= 1.234+1.234i 123.4 1.0) #f) (num-test (+ 1.234+1.234i 123.4 1/1) 125.634+1.234i) (num-test (- 1.234+1.234i 123.4 1/1) -123.16600000000001+1.234i) (num-test (* 1.234+1.234i 123.4 1/1) 152.2756+152.2756i) (num-test (/ 1.234+1.234i 123.4 1/1) 0.01+0.01i) (num-test (= 1.234+1.234i 123.4 1/1) #f) (num-test (+ 1.234+1.234i 123.4 1.0+1.0i) 125.634+2.234i) (num-test (- 1.234+1.234i 123.4 1.0+1.0i) -123.16600000000001+0.234i) (num-test (* 1.234+1.234i 123.4 1.0+1.0i) 0.0+304.55119999999999i) (num-test (/ 1.234+1.234i 123.4 1.0+1.0i) 0.01) (num-test (= 1.234+1.234i 123.4 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 123.4 0) 124.634+1.234i) (num-test (- 1.234+1.234i 123.4 0) -122.16600000000001+1.234i) (num-test (* 1.234+1.234i 123.4 0) 0.0) (num-test (+ 1.234+1.234i 123.4 0.0) 124.634+1.234i) (num-test (- 1.234+1.234i 123.4 0.0) -122.16600000000001+1.234i) (num-test (* 1.234+1.234i 123.4 0.0) 0.0) (num-test (+ 1.234+1.234i 123.4 1234) 1358.63400000000001+1.234i) (num-test (- 1.234+1.234i 123.4 1234) -1356.16599999999994+1.234i) (num-test (* 1.234+1.234i 123.4 1234) 187908.09039999998640+187908.09039999998640i) (num-test (/ 1.234+1.234i 123.4 1234) 0.00000810372771+0.00000810372771i) (num-test (= 1.234+1.234i 123.4 1234) #f) (num-test (+ 1.234+1.234i 123.4 123.4) 248.03399999999999+1.234i) (num-test (- 1.234+1.234i 123.4 123.4) -245.56600000000003+1.234i) (num-test (* 1.234+1.234i 123.4 123.4) 18790.80904000000010+18790.80904000000010i) (num-test (/ 1.234+1.234i 123.4 123.4) 0.00008103727715+0.00008103727715i) (num-test (= 1.234+1.234i 123.4 123.4) #f) (num-test (+ 1.234+1.234i 123.4 1234/11) 236.81581818181817+1.234i) (num-test (- 1.234+1.234i 123.4 1234/11) -234.34781818181818+1.234i) (num-test (* 1.234+1.234i 123.4 1234/11) 17082.55367272727381+17082.55367272727381i) (num-test (/ 1.234+1.234i 123.4 1234/11) 0.00008914100486+0.00008914100486i) (num-test (= 1.234+1.234i 123.4 1234/11) #f) (num-test (+ 1.234+1.234i 123.4 1.234+1.234i) 125.86799999999999+2.468i) (num-test (- 1.234+1.234i 123.4 1.234+1.234i) -123.4) (num-test (* 1.234+1.234i 123.4 1.234+1.234i) 0.0+375.81618079999998i) (num-test (/ 1.234+1.234i 123.4 1.234+1.234i) 0.00810372771475) (num-test (= 1.234+1.234i 123.4 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 123.4 -1.0+1.0i) 123.634+2.234i) (num-test (- 1.234+1.234i 123.4 -1.0+1.0i) -121.16600000000001+0.234i) (num-test (* 1.234+1.234i 123.4 -1.0+1.0i) -304.55119999999999) (num-test (/ 1.234+1.234i 123.4 -1.0+1.0i) -0.0-0.01i) (num-test (= 1.234+1.234i 123.4 -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 123.4 0.0+1.0i) 124.634+2.234i) (num-test (- 1.234+1.234i 123.4 0.0+1.0i) -122.16600000000001+0.234i) (num-test (* 1.234+1.234i 123.4 0.0+1.0i) -152.2756+152.2756i) (num-test (/ 1.234+1.234i 123.4 0.0+1.0i) 0.01-0.01i) (num-test (= 1.234+1.234i 123.4 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 1234/11 1) 114.41581818181818+1.234i) (num-test (- 1.234+1.234i 1234/11 1) -111.94781818181818+1.234i) (num-test (* 1.234+1.234i 1234/11 1) 138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1234/11 1) 0.011+0.011i) (num-test (= 1.234+1.234i 1234/11 1) #f) (num-test (+ 1.234+1.234i 1234/11 1.0) 114.41581818181818+1.234i) (num-test (- 1.234+1.234i 1234/11 1.0) -111.94781818181818+1.234i) (num-test (* 1.234+1.234i 1234/11 1.0) 138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1234/11 1.0) 0.011+0.011i) (num-test (= 1.234+1.234i 1234/11 1.0) #f) (num-test (+ 1.234+1.234i 1234/11 1/1) 114.41581818181818+1.234i) (num-test (- 1.234+1.234i 1234/11 1/1) -111.94781818181818+1.234i) (num-test (* 1.234+1.234i 1234/11 1/1) 138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1234/11 1/1) 0.011+0.011i) (num-test (= 1.234+1.234i 1234/11 1/1) #f) (num-test (+ 1.234+1.234i 1234/11 1.0+1.0i) 114.41581818181818+2.234i) (num-test (- 1.234+1.234i 1234/11 1.0+1.0i) -111.94781818181818+0.234i) (num-test (* 1.234+1.234i 1234/11 1.0+1.0i) 0.0+276.86472727272729i) (num-test (/ 1.234+1.234i 1234/11 1.0+1.0i) 0.011) (num-test (= 1.234+1.234i 1234/11 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1234/11 0) 113.41581818181818+1.234i) (num-test (- 1.234+1.234i 1234/11 0) -110.94781818181818+1.234i) (num-test (* 1.234+1.234i 1234/11 0) 0.0) (num-test (+ 1.234+1.234i 1234/11 0.0) 113.41581818181818+1.234i) (num-test (- 1.234+1.234i 1234/11 0.0) -110.94781818181818+1.234i) (num-test (* 1.234+1.234i 1234/11 0.0) 0.0) (num-test (+ 1.234+1.234i 1234/11 1234) 1347.41581818181817+1.234i) (num-test (- 1.234+1.234i 1234/11 1234) -1344.94781818181809+1.234i) (num-test (* 1.234+1.234i 1234/11 1234) 170825.53672727273079+170825.53672727273079i) (num-test (/ 1.234+1.234i 1234/11 1234) 0.00000891410049+0.00000891410049i) (num-test (= 1.234+1.234i 1234/11 1234) #f) (num-test (+ 1.234+1.234i 1234/11 123.4) 236.81581818181820+1.234i) (num-test (- 1.234+1.234i 1234/11 123.4) -234.34781818181818+1.234i) (num-test (* 1.234+1.234i 1234/11 123.4) 17082.55367272727381+17082.55367272727381i) (num-test (/ 1.234+1.234i 1234/11 123.4) 0.00008914100486+0.00008914100486i) (num-test (= 1.234+1.234i 1234/11 123.4) #f) (num-test (+ 1.234+1.234i 1234/11 1234/11) 225.59763636363635+1.234i) (num-test (- 1.234+1.234i 1234/11 1234/11) -223.12963636363637+1.234i) (num-test (* 1.234+1.234i 1234/11 1234/11) 15529.59424793388644+15529.59424793388644i) (num-test (/ 1.234+1.234i 1234/11 1234/11) 0.00009805510535+0.00009805510535i) (num-test (= 1.234+1.234i 1234/11 1234/11) #f) (num-test (+ 1.234+1.234i 1234/11 1.234+1.234i) 114.64981818181818+2.468i) (num-test (- 1.234+1.234i 1234/11 1.234+1.234i) -112.18181818181817) (num-test (* 1.234+1.234i 1234/11 1.234+1.234i) 0.0+341.65107345454550i) (num-test (/ 1.234+1.234i 1234/11 1.234+1.234i) 0.00891410048622) (num-test (= 1.234+1.234i 1234/11 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 1234/11 -1.0+1.0i) 112.41581818181818+2.234i) (num-test (- 1.234+1.234i 1234/11 -1.0+1.0i) -109.94781818181818+0.234i) (num-test (* 1.234+1.234i 1234/11 -1.0+1.0i) -276.86472727272729) (num-test (/ 1.234+1.234i 1234/11 -1.0+1.0i) -0.0-0.011i) (num-test (= 1.234+1.234i 1234/11 -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1234/11 0.0+1.0i) 113.41581818181818+2.234i) (num-test (- 1.234+1.234i 1234/11 0.0+1.0i) -110.94781818181818+0.234i) (num-test (* 1.234+1.234i 1234/11 0.0+1.0i) -138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 1234/11 0.0+1.0i) 0.011-0.011i) (num-test (= 1.234+1.234i 1234/11 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 1) 3.468+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 1) -1.0) (num-test (* 1.234+1.234i 1.234+1.234i 1) 0.0+3.04551200000000i) (num-test (/ 1.234+1.234i 1.234+1.234i 1) 1.0) (num-test (= 1.234+1.234i 1.234+1.234i 1) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 1.0) 3.468+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 1.0) -1.0) (num-test (* 1.234+1.234i 1.234+1.234i 1.0) 0.0+3.04551200000000i) (num-test (/ 1.234+1.234i 1.234+1.234i 1.0) 1.0) (num-test (= 1.234+1.234i 1.234+1.234i 1.0) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 1/1) 3.468+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 1/1) -1.0) (num-test (* 1.234+1.234i 1.234+1.234i 1/1) 0.0+3.04551200000000i) (num-test (/ 1.234+1.234i 1.234+1.234i 1/1) 1.0) (num-test (= 1.234+1.234i 1.234+1.234i 1/1) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 1.0+1.0i) 3.468+3.468i) (num-test (- 1.234+1.234i 1.234+1.234i 1.0+1.0i) -1.0-1.0i) (num-test (* 1.234+1.234i 1.234+1.234i 1.0+1.0i) -3.04551200000000+3.04551200000000i) (num-test (/ 1.234+1.234i 1.234+1.234i 1.0+1.0i) 0.5-0.5i) (num-test (= 1.234+1.234i 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 0) 2.468+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 0) 0.0) (num-test (* 1.234+1.234i 1.234+1.234i 0) 0.0) (num-test (+ 1.234+1.234i 1.234+1.234i 0.0) 2.468+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 0.0) 0.0) (num-test (* 1.234+1.234i 1.234+1.234i 0.0) 0.0) (num-test (+ 1.234+1.234i 1.234+1.234i 1234) 1236.46800000000007+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 1234) -1234.0) (num-test (* 1.234+1.234i 1.234+1.234i 1234) 0.0+3758.16180799999984i) (num-test (/ 1.234+1.234i 1.234+1.234i 1234) 0.00081037277147) (num-test (= 1.234+1.234i 1.234+1.234i 1234) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 123.4) 125.86800000000001+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 123.4) -123.4) (num-test (* 1.234+1.234i 1.234+1.234i 123.4) 0.0+375.81618080000004i) (num-test (/ 1.234+1.234i 1.234+1.234i 123.4) 0.00810372771475) (num-test (= 1.234+1.234i 1.234+1.234i 123.4) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 1234/11) 114.64981818181818+2.468i) (num-test (- 1.234+1.234i 1.234+1.234i 1234/11) -112.18181818181819) (num-test (* 1.234+1.234i 1.234+1.234i 1234/11) 0.0+341.65107345454550i) (num-test (/ 1.234+1.234i 1.234+1.234i 1234/11) 0.00891410048622) (num-test (= 1.234+1.234i 1.234+1.234i 1234/11) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 1.234+1.234i) 3.70200000000000+3.70200000000000i) (num-test (- 1.234+1.234i 1.234+1.234i 1.234+1.234i) -1.234-1.234i) (num-test (* 1.234+1.234i 1.234+1.234i 1.234+1.234i) -3.75816180800000+3.75816180800000i) (num-test (/ 1.234+1.234i 1.234+1.234i 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 1.234+1.234i 1.234+1.234i 1.234+1.234i) #t) (num-test (+ 1.234+1.234i 1.234+1.234i -1.0+1.0i) 1.468+3.468i) (num-test (- 1.234+1.234i 1.234+1.234i -1.0+1.0i) 1.0-1.0i) (num-test (* 1.234+1.234i 1.234+1.234i -1.0+1.0i) -3.04551200000000-3.04551200000000i) (num-test (/ 1.234+1.234i 1.234+1.234i -1.0+1.0i) -0.5-0.5i) (num-test (= 1.234+1.234i 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 1.234+1.234i 0.0+1.0i) 2.468+3.468i) (num-test (- 1.234+1.234i 1.234+1.234i 0.0+1.0i) 0.0-1.0i) (num-test (* 1.234+1.234i 1.234+1.234i 0.0+1.0i) -3.04551200000000) (num-test (/ 1.234+1.234i 1.234+1.234i 0.0+1.0i) 0.0-1.0i) (num-test (= 1.234+1.234i 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 1) 1.234+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 1) 1.234+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 1) -2.468) (num-test (/ 1.234+1.234i -1.0+1.0i 1) -0.0-1.234i) (num-test (= 1.234+1.234i -1.0+1.0i 1) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 1.0) 1.234+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 1.0) 1.234+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 1.0) -2.468) (num-test (/ 1.234+1.234i -1.0+1.0i 1.0) -0.0-1.234i) (num-test (= 1.234+1.234i -1.0+1.0i 1.0) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 1/1) 1.234+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 1/1) 1.234+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 1/1) -2.468) (num-test (/ 1.234+1.234i -1.0+1.0i 1/1) -0.0-1.234i) (num-test (= 1.234+1.234i -1.0+1.0i 1/1) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 1.0+1.0i) 1.234+3.234i) (num-test (- 1.234+1.234i -1.0+1.0i 1.0+1.0i) 1.234-0.766i) (num-test (* 1.234+1.234i -1.0+1.0i 1.0+1.0i) -2.468-2.468i) (num-test (/ 1.234+1.234i -1.0+1.0i 1.0+1.0i) -0.617-0.617i) (num-test (= 1.234+1.234i -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 0) 0.234+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 0) 2.234+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 0) -0.0) (num-test (+ 1.234+1.234i -1.0+1.0i 0.0) 0.234+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 0.0) 2.234+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 0.0) -0.0) (num-test (+ 1.234+1.234i -1.0+1.0i 1234) 1234.23399999999992+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 1234) -1231.766+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 1234) -3045.51200000000017) (num-test (/ 1.234+1.234i -1.0+1.0i 1234) -0.0-0.001i) (num-test (= 1.234+1.234i -1.0+1.0i 1234) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 123.4) 123.634+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 123.4) -121.16600000000001+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 123.4) -304.55119999999999) (num-test (/ 1.234+1.234i -1.0+1.0i 123.4) -0.0-0.01i) (num-test (= 1.234+1.234i -1.0+1.0i 123.4) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 1234/11) 112.41581818181818+2.234i) (num-test (- 1.234+1.234i -1.0+1.0i 1234/11) -109.94781818181818+0.234i) (num-test (* 1.234+1.234i -1.0+1.0i 1234/11) -276.86472727272729) (num-test (/ 1.234+1.234i -1.0+1.0i 1234/11) -0.0-0.011i) (num-test (= 1.234+1.234i -1.0+1.0i 1234/11) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 1.234+1.234i) 1.468+3.468i) (num-test (- 1.234+1.234i -1.0+1.0i 1.234+1.234i) 1.0-1.0i) (num-test (* 1.234+1.234i -1.0+1.0i 1.234+1.234i) -3.04551200000000-3.04551200000000i) (num-test (/ 1.234+1.234i -1.0+1.0i 1.234+1.234i) -0.5-0.5i) (num-test (= 1.234+1.234i -1.0+1.0i 1.234+1.234i) #f) (num-test (+ 1.234+1.234i -1.0+1.0i -1.0+1.0i) -0.766+3.234i) (num-test (- 1.234+1.234i -1.0+1.0i -1.0+1.0i) 3.234-0.766i) (num-test (* 1.234+1.234i -1.0+1.0i -1.0+1.0i) 2.468-2.468i) (num-test (/ 1.234+1.234i -1.0+1.0i -1.0+1.0i) -0.617+0.617i) (num-test (= 1.234+1.234i -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 1.234+1.234i -1.0+1.0i 0.0+1.0i) 0.234+3.234i) (num-test (- 1.234+1.234i -1.0+1.0i 0.0+1.0i) 2.234-0.766i) (num-test (* 1.234+1.234i -1.0+1.0i 0.0+1.0i) -0.0-2.468i) (num-test (/ 1.234+1.234i -1.0+1.0i 0.0+1.0i) -1.234) (num-test (= 1.234+1.234i -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 1) 2.234+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 1) 0.234+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 1) -1.234+1.234i) (num-test (/ 1.234+1.234i 0.0+1.0i 1) 1.234-1.234i) (num-test (= 1.234+1.234i 0.0+1.0i 1) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 1.0) 2.234+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 1.0) 0.234+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 1.0) -1.234+1.234i) (num-test (/ 1.234+1.234i 0.0+1.0i 1.0) 1.234-1.234i) (num-test (= 1.234+1.234i 0.0+1.0i 1.0) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 1/1) 2.234+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 1/1) 0.234+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 1/1) -1.234+1.234i) (num-test (/ 1.234+1.234i 0.0+1.0i 1/1) 1.234-1.234i) (num-test (= 1.234+1.234i 0.0+1.0i 1/1) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 1.0+1.0i) 2.234+3.234i) (num-test (- 1.234+1.234i 0.0+1.0i 1.0+1.0i) 0.234-0.766i) (num-test (* 1.234+1.234i 0.0+1.0i 1.0+1.0i) -2.468) (num-test (/ 1.234+1.234i 0.0+1.0i 1.0+1.0i) 0.0-1.234i) (num-test (= 1.234+1.234i 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 0) 1.234+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 0) 1.234+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 0) -0.0) (num-test (+ 1.234+1.234i 0.0+1.0i 0.0) 1.234+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 0.0) 1.234+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 0.0) -0.0) (num-test (+ 1.234+1.234i 0.0+1.0i 1234) 1235.23399999999992+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 1234) -1232.766+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 1234) -1522.756+1522.756i) (num-test (/ 1.234+1.234i 0.0+1.0i 1234) 0.001-0.001i) (num-test (= 1.234+1.234i 0.0+1.0i 1234) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 123.4) 124.634+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 123.4) -122.16600000000001+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 123.4) -152.2756+152.2756i) (num-test (/ 1.234+1.234i 0.0+1.0i 123.4) 0.01-0.01i) (num-test (= 1.234+1.234i 0.0+1.0i 123.4) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 1234/11) 113.41581818181818+2.234i) (num-test (- 1.234+1.234i 0.0+1.0i 1234/11) -110.94781818181818+0.234i) (num-test (* 1.234+1.234i 0.0+1.0i 1234/11) -138.43236363636365+138.43236363636365i) (num-test (/ 1.234+1.234i 0.0+1.0i 1234/11) 0.011-0.011i) (num-test (= 1.234+1.234i 0.0+1.0i 1234/11) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 1.234+1.234i) 2.468+3.468i) (num-test (- 1.234+1.234i 0.0+1.0i 1.234+1.234i) 0.0-1.0i) (num-test (* 1.234+1.234i 0.0+1.0i 1.234+1.234i) -3.04551200000000) (num-test (/ 1.234+1.234i 0.0+1.0i 1.234+1.234i) 0.0-1.0i) (num-test (= 1.234+1.234i 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 1.234+1.234i 0.0+1.0i -1.0+1.0i) 0.234+3.234i) (num-test (- 1.234+1.234i 0.0+1.0i -1.0+1.0i) 2.234-0.766i) (num-test (* 1.234+1.234i 0.0+1.0i -1.0+1.0i) 0.0-2.468i) (num-test (/ 1.234+1.234i 0.0+1.0i -1.0+1.0i) -1.234) (num-test (= 1.234+1.234i 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 1.234+1.234i 0.0+1.0i 0.0+1.0i) 1.234+3.234i) (num-test (- 1.234+1.234i 0.0+1.0i 0.0+1.0i) 1.234-0.766i) (num-test (* 1.234+1.234i 0.0+1.0i 0.0+1.0i) -1.234-1.234i) (num-test (/ 1.234+1.234i 0.0+1.0i 0.0+1.0i) -1.234-1.234i) (num-test (= 1.234+1.234i 0.0+1.0i 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 1 1) 1.0+1.0i) (num-test (- -1.0+1.0i 1 1) -3.0+1.0i) (num-test (* -1.0+1.0i 1 1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1 1) -1.0+1.0i) (num-test (= -1.0+1.0i 1 1) #f) (num-test (+ -1.0+1.0i 1 1.0) 1.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.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) #f) (num-test (+ -1.0+1.0i 1 1/1) 1.0+1.0i) (num-test (- -1.0+1.0i 1 1/1) -3.0+1.0i) (num-test (* -1.0+1.0i 1 1/1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1 1/1) -1.0+1.0i) (num-test (= -1.0+1.0i 1 1/1) #f) (num-test (+ -1.0+1.0i 1 1.0+1.0i) 1.0+2.0i) (num-test (- -1.0+1.0i 1 1.0+1.0i) -3.0) (num-test (* -1.0+1.0i 1 1.0+1.0i) -2.0) (num-test (/ -1.0+1.0i 1 1.0+1.0i) 0.0+1.0i) (num-test (= -1.0+1.0i 1 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1 0) 0.0+1.0i) (num-test (- -1.0+1.0i 1 0) -2.0+1.0i) (num-test (* -1.0+1.0i 1 0) -0.0) (num-test (+ -1.0+1.0i 1 0.0) 0.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) -0.0) (num-test (+ -1.0+1.0i 1 1234) 1234.0+1.0i) (num-test (- -1.0+1.0i 1 1234) -1236.0+1.0i) (num-test (* -1.0+1.0i 1 1234) -1234.0+1234.0i) (num-test (/ -1.0+1.0i 1 1234) -0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1 1234) #f) (num-test (+ -1.0+1.0i 1 123.4) 123.4+1.0i) (num-test (- -1.0+1.0i 1 123.4) -125.4+1.0i) (num-test (* -1.0+1.0i 1 123.4) -123.4+123.4i) (num-test (/ -1.0+1.0i 1 123.4) -0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 1 123.4) #f) (num-test (+ -1.0+1.0i 1 1234/11) 112.18181818181819+1.0i) (num-test (- -1.0+1.0i 1 1234/11) -114.18181818181819+1.0i) (num-test (* -1.0+1.0i 1 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ -1.0+1.0i 1 1234/11) -0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1 1234/11) #f) (num-test (+ -1.0+1.0i 1 1.234+1.234i) 1.234+2.234i) (num-test (- -1.0+1.0i 1 1.234+1.234i) -3.234-0.234i) (num-test (* -1.0+1.0i 1 1.234+1.234i) -2.468) (num-test (/ -1.0+1.0i 1 1.234+1.234i) 0.0+0.81037277147488i) (num-test (= -1.0+1.0i 1 1.234+1.234i) #f) (num-test (+ -1.0+1.0i 1 -1.0+1.0i) -1.0+2.0i) (num-test (- -1.0+1.0i 1 -1.0+1.0i) -1.0) (num-test (* -1.0+1.0i 1 -1.0+1.0i) 0.0-2.0i) (num-test (/ -1.0+1.0i 1 -1.0+1.0i) 1.0) (num-test (= -1.0+1.0i 1 -1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1 0.0+1.0i) 0.0+2.0i) (num-test (- -1.0+1.0i 1 0.0+1.0i) -2.0) (num-test (* -1.0+1.0i 1 0.0+1.0i) -1.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 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 1.0 1) 1.0+1.0i) (num-test (- -1.0+1.0i 1.0 1) -3.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) -1.0+1.0i) (num-test (= -1.0+1.0i 1.0 1) #f) (num-test (+ -1.0+1.0i 1.0 1.0) 1.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.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) #f) (num-test (+ -1.0+1.0i 1.0 1/1) 1.0+1.0i) (num-test (- -1.0+1.0i 1.0 1/1) -3.0+1.0i) (num-test (* -1.0+1.0i 1.0 1/1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1.0 1/1) -1.0+1.0i) (num-test (= -1.0+1.0i 1.0 1/1) #f) (num-test (+ -1.0+1.0i 1.0 1.0+1.0i) 1.0+2.0i) (num-test (- -1.0+1.0i 1.0 1.0+1.0i) -3.0) (num-test (* -1.0+1.0i 1.0 1.0+1.0i) -2.0) (num-test (/ -1.0+1.0i 1.0 1.0+1.0i) 0.0+1.0i) (num-test (= -1.0+1.0i 1.0 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1.0 0) 0.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) -0.0) (num-test (+ -1.0+1.0i 1.0 0.0) 0.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) -0.0) (num-test (+ -1.0+1.0i 1.0 1234) 1234.0+1.0i) (num-test (- -1.0+1.0i 1.0 1234) -1236.0+1.0i) (num-test (* -1.0+1.0i 1.0 1234) -1234.0+1234.0i) (num-test (/ -1.0+1.0i 1.0 1234) -0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1.0 1234) #f) (num-test (+ -1.0+1.0i 1.0 123.4) 123.4+1.0i) (num-test (- -1.0+1.0i 1.0 123.4) -125.4+1.0i) (num-test (* -1.0+1.0i 1.0 123.4) -123.4+123.4i) (num-test (/ -1.0+1.0i 1.0 123.4) -0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 1.0 123.4) #f) (num-test (+ -1.0+1.0i 1.0 1234/11) 112.18181818181819+1.0i) (num-test (- -1.0+1.0i 1.0 1234/11) -114.18181818181819+1.0i) (num-test (* -1.0+1.0i 1.0 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ -1.0+1.0i 1.0 1234/11) -0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1.0 1234/11) #f) (num-test (+ -1.0+1.0i 1.0 1.234+1.234i) 1.234+2.234i) (num-test (- -1.0+1.0i 1.0 1.234+1.234i) -3.234-0.234i) (num-test (* -1.0+1.0i 1.0 1.234+1.234i) -2.468) (num-test (/ -1.0+1.0i 1.0 1.234+1.234i) 0.0+0.81037277147488i) (num-test (= -1.0+1.0i 1.0 1.234+1.234i) #f) (num-test (+ -1.0+1.0i 1.0 -1.0+1.0i) -1.0+2.0i) (num-test (- -1.0+1.0i 1.0 -1.0+1.0i) -1.0) (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.0+1.0i) 1.0) (num-test (= -1.0+1.0i 1.0 -1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1.0 0.0+1.0i) 0.0+2.0i) (num-test (- -1.0+1.0i 1.0 0.0+1.0i) -2.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 0.0+1.0i) 1.0+1.0i) (num-test (= -1.0+1.0i 1.0 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 1/1 1) 1.0+1.0i) (num-test (- -1.0+1.0i 1/1 1) -3.0+1.0i) (num-test (* -1.0+1.0i 1/1 1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1/1 1) -1.0+1.0i) (num-test (= -1.0+1.0i 1/1 1) #f) (num-test (+ -1.0+1.0i 1/1 1.0) 1.0+1.0i) (num-test (- -1.0+1.0i 1/1 1.0) -3.0+1.0i) (num-test (* -1.0+1.0i 1/1 1.0) -1.0+1.0i) (num-test (/ -1.0+1.0i 1/1 1.0) -1.0+1.0i) (num-test (= -1.0+1.0i 1/1 1.0) #f) (num-test (+ -1.0+1.0i 1/1 1/1) 1.0+1.0i) (num-test (- -1.0+1.0i 1/1 1/1) -3.0+1.0i) (num-test (* -1.0+1.0i 1/1 1/1) -1.0+1.0i) (num-test (/ -1.0+1.0i 1/1 1/1) -1.0+1.0i) (num-test (= -1.0+1.0i 1/1 1/1) #f) (num-test (+ -1.0+1.0i 1/1 1.0+1.0i) 1.0+2.0i) (num-test (- -1.0+1.0i 1/1 1.0+1.0i) -3.0) (num-test (* -1.0+1.0i 1/1 1.0+1.0i) -2.0) (num-test (/ -1.0+1.0i 1/1 1.0+1.0i) 0.0+1.0i) (num-test (= -1.0+1.0i 1/1 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1/1 0) 0.0+1.0i) (num-test (- -1.0+1.0i 1/1 0) -2.0+1.0i) (num-test (* -1.0+1.0i 1/1 0) -0.0) (num-test (+ -1.0+1.0i 1/1 0.0) 0.0+1.0i) (num-test (- -1.0+1.0i 1/1 0.0) -2.0+1.0i) (num-test (* -1.0+1.0i 1/1 0.0) -0.0) (num-test (+ -1.0+1.0i 1/1 1234) 1234.0+1.0i) (num-test (- -1.0+1.0i 1/1 1234) -1236.0+1.0i) (num-test (* -1.0+1.0i 1/1 1234) -1234.0+1234.0i) (num-test (/ -1.0+1.0i 1/1 1234) -0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1/1 1234) #f) (num-test (+ -1.0+1.0i 1/1 123.4) 123.4+1.0i) (num-test (- -1.0+1.0i 1/1 123.4) -125.4+1.0i) (num-test (* -1.0+1.0i 1/1 123.4) -123.4+123.4i) (num-test (/ -1.0+1.0i 1/1 123.4) -0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 1/1 123.4) #f) (num-test (+ -1.0+1.0i 1/1 1234/11) 112.18181818181819+1.0i) (num-test (- -1.0+1.0i 1/1 1234/11) -114.18181818181819+1.0i) (num-test (* -1.0+1.0i 1/1 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ -1.0+1.0i 1/1 1234/11) -0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1/1 1234/11) #f) (num-test (+ -1.0+1.0i 1/1 1.234+1.234i) 1.234+2.234i) (num-test (- -1.0+1.0i 1/1 1.234+1.234i) -3.234-0.234i) (num-test (* -1.0+1.0i 1/1 1.234+1.234i) -2.468) (num-test (/ -1.0+1.0i 1/1 1.234+1.234i) 0.0+0.81037277147488i) (num-test (= -1.0+1.0i 1/1 1.234+1.234i) #f) (num-test (+ -1.0+1.0i 1/1 -1.0+1.0i) -1.0+2.0i) (num-test (- -1.0+1.0i 1/1 -1.0+1.0i) -1.0) (num-test (* -1.0+1.0i 1/1 -1.0+1.0i) 0.0-2.0i) (num-test (/ -1.0+1.0i 1/1 -1.0+1.0i) 1.0) (num-test (= -1.0+1.0i 1/1 -1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1/1 0.0+1.0i) 0.0+2.0i) (num-test (- -1.0+1.0i 1/1 0.0+1.0i) -2.0) (num-test (* -1.0+1.0i 1/1 0.0+1.0i) -1.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 1/1 0.0+1.0i) #f) (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) -3.0) (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.0+1.0i) (num-test (= -1.0+1.0i 1.0+1.0i 1) #f) (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) -3.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) 0.0+1.0i) (num-test (= -1.0+1.0i 1.0+1.0i 1.0) #f) (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 1/1) -3.0) (num-test (* -1.0+1.0i 1.0+1.0i 1/1) -2.0) (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 1/1) #f) (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.0+1.0i) -3.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 1.0+1.0i) 0.5+0.5i) (num-test (= -1.0+1.0i 1.0+1.0i 1.0+1.0i) #f) (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) -2.0) (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+2.0i) (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) -0.0) (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) -1236.0) (num-test (* -1.0+1.0i 1.0+1.0i 1234) -2468.0) (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) #f) (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 123.4) -125.4) (num-test (* -1.0+1.0i 1.0+1.0i 123.4) -246.8) (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 123.4) #f) (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 1234/11) -114.18181818181819) (num-test (* -1.0+1.0i 1.0+1.0i 1234/11) -224.36363636363637) (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 1234/11) #f) (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.234+1.234i) -3.234-1.234i) (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.234+1.234i) 0.40518638573744+0.40518638573744i) (num-test (= -1.0+1.0i 1.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) -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 -1.0+1.0i) 0.5-0.5i) (num-test (= -1.0+1.0i 1.0+1.0i -1.0+1.0i) #f) (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 0.0+1.0i) -2.0-1.0i) (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 0.0+1.0i) 1.0) (num-test (= -1.0+1.0i 1.0+1.0i 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 0 1) 0.0+1.0i) (num-test (- -1.0+1.0i 0 1) -2.0+1.0i) (num-test (* -1.0+1.0i 0 1) -0.0) (num-test (+ -1.0+1.0i 0 1.0) 0.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) -0.0) (num-test (+ -1.0+1.0i 0 1/1) 0.0+1.0i) (num-test (- -1.0+1.0i 0 1/1) -2.0+1.0i) (num-test (* -1.0+1.0i 0 1/1) -0.0) (num-test (+ -1.0+1.0i 0 1.0+1.0i) 0.0+2.0i) (num-test (- -1.0+1.0i 0 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) -1.0+1.0i) (num-test (- -1.0+1.0i 0 0) -1.0+1.0i) (num-test (* -1.0+1.0i 0 0) -0.0) (num-test (+ -1.0+1.0i 0 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) -0.0) (num-test (+ -1.0+1.0i 0 1234) 1233.0+1.0i) (num-test (- -1.0+1.0i 0 1234) -1235.0+1.0i) (num-test (* -1.0+1.0i 0 1234) -0.0) (num-test (+ -1.0+1.0i 0 123.4) 122.4+1.0i) (num-test (- -1.0+1.0i 0 123.4) -124.4+1.0i) (num-test (* -1.0+1.0i 0 123.4) -0.0) (num-test (+ -1.0+1.0i 0 1234/11) 111.18181818181819+1.0i) (num-test (- -1.0+1.0i 0 1234/11) -113.18181818181819+1.0i) (num-test (* -1.0+1.0i 0 1234/11) -0.0) (num-test (+ -1.0+1.0i 0 1.234+1.234i) 0.234+2.234i) (num-test (- -1.0+1.0i 0 1.234+1.234i) -2.234-0.234i) (num-test (* -1.0+1.0i 0 1.234+1.234i) -0.0) (num-test (+ -1.0+1.0i 0 -1.0+1.0i) -2.0+2.0i) (num-test (- -1.0+1.0i 0 -1.0+1.0i) 0.0) (num-test (* -1.0+1.0i 0 -1.0+1.0i) 0.0) (num-test (+ -1.0+1.0i 0 0.0+1.0i) -1.0+2.0i) (num-test (- -1.0+1.0i 0 0.0+1.0i) -1.0) (num-test (* -1.0+1.0i 0 0.0+1.0i) -0.0) (num-test (+ -1.0+1.0i 0.0 1) 0.0+1.0i) (num-test (- -1.0+1.0i 0.0 1) -2.0+1.0i) (num-test (* -1.0+1.0i 0.0 1) -0.0) (num-test (+ -1.0+1.0i 0.0 1.0) 0.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) -0.0) (num-test (+ -1.0+1.0i 0.0 1/1) 0.0+1.0i) (num-test (- -1.0+1.0i 0.0 1/1) -2.0+1.0i) (num-test (* -1.0+1.0i 0.0 1/1) -0.0) (num-test (+ -1.0+1.0i 0.0 1.0+1.0i) 0.0+2.0i) (num-test (- -1.0+1.0i 0.0 1.0+1.0i) -2.0) (num-test (* -1.0+1.0i 0.0 1.0+1.0i) -0.0) (num-test (+ -1.0+1.0i 0.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) -0.0) (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.0+1.0i) (num-test (* -1.0+1.0i 0.0 0.0) -0.0) (num-test (+ -1.0+1.0i 0.0 1234) 1233.0+1.0i) (num-test (- -1.0+1.0i 0.0 1234) -1235.0+1.0i) (num-test (* -1.0+1.0i 0.0 1234) -0.0) (num-test (+ -1.0+1.0i 0.0 123.4) 122.4+1.0i) (num-test (- -1.0+1.0i 0.0 123.4) -124.4+1.0i) (num-test (* -1.0+1.0i 0.0 123.4) -0.0) (num-test (+ -1.0+1.0i 0.0 1234/11) 111.18181818181819+1.0i) (num-test (- -1.0+1.0i 0.0 1234/11) -113.18181818181819+1.0i) (num-test (* -1.0+1.0i 0.0 1234/11) -0.0) (num-test (+ -1.0+1.0i 0.0 1.234+1.234i) 0.234+2.234i) (num-test (- -1.0+1.0i 0.0 1.234+1.234i) -2.234-0.234i) (num-test (* -1.0+1.0i 0.0 1.234+1.234i) -0.0) (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.0+1.0i) 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+1.0i) -1.0+2.0i) (num-test (- -1.0+1.0i 0.0 0.0+1.0i) -1.0) (num-test (* -1.0+1.0i 0.0 0.0+1.0i) -0.0) (num-test (+ -1.0+1.0i 1234 1) 1234.0+1.0i) (num-test (- -1.0+1.0i 1234 1) -1236.0+1.0i) (num-test (* -1.0+1.0i 1234 1) -1234.0+1234.0i) (num-test (/ -1.0+1.0i 1234 1) -0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1234 1) #f) (num-test (+ -1.0+1.0i 1234 1.0) 1234.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) -1234.0+1234.0i) (num-test (/ -1.0+1.0i 1234 1.0) -0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1234 1.0) #f) (num-test (+ -1.0+1.0i 1234 1/1) 1234.0+1.0i) (num-test (- -1.0+1.0i 1234 1/1) -1236.0+1.0i) (num-test (* -1.0+1.0i 1234 1/1) -1234.0+1234.0i) (num-test (/ -1.0+1.0i 1234 1/1) -0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1234 1/1) #f) (num-test (+ -1.0+1.0i 1234 1.0+1.0i) 1234.0+2.0i) (num-test (- -1.0+1.0i 1234 1.0+1.0i) -1236.0) (num-test (* -1.0+1.0i 1234 1.0+1.0i) -2468.0) (num-test (/ -1.0+1.0i 1234 1.0+1.0i) 0.0+0.00081037277147i) (num-test (= -1.0+1.0i 1234 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1234 0) 1233.0+1.0i) (num-test (- -1.0+1.0i 1234 0) -1235.0+1.0i) (num-test (* -1.0+1.0i 1234 0) -0.0) (num-test (+ -1.0+1.0i 1234 0.0) 1233.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) -0.0) (num-test (+ -1.0+1.0i 1234 1234) 2467.0+1.0i) (num-test (- -1.0+1.0i 1234 1234) -2469.0+1.0i) (num-test (* -1.0+1.0i 1234 1234) -1522756.0+1522756.0i) (num-test (/ -1.0+1.0i 1234 1234) -0.00000065670403+0.00000065670403i) (num-test (= -1.0+1.0i 1234 1234) #f) (num-test (+ -1.0+1.0i 1234 123.4) 1356.4+1.0i) (num-test (- -1.0+1.0i 1234 123.4) -1358.4+1.0i) (num-test (* -1.0+1.0i 1234 123.4) -152275.60000000000582+152275.60000000000582i) (num-test (/ -1.0+1.0i 1234 123.4) -0.00000656704029+0.00000656704029i) (num-test (= -1.0+1.0i 1234 123.4) #f) (num-test (+ -1.0+1.0i 1234 1234/11) 1345.18181818181824+1.0i) (num-test (- -1.0+1.0i 1234 1234/11) -1347.18181818181824+1.0i) (num-test (* -1.0+1.0i 1234 1234/11) -138432.36363636364695+138432.36363636364695i) (num-test (/ -1.0+1.0i 1234 1234/11) -0.00000722374432+0.00000722374432i) (num-test (= -1.0+1.0i 1234 1234/11) #f) (num-test (+ -1.0+1.0i 1234 1.234+1.234i) 1234.23399999999992+2.234i) (num-test (- -1.0+1.0i 1234 1.234+1.234i) -1236.23399999999992-0.234i) (num-test (* -1.0+1.0i 1234 1.234+1.234i) -3045.51200000000017) (num-test (/ -1.0+1.0i 1234 1.234+1.234i) 0.0+0.00065670402875i) (num-test (= -1.0+1.0i 1234 1.234+1.234i) #f) (num-test (+ -1.0+1.0i 1234 -1.0+1.0i) 1232.0+2.0i) (num-test (- -1.0+1.0i 1234 -1.0+1.0i) -1234.0) (num-test (* -1.0+1.0i 1234 -1.0+1.0i) 0.0-2468.0i) (num-test (/ -1.0+1.0i 1234 -1.0+1.0i) 0.00081037277147) (num-test (= -1.0+1.0i 1234 -1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1234 0.0+1.0i) 1233.0+2.0i) (num-test (- -1.0+1.0i 1234 0.0+1.0i) -1235.0) (num-test (* -1.0+1.0i 1234 0.0+1.0i) -1234.0-1234.0i) (num-test (/ -1.0+1.0i 1234 0.0+1.0i) 0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 1234 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 123.4 1) 123.4+1.0i) (num-test (- -1.0+1.0i 123.4 1) -125.4+1.0i) (num-test (* -1.0+1.0i 123.4 1) -123.4+123.4i) (num-test (/ -1.0+1.0i 123.4 1) -0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 123.4 1) #f) (num-test (+ -1.0+1.0i 123.4 1.0) 123.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) -123.4+123.4i) (num-test (/ -1.0+1.0i 123.4 1.0) -0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 123.4 1.0) #f) (num-test (+ -1.0+1.0i 123.4 1/1) 123.4+1.0i) (num-test (- -1.0+1.0i 123.4 1/1) -125.4+1.0i) (num-test (* -1.0+1.0i 123.4 1/1) -123.4+123.4i) (num-test (/ -1.0+1.0i 123.4 1/1) -0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 123.4 1/1) #f) (num-test (+ -1.0+1.0i 123.4 1.0+1.0i) 123.4+2.0i) (num-test (- -1.0+1.0i 123.4 1.0+1.0i) -125.4) (num-test (* -1.0+1.0i 123.4 1.0+1.0i) -246.8) (num-test (/ -1.0+1.0i 123.4 1.0+1.0i) 0.0+0.00810372771475i) (num-test (= -1.0+1.0i 123.4 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 123.4 0) 122.4+1.0i) (num-test (- -1.0+1.0i 123.4 0) -124.4+1.0i) (num-test (* -1.0+1.0i 123.4 0) -0.0) (num-test (+ -1.0+1.0i 123.4 0.0) 122.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) -0.0) (num-test (+ -1.0+1.0i 123.4 1234) 1356.4+1.0i) (num-test (- -1.0+1.0i 123.4 1234) -1358.4+1.0i) (num-test (* -1.0+1.0i 123.4 1234) -152275.60000000000582+152275.60000000000582i) (num-test (/ -1.0+1.0i 123.4 1234) -0.00000656704029+0.00000656704029i) (num-test (= -1.0+1.0i 123.4 1234) #f) (num-test (+ -1.0+1.0i 123.4 123.4) 245.8+1.0i) (num-test (- -1.0+1.0i 123.4 123.4) -247.8+1.0i) (num-test (* -1.0+1.0i 123.4 123.4) -15227.56000000000131+15227.56000000000131i) (num-test (/ -1.0+1.0i 123.4 123.4) -0.00006567040287+0.00006567040287i) (num-test (= -1.0+1.0i 123.4 123.4) #f) (num-test (+ -1.0+1.0i 123.4 1234/11) 234.58181818181819+1.0i) (num-test (- -1.0+1.0i 123.4 1234/11) -236.58181818181819+1.0i) (num-test (* -1.0+1.0i 123.4 1234/11) -13843.23636363636433+13843.23636363636433i) (num-test (/ -1.0+1.0i 123.4 1234/11) -0.00007223744316+0.00007223744316i) (num-test (= -1.0+1.0i 123.4 1234/11) #f) (num-test (+ -1.0+1.0i 123.4 1.234+1.234i) 123.634+2.234i) (num-test (- -1.0+1.0i 123.4 1.234+1.234i) -125.634-0.234i) (num-test (* -1.0+1.0i 123.4 1.234+1.234i) -304.55119999999999) (num-test (/ -1.0+1.0i 123.4 1.234+1.234i) 0.0+0.00656704028748i) (num-test (= -1.0+1.0i 123.4 1.234+1.234i) #f) (num-test (+ -1.0+1.0i 123.4 -1.0+1.0i) 121.4+2.0i) (num-test (- -1.0+1.0i 123.4 -1.0+1.0i) -123.4) (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.0+1.0i) 0.00810372771475) (num-test (= -1.0+1.0i 123.4 -1.0+1.0i) #f) (num-test (+ -1.0+1.0i 123.4 0.0+1.0i) 122.4+2.0i) (num-test (- -1.0+1.0i 123.4 0.0+1.0i) -124.4) (num-test (* -1.0+1.0i 123.4 0.0+1.0i) -123.4-123.4i) (num-test (/ -1.0+1.0i 123.4 0.0+1.0i) 0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 123.4 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 1234/11 1) 112.18181818181819+1.0i) (num-test (- -1.0+1.0i 1234/11 1) -114.18181818181819+1.0i) (num-test (* -1.0+1.0i 1234/11 1) -112.18181818181819+112.18181818181819i) (num-test (/ -1.0+1.0i 1234/11 1) -0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1234/11 1) #f) (num-test (+ -1.0+1.0i 1234/11 1.0) 112.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) -112.18181818181819+112.18181818181819i) (num-test (/ -1.0+1.0i 1234/11 1.0) -0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1234/11 1.0) #f) (num-test (+ -1.0+1.0i 1234/11 1/1) 112.18181818181819+1.0i) (num-test (- -1.0+1.0i 1234/11 1/1) -114.18181818181819+1.0i) (num-test (* -1.0+1.0i 1234/11 1/1) -112.18181818181819+112.18181818181819i) (num-test (/ -1.0+1.0i 1234/11 1/1) -0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1234/11 1/1) #f) (num-test (+ -1.0+1.0i 1234/11 1.0+1.0i) 112.18181818181819+2.0i) (num-test (- -1.0+1.0i 1234/11 1.0+1.0i) -114.18181818181819) (num-test (* -1.0+1.0i 1234/11 1.0+1.0i) -224.36363636363637) (num-test (/ -1.0+1.0i 1234/11 1.0+1.0i) 0.0+0.00891410048622i) (num-test (= -1.0+1.0i 1234/11 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1234/11 0) 111.18181818181819+1.0i) (num-test (- -1.0+1.0i 1234/11 0) -113.18181818181819+1.0i) (num-test (* -1.0+1.0i 1234/11 0) -0.0) (num-test (+ -1.0+1.0i 1234/11 0.0) 111.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) -0.0) (num-test (+ -1.0+1.0i 1234/11 1234) 1345.18181818181824+1.0i) (num-test (- -1.0+1.0i 1234/11 1234) -1347.18181818181824+1.0i) (num-test (* -1.0+1.0i 1234/11 1234) -138432.36363636364695+138432.36363636364695i) (num-test (/ -1.0+1.0i 1234/11 1234) -0.00000722374432+0.00000722374432i) (num-test (= -1.0+1.0i 1234/11 1234) #f) (num-test (+ -1.0+1.0i 1234/11 123.4) 234.58181818181819+1.0i) (num-test (- -1.0+1.0i 1234/11 123.4) -236.58181818181819+1.0i) (num-test (* -1.0+1.0i 1234/11 123.4) -13843.23636363636433+13843.23636363636433i) (num-test (/ -1.0+1.0i 1234/11 123.4) -0.00007223744316+0.00007223744316i) (num-test (= -1.0+1.0i 1234/11 123.4) #f) (num-test (+ -1.0+1.0i 1234/11 1234/11) 223.36363636363637+1.0i) (num-test (- -1.0+1.0i 1234/11 1234/11) -225.36363636363637+1.0i) (num-test (* -1.0+1.0i 1234/11 1234/11) -12584.76033057851419+12584.76033057851419i) (num-test (/ -1.0+1.0i 1234/11 1234/11) -0.00007946118748+0.00007946118748i) (num-test (= -1.0+1.0i 1234/11 1234/11) #f) (num-test (+ -1.0+1.0i 1234/11 1.234+1.234i) 112.41581818181818+2.234i) (num-test (- -1.0+1.0i 1234/11 1.234+1.234i) -114.41581818181818-0.234i) (num-test (* -1.0+1.0i 1234/11 1.234+1.234i) -276.86472727272729) (num-test (/ -1.0+1.0i 1234/11 1.234+1.234i) 0.0+0.00722374431623i) (num-test (= -1.0+1.0i 1234/11 1.234+1.234i) #f) (num-test (+ -1.0+1.0i 1234/11 -1.0+1.0i) 110.18181818181819+2.0i) (num-test (- -1.0+1.0i 1234/11 -1.0+1.0i) -112.18181818181819) (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.0+1.0i) 0.00891410048622) (num-test (= -1.0+1.0i 1234/11 -1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1234/11 0.0+1.0i) 111.18181818181819+2.0i) (num-test (- -1.0+1.0i 1234/11 0.0+1.0i) -113.18181818181819) (num-test (* -1.0+1.0i 1234/11 0.0+1.0i) -112.18181818181819-112.18181818181819i) (num-test (/ -1.0+1.0i 1234/11 0.0+1.0i) 0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 1234/11 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 1) 1.234+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 1) -3.234-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i 1) -2.468) (num-test (/ -1.0+1.0i 1.234+1.234i 1) 0.0+0.81037277147488i) (num-test (= -1.0+1.0i 1.234+1.234i 1) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 1.0) 1.234+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 1.0) -3.234-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i 1.0) -2.468) (num-test (/ -1.0+1.0i 1.234+1.234i 1.0) 0.0+0.81037277147488i) (num-test (= -1.0+1.0i 1.234+1.234i 1.0) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 1/1) 1.234+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 1/1) -3.234-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i 1/1) -2.468) (num-test (/ -1.0+1.0i 1.234+1.234i 1/1) 0.0+0.81037277147488i) (num-test (= -1.0+1.0i 1.234+1.234i 1/1) #f) (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 1.0+1.0i) -3.234-1.234i) (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.0+1.0i) 0.40518638573744+0.40518638573744i) (num-test (= -1.0+1.0i 1.234+1.234i 1.0+1.0i) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 0) 0.234+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 0) -2.234-0.234i) (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.234+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 0.0) -2.234-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i 0.0) -0.0) (num-test (+ -1.0+1.0i 1.234+1.234i 1234) 1234.23399999999992+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 1234) -1236.23399999999992-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i 1234) -3045.51200000000017) (num-test (/ -1.0+1.0i 1.234+1.234i 1234) 0.0+0.00065670402875i) (num-test (= -1.0+1.0i 1.234+1.234i 1234) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 123.4) 123.634+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 123.4) -125.634-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i 123.4) -304.55119999999999) (num-test (/ -1.0+1.0i 1.234+1.234i 123.4) 0.0+0.00656704028748i) (num-test (= -1.0+1.0i 1.234+1.234i 123.4) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 1234/11) 112.41581818181818+2.234i) (num-test (- -1.0+1.0i 1.234+1.234i 1234/11) -114.41581818181818-0.234i) (num-test (* -1.0+1.0i 1.234+1.234i 1234/11) -276.86472727272729) (num-test (/ -1.0+1.0i 1.234+1.234i 1234/11) 0.0+0.00722374431623i) (num-test (= -1.0+1.0i 1.234+1.234i 1234/11) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 1.234+1.234i) 1.468+3.468i) (num-test (- -1.0+1.0i 1.234+1.234i 1.234+1.234i) -3.468-1.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.234+1.234i) 0.32835201437394+0.32835201437394i) (num-test (= -1.0+1.0i 1.234+1.234i 1.234+1.234i) #f) (num-test (+ -1.0+1.0i 1.234+1.234i -1.0+1.0i) -0.766+3.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.0+1.0i) 2.468-2.468i) (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.0+1.0i) #f) (num-test (+ -1.0+1.0i 1.234+1.234i 0.0+1.0i) 0.234+3.234i) (num-test (- -1.0+1.0i 1.234+1.234i 0.0+1.0i) -2.234-1.234i) (num-test (* -1.0+1.0i 1.234+1.234i 0.0+1.0i) -0.0-2.468i) (num-test (/ -1.0+1.0i 1.234+1.234i 0.0+1.0i) 0.81037277147488) (num-test (= -1.0+1.0i 1.234+1.234i 0.0+1.0i) #f) (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) -1.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) 1.0) (num-test (= -1.0+1.0i -1.0+1.0i 1) #f) (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.0) (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.0) (num-test (= -1.0+1.0i -1.0+1.0i 1.0) #f) (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 1/1) -1.0) (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 1/1) 1.0) (num-test (= -1.0+1.0i -1.0+1.0i 1/1) #f) (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.0+1.0i) -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 1.0+1.0i) 0.5-0.5i) (num-test (= -1.0+1.0i -1.0+1.0i 1.0+1.0i) #f) (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.0) (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) -2.0+2.0i) (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) 0.0) (num-test (+ -1.0+1.0i -1.0+1.0i 1234) 1232.0+2.0i) (num-test (- -1.0+1.0i -1.0+1.0i 1234) -1234.0) (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) 0.00081037277147) (num-test (= -1.0+1.0i -1.0+1.0i 1234) #f) (num-test (+ -1.0+1.0i -1.0+1.0i 123.4) 121.4+2.0i) (num-test (- -1.0+1.0i -1.0+1.0i 123.4) -123.4) (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 123.4) 0.00810372771475) (num-test (= -1.0+1.0i -1.0+1.0i 123.4) #f) (num-test (+ -1.0+1.0i -1.0+1.0i 1234/11) 110.18181818181819+2.0i) (num-test (- -1.0+1.0i -1.0+1.0i 1234/11) -112.18181818181819) (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 1234/11) 0.00891410048622) (num-test (= -1.0+1.0i -1.0+1.0i 1234/11) #f) (num-test (+ -1.0+1.0i -1.0+1.0i 1.234+1.234i) -0.766+3.234i) (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.234+1.234i) 2.468-2.468i) (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.234+1.234i) #f) (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.0+1.0i) 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 -1.0+1.0i) -0.5-0.5i) (num-test (= -1.0+1.0i -1.0+1.0i -1.0+1.0i) #t) (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 0.0+1.0i) 0.0-1.0i) (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 0.0+1.0i) 0.0-1.0i) (num-test (= -1.0+1.0i -1.0+1.0i 0.0+1.0i) #f) (num-test (+ -1.0+1.0i 0.0+1.0i 1) 0.0+2.0i) (num-test (- -1.0+1.0i 0.0+1.0i 1) -2.0) (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) 1.0+1.0i) (num-test (= -1.0+1.0i 0.0+1.0i 1) #f) (num-test (+ -1.0+1.0i 0.0+1.0i 1.0) 0.0+2.0i) (num-test (- -1.0+1.0i 0.0+1.0i 1.0) -2.0) (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.0+1.0i) (num-test (= -1.0+1.0i 0.0+1.0i 1.0) #f) (num-test (+ -1.0+1.0i 0.0+1.0i 1/1) 0.0+2.0i) (num-test (- -1.0+1.0i 0.0+1.0i 1/1) -2.0) (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 1/1) 1.0+1.0i) (num-test (= -1.0+1.0i 0.0+1.0i 1/1) #f) (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 1.0+1.0i) -2.0-1.0i) (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 1.0+1.0i) 1.0) (num-test (= -1.0+1.0i 0.0+1.0i 1.0+1.0i) #f) (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) -1.0) (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) -1.0+2.0i) (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) 0.0) (num-test (+ -1.0+1.0i 0.0+1.0i 1234) 1233.0+2.0i) (num-test (- -1.0+1.0i 0.0+1.0i 1234) -1235.0) (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) 0.00081037277147+0.00081037277147i) (num-test (= -1.0+1.0i 0.0+1.0i 1234) #f) (num-test (+ -1.0+1.0i 0.0+1.0i 123.4) 122.4+2.0i) (num-test (- -1.0+1.0i 0.0+1.0i 123.4) -124.4) (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 123.4) 0.00810372771475+0.00810372771475i) (num-test (= -1.0+1.0i 0.0+1.0i 123.4) #f) (num-test (+ -1.0+1.0i 0.0+1.0i 1234/11) 111.18181818181819+2.0i) (num-test (- -1.0+1.0i 0.0+1.0i 1234/11) -113.18181818181819) (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 1234/11) 0.00891410048622+0.00891410048622i) (num-test (= -1.0+1.0i 0.0+1.0i 1234/11) #f) (num-test (+ -1.0+1.0i 0.0+1.0i 1.234+1.234i) 0.234+3.234i) (num-test (- -1.0+1.0i 0.0+1.0i 1.234+1.234i) -2.234-1.234i) (num-test (* -1.0+1.0i 0.0+1.0i 1.234+1.234i) 0.0-2.468i) (num-test (/ -1.0+1.0i 0.0+1.0i 1.234+1.234i) 0.81037277147488) (num-test (= -1.0+1.0i 0.0+1.0i 1.234+1.234i) #f) (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.0+1.0i) 0.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.0+1.0i) -0.0-1.0i) (num-test (= -1.0+1.0i 0.0+1.0i -1.0+1.0i) #f) (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 0.0+1.0i) -1.0-1.0i) (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 0.0+1.0i) 1.0-1.0i) (num-test (= -1.0+1.0i 0.0+1.0i 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 1 1) 2.0+1.0i) (num-test (- 0.0+1.0i 1 1) -2.0+1.0i) (num-test (* 0.0+1.0i 1 1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1 1) 0.0+1.0i) (num-test (= 0.0+1.0i 1 1) #f) (num-test (+ 0.0+1.0i 1 1.0) 2.0+1.0i) (num-test (- 0.0+1.0i 1 1.0) -2.0+1.0i) (num-test (* 0.0+1.0i 1 1.0) 0.0+1.0i) (num-test (/ 0.0+1.0i 1 1.0) 0.0+1.0i) (num-test (= 0.0+1.0i 1 1.0) #f) (num-test (+ 0.0+1.0i 1 1/1) 2.0+1.0i) (num-test (- 0.0+1.0i 1 1/1) -2.0+1.0i) (num-test (* 0.0+1.0i 1 1/1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1 1/1) 0.0+1.0i) (num-test (= 0.0+1.0i 1 1/1) #f) (num-test (+ 0.0+1.0i 1 1.0+1.0i) 2.0+2.0i) (num-test (- 0.0+1.0i 1 1.0+1.0i) -2.0) (num-test (* 0.0+1.0i 1 1.0+1.0i) -1.0+1.0i) (num-test (/ 0.0+1.0i 1 1.0+1.0i) 0.5+0.5i) (num-test (= 0.0+1.0i 1 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1 0) 1.0+1.0i) (num-test (- 0.0+1.0i 1 0) -1.0+1.0i) (num-test (* 0.0+1.0i 1 0) 0.0) (num-test (+ 0.0+1.0i 1 0.0) 1.0+1.0i) (num-test (- 0.0+1.0i 1 0.0) -1.0+1.0i) (num-test (* 0.0+1.0i 1 0.0) 0.0) (num-test (+ 0.0+1.0i 1 1234) 1235.0+1.0i) (num-test (- 0.0+1.0i 1 1234) -1235.0+1.0i) (num-test (* 0.0+1.0i 1 1234) 0.0+1234.0i) (num-test (/ 0.0+1.0i 1 1234) 0.0+0.00081037277147i) (num-test (= 0.0+1.0i 1 1234) #f) (num-test (+ 0.0+1.0i 1 123.4) 124.4+1.0i) (num-test (- 0.0+1.0i 1 123.4) -124.4+1.0i) (num-test (* 0.0+1.0i 1 123.4) 0.0+123.4i) (num-test (/ 0.0+1.0i 1 123.4) 0.0+0.00810372771475i) (num-test (= 0.0+1.0i 1 123.4) #f) (num-test (+ 0.0+1.0i 1 1234/11) 113.18181818181819+1.0i) (num-test (- 0.0+1.0i 1 1234/11) -113.18181818181819+1.0i) (num-test (* 0.0+1.0i 1 1234/11) 0.0+112.18181818181819i) (num-test (/ 0.0+1.0i 1 1234/11) 0.0+0.00891410048622i) (num-test (= 0.0+1.0i 1 1234/11) #f) (num-test (+ 0.0+1.0i 1 1.234+1.234i) 2.234+2.234i) (num-test (- 0.0+1.0i 1 1.234+1.234i) -2.234-0.234i) (num-test (* 0.0+1.0i 1 1.234+1.234i) -1.234+1.234i) (num-test (/ 0.0+1.0i 1 1.234+1.234i) 0.40518638573744+0.40518638573744i) (num-test (= 0.0+1.0i 1 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 1 -1.0+1.0i) 0.0+2.0i) (num-test (- 0.0+1.0i 1 -1.0+1.0i) 0.0) (num-test (* 0.0+1.0i 1 -1.0+1.0i) -1.0-1.0i) (num-test (/ 0.0+1.0i 1 -1.0+1.0i) 0.5-0.5i) (num-test (= 0.0+1.0i 1 -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1 0.0+1.0i) 1.0+2.0i) (num-test (- 0.0+1.0i 1 0.0+1.0i) -1.0) (num-test (* 0.0+1.0i 1 0.0+1.0i) -1.0) (num-test (/ 0.0+1.0i 1 0.0+1.0i) 1.0) (num-test (= 0.0+1.0i 1 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.0 1) 2.0+1.0i) (num-test (- 0.0+1.0i 1.0 1) -2.0+1.0i) (num-test (* 0.0+1.0i 1.0 1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1.0 1) 0.0+1.0i) (num-test (= 0.0+1.0i 1.0 1) #f) (num-test (+ 0.0+1.0i 1.0 1.0) 2.0+1.0i) (num-test (- 0.0+1.0i 1.0 1.0) -2.0+1.0i) (num-test (* 0.0+1.0i 1.0 1.0) 0.0+1.0i) (num-test (/ 0.0+1.0i 1.0 1.0) 0.0+1.0i) (num-test (= 0.0+1.0i 1.0 1.0) #f) (num-test (+ 0.0+1.0i 1.0 1/1) 2.0+1.0i) (num-test (- 0.0+1.0i 1.0 1/1) -2.0+1.0i) (num-test (* 0.0+1.0i 1.0 1/1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1.0 1/1) 0.0+1.0i) (num-test (= 0.0+1.0i 1.0 1/1) #f) (num-test (+ 0.0+1.0i 1.0 1.0+1.0i) 2.0+2.0i) (num-test (- 0.0+1.0i 1.0 1.0+1.0i) -2.0) (num-test (* 0.0+1.0i 1.0 1.0+1.0i) -1.0+1.0i) (num-test (/ 0.0+1.0i 1.0 1.0+1.0i) 0.5+0.5i) (num-test (= 0.0+1.0i 1.0 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.0 0) 1.0+1.0i) (num-test (- 0.0+1.0i 1.0 0) -1.0+1.0i) (num-test (* 0.0+1.0i 1.0 0) 0.0) (num-test (+ 0.0+1.0i 1.0 0.0) 1.0+1.0i) (num-test (- 0.0+1.0i 1.0 0.0) -1.0+1.0i) (num-test (* 0.0+1.0i 1.0 0.0) 0.0) (num-test (+ 0.0+1.0i 1.0 1234) 1235.0+1.0i) (num-test (- 0.0+1.0i 1.0 1234) -1235.0+1.0i) (num-test (* 0.0+1.0i 1.0 1234) 0.0+1234.0i) (num-test (/ 0.0+1.0i 1.0 1234) 0.0+0.00081037277147i) (num-test (= 0.0+1.0i 1.0 1234) #f) (num-test (+ 0.0+1.0i 1.0 123.4) 124.4+1.0i) (num-test (- 0.0+1.0i 1.0 123.4) -124.4+1.0i) (num-test (* 0.0+1.0i 1.0 123.4) 0.0+123.4i) (num-test (/ 0.0+1.0i 1.0 123.4) 0.0+0.00810372771475i) (num-test (= 0.0+1.0i 1.0 123.4) #f) (num-test (+ 0.0+1.0i 1.0 1234/11) 113.18181818181819+1.0i) (num-test (- 0.0+1.0i 1.0 1234/11) -113.18181818181819+1.0i) (num-test (* 0.0+1.0i 1.0 1234/11) 0.0+112.18181818181819i) (num-test (/ 0.0+1.0i 1.0 1234/11) 0.0+0.00891410048622i) (num-test (= 0.0+1.0i 1.0 1234/11) #f) (num-test (+ 0.0+1.0i 1.0 1.234+1.234i) 2.234+2.234i) (num-test (- 0.0+1.0i 1.0 1.234+1.234i) -2.234-0.234i) (num-test (* 0.0+1.0i 1.0 1.234+1.234i) -1.234+1.234i) (num-test (/ 0.0+1.0i 1.0 1.234+1.234i) 0.40518638573744+0.40518638573744i) (num-test (= 0.0+1.0i 1.0 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 1.0 -1.0+1.0i) 0.0+2.0i) (num-test (- 0.0+1.0i 1.0 -1.0+1.0i) 0.0) (num-test (* 0.0+1.0i 1.0 -1.0+1.0i) -1.0-1.0i) (num-test (/ 0.0+1.0i 1.0 -1.0+1.0i) 0.5-0.5i) (num-test (= 0.0+1.0i 1.0 -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.0 0.0+1.0i) 1.0+2.0i) (num-test (- 0.0+1.0i 1.0 0.0+1.0i) -1.0) (num-test (* 0.0+1.0i 1.0 0.0+1.0i) -1.0) (num-test (/ 0.0+1.0i 1.0 0.0+1.0i) 1.0) (num-test (= 0.0+1.0i 1.0 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 1/1 1) 2.0+1.0i) (num-test (- 0.0+1.0i 1/1 1) -2.0+1.0i) (num-test (* 0.0+1.0i 1/1 1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1/1 1) 0.0+1.0i) (num-test (= 0.0+1.0i 1/1 1) #f) (num-test (+ 0.0+1.0i 1/1 1.0) 2.0+1.0i) (num-test (- 0.0+1.0i 1/1 1.0) -2.0+1.0i) (num-test (* 0.0+1.0i 1/1 1.0) 0.0+1.0i) (num-test (/ 0.0+1.0i 1/1 1.0) 0.0+1.0i) (num-test (= 0.0+1.0i 1/1 1.0) #f) (num-test (+ 0.0+1.0i 1/1 1/1) 2.0+1.0i) (num-test (- 0.0+1.0i 1/1 1/1) -2.0+1.0i) (num-test (* 0.0+1.0i 1/1 1/1) 0.0+1.0i) (num-test (/ 0.0+1.0i 1/1 1/1) 0.0+1.0i) (num-test (= 0.0+1.0i 1/1 1/1) #f) (num-test (+ 0.0+1.0i 1/1 1.0+1.0i) 2.0+2.0i) (num-test (- 0.0+1.0i 1/1 1.0+1.0i) -2.0) (num-test (* 0.0+1.0i 1/1 1.0+1.0i) -1.0+1.0i) (num-test (/ 0.0+1.0i 1/1 1.0+1.0i) 0.5+0.5i) (num-test (= 0.0+1.0i 1/1 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1/1 0) 1.0+1.0i) (num-test (- 0.0+1.0i 1/1 0) -1.0+1.0i) (num-test (* 0.0+1.0i 1/1 0) 0.0) (num-test (+ 0.0+1.0i 1/1 0.0) 1.0+1.0i) (num-test (- 0.0+1.0i 1/1 0.0) -1.0+1.0i) (num-test (* 0.0+1.0i 1/1 0.0) 0.0) (num-test (+ 0.0+1.0i 1/1 1234) 1235.0+1.0i) (num-test (- 0.0+1.0i 1/1 1234) -1235.0+1.0i) (num-test (* 0.0+1.0i 1/1 1234) 0.0+1234.0i) (num-test (/ 0.0+1.0i 1/1 1234) 0.0+0.00081037277147i) (num-test (= 0.0+1.0i 1/1 1234) #f) (num-test (+ 0.0+1.0i 1/1 123.4) 124.4+1.0i) (num-test (- 0.0+1.0i 1/1 123.4) -124.4+1.0i) (num-test (* 0.0+1.0i 1/1 123.4) 0.0+123.4i) (num-test (/ 0.0+1.0i 1/1 123.4) 0.0+0.00810372771475i) (num-test (= 0.0+1.0i 1/1 123.4) #f) (num-test (+ 0.0+1.0i 1/1 1234/11) 113.18181818181819+1.0i) (num-test (- 0.0+1.0i 1/1 1234/11) -113.18181818181819+1.0i) (num-test (* 0.0+1.0i 1/1 1234/11) 0.0+112.18181818181819i) (num-test (/ 0.0+1.0i 1/1 1234/11) 0.0+0.00891410048622i) (num-test (= 0.0+1.0i 1/1 1234/11) #f) (num-test (+ 0.0+1.0i 1/1 1.234+1.234i) 2.234+2.234i) (num-test (- 0.0+1.0i 1/1 1.234+1.234i) -2.234-0.234i) (num-test (* 0.0+1.0i 1/1 1.234+1.234i) -1.234+1.234i) (num-test (/ 0.0+1.0i 1/1 1.234+1.234i) 0.40518638573744+0.40518638573744i) (num-test (= 0.0+1.0i 1/1 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 1/1 -1.0+1.0i) 0.0+2.0i) (num-test (- 0.0+1.0i 1/1 -1.0+1.0i) 0.0) (num-test (* 0.0+1.0i 1/1 -1.0+1.0i) -1.0-1.0i) (num-test (/ 0.0+1.0i 1/1 -1.0+1.0i) 0.5-0.5i) (num-test (= 0.0+1.0i 1/1 -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1/1 0.0+1.0i) 1.0+2.0i) (num-test (- 0.0+1.0i 1/1 0.0+1.0i) -1.0) (num-test (* 0.0+1.0i 1/1 0.0+1.0i) -1.0) (num-test (/ 0.0+1.0i 1/1 0.0+1.0i) 1.0) (num-test (= 0.0+1.0i 1/1 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 1) 2.0+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 1) -2.0) (num-test (* 0.0+1.0i 1.0+1.0i 1) -1.0+1.0i) (num-test (/ 0.0+1.0i 1.0+1.0i 1) 0.5+0.5i) (num-test (= 0.0+1.0i 1.0+1.0i 1) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 1.0) 2.0+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 1.0) -2.0) (num-test (* 0.0+1.0i 1.0+1.0i 1.0) -1.0+1.0i) (num-test (/ 0.0+1.0i 1.0+1.0i 1.0) 0.5+0.5i) (num-test (= 0.0+1.0i 1.0+1.0i 1.0) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 1/1) 2.0+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 1/1) -2.0) (num-test (* 0.0+1.0i 1.0+1.0i 1/1) -1.0+1.0i) (num-test (/ 0.0+1.0i 1.0+1.0i 1/1) 0.5+0.5i) (num-test (= 0.0+1.0i 1.0+1.0i 1/1) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 1.0+1.0i) 2.0+3.0i) (num-test (- 0.0+1.0i 1.0+1.0i 1.0+1.0i) -2.0-1.0i) (num-test (* 0.0+1.0i 1.0+1.0i 1.0+1.0i) -2.0) (num-test (/ 0.0+1.0i 1.0+1.0i 1.0+1.0i) 0.5) (num-test (= 0.0+1.0i 1.0+1.0i 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 0) 1.0+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 0) -1.0) (num-test (* 0.0+1.0i 1.0+1.0i 0) -0.0) (num-test (+ 0.0+1.0i 1.0+1.0i 0.0) 1.0+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 0.0) -1.0) (num-test (* 0.0+1.0i 1.0+1.0i 0.0) -0.0) (num-test (+ 0.0+1.0i 1.0+1.0i 1234) 1235.0+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 1234) -1235.0) (num-test (* 0.0+1.0i 1.0+1.0i 1234) -1234.0+1234.0i) (num-test (/ 0.0+1.0i 1.0+1.0i 1234) 0.00040518638574+0.00040518638574i) (num-test (= 0.0+1.0i 1.0+1.0i 1234) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 123.4) 124.4+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 123.4) -124.4) (num-test (* 0.0+1.0i 1.0+1.0i 123.4) -123.4+123.4i) (num-test (/ 0.0+1.0i 1.0+1.0i 123.4) 0.00405186385737+0.00405186385737i) (num-test (= 0.0+1.0i 1.0+1.0i 123.4) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 1234/11) 113.18181818181819+2.0i) (num-test (- 0.0+1.0i 1.0+1.0i 1234/11) -113.18181818181819) (num-test (* 0.0+1.0i 1.0+1.0i 1234/11) -112.18181818181819+112.18181818181819i) (num-test (/ 0.0+1.0i 1.0+1.0i 1234/11) 0.00445705024311+0.00445705024311i) (num-test (= 0.0+1.0i 1.0+1.0i 1234/11) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 1.234+1.234i) 2.234+3.234i) (num-test (- 0.0+1.0i 1.0+1.0i 1.234+1.234i) -2.234-1.234i) (num-test (* 0.0+1.0i 1.0+1.0i 1.234+1.234i) -2.468) (num-test (/ 0.0+1.0i 1.0+1.0i 1.234+1.234i) 0.40518638573744) (num-test (= 0.0+1.0i 1.0+1.0i 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 1.0+1.0i -1.0+1.0i) 0.0+3.0i) (num-test (- 0.0+1.0i 1.0+1.0i -1.0+1.0i) 0.0-1.0i) (num-test (* 0.0+1.0i 1.0+1.0i -1.0+1.0i) 0.0-2.0i) (num-test (/ 0.0+1.0i 1.0+1.0i -1.0+1.0i) -0.0-0.5i) (num-test (= 0.0+1.0i 1.0+1.0i -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.0+1.0i 0.0+1.0i) 1.0+3.0i) (num-test (- 0.0+1.0i 1.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (* 0.0+1.0i 1.0+1.0i 0.0+1.0i) -1.0-1.0i) (num-test (/ 0.0+1.0i 1.0+1.0i 0.0+1.0i) 0.5-0.5i) (num-test (= 0.0+1.0i 1.0+1.0i 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 0 1) 1.0+1.0i) (num-test (- 0.0+1.0i 0 1) -1.0+1.0i) (num-test (* 0.0+1.0i 0 1) 0.0) (num-test (+ 0.0+1.0i 0 1.0) 1.0+1.0i) (num-test (- 0.0+1.0i 0 1.0) -1.0+1.0i) (num-test (* 0.0+1.0i 0 1.0) 0.0) (num-test (+ 0.0+1.0i 0 1/1) 1.0+1.0i) (num-test (- 0.0+1.0i 0 1/1) -1.0+1.0i) (num-test (* 0.0+1.0i 0 1/1) 0.0) (num-test (+ 0.0+1.0i 0 1.0+1.0i) 1.0+2.0i) (num-test (- 0.0+1.0i 0 1.0+1.0i) -1.0) (num-test (* 0.0+1.0i 0 1.0+1.0i) 0.0) (num-test (+ 0.0+1.0i 0 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) 0.0) (num-test (+ 0.0+1.0i 0 0.0) 0.0+1.0i) (num-test (- 0.0+1.0i 0 0.0) 0.0+1.0i) (num-test (* 0.0+1.0i 0 0.0) 0.0) (num-test (+ 0.0+1.0i 0 1234) 1234.0+1.0i) (num-test (- 0.0+1.0i 0 1234) -1234.0+1.0i) (num-test (* 0.0+1.0i 0 1234) 0.0) (num-test (+ 0.0+1.0i 0 123.4) 123.4+1.0i) (num-test (- 0.0+1.0i 0 123.4) -123.4+1.0i) (num-test (* 0.0+1.0i 0 123.4) 0.0) (num-test (+ 0.0+1.0i 0 1234/11) 112.18181818181819+1.0i) (num-test (- 0.0+1.0i 0 1234/11) -112.18181818181819+1.0i) (num-test (* 0.0+1.0i 0 1234/11) 0.0) (num-test (+ 0.0+1.0i 0 1.234+1.234i) 1.234+2.234i) (num-test (- 0.0+1.0i 0 1.234+1.234i) -1.234-0.234i) (num-test (* 0.0+1.0i 0 1.234+1.234i) 0.0) (num-test (+ 0.0+1.0i 0 -1.0+1.0i) -1.0+2.0i) (num-test (- 0.0+1.0i 0 -1.0+1.0i) 1.0) (num-test (* 0.0+1.0i 0 -1.0+1.0i) -0.0) (num-test (+ 0.0+1.0i 0 0.0+1.0i) 0.0+2.0i) (num-test (- 0.0+1.0i 0 0.0+1.0i) 0.0) (num-test (* 0.0+1.0i 0 0.0+1.0i) 0.0) (num-test (+ 0.0+1.0i 0.0 1) 1.0+1.0i) (num-test (- 0.0+1.0i 0.0 1) -1.0+1.0i) (num-test (* 0.0+1.0i 0.0 1) 0.0) (num-test (+ 0.0+1.0i 0.0 1.0) 1.0+1.0i) (num-test (- 0.0+1.0i 0.0 1.0) -1.0+1.0i) (num-test (* 0.0+1.0i 0.0 1.0) 0.0) (num-test (+ 0.0+1.0i 0.0 1/1) 1.0+1.0i) (num-test (- 0.0+1.0i 0.0 1/1) -1.0+1.0i) (num-test (* 0.0+1.0i 0.0 1/1) 0.0) (num-test (+ 0.0+1.0i 0.0 1.0+1.0i) 1.0+2.0i) (num-test (- 0.0+1.0i 0.0 1.0+1.0i) -1.0) (num-test (* 0.0+1.0i 0.0 1.0+1.0i) 0.0) (num-test (+ 0.0+1.0i 0.0 0) 0.0+1.0i) (num-test (- 0.0+1.0i 0.0 0) 0.0+1.0i) (num-test (* 0.0+1.0i 0.0 0) 0.0) (num-test (+ 0.0+1.0i 0.0 0.0) 0.0+1.0i) (num-test (- 0.0+1.0i 0.0 0.0) 0.0+1.0i) (num-test (* 0.0+1.0i 0.0 0.0) 0.0) (num-test (+ 0.0+1.0i 0.0 1234) 1234.0+1.0i) (num-test (- 0.0+1.0i 0.0 1234) -1234.0+1.0i) (num-test (* 0.0+1.0i 0.0 1234) 0.0) (num-test (+ 0.0+1.0i 0.0 123.4) 123.4+1.0i) (num-test (- 0.0+1.0i 0.0 123.4) -123.4+1.0i) (num-test (* 0.0+1.0i 0.0 123.4) 0.0) (num-test (+ 0.0+1.0i 0.0 1234/11) 112.18181818181819+1.0i) (num-test (- 0.0+1.0i 0.0 1234/11) -112.18181818181819+1.0i) (num-test (* 0.0+1.0i 0.0 1234/11) 0.0) (num-test (+ 0.0+1.0i 0.0 1.234+1.234i) 1.234+2.234i) (num-test (- 0.0+1.0i 0.0 1.234+1.234i) -1.234-0.234i) (num-test (* 0.0+1.0i 0.0 1.234+1.234i) 0.0) (num-test (+ 0.0+1.0i 0.0 -1.0+1.0i) -1.0+2.0i) (num-test (- 0.0+1.0i 0.0 -1.0+1.0i) 1.0) (num-test (* 0.0+1.0i 0.0 -1.0+1.0i) -0.0) (num-test (+ 0.0+1.0i 0.0 0.0+1.0i) 0.0+2.0i) (num-test (- 0.0+1.0i 0.0 0.0+1.0i) 0.0) (num-test (* 0.0+1.0i 0.0 0.0+1.0i) 0.0) (num-test (+ 0.0+1.0i 1234 1) 1235.0+1.0i) (num-test (- 0.0+1.0i 1234 1) -1235.0+1.0i) (num-test (* 0.0+1.0i 1234 1) 0.0+1234.0i) (num-test (/ 0.0+1.0i 1234 1) 0.0+0.00081037277147i) (num-test (= 0.0+1.0i 1234 1) #f) (num-test (+ 0.0+1.0i 1234 1.0) 1235.0+1.0i) (num-test (- 0.0+1.0i 1234 1.0) -1235.0+1.0i) (num-test (* 0.0+1.0i 1234 1.0) 0.0+1234.0i) (num-test (/ 0.0+1.0i 1234 1.0) 0.0+0.00081037277147i) (num-test (= 0.0+1.0i 1234 1.0) #f) (num-test (+ 0.0+1.0i 1234 1/1) 1235.0+1.0i) (num-test (- 0.0+1.0i 1234 1/1) -1235.0+1.0i) (num-test (* 0.0+1.0i 1234 1/1) 0.0+1234.0i) (num-test (/ 0.0+1.0i 1234 1/1) 0.0+0.00081037277147i) (num-test (= 0.0+1.0i 1234 1/1) #f) (num-test (+ 0.0+1.0i 1234 1.0+1.0i) 1235.0+2.0i) (num-test (- 0.0+1.0i 1234 1.0+1.0i) -1235.0) (num-test (* 0.0+1.0i 1234 1.0+1.0i) -1234.0+1234.0i) (num-test (/ 0.0+1.0i 1234 1.0+1.0i) 0.00040518638574+0.00040518638574i) (num-test (= 0.0+1.0i 1234 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1234 0) 1234.0+1.0i) (num-test (- 0.0+1.0i 1234 0) -1234.0+1.0i) (num-test (* 0.0+1.0i 1234 0) 0.0) (num-test (+ 0.0+1.0i 1234 0.0) 1234.0+1.0i) (num-test (- 0.0+1.0i 1234 0.0) -1234.0+1.0i) (num-test (* 0.0+1.0i 1234 0.0) 0.0) (num-test (+ 0.0+1.0i 1234 1234) 2468.0+1.0i) (num-test (- 0.0+1.0i 1234 1234) -2468.0+1.0i) (num-test (* 0.0+1.0i 1234 1234) 0.0+1522756.0i) (num-test (/ 0.0+1.0i 1234 1234) 0.0+0.00000065670403i) (num-test (= 0.0+1.0i 1234 1234) #f) (num-test (+ 0.0+1.0i 1234 123.4) 1357.4+1.0i) (num-test (- 0.0+1.0i 1234 123.4) -1357.4+1.0i) (num-test (* 0.0+1.0i 1234 123.4) 0.0+152275.60000000000582i) (num-test (/ 0.0+1.0i 1234 123.4) 0.0+0.00000656704029i) (num-test (= 0.0+1.0i 1234 123.4) #f) (num-test (+ 0.0+1.0i 1234 1234/11) 1346.18181818181824+1.0i) (num-test (- 0.0+1.0i 1234 1234/11) -1346.18181818181824+1.0i) (num-test (* 0.0+1.0i 1234 1234/11) 0.0+138432.36363636364695i) (num-test (/ 0.0+1.0i 1234 1234/11) 0.0+0.00000722374432i) (num-test (= 0.0+1.0i 1234 1234/11) #f) (num-test (+ 0.0+1.0i 1234 1.234+1.234i) 1235.23399999999992+2.234i) (num-test (- 0.0+1.0i 1234 1.234+1.234i) -1235.23399999999992-0.234i) (num-test (* 0.0+1.0i 1234 1.234+1.234i) -1522.756+1522.756i) (num-test (/ 0.0+1.0i 1234 1.234+1.234i) 0.00032835201437+0.00032835201437i) (num-test (= 0.0+1.0i 1234 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 1234 -1.0+1.0i) 1233.0+2.0i) (num-test (- 0.0+1.0i 1234 -1.0+1.0i) -1233.0) (num-test (* 0.0+1.0i 1234 -1.0+1.0i) -1234.0-1234.0i) (num-test (/ 0.0+1.0i 1234 -1.0+1.0i) 0.00040518638574-0.00040518638574i) (num-test (= 0.0+1.0i 1234 -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1234 0.0+1.0i) 1234.0+2.0i) (num-test (- 0.0+1.0i 1234 0.0+1.0i) -1234.0) (num-test (* 0.0+1.0i 1234 0.0+1.0i) -1234.0) (num-test (/ 0.0+1.0i 1234 0.0+1.0i) 0.00081037277147) (num-test (= 0.0+1.0i 1234 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 123.4 1) 124.4+1.0i) (num-test (- 0.0+1.0i 123.4 1) -124.4+1.0i) (num-test (* 0.0+1.0i 123.4 1) 0.0+123.4i) (num-test (/ 0.0+1.0i 123.4 1) 0.0+0.00810372771475i) (num-test (= 0.0+1.0i 123.4 1) #f) (num-test (+ 0.0+1.0i 123.4 1.0) 124.4+1.0i) (num-test (- 0.0+1.0i 123.4 1.0) -124.4+1.0i) (num-test (* 0.0+1.0i 123.4 1.0) 0.0+123.4i) (num-test (/ 0.0+1.0i 123.4 1.0) 0.0+0.00810372771475i) (num-test (= 0.0+1.0i 123.4 1.0) #f) (num-test (+ 0.0+1.0i 123.4 1/1) 124.4+1.0i) (num-test (- 0.0+1.0i 123.4 1/1) -124.4+1.0i) (num-test (* 0.0+1.0i 123.4 1/1) 0.0+123.4i) (num-test (/ 0.0+1.0i 123.4 1/1) 0.0+0.00810372771475i) (num-test (= 0.0+1.0i 123.4 1/1) #f) (num-test (+ 0.0+1.0i 123.4 1.0+1.0i) 124.4+2.0i) (num-test (- 0.0+1.0i 123.4 1.0+1.0i) -124.4) (num-test (* 0.0+1.0i 123.4 1.0+1.0i) -123.4+123.4i) (num-test (/ 0.0+1.0i 123.4 1.0+1.0i) 0.00405186385737+0.00405186385737i) (num-test (= 0.0+1.0i 123.4 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 123.4 0) 123.4+1.0i) (num-test (- 0.0+1.0i 123.4 0) -123.4+1.0i) (num-test (* 0.0+1.0i 123.4 0) 0.0) (num-test (+ 0.0+1.0i 123.4 0.0) 123.4+1.0i) (num-test (- 0.0+1.0i 123.4 0.0) -123.4+1.0i) (num-test (* 0.0+1.0i 123.4 0.0) 0.0) (num-test (+ 0.0+1.0i 123.4 1234) 1357.4+1.0i) (num-test (- 0.0+1.0i 123.4 1234) -1357.4+1.0i) (num-test (* 0.0+1.0i 123.4 1234) 0.0+152275.60000000000582i) (num-test (/ 0.0+1.0i 123.4 1234) 0.0+0.00000656704029i) (num-test (= 0.0+1.0i 123.4 1234) #f) (num-test (+ 0.0+1.0i 123.4 123.4) 246.8+1.0i) (num-test (- 0.0+1.0i 123.4 123.4) -246.8+1.0i) (num-test (* 0.0+1.0i 123.4 123.4) 0.0+15227.56000000000131i) (num-test (/ 0.0+1.0i 123.4 123.4) 0.0+0.00006567040287i) (num-test (= 0.0+1.0i 123.4 123.4) #f) (num-test (+ 0.0+1.0i 123.4 1234/11) 235.58181818181819+1.0i) (num-test (- 0.0+1.0i 123.4 1234/11) -235.58181818181819+1.0i) (num-test (* 0.0+1.0i 123.4 1234/11) 0.0+13843.23636363636433i) (num-test (/ 0.0+1.0i 123.4 1234/11) 0.0+0.00007223744316i) (num-test (= 0.0+1.0i 123.4 1234/11) #f) (num-test (+ 0.0+1.0i 123.4 1.234+1.234i) 124.634+2.234i) (num-test (- 0.0+1.0i 123.4 1.234+1.234i) -124.634-0.234i) (num-test (* 0.0+1.0i 123.4 1.234+1.234i) -152.2756+152.2756i) (num-test (/ 0.0+1.0i 123.4 1.234+1.234i) 0.00328352014374+0.00328352014374i) (num-test (= 0.0+1.0i 123.4 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 123.4 -1.0+1.0i) 122.4+2.0i) (num-test (- 0.0+1.0i 123.4 -1.0+1.0i) -122.4) (num-test (* 0.0+1.0i 123.4 -1.0+1.0i) -123.4-123.4i) (num-test (/ 0.0+1.0i 123.4 -1.0+1.0i) 0.00405186385737-0.00405186385737i) (num-test (= 0.0+1.0i 123.4 -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 123.4 0.0+1.0i) 123.4+2.0i) (num-test (- 0.0+1.0i 123.4 0.0+1.0i) -123.4) (num-test (* 0.0+1.0i 123.4 0.0+1.0i) -123.4) (num-test (/ 0.0+1.0i 123.4 0.0+1.0i) 0.00810372771475) (num-test (= 0.0+1.0i 123.4 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 1234/11 1) 113.18181818181819+1.0i) (num-test (- 0.0+1.0i 1234/11 1) -113.18181818181819+1.0i) (num-test (* 0.0+1.0i 1234/11 1) 0.0+112.18181818181819i) (num-test (/ 0.0+1.0i 1234/11 1) 0.0+0.00891410048622i) (num-test (= 0.0+1.0i 1234/11 1) #f) (num-test (+ 0.0+1.0i 1234/11 1.0) 113.18181818181819+1.0i) (num-test (- 0.0+1.0i 1234/11 1.0) -113.18181818181819+1.0i) (num-test (* 0.0+1.0i 1234/11 1.0) 0.0+112.18181818181819i) (num-test (/ 0.0+1.0i 1234/11 1.0) 0.0+0.00891410048622i) (num-test (= 0.0+1.0i 1234/11 1.0) #f) (num-test (+ 0.0+1.0i 1234/11 1/1) 113.18181818181819+1.0i) (num-test (- 0.0+1.0i 1234/11 1/1) -113.18181818181819+1.0i) (num-test (* 0.0+1.0i 1234/11 1/1) 0.0+112.18181818181819i) (num-test (/ 0.0+1.0i 1234/11 1/1) 0.0+0.00891410048622i) (num-test (= 0.0+1.0i 1234/11 1/1) #f) (num-test (+ 0.0+1.0i 1234/11 1.0+1.0i) 113.18181818181819+2.0i) (num-test (- 0.0+1.0i 1234/11 1.0+1.0i) -113.18181818181819) (num-test (* 0.0+1.0i 1234/11 1.0+1.0i) -112.18181818181819+112.18181818181819i) (num-test (/ 0.0+1.0i 1234/11 1.0+1.0i) 0.00445705024311+0.00445705024311i) (num-test (= 0.0+1.0i 1234/11 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1234/11 0) 112.18181818181819+1.0i) (num-test (- 0.0+1.0i 1234/11 0) -112.18181818181819+1.0i) (num-test (* 0.0+1.0i 1234/11 0) 0.0) (num-test (+ 0.0+1.0i 1234/11 0.0) 112.18181818181819+1.0i) (num-test (- 0.0+1.0i 1234/11 0.0) -112.18181818181819+1.0i) (num-test (* 0.0+1.0i 1234/11 0.0) 0.0) (num-test (+ 0.0+1.0i 1234/11 1234) 1346.18181818181824+1.0i) (num-test (- 0.0+1.0i 1234/11 1234) -1346.18181818181824+1.0i) (num-test (* 0.0+1.0i 1234/11 1234) 0.0+138432.36363636364695i) (num-test (/ 0.0+1.0i 1234/11 1234) 0.0+0.00000722374432i) (num-test (= 0.0+1.0i 1234/11 1234) #f) (num-test (+ 0.0+1.0i 1234/11 123.4) 235.58181818181819+1.0i) (num-test (- 0.0+1.0i 1234/11 123.4) -235.58181818181819+1.0i) (num-test (* 0.0+1.0i 1234/11 123.4) 0.0+13843.23636363636433i) (num-test (/ 0.0+1.0i 1234/11 123.4) 0.0+0.00007223744316i) (num-test (= 0.0+1.0i 1234/11 123.4) #f) (num-test (+ 0.0+1.0i 1234/11 1234/11) 224.36363636363637+1.0i) (num-test (- 0.0+1.0i 1234/11 1234/11) -224.36363636363637+1.0i) (num-test (* 0.0+1.0i 1234/11 1234/11) 0.0+12584.76033057851419i) (num-test (/ 0.0+1.0i 1234/11 1234/11) 0.0+0.00007946118748i) (num-test (= 0.0+1.0i 1234/11 1234/11) #f) (num-test (+ 0.0+1.0i 1234/11 1.234+1.234i) 113.41581818181818+2.234i) (num-test (- 0.0+1.0i 1234/11 1.234+1.234i) -113.41581818181818-0.234i) (num-test (* 0.0+1.0i 1234/11 1.234+1.234i) -138.43236363636365+138.43236363636365i) (num-test (/ 0.0+1.0i 1234/11 1.234+1.234i) 0.00361187215811+0.00361187215811i) (num-test (= 0.0+1.0i 1234/11 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 1234/11 -1.0+1.0i) 111.18181818181819+2.0i) (num-test (- 0.0+1.0i 1234/11 -1.0+1.0i) -111.18181818181819) (num-test (* 0.0+1.0i 1234/11 -1.0+1.0i) -112.18181818181819-112.18181818181819i) (num-test (/ 0.0+1.0i 1234/11 -1.0+1.0i) 0.00445705024311-0.00445705024311i) (num-test (= 0.0+1.0i 1234/11 -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1234/11 0.0+1.0i) 112.18181818181819+2.0i) (num-test (- 0.0+1.0i 1234/11 0.0+1.0i) -112.18181818181819) (num-test (* 0.0+1.0i 1234/11 0.0+1.0i) -112.18181818181819) (num-test (/ 0.0+1.0i 1234/11 0.0+1.0i) 0.00891410048622) (num-test (= 0.0+1.0i 1234/11 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 1) 2.234+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 1) -2.234-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 1) -1.234+1.234i) (num-test (/ 0.0+1.0i 1.234+1.234i 1) 0.40518638573744+0.40518638573744i) (num-test (= 0.0+1.0i 1.234+1.234i 1) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 1.0) 2.234+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 1.0) -2.234-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 1.0) -1.234+1.234i) (num-test (/ 0.0+1.0i 1.234+1.234i 1.0) 0.40518638573744+0.40518638573744i) (num-test (= 0.0+1.0i 1.234+1.234i 1.0) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 1/1) 2.234+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 1/1) -2.234-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 1/1) -1.234+1.234i) (num-test (/ 0.0+1.0i 1.234+1.234i 1/1) 0.40518638573744+0.40518638573744i) (num-test (= 0.0+1.0i 1.234+1.234i 1/1) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 1.0+1.0i) 2.234+3.234i) (num-test (- 0.0+1.0i 1.234+1.234i 1.0+1.0i) -2.234-1.234i) (num-test (* 0.0+1.0i 1.234+1.234i 1.0+1.0i) -2.468) (num-test (/ 0.0+1.0i 1.234+1.234i 1.0+1.0i) 0.40518638573744) (num-test (= 0.0+1.0i 1.234+1.234i 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 0) 1.234+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 0) -1.234-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 0) -0.0) (num-test (+ 0.0+1.0i 1.234+1.234i 0.0) 1.234+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 0.0) -1.234-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 0.0) -0.0) (num-test (+ 0.0+1.0i 1.234+1.234i 1234) 1235.23399999999992+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 1234) -1235.23399999999992-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 1234) -1522.756+1522.756i) (num-test (/ 0.0+1.0i 1.234+1.234i 1234) 0.00032835201437+0.00032835201437i) (num-test (= 0.0+1.0i 1.234+1.234i 1234) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 123.4) 124.634+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 123.4) -124.634-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 123.4) -152.2756+152.2756i) (num-test (/ 0.0+1.0i 1.234+1.234i 123.4) 0.00328352014374+0.00328352014374i) (num-test (= 0.0+1.0i 1.234+1.234i 123.4) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 1234/11) 113.41581818181818+2.234i) (num-test (- 0.0+1.0i 1.234+1.234i 1234/11) -113.41581818181818-0.234i) (num-test (* 0.0+1.0i 1.234+1.234i 1234/11) -138.43236363636365+138.43236363636365i) (num-test (/ 0.0+1.0i 1.234+1.234i 1234/11) 0.00361187215811+0.00361187215811i) (num-test (= 0.0+1.0i 1.234+1.234i 1234/11) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 1.234+1.234i) 2.468+3.468i) (num-test (- 0.0+1.0i 1.234+1.234i 1.234+1.234i) -2.468-1.468i) (num-test (* 0.0+1.0i 1.234+1.234i 1.234+1.234i) -3.04551200000000) (num-test (/ 0.0+1.0i 1.234+1.234i 1.234+1.234i) 0.32835201437394) (num-test (= 0.0+1.0i 1.234+1.234i 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 1.234+1.234i -1.0+1.0i) 0.234+3.234i) (num-test (- 0.0+1.0i 1.234+1.234i -1.0+1.0i) -0.234-1.234i) (num-test (* 0.0+1.0i 1.234+1.234i -1.0+1.0i) 0.0-2.468i) (num-test (/ 0.0+1.0i 1.234+1.234i -1.0+1.0i) -0.0-0.40518638573744i) (num-test (= 0.0+1.0i 1.234+1.234i -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 1.234+1.234i 0.0+1.0i) 1.234+3.234i) (num-test (- 0.0+1.0i 1.234+1.234i 0.0+1.0i) -1.234-1.234i) (num-test (* 0.0+1.0i 1.234+1.234i 0.0+1.0i) -1.234-1.234i) (num-test (/ 0.0+1.0i 1.234+1.234i 0.0+1.0i) 0.40518638573744-0.40518638573744i) (num-test (= 0.0+1.0i 1.234+1.234i 0.0+1.0i) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 1) 0.0+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 1) 0.0) (num-test (* 0.0+1.0i -1.0+1.0i 1) -1.0-1.0i) (num-test (/ 0.0+1.0i -1.0+1.0i 1) 0.5-0.5i) (num-test (= 0.0+1.0i -1.0+1.0i 1) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 1.0) 0.0+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 1.0) 0.0) (num-test (* 0.0+1.0i -1.0+1.0i 1.0) -1.0-1.0i) (num-test (/ 0.0+1.0i -1.0+1.0i 1.0) 0.5-0.5i) (num-test (= 0.0+1.0i -1.0+1.0i 1.0) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 1/1) 0.0+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 1/1) 0.0) (num-test (* 0.0+1.0i -1.0+1.0i 1/1) -1.0-1.0i) (num-test (/ 0.0+1.0i -1.0+1.0i 1/1) 0.5-0.5i) (num-test (= 0.0+1.0i -1.0+1.0i 1/1) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 1.0+1.0i) 0.0+3.0i) (num-test (- 0.0+1.0i -1.0+1.0i 1.0+1.0i) 0.0-1.0i) (num-test (* 0.0+1.0i -1.0+1.0i 1.0+1.0i) 0.0-2.0i) (num-test (/ 0.0+1.0i -1.0+1.0i 1.0+1.0i) 0.0-0.5i) (num-test (= 0.0+1.0i -1.0+1.0i 1.0+1.0i) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 0) -1.0+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 0) 1.0) (num-test (* 0.0+1.0i -1.0+1.0i 0) 0.0) (num-test (+ 0.0+1.0i -1.0+1.0i 0.0) -1.0+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 0.0) 1.0) (num-test (* 0.0+1.0i -1.0+1.0i 0.0) 0.0) (num-test (+ 0.0+1.0i -1.0+1.0i 1234) 1233.0+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 1234) -1233.0) (num-test (* 0.0+1.0i -1.0+1.0i 1234) -1234.0-1234.0i) (num-test (/ 0.0+1.0i -1.0+1.0i 1234) 0.00040518638574-0.00040518638574i) (num-test (= 0.0+1.0i -1.0+1.0i 1234) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 123.4) 122.4+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 123.4) -122.4) (num-test (* 0.0+1.0i -1.0+1.0i 123.4) -123.4-123.4i) (num-test (/ 0.0+1.0i -1.0+1.0i 123.4) 0.00405186385737-0.00405186385737i) (num-test (= 0.0+1.0i -1.0+1.0i 123.4) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 1234/11) 111.18181818181819+2.0i) (num-test (- 0.0+1.0i -1.0+1.0i 1234/11) -111.18181818181819) (num-test (* 0.0+1.0i -1.0+1.0i 1234/11) -112.18181818181819-112.18181818181819i) (num-test (/ 0.0+1.0i -1.0+1.0i 1234/11) 0.00445705024311-0.00445705024311i) (num-test (= 0.0+1.0i -1.0+1.0i 1234/11) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 1.234+1.234i) 0.234+3.234i) (num-test (- 0.0+1.0i -1.0+1.0i 1.234+1.234i) -0.234-1.234i) (num-test (* 0.0+1.0i -1.0+1.0i 1.234+1.234i) 0.0-2.468i) (num-test (/ 0.0+1.0i -1.0+1.0i 1.234+1.234i) 0.0-0.40518638573744i) (num-test (= 0.0+1.0i -1.0+1.0i 1.234+1.234i) #f) (num-test (+ 0.0+1.0i -1.0+1.0i -1.0+1.0i) -2.0+3.0i) (num-test (- 0.0+1.0i -1.0+1.0i -1.0+1.0i) 2.0-1.0i) (num-test (* 0.0+1.0i -1.0+1.0i -1.0+1.0i) 2.0) (num-test (/ 0.0+1.0i -1.0+1.0i -1.0+1.0i) -0.5) (num-test (= 0.0+1.0i -1.0+1.0i -1.0+1.0i) #f) (num-test (+ 0.0+1.0i -1.0+1.0i 0.0+1.0i) -1.0+3.0i) (num-test (- 0.0+1.0i -1.0+1.0i 0.0+1.0i) 1.0-1.0i) (num-test (* 0.0+1.0i -1.0+1.0i 0.0+1.0i) 1.0-1.0i) (num-test (/ 0.0+1.0i -1.0+1.0i 0.0+1.0i) -0.5-0.5i) (num-test (= 0.0+1.0i -1.0+1.0i 0.0+1.0i) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 1) 1.0+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 1) -1.0) (num-test (* 0.0+1.0i 0.0+1.0i 1) -1.0) (num-test (/ 0.0+1.0i 0.0+1.0i 1) 1.0) (num-test (= 0.0+1.0i 0.0+1.0i 1) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 1.0) 1.0+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 1.0) -1.0) (num-test (* 0.0+1.0i 0.0+1.0i 1.0) -1.0) (num-test (/ 0.0+1.0i 0.0+1.0i 1.0) 1.0) (num-test (= 0.0+1.0i 0.0+1.0i 1.0) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 1/1) 1.0+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 1/1) -1.0) (num-test (* 0.0+1.0i 0.0+1.0i 1/1) -1.0) (num-test (/ 0.0+1.0i 0.0+1.0i 1/1) 1.0) (num-test (= 0.0+1.0i 0.0+1.0i 1/1) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 1.0+1.0i) 1.0+3.0i) (num-test (- 0.0+1.0i 0.0+1.0i 1.0+1.0i) -1.0-1.0i) (num-test (* 0.0+1.0i 0.0+1.0i 1.0+1.0i) -1.0-1.0i) (num-test (/ 0.0+1.0i 0.0+1.0i 1.0+1.0i) 0.5-0.5i) (num-test (= 0.0+1.0i 0.0+1.0i 1.0+1.0i) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 0) 0.0+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 0) 0.0) (num-test (* 0.0+1.0i 0.0+1.0i 0) -0.0) (num-test (+ 0.0+1.0i 0.0+1.0i 0.0) 0.0+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 0.0) 0.0) (num-test (* 0.0+1.0i 0.0+1.0i 0.0) -0.0) (num-test (+ 0.0+1.0i 0.0+1.0i 1234) 1234.0+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 1234) -1234.0) (num-test (* 0.0+1.0i 0.0+1.0i 1234) -1234.0) (num-test (/ 0.0+1.0i 0.0+1.0i 1234) 0.00081037277147) (num-test (= 0.0+1.0i 0.0+1.0i 1234) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 123.4) 123.4+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 123.4) -123.4) (num-test (* 0.0+1.0i 0.0+1.0i 123.4) -123.4) (num-test (/ 0.0+1.0i 0.0+1.0i 123.4) 0.00810372771475) (num-test (= 0.0+1.0i 0.0+1.0i 123.4) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 1234/11) 112.18181818181819+2.0i) (num-test (- 0.0+1.0i 0.0+1.0i 1234/11) -112.18181818181819) (num-test (* 0.0+1.0i 0.0+1.0i 1234/11) -112.18181818181819) (num-test (/ 0.0+1.0i 0.0+1.0i 1234/11) 0.00891410048622) (num-test (= 0.0+1.0i 0.0+1.0i 1234/11) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 1.234+1.234i) 1.234+3.234i) (num-test (- 0.0+1.0i 0.0+1.0i 1.234+1.234i) -1.234-1.234i) (num-test (* 0.0+1.0i 0.0+1.0i 1.234+1.234i) -1.234-1.234i) (num-test (/ 0.0+1.0i 0.0+1.0i 1.234+1.234i) 0.40518638573744-0.40518638573744i) (num-test (= 0.0+1.0i 0.0+1.0i 1.234+1.234i) #f) (num-test (+ 0.0+1.0i 0.0+1.0i -1.0+1.0i) -1.0+3.0i) (num-test (- 0.0+1.0i 0.0+1.0i -1.0+1.0i) 1.0-1.0i) (num-test (* 0.0+1.0i 0.0+1.0i -1.0+1.0i) 1.0-1.0i) (num-test (/ 0.0+1.0i 0.0+1.0i -1.0+1.0i) -0.5-0.5i) (num-test (= 0.0+1.0i 0.0+1.0i -1.0+1.0i) #f) (num-test (+ 0.0+1.0i 0.0+1.0i 0.0+1.0i) 0.0+3.0i) (num-test (- 0.0+1.0i 0.0+1.0i 0.0+1.0i) 0.0-1.0i) (num-test (* 0.0+1.0i 0.0+1.0i 0.0+1.0i) -0.0-1.0i) (num-test (/ 0.0+1.0i 0.0+1.0i 0.0+1.0i) 0.0-1.0i) (num-test (= 0.0+1.0i 0.0+1.0i 0.0+1.0i) #t) (num-test (+ 1073741824 1073741824 1073741824 1073741824) (* 4 1073741824)) (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 (- -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 (* -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 (/ -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) (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))) )))) (if with-bignums (begin ;; these are trivial translations of some numeric tests in the ;; Clisp test suite. Presumably they fall under Clisp's license, ;; which I belive is GPL (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 (- 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 (* -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 (/ 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 (+ -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 (- 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) (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) (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) (num-test (= -98781233389595723930250385525631360344437602649022271391716773162526352115087074898920261954897888235939429993829738630297052776667061779065100945771127020439712527398509771853491319737304616607041615012797134365574007368603232768089410097730646360760856052946465578073788924743642391638455649511108051053789425902013657106523269224045822294981391380222050223141347787674321888089837786284947870569165079491411110074602544203383038299901291952931113248943344436935596614205784436844912243069019367149526328612664067719765890897558075277707055756274228634652905751880612235340874976952880431555921814590049070979276358637989837532124647692152520447680373275200239544449293834424643702763974403094033892112967196087310232853165951285609426599617479356206218697586025251765476179158153123631158173662488102357611674821528467825910806391548770908013608889792001203039243914696463472490444573930050190716726220002151679336252008777326482398042427845860796285369622627679324605214987983884122808994422164327311297556122943400093231935477754959547620500784989043704825777186301417894825200797719289692636286337716705491307686644214213732116277102140558505945554566856673724837541141206267647285222293953181717113434757149921850120377706206012113994795124049471433490016083401216757825264766474891405185591236321448744678896448941259668731597494947127423662646933419809756274038044752395708014998820826196523041220918922611359697502638594907608648168849193813197790291360087857093790119162389573209640804111261616771827989939551840471235079945175327536638365874717775169210186608268924244639016270610098894971732892267642318266405837012482726627199088381027028630711279130575230815976484191675172279903609489448225149181063260231957171204855841611039996959582465138269247794842445177715476581512709861409446684911276158067098438009067149531119008707418601627426255891/2063950098473886055933596136103014753954685977787179797499441692283103642150668140884348149132839387663291870239435604463778573480782766958396423322880804442523056530013282118705429274303746421980903580754656364533869319744640130831962767797772323836293079599182477171562218297208495122660799328579852852969560730744211066545295945803939271680397511478811389399527913043145952054883289558914237172406636283114284363301999238526952309439259354223729114988806937903509692118585280437646676248013406270664905997291670857985754768850507766359973207600149782819306010561088246502918148146264806947375101624011387317921439210509902170092173796154464078297852707797984007992277904626058467143192149921546030028316990855470478894515952884526783686210401408859364838148201339959570732480920969000913791571631154267939054105878236201498477027265774680071188764947522112650857013491135901945605796776829525789886482760578142306057177990048751864852763036720112071475134369179525117161001517868525821398753039187062869247457336940152614866298628205010037695017885878296140891234142925514925051385440766473260338168038302226808098439763889250948602137806546736025439919604390464712793474019469457135856879584745805794574609707742445431851999335443724488636749987837445626810087003490329257105472274738811579817454656532496370562155449815456374456838912258383282154811001588175608617475540639254689723629881619252699580383612847920348111900440075645703960104081690968807839189109040568288972353424306876947127635585164905071821419089229871978994388197349499565628906992171901547121903117815637249359328193980583892566359962066242217169190169986105579733710057404319381685578470983838597020624234209884597110721892707818651210378187525863009879314177842634871978427592746452643603586344401223449546482306838947819060455178762434166799996220143825677025686435609179225302671777326568324855229172912876656233006785717920665743720753617646617017219230313226844735567400507490772935145894670445831971526014183234960075574401616682479457962912905141754252265169682318523572680657053374002911007741991220001444440319448034755483178790032581428679303588017268970 0) #f) ;; these come from Brad Lucier: (num-test (quotient 295147905149568077200 34359738366) 8589934591) (num-test (remainder 295147905149568077200 34359738366) 21754858894) (num-test (quotient 696898287454081973170944403677937368733396 1180591620717411303422) 590295810358705651711) (num-test (remainder 696898287454081973170944403677937368733396 1180591620717411303422) 314390899110894278354) ;; (map (lambda (x) (number->string x 2)) '(696898287454081973170944403677937368733396 1180591620717411303422 295147905149568077200 34359738366)) ;; ("1111111111111111111111111111111111111111111111111111111111111111111100100 010000101100001100110110010000011011101000100001101001011011010100" ;; "1111111111111111111111111111111111111111111111111111111111111111111110" ;; "11111111111111111111111111111111100100010000101100001100110110010000" ;; "11111111111111111111111111111111110") (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 (modulo (+ 2 (* 3 499127 495037 490459 468803)) (* 499127 495037 490459 468803)) 2) (num-test (let ((n 1)) (do ((i 2 (+ i 1))) ((= i 100)) (set! n (lcm n i))) n) 69720375229712477164533808935312303556800) (num-test (log 69720375229712477164533808935312303556800) 9.40453112293573922460049312446069272415E1) )) (let ((f= (lambda (a b) (< (abs (- a b)) 1.0e-15)))) (let ((log2 0.69314718055994530941723212145817656807550013436025525412068000949339362196969471560586332699641868754200148102057068573368552023575813055703267075163507596193072757082837143519030703862389167347112335011536449795523912047517268157493206515552473413952588295045300709532636664265410423915781495204374043038550080194417064167151864471283996817178454695702627163106454615025720740248163777338963855069526066834113727387372292895649354702576265209885969320196505855476470330679365443254763274495125040606943814710468994650622016772042452452961268794654619316517468139267250410380254625965686914419287160829380317271436778265487756648508567407764845146443994046142260319309673540257444607030809608504748663852313818167675143866747664789088143714198549423151997354880375165861275352916610007105355824987941472950929311389715599820565439287170007218085761025236889213244971389320378439353088774825970171559107088236836275898425891853530243634214367061189236789192372314672321720534016492568727477823445353476481149418642386776774406069562657379600867076257199184734022651462837904883062033061144630073719489002743643965002580936519443041191150608094879306786515887090060520346842973619384128965255653968602219412292420757432175748909770675268711581705113700915894266547859596489065305846025866838294002283300538207400567705304678700184162404418833232798386349001563121889560650553151272199398332030751408426091479001265168243443893572472788205486271552741877243002489794540196187233980860831664811490930667519339312890431641370681397776498176974868903887789991296503619270710889264105230924783917373501229842420499568935992206602204654941510613918788574424557751020683703086661948089641218680779020818158858000168811597305618667619918739520076671921459223672060253959543654165531129517598994005600036651356756905124592682574394648316833262490180382424082423145230614096380570070255138770268178516306902551370323405380214501901537402950994226299577964742713815736380172987394070424217997226696297993931270694) (log3 1.09861228866810969139524523692252570464749055782274945173469433363749429321860896687361575481373208878797002906595786574236800422593051982105280187076727741060316276918338136717937369884436095990374257031679591152114559191775067134705494016677558022220317025294689756069010652150564286813803631737329857778236699165479213181814902003010382363012224865274819822599109745249089645805346700884596508574844411901885708764749486707961308582941160216612118400140982551439194876889367984943022557315353296853452952514592138764946859325627944165569415782723103551688661021184698904399430631382552857364668828249881368228006341439107868932514564375102044516275619349739821169415857405353617589009751222337977369696877543547951357129821770175812421223514058101632724655889372495649191852429607966842346470693772372526550820320783339280558928531468730951326064583091843974968222303257654675333118230196492752575991322178513533902374829643395025460742458249346668661218814365265654295427676105054777954229339733234011737431939745798470185595484940594783539438410106029307622922281312074893063445340252777326856271480016818715472439782071878034446780216178158419042820076721243255738014364178876826161041016818724240687908909929874208152183237528942752732534071002835750695062403965462752244308462588450859786253083224774538885068003488324340490083990058080943565282122370388702036804548600776214244088697259413584365999226211739670804950952792714363154640444623089158185367119608370304853520909672629582415040355995121355450332241748474100331981487832452569334704949937301656336660991903957122822844881674312150628569993874038819012744839564791034772885972119850649422796985791669956418551265041502191554719665856929726606523573293736830027830921776605387030462007661584946700226011756797518003934791763277844935142634968360037557857160700498181519184373438290934746660457750659273670121115370582496479847930404205823964753857850960626093389914706120130243108260518262958640076003059494321166880446106134684533980)) (if (not (f= log3 (log 3.0))) (begin (display "(- (log 3.0) true-log-3) = ") (display (- log3 (log 3.0))) (newline))) (if (not (f= log2 (log 2.0))) (begin (display "(- (log 2.0) true-log-2) = ") (display (- log2 (log 2.0))) (newline))) (if (not (f= 3.0 (exp log3))) (begin (display "(- 3.0 (exp log3)) = ") (display (- 3.0 (exp log3))) (newline))) (if (not (f= 2.0 (exp log2))) (begin (display "(- 2.0 (exp log2)) = ") (display (- 2.0 (exp log2))) (newline)))) (let ((sin1 8.414709848078965066525023216302989996225630607983710656727517099919104043912396689486397435430526959e-1) (cos1 5.403023058681397174009366074429766037323104206179222276700972553811003947744717645179518560871830894e-1) (tan1 1.557407724654902230506974807458360173087250772381520038383946605698861397151727289555099965202242984e0)) (if (not (f= sin1 (sin 1))) (begin (display "(- (sin 1) true-sin-1) = ") (display (- sin1 (sin 1))) (newline))) (if (not (f= (asin sin1) 1.0)) (begin (display "(- (asin (sin 1)) 1) = ") (display (- (asin sin1) 1)) (newline))) (if (not (f= cos1 (cos 1))) (begin (display "(- (cos 1) true-cos-1) = ") (display (- cos1 (cos 1))) (newline))) (if (not (f= (acos cos1) 1.0)) (begin (display "(- (acos (cos 1)) 1) = ") (display (- (acos cos1) 1)) (newline))) (if (not (f= tan1 (tan 1))) (begin (display "(- (tan 1) true-tan-1) = ") (display (- tan1 (tan 1))) (newline))) (if (not (f= (atan tan1) 1.0)) (begin (display "(- (atan (tan 1)) 1) = ") (display (- (atan tan1) 1)) (newline))) (set! sin1 -.3056143888882523) (set! cos1 -.9521553682590148) (set! tan1 .3209711346238149) (if (not (f= sin1 (sin 10000))) (begin (display "(- (sin 10000) true-sin-10000) = ") (display (- sin1 (sin 10000))) (newline))) (if (not (f= cos1 (cos 10000))) (begin (display "(- (cos 10000) true-cos-10000) = ") (display (- cos1 (cos 10000))) (newline))) (if (not (f= tan1 (tan 10000))) (begin (display "(- (tan 10000) true-tan-10000) = ") (display (- tan1 (tan 10000))) (newline))) ) (if with-hyperbolic-functions (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))) ))) (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.932553783849336E+20) ;arprec (num-test (bes-i0 100.0) 1.073751707131074E+42)) (if (positive? 2147483648) ; check for int=32 bits (begin (num-test (< 1/123400000000 .000000000001) #f) (num-test (> 1/123400000000 .000000000001) #t))) (num-test (exp (* our-pi (sqrt 163))) 262537412640768743.999999999999) (if with-bigfloats (begin (num-test (exp (* our-pi (sqrt (bignum "163")))) 2.625374126407687439999999999992500725895E17) ;; H Cohen p 383 (test (< (abs (- (expt (- (exp (* our-pi (sqrt (bignum "163")))) 744) 1/3) 6.4031999999999999999999999999939031735E5)) 1e-32) #t) )) (num-test (+ 1/2 0.5) 1.0) (num-test (- 1/2 0.5d0) 0.0d0) (num-test (+ 0.5 -0.5 1/2) 0.5) (test (= 1.0+1.0i 1.0+1.0i) #t) (test (= 0.0+0.0i 0.0+0.0i) #t) (test (= 1.0+1i 1.0+1.0i) #t) (test (= 0.0 0.0+0.0i) #t) (test (= 1+1i 1+1i) #t) (test (= 0 0) #t) (num-test (= 3 3) #t) (num-test (= 3 5) #f) (num-test (= 3 3 3 3) #t) (num-test (= 3 3 5 3) #f) (num-test (= 3 6 5 2) #f) (num-test (= 3 2 3) #f) (num-test (< 3 5) #t) (num-test (<= 3 5) #t) (num-test (< 3 -5) #f) (num-test (<= 3 -5) #f) (num-test (< 3 3) #f) (num-test (<= 3 3) #t) (num-test (< 0 3 4 6 7) #t) (num-test (<= 0 3 4 6 7) #t) (num-test (< 0 3 4 4 6) #f) (num-test (<= 0 3 4 4 6) #t) (num-test (> 4 3) #t) (num-test (>= 4 3) #t) (num-test (> 4 3 2 1 0) #t) (num-test (>= 4 3 2 1 0) #t) (num-test (> 4 3 3 2 0) #f) (num-test (>= 4 3 3 2 0) #t) (num-test (> 4 3 1 2 0) #f) (num-test (>= 4 3 1 2 0) #f) (num-test (= 3.0 3.0+0.0i) #t) (num-test (= 3 3.0) #t) (num-test (= 0.0 0.0) #t) (num-test (= 5/2 2.5) #t) (num-test (= 2.5 5/2) #t) (num-test (= 5/2 2.5+0.0i) #t) (num-test (= 2.5+0.0i 5/2) #t) (num-test (= 5/2 2.5+1.0i) #f) (num-test (= 2.5+1.0i 5/2) #f) (num-test (> 0.0 0.0) #f) (num-test (= 0 0.0) #t) (num-test (= 5/2 2.5) #t) (num-test (< 3.0 3) #f) (num-test (< -5 -4 -2 0 4 5) #t) (num-test (> 8 7 6 5 4) #t) (num-test (<= 3.0 3) #t) (num-test (<= 3 3) #t) (num-test (<= 1 3 3 2 5) #f) (num-test (<= 5/2 2.5) #t) (num-test (>= -5 -4 -2 0 4 5) #f) (num-test (+ 1 1/2 0.5 3.0+5.5i) 5.0+5.5i) (num-test (- 3 0 3 5 -6) 1) (num-test (- 0+6i 1/4 0.5 7) -7.75+6.0i) (num-test (* 7 6 5 4 3 2 1) 5040) (num-test (* 2 2 2.0 2) 16.0) (num-test (/ -8) -1/8) (num-test (/ 4 2) 2) ;; -------------------------------------------------------------------------------- ;; miscellaneous numeric tests (num-test (expt 0+1i 2) -1) (num-test (acos 1.00001) 0.0+0.004472132228240686i) (num-test (sin (/ our-pi 12)) (* (/ (sqrt 2) 4) (- (sqrt 3) 1))) (num-test (cos (/ our-pi 12)) (* (/ (sqrt 2) 4) (+ (sqrt 3) 1))) (num-test (tan (/ our-pi 12)) (- 2 (sqrt 3))) (num-test (tan (* 1/4 (atan 4))) (* 2 (+ (cos (/ (* 6 our-pi) 17)) (cos (/ (* 10 our-pi) 17))))) (num-test (sin (/ our-pi 6)) 1/2) (num-test (cos (/ our-pi 6)) (/ (sqrt 3) 2)) (num-test (tan (/ our-pi 6)) (/ (sqrt 3) 3)) (num-test (sin (/ our-pi 5)) (/ (sqrt (- 10 (* 2 (sqrt 5)))) 4)) (num-test (cos (/ our-pi 5)) (/ (+ 1 (sqrt 5)) 4)) (num-test (tan (/ our-pi 5)) (sqrt (- 5 (* 2 (sqrt 5))))) (num-test (* (sin (/ our-pi 7)) (sin (/ (* 2 our-pi) 7)) (sin (/ (* 3 our-pi) 7))) (/ (sqrt 7) 8)) (num-test (* (cos (/ our-pi 7)) (cos (/ (* 2 our-pi) 7)) (cos (/ (* 3 our-pi) 7))) 1/8) (num-test (sin (/ our-pi 4)) (/ (sqrt 2) 2)) (num-test (cos (/ our-pi 4)) (/ (sqrt 2) 2)) (num-test (tan (/ our-pi 4)) 1) (num-test (sin (/ our-pi 3)) (/ (sqrt 3) 2)) (num-test (cos (/ our-pi 3)) 1/2) (num-test (tan (/ our-pi 3)) (sqrt 3)) (num-test (sin (/ our-pi 8)) (/ (sqrt (- 2 (sqrt 2))) 2)) (num-test (cos (/ our-pi 8)) (/ (sqrt (+ 2 (sqrt 2))) 2)) (num-test (tan (/ our-pi 8)) (- (sqrt 2) 1)) (num-test (* (sin (/ our-pi 9)) (sin (/ (* 2 our-pi) 9)) (sin (/ (* 4 our-pi) 9))) (/ (sqrt 3) 8)) (num-test (* (cos (/ our-pi 9)) (cos (/ (* 2 our-pi) 9)) (cos (/ (* 4 our-pi) 9))) 1/8) (num-test (* (tan (/ our-pi 9)) (tan (/ (* 2 our-pi) 9)) (tan (/ (* 4 our-pi) 9))) (sqrt 3)) (num-test (sin (/ our-pi 10)) (/ (- (sqrt 5) 1) 4)) (num-test (cos (/ our-pi 10)) (/ (sqrt (+ 10 (* 2 (sqrt 5)))) 4)) (num-test (tan (/ our-pi 10)) (/ (sqrt (- 25 (* 10 (sqrt 5)))) 5)) (num-test (* (sin (/ our-pi 11)) (sin (/ (* 2 our-pi) 11)) (sin (/ (* 3 our-pi) 11)) (sin (/ (* 4 our-pi) 11)) (sin (/ (* 5 our-pi) 11))) (sqrt (/ 11 1024))) (num-test (* (cos (/ our-pi 11)) (cos (/ (* 2 our-pi) 11)) (cos (/ (* 3 our-pi) 11)) (cos (/ (* 4 our-pi) 11)) (cos (/ (* 5 our-pi) 11))) 1/32) (num-test (* (tan (/ our-pi 11)) (tan (/ (* 2 our-pi) 11)) (tan (/ (* 3 our-pi) 11)) (tan (/ (* 4 our-pi) 11)) (tan (/ (* 5 our-pi) 11))) (sqrt 11)) (num-test (sin (/ our-pi 12)) (/ (- (sqrt 6) (sqrt 2)) 4)) (num-test (cos (/ our-pi 12)) (/ (+ (sqrt 6) (sqrt 2)) 4)) (num-test (tan (/ our-pi 12)) (- 2 (sqrt 3))) (num-test (sin (/ our-pi 15)) (/ (sqrt (- 7 (sqrt 5) (sqrt (- 30 (* 6 (sqrt 5)))))) 4)) (num-test (cos (/ our-pi 15)) (/ (+ (sqrt (+ 30 (* 6 (sqrt 5)))) (sqrt 5) -1) 8)) ;(num-test (tan (/ our-pi 15)) (sqrt (- 23 (* 10 (sqrt 5)) (* 2 (sqrt (+ 255 (* 114 (sqrt 5)))))))) (num-test (sin (/ our-pi 16)) (/ (sqrt (- 2 (sqrt (+ 2 (sqrt 2))))) 2)) (num-test (cos (/ our-pi 16)) (/ (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))) 2)) (num-test (tan (/ our-pi 16)) (- (sqrt (+ 4 (* 2 (sqrt 2)))) (sqrt 2) 1)) (num-test (sin (/ our-pi 20)) (/ (sqrt (- 8 (* 2 (sqrt (+ 10 (* 2 (sqrt 5))))))) 4)) (num-test (cos (/ our-pi 20)) (/ (sqrt (+ 8 (* 2 (sqrt (+ 10 (* 2 (sqrt 5))))))) 4)) (num-test (tan (/ our-pi 20)) (+ 1 (sqrt 5) (- (sqrt (+ 5 (* 2 (sqrt 5))))))) (num-test (sin (/ our-pi 24)) (/ (sqrt (- 2 (sqrt (+ 2 (sqrt 3))))) 2)) (num-test (cos (/ our-pi 24)) (/ (sqrt (+ 2 (sqrt (+ 2 (sqrt 3))))) 2)) (num-test (tan (/ our-pi 24)) (+ -2 (sqrt 2) (- (sqrt 3)) (sqrt 6))) (num-test (sin (/ our-pi 30)) (/ (+ -1 (- (sqrt 5)) (sqrt (- 30 (* 6 (sqrt 5))))) 8)) (num-test (cos (/ our-pi 30)) (/ (sqrt (+ 7 (sqrt 5) (sqrt (* 6 (+ 5 (sqrt 5)))))) 4)) (num-test (tan (/ our-pi 30)) (sqrt (- 7 (* 2 (sqrt 5)) (* 2 (sqrt (- 15 (* 6 (sqrt 5)))))))) (num-test (sin (/ our-pi 32)) (/ (sqrt (- 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))) 2)) (num-test (cos (/ our-pi 32)) (/ (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))) 2)) (num-test (cos (/ our-pi 64)) (* 1/2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))))))) (num-test (cos (/ our-pi 128)) (* 1/2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt 2))))))))))))) (num-test (/ our-pi 4) (+ (* 12 (atan (/ 18))) (* 8 (atan (/ 57))) (* -5 (atan (/ 239))))) (num-test (sin (- (/ our-pi 2) (* 0+i (log (/ (+ 1 (sqrt 5)) 2))))) (/ (sqrt 5) 2)) (num-test (sqrt 0+i) (/ 1+i (sqrt 2))) (num-test (expt 0+i 0+i) (exp (/ our-pi -2))) (num-test (* (cos (/ our-pi 9)) (cos (/ (* 2 our-pi) 9)) (cos (/ (* 4 our-pi) 9))) 1/8) (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 our-pi) (if (or with-bignums with-64-bit-ints) (num-test (+ 2 (expt 276694819753963/226588 1/158)) our-pi)) ; 23 digits ;(num-test (expt 4297607660/144171 1/9) our-pi) ; 15 digits (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)))) (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 (sqrt (- (expt 5 1/3) (expt 4 1/3))) (/ (+ (expt 2 1/3) (expt 20 1/3) (- (expt 25 1/3))) 3)) (num-test (* (+ 1 3 5) (* 1 3 5)) 135) (num-test (expt (+ (cos (/ (* 2 our-pi) 20)) (* 0+i (sin (/ (* 2 our-pi) 20)))) 20) 1.0) (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) (num-test (/ our-pi 4) (- (* 4 (atan (/ 1 5))) (atan (/ 1 239)))) (num-test (/ our-pi 4) (+ (atan 1/2) (atan 1/3))) (num-test (/ our-pi 4) (- (* 2 (atan 1/2)) (atan 1/7))) (num-test (/ our-pi 4) (+ (* 2 (atan 1/3)) (atan 1/7))) (num-test (/ our-pi 4) (+ (* 5 (atan 1/7)) (* 2 (atan 3/79)))) (num-test (/ our-pi 2) (+ (* 2 (atan (/ (sqrt 2)))) (atan (/ (sqrt 8))))) (num-test (* 768 (sqrt (- 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 (sqrt (+ 2 1))))))))))))))))))) 3.1415904632368) (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 (sqrt (- (expt 5 1/3) (expt 4 1/3))) (/ (+ (expt 2 1/3) (expt 20 1/3) (- (expt 25 1/3))) 3)) (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 (/ (+ 1 (sqrt 5)) 2) 5) (/ (+ 11 (* 5 (sqrt 5))) 2)) (num-test (/ (+ (atan (/ 239)) (atan (/ 70)) (- (atan (/ 99)))) 2) (+ (atan (/ 408)) (atan (/ 577)))) (num-test (cos (log (+ our-pi 20))) -0.99999999924368) (num-test (expt (+ our-pi 20) 0+i) -0.99999999924368-3.8892669402222e-05i) (num-test (cos (* our-pi (cos (* our-pi (cos (log (+ our-pi 20))))))) -1.0) ; actually there's a 3.93216e-35 imag part (num-test (/ (+ (cos (/ 10)) (cosh (/ 10)) (* 2 (cos (/ (sqrt 2) 20)) (cosh (/ (sqrt 2) 20)))) 4) 1.0000000000002480) (num-test (/ 53453 (log 53453)) 4910.0000012208) (num-test (/ (* 2 3 4 5 6 7 8 9 10) (* 2 (expt (log 2) 11))) 102247563.00527) (num-test (exp (* our-pi (sqrt 6))) 2197.9908695437) (num-test (exp (* our-pi (sqrt 17))) 422150.99767568) (num-test (exp (* our-pi (sqrt 18))) 614551.992885619) (num-test (exp (* our-pi (sqrt 22))) 2508951.998257424) (num-test (expt (/ (log (+ (expt 640320 3) 744)) our-pi) 2) 163.0) ; rest is 2.32167e-29 (num-test (exp (* our-pi (sqrt 719))) 3.8426143735395488914902942778058291929999e+36) (if (or with-bignums with-64-bit-ints) (num-test (+ (expt 415280564497/348671682660 3) (expt 676702467503/348671682660 3)) 9)) (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 (/ (- (sqrt 5) 1) 2) (/ (sin (* our-pi 1/5)) (sin (* our-pi 2/5)))) (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))))) our-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))))))) our-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)))) our-pi) (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)))))) (* our-pi our-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))) (num-test (+ (* 2 (atan (/ (sqrt 2)))) (atan (/ (sqrt 8)))) (/ our-pi 2)) (num-test (* 12 (/ 13591409 (expt 640320 3/2))) (/ our-pi)) (num-test (+ (* 48 (atan (/ 49))) (* 128 (atan (/ 57))) (* -20 (atan (/ 239))) (* 48 (atan (/ 110443)))) our-pi) (num-test (+ (* 176 (atan (/ 57))) (* 28 (atan (/ 239))) (* -48 (atan (/ 682))) (* 96 (atan (/ 12943)))) our-pi) (num-test (sqrt 13) (do ((i 1 (+ i 1)) (prod 1.0 (* prod (tan (/ (* i our-pi) 13))))) ((= i 7) prod))) (num-test (let ((a (/ (* 2 our-pi) 13))) (* 8 (+ (cos a) (cos (* 5 a))) (+ (cos (* 2 a)) (cos (* 3 a))) (+ (cos (* 4 a)) (cos (* 6 a))))) -1.0) (num-test (do ((i 1 (+ i 1)) (sum 0.0 (+ sum (cos (/ (* 2 our-pi i) 11))))) ((= i 6) sum)) -0.5) (num-test (do ((i 1 (+ i 1)) (sum 0.0 (+ sum (expt (sin (/ (* our-pi i) (* 2 10))) 4)))) ((= i 11) sum)) 4.25) (num-test (* 4 (+ (* 3 (atan 1/4)) (atan 1/20) (atan 1/1985))) our-pi) (num-test (* 10 (asin (/ (- (sqrt 5) 1) 4))) our-pi) (num-test (asin (/ (sqrt 2) 2)) (/ our-pi 4)) (num-test (asin (/ (sqrt 3) -2)) (/ our-pi -3)) (num-test (acos (/ (sqrt 2) 2)) (/ our-pi 4)) (num-test (acos (/ (sqrt 3) -2)) (- our-pi (/ our-pi 6))) (num-test (atan (sqrt 3)) (/ our-pi 3)) (num-test (atan (/ -1 (sqrt 3))) (/ our-pi -6)) (num-test (+ (* (sin 0.1) (sin 0.1)) (* (cos 0.1) (cos 0.1))) 1.0) (num-test (tan (/ our-pi 3)) (sqrt 3)) (num-test (tan (/ our-pi 4)) 1.0) (num-test (tan (/ our-pi 6)) (/ (sqrt 3))) (num-test (sin (/ our-pi 3)) (/ (sqrt 3) 2)) (num-test (cos (/ our-pi 3)) 1/2) (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 (if with-64-bit-ints 74 8)))) (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)))) (num-test (expt 3 9) (* 3 3 3 3 3 3 3 3 3)) (num-test (+ (expt 510 3) (expt 580 3)) (+ (expt 300 3) (expt 670 3))) (num-test (+ (expt 2230 4) (expt 3196 4) (expt 5620 4) (expt 6995 4)) (expt 7703 4)) (num-test (+ (expt 2 5) (expt 298 5) (expt 351 5) (expt 474 5) (expt 500 5)) (expt 575 5)) ;;; some of the tests in this section are thanks to Bill Gosper (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 (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))) (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 (- (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 (- 161 (* 12 (expt 5 1/4)))) (+ (* 2 (expt 5 3/4)) (- (* 3 (sqrt 5))) (* 4 (sqrt (sqrt 5))) 6)) (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 (/ (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 (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 (* 2 0+i (log (/ 1-i 1+i))) our-pi) ;;; -------------------------------------------------------------------------------- ;;; a selection from Eric Weisstein MathWorld MachinFormulas (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) our-pi)) 1e-12) (begin (display formula) (display " = ") (display (* r sum)) (newline))))) formulas) (if with-bigfloats (let ((mxerr 0.0)) (for-each (lambda (formula) (let ((r (/ (bignum "1") (car formula))) (sum (bignum "0.0"))) (for-each (lambda (arg) (set! sum (+ sum (* (car arg) (atan (/ (bignum "1") (cadr arg))))))) (cdr formula)) (let ((err (abs (- (* r sum) (* 4 (atan (bignum "1.0") 1.0)))))) (if (> err mxerr) (set! mxerr err))))) formulas) (if (> mxerr 1e-30) (format #t "big max error: ~A~%" mxerr))))) (if with-bigfloats (letrec ((sin-m*pi/n (lambda (m1 n1) ;; this returns an expression giving the exact value of sin(m*pi/n), m and n integer ;; if we can handle n -- currently it can be anything of the form 2^a 3^b 5^c 7^d 11^h 13^e 17^f 257^g ;; so (sin-m*pi/n 1 60) returns an exact expression for sin(pi/60). (let ((m (numerator (/ m1 n1))) (n (denominator (/ m1 n1)))) (set! m (modulo m (* 2 n))) ;; now it's in lowest terms without extra factors of 2*pi (cond ((zero? m) 0) ((zero? n) (error "divide by zero (sin-m*pi/n n = 0)")) ((= n 1) 0) ((negative? n) (let ((val (sin-m*pi/n m (- n)))) (and val `(- ,val)))) ((> m n) (let ((val (sin-m*pi/n (- m n) n))) (and val `(- ,val)))) ((= n 2) (if (= m 0) 0 1)) ((= n 3) `(sqrt 3/4)) ((> m 1) (let ((m1 (sin-m*pi/n (- m 1) n)) (n1 (sin-m*pi/n 1 n)) (m2 (sin-m*pi/n (- m 2) n))) (and m1 m2 n1 `(- (* 2 ,m1 (sqrt (- 1 (* ,n1 ,n1)))) ,m2)))) ((= n 5) `(/ (sqrt (- 10 (* 2 (sqrt 5)))) 4)) ((= n 7) `(let ((A1 (expt (+ -7/3456 (sqrt -49/442368)) 1/3)) (A2 (expt (- -7/3456 (sqrt -49/442368)) 1/3))) (sqrt (+ 7/12 (* -1/2 (+ A1 A2)) (* 1/2 0+i (sqrt 3) (- A1 A2)))))) ((= n 17) `(let* ((A1 (sqrt (- 17 (sqrt 17)))) (A2 (sqrt (+ 17 (sqrt 17)))) (A3 (sqrt (+ 34 (* 6 (sqrt 17)) (* (sqrt 2) (- (sqrt 17) 1) A1) (* -8 (sqrt 2) A2))))) (* 1/8 (sqrt 2) (sqrt (- 17 (sqrt 17) (* (sqrt 2) (+ A1 A3))))))) ((= n 11) `(let* ((SQRT5 (* 1/2 (- (sqrt 5) 1))) (B5 (sqrt (+ 2 (* 1/2 (+ (sqrt 5) 1))))) (B6 (+ SQRT5 (* 0+i B5))) (B6_2 (* B6 B6)) (B6_3 (* B6 B6 B6)) (B6_4 (* B6 B6 B6 B6)) (D1 (+ 6 (* 3/2 B6) (* 3/4 B6_2))) (D2 (+ SQRT5 (* 0+i B5) (* 1/4 B6_2))) (D3 (* 1/2 (- (+ 1 (* 0+i (sqrt 11)))))) (D4 (* 1/2 (- (* 0+i (sqrt 11)) 1))) (D6 (+ 1 (* 1/4 B6_2) (* 1/8 B6_3))) (D7 (+ (* 1/2 B6) (* 1/16 B6_4))) (D8 (+ 2 (* 1/2 B6))) (D9 (+ 13 (* 21 B6) (* 67/4 B6_2) (* 21/4 B6_3) (* 2 B6_4))) (D11 (+ 129 (* 109/2 B6) (* 59/4 B6_2) (* 9/8 B6_3) (* 9/16 B6_4))) (D13 (+ (* 3 B6) B6_2)) (D14 (+ (* 3 B6) (* 3/4 B6_2) (* 3/8 B6_3))) (D15 (+ 79 (* 27 B6) (* 39/4 B6_2) (* 37/4 B6_3) (* 21/4 B6_4))) (D16 (+ D11 (* D3 D9) (* D4 D15))) (D17 (+ D11 (* D4 D9) (* D3 D15))) (D30 (/ (* B6_2 (+ (* D3 D6) (* D4 D7))) (* 4 (expt D17 1/5)))) (D32 (* 1/2 (+ 1 (* 0+i (sqrt 11))))) (D33 (/ (* B6_3 (+ (* D4 D6) (* D3 D7))) (* 8 (expt D16 1/5)))) (D34 (* 1/4 B6_2 (expt D16 1/5))) (D35 (+ 2 (* 1/8 B6_4) (* 1/2 B6 D8) (* 1/8 B6_3 D2))) (D36 (+ SQRT5 (* 0+i B5) (* 1/2 B6_2) (* 1/4 B6_3) (* 1/2 B6 D2) (* 1/4 B6_2 (+ (* 1/4 B6_3) (* 1/16 B6_4))))) (D38 (* 1/2 (+ -1 (* 0+i (sqrt 11))))) (D39 (* 1/8 B6_3 (expt D17 1/5))) (D40 (+ 3 (* 3/2 B6) (* 9/4 B6_2) (* 7/8 B6_3) (* 3/16 B6_4) (* 1/2 B6 (+ 6 (* 2 B6))) (* 1/16 B6_4 D1) (* 1/4 B6_2 D13) (* 1/8 B6_3 (+ 3 (* 3/4 B6_3) (* 3/16 B6_4))))) (D41 (+ (* 1/4 B6_2 D1) (* 1/8 B6_3 D13) (* 1/16 B6_4 D14) (* 1/2 B6 (+ 4 (* 3/8 B6_4))))) (D42 (+ 3 (* 3/4 B6_3) (* 3/16 B6_4) (* 1/8 B6_3 D1) (* 1/4 B6_2 D14) (* 1/2 B6 (+ (* 3/2 B6_2) (* 3/8 B6_3) (* 3/16 B6_4))) (* 1/16 B6_4 (+ 3 (* 3/2 B6) (* 3/8 B6_4))))) (D43 (+ (* 1/4 B6_3) (* 1/16 B6_4) (* 1/8 B6_3 D8) (* 1/4 B6_2 D2) (* 1/2 B6 (+ (* 1/2 B6_2) (* 1/8 B6_3))) (* 1/16 B6_4 (+ 1 (* 1/8 B6_4))))) (D44 (/ (* B6_4 (+ D42 (* D4 D40) (* D3 D41))) (* 16 (expt D16 3/5)))) (D45 (/ (* B6 (+ D42 (* D3 D40) (* D4 D41))) (* 2 (expt D17 3/5)))) (D48 (/ (* B6 (+ D43 (* D3 D35) (* D4 D36))) (* 2 (expt D16 2/5)))) (D49 (/ (* B6_4 (+ D43 (* D4 D35) (* D3 D36))) (* 16 (expt D17 2/5))))) (* -1/2 0+i (+ (* 1/5 (- D32 D33 D34 D48 D44)) (* 1/5 (+ D38 D30 D39 D49 D45)))))) ((= n 13) `(let* ((A1 (/ (- -1 (sqrt 13)) 2)) (A2 (/ (+ -1 (sqrt 13)) 2)) (A3 (/ (+ -1 (* 0+i (sqrt 3))) 2)) (A4 (+ -1 (* 0+i (sqrt 3)))) (A5 (* 0+i (sqrt (+ 7 (sqrt 13) A2)))) (A6 (* 0+i (sqrt (+ 7 (- (sqrt 13)) A1)))) (A8 (* 1/2 (- A2 A6))) (A9 (* 1/2 (+ A1 A5))) (A11 (* 1/2 (+ A2 A6))) (A12 (* 1/2 (- A1 A5))) (A13 (* 3/2 A4 A8)) (A14 (* 3/2 A4 A11)) (A15 (* 3/4 A4 A4 A11)) (A16 (* 3/4 A4 A4 A8)) (A17 (+ A3 (* 1/4 A4 A4)))) (* -1/6 0+i (+ (- A9 A12) (* A4 (+ (/ (+ A8 (* A17 A12)) (* 2 (expt (+ 6 A13 A15 A9) 1/3))) (/ (+ A11 (* A17 A9)) (* -2 (expt (+ 6 A16 A14 A12) 1/3))) (* 1/4 A4 (- (expt (+ 6 A13 A15 A9) 1/3) (expt (+ 6 A16 A14 A12) 1/3))))))))) ((= n 257) `(let* ((A1 (sqrt (- 514 (* 2 (sqrt 257))))) (A2 (- 257 (* 15 (sqrt 257)))) (A3 (+ 257 (* 15 (sqrt 257)))) (A4 (- 257 (sqrt 257))) (A5 (+ (sqrt 257) 257)) (A7 (+ 257 (* 9 (sqrt 257)))) (A8 (- 514 (* 18 (sqrt 257)))) (AA (sqrt (* 2 A5))) (A9 (sqrt (+ A2 (* 8 A1) (* -7 AA)))) (A10 (sqrt (+ A2 (* -8 A1) (* 7 AA)))) (A11 (sqrt (+ A3 (* 7 A1) (* 8 AA)))) (A12 (sqrt (+ A3 (* -7 A1) (* -8 AA)))) (A13 (sqrt (+ A8 (* 6 A1) (* 8 A9) (* -24 A10) (* 12 A11)))) (A14 (* 4 (sqrt (+ A8 (* 6 A1) (* -8 A9) (* 24 A10) (* -12 A11))))) (A15 (* 4 (sqrt (+ A8 (* -6 A1) (* -12 A12) (* 24 A9) (* 8 A10))))) (A16 (* 4 (sqrt (* 2 (+ (- 257 (* 9 (sqrt 257))) (* -3 A1) (* 6 A12) (* -12 A9) (* -4 A10)))))) (A17 (sqrt (* 2 (+ A7 (* -3 AA) (* -4 A12) (* 6 A9) (* 12 A11))))) (A18 (sqrt (* 2 (+ A7 (* 3 AA) (* 12 A12) (* -6 A10) (* 4 A11))))) (A19 (* 4 (sqrt (* 2 (+ A7 (* 3 AA) (* -12 A12) (* 6 A10) (* -4 A11)))))) (A20 (* 4 (sqrt (* 2 (+ A7 (* -3 AA) (* 4 A12) (* -6 A9) (* -12 A11)))))) (A22 (+ A4 (* 3 A1) (* -4 AA) (* -4 A12) (* 4 A9) (* -4 A10) (* 2 A11))) (A23 (+ A5 (* -4 A1) (* -3 AA) (* -4 A12) (* 2 A9) (* 4 A10) (* 4 A11))) (A24 (+ A5 (* 4 A1) (* 3 AA) (* 4 A12) (* 4 A9) (* -2 A10) (* 4 A11))) (A26 (sqrt (+ A22 (+ (- A16) (- A19) (* 4 A17) (* -6 A13))))) (A27 (sqrt (+ A22 (+ A16 A19 (* -4 A17) (* 6 A13))))) (A28 (+ 257 (* 7 (sqrt 257)) (* 3 A1) (* -4 A9) (* 4 A10) (* 6 A11))) (A29 (* 8 (sqrt (+ A24 A15 (- A20) (* -6 A18) (* -4 A13))))) (A30 (+ A28 (* -4 A18) (* -4 A17) (* -2 A13))) (A31 (+ (* 8 (sqrt (+ A23 A15 A14 (* 4 A18) (* -6 A17)))) (* 4 A26) A29 (* -8 A27)))) (* 1/16 (sqrt (* 1/2 (+ A4 (- A1) (* -2 A11) (* -2 A13) (* -4 A26) (* -4 (sqrt (* 2 (+ A30 (- A31))))) (* -8 (sqrt (+ A4 (- A1) (* -2 A11) (* 6 A13) (* -4 A26) (* -8 A27) (* 4 (sqrt (* 2 (+ A30 A31)))) (* -8 (sqrt (* 2 (+ A28 (* 4 A18) (* 4 A17) (* 2 A13) (* -8 A26) (* -4 A27) (* -8 (sqrt (+ A23 (- A15) (- A14) (* -4 A18) (* 6 A17)))) (* -8 (sqrt (+ A24 (- A15) A20 (* 6 A18) (* 4 A13))))))))))))))))) ((or (= (modulo n 2) 0) (= (modulo n 3) 0) (= (modulo n 5) 0) (= (modulo n 7) 0) (= (modulo n 17) 0) (= (modulo n 13) 0) (= (modulo n 257) 0) (= (modulo n 11) 0)) (let ((divisor (if (= (modulo n 2) 0) 2 (if (= (modulo n 3) 0) 3 (if (= (modulo n 5) 0) 5 (if (= (modulo n 7) 0) 7 (if (= (modulo n 17) 0) 17 (if (= (modulo n 13) 0) 13 (if (= (modulo n 11) 0) 11 257))))))))) (let ((val (sin-m*pi/n 1 (/ n divisor)))) (and val `(let ((ex ,val)) (/ (- (expt (+ (sqrt (- 1 (* ex ex))) (* 0+i ex)) (/ 1 ,divisor)) (expt (- (sqrt (- 1 (* ex ex))) (* 0+i ex)) (/ 1 ,divisor))) 0+2i)))))) (else #f)))))) (let ((maxerr 0.0) (max-case #f) (cases 0)) (do ((n 1 (+ n 1))) ((= n 100)) (do ((m 1 (+ m 1))) ((= m 4)) (letrec ((bigify (lambda (lst) (if (pair? lst) (cons (if (number? (car lst)) (list 'bignum (number->string (car lst))) (bigify (car lst))) (bigify (cdr lst))) lst)))) (let ((val (sin (/ (* m our-pi) n))) (expr (bigify (sin-m*pi/n m n)))) (if expr (let ((err (magnitude (- val (eval expr))))) (set! cases (+ cases 1)) (if (> err maxerr) (begin (set! max-case (/ m n)) (set! maxerr err))))))))) (if (> maxerr 1e-35) (format #t "sin-m*pi/n (~A cases) max err ~A at ~A~%" cases maxerr max-case)))) ) (test (integer? (expt 2.3 54)) #f) (test (zero? (- (expt 2.3 54) (floor (expt 2.3 54)))) #f) (test (integer? 10000000000000000.5) #f) (test (integer? (expt 2 54)) #t) (num-test (+ 1 (expt 2 54)) 18014398509481985) (num-test (- (expt 2 54) 18014398509481984) 0) (num-test (- (expt 2 54) 18014398509481983) 1) (num-test (+ 10000000000000000 1) 10000000000000001) (num-test (- 10000000000000000 9999999999999999) 1) (num-test (/ (expt 2 -53) 2) (expt 2 -54)) (num-test (* 1/18014398509481984 1/2) (expt 2 -55)) (num-test (/ (expt 2.3 50) (expt 2.3 49)) 2.3) (num-test (/ 1e-10 1e10) 1e-20) ;(num-test (/ 1e-20 1e300) 1e-321) ;;; why: (- 1e-2 (expt 10 -2)) = 2.081668171172168513294235909273361692968E-19? in guile it's 0.0 -- this is mpfr's fault (num-test (/ (expt 10 -20) (expt 10 -20)) 1) (num-test (/ (expt 10 -200) (expt 10 -200)) 1) (num-test (* .000000000000123 .000000000000123) 1.5129e-26) (num-test (sqrt (* 1.2345e-27 1.2345e-27)) 1.2345e-27) (num-test (sqrt (* 1.2345e-127 1.2345e-127)) 1.2345e-127) (if with-bigfloats (begin (num-test (sqrt (expt 2 32)) 65536) (num-test (/ (log (expt 2 32)) (log 2)) 32.0) (num-test (/ (sqrt (* 1.2345e-170 1.2345e-170))) 8.100445524503847216161209708816501953798E169) (num-test (/ (expt (* 1.2345e-170 1.2345e-170) 1/100)) 2.501325312985302606641508258507698932691E3) (num-test (/ (+ 1.2345e-15 1 -1)) 8.1004455245038e+14) (num-test (/ (+ 1 1.2345e-14 -1)) 81004455245038.0) (num-test (/ (+ 1 1.2345e-10 -1)) 8100445524.5038) (num-test (* 1.2345e-15 8.1004455245038e+14) 9.999999999999941444123044301452428384978E-1) ; the inverse is not exact (num-test (+ 1.23456789 1.0e11 -1.0e11) 1.23456789) (num-test (- 1.0e11 -1.23456789 1.0e11) 1.23456789) (num-test (* 2.0e-170 3.0e-170 4.0e170 5.0e170) 120.0) (num-test (* 4.0e170 5.0e170 2.0e-170 3.0e-170) 120.0) (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) ;; 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 (our-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)) )) (num-test (tan (/ our-pi 4)) 1.0) (num-test (+ (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) 4197377/1049600) (num-test (- (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) -3073/1049600) (num-test (* (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) 4098/1025) (num-test (/ (/ (expt 2 11) (+ (expt 2 10) 1)) (/ (+ (expt 2 11) 1) (expt 2 10))) 2097152/2100225) (if with-64-bit-ints (begin (num-test (+ (/ (expt 2 21) (+ (expt 2 20) 1)) (/ (+ (expt 2 21) 1) (expt 2 20))) 4398049656833/1099512676352) (num-test (- (/ (expt 2 21) (+ (expt 2 20) 1)) (/ (+ (expt 2 21) 1) (expt 2 20))) -3145729/1099512676352) (num-test (* (/ (expt 2 21) (+ (expt 2 20) 1)) (/ (+ (expt 2 21) 1) (expt 2 20))) 4194306/1048577) (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))) 4503601775902721/1099512676352) (num-test (- (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) -2148532225/1099512676352) (if (not with-bignums) (num-test (* (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) 4194300.0019569) (num-test (* (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) 4398046513152/1048577)) (num-test (/ (/ (expt 2 31) (+ (expt 2 20) 1)) (/ (+ (expt 2 31) 1) (expt 2 20))) 2251799813685248/2251801962217473) )) (if with-bignums (begin (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 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))) 4835703278458516700921856/1099511627777) (num-test (/ (/ (expt 2 61) (+ (expt 2 40) 1)) (/ (+ (expt 2 61) 1) (expt 2 40))) 2535301200456458802993406410752/2535301200458764647102131732481) )) (if (and (not with-bignums) (not with-64-bit-ints)) (begin (num-test (+ 1/98947 2/97499 3/76847) 6.9658060696377e-05) (num-test (- 1/98947 2/97499 3/76847) -4.9445219478352e-05) (num-test (* 1/98947 2/97499 3/76847) 8.0932236106886e-15) (num-test (/ 1/98947 2/97499 3/76847) 12620.402257437) ) (begin (num-test (+ 1/98947 2/97499 3/76847) 51641766530/741360956847391) (num-test (- 1/98947 2/97499 3/76847) -36656755224/741360956847391) (num-test (* 1/98947 2/97499 3/76847) 6/741360956847391) (num-test (/ 1/98947 2/97499 3/76847) 7492505653/593682) )) (if (and (not with-bignums) (not with-64-bit-ints)) (begin (num-test (+ 500009/500029 500057/500041) 1.99999199969608) (num-test (- 500009/500029 500057/500041) -7.19950563497026e-5) (num-test (* 500009/500029 500057/500041) 0.99999199841626) (num-test (/ 500009/500029 500057/500041) 0.999928007247229)) (begin (num-test (+ 500009/500029 500057/500041) 500068002022/250035001189) (num-test (- 500009/500029 500057/500041) -18001284/250035001189) (num-test (* 500009/500029 500057/500041) 250033000513/250035001189) (num-test (/ 500009/500029 500057/500041) 250025000369/250043001653))) (if (not with-bignums) (begin (num-test (+ 500009/500029 500057/500041 500083/500069) 3.00001999583261) (num-test (- 500009/500029 500057/500041 500083/500069) -1.00009999119288) (num-test (* 500009/500029 500057/500041 500083/500069) 1.00001999432878) (num-test (/ 500009/500029 500057/500041 500083/500069) 0.999900013909921)) (begin (num-test (+ 500009/500029 500057/500041 500083/500069) 375106759202738205/125034753009582041) (num-test (- 500009/500029 500057/500041 500083/500069) -125047255383687283/125034753009582041) (num-test (* 500009/500029 500057/500041 500083/500069) 125037252995542579/125034753009582041) (num-test (/ 500009/500029 500057/500041 500083/500069) 125029751909525461/125042254395637199))) (if (not with-bignums) (begin (num-test (+ 1/98947 2/97499 3/76847 4/61981) 0.00013419396686117) (num-test (- 1/98947 2/97499 3/76847 4/61981) -0.00011398112564314) (num-test (* 1/98947 2/97499 3/76847 4/61981) 5.2230351951008e-19) (if with-64-bit-ints (num-test (/ 1/98947 2/97499 3/76847 4/61981) 464392992878593/2374728) ;195556288.07955 -- seems to fit (num-test (/ 1/98947 2/97499 3/76847 4/61981) 195556288.07955)) ) (begin (num-test (+ 1/98947 2/97499 3/76847 4/61981) 6166252158685494/45950293466358141571) (num-test (- 1/98947 2/97499 3/76847 4/61981) -5237466172928308/45950293466358141571) (num-test (* 1/98947 2/97499 3/76847 4/61981) 24/45950293466358141571) (num-test (/ 1/98947 2/97499 3/76847 4/61981) 464392992878593/2374728) )) (if (not with-bignums) (begin (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981) 0.00021755369744252) (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981) -0.00019734085622449) (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981) 4.3539080668052e-23) (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981) 2345932343059.9) ) (begin (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981) 599609438061905323469/2756144552405627689570151) (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981) -543899925850203550003/2756144552405627689570151) (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981) 120/2756144552405627689570151) (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981) 27854756105850886733/11873640) )) (if (not with-bignums) (begin (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 0.00030764243484887) (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) -0.00028742959363084) (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 3.9223808052178e-27) (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 2.6040239996689e+16) ) (begin (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 6/66601) -52761146275983172771170709/183561983334767209753061626751) (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 6/66601) 1855154611405774907304533/71241840) )) (if (not with-bignums) (begin (num-test (+ 98947 2/97499 76847 4/61981 5/59981) 175794.00016841) (num-test (- 98947 2/97499 76847 4/61981 5/59981) 22099.999831591) (if with-64-bit-ints (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139) ;0.00083910652502692 (num-test (* 98947 2/97499 76847 4/61981 5/59981) 0.00083910652502692)) (num-test (/ 98947 2/97499 76847 4/61981 5/59981) 11667778186668.0) ) (begin (num-test (+ 98947 2/97499 76847 4/61981 5/59981) 63720106179329487759/362470312515139) (num-test (- 98947 2/97499 76847 4/61981 5/59981) 8010593845541429507/362470312515139) (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139) (num-test (/ 98947 2/97499 76847 4/61981 5/59981) 35865350012435458633/3073880) )) (num-test (* 2 (asin 1)) our-pi) (num-test (+ 1e100 -1e100) 0.0) (num-test (+ 1e200 -1e200) 0.0) (num-test (+ 1e300 -1e300) 0.0) (num-test (* 1e100 1e-100) 1.0) (num-test (* 1e200 1e-200) 1.0) (num-test (* 1e300 1e-300) 1.0) (num-test (* 1e100 0.001) 1e97) (test (= 1e100 1e+100) #t) (num-test (+ 1e100 1e100) 2e100) (num-test (let ((x 1) (y 2)) (set! x (* 0 (let () (set! y 32) 1))) y) 32) (num-test (* 11/1234 1234/11 11/1234 1234/11 11/1234 1234/11) 1) (num-test (/ 1.0 (/ 1.0 our-pi)) our-pi) (num-test (/ 1 (/ 1 1234)) 1234) (num-test (* our-pi (+ 1.0 (atan (tan (acos (cos (asin (sin (/ 1.0 (/ 1.0 our-pi)))))))))) our-pi) (num-test (/ 1.0 (/ 1.0 1.0+1.0i)) 1.0+1.0i) (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) (test (< (abs (- x result)) .001) #t))) (num-test (exp (make-rectangular 0.0 our-pi)) -1.0) (if (positive? 2147483648) (begin (num-test (/ 12341234/111 123456789 12341234/111) 1/123456789) (num-test (abs -922337203685477580) 922337203685477580))) (if (or with-bignums with-64-bit-ints) (begin (num-test (+ 123456789/3 3/123456789 -123456789/3 -3/123456789) 0) (num-test (/ 123412341234) 1/123412341234) (num-test (/ 1/123412341234) 123412341234))) (let ((tag (catch #t (lambda () (log 10.0 10.0)) (lambda args 'error)))) (if (and (number? tag) (equal? tag 1.0)) ;; we apparently have 2nd arg to log, so add a few tests of that (begin (num-test (log 8.0 2) 3.0) (num-test (log 9.0 3.0) 2.0) (num-test (log 12/8 3/2) 1.0) (num-test (log (expt 3/2 10) 3/2) 10.0) (num-test (log 8.0 -2.0) 0.13926097063622-0.63118087262379i) (num-test (expt -2.0 0.13926097063622-0.63118087262379i) 8.0) (num-test (log 8.0 1.0+i) 0.97790391649038-2.2161063668189i) (num-test (expt 1.0+i 0.97790391649038-2.2161063668189i) 8.0) (num-test (log 1.0+i -2.0) 0.26160508088635-0.052598406051983i) (num-test (expt -2.0 0.26160508088635-0.052598406051983i) 1.0+i) (num-test (log 10.0 0.001) -0.33333333333333) (num-test (log 10.0 -0.001) -0.27620436338394-0.12561556740966i) (num-test (log 10.0 100.0) 0.5) ))) (let ((dht (lambda (data) ; the Hartley transform of 'data' (let* ((len (vector-length data)) (arr (make-vector len 0.0)) (w (/ (* 2.0 our-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)))) (if (> mx 1e-6) (begin (display "dht error: ") (display mx) (newline))))) (num-test (+ 3 4) 7 ) (num-test (+ 3) '3 ) (num-test (+) 0 ) (num-test (* 4) 4 ) (num-test (*) 1 ) (num-test (- 3 4) -1 ) (num-test (- 3) -3 ) ;; -------- random (if with-full-fledged-random (let ((v (lambda (n range chker) ; chi^2 or mus-random (let ((hits (make-vector 100 0))) (do ((i 0 (+ 1 i ))) ((= i n)) (let ((y (random range))) (if (not (chker y)) (format #t "(random ~A) -> ~A?~%" range y)) (let ((iy (min 99 (inexact->exact (floor (* 100 (/ y range))))))) (vector-set! hits iy (+ 1 (vector-ref hits iy)))))) (let ((sum 0.0) (p (/ n 100.0))) (do ((i 0 (+ 1 i))) ((= i 100) sum) (let ((num (- (vector-ref hits i) p))) (set! sum (+ sum (/ (* num num) p)))))))))) (num-test (random 0) 0) (num-test (random 0.0) 0.0) (let ((vr (v 1000 1.0 (lambda (val) (and (real? val) (not (negative? val)) (<= val 1.0)))))) (if (or (< vr 40) (> vr 400)) (format #t "(random 1.0) not so random? ~A~%" vr))) (let ((vr (v 1000 100 (lambda (val) (and (integer? val) (not (negative? val)) (<= val 100)))))) (if (or (< vr 40) (> vr 400)) (format #t "(random 100) not so random? ~A~%" vr))) ;; this assumes random can take a fraction (let ((vr (v 1000 1/2 (lambda (val) (and (rational? val) (not (negative? val)) (<= val 1/2)))))) (if (or (< vr 40) (> vr 400)) (format #t "(random 1/2) not so random? ~A~%" vr))) (let ((vr (v 1000 -10.0 (lambda (val) (and (real? val) (not (positive? val)) (>= val -10.0)))))) (if (or (< vr 40) (> vr 400)) (format #t "(random -10.0) not so random? ~A~%" vr))) ;; this assumes random can take a complex arg (do ((i 0 (+ i 1))) ((= i 100)) (let ((val (random 1.0+1.0i))) (if (or (not (complex? val)) (> (real-part val) 1.0) (> (imag-part val) 1.0) (< (real-part val) 0.0)) (format #t "(random 1.0+1.0i) -> ~A?~%" val)))) (let ((rs (make-random-state 12345678))) (do ((i 0 (+ i 1))) ((= i 100)) (let ((val (random 1.0 rs))) (if (or (not (real? val)) (negative? val) (> val 1.0)) (format #t "(random 1.0 rs) -> ~A?~%" val))))) (if with-bigfloats (begin (num-test (random (bignum "0")) 0) (num-test (random (bignum "0.0")) 0.0) (let ((vr (v 1000 (bignum "1.0") (lambda (val) (and (real? val) (not (negative? val)) (<= val 1.0)))))) (if (or (< vr 40) (> vr 400)) (format #t "(big-random 1.0) not so random? ~A~%" vr))) (let ((vr (v 1000 (bignum "100") (lambda (val) (and (integer? val) (not (negative? val)) (<= val 100)))))) (if (or (< vr 40) (> vr 400)) (format #t "(big-random 100) not so random? ~A~%" vr))) (let ((vr (v 1000 (bignum "1/2") (lambda (val) (and (rational? val) (not (negative? val)) (<= val 1/2)))))) (if (or (< vr 40) (> vr 400)) (format #t "(big-random 1/2) not so random? ~A~%" vr))) (let ((vr (v 1000 (bignum "-10.0") (lambda (val) (and (real? val) (not (positive? val)) (>= val -10.0)))))) (if (or (< vr 40) (> vr 400)) (format #t "(big-random -10.0) not so random? ~A~%" vr))) (do ((i 0 (+ i 1))) ((= i 100)) (let ((val (random (bignum "1.0+1.0i")))) (if (or (not (complex? val)) (> (real-part val) 1.0) (> (imag-part val) 1.0) (< (real-part val) 0.0)) (format #t "(big-random 1.0+1.0i) -> ~A?~%" val)))) (let ((rs (make-random-state (bignum "12345678")))) (do ((i 0 (+ i 1))) ((= i 100)) (let ((val (random (bignum "1.0") rs))) (if (or (not (real? val)) (negative? val) (> val 1.0)) (format #t "(big-random 1.0 rs) -> ~A?~%" val))) (let ((val (random 1.0 rs))) (if (or (not (real? val)) (negative? val) (> val 1.0)) (format #t "(big-random small-1.0 rs) -> ~A?~%" val))))) (let ((rs (make-random-state 1234))) (do ((i 0 (+ i 1))) ((= i 100)) (let ((val (random (bignum "1.0") rs))) (if (or (not (real? val)) (negative? val) (> val 1.0)) (format #t "(big-random 1.0 small-rs) -> ~A?~%" val))) (let ((val (random 1.0 rs))) (if (or (not (real? val)) (negative? val) (> val 1.0)) (format #t "(random small-1.0 rs) -> ~A?~%" val))))) )) )) ;;;;From: fred@sce.carleton.ca (Fred J Kaudel) ;;; Modified by jaffer. (let ((f3.9 (string->number "3.9")) (f4.0 (string->number "4.0")) (f-3.25 (string->number "-3.25")) (f.25 (string->number ".25")) (f4.5 (string->number "4.5")) (f3.5 (string->number "3.5")) (f0.0 (string->number "0.0")) (f0.8 (string->number "0.8")) (f1.0 (string->number "1.0")) (f1e300 (and (string->number "1+3i") (string->number "1e300"))) (f1e-300 (and (string->number "1+3i") (string->number "1e-300")))) (test (eqv? 1 f1.0) #f ) (test (eqv? 0 f0.0) #f ) (test (eqv? f0.0 f0.0) #t ) (test (= f0.0 f0.0) #t ) (test (= f0.0 (- f0.0)) #t ) (test (= f0.0 (* -5 f0.0)) #t ) (test (inexact? f3.9) #t ) (test (exact->inexact 4) f4.0 ) (test (exact->inexact 4.0) f4.0 ) (test (inexact->exact 4) 4 ) (test (inexact->exact 4.0) 4 ) (num-test (round f0.0) f0.0 ) (num-test (round f.25) f0.0 ) (num-test (round f0.8) f1.0 ) (num-test (round f3.5) f4.0 ) (num-test (round f4.5) f4.0 ) (num-test (expt f0.0 f1.0) f0.0 ) (num-test (expt f0.0 1) f0.0 ) (num-test (expt 0 f1.0) f0.0 ) (num-test (expt -25 f0.0) f1.0 ) (num-test (expt f-3.25 f0.0) f1.0 ) (num-test (expt f-3.25 0) 1.0 ) (num-test (atan 1 1) (atan 1))) (if with-bignums (letrec ((tb (lambda (n1 n2) (= n1 (+ (* n2 (quotient n1 n2)) (remainder n1 n2)))))) (let ((b3-3 (string->number "33333333333333333333")) (b3-2 (string->number "33333333333333333332")) (b3-0 (string->number "33333333333333333330")) (b2-0 (string->number "2177452800"))) (num-test (modulo b3-3 3) 0 ) (num-test (modulo b3-3 -3) 0 ) (num-test (remainder b3-3 3) 0 ) (num-test (remainder b3-3 -3) 0 ) (num-test (modulo b3-2 3) 2 ) (num-test (modulo b3-2 -3) -1 ) (num-test (remainder b3-2 3) 2 ) (num-test (remainder b3-2 -3) 2 ) (num-test (modulo (- b3-2) 3) 1 ) (num-test (modulo (- b3-2) -3) -2 ) (num-test (remainder (- b3-2) 3) -2 ) (num-test (remainder (- b3-2) -3) -2 ) (num-test (modulo 3 b3-3) 3 ) (num-test (modulo -3 b3-3) b3-0 ) (num-test (remainder 3 b3-3) 3 ) (num-test (remainder -3 b3-3) -3 ) (num-test (modulo -3 (- b3-3)) -3 ) (num-test (remainder 3 (- b3-3)) 3 ) (num-test (remainder -3 (- b3-3)) -3 ) (num-test (modulo (- b2-0) 86400) 0 ) (num-test (modulo b2-0 -86400) 0 ) (num-test (modulo b2-0 86400) 0 ) (num-test (modulo (- b2-0) -86400) 0 ) (num-test (modulo 0 (- b2-0)) 0 )) (num-test (abs -12345678901234567890) 12345678901234567890) (num-test (abs 12345678901234567890) 12345678901234567890) (num-test (modulo 12345678901234567890 3123) 1071) (num-test (modulo 12345678901234567890 12345678901234567) 890) (test (even? 12345678901234567890) #t) (test (even? 12345678901234567891) #f) (test (odd? 12345678901234567891) #t) (test (odd? 12345678901234567890) #f) (test (positive? 12345678901234567890) #t) (test (positive? -12345678901234567890) #f) (test (negative? 12345678901234567890) #f) (test (negative? -12345678901234567890) #t) (test (zero? 12345678901234567890) #f) (test (exact? 12345678901234567890) #t) (test (inexact? 12345678901234567890) #f) (test (> 12345678901234567890 12345678901234567891) #f) (test (< 12345678901234567890 12345678901234567891) #t) (test (>= 12345678901234567890 12345678901234567891) #f) (test (<= 12345678901234567890 12345678901234567891) #t) (test (= 12345678901234567890 12345678901234567891) #f) (num-test (max 12345678901234567890 12345678901234567891) 12345678901234567891) (num-test (min 12345678901234567890 12345678901234567891) 12345678901234567890) (num-test (gcd 12345678901234567890 12345) 15) ;; (test (not (= (sin 12345678901234567890) (cos 12345678901234567890))) #t) ; and so on (num-test (+ 4611686018427387904 1) 4611686018427387905) ; (expt 2 62) + 1 -- should work in both cases (num-test (+ 4611686018427387904 -1) 4611686018427387903) (num-test (+ 4611686018427387904 4611686018427387904) 9223372036854775808) (num-test (+ 4611686018427387904 -4611686018427387904) 0) (num-test (+ 8589934592 4611686018427387904) 4611686027017322496) (num-test (+ 2147483648 4611686018427387904) 4611686020574871552) (num-test (+ 2147483647 4611686018427387904) 4611686020574871551) (num-test (+ 2147483649 4611686018427387904) 4611686020574871553) (num-test (+ 8589934591 4611686018427387904) 4611686027017322495) (num-test (+ -8589934591 4611686018427387904) 4611686009837453313) (num-test (+ -8589934591 -4611686018427387904) -4611686027017322495) (num-test (+ 8589934591 -4611686018427387904) -4611686009837453313) (num-test (+ 2147483649 4611686018427387904 2147483649 4611686018427387904) 9223372041149743106) (num-test (+ 9223372041149743106 9223372041149743106) 18446744082299486212) (num-test (+ 9223372041149743106 -9223372041149743106) 0) (num-test (+ 18446744082299486212 1) 18446744082299486213) (num-test (+ 9223372036854775807 -1) 9223372036854775806) (num-test (+ -9223372036854775807 -1) -9223372036854775808) (num-test (+ -9223372036854775807 1) -9223372036854775806) (num-test (+ 1073741825 1073741825) 2147483650) (num-test (+ 2147483649 -4611686018427387904 -2147483649 4611686018427387904) 0) (num-test (+ 1099511627775 9223372036854775807) 9223373136366403582) (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 (+ 1e400 1e399) 1.1e400) (test (real? 9223372036854775808) #t) (test (integer? 9223372036854775808) #t) (test (number? 9223372036854775808) #t) (test (rational? 9223372036854775808) #t) (test (complex? 9223372036854775808) #t) (test (positive? 9223372036854775808) #t) (test (negative? 9223372036854775808) #f) (test (zero? 9223372036854775808) #f) (test (real? 9223372036854775808.1) #t) (test (integer? 9223372036854775808.1) #f) (test (number? 9223372036854775808.1) #t) (test (rational? 9223372036854775808.1) #f) (test (complex? 9223372036854775808.1) #t) (test (positive? 9223372036854775808.1) #t) (test (negative? 9223372036854775808.1) #f) (test (zero? 9223372036854775808.1) #f) (test (real? 9223372036854775808/3) #t) (test (integer? 9223372036854775808/3) #f) (test (number? 9223372036854775808/3) #t) (test (rational? 9223372036854775808/3) #t) (test (complex? 9223372036854775808/3) #t) (test (positive? 9223372036854775808/3) #t) (test (negative? 9223372036854775808/3) #f) (test (zero? 9223372036854775808/3) #f) (test (real? 9223372036854775808.1+1.5i) #f) (test (integer? 9223372036854775808.1+1.5i) #f) (test (number? 9223372036854775808.1+1.5i) #t) (test (rational? 9223372036854775808.1+1.5i) #f) (test (complex? 9223372036854775808.1+1.5i) #t) (test (zero? 9223372036854775808.1+1.5i) #f) (num-test (+ 2147483647 1) 2147483648) (num-test (+ 2147483648 -1) 2147483647) (num-test (+ 2147483647 2) 2147483649) (num-test (+ 2147483648 -2) 2147483646) (num-test (+ 2147483648 1) 2147483649) (num-test (+ 2147483649 -1) 2147483648) (num-test (+ 9223372036854775807 1) 9223372036854775808) (num-test (+ 9223372036854775808 -1) 9223372036854775807) (num-test (+ 9223372036854775807 2) 9223372036854775809) (num-test (+ 9223372036854775808 -2) 9223372036854775806) (num-test (+ 9223372036854775808 1) 9223372036854775809) (num-test (+ 9223372036854775809 -1) 9223372036854775808) (test (rational? 1234567891234567890/1234567) #t) (test (real? 1234567891234567890/1234567) #t) (test (complex? 1234567891234567890/1234567) #t) (test (number? 1234567891234567890/1234567) #t) (test (integer? 1234567891234567890/1234567) #f) (num-test (numerator 1234567891234567890/1234567) 1234567891234567890) (num-test (denominator 1234567891234567890/1234567) 1234567) (num-test (numerator 9223372036854775808/9223372036854775807) 9223372036854775808) (num-test (denominator 9223372036854775808/9223372036854775807) 9223372036854775807) (num-test (+ 9223372036854775808/9223372036854775808) 1) (test (integer? 9223372036854775808/9223372036854775808) #t) (test (even? 9223372036854775808) #t) (test (odd? 9223372036854775808) #f) (test (even? 1234567891234567891) #f) (test (odd? 1234567891234567891) #t) (test (even? -9223372036854775808) #t) (test (odd? -9223372036854775808) #f) (test (even? -1234567891234567891) #f) (test (odd? -1231234567891234567891) #t) (test (even? 1239223372036854775808) #t) (test (odd? 1239223372036854775808) #f) (test (even? 1231234567891234567891) #f) (test (odd? 1231234567891234567891) #t) (test (even? -1239223372036854775808) #t) (test (odd? -1239223372036854775808) #f) (test (even? -1231234567891234567891) #f) (test (odd? -1231234567891234567891) #t) (test (even? 2147483647) #f) (test (even? 2147483648) #t) (test (even? 2147483649) #f) (test (odd? 2147483647) #t) (test (odd? 2147483648) #f) (test (odd? 2147483649) #t) (test (even? -2147483647) #f) (test (even? -2147483648) #t) (test (even? -2147483649) #f) (test (odd? -2147483647) #t) (test (odd? -2147483648) #f) (test (odd? -2147483649) #t) (test (even? 9223372036854775808/9223372036854775807) 'error) (num-test (numerator (/ 2 -1)) -2) (num-test (denominator (/ 2 -1)) 1) (num-test (numerator (/ 9223372036854775808 -9223372036854775807)) -9223372036854775808) (num-test (denominator (/ 9223372036854775808 -9223372036854775807)) 9223372036854775807) (num-test (+ 9223372036854775808 3/4) 36893488147419103235/4) (num-test (+ 3/4 9223372036854775808) 36893488147419103235/4) (num-test (+ 9223372036854775808/4 3) 2305843009213693955) (num-test (+ 3 9223372036854775808/4) 2305843009213693955) (num-test (+ 9223372036854775807/4 3) 9223372036854775819/4) (num-test (+ 3 9223372036854775807/4) 9223372036854775819/4) (num-test (+ 9223372036854775807/4 3/4) 4611686018427387905/2) (num-test (+ 3/4 9223372036854775807/4) 4611686018427387905/2) (num-test (+ 9223372036854775807/4 3/4 4611686018427387905/2) 4611686018427387905) (num-test (+ 9223372036854775807/4 4611686018427387905/3) 46116860184273879041/12) (num-test (+ 1/1231234567891234567891 1/4) 1231234567891234567895/4924938271564938271564) (num-test (+ 1/65537 1/65538) 131075/4295163906) (num-test (+ 1/65537 1/65536) 131073/4295032832) (num-test (+ 1/65537 -1/65536) -1/4295032832) (num-test (+ 1/65537 -1/65538) 1/4295163906) (num-test (+ 1/2147483648 1/2147483647) 4294967295/4611686016279904256) (num-test (+ 2147483648) 2147483648) (num-test (lcm 557057 23068673 167772161) 2155967190204955525121) (num-test (lcm 132120577 33292289) 4398596432330753) (num-test (lcm 132120577 33292289 260046847) 1143841133453061178785791) (num-test (lcm 2353913150770005286438421033702874906038383291674012942337 9641628265553941653251772554046975615133217962696757011808257) 22695555569123220026272727097682721551725929819788097280747860983024240452040931523149698041303750665450606153441476609) (num-test (gcd 2155967190204955525121 12850565775361 93458656690177) 557057) (num-test (gcd 2155967190204955525121 -12850565775361 93458656690177) 557057) (num-test (gcd 2155967190204955525121 0) 2155967190204955525121) (num-test (+ 132120577/12 33292289/6 260046847/4) 244711424/3) (num-test (* 132120577/12 33292289/6 260046847/4) 1143841133453061178785791/288) (num-test (/ 132120577/12 33292289/6 260046847/4) 264241154/8657554783862783) (num-test (+ 1000000000 1000000000 1000000000) 3000000000) (num-test (+ -1000000000 -1000000000 -1000000000) -3000000000) (num-test (* 1000000000 1000000000 1000000000) 1000000000000000000000000000) (num-test (/ 1 1000000000 1000000000 1000000000) 1/1000000000000000000000000000) (if with-generic-modulo (begin (num-test (lcm 2/132120577 3/33292289 4/260046847) 12) (num-test (lcm 132120577/12 33292289/6 260046847/4) 1143841133453061178785791/2) )) (if with-bigfloats (begin (num-test (+ 9223372036854775808.0 3.4) 9.2233720368547758114E18) (num-test (+ 9223372036854775808.0+1.5i 3.4) 9.2233720368547758114E18+1.5i) (num-test (+ 1.5 9223372036854775808.0) 9.2233720368547758095E18) (num-test (+ 3/2 9223372036854775808.0) 9.2233720368547758095E18) (num-test (+ 1 1/2 9223372036854775808.0) 9.2233720368547758095E18) (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 0+9223372036854775808.0i 0-i) 1.5+9.223372036854775807E18i) (num-test (real-part 9223372036854775808.0+1.5i) 9.223372036854775808E18) (num-test (imag-part 9223372036854775808.0+1.5i) 1.5) (num-test (real-part 1.5+9223372036854775808.0i) 1.5) (num-test (imag-part 1.5+9223372036854775808.0i) 9.223372036854775808E18) (num-test (real-part 9223372036854775808.0) 9223372036854775808.0) (num-test (imag-part 9223372036854775808.0) 0) (num-test (real-part 0+9223372036854775808.0i) 0.0) (num-test (imag-part 0+9223372036854775808.0i) 9223372036854775808.0) (num-test (real-part 0+1e400i) 0.0) (num-test (imag-part 0+1e400i) 1e400) (num-test (abs 9223372036854775808.0) 9223372036854775808.0) (num-test (abs -9223372036854775808.0) 9223372036854775808.0) (test (exact? 9223372036854775808.1) #f) (test (exact? 9223372036854775808) #t) (test (exact? 9223372036854775808/3) #t) (test (exact? 9223372036854775808.1+1.0i) #f) (test (inexact? 9223372036854775808.1) #t) (test (inexact? 9223372036854775808) #f) (test (inexact? 9223372036854775808/3) #f) (test (inexact? 9223372036854775808.1+1.0i) #t) (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) ;; maxima's sqrt(2.0) is not very accurate! use arprec: (num-test (magnitude 14142135623730950488.0168872420969+14142135623730950488.0168872420969i) 1.9999999999999999999999999999999885751772054578776001965575456E19) (num-test (cos 100000000000000000000000000000000) -9.207313839241906875982573440296245746235E-1) (num-test (cos 100000000000000000000000000000000.0) -9.207313839241906875982573440296245746235E-1) ;; these can be checked against arprec -- get tables of the others as well ;; (num-test (sin 31415926535897932384626433832795028841.971693993751058209749445) 6.8290634690588564658126265428876656461078982456442870201741792E-24) ;; this test requires 500 bits of precision (num-test (sin 31415926535897932384626433832795028841) -8.2584214320186030736155068085595298665361290626210864656288000E-1) (num-test (sin 1.0) 0.84147098480789650665250232163029899962256306079837106567275170999191) ; if bignum here ;; (num-test (cos 31415926535897932384626433832795028841.971693993751058209749445) 9.9999999999999999999999999999999999999999999997668194606778265E-1) ;; 500 bits (num-test (cos 1.0) 5.4030230586813971740093660744297660373231042061792222767009714E-1) (let ((old-prec (bignum-precision))) (set! (bignum-precision) 500) (let ((sin-vals (list ;arprec mathtool table[Sin[k/10], {k, 0, 30}] "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"))) (do ((k 2 (+ k 1))) ((= k 30)) (let ((sin-val-2 (number->string (sin (/ k (bignum "10")))))) (if (not (string=? (substring (list-ref sin-vals k) 3 60) (substring sin-val-2 2 59))) (format #t "(sin (/ ~A 10)) mp: ~A does not match~%~A~%" k (substring (list-ref sin-vals k) 3 60) (substring sin-val-2 2 59)))))) (let ((sin-vals (list ;arprec mathtool table[Sin[k/10], {k, 0, 30}] 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)) (mxerr 0.0)) (do ((x 0 (+ x 1))) ((= x 20)) (let ((phase (* 2 pi (expt 10 x)))) (do ((k 0 (+ k 1))) ((= k 30)) (let ((sin-val-2 (sin (+ phase (/ k (bignum "10")))))) (let ((err (magnitude (- sin-val-2 (list-ref sin-vals k))))) (if (> err mxerr) (set! mxerr err))))))) (if (> mxerr 1e-35) (format #t "(sin big-angle) max error: ~A" mxerr))) (let ((cos-vals (list ; arprec mathtool table[Cos[k/20], {k, 0, 30}] "1.00000000000000000000000000000000000000000000000000000000000000000000" "0.99875026039496624656287081115652109495898026202467575301500996478674" "0.99500416527802576609556198780387029483857622541508403595935274468526" "0.98877107793604228673498099865433895791835001710693704356129574806756" "0.98006657784124163112419651674816887739352436080656799405254829012618" "0.96891242171064478414459544949418919980413419028744283114812812428894" "0.95533648912560601964231022756804989824421408263203767451761361222758" "0.93937271284737892003503235730366558297406104641303414382897205809282" "0.92106099400288508279852673205180161402585956931985044561508926713514" "0.90044710235267692166884061148644643975762309272876915613354673932299" "0.87758256189037271611628158260382965199164519710974405299761086831595" "0.85252452205950574280498179761777305104031900079223767166865534849083" "0.82533561490967829724095249895537603887809103918847038136974977367156" "0.79608379854905582891760457067990587351049589381429244823834230313846" "0.76484218728448842625585999019186490926821055037370335607293245825206" "0.73168886887382088631183875300008454384054127605077248250768322022075" "0.69670670934716542092074998164232492610178601370806078363714489414924" "0.65998314588498217039541602946146607363862433893076798146474793887138" "0.62160996827066445648471615140713350872176136659123900757638348453897" "0.58168308946388349416618097376045571713934034193760200851355170750073" "0.54030230586813971740093660744297660373231042061792222767009725538110" "0.49757104789172699029084957281210067725147811164693171708781576506313" "0.45359612142557738777137005178471612212146729566259504745593805541880" "0.40848744088415729815257671880991853998462713510786075458328732035938" "0.36235775447667357763837335562307602033994778557664862648774972093613" "0.31532236239526866544753855243803801372798570798275680751499914045328" "0.26749882862458740699798410929287135927592992167912966191725336742182" "0.21900668709304158142002217301062666089672421266400567061594451723594" "0.16996714290024093861674803520364980292818392102853430898236521149464" "0.12050276936736657053286662724801883979155423770384722087315404654227" "0.07073720166770291008818985143426870908509102756334686942264541719092"))) (do ((k 1 (+ k 1))) ((= k 30)) (let ((cos-val-2 (number->string (cos (/ k (bignum "20")))))) (if (not (string=? (substring (list-ref cos-vals k) 3 60) (substring cos-val-2 2 59))) (format #t "(cos (/ ~A 20)) mp: ~A does not match~%~A~%" k (substring (list-ref cos-vals k) 3 60) (substring cos-val-2 2 59)))))) (let ((exps (list ; table[Exp[k/10], {k, 0, 30}] 1.00000000000000000000000000000000000000000000000000000000000000000000 1.10517091807564762481170782649024666822454719473751871879286328944096 1.22140275816016983392107199463967417030758094152050364127342509859920 1.34985880757600310398374431332800733037829969735936580304991798993961 1.49182469764127031782485295283722228064328277393742528159563315007236 1.64872127070012814684865078781416357165377610071014801157507931164066 1.82211880039050897487536766816286451338223880854643538632054747658881 2.01375270747047652162454938858306527001754239414586731156898930087978 2.22554092849246760457953753139507675705363413504848459611858395555662 2.45960311115694966380012656360247069542177230644008302074854573665746 2.71828182845904523536028747135266249775724709369995957496696762772407 3.00416602394643311205840795358867239328268102601627276212975286052863 3.32011692273654748953076742960164432007363176479282675728202180154077 3.66929666761924422045748991601148625143151888455755146725622649459660 4.05519996684467458722410889522862025216756114168404107165223289450693 4.48168907033806482260205546011927581900574986836966705677265008278593 4.95303242439511480365428635642396425641303112355664964787158190112430 5.47394739172719976079086266300909670070076114490748605875498633804484 6.04964746441294608373102395302772533816116344511729126161486476549696 6.68589444227926941607253072769286145380311864710852264561241990317501 7.38905609893065022723042746057500781318031557055184732408712782252257 8.16616991256765007344972741047863128518315260430523695926385375737882 9.02501349943412092647177716688866402972021659669817926079803719255720 9.97418245481472073995761515690885800147870119368402956369142191697585 11.02317638064160165223793976966780200851716306933940388430829005877357 12.18249396070347343807017595116796618318276779006316131156039834183818 13.46373803500169039775082533258411724479408609657822907153993787261197 14.87973172487283411186899301946839578068879752075547683852481232002013 16.44464677109704987149801601092501556372435769719962288653996273295166 18.17414536944306094267625657412806698753309200930534632364757918918540 20.08553692318766774092852965458171789698790783855415014437893422969884))) (do ((i 0 (+ i 1))) ((= i 30)) (let ((val (exp (/ i (bignum "10"))))) (if (> (magnitude (- val (list-ref exps i))) 1e-36) (format #t "(exp ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref exps i) (magnitude (- val (list-ref exps i)))))))) (let ((logs (list ; table[Log[k/10 + 1.0], {k, 0, 30}] 0.00000000000000000000000000000000000000000000000000000000000000000000e0 0.09531017980432486004395212328076509222060536530864419918523980816300 0.18232155679395462621171802515451463319738933791448698394272645165670 0.26236426446749105203549598688095439720416645613143414038571760969589 0.33647223662121293050459341021699209011148337531334346654674225846340 0.40546510810816438197801311546434913657199042346249419761401432414410 0.47000362924573555365093703114834206470089904881224804044939213700600 0.53062825106217039623154316318876232798710152395697181126390983691471 0.58778666490211900818973114061886376976937976137698118155674077580080 0.64185388617239477599103597720348932963627777267035584250463233544172 0.69314718055994530941723212145817656807550013436025525412068000949339 0.74193734472937731248260652568134122668347379877583766416075658260750 0.78845736036427016946118424473894166029610549966889945330591981765639 0.83290912293510400678876137712583191084127882621166276596530747651542 0.87546873735389993562895014661269120127288947227474223806340646115010 0.91629073187415506518352721176801107145010121990826246779196788198078 0.95551144502743636145272810833913096527966659049168939450639761918928 0.99325177301028339016774425608321290634137018483947537917075509994491 1.02961941718115823992182553167516865818698350967359872066742226795679 1.06471073699242834316528057767754739789341142529397110288834245067520 1.09861228866810969139524523692252570464749055782274945173469433363749 1.13140211149110056191117286985799300284883744185181899572339017150740 1.16315080980568086306816915260651863277639918317250329457007214649939 1.19392246847243455143919736020329079686809592313139365091993414180049 1.22377543162211570564877528464693889606260165831722706538458984640811 1.25276296849536799568812062198500316156158459522160593433871014044418 1.28093384546206431760696326207704033784487989573723643567742078529420 1.30833281965017876035010421634708295629897609853886318761158478022541 1.33500106673234008540826809866166589771177790703061109662531234493511 1.36097655313560074343074122380348010185165701395418359212041194333338 1.38629436111989061883446424291635313615100026872051050824136001898678))) (do ((i 0 (+ i 1))) ((= i 30)) (let ((val (log (+ (/ i (bignum "10")) (bignum "1.0"))))) (if (> (magnitude (- val (list-ref logs i))) 1e-36) (format #t "(log ~A) -> ~A ~A~%[~A]~%" (+ 1.0 (/ i 10)) val (list-ref logs i) (magnitude (- val (list-ref logs i)))))))) (let ((sqrts (list ; table[Sqrt[k/10], {k, 0, 30}] 0.00000000000000000000000000000000000000000000000000000000000000000000e0 0.31622776601683793319988935444327185337195551393252168268575048527925 0.44721359549995793928183473374625524708812367192230514485417944908210 0.54772255750516611345696978280080213395274469499798325422689444973249 0.63245553203367586639977870888654370674391102786504336537150097055851 0.70710678118654752440084436210484903928483593768847403658833986899536 0.77459666924148337703585307995647992216658434105831816531751475322269 0.83666002653407554797817202578518748939281536929867219981119154308041 0.89442719099991587856366946749251049417624734384461028970835889816420 0.94868329805051379959966806332981556011586654179756504805725145583777 1.00000000000000000000000000000000000000000000000000000000000000000000 1.04880884817015154699145351367993759847527185768150398487575576358000 1.09544511501033222691393956560160426790548938999596650845378889946498 1.14017542509913797913604902556675447907600531091641037529746941724956 1.18321595661992320851346565831232340968310024615886806457594393382856 1.22474487139158904909864203735294569598297374032833506421634628362548 1.26491106406735173279955741777308741348782205573008673074300194111703 1.30384048104052974291659431148583688330561875578201309179007936989676 1.34164078649987381784550420123876574126437101576691543456253834724631 1.37840487520902217679559125529341754271981635583990014790642120179806 1.41421356237309504880168872420969807856967187537694807317667973799073 1.44913767461894385737186641571697717231401328747589730886959248071181 1.48323969741913258974227948816014261219598086381950031974652465286876 1.51657508881031011085136508725641431090992842790349245064524200355844 1.54919333848296675407170615991295984433316868211663633063502950644539 1.58113883008418966599944677221635926685977756966260841342875242639629 1.61245154965970993047332264606075422622687926112171467758731847785277 1.64316767251549834037090934840240640185823408499394976268068334919747 1.67332005306815109595634405157037497878563073859734439962238308616083 1.70293863659264011661333218238773227063897151909784216273026969624657 1.73205080756887729352744634150587236694280525381038062805580697945193))) (do ((i 0 (+ i 1))) ((= i 30)) (let ((val (sqrt (/ i (bignum "10"))))) (if (> (magnitude (- val (list-ref sqrts i))) 1e-36) (format #t "(sqrt ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref sqrts i) (magnitude (- val (list-ref sqrts i)))))))) (let ((atans (list ; table[Arctan[k/10], {k, 0, 30}] 0.00000000000000000000000000000000000000000000000000000000000000000000e0 0.09966865249116202737844611987802059024327832250431464801550877681002 0.19739555984988075837004976519479029344758510378785210151768894024103 0.29145679447786709199560462143289119350316759901206541927220608308729 0.38050637711236488630358791681043310449740571365810083757630562232420 0.46364760900080611621425623146121440202853705428612026381093308872019 0.54041950027058415544357836460859991013514825146259238811636023340959 0.61072596438920861654375887649023609381850306612882761584286773000023 0.67474094222355266305652097360981361507400625484071242312092170496930 0.73281510178650659164079207273428025198575567935825608631050693192821 0.78539816339744830961566084581987572104929234984377645524373614807695 0.83298126667443170541769356183636123851585134443710842085342312250327 0.87605805059819342311404752112834133907534524616033200346065614838499 0.91510070055336041656680197245527296654755880944161873770852665151657 0.95054684081207514789478913546381917504767901030880427426177057808809 0.98279372324732906798571061101466601449687745363162855676142508831798 1.01219701145133418325981347523809017175213711715353810435383625801215 1.03907225953609102762125033790727884531233378855364699989530509706554 1.06369782240255966094389111605254547856256296541932752568273985366635 1.08631839775787341806397958192567762897580047046812780208748680606431 1.10714871779409050301706546017853704007004764540143264667653920743371 1.12637711689379770989641767275145325372112241040085015241064879177491 1.14416883366802053001158090974633622082626800572469223488413501483165 1.16066898625340562678011092078453217718605394084134102434206195147540 1.17600520709513510249122216125017085520341449211184870745209441567184 1.19028994968253173292773377482931833760117898602945207291116667382970 1.20362249297667741080683267484687578339840429857832439350850411338551 1.21609067478395630285892632134113779481025954203667431449700610948231 1.22777238637419322215779309222594182541102155201281262388880100298534 1.23873685925201114137796025438808735907407693977120210817129118165791 1.24904577239825442582991707728109012307782940412989671905466923679715))) (do ((i 0 (+ i 1))) ((= i 30)) (let ((val (atan (/ i (bignum "10"))))) (if (> (magnitude (- val (list-ref atans i))) 1e-36) (format #t "(atan ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref atans i) (magnitude (- val (list-ref atans i)))))))) (let ((asins (list ; table[Arcsin[k/30], {k, 0, 30}] 0.00000000000000000000000000000000000000000000000000000000000000000000e0 0.03333950926130208699143488077083860917565937855129663393680393744362 0.06671614841022525954540510327036927409184944434654403274652597117428 0.10016742116155979634552317945269331856867597222962954139102385503640 0.13373158940994152865632332716309743011405498274444165545458875924377 0.16744807921968933055327460604363822091495716231623832046578730373329 0.20135792079033079145512555221762341024003808140222838625725124345560 0.23550423672079979129288448393723556648106234259531297814541683051663 0.26993279583340344442461498978851864365647337427020501782962042633379 0.30469265401539750797200296122752916695456003170677638739297794874647 0.33983690945412193709639251339176406638824469033245807143192396248991 0.37542360798103940368516545708214708494670535320625397496008012654413 0.41151684606748801938473789761733560485570113512702585178394678070009 0.44818813597943128994043756304906477118029918046343080720212217855713 0.48551812229559116327223435902482444763168509494201196125953547218486 0.52359877559829887307710723054658381403286156656251763682915743205130 0.56253624454385561973132565694853319169977493405170278279550382560769 0.60245463338499055124863378781466897272136400811697167837514413874507 0.64350110879328438680280922871732263804151059111531238286560611871351 0.68585296461871075596328071793021108476903703940127104404158318225766 0.72972765622696636345479665981332069539650591404771369070894949146181 0.77539749661075306374035335271498711355578873864116199359771996373272 0.82321197712587582143797706006235798228453830885144107684904792594002 0.87363319315266432351068180914720023973456695459982111043494836254140 0.92729521800161223242851246292242880405707410857224052762186617744039 0.98511078333774565961356415316223367589822363251591140783691296893264 1.04848150498884799670722286578404816608970376214442109090268484725633 1.11976951499863418668667705584539961589516218640330288237568186391443 1.20358830623705947672584877793852613585139977949919656045114461770445 1.31187478478867540346593147633958737932614651512288222488818316043445 1.57079632679489661923132169163975144209858469968755291048747229615390))) (do ((i 0 (+ i 1))) ((= i 30)) (let ((val (asin (/ i (bignum "30"))))) (if (> (magnitude (- val (list-ref asins i))) 1e-36) (format #t "(asin ~A) -> ~A ~A~%[~A]~%" (/ i 30) val (list-ref asins i) (magnitude (- val (list-ref asins i)))))))) (let ((acoss (list ; table[Arccos[k/30], {k, 0, 30}] 1.57079632679489661923132169163975144209858469968755291048747229615390 1.53745681753359453223988681086891283292292532113625627655066835871028 1.50408017838467135968591658836938216800673525534100887774094632497961 1.47062890563333682288579851218705812352990872745792336909644844111750 1.43706473738495509057499836447665401198452971694311125503288353691013 1.40334824757520728867804708559611322118362753737131459002168499242061 1.36943840600456582777619613942212803185854661828532452423022105269829 1.33529209007409682793843720770251587561752235709223993234205546563727 1.30086353096149317480670670185123279844211132541734789265785186982011 1.26610367277949911125931873041222227514402466798077652309449434740743 1.23095941734077468213492917824798737571034000935509483905554833366399 1.19537271881385721554615623455760435715187934648129893552739216960977 1.15927948072740859984658379402241583724288356456052705870352551545381 1.12260819081546532929088412859068667091828551922412210328535011759677 1.08527820449930545595908733261492699446689960474554094922793682396904 1.04719755119659774615421446109316762806572313312503527365831486410260 1.00826008225104099949999603469121825039880976563585012769196847054621 0.96834169340990606798268790382508246937722069157058123211232815740883 0.92729521800161223242851246292242880405707410857224052762186617744039 0.88494336217618586326804097370954035732954766028628186644588911389624 0.84106867056793025577652503182643074670207878563983921977852280469208 0.79539883018414355549096833892476432854279596104639091688975233242118 0.74758434966902079779334463157739345981404639083611183363842437021388 0.69716313364223229572063988249255120236401774508773180005252393361250 0.64350110879328438680280922871732263804151059111531238286560611871351 0.58568554345715095961775753847751776620036106717164150265055932722126 0.52231482180604862252409882585570327600888093754313181958478744889757 0.45102681179626243254464463579435182620342251328425002811179043223947 0.36720802055783714250547291370122530624718492018835635003632767844945 0.25892154200622121576539021530016406277243818456467068559928913571945 0.00000000000000000000000000000000000000000000000000000000000000000000e0))) (do ((i 0 (+ i 1))) ((= i 30)) (let ((val (acos (/ i (bignum "30"))))) (if (> (magnitude (- val (list-ref acoss i))) 1e-36) (format #t "(acos ~A) -> ~A ~A~%[~A]~%" (/ i 30) val (list-ref acoss i) (magnitude (- val (list-ref acoss i)))))))) (let ((tans (list ; table[Tan[k/10], {k, 0, 30}] 0.00000000000000000000000000000000000000000000000000000000000000000000e0 0.10033467208545054505808004578111153681900480457644204002220806579803 0.20271003550867248332135827164753448262687566965163133004781996689038 0.30933624960962323303530367969829466725781590680046134075142272636569 0.42279321873816176198163542716529033394198977271569358984733094139266 0.54630248984379051325517946578028538329755172017979124616409138593290 0.68413680834169231707092541746333574524265408075678204603738401651742 0.84228838046307944812813500221293771718722125080419899879692251366850 1.02963855705036401274636117282036528416821960677230780766895721581894 1.26015821755033913713457548539574847783362583439629440734976898386523 1.55740772465490223050697480745836017308725077238152003838394660569886 1.96475965724865195093092278177937824371908489378986426895526379547792 2.57215162212631893540999423603336395652940930604338927922563726223880 3.60210244796797815123114551507651373970302582865487479569579648938869 5.79788371548288964370772024360369904599369751893967972517934732424182 14.10141994717171938764608365198775644565954357723586186612326758608969 -34.23253273555741705801487543047619090177569941115323597430813746321248 -7.69660213945915841412819296829866091636528991430764756294574142318097 -4.28626167462806352545188895228026668020736003385824824436108662437549 -2.92709751467777270368689918927087330066328793602580283437505670792996 -2.18503986326151899164330610231368254343201774622766316456295586996677 -1.70984654290450774834778079380390375776090098123394621314534682027235 -1.37382305676879516014003676333346987430263329223370049420804295416122 -1.11921364173413217123235669407622790313829418580200248125375565107236 -0.91601428967341051273086324750810579399364554997699617941685909082222 -0.74702229723866027935535268782527455790411695688301127906659308970027 -0.60159661308975872273608189269127978293417758666969145078057164875561 -0.47272762910303750795198918126389516105797171531608327694222778882857 -0.35552983165117587757735260363543503816953711960914396739605909199266 -0.24640539397196625534356707388530576476208894415934539659747894722272 -0.14254654307427780529563541053391349322609228490180464763323897668885))) (do ((i 0 (+ i 1))) ((= i 30)) (let ((val (tan (/ i (bignum "10"))))) (if (> (magnitude (- val (list-ref tans i))) 1e-35) (format #t "(tan ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref tans i) (magnitude (- val (list-ref tans i)))))))) (let ((max-s-error 0.0) (max-s-error-case 0) (max-sh-error 0.0) (max-sh-error-case 0)) (do ((x (bignum "0.0") (+ x 0.1))) ((> x (* 2 pi))) (let ((s (sin x)) (sh (sinh x)) (c (cos x)) (ch (cosh x))) (let ((err (magnitude (- (+ (* s s) (* c c)) 1)))) (if (> err max-s-error) (begin (set! max-s-error err) (set! max-s-error-case x)))) (let ((err (magnitude (+ (- (* sh sh) (* ch ch)) 1)))) (if (> err max-sh-error) (begin (set! max-sh-error err) (set! max-sh-error-case x)))))) (if (> max-s-error 1e-35) (format #t "s^2 + c^2 error: ~A at ~A~%" max-s-error max-s-error-case)) (if (> max-sh-error 1e-33) (format #t "sh^2 + ch^2 error: ~A at ~A~%" max-sh-error max-sh-error-case))) (set! (bignum-precision) old-prec) ))) (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) (letrec ((sum-cot (lambda (n) (let ((sum 0.0)) (do ((k 1 (+ k 1))) ((= k n) sum) (set! sum (+ sum (sin (/ (* k pi) n))))))))) (let ((mxerr 0.0) (mxcase 0)) (do ((i 2 (+ i 1))) ((= i 100)) (let ((val1 (sum-cot i)) (val2 (/ 1.0 (tan (/ pi (* 2 i)))))) (let ((err (magnitude (- val1 val2)))) (if (> err mxerr) (begin (set! mxerr err) (set! mxcase i)))))) (if (> mxerr 1e-35) (format #t "sum-cot max error ~A at ~A~%" mxerr mxcase)))) )) ;;; -------------------------------------------------------------------------------- ;;; string->number and number->string (test (string->number "+#.#") #f) (test (string->number "-#.#") #f) (test (string->number "#.#") #f) (test (string->number "#i") #f) (test (string->number "#e") #f) (test (string->number "#") #f) (let ((number-to-string-top 0)) (let* ((last-good 0) (first-bad (call/cc (lambda (return) (do ((i 1 (+ i 1)) (k 1 (* k 2))) ((= i 200) #f) (if (and (eqv? k (string->number (number->string k))) (eqv? (- k) (string->number (number->string (- k)))) (not (negative? k))) ; might hit sign bit (set! last-good k) (if (not (positive? k)) (return (- (* 2 last-good) 1)) (letrec ((search (lambda (lo hi) (if (= lo hi) hi (let ((mid (inexact->exact (floor (/ (+ hi lo) 2))))) (if (or (>= mid hi) (<= mid lo)) mid (if (and (eqv? mid (string->number (number->string mid))) (eqv? (- mid) (string->number (number->string (- mid))))) (search mid hi) (search lo mid)))))))) (return (search last-good (- (* 2 last-good) 1))))))))))) (set! number-to-string-top first-bad) (if (and (integer? first-bad) (or (not (defined? 'most-positive-fixnum)) (< first-bad most-positive-fixnum))) (begin (display "string->number ints fail around ") (display first-bad) (display " (2^") (display (/ (log first-bad) (log 2.0))) (display ")") (newline)))) (let* ((last-good 0) (first-bad (call/cc (lambda (return) (do ((i 1 (+ i 1)) (k 1.0 (* k 2.0))) ((= i 1200) #f) (if (and (eqv? k (string->number (number->string k))) (eqv? (- k) (string->number (number->string (- k))))) (set! last-good k) (letrec ((search (lambda (lo hi) (if (= (inexact->exact (floor lo)) (inexact->exact (floor hi))) hi (let ((mid (/ (+ hi lo) 2))) (if (or (>= mid hi) (<= mid lo)) mid (if (and (eqv? mid (string->number (number->string mid))) (eqv? (- mid) (string->number (number->string (- mid))))) (search mid hi) (search lo mid)))))))) (return (search last-good (* 2 last-good)))))))))) (if (and (number? first-bad) (< first-bad (+ 1.0 first-bad))) ; else infinite I guess (begin (display "string->number floats fail around ") ; (eqv? (string->number (number->string 1e-10)) 1e-10) (display first-bad) (display " (2^") (display (/ (log first-bad) (log 2.0))) (display ")") (newline)))) (let* ((last-good 0) (first-bad (call/cc (lambda (return) (do ((i 1 (+ i 1)) (k 1.0 (/ k 2.0))) ((= i 100) #f) (if (and (< (abs (- k (string->number (number->string k)))) (/ k 1e14)) ; 1e18 is ok too (< (abs (- (- k) (string->number (number->string (- k))))) (/ k 1e14))) ;; this gets confused (in eqv?) by .999.... -> 1 (set! last-good k) (letrec ((search (lambda (lo hi) (if (= (inexact->exact (floor (/ 1.0 lo))) (inexact->exact (floor (/ 1.0 hi)))) hi (let ((mid (/ (+ hi lo) 2))) (if (or (>= mid hi) (<= mid lo)) mid (if (and (eqv? mid (string->number (number->string mid))) (eqv? (- mid) (string->number (number->string (- mid))))) (search mid hi) (search lo mid)))))))) (return (search (/ last-good 2.0) last-good))))))))) (if (number? first-bad) (begin (display "string->number floats fail around ") (display first-bad) (display " (2^") (display (/ (log first-bad) (log 2.0))) (display ")") (newline)))) (let* ((last-good 0) (first-bad (call/cc (lambda (return) (do ((i 1 (+ i 1)) (k 1/3 (* k 2))) ((= i 100) #f) (if (and (eqv? k (string->number (number->string k))) (eqv? (- k) (string->number (number->string (- k))))) (set! last-good k) (letrec ((search (lambda (lo hi) (if (= (inexact->exact (floor lo)) (inexact->exact (floor hi))) hi (let ((mid (/ (+ hi lo) 2))) (if (or (>= mid hi) (<= mid lo)) mid (if (and (eqv? mid (string->number (number->string mid))) (eqv? (- mid) (string->number (number->string (- mid))))) (search mid hi) (search lo mid)))))))) (return (search last-good (* 2 last-good)))))))))) (if (number? first-bad) (begin (display "string->number ratios fail around ") (display first-bad) (display " (2^") (display (/ (log first-bad) (log 2.0))) (display ")") (newline)))) (if (not (eqv? 0 (string->number (number->string 0)))) (begin (display "(string<->number 0) -> ") (display (number->string 0)) (display " -> ") (display (string->number (number->string 0))) (newline))) (if (not (eqv? 1 (string->number (number->string 1)))) (begin (display "(string<->number 1) -> ") (display (number->string 1)) (display " -> ") (display (string->number (number->string 1))) (newline))) (if (not (eqv? 2 (string->number (number->string 2)))) (begin (display "(string<->number 2) -> ") (display (number->string 2)) (display " -> ") (display (string->number (number->string 2))) (newline))) (if (not (eqv? 3 (string->number (number->string 3)))) (begin (display "(string<->number 3) -> ") (display (number->string 3)) (display " -> ") (display (string->number (number->string 3))) (newline))) (if (not (eqv? 10 (string->number (number->string 10)))) (begin (display "(string<->number 10) -> ") (display (number->string 10)) (display " -> ") (display (string->number (number->string 10))) (newline))) (if (not (eqv? 1234 (string->number (number->string 1234)))) (begin (display "(string<->number 1234) -> ") (display (number->string 1234)) (display " -> ") (display (string->number (number->string 1234))) (newline))) (if (not (eqv? 1234000000 (string->number (number->string 1234000000)))) (begin (display "(string<->number 1234000000) -> ") (display (number->string 1234000000)) (display " -> ") (display (string->number (number->string 1234000000))) (newline))) (if (not (eqv? 500029 (string->number (number->string 500029)))) (begin (display "(string<->number 500029) -> ") (display (number->string 500029)) (display " -> ") (display (string->number (number->string 500029))) (newline))) (if (not (eqv? 362880 (string->number (number->string 362880)))) (begin (display "(string<->number 362880) -> ") (display (number->string 362880)) (display " -> ") (display (string->number (number->string 362880))) (newline))) (if (not (eqv? 0/1 (string->number (number->string 0/1)))) (begin (display "(string<->number 0/1) -> ") (display (number->string 0/1)) (display " -> ") (display (string->number (number->string 0/1))) (newline))) (if (not (eqv? 0/2 (string->number (number->string 0/2)))) (begin (display "(string<->number 0/2) -> ") (display (number->string 0/2)) (display " -> ") (display (string->number (number->string 0/2))) (newline))) (if (not (eqv? 0/3 (string->number (number->string 0/3)))) (begin (display "(string<->number 0/3) -> ") (display (number->string 0/3)) (display " -> ") (display (string->number (number->string 0/3))) (newline))) (if (not (eqv? 0/10 (string->number (number->string 0/10)))) (begin (display "(string<->number 0/10) -> ") (display (number->string 0/10)) (display " -> ") (display (string->number (number->string 0/10))) (newline))) (if (not (eqv? 0/1234 (string->number (number->string 0/1234)))) (begin (display "(string<->number 0/1234) -> ") (display (number->string 0/1234)) (display " -> ") (display (string->number (number->string 0/1234))) (newline))) (if (not (eqv? 0/1234000000 (string->number (number->string 0/1234000000)))) (begin (display "(string<->number 0/1234000000) -> ") (display (number->string 0/1234000000)) (display " -> ") (display (string->number (number->string 0/1234000000))) (newline))) (if (not (eqv? 0/500029 (string->number (number->string 0/500029)))) (begin (display "(string<->number 0/500029) -> ") (display (number->string 0/500029)) (display " -> ") (display (string->number (number->string 0/500029))) (newline))) (if (not (eqv? 0/362880 (string->number (number->string 0/362880)))) (begin (display "(string<->number 0/362880) -> ") (display (number->string 0/362880)) (display " -> ") (display (string->number (number->string 0/362880))) (newline))) (if (not (eqv? 1/1 (string->number (number->string 1/1)))) (begin (display "(string<->number 1/1) -> ") (display (number->string 1/1)) (display " -> ") (display (string->number (number->string 1/1))) (newline))) (if (not (eqv? 1/2 (string->number (number->string 1/2)))) (begin (display "(string<->number 1/2) -> ") (display (number->string 1/2)) (display " -> ") (display (string->number (number->string 1/2))) (newline))) (if (not (eqv? 1/3 (string->number (number->string 1/3)))) (begin (display "(string<->number 1/3) -> ") (display (number->string 1/3)) (display " -> ") (display (string->number (number->string 1/3))) (newline))) (if (not (eqv? 1/10 (string->number (number->string 1/10)))) (begin (display "(string<->number 1/10) -> ") (display (number->string 1/10)) (display " -> ") (display (string->number (number->string 1/10))) (newline))) (if (not (eqv? 1/1234 (string->number (number->string 1/1234)))) (begin (display "(string<->number 1/1234) -> ") (display (number->string 1/1234)) (display " -> ") (display (string->number (number->string 1/1234))) (newline))) (if (not (eqv? 1/1234000000 (string->number (number->string 1/1234000000)))) (begin (display "(string<->number 1/1234000000) -> ") (display (number->string 1/1234000000)) (display " -> ") (display (string->number (number->string 1/1234000000))) (newline))) (if (not (eqv? 1/500029 (string->number (number->string 1/500029)))) (begin (display "(string<->number 1/500029) -> ") (display (number->string 1/500029)) (display " -> ") (display (string->number (number->string 1/500029))) (newline))) (if (not (eqv? 1/362880 (string->number (number->string 1/362880)))) (begin (display "(string<->number 1/362880) -> ") (display (number->string 1/362880)) (display " -> ") (display (string->number (number->string 1/362880))) (newline))) (if (not (eqv? 2/1 (string->number (number->string 2/1)))) (begin (display "(string<->number 2/1) -> ") (display (number->string 2/1)) (display " -> ") (display (string->number (number->string 2/1))) (newline))) (if (not (eqv? 2/2 (string->number (number->string 2/2)))) (begin (display "(string<->number 2/2) -> ") (display (number->string 2/2)) (display " -> ") (display (string->number (number->string 2/2))) (newline))) (if (not (eqv? 2/3 (string->number (number->string 2/3)))) (begin (display "(string<->number 2/3) -> ") (display (number->string 2/3)) (display " -> ") (display (string->number (number->string 2/3))) (newline))) (if (not (eqv? 2/10 (string->number (number->string 2/10)))) (begin (display "(string<->number 2/10) -> ") (display (number->string 2/10)) (display " -> ") (display (string->number (number->string 2/10))) (newline))) (if (not (eqv? 2/1234 (string->number (number->string 2/1234)))) (begin (display "(string<->number 2/1234) -> ") (display (number->string 2/1234)) (display " -> ") (display (string->number (number->string 2/1234))) (newline))) (if (not (eqv? 2/1234000000 (string->number (number->string 2/1234000000)))) (begin (display "(string<->number 2/1234000000) -> ") (display (number->string 2/1234000000)) (display " -> ") (display (string->number (number->string 2/1234000000))) (newline))) (if (not (eqv? 2/500029 (string->number (number->string 2/500029)))) (begin (display "(string<->number 2/500029) -> ") (display (number->string 2/500029)) (display " -> ") (display (string->number (number->string 2/500029))) (newline))) (if (not (eqv? 2/362880 (string->number (number->string 2/362880)))) (begin (display "(string<->number 2/362880) -> ") (display (number->string 2/362880)) (display " -> ") (display (string->number (number->string 2/362880))) (newline))) (if (not (eqv? 3/1 (string->number (number->string 3/1)))) (begin (display "(string<->number 3/1) -> ") (display (number->string 3/1)) (display " -> ") (display (string->number (number->string 3/1))) (newline))) (if (not (eqv? 3/2 (string->number (number->string 3/2)))) (begin (display "(string<->number 3/2) -> ") (display (number->string 3/2)) (display " -> ") (display (string->number (number->string 3/2))) (newline))) (if (not (eqv? 3/3 (string->number (number->string 3/3)))) (begin (display "(string<->number 3/3) -> ") (display (number->string 3/3)) (display " -> ") (display (string->number (number->string 3/3))) (newline))) (if (not (eqv? 3/10 (string->number (number->string 3/10)))) (begin (display "(string<->number 3/10) -> ") (display (number->string 3/10)) (display " -> ") (display (string->number (number->string 3/10))) (newline))) (if (not (eqv? 3/1234 (string->number (number->string 3/1234)))) (begin (display "(string<->number 3/1234) -> ") (display (number->string 3/1234)) (display " -> ") (display (string->number (number->string 3/1234))) (newline))) (if (not (eqv? 3/1234000000 (string->number (number->string 3/1234000000)))) (begin (display "(string<->number 3/1234000000) -> ") (display (number->string 3/1234000000)) (display " -> ") (display (string->number (number->string 3/1234000000))) (newline))) (if (not (eqv? 3/500029 (string->number (number->string 3/500029)))) (begin (display "(string<->number 3/500029) -> ") (display (number->string 3/500029)) (display " -> ") (display (string->number (number->string 3/500029))) (newline))) (if (not (eqv? 3/362880 (string->number (number->string 3/362880)))) (begin (display "(string<->number 3/362880) -> ") (display (number->string 3/362880)) (display " -> ") (display (string->number (number->string 3/362880))) (newline))) (if (not (eqv? 10/1 (string->number (number->string 10/1)))) (begin (display "(string<->number 10/1) -> ") (display (number->string 10/1)) (display " -> ") (display (string->number (number->string 10/1))) (newline))) (if (not (eqv? 10/2 (string->number (number->string 10/2)))) (begin (display "(string<->number 10/2) -> ") (display (number->string 10/2)) (display " -> ") (display (string->number (number->string 10/2))) (newline))) (if (not (eqv? 10/3 (string->number (number->string 10/3)))) (begin (display "(string<->number 10/3) -> ") (display (number->string 10/3)) (display " -> ") (display (string->number (number->string 10/3))) (newline))) (if (not (eqv? 10/10 (string->number (number->string 10/10)))) (begin (display "(string<->number 10/10) -> ") (display (number->string 10/10)) (display " -> ") (display (string->number (number->string 10/10))) (newline))) (if (not (eqv? 10/1234 (string->number (number->string 10/1234)))) (begin (display "(string<->number 10/1234) -> ") (display (number->string 10/1234)) (display " -> ") (display (string->number (number->string 10/1234))) (newline))) (if (not (eqv? 10/1234000000 (string->number (number->string 10/1234000000)))) (begin (display "(string<->number 10/1234000000) -> ") (display (number->string 10/1234000000)) (display " -> ") (display (string->number (number->string 10/1234000000))) (newline))) (if (not (eqv? 10/500029 (string->number (number->string 10/500029)))) (begin (display "(string<->number 10/500029) -> ") (display (number->string 10/500029)) (display " -> ") (display (string->number (number->string 10/500029))) (newline))) (if (not (eqv? 10/362880 (string->number (number->string 10/362880)))) (begin (display "(string<->number 10/362880) -> ") (display (number->string 10/362880)) (display " -> ") (display (string->number (number->string 10/362880))) (newline))) (if (not (eqv? 1234/1 (string->number (number->string 1234/1)))) (begin (display "(string<->number 1234/1) -> ") (display (number->string 1234/1)) (display " -> ") (display (string->number (number->string 1234/1))) (newline))) (if (not (eqv? 1234/2 (string->number (number->string 1234/2)))) (begin (display "(string<->number 1234/2) -> ") (display (number->string 1234/2)) (display " -> ") (display (string->number (number->string 1234/2))) (newline))) (if (not (eqv? 1234/3 (string->number (number->string 1234/3)))) (begin (display "(string<->number 1234/3) -> ") (display (number->string 1234/3)) (display " -> ") (display (string->number (number->string 1234/3))) (newline))) (if (not (eqv? 1234/10 (string->number (number->string 1234/10)))) (begin (display "(string<->number 1234/10) -> ") (display (number->string 1234/10)) (display " -> ") (display (string->number (number->string 1234/10))) (newline))) (if (not (eqv? 1234/1234 (string->number (number->string 1234/1234)))) (begin (display "(string<->number 1234/1234) -> ") (display (number->string 1234/1234)) (display " -> ") (display (string->number (number->string 1234/1234))) (newline))) (if (not (eqv? 1234/1234000000 (string->number (number->string 1234/1234000000)))) (begin (display "(string<->number 1234/1234000000) -> ") (display (number->string 1234/1234000000)) (display " -> ") (display (string->number (number->string 1234/1234000000))) (newline))) (if (not (eqv? 1234/500029 (string->number (number->string 1234/500029)))) (begin (display "(string<->number 1234/500029) -> ") (display (number->string 1234/500029)) (display " -> ") (display (string->number (number->string 1234/500029))) (newline))) (if (not (eqv? 1234/362880 (string->number (number->string 1234/362880)))) (begin (display "(string<->number 1234/362880) -> ") (display (number->string 1234/362880)) (display " -> ") (display (string->number (number->string 1234/362880))) (newline))) (if (not (eqv? 1234000000/1 (string->number (number->string 1234000000/1)))) (begin (display "(string<->number 1234000000/1) -> ") (display (number->string 1234000000/1)) (display " -> ") (display (string->number (number->string 1234000000/1))) (newline))) (if (not (eqv? 1234000000/2 (string->number (number->string 1234000000/2)))) (begin (display "(string<->number 1234000000/2) -> ") (display (number->string 1234000000/2)) (display " -> ") (display (string->number (number->string 1234000000/2))) (newline))) (if (not (eqv? 1234000000/3 (string->number (number->string 1234000000/3)))) (begin (display "(string<->number 1234000000/3) -> ") (display (number->string 1234000000/3)) (display " -> ") (display (string->number (number->string 1234000000/3))) (newline))) (if (not (eqv? 1234000000/10 (string->number (number->string 1234000000/10)))) (begin (display "(string<->number 1234000000/10) -> ") (display (number->string 1234000000/10)) (display " -> ") (display (string->number (number->string 1234000000/10))) (newline))) (if (not (eqv? 1234000000/1234 (string->number (number->string 1234000000/1234)))) (begin (display "(string<->number 1234000000/1234) -> ") (display (number->string 1234000000/1234)) (display " -> ") (display (string->number (number->string 1234000000/1234))) (newline))) (if (not (eqv? 1234000000/1234000000 (string->number (number->string 1234000000/1234000000)))) (begin (display "(string<->number 1234000000/1234000000) -> ") (display (number->string 1234000000/1234000000)) (display " -> ") (display (string->number (number->string 1234000000/1234000000))) (newline))) (if (not (eqv? 1234000000/500029 (string->number (number->string 1234000000/500029)))) (begin (display "(string<->number 1234000000/500029) -> ") (display (number->string 1234000000/500029)) (display " -> ") (display (string->number (number->string 1234000000/500029))) (newline))) (if (not (eqv? 1234000000/362880 (string->number (number->string 1234000000/362880)))) (begin (display "(string<->number 1234000000/362880) -> ") (display (number->string 1234000000/362880)) (display " -> ") (display (string->number (number->string 1234000000/362880))) (newline))) (if (not (eqv? 500029/1 (string->number (number->string 500029/1)))) (begin (display "(string<->number 500029/1) -> ") (display (number->string 500029/1)) (display " -> ") (display (string->number (number->string 500029/1))) (newline))) (if (not (eqv? 500029/2 (string->number (number->string 500029/2)))) (begin (display "(string<->number 500029/2) -> ") (display (number->string 500029/2)) (display " -> ") (display (string->number (number->string 500029/2))) (newline))) (if (not (eqv? 500029/3 (string->number (number->string 500029/3)))) (begin (display "(string<->number 500029/3) -> ") (display (number->string 500029/3)) (display " -> ") (display (string->number (number->string 500029/3))) (newline))) (if (not (eqv? 500029/10 (string->number (number->string 500029/10)))) (begin (display "(string<->number 500029/10) -> ") (display (number->string 500029/10)) (display " -> ") (display (string->number (number->string 500029/10))) (newline))) (if (not (eqv? 500029/1234 (string->number (number->string 500029/1234)))) (begin (display "(string<->number 500029/1234) -> ") (display (number->string 500029/1234)) (display " -> ") (display (string->number (number->string 500029/1234))) (newline))) (if (not (eqv? 500029/1234000000 (string->number (number->string 500029/1234000000)))) (begin (display "(string<->number 500029/1234000000) -> ") (display (number->string 500029/1234000000)) (display " -> ") (display (string->number (number->string 500029/1234000000))) (newline))) (if (not (eqv? 500029/500029 (string->number (number->string 500029/500029)))) (begin (display "(string<->number 500029/500029) -> ") (display (number->string 500029/500029)) (display " -> ") (display (string->number (number->string 500029/500029))) (newline))) (if (not (eqv? 500029/362880 (string->number (number->string 500029/362880)))) (begin (display "(string<->number 500029/362880) -> ") (display (number->string 500029/362880)) (display " -> ") (display (string->number (number->string 500029/362880))) (newline))) (if (not (eqv? 362880/1 (string->number (number->string 362880/1)))) (begin (display "(string<->number 362880/1) -> ") (display (number->string 362880/1)) (display " -> ") (display (string->number (number->string 362880/1))) (newline))) (if (not (eqv? 362880/2 (string->number (number->string 362880/2)))) (begin (display "(string<->number 362880/2) -> ") (display (number->string 362880/2)) (display " -> ") (display (string->number (number->string 362880/2))) (newline))) (if (not (eqv? 362880/3 (string->number (number->string 362880/3)))) (begin (display "(string<->number 362880/3) -> ") (display (number->string 362880/3)) (display " -> ") (display (string->number (number->string 362880/3))) (newline))) (if (not (eqv? 362880/10 (string->number (number->string 362880/10)))) (begin (display "(string<->number 362880/10) -> ") (display (number->string 362880/10)) (display " -> ") (display (string->number (number->string 362880/10))) (newline))) (if (not (eqv? 362880/1234 (string->number (number->string 362880/1234)))) (begin (display "(string<->number 362880/1234) -> ") (display (number->string 362880/1234)) (display " -> ") (display (string->number (number->string 362880/1234))) (newline))) (if (not (eqv? 362880/1234000000 (string->number (number->string 362880/1234000000)))) (begin (display "(string<->number 362880/1234000000) -> ") (display (number->string 362880/1234000000)) (display " -> ") (display (string->number (number->string 362880/1234000000))) (newline))) (if (not (eqv? 362880/500029 (string->number (number->string 362880/500029)))) (begin (display "(string<->number 362880/500029) -> ") (display (number->string 362880/500029)) (display " -> ") (display (string->number (number->string 362880/500029))) (newline))) (if (not (eqv? 362880/362880 (string->number (number->string 362880/362880)))) (begin (display "(string<->number 362880/362880) -> ") (display (number->string 362880/362880)) (display " -> ") (display (string->number (number->string 362880/362880))) (newline))) (let ((fequal? (lambda (a b) (< (magnitude (- a b)) 1e-14)))) (if (not (fequal? 0.000000 (string->number (number->string 0.000000)))) (begin (display "(string<->number 0.000000) -> ") (display (number->string 0.000000)) (display " -> ") (display (string->number (number->string 0.000000))) (newline))) (if (not (fequal? 0.000000 (string->number (number->string 0.000000)))) (begin (display "(string<->number 0.000000) -> ") (display (number->string 0.000000)) (display " -> ") (display (string->number (number->string 0.000000))) (newline))) (if (not (fequal? 1.000000 (string->number (number->string 1.000000)))) (begin (display "(string<->number 1.000000) -> ") (display (number->string 1.000000)) (display " -> ") (display (string->number (number->string 1.000000))) (newline))) (if (not (fequal? 3.141593 (string->number (number->string 3.141593)))) (begin (display "(string<->number 3.141593) -> ") (display (number->string 3.141593)) (display " -> ") (display (string->number (number->string 3.141593))) (newline))) (if (not (fequal? 2.718282 (string->number (number->string 2.718282)))) (begin (display "(string<->number 2.718282) -> ") (display (number->string 2.718282)) (display " -> ") (display (string->number (number->string 2.718282))) (newline))) (if (not (fequal? 1234.000000 (string->number (number->string 1234.000000)))) (begin (display "(string<->number 1234.000000) -> ") (display (number->string 1234.000000)) (display " -> ") (display (string->number (number->string 1234.000000))) (newline))) (if (not (fequal? 1234000000.000000 (string->number (number->string 1234000000.000000)))) (begin (display "(string<->number 1234000000.000000) -> ") (display (number->string 1234000000.000000)) (display " -> ") (display (string->number (number->string 1234000000.000000))) (newline))) (if (not (fequal? 0.000000+0.000000i (string->number (number->string 0.000000+0.000000i)))) (begin (display "(string<->number 0.000000+0.000000i) -> ") (display (number->string 0.000000+0.000000i)) (display " -> ") (display (string->number (number->string 0.000000+0.000000i))) (newline))) (if (not (fequal? 0.000000+0.000000i (string->number (number->string 0.000000+0.000000i)))) (begin (display "(string<->number 0.000000+0.000000i) -> ") (display (number->string 0.000000+0.000000i)) (display " -> ") (display (string->number (number->string 0.000000+0.000000i))) (newline))) (if (not (fequal? 0.000000+1.000000i (string->number (number->string 0.000000+1.000000i)))) (begin (display "(string<->number 0.000000+1.000000i) -> ") (display (number->string 0.000000+1.000000i)) (display " -> ") (display (string->number (number->string 0.000000+1.000000i))) (newline))) (if (not (fequal? 0.000000+3.141593i (string->number (number->string 0.000000+3.141593i)))) (begin (display "(string<->number 0.000000+3.141593i) -> ") (display (number->string 0.000000+3.141593i)) (display " -> ") (display (string->number (number->string 0.000000+3.141593i))) (newline))) (if (not (fequal? 0.000000+2.718282i (string->number (number->string 0.000000+2.718282i)))) (begin (display "(string<->number 0.000000+2.718282i) -> ") (display (number->string 0.000000+2.718282i)) (display " -> ") (display (string->number (number->string 0.000000+2.718282i))) (newline))) (if (not (fequal? 0.000000+1234.000000i (string->number (number->string 0.000000+1234.000000i)))) (begin (display "(string<->number 0.000000+1234.000000i) -> ") (display (number->string 0.000000+1234.000000i)) (display " -> ") (display (string->number (number->string 0.000000+1234.000000i))) (newline))) (if (not (fequal? 0.000000+1234000000.000000i (string->number (number->string 0.000000+1234000000.000000i)))) (begin (display "(string<->number 0.000000+1234000000.000000i) -> ") (display (number->string 0.000000+1234000000.000000i)) (display " -> ") (display (string->number (number->string 0.000000+1234000000.000000i))) (newline))) (if (not (fequal? 0.000000+0.000000i (string->number (number->string 0.000000+0.000000i)))) (begin (display "(string<->number 0.000000+0.000000i) -> ") (display (number->string 0.000000+0.000000i)) (display " -> ") (display (string->number (number->string 0.000000+0.000000i))) (newline))) (if (not (fequal? 0.000000+0.000000i (string->number (number->string 0.000000+0.000000i)))) (begin (display "(string<->number 0.000000+0.000000i) -> ") (display (number->string 0.000000+0.000000i)) (display " -> ") (display (string->number (number->string 0.000000+0.000000i))) (newline))) (if (not (fequal? 0.000000+1.000000i (string->number (number->string 0.000000+1.000000i)))) (begin (display "(string<->number 0.000000+1.000000i) -> ") (display (number->string 0.000000+1.000000i)) (display " -> ") (display (string->number (number->string 0.000000+1.000000i))) (newline))) (if (not (fequal? 0.000000+3.141593i (string->number (number->string 0.000000+3.141593i)))) (begin (display "(string<->number 0.000000+3.141593i) -> ") (display (number->string 0.000000+3.141593i)) (display " -> ") (display (string->number (number->string 0.000000+3.141593i))) (newline))) (if (not (fequal? 0.000000+2.718282i (string->number (number->string 0.000000+2.718282i)))) (begin (display "(string<->number 0.000000+2.718282i) -> ") (display (number->string 0.000000+2.718282i)) (display " -> ") (display (string->number (number->string 0.000000+2.718282i))) (newline))) (if (not (fequal? 0.000000+1234.000000i (string->number (number->string 0.000000+1234.000000i)))) (begin (display "(string<->number 0.000000+1234.000000i) -> ") (display (number->string 0.000000+1234.000000i)) (display " -> ") (display (string->number (number->string 0.000000+1234.000000i))) (newline))) (if (not (fequal? 0.000000+1234000000.000000i (string->number (number->string 0.000000+1234000000.000000i)))) (begin (display "(string<->number 0.000000+1234000000.000000i) -> ") (display (number->string 0.000000+1234000000.000000i)) (display " -> ") (display (string->number (number->string 0.000000+1234000000.000000i))) (newline))) (if (not (fequal? 1.000000+0.000000i (string->number (number->string 1.000000+0.000000i)))) (begin (display "(string<->number 1.000000+0.000000i) -> ") (display (number->string 1.000000+0.000000i)) (display " -> ") (display (string->number (number->string 1.000000+0.000000i))) (newline))) (if (not (fequal? 1.000000+0.000000i (string->number (number->string 1.000000+0.000000i)))) (begin (display "(string<->number 1.000000+0.000000i) -> ") (display (number->string 1.000000+0.000000i)) (display " -> ") (display (string->number (number->string 1.000000+0.000000i))) (newline))) (if (not (fequal? 1.000000+1.000000i (string->number (number->string 1.000000+1.000000i)))) (begin (display "(string<->number 1.000000+1.000000i) -> ") (display (number->string 1.000000+1.000000i)) (display " -> ") (display (string->number (number->string 1.000000+1.000000i))) (newline))) (if (not (fequal? 1.000000+3.141593i (string->number (number->string 1.000000+3.141593i)))) (begin (display "(string<->number 1.000000+3.141593i) -> ") (display (number->string 1.000000+3.141593i)) (display " -> ") (display (string->number (number->string 1.000000+3.141593i))) (newline))) (if (not (fequal? 1.000000+2.718282i (string->number (number->string 1.000000+2.718282i)))) (begin (display "(string<->number 1.000000+2.718282i) -> ") (display (number->string 1.000000+2.718282i)) (display " -> ") (display (string->number (number->string 1.000000+2.718282i))) (newline))) (if (not (fequal? 1.000000+1234.000000i (string->number (number->string 1.000000+1234.000000i)))) (begin (display "(string<->number 1.000000+1234.000000i) -> ") (display (number->string 1.000000+1234.000000i)) (display " -> ") (display (string->number (number->string 1.000000+1234.000000i))) (newline))) (if (not (fequal? 1.000000+1234000000.000000i (string->number (number->string 1.000000+1234000000.000000i)))) (begin (display "(string<->number 1.000000+1234000000.000000i) -> ") (display (number->string 1.000000+1234000000.000000i)) (display " -> ") (display (string->number (number->string 1.000000+1234000000.000000i))) (newline))) (if (not (fequal? 3.141593+0.000000i (string->number (number->string 3.141593+0.000000i)))) (begin (display "(string<->number 3.141593+0.000000i) -> ") (display (number->string 3.141593+0.000000i)) (display " -> ") (display (string->number (number->string 3.141593+0.000000i))) (newline))) (if (not (fequal? 3.141593+0.000000i (string->number (number->string 3.141593+0.000000i)))) (begin (display "(string<->number 3.141593+0.000000i) -> ") (display (number->string 3.141593+0.000000i)) (display " -> ") (display (string->number (number->string 3.141593+0.000000i))) (newline))) (if (not (fequal? 3.141593+1.000000i (string->number (number->string 3.141593+1.000000i)))) (begin (display "(string<->number 3.141593+1.000000i) -> ") (display (number->string 3.141593+1.000000i)) (display " -> ") (display (string->number (number->string 3.141593+1.000000i))) (newline))) (if (not (fequal? 3.141593+3.141593i (string->number (number->string 3.141593+3.141593i)))) (begin (display "(string<->number 3.141593+3.141593i) -> ") (display (number->string 3.141593+3.141593i)) (display " -> ") (display (string->number (number->string 3.141593+3.141593i))) (newline))) (if (not (fequal? 3.141593+2.718282i (string->number (number->string 3.141593+2.718282i)))) (begin (display "(string<->number 3.141593+2.718282i) -> ") (display (number->string 3.141593+2.718282i)) (display " -> ") (display (string->number (number->string 3.141593+2.718282i))) (newline))) (if (not (fequal? 3.141593+1234.000000i (string->number (number->string 3.141593+1234.000000i)))) (begin (display "(string<->number 3.141593+1234.000000i) -> ") (display (number->string 3.141593+1234.000000i)) (display " -> ") (display (string->number (number->string 3.141593+1234.000000i))) (newline))) (if (not (fequal? 3.141593+1234000000.000000i (string->number (number->string 3.141593+1234000000.000000i)))) (begin (display "(string<->number 3.141593+1234000000.000000i) -> ") (display (number->string 3.141593+1234000000.000000i)) (display " -> ") (display (string->number (number->string 3.141593+1234000000.000000i))) (newline))) (if (not (fequal? 2.718282+0.000000i (string->number (number->string 2.718282+0.000000i)))) (begin (display "(string<->number 2.718282+0.000000i) -> ") (display (number->string 2.718282+0.000000i)) (display " -> ") (display (string->number (number->string 2.718282+0.000000i))) (newline))) (if (not (fequal? 2.718282+0.000000i (string->number (number->string 2.718282+0.000000i)))) (begin (display "(string<->number 2.718282+0.000000i) -> ") (display (number->string 2.718282+0.000000i)) (display " -> ") (display (string->number (number->string 2.718282+0.000000i))) (newline))) (if (not (fequal? 2.718282+1.000000i (string->number (number->string 2.718282+1.000000i)))) (begin (display "(string<->number 2.718282+1.000000i) -> ") (display (number->string 2.718282+1.000000i)) (display " -> ") (display (string->number (number->string 2.718282+1.000000i))) (newline))) (if (not (fequal? 2.718282+3.141593i (string->number (number->string 2.718282+3.141593i)))) (begin (display "(string<->number 2.718282+3.141593i) -> ") (display (number->string 2.718282+3.141593i)) (display " -> ") (display (string->number (number->string 2.718282+3.141593i))) (newline))) (if (not (fequal? 2.718282+2.718282i (string->number (number->string 2.718282+2.718282i)))) (begin (display "(string<->number 2.718282+2.718282i) -> ") (display (number->string 2.718282+2.718282i)) (display " -> ") (display (string->number (number->string 2.718282+2.718282i))) (newline))) (if (not (fequal? 2.718282+1234.000000i (string->number (number->string 2.718282+1234.000000i)))) (begin (display "(string<->number 2.718282+1234.000000i) -> ") (display (number->string 2.718282+1234.000000i)) (display " -> ") (display (string->number (number->string 2.718282+1234.000000i))) (newline))) (if (not (fequal? 2.718282+1234000000.000000i (string->number (number->string 2.718282+1234000000.000000i)))) (begin (display "(string<->number 2.718282+1234000000.000000i) -> ") (display (number->string 2.718282+1234000000.000000i)) (display " -> ") (display (string->number (number->string 2.718282+1234000000.000000i))) (newline))) (if (not (fequal? 1234.000000+0.000000i (string->number (number->string 1234.000000+0.000000i)))) (begin (display "(string<->number 1234.000000+0.000000i) -> ") (display (number->string 1234.000000+0.000000i)) (display " -> ") (display (string->number (number->string 1234.000000+0.000000i))) (newline))) (if (not (fequal? 1234.000000+0.000000i (string->number (number->string 1234.000000+0.000000i)))) (begin (display "(string<->number 1234.000000+0.000000i) -> ") (display (number->string 1234.000000+0.000000i)) (display " -> ") (display (string->number (number->string 1234.000000+0.000000i))) (newline))) (if (not (fequal? 1234.000000+1.000000i (string->number (number->string 1234.000000+1.000000i)))) (begin (display "(string<->number 1234.000000+1.000000i) -> ") (display (number->string 1234.000000+1.000000i)) (display " -> ") (display (string->number (number->string 1234.000000+1.000000i))) (newline))) (if (not (fequal? 1234.000000+3.141593i (string->number (number->string 1234.000000+3.141593i)))) (begin (display "(string<->number 1234.000000+3.141593i) -> ") (display (number->string 1234.000000+3.141593i)) (display " -> ") (display (string->number (number->string 1234.000000+3.141593i))) (newline))) (if (not (fequal? 1234.000000+2.718282i (string->number (number->string 1234.000000+2.718282i)))) (begin (display "(string<->number 1234.000000+2.718282i) -> ") (display (number->string 1234.000000+2.718282i)) (display " -> ") (display (string->number (number->string 1234.000000+2.718282i))) (newline))) (if (not (fequal? 1234.000000+1234.000000i (string->number (number->string 1234.000000+1234.000000i)))) (begin (display "(string<->number 1234.000000+1234.000000i) -> ") (display (number->string 1234.000000+1234.000000i)) (display " -> ") (display (string->number (number->string 1234.000000+1234.000000i))) (newline))) (if (not (fequal? 1234.000000+1234000000.000000i (string->number (number->string 1234.000000+1234000000.000000i)))) (begin (display "(string<->number 1234.000000+1234000000.000000i) -> ") (display (number->string 1234.000000+1234000000.000000i)) (display " -> ") (display (string->number (number->string 1234.000000+1234000000.000000i))) (newline))) (if (not (fequal? 1234000000.000000+0.000000i (string->number (number->string 1234000000.000000+0.000000i)))) (begin (display "(string<->number 1234000000.000000+0.000000i) -> ") (display (number->string 1234000000.000000+0.000000i)) (display " -> ") (display (string->number (number->string 1234000000.000000+0.000000i))) (newline))) (if (not (fequal? 1234000000.000000+0.000000i (string->number (number->string 1234000000.000000+0.000000i)))) (begin (display "(string<->number 1234000000.000000+0.000000i) -> ") (display (number->string 1234000000.000000+0.000000i)) (display " -> ") (display (string->number (number->string 1234000000.000000+0.000000i))) (newline))) (if (not (fequal? 1234000000.000000+1.000000i (string->number (number->string 1234000000.000000+1.000000i)))) (begin (display "(string<->number 1234000000.000000+1.000000i) -> ") (display (number->string 1234000000.000000+1.000000i)) (display " -> ") (display (string->number (number->string 1234000000.000000+1.000000i))) (newline))) (if (not (fequal? 1234000000.000000+3.141593i (string->number (number->string 1234000000.000000+3.141593i)))) (begin (display "(string<->number 1234000000.000000+3.141593i) -> ") (display (number->string 1234000000.000000+3.141593i)) (display " -> ") (display (string->number (number->string 1234000000.000000+3.141593i))) (newline))) (if (not (fequal? 1234000000.000000+2.718282i (string->number (number->string 1234000000.000000+2.718282i)))) (begin (display "(string<->number 1234000000.000000+2.718282i) -> ") (display (number->string 1234000000.000000+2.718282i)) (display " -> ") (display (string->number (number->string 1234000000.000000+2.718282i))) (newline))) (if (not (fequal? 1234000000.000000+1234.000000i (string->number (number->string 1234000000.000000+1234.000000i)))) (begin (display "(string<->number 1234000000.000000+1234.000000i) -> ") (display (number->string 1234000000.000000+1234.000000i)) (display " -> ") (display (string->number (number->string 1234000000.000000+1234.000000i))) (newline))) (if (not (fequal? 1234000000.000000+1234000000.000000i (string->number (number->string 1234000000.000000+1234000000.000000i)))) (begin (display "(string<->number 1234000000.000000+1234000000.000000i) -> ") (display (number->string 1234000000.000000+1234000000.000000i)) (display " -> ") (display (string->number (number->string 1234000000.000000+1234000000.000000i))) (newline))) (if (not with-bigfloats) (begin (if (not (fequal? 0.0000001 (string->number (number->string 0.0000001)))) (begin (display "(string<->number 0.0000001) -> ") (display (number->string 0.0000001)) (display " -> ") (display (string->number (number->string 0.0000001))) (newline))) (if (not (fequal? 0.0000001001 (string->number (number->string 0.0000001001)))) (begin (display "(string<->number 0.0000001001) -> ") (display (number->string 0.0000001001)) (display " -> ") (display (string->number (number->string 0.0000001001))) (newline))))) ) (test (number->string 123 8) "173") (test (number->string 123 16) "7b") (test (number->string 123 2) "1111011") (test (number->string -123 8) "-173") (test (number->string -123 16) "-7b") (test (number->string -123 2) "-1111011") (test (number->string 0 8) "0") (test (number->string 0 2) "0") (test (number->string 0 16) "0") (test (number->string 1 8) "1") (test (number->string 1 2) "1") (test (number->string 1 16) "1") (test (number->string -1 8) "-1") (test (number->string -1 2) "-1") (test (number->string -1 16) "-1") (let ((happy #t)) (do ((i 2 (+ i 1))) ((or (not happy) (= i 17))) (if (not (eqv? 0 (string->number (number->string 0 i) i))) (begin (set! happy #f) (display "(string<->number 0 ") (display i) (display " -> ") (display (number->string 0 i)) (display " -> ") (display (string->number (number->string 0 i) i)) (newline))) (if (not (eqv? 1234 (string->number (number->string 1234 i) i))) (begin (set! happy #f) (display "(string<->number 1234 ") (display i) (display " -> ") (display (number->string 1234 i)) (display " -> ") (display (string->number (number->string 1234 i) i)) (newline))) (if (not (eqv? -1234 (string->number (number->string -1234 i) i))) (begin (set! happy #f) (display "(string<->number -1234 ") (display i) (display " -> ") (display (number->string -1234 i)) (display " -> ") (display (string->number (number->string -1234 i) i)) (newline))))) (for-each (lambda (radix) (let* ((last-good 0) (first-bad (call/cc (lambda (return) (do ((i 1 (+ i 1)) (k 1 (* k 2))) ((= i 200) #f) (if (and (eqv? k (string->number (number->string k radix) radix)) (eqv? (- k) (string->number (number->string (- k) radix) radix)) (not (negative? k))) ; might hit sign bit (set! last-good k) (if (negative? k) (return (- (* 2 last-good) 1)) (letrec ((search (lambda (lo hi) (if (= lo hi) hi (let ((mid (inexact->exact (floor (/ (+ hi lo) 2))))) (if (and (eqv? mid (string->number (number->string mid radix) radix)) (eqv? (- mid) (string->number (number->string (- mid) radix) radix))) (search mid hi) (search lo mid))))))) (return (search last-good (- (* 2 last-good) 1))))))))))) (if (or (and (number? number-to-string-top) ; might have bignums (number? first-bad) (not (= first-bad number-to-string-top))) (and (not (number? number-to-string-top)) (number? first-bad))) (if (integer? first-bad) (begin (display "string->number ints (radix ") (display radix) (display ") fail around ") (display first-bad) (display " (2^") (display (/ (log first-bad) (log 2.0))) (display ")") (newline)) (begin (display "(string->number ints (radix ") (display radix) (display ") are good out to at least 2^200)") (newline)))))) (list 2 8 16 7 12))) ;; (do ((i 0 (+ i 1)) (n 1 (* n 2))) ((= i 63)) (display n) (display " ") (display (number->string n 16)) (newline)) (test (number->string 3/4 2) "11/100") (test (number->string 3/4 8) "3/4") (test (number->string 3/4 16) "3/4") (test (number->string -3/4 2) "-11/100") (test (number->string -3/4 8) "-3/4") (test (number->string -3/4 16) "-3/4") (test (number->string 23/34 2) "10111/100010") (test (number->string 23/34 8) "27/42") (test (number->string 23/34 16) "17/22") (test (number->string -23/34 2) "-10111/100010") (test (number->string -23/34 8) "-27/42") (test (number->string -23/34 16) "-17/22") (num-test (string->number "11/100" 2) 3/4) (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 "1234567890123456789012345678901234567890.123456789e-30") 1234567890.1235) (num-test (string->number "123456789012345678901234567890123456789012345678901234567890.123456789e-50") 1234567890.1235) (num-test (- 1234567890123456789012345678901234567890123456789012345678901234567890.123456789e-60 12345678901234567890123456789012345678901234567890.123456789e-40) 0.0) (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) (display "(string<->number 3/4 ") (display i) (display ") -> ") (display (number->string 3/4 i)) (display " -> ") (display (string->number (number->string 3/4 i) i)) (newline))) (if (not (eqv? 1234/11 (string->number (number->string 1234/11 i) i))) (begin (set! happy #f) (display "(string<->number 1234/11 ") (display i) (display ") -> ") (display (number->string 1234/11 i)) (display " -> ") (display (string->number (number->string 1234/11 i) i)) (newline))) (if (not (eqv? -1234/11 (string->number (number->string -1234/11 i) i))) (begin (set! happy #f) (display "(string<->number -1234/11 ") (display i) (display ") -> ") (display (number->string -1234/11 i)) (display " -> ") (display (string->number (number->string -1234/11 i) i)) (newline))))) (test (< (abs (- (string->number "3.1415926535897932384626433832795029") 3.1415926535897932384626433832795029)) 1e-7) #t) (let ((val (catch #t (lambda () (string->number "111.01" 2)) (lambda args 'error)))) (if (number? val) (begin (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) (test (number->string 0.75 2) "0.11") (test (number->string 0.125 8) "0.1") (test (number->string 12.5 8) "14.4") (test (number->string 12.5 16) "c.8") (test (number->string 12.5 2) "1100.1") (test (number->string -12.5 8) "-14.4") (test (number->string -12.5 16) "-c.8") (test (number->string -12.5 2) "-1100.1") (test (number->string 12.0+0.75i 2) "1100.0+0.11i") (test (number->string -12.5-3.75i 2) "-1100.1-11.11i") (test (number->string 12.0+0.75i 8) "14.0+0.6i") (test (number->string -12.5-3.75i 8) "-14.4-3.6i") (test (number->string 12.0+0.75i 16) "c.0+0.ci") (test (number->string -12.5-3.75i 16) "-c.8-3.ci") (test (string=? (substring (number->string our-pi 16) 0 14) "3.243f6a8885a3") #t) ; (test (string=? (substring (number->string our-pi 2) 0 14) "11.0010010000111111011") #t) (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) (not (= val base))) (begin (display "(string->number ") (display (string-append "1" exponent "1")) (display " ") (display base) (display ") returned ") (display (string->number (string-append "1" exponent "1") base)) (display "?") (newline))))) (do ((base 2 (+ base 1))) ((= base 11)) (let ((val (string->number (string-append "1.1" exponent "1") base))) (if (and (number? val) (not (= val (+ base 1)))) (begin (display "(string->number ") (display (string-append "1.1" exponent "1")) (display " ") (display base) (display ") returned ") (display (string->number (string-append "1.1" exponent "1") base)) (display "?") (newline))))) (do ((base 2 (+ base 1))) ((= base 11)) (let ((val (string->number (string-append "1" exponent "+1") base))) (if (and (number? val) (not (= val base))) (begin (display "(string->number ") (display (string-append "1" exponent "+1")) (display " ") (display base) (display ") returned ") (display (string->number (string-append "1" exponent "+1") base)) (display "?") (newline))))) ; 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)) (begin (display "(string->number ") (display (string-append "1" exponent "-1+1i")) (display " ") (display base) (display ") returned ") (display (string->number (string-append "1" exponent "-1+1i") base)) (display "?") (newline))))))) (list #\e #\d #\f #\s #\l)) (test (< (abs (- (string->number "3.1415926535897932384626433832795029" 10) 3.1415926535897932384626433832795029)) 1e-7) #t) (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) (display "(string->number ") (display (string-ref digits i)) (display (string-ref digits i)) (display ".") (display (string-ref digits i)) (display (string-ref digits i)) (display (string-ref digits i)) (display "... ") (display i) (display ") -> ") (display (string->number str i)) (display " but expected ") (display val) (newline))))) (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) (display "(string->number ") (display str) (display " ") (display i) (display ") -> ") (display (string->number str i)) (display " but expected ") (display val) (newline))))))))) (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) (display "(string<->number 0.75 ") (display i) (display ") -> ") (display (number->string 0.75 i)) (display " -> ") (display (string->number (number->string 0.75 i) i)) (newline))) (if (> (abs (- 1234.75 (string->number (number->string 1234.75 i) i))) 1e-6) (begin (set! happy #f) (display "(string<->number 1234.75 ") (display i) (display ") -> ") (display (number->string 1234.75 i)) (display " -> ") (display (string->number (number->string 1234.75 i) i)) (newline))) (if (> (abs (- -1234.25 (string->number (number->string -1234.25 i) i))) 1e-6) (begin (set! happy #f) (display "(string<->number -1234.25 ") (display i) (display ") -> ") (display (number->string -1234.25 i)) (display " -> ") (display (string->number (number->string -1234.25 i) i)) (newline))) (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) (display "(string<->number 12.5+3.75i ") (display i) (display ") -> ") (display (number->string 12.5+3.75i i)) (display " -> ") (display (string->number (number->string 12.5+3.75i i) i)) (newline)))) (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) (display "number<->string \"") (display str) (display "\" ") (display base) (display ") -> ") (display nval) (display "?") (display " [") (display sn) (display " ") (display nsn) (display "]") (newline)))))))) ))))) (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) (test (string->number-1 "") #f ) (test (string->number-1 ".") #f ) (test (string->number-1 "d") #f ) (test (string->number-1 "D") #f ) (test (string->number-1 "i") #f ) (test (string->number-1 "I") #f ) (test (string->number-1 "3i") #f ) (test (string->number-1 "3I") #f ) (test (string->number-1 "33i") #f ) (test (string->number-1 "33I") #f ) (test (string->number-1 "3.3i") #f ) (test (string->number-1 "3.3I") #f ) (test (string->number-1 "-") #f ) (test (string->number-1 "+") #f ) (test (string->number-1 "#i1-1ei") #f) (test (string->number-1 "#i-2e+i") #f) (test (string->number-1 "#i1+i1i") #f) (test (string->number-1 "#i1+1") #f) (test (string->number-1 "#i2i.") #f) (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) ) (test (let* ((str "1+0i") (x (string->number str))) (and (number? x) (string=? str "1+0i"))) #t) (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) (test (= 0.3 3e-1 3d-1 0.3e0 3e-1) #t) (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)))))) (test (exact? #i1) #f) (test (exact? #e1.0) #t) (test (exact? #i1.0) #f) (test (exact? #e1) #t) (test (exact? #i#b1) #f) (test (exact? #e#b1) #t) (for-each (lambda (n) (let ((nb (catch #t (lambda () (number? n)) (lambda args 'error)))) (if (not nb) (begin (display "(number? ") (display n) (display ") returned #f?") (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.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 )) (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.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) (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 100.0 -100.0 100.0 100.0 -100.0 100.0 100.0 -100.0 100.0 100.0 -100.0 100.0 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 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... ) (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" )) (test (number? ''1) #f) (test (symbol? ''1) #f) (test (string->number "''1") #f) (test (let ((val (catch #t (lambda () (= 1 01 +1 1. 001 +01 1/1 1.0 1e0 01. +1. 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 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.)) (lambda args 'error)))) val) #t) (for-each (lambda (lst) (for-each (lambda (str) (let ((val (catch #t (lambda () (string->number str)) (lambda args 'error)))) (if (or (not (number? val)) (not (= val 1))) (begin (display "(string->number \"") (display str) (display "\") = ") (display val) (display "?") (newline))))) lst)) (list (list "1") (list "01" "+1" "1.") (list "001" "+01" "#e1" "#i1" "1/1" "#b1" "#x1" "#d1" "#o1" "1.0" "1e0" "1d0" "1l0" "1s0" "1f0" "9/9" "01." "+1." "1E0" "1D0" "1L0" "1S0" "1F0") (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" ".1d1" ".1l1" ".1s1" ".1f1" "1.00" "1e00" "1d00" "1l00" "1s00" "1f00" "01.0" "+1.0" "1e+0" "1d+0" "1l+0" "1s+0" "1f+0" "1e-0" "1d-0" "1l-0" "1s-0" "1f-0" "01e0" "+1e0" "1.e0" "01d0" "+1d0" "1.d0" "01l0" "+1l0" "1.l0" "01s0" "+1s0" "1.s0" "01f0" "+1f0" "1.f0" "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" ".1d01" ".1l01" ".1s01" ".1f01" "91/91" ".1e+1" ".1d+1" ".1l+1" ".1s+1" ".1f+1" "10e-1" "10d-1" "10l-1" "10s-1" "10f-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" "0.1d1" "+.1d1" ".10d1" "#e#d1" "#i#d1" "#e#o1" "#i#o1" "0.1l1" "+.1l1" ".10l1" "0.1s1" "+.1s1" ".10s1" "0.1f1" "+.1f1" ".10f1" "10/10" "1.000" "1e000" "1d000" "1l000" "1s000" "1f000" "01.00" "+1.00" "1e+00" "1d+00" "1l+00" "1s+00" "1f+00" "1e-00" "1d-00" "1l-00" "1s-00" "1f-00" "01e00" "+1e00" "1.e00" "01d00" "+1d00" "1.d00" "01l00" "+1l00" "1.l00" "01s00" "+1s00" "1.s00" "01f00" "+1f00" "1.f00" "90/90" "001.0" "+01.0" "#e1.0" "#i1.0" "01e+0" "+1e+0" "1.e+0" "01d+0" "+1d+0" "1.d+0" "01l+0" "+1l+0" "1.l+0" "01s+0" "+1s+0" "1.s+0" "01f+0" "+1f+0" "1.f+0" "01e-0" "+1e-0" "1.e-0" "01d-0" "+1d-0" "1.d-0" "01l-0" "+1l-0" "1.l-0" "01s-0" "+1s-0" "1.s-0" "01f-0" "+1f-0" "1.f-0" "001e0" "+01e0" "#e1e0" "#i1e0" "1.0e0" "01.e0" "+1.e0" "001d0" "+01d0" "#e1d0" "#i1d0" "1.0d0" "01.d0" "+1.d0" "001l0" "+01l0" "#e1l0" "#i1l0" "1.0l0" "01.l0" "+1.l0" "001s0" "+01s0" "#e1s0" "#i1s0" "1.0s0" "01.s0" "+1.s0" "001f0" "+01f0" "#e1f0" "#i1f0" "1.0f0" "01.f0" "+1.f0" "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" "#d1d0") ;; 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" ".1d001" ".1l001" ".1s001" ".1f001" ".1e+01" ".1d+01" ".1l+01" ".1s+01" ".1f+01" "10e-01" "10d-01" "10l-01" "10s-01" "10f-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" "0.1d01" "+.1d01" ".10d01" "#e#d01" "#i#d01" "#e#o01" "#i#o01" "0.1l01" "+.1l01" ".10l01" "0.1s01" "+.1s01" ".10s01" "0.1f01" "+.1f01" ".10f01" "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" "0.1d+1" "+.1d+1" ".10d+1" "#e#d+1" "#i#d+1" "#e#o+1" "#i#o+1" "0.1l+1" "+.1l+1" ".10l+1" "0.1s+1" "+.1s+1" ".10s+1" "0.1f+1" "+.1f+1" ".10f+1" "010e-1" "+10e-1" "10.e-1" "010d-1" "+10d-1" "10.d-1" "010l-1" "+10l-1" "10.l-1" "010s-1" "+10s-1" "10.s-1" "010f-1" "+10f-1" "10.f-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" "00.1d1" "+0.1d1" "#e.1d1" "#i.1d1" "0.10d1" "+.10d1" ".100d1" "00.1l1" "+0.1l1" "#e.1l1" "#i.1l1" "0.10l1" "+.10l1" ".100l1" "00.1s1" "+0.1s1" "#e.1s1" "#i.1s1" "0.10s1" "+.10s1" ".100s1" "00.1f1" "+0.1f1" "#e.1f1" "#i.1f1" "0.10f1" "+.10f1" ".100f1" "10/010" "010/10" "+10/10" "1.0000" "1e0000" "1d0000" "1l0000" "1s0000" "1f0000" "01.000" "+1.000" "1e+000" "1d+000" "1l+000" "1s+000" "1f+000" "1e-000" "1d-000" "1l-000" "1s-000" "1f-000" "01e000" "+1e000" "1.e000" "01d000" "+1d000" "1.d000" "01l000" "+1l000" "1.l000" "01s000" "+1s000" "1.s000" "01f000" "+1f000" "1.f000" "001.00" "+01.00" "#e1.00" "#i1.00" "01e+00" "+1e+00" "1.e+00" "01d+00" "+1d+00" "1.d+00" "01l+00" "+1l+00" "1.l+00" "01s+00" "+1s+00" "1.s+00" "01f+00" "+1f+00" "1.f+00" "01e-00" "+1e-00" "1.e-00" "01d-00" "+1d-00" "1.d-00" "01l-00" "+1l-00" "1.l-00" "01s-00" "+1s-00" "1.s-00" "01f-00" "+1f-00" "1.f-00" "001e00" "+01e00" "#e1e00" "#i1e00" "1.0e00" "01.e00" "+1.e00" "001d00" "+01d00" "#e1d00" "#i1d00" "1.0d00" "01.d00" "+1.d00" "001l00" "+01l00" "#e1l00" "#i1l00" "1.0l00" "01.l00" "+1.l00" "001s00" "+01s00" "#e1s00" "#i1s00" "1.0s00" "01.s00" "+1.s00" "001f00" "+01f00" "#e1f00" "#i1f00" "1.0f00" "01.f00" "+1.f00" "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" "001d+0" "+01d+0" "#e1d+0" "#i1d+0" "1.0d+0" "01.d+0" "+1.d+0" "001l+0" "+01l+0" "#e1l+0" "#i1l+0" "1.0l+0" "01.l+0" "+1.l+0" "001s+0" "+01s+0" "#e1s+0" "#i1s+0" "1.0s+0" "01.s+0" "+1.s+0" "001f+0" "+01f+0" "#e1f+0" "#i1f+0" "1.0f+0" "01.f+0" "+1.f+0" "001e-0" "+01e-0" "#e1e-0" "#i1e-0" "1.0e-0" "01.e-0" "+1.e-0" "001d-0" "+01d-0" "#e1d-0" "#i1d-0" "1.0d-0" "01.d-0" "+1.d-0" "001l-0" "+01l-0" "#e1l-0" "#i1l-0" "1.0l-0" "01.l-0" "+1.l-0" "001s-0" "+01s-0" "#e1s-0" "#i1s-0" "1.0s-0" "01.s-0" "+1.s-0" "001f-0" "+01f-0" "#e1f-0" "#i1f-0" "1.0f-0" "01.f-0" "+1.f-0" "0001e0" "+001e0" "#e01e0" "#i01e0" "#e+1e0" "#i+1e0" "1.00e0" "01.0e0" "+1.0e0" "001.e0" "+01.e0" "#e1.e0" "#i1.e0" "0001d0" "+001d0" "#e01d0" "#i01d0" "#e+1d0" "#i+1d0" "1.00d0" "01.0d0" "+1.0d0" "001.d0" "+01.d0" "#e1.d0" "#i1.d0" "0001l0" "+001l0" "#e01l0" "#i01l0" "#e+1l0" "#i+1l0" "1.00l0" "01.0l0" "+1.0l0" "001.l0" "+01.l0" "#e1.l0" "#i1.l0" "0001s0" "+001s0" "#e01s0" "#i01s0" "#e+1s0" "#i+1s0" "1.00s0" "01.0s0" "+1.0s0" "001.s0" "+01.s0" "#e1.s0" "#i1.s0" "0001f0" "+001f0" "#e01f0" "#i01f0" "#e+1f0" "#i+1f0" "1.00f0" "01.0f0" "+1.0f0" "001.f0" "+01.f0" "#e1.f0" "#i1.f0" "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+0d1i" "1-0d1i" "1+0l1i" "1-0l1i" "1+0s1i" "1-0s1i" "1+0f1i" "1-0f1i" "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" "1d0+0i" "1l0+0i" "1s0+0i" "1f0+0i" "01.+0i" "+1.+0i" "001-0i" "+01-0i" "#e1-0i" "#i1-0i" "1/1-0i" "1.0-0i" "1e0-0i" "1d0-0i" "1l0-0i" "1s0-0i" "1f0-0i" "01.-0i" "+1.-0i" "1+0e0i" "1-0e0i" "1+0d0i" "1-0d0i" "1+0l0i" "1-0l0i" "1+0s0i" "1-0s0i" "1+0f0i" "1-0f0i" "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") ;; remove "l" and "s" and others... (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" ".1d0001" ".1f0001" ".1e+001" ".1d+001" ".1f+001" "10e-001" "10d-001" "10f-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" "0.1d001" "+.1d001" ".10d001" "#e#d001" "#i#d001" "#e#o001" "#i#o001" "0.1f001" "+.1f001" ".10f001" "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" "0.1d+01" "+.1d+01" ".10d+01" "#e#d+01" "#i#d+01" "#e#o+01" "#i#o+01" "0.1f+01" "+.1f+01" ".10f+01" "010e-01" "+10e-01" "10.e-01" "010d-01" "+10d-01" "10.d-01" "010f-01" "+10f-01" "1.00000" "1e00000" "1d00000" "1f00000" "01.0000" "+1.0000" "1e+0000" "1d+0000" "1f+0000" "1e-0000" "1d-0000" "1f-0000" "01e0000" "+1e0000" "1.e0000" "01d0000" "+1d0000" "1.d0000" "01f0000" "+1f0000" "1.f0000" "001.000" "+01.000" "#e1.000" "#i1.000" "#d1.000" "01e+000" "+1e+000" "1.e+000" "01d+000" "+1d+000" "1.d+000" "01f+000" "+1f+000" "1.f+000" "01e-000" "+1e-000" "1.e-000" "01d-000" "+1d-000" "1.d-000" "01f-000" "+1f-000" "1.f-000" "001e000" "+01e000" "#e1e000" "#i1e000" "#d1e000" "1.0e000" "+1.e000" "001d000" "+01d000" "#e1d000" "#i1d000" "#d1d000" "1.0d000" "01.d000" "+1.d000" "001f000" "+01f000" "#e1f000" "#i1f000" "#d1f000" "1.0f000" "01.f000" "+1.f000" "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" "001d+00" "+01d+00" "#e1d+00" "#i1d+00" "#d1d+00" "1.0d+00" "01.d+00" "+1.d+00" "001f+00" "+01f+00" "#e1f+00" "#i1f+00" "#d1f+00" "1.0f+00" "01.f+00" "+1.f+00" "001e-00" "+01e-00" "#e1e-00" "#i1e-00" "#d1e-00" "1.0e-00" "01.e-00" "+1.e-00" "001d-00" "+01d-00" "#e1d-00" "#i1d-00" "#d1d-00" "1.0d-00" "01.d-00" "+1.d-00" "001f-00" "+01f-00" "#e1f-00" "#i1f-00" "#d1f-00" "1.0f-00" "0001.f0" "+001.f0" "#e01.f0" "#i01.f0" "#d01.f0" "#e+1.f0" "#i+1.f0" "#d+1.f0" "#xf0/f0" "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" "#xfe/fe" "1+0e11i" "1-0e11i" "1+0/11i" "1-0/11i" "1+0d11i" "1-0d11i" "1+0f11i" "1-0f11i" "1+0e01i" "1-0e01i" "1+0/01i" "1-0/01i" "1+0d01i" "1-0d01i" "1+0f01i" "1-0f01i" "1+0e+1i" "1-0e+1i" "1+0d+1i" "1-0d+1i" "1+0f+1i" "1-0f+1i" "1+0e-1i" "1-0e-1i" "1+0d-1i" "1-0d-1i" "1+0f-1i" "1-0f-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+00d1i" "1-00d1i" "1+.0d1i" "1-.0d1i" "01+0d1i" "+1+0d1i" "1.+0d1i" "01-0d1i" "+1-0d1i" "1.-0d1i" "1+0.d1i" "1-0.d1i" "1+00f1i" "1-00f1i" "1+.0f1i" "1-.0f1i" "01+0f1i" "+1+0f1i" "1.+0f1i" "01-0f1i" "+1-0f1i" "1.-0f1i" "1+0.f1i" "1-0.f1i" "1+0e10i" "1-0e10i" "1+0/10i" "1-0/10i" "1+0d10i" "1-0d10i" "1+0f10i" "1-0f10i" "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" "1d0+00i" "1f0+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" "1d0-00i" "1f0-00i" "01.-00i" "+1.-00i" "1+0e00i" "1-0e00i" "1+0d00i" "1-0d00i" "1+0f00i" "1-0f00i" "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" "1d0+.0i" "1f0+.0i" "01.+.0i" "+1.+.0i" "001-.0i" "+01-.0i" "#e1-.0i" "#i1-.0i" "1/1-.0i" "#d1-.0i" "1.0-.0i" "1e0-.0i" "1d0-.0i" "1f0-.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" ".1d1+0i" ".1f1+0i" "1.00+0i" "1e00+0i" "1d00+0i" "1f00+0i" "01.0+0i" "+1.0+0i" "1e+0+0i" "1d+0+0i" "1f+0+0i" "1e-0+0i" "1d-0+0i" "1f-0+0i" "01e0+0i" "+1e0+0i" "1.e0+0i" "01d0+0i" "+1d0+0i" "1.d0+0i" "01f0+0i" "+1f0+0i" "1.f0+0i" "001.+0i" "+01.+0i" "#e1.+0i" "#i1.+0i" "#d1.+0i" "1+0e+0i" "1-0e+0i" "1+0d+0i" "1-0d+0i" "1+0f+0i" "1-0f+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" ".1d1-0i" ".1f1-0i" "1.00-0i" "1e00-0i" "1d00-0i" "1f00-0i" "01.0-0i" "+1.0-0i" "1e+0-0i" "1d+0-0i" "1f+0-0i" "1e-0-0i" "1d-0-0i" "1f-0-0i" "01e0-0i" "+1e0-0i" "1.e0-0i" "01d0-0i" "+1d0-0i" "1.d0-0i" "01f0-0i" "+1f0-0i" "1.f0-0i" "001.-0i" "+01.-0i" "#e1.-0i" "#i1.-0i" "#d1.-0i" "1+0e-0i" "1-0e-0i" "1+0d-0i" "1-0d-0i" "1+0f-0i" "1-0f-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+00d0i" "1-00d0i" "1+.0d0i" "1-.0d0i" "01+0d0i" "+1+0d0i" "1.+0d0i" "01-0d0i" "+1-0d0i" "1.-0d0i" "1+0.d0i" "1-0.d0i" "1+00f0i" "1-00f0i" "1+.0f0i" "1-.0f0i" "01+0f0i" "+1+0f0i" "1.+0f0i" "01-0f0i" "+1-0f0i" "1.-0f0i" "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" "1d0+0.i" "1f0+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" "1d0-0.i" "1f0-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" "#xfb/fb" "#x1d/1d" "#xd/00d" "#x0d/0d" "#x+d/0d" "#xed/ed" ) ;;; selected ones... (list "#i+11/011" "#xf11/f11" "+101/0101" "#o#e11/11" "#d+11/011" "#e1/0001" "010d-001" "#e#b+001" ".10f+001" "+10f-001" ".10d0001" "#d10d-1" "#e10e-1" "#e.1d0001" "#d.01d002" "#i0.1f001" "#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" "#d+.1d+01" "#d.10f+01" "#i0.1f+01" "+010.e-01" "#e10.e-01" "#e00.1e01" "#e#d.1e01" "#i#d1e0+0e0i" "#e#d10e-1+0e-2i" "#e#d1e0+0e-2i" "#d.1d+01+.0d01i" "#d0.001d+03+0.0d-10i" "#i#d+0.001d+03+0.0d-10i" "#i#d+1/1-0/1i" ) )) (for-each (lambda (str) (let ((val (catch #t (lambda () (string->number str)) (lambda args 'error)))) (if (or (not (number? val)) (= val 1)) (begin (display "(string->number \"") (display str) (display "\") = ") (display val) (display "?") (newline))))) (list "#e1+i" "#e1-i" "#e01+i" "#e+1+i" "#e1.+i" "#e01-i" "#e+1-i" "#e1.-i" "#e1+1i" "#e1-1i" "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" )) (for-each (lambda (str) (let ((val (catch #t (lambda () (string->number str)) (lambda args 'error)))) (if (number? val) (begin (display "(string->number \"") (display str) (display "\") = ") (display val) (display "?") (newline))))) (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" )) (num-test (string->number "2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427") 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427) ;;; every scheme disagrees about stuff like #b.1 or #b+i etc -- I'll just omit them (for-each (lambda (p) (let ((sym (car p)) (num (cdr p))) (let ((tag (catch #t (lambda () (string->number sym)) (lambda args 'error)))) (if (not (equal? num tag)) (begin (display "(string->number \"") (display sym) (display "\") = ") (display tag) (display " [") (display num) (display "])") (newline)))))) '(("#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) )) (test (equal? #e1.5 3/2) #t) (test (equal? #e1.0 1) #t) (test (equal? #e-.1 -1/10) #t) (test (equal? #e1 1) #t) (test (equal? #e3/2 3/2) #t) (test (< (abs (- #i3/2 1.5)) 1e-12) #t) (test (< (abs (- #i1 1.0)) 1e-12) #t) (test (< (abs (- #i-1/10 -0.1)) 1e-12) #t) (test (< (abs (- #i1.5 1.5)) 1e-12) #t) (num-test (= 0e-1 0.0) #t) ;;; (/ (/ 0))?? ;;; here's code to generate all (im)possible numbers (using just a few digits) of a given length [leaving aside @ and # and so on] ;(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))))) ; ; ;(display (format #f "~S " sym)) ; ; (let ((tag (catch #t (lambda () (string->number sym)) (lambda args (car args))))) ; (if (not with-file) ; (if (and (number? tag) ; (= tag 1)) ; (display (format #f "~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) (for-each (lambda (n name) (if (number? n) (begin (display "(number? ") (display name) (display ") returned #t?") (newline)))) (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))) ; (display (format #f "'~A " (string (string-ref initial-chars i) (string-ref subsequent-chars k))))))) (for-each (lambda (z) (if (not (zero? z)) (begin (display z) (display " is not zero?") (newline))) (if (and (real? z) (positive? z)) (begin (display z) (display " is positive?") (newline))) (if (and (real? z) (negative? z)) (begin (display z) (display " is negative?") (newline)))) '(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)) ;;; these 2 are (mostly) from guile (for-each (lambda (x) (if (string->number x) (begin (display "(string->number ") (display x) (display ") returned ") (display (string->number x)) (newline)))) '("" "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-" "#i#i1" "12@12+0i")) (for-each (lambda (couple) (apply (lambda (x y) (let ((xx (string->number x))) (if (or (eq? xx #f) (and (exact? y) (not (eqv? xx y))) (> (abs (- xx y)) 1e-12)) (begin (display "(string->number ") (display x) (display ") returned ") (display (string->number x)) (display " but expected ") (display y) (newline))))) couple)) `(;; Radix: ("#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) ;; Exactness: ("#e1" 1) ("#e1.2" 12/10) ("#i1.1" 1.1) ("#i1" 1.0) ;; Integers: ("1" ,(+ 1 0)) ("23" ,(+ 9 9 5)) ("-1" ,(- 0 1)) ("-45" ,(- 0 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) ;; Fractions: ("1/1" 1) ("1/2" 1/2) ("-1/2" -1/2) ;("1#/1" 10.0) ;("10/1#" 1.0) ("1#/1#" 1.0) ("#e9/10" 9/10) ("#e10/1#" 1) ;("#i6/8" 0.75) ("#i1/1" 1.0) ;; Decimal numbers: ;; * ("1e2" 100.0) ("1s2" 100.0) ("1f2" 100.0) ("1d2" 100.0) ("1l2" 100.0) ("1e+2" 100.0) ("1e-2" 0.01) ;; * . + #* (".1" .1) (".0123456789" 123456789e-10) ;(".16#" 0.16) (".0123456789e10" 123456789.0) ;(".16#e3" 160.0) ("#d.3" 0.3) ;; * + . * #* ("3." ,(exact->inexact 3)) ("3.e0" ,(exact->inexact 3)) ("3.1" ,(exact->inexact 31/10)) ("3.1e0" 3.1) ;("3.1#" 3.1) ;("3.1#e0" 3.1) ;; * + #+ . #* ;("3#." 30.0) ("3#.e0" 30.0) ("3#.#" 30.0) ("3#.#e0" 30.0) ;; Complex: ;; ("1@0" 1.0) ("1@+0" 1.0) ("1@-0" 1.0) ; whose dumb idea was this? ("2+3i" ,(+ 2 (* 3 0+i))) ("4-5i" ,(- 4 (* 5 0+i))) ("1+i" 1+1i) ("1-i" 1-1i) ;; ("+1i" 0+1i) ("-1i" 0-1i) ("+i" +1i) ("-i" -1i) ; I don't like these ("#e1e1" 10) ("#i1e1+i" 10.0+1.0i) )) ;;; -------------------------------------------------------------------------------- (if with-bitwise-functions (begin (test (logior 0 1) 1) (test (logior #b101 #b10001) 21) (test (logior 1 3 6) 7) (test (logior -6 1) -5) (test (logior -6 3) -5) (test (logior #b1 #b11 #b111 #b1111) #b1111) (test (logior -1 0 -1 -1) -1) (test (logior 3 3 3 3) 3) (test (logior 1) 1) (test (logior -1) -1) (test (logior 12341234 10001111) 12378103) (test (logior 1 2 4 8) 15) (test (logand 0 1) 0) (test (logand #b101 #b10001) 1) (test (logand 1 3 6) 0) (test (logand -1 3 6) 2) (test (logand -6 1) 0) (test (logand -6 3) 2) (test (logand #b1 #b11 #b111 #b1111) #b1) (test (logand -1 0 -1 -1) 0) (test (logand 3 3 3 3) 3) (test (logand 0) 0) (test (logand -1) -1) (test (logand 12341234 10001111) 9964242) (test (logand -1 1) 1) (test (logand -1 -1) -1) (test (logand 1 -1) 1) (test (logand 1 1) 1) (test (logand 16 31) 16) (test (logxor 0 1) 1) (test (logxor #b101 #b10001) 20) (test (logxor 1 3 6) 4) (test (logxor -6 1) -5) (test (logxor -6 3) -7) (test (logxor #b1 #b11 #b111 #b1111) #b1010) (test (logxor 12341234 10001111) 2413861) (test (logxor 1 3 7 15) 10) (test (lognot 0) -1) (test (lognot -1) 0) (test (lognot 1) -2) (test (lognot #b101) -6) (test (lognot -6) #b101) (test (lognot 12341234) -12341235) (test (lognot #b-101) 4) (test (lognot (+ 1 (lognot 1000))) 999) ;; from CL spec (test (let ((str "")) (let ((show (lambda (m x y) (set! str (string-append str (format #f "[m = #o~6,'0O, x = #o~6,'0O, y = #o~6,'0O] " m x y)))))) (let ((m #o007750) (x #o452576) (y #o317407)) (show m x y) (let ((z (logand (logxor x y) m))) (set! x (logxor z x)) (set! y (logxor z y)) (show m x y)))) str) "[m = #o007750, x = #o452576, y = #o317407] [m = #o007750, x = #o457426, y = #o312557] ") (num-test (ash 0 1) 0) (num-test (ash 1 10) 1024) (num-test (ash 1024 -8) 4) (num-test (ash -1 8) -256) (num-test (ash -1 30) -1073741824) (num-test (ash -1 -8) -1) (num-test (ash -1 -12) -1) (num-test (ash -1 0) -1) (num-test (ash 123 0) 123) (num-test (ash #b-1100 -2) -3) (num-test (ash #b-1100 2) -48) (num-test (ash 1234 6) 78976) (num-test (ash 1234 -6) 19) (num-test (ash 12341234 6) 789838976) (num-test (ash 12341234 -16) 188) (num-test (ash 1 -1) 0) (num-test (ash 2 -2) 0) (num-test (ash 2 -1) 1) (num-test (ash 1 -100) 0) (num-test (ash 0 100) 0) (num-test (ash 0 (expt 2 32)) 0) (num-test (ash (ash 1 31) -31) 1) (test (> (ash 1 30) 1) #t) (num-test (ash 1 31) 2147483648) (num-test (ash 1 (- (expt 2 31))) 0) (num-test (ash (expt 2 31) (- (expt 2 31))) 0) (do ((i 0 (+ i 1))) ((= i 15)) (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)) (if with-64-bit-ints (begin (num-test (ash 1 32) 4294967296) (num-test (ash 1 (- (expt 2 32))) 0) (test (> (ash 1 62) 1) #t))) (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) (if with-bignums (begin (num-test (logand (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 281474976710656) (num-test (logior (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 351843720888320) (num-test (logxor (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 70368744177664) (num-test (lognot (+ (expt 2 48) (expt 2 46))) -351843720888321) (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 (ash 1 48) 281474976710656) (num-test (ash 281474976710656 -48) 1) (num-test (ash -100000000000000000000000000000000 -100) -79) (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) )) (if (defined? 'most-positive-fixnum) (begin (test (> 0 most-negative-fixnum) #t) (test (> most-negative-fixnum 0) #f) (test (> most-positive-fixnum 0) #t) (test (> 0 most-positive-fixnum) #f) (test (> most-positive-fixnum most-negative-fixnum) #t) (test (> most-negative-fixnum most-positive-fixnum) #f) (test (< 0 most-negative-fixnum) #f) (test (< most-negative-fixnum 0) #t) (test (< most-positive-fixnum 0) #f) (test (< 0 most-positive-fixnum) #t) (test (< most-positive-fixnum most-negative-fixnum) #f) (test (< most-negative-fixnum most-positive-fixnum) #t) (test (negative? most-negative-fixnum) #t) (test (zero? most-negative-fixnum) #f) (test (zero? most-positive-fixnum) #f) (test (negative? most-positive-fixnum) #f) (test (= (+ most-negative-fixnum 1) (- most-positive-fixnum)) #t) (test (= (abs (+ most-negative-fixnum 1)) most-positive-fixnum) #t) (test (= (+ most-negative-fixnum most-positive-fixnum) -1) #t) (test (= (- most-negative-fixnum (- most-positive-fixnum)) -1) #t) (test (even? most-positive-fixnum) #f) (test (odd? most-positive-fixnum) #t) (test (even? most-negative-fixnum) #t) (test (odd? most-negative-fixnum) #f) (test (integer? most-negative-fixnum) #t) (test (= (* most-positive-fixnum -1) (+ most-negative-fixnum 1)) #t) (test (= (* most-negative-fixnum 1) (- (* -1 most-positive-fixnum) 1)) #t) (if with-bignums (test (= most-positive-fixnum (- (/ most-negative-fixnum -1) 1)) #t)) )) )) ;;; -------------------------------------------------------------------------------- (if with-error-checks (begin (test (eq?) 'error) (test (eq? #t) 'error) (test (eqv?) 'error) (test (eqv? #t) 'error) (test (equal?) 'error) (test (equal? #t) 'error) (test (boolean?) 'error) (test (not) 'error) (test (symbol?) 'error) (test (procedure?) 'error) (test (char?) 'error) ;(test (char? '#\xxx) 'error) ; or possibly #f?? (test (char-upper-case? 1) 'error) (test (char-upper-case?) 'error) (test (char-upper-case? 1) 'error) (test (char-upper-case?) 'error) (test (char-upcase) 'error) (test (char-downcase) 'error) (test (char-numeric?) 'error) (test (char-whitespace?) 'error) (test (char-alphabetic?) 'error) (for-each (lambda (op) (for-each (lambda (arg) (test (op arg) 'error)) (list "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #f #t (lambda (a) (+ a 1))))) (list char-upper-case? char-lower-case? char-upcase char-downcase char-numeric? char-whitespace? char-alphabetic?)) (for-each (lambda (op) (for-each (lambda (arg) (test (op #\a arg) 'error)) (list "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #f #t (lambda (a) (+ a 1))))) (list char=? char? char>? char-ci=? char-ci? char-ci>=?)) (for-each (lambda (op) (for-each (lambda (arg) (test (op arg #\a) 'error)) (list "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #f #t (lambda (a) (+ a 1))))) (list char=? char? char>? char-ci=? char-ci? char-ci>=?)) (test (char=? #\a) 'error) (test (char=?) 'error) (test (char? #\a #\b "hi") 'error) (test (char>? #\a #\b 0) 'error) (test (char>=? #\a #\b "hi") 'error) (test (char>=? #\a #\b 0) 'error) (test (char-ci? #\a #\b "hi") 'error) (test (char-ci>? #\a #\b 0) 'error) (test (char-ci<=? #\b #\a "hi") 'error) (test (char-ci<=? #\b #\a 0) 'error) (test (char-ci>=? #\a #\b "hi") 'error) (test (char-ci>=? #\a #\b 0) 'error) )) (test (char<=?) 'error) (test (char>?) 'error) (test (char>=?) 'error) (test (char-ci=?) 'error) (test (char->integer 33) 'error) (test (char->integer) 'error) (test (integer->char) 'error) (test (integer->char (expt 2 31)) 'error) (test (integer->char (expt 2 32)) 'error) (for-each (lambda (arg) (test (char->integer arg) 'error)) (list -1 1 0 123456789 "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (integer->char arg) 'error)) (list -1 123456789 -123456789 #\a "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) ;(test (string? "das ist die eine haelfte" "und das die andere") 'error) (test (string?) 'error) (if with-string-ops-with-more-than-2-args (begin (test (string=? "foo" "FOO" 1.0) 'error) (test (string? "foo" "fooo" 1.0) 'error) (test (string<=? "foo" "fo" 1.0) 'error) (test (string>=? "fo" "foo" 1.0) 'error) (test (string-ci=? "foo" "GOO" 1.0) 'error) (test (string-ci? "foo" "fooo" 1.0) 'error) (test (string-ci<=? "fOo" "fo" 1.0) 'error) (test (string-ci>=? "fo" "foo" 1.0) 'error) )) (for-each (lambda (arg) (test (string=? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string<=? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string>=? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-ci=? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-ci? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-ci<=? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-ci>=? "hi" arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-length arg) 'error)) (list #\a '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string #\a arg) 'error)) (list '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (make-string -1) 'error) (for-each (lambda (arg) (test (make-string 3 arg) 'error)) (list "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (make-string arg #\a) 'error)) (list #\a "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (make-string arg) 'error)) (list #\a "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (string-ref "abcdef-dg1ndh" 20) 'error) (test (string-ref "abcdef-dg1ndh") 'error) (test (string-ref "abcdef-dg1ndh" -3) 'error) (test (string-ref) 'error) (test (string-ref 2) 'error) (test (string-ref "\"\\\"" 3) 'error) (test (string-ref "" 0) 'error) ; guile returns #\nul here? [fixed 1.9] (test (string-ref "" 1) 'error) (test (string-ref "hiho" (expt 2 32)) 'error) (test (string-set! "hiho" (expt 2 32) #\a) 'error) (for-each (lambda (arg) (test (string-ref arg 0) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-ref "hiho" arg) 'error)) (list #\a -1 123 4 "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (let ((hi (string-copy "hi"))) (string-set! hi 2 #\H) hi) 'error) (test (let ((hi (string-copy "hi"))) (string-set! hi -1 #\H) hi) 'error) (test (let ((g (lambda () "***"))) (string-set! (g) 0 #\?)) 'error) ; guile is happy here and below [fixed 1.9] (test (string-set! "" 0 #\a) 'error) (test (string-set! "" 1 #\a) 'error) (test (string-set! (string) 0 #\a) 'error) (test (string-set! (symbol->string 'lambda) 0 #\a) 'error) (for-each (lambda (arg) (test (string-set! arg 0 #\a) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-set! "hiho" arg #\a) 'error)) (list #\a -1 123 4 "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-set! "hiho" 0 arg) 'error)) (list 1 "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (string-fill! "" #\a) 'error) (test (string-fill! "hiho" #\a) 'error) (test (let ((g (lambda () "***"))) (string-fill! (g) #\?)) 'error) (test (substring "ab" 0 3) 'error) (test (substring "ab" 3 3) 'error) (test (substring "ab" 2 3) 'error) (test (substring "" 0 1) 'error) (test (substring "" -1 0) 'error) (test (substring "abc" -1 0) 'error) (test (substring "hiho" (expt 2 32) (+ 2 (expt 2 32))) 'error) (for-each (lambda (arg) (test (substring "hiho" arg 0) 'error)) (list "hi" #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (substring "hiho" 1 arg) 'error)) (list "hi" #\a 0 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (substring arg 1 2) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-append "hiho" arg) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (string-append '()) 'error) (test (string '()) 'error) (for-each (lambda (arg) (test (let ((hiho "hiho")) (string-fill! hiho arg) hiho) 'error)) (list 1 "hi" '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-fill! arg #\a) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string-copy arg) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string->list arg) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (let ((x (cons #\a #\b))) (set-cdr! x x) (list->string x)) 'error) (for-each (lambda (arg) (test (list->string arg) 'error)) (list "hi" #\a 1 ''foo '(1 . 2) (cons #\a #\b) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (symbol->string arg) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string->symbol arg) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (op) (for-each (lambda (arg) (let ((result (catch #t (lambda () (op arg)) (lambda args 'error)))) (if (not (eq? result 'error)) (begin (display "(") (display op) (display " ") (display arg) (display ") returned ") (display result) (display "?") (newline))))) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1))))) (list reverse cons car cdr set-car! set-cdr! caar cadr cdar cddr caaar caadr cadar cdaar caddr cdddr cdadr cddar caaaar caaadr caadar cadaar caaddr cadddr cadadr caddar cdaaar cdaadr cdadar cddaar cdaddr cddddr cddadr cdddar assq assv assoc memq memv member list-ref list-tail)) (if (not with-generic-length) (for-each (lambda (arg) (test (length arg) 'error)) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1))))) (test (cons 1 . 2) 'error) ; (test '(1 . 2 . 3) 'error) ; gets reader error which is inconvenient (test (car (list)) 'error) (test (car '()) 'error) (test (cdr (list)) 'error) (test (cdr '()) 'error) (test (caddar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) 'error) (test (cdddar '(((((1 2 3) 4) 5) (6 7)) (((u v w) x) y) ((q w e) r) (a b c) e f g)) 'error) (test (caar '(a b c d e f g)) 'error) (test (cdar '(a b c d e f g)) 'error) (test (caaar '(a b c d e f g)) 'error) (test (caadr '(a b c d e f g)) 'error) (test (cadar '(a b c d e f g)) 'error) (test (cdaar '(a b c d e f g)) 'error) (test (cdadr '(a b c d e f g)) 'error) (test (cddar '(a b c d e f g)) 'error) (test (caaaar '(a b c d e f g)) 'error) (test (caaadr '(a b c d e f g)) 'error) (test (caadar '(a b c d e f g)) 'error) (test (caaddr '(a b c d e f g)) 'error) (test (cadaar '(a b c d e f g)) 'error) (test (cadadr '(a b c d e f g)) 'error) (test (caddar '(a b c d e f g)) 'error) (test (cdaaar '(a b c d e f g)) 'error) (test (cdaadr '(a b c d e f g)) 'error) (test (cdadar '(a b c d e f g)) 'error) (test (cdaddr '(a b c d e f g)) 'error) (test (cddaar '(a b c d e f g)) 'error) (test (cddadr '(a b c d e f g)) 'error) (test (cdddar '(a b c d e f g)) 'error) (test (caar 'a) 'error) (test (caar '(a)) 'error) (test (cadr 'a) 'error) (test (cadr '(a . b)) 'error) (test (cdar 'a) 'error) (test (cdar '(a . b)) 'error) (test (cddr 'a) 'error) (test (cddr '(a . b)) 'error) (test (caaar 'a) 'error) (test (caaar '(a)) 'error) (test (caaar '((a))) 'error) (test (caadr 'a) 'error) (test (caadr '(a . b)) 'error) (test (caadr '(a b)) 'error) (test (cadar 'a) 'error) (test (cadar '(a . b)) 'error) (test (cadar '((a . c) . b)) 'error) (test (caddr 'a) 'error) (test (caddr '(a . b)) 'error) (test (caddr '(a c . b)) 'error) (test (cdaar 'a) 'error) (test (cdaar '(a)) 'error) (test (cdaar '((a . b))) 'error) (test (cdadr 'a) 'error) (test (cdadr '(a . b)) 'error) (test (cdadr '(a b . c)) 'error) (test (cddar 'a) 'error) (test (cddar '(a . b)) 'error) (test (cddar '((a . b) . b)) 'error) (test (cdddr 'a) 'error) (test (cdddr '(a . b)) 'error) (test (cdddr '(a c . b)) 'error) (test (caaaar 'a) 'error) (test (caaaar '(a)) 'error) (test (caaaar '((a))) 'error) (test (caaaar '(((a)))) 'error) (test (caaadr 'a) 'error) (test (caaadr '(a . b)) 'error) (test (caaadr '(a b)) 'error) (test (caaadr '(a (b))) 'error) (test (caadar 'a) 'error) (test (caadar '(a . b)) 'error) (test (caadar '((a . c) . b)) 'error) (test (caadar '((a c) . b)) 'error) (test (caaddr 'a) 'error) (test (caaddr '(a . b)) 'error) (test (caaddr '(a c . b)) 'error) (test (caaddr '(a c b)) 'error) (test (cadaar 'a) 'error) (test (cadaar '(a)) 'error) (test (cadaar '((a . b))) 'error) (test (cadaar '((a b))) 'error) (test (cadadr 'a) 'error) (test (cadadr '(a . b)) 'error) (test (cadadr '(a b . c)) 'error) (test (cadadr '(a (b . e) . c)) 'error) (test (caddar 'a) 'error) (test (caddar '(a . b)) 'error) (test (caddar '((a . b) . b)) 'error) (test (caddar '((a b . c) . b)) 'error) (test (cadddr 'a) 'error) (test (cadddr '(a . b)) 'error) (test (cadddr '(a c . b)) 'error) (test (cadddr '(a c e . b)) 'error) (test (cdaaar 'a) 'error) (test (cdaaar '(a)) 'error) (test (cdaaar '((a))) 'error) (test (cdaaar '(((a . b)))) 'error) (test (cdaadr 'a) 'error) (test (cdaadr '(a . b)) 'error) (test (cdaadr '(a b)) 'error) (test (cdaadr '(a (b . c))) 'error) (test (cdadar 'a) 'error) (test (cdadar '(a . b)) 'error) (test (cdadar '((a . c) . b)) 'error) (test (cdadar '((a c . d) . b)) 'error) (test (cdaddr 'a) 'error) (test (cdaddr '(a . b)) 'error) (test (cdaddr '(a c . b)) 'error) (test (cdaddr '(a c b . d)) 'error) (test (cddaar 'a) 'error) (test (cddaar '(a)) 'error) (test (cddaar '((a . b))) 'error) (test (cddaar '((a b))) 'error) (test (cddadr 'a) 'error) (test (cddadr '(a . b)) 'error) (test (cddadr '(a b . c)) 'error) (test (cddadr '(a (b . e) . c)) 'error) (test (cdddar 'a) 'error) (test (cdddar '(a . b)) 'error) (test (cdddar '((a . b) . b)) 'error) (test (cdddar '((a b . c) . b)) 'error) (test (cddddr 'a) 'error) (test (cddddr '(a . b)) 'error) (test (cddddr '(a c . b)) 'error) (test (cddddr '(a c e . b)) 'error) (test (length 'x) 'error) (test (length (cons 1 2)) 'error) (let ((x (list 1 2))) (set-cdr! x x) (test (length x) 'error)) (test (length '(1 2 . 3)) 'error) (test (reverse (cons 1 2)) 'error) (test (reverse '(1 . 2)) 'error) (test (reverse '(1 2 . 3)) 'error) (if with-reverse! (begin (test (reverse! '(1 . 2)) 'error) (test (reverse! (cons 1 2)) 'error) (test (reverse! (cons 1 (cons 2 3))) 'error) )) (test (set-car! '() 32) 'error) (test (set-car! 'x 32) 'error) (test (set-car! #f 32) 'error) (test (set-cdr! '() 32) 'error) (test (set-cdr! 'x 32) 'error) (test (set-cdr! #f 32) 'error) (test (list-ref '() 0) 'error) (test (list-ref (list 1 2) 2) 'error) (test (list-ref (list 1 2) -1) 'error) (test (list-ref (list 1 2) 1.3) 'error) (test (list-ref (list 1 2) 1/3) 'error) (test (list-ref (list 1 2) 1+2.0i) 'error) (test (list-ref (cons 1 2) 1) 'error) (test (list-ref (cons 1 2) 2) 'error) (test (list-ref (list 1 2 3) (expt 2 32)) 'error) (test (list-set! (list 1 2 3) (expt 2 32) 0) 'error) (for-each (lambda (arg) (test (list-ref (list 1 2) arg) 'error)) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (test (list-set! '() 0 1) 'error) (test (list-set! '(1) 1 2) 'error) (test (list-set! '(1 2 3) -1 2) 'error) (test (list-set! '(1) 1.5 2) 'error) (test (list-set! '(1) 3/2 2) 'error) (test (list-set! '(1) 1+3i 2) 'error) (test (let ((x (cons 1 2))) (list-set! x 1 3) x) 'error) (for-each (lambda (arg) (test (list-set! (list 1 2) arg arg) 'error)) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (test (list 1 2 . 3) 'error) (test (list 1 2 , 3) 'error) (test (list 1 2 ,@ 3) 'error) (test (list-tail (list 1 2) 3) 'error) (test (list-tail (list 1 2) -1) 'error) (test (list-tail (list 1 2) 1.3) 'error) (test (list-tail (list 1 2) 1/3) 'error) (test (list-tail (list 1 2) 1+2.0i) 'error) (test (list-tail (cons 1 2) 2) 'error) (test (list-tail '(1 2 . 3)) 'error) (test (list-tail (list 1 2 3) (+ 1 (expt 2 32))) 'error) (for-each (lambda (arg) (test (list-tail (list 1 2) arg) 'error)) (list "hi" (integer->char 65) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1)))) (test (assq #f '(#f 2 . 3)) 'error) (test (assq #f '((#f 2) . 3)) 'error) ; an a-list is a proper list sez kd (test (assv 1 '(1 2 . 3)) 'error) (test (assv 1 '((1 2) . 3)) 'error) ; an a-list is a proper list sez kd (test (assoc '() 1) 'error) (test (assoc (cons 1 2) 1) 'error) (test (assoc (let ((x (cons 1 2))) (set-cdr! x x)) 1) 'error) (test (assoc '((1 2) .3) 1) 'error) (test (assoc ''foo quote) 'error) (test (assoc 1 '(1 2 . 3)) 'error) (test (assoc 1 '((1 2) . 3)) 'error) ; an a-list is a proper list sez kd ;(test (let ((lst '((1 2)))) (assq #t (reverse! lst lst))) #f) ; this will hang Guile (test (append 'a 'b) 'error) (test (append 'a '()) 'error) (test (append (cons 1 2) '()) 'error) (test (append '(1) 2 '(3)) 'error) (test (append '(1) 2 3) 'error) ;(test (memq 'a (cons a b)) 'error) ; there is disagreement about this (test (memq 'a (list a b . c)) 'error) ;(test (memv 1 (cons 1 2)) 'error) ; there is disagreement about this (test (memv 'a (list a b . c)) 'error) ;(test (member 1 (cons 1 2)) 'error) ; there is disagreement about this (test (member 'a (list a b . c)) 'error) (test (member 1 '(1 2 . 3)) 'error) (test (make-vector) 'error) (for-each (lambda (arg) (test (make-vector arg) 'error)) (list #\a '() -1 #f "hi" 'a-symbol abs 3.14 3/4 1.0+1.0i #t (vector 1 2 3) (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (vector->list arg) 'error)) (list #\a 1 '() (list 1) '(1 . 2) #f 'a-symbol "hi" abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (let ((x (cons #\a #\b))) (set-cdr! x x) (list->vector x)) 'error) (test (list->vector (cons 1 2)) 'error) (test (list->vector '(1 2 . 3)) 'error) (for-each (lambda (arg) (test (list->vector arg) 'error)) (list "hi" #\a 1 '(1 . 2) (cons #\a #\b) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (vector-length arg) 'error)) (list "hi" #\a 1 '(1 . 2) (cons #\a #\b) #f 'a-symbol abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (test (let ((v (make-vector 1 0))) (vector-ref v 1)) 'error) (test (let ((v (make-vector 1 0))) (vector-ref v -1)) 'error) (test (let ((v (vector 1 (list 2) (make-vector 3 #\a)))) (vector-ref (vector-ref v 2) 3)) 'error) (test (let ((v (vector 1 (list 2) (make-vector 3 #\a)))) (vector-ref (vector-ref v 3) 0)) 'error) (test (vector-ref (vector) 0) 'error) (test (vector-ref '#() 0) 'error) (test (vector-ref '#() -1) 'error) (test (vector-ref '#() 1) 'error) ;(test (vector-set! '#(0 1 2) 1 "doe") 'error) (test (let ((v (vector 1 2 3))) (vector-set! v -1 0)) 'error) (test (let ((v (vector 1 2 3))) (vector-set! v 3 0)) 'error) (test (vector-set! '#(1 2) 0 2) 'error) (test (vector-fill! '#(1 2) 2) 'error) (let ((v (vector 1 2 3))) (for-each (lambda (arg) (test (vector-set! v arg 0) 'error)) (list "hi" #\a -1 '(1 . 2) (cons #\a #\b) #f 'a-symbol abs 3.14 3/4 1.0+1.0i #t (make-vector 3) (lambda (a) (+ a 1))))) (for-each (lambda (arg) (test (vector-set! arg 0 0) 'error)) (list "hi" #\a 1 '(1 . 2) (cons #\a #\b) #f 'a-symbol abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (let ((v (vector))) (test (vector-set! v 0 0) 'error) (test (vector-set! v 1 0) 'error) (test (vector-set! v -1 0) 'error)) (test (let ((g (lambda () '#(1 2 3)))) (vector-set! (g) 0 #\?) (g)) 'error) ; not an error in Guile ;(test (let ((g (lambda () '(1 . 2)))) (set-car! (g) 123) (g)) 'error) ; should this also be an error? ;(test (let ((g (lambda () '(1 2)))) (list-set! (g) 0 123) (g)) 'error) (test (let ((g (lambda () (symbol->string 'hi)))) (string-set! (g) 1 #\a) (symbol->string 'hi)) 'error) (for-each (lambda (arg) (test (vector-fill! arg 0) 'error)) (list "hi" #\a 1 '(1 . 2) (cons #\a #\b) #f 'a-symbol abs 3.14 3/4 1.0+1.0i #t (lambda (a) (+ a 1)))) (for-each (lambda (arg) (test (string->number arg) 'error)) (list -1 #\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 (string->number "123" arg) 'error) (test (string->number "1" arg) 'error)) (list -1 0 1 #\a '#(1 2 3) 3.14 3/4 1.5+0.3i 1+i '() 'hi abs '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) ;; (string->number "0" 1) ?? why not? (for-each (lambda (arg) (test (number->string arg) 'error)) (list #\a '#(1 2 3) '() 'hi abs "hi" '#(()) (list 1 2 3) '(1 . 2) (lambda () 1))) (for-each (lambda (arg) (test (number->string 123 arg) 'error)) (list -1 0 1 512 #\a '#(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 (exact?) 'error) (test (exact? "hi") 'error) (test (exact? 1.0+23.0i 1.0+23.0i) 'error) (test (inexact?) 'error) (test (inexact? "hi") 'error) (test (inexact? 1.0+23.0i 1.0+23.0i) 'error) (test (/) 'error) (test (/ "hi") 'error) (test (zero?) 'error) (test (zero? "hi") 'error) (test (zero? 1.0+23.0i 1.0+23.0i) 'error) (test (positive?) 'error) (test (positive? 1.23+1.0i) 'error) (test (positive? 1.23 1.23) 'error) (test (negative?) 'error) (test (negative? 1.23+1.0i) 'error) (test (negative? 1.23 1.23) 'error) (test (even?) 'error) (test (even? 1.23) 'error) (test (even? 123 123) 'error) (test (odd?) 'error) (test (odd? 1.23) 'error) (test (odd? 123 123) 'error) (test (quotient) 'error) (test (quotient 123) 'error) (if (not with-generic-modulo) (test (quotient 1.23 1.23) 'error)) (test (quotient 123 123 123) 'error) (test (remainder) 'error) (test (remainder 123) 'error) (if (not with-generic-modulo) (test (remainder 1.23 1.23) 'error)) (test (remainder 123 123 123) 'error) (test (modulo) 'error) (test (modulo 123) 'error) (if (not with-generic-modulo) (test (modulo 1.23 1.23) 'error)) (test (modulo 123 123 123) 'error) (test (truncate) 'error) (test (truncate 1.23+1.0i) 'error) (if (not with-generic-modulo) (test (truncate 1.23 1.23) 'error)) (test (floor) 'error) (test (floor 1.23+1.0i) 'error) (test (floor 1.23 1.23) 'error) (test (ceiling) 'error) (test (ceiling 1.23+1.0i) 'error) (test (ceiling 1.23 1.23) 'error) (test (round) 'error) (test (round 1.23+1.0i) 'error) (test (round 1.23 1.23) 'error) (test (abs) 'error) (test (abs 1.23+1.0i) 'error) (test (abs 1.23 1.23) 'error) (test (max) 'error) (test (max 1.23+1.0i) 'error) (test (min) 'error) (test (min 1.23+1.0i) 'error) (test (expt) 'error) (test (expt 1.0+23.0i) 'error) (test (expt "hi" "hi") 'error) (test (expt 1.0+23.0i 1.0+23.0i 1.0+23.0i) 'error) (test (expt 0 -1) 'error) (test (expt 0.0 -1.0) 'error) (test (expt 0 -1.0) 'error) ; (test (expt 0 -1.0+i) 'error) ; (test (expt 0 0-i) 0.0) ; sbcl and clisp say division by 0 here (test (expt 0 -255) 'error) (test (expt 0 (- (expt 2 32))) 'error) (test (exact->inexact) 'error) (test (exact->inexact "hi") 'error) (test (exact->inexact 1.0+23.0i 1.0+23.0i) 'error) (test (inexact->exact) 'error) (test (inexact->exact "hi") 'error) (test (inexact->exact 1.0+23.0i 1.0+23.0i) 'error) (if with-rationalize (begin (test (rationalize) 'error) (test (rationalize 1.23+1.0i 1.23+1.0i) 'error) (test (rationalize 1.23 1.23 1.23) 'error))) (test (numerator) 'error) (test (numerator 1.23+1.0i) 'error) (test (numerator 1.23 1.23) 'error) (test (denominator) 'error) (test (denominator 1.23+1.0i) 'error) (test (denominator 1.23 1.23) 'error) (test (imag-part) 'error) (test (imag-part "hi") 'error) (test (imag-part 1.0+23.0i 1.0+23.0i) 'error) (test (real-part) 'error) (test (real-part "hi") 'error) (test (real-part 1.0+23.0i 1.0+23.0i) 'error) (test (magnitude) 'error) (test (magnitude "hi") 'error) (test (magnitude 1.0+23.0i 1.0+23.0i) 'error) (test (angle) 'error) (test (angle "hi") 'error) (test (angle 1.0+23.0i 1.0+23.0i) 'error) (test (make-polar) 'error) (test (make-polar 1.23) 'error) (test (make-polar 1.23+1.0i 1.23+1.0i) 'error) (test (make-polar 1.23 1.23 1.23) 'error) (test (make-rectangular) 'error) (test (make-rectangular 1.23) 'error) (test (make-rectangular 1.23+1.0i 1.23+1.0i) 'error) (test (make-rectangular 1.23 1.23 1.23) 'error) (test (sqrt) 'error) (test (sqrt "hi") 'error) (test (sqrt 1.0+23.0i 1.0+23.0i) 'error) (test (exp) 'error) (test (exp "hi") 'error) (test (exp 1.0+23.0i 1.0+23.0i) 'error) (test (log) 'error) (test (log "hi") 'error) (test (log 1.0+23.0i 1.0+23.0i 1.0+23.0i) 'error) (test (log "hi" (expt 2 30)) 'error) (test (log (expt 2 30) #t) 'error) (test (expt #t 0) 'error) (test (sin) 'error) (test (sin "hi") 'error) (test (sin 1.0+23.0i 1.0+23.0i) 'error) (test (cos) 'error) (test (cos "hi") 'error) (test (cos 1.0+23.0i 1.0+23.0i) 'error) (test (tan) 'error) (test (tan "hi") 'error) (test (tan 1.0+23.0i 1.0+23.0i) 'error) (test (asin) 'error) (test (asin "hi") 'error) (test (asin 1.0+23.0i 1.0+23.0i) 'error) (test (acos) 'error) (test (acos "hi") 'error) (test (acos 1.0+23.0i 1.0+23.0i) 'error) (test (atan) 'error) (test (atan "hi") 'error) (test (atan 1.0+23.0i 1.0+23.0i) 'error) (if with-bitwise-functions (test (ash 1 (expt 2 32)) 'error)) (test (string->number "34.1" (+ 5 (expt 2 32))) 'error) (test (number->string 34.1 (+ 5 (expt 2 32))) 'error) (for-each (lambda (op) (for-each (lambda (arg) (let ((val (catch #t (lambda () (op arg)) (lambda args 'error)))) (if (not (eq? val 'error)) (begin (display "(") (display op) (display " ") (display arg) (display ") returned ") (display val) (display " but expected 'error") (newline))))) (list "hi" '() #\a (list 1) '(1 . 2) #f 'a-symbol (make-vector 3) abs #t (lambda (a) (+ a 1)) (if (and with-open-input-string-and-friends (eof-object? (with-input-from-string "" (lambda () (read-char))))) (with-input-from-string "" (lambda () (read-char))) :key) (vector-fill! (vector 0) 0)))) (list exact? inexact? zero? positive? negative? even? odd? quotient remainder modulo truncate floor ceiling round abs max min gcd lcm expt exact->inexact inexact->exact rationalize numerator denominator imag-part real-part magnitude angle make-polar make-rectangular sqrt exp log sin cos tan asin acos atan number->string)) (for-each (lambda (op) (for-each (lambda (arg) ;(format #t "(~A ~A)~%" op arg) (test (op arg) 'error)) (list (integer->char 65) 1 0 -1 (list 1) (cons 1 2) #f 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #\f #t (lambda (a) (+ a 1))))) (list char-ready? set-current-output-port set-current-input-port set-current-error-port close-input-port close-output-port open-input-file open-output-file read-char peek-char read (lambda (arg) (write-char #\a arg)) (lambda (arg) (write "hi" arg)) (lambda (arg) (display "hi" arg)) call-with-input-file with-input-from-file call-with-output-file with-output-to-file)) (if with-hyperbolic-functions (begin (test (sinh) 'error) (test (sinh "hi") 'error) (test (sinh 1.0+23.0i 1.0+23.0i) 'error) (test (cosh) 'error) (test (cosh "hi") 'error) (test (cosh 1.0+23.0i 1.0+23.0i) 'error) (test (tanh) 'error) (test (tanh "hi") 'error) (test (tanh 1.0+23.0i 1.0+23.0i) 'error) (test (asinh) 'error) (test (asinh "hi") 'error) (test (asinh 1.0+23.0i 1.0+23.0i) 'error) (test (acosh) 'error) (test (acosh "hi") 'error) (test (acosh 1.0+23.0i 1.0+23.0i) 'error) (test (atanh) 'error) (test (atanh "hi") 'error) (test (atanh 1.0+23.0i 1.0+23.0i) 'error) (for-each (lambda (op) (for-each (lambda (arg) (let ((val (catch #t (lambda () (op arg)) (lambda args 'error)))) (if (not (eq? val 'error)) (begin (display "(") (display op) (display " ") (display arg) (display ") returned ") (display val) (display " but expected 'error") (newline))))) (list "hi" '() #\a (list 1) '(1 . 2) '#(0) #f 'a-symbol (make-vector 3) abs #t (lambda (a) (+ a 1))))) (list cosh sinh tanh acosh asinh atanh)) )) ; (if with-procedure-arity ; (begin ; (test (eval-string ",") 'error) ; (test (eval-string ")") 'error) ; (test (eval-string "{") 'error) ; )) (test (string->number) 'error) (test (string->number 'symbol) 'error) (test (string->number "1.0" "1.0") 'error) (test (number->string) 'error) (test (number->string "hi") 'error) (test (number->string 1.0+23.0i 1.0+23.0i 1.0+23.0i) 'error) (test (+ 1 2 . 3) 'error) (num-test (gcd 1.4 2.3) 'error) (num-test (lcm 1.4 2.3) 'error) ;(num-test (gcd 2/3 1) 'error) ; these are ok in s7 ;(num-test (lcm 2/3 1) 'error) (num-test (gcd 2 1.0+0.5i) 'error) (num-test (lcm 2 1.0+0.5i) 'error) (test (gcd 1 "hi") 'error) (test (lcm 0 "hi") 'error) (num-test (numerator 2.3+0.5i) 'error) (num-test (denominator 2.3+0.5i) 'error) (if (not with-generic-modulo) (begin (num-test (modulo 3 2.3) 'error) (num-test (modulo 2.3 3) 'error) (num-test (modulo 1/3 2.3) 'error))) (num-test (modulo 2.3 1.0+0.1i) 'error) (num-test (modulo 3.0+2.3i 3) 'error) (if (not with-generic-modulo) (begin (num-test (remainder 3 2.3) 'error) (num-test (remainder 2.3 3) 'error) (num-test (remainder 1/3 2.3) 'error))) (num-test (mod 2 0) 'error) (num-test (remainder 2.3 1.0+0.1i) 'error) (num-test (remainder 3.0+2.3i 3) 'error) (num-test (abs 1.0+0.1i) 'error) (num-test (make-polar 1.0 1.0+0.1i) 'error) (num-test (make-polar 1.0+0.1i 0.0) 'error) (num-test (make-rectangular 1.0 1.0+0.1i) 'error) (num-test (make-rectangular 1.0+0.1i 1.0) 'error) (test (>=- 1 2) 'error) (test (>= - 1 2) 'error) (if with-relational-ops-that-require-at-least-2-args (begin (num-test (< 0) 'error) (num-test (<= 0) 'error) (num-test (= 0) 'error) (num-test (> 0) 'error) (num-test (>= 0) 'error) (num-test (< 2) 'error) (num-test (<= 2) 'error) (num-test (= 2) 'error) (num-test (> 2) 'error) (num-test (>= 2) 'error) (num-test (< 0/1) 'error) (num-test (<= 0/1) 'error) (num-test (= 0/1) 'error) (num-test (> 0/1) 'error) (num-test (>= 0/1) 'error) (num-test (< 10/3) 'error) (num-test (<= 10/3) 'error) (num-test (= 10/3) 'error) (num-test (> 10/3) 'error) (num-test (>= 10/3) 'error) (num-test (< 0.0) 'error) (num-test (<= 0.0) 'error) (num-test (= 0.0) 'error) (num-test (> 0.0) 'error) (num-test (>= 0.0) 'error) (num-test (< 1.0) 'error) (num-test (<= 1.0) 'error) (num-test (= 1.0) 'error) (num-test (> 1.0) 'error) (num-test (>= 1.0) 'error) )) (num-test (min 0.0+0.00000001i) 'error) (num-test (max 0.0+0.00000001i) 'error) (num-test (< 0.0+0.00000001i) 'error) (num-test (<= 0.0+0.00000001i) 'error) (num-test (= 0.0+0.00000001i) 'error) (num-test (> 0.0+0.00000001i) 'error) (num-test (>= 0.0+0.00000001i) 'error) (num-test (min -0.0+0.00000001i) 'error) (num-test (max -0.0+0.00000001i) 'error) (num-test (min 1.0+1.0i) 'error) (num-test (max 1.0+1.0i) 'error) (num-test (< 1.0+1.0i) 'error) (num-test (<= 1.0+1.0i) 'error) (num-test (= 1.0+1.0i) 'error) (num-test (> 1.0+1.0i) 'error) (num-test (>= 1.0+1.0i) 'error) (num-test (min -1.0+1.0i) 'error) (num-test (max -1.0+1.0i) 'error) (num-test (min 2.71828182845905+3.14159265358979i) 'error) (num-test (max 2.71828182845905+3.14159265358979i) 'error) (num-test (< 2.71828182845905+3.14159265358979i) 'error) (num-test (<= 2.71828182845905+3.14159265358979i) 'error) (num-test (= 2.71828182845905+3.14159265358979i) 'error) (num-test (> 2.71828182845905+3.14159265358979i) 'error) (num-test (>= 2.71828182845905+3.14159265358979i) 'error) (num-test (min -2.71828182845905+3.14159265358979i) 'error) (num-test (max -2.71828182845905+3.14159265358979i) 'error) (num-test (min 1234000000.0+2.71828182845905i) 'error) (num-test (max 1234000000.0+2.71828182845905i) 'error) (num-test (< 1234000000.0+2.71828182845905i) 'error) (num-test (<= 1234000000.0+2.71828182845905i) 'error) (num-test (= 1234000000.0+2.71828182845905i) 'error) (num-test (> 1234000000.0+2.71828182845905i) 'error) (num-test (>= 1234000000.0+2.71828182845905i) 'error) (num-test (min -1234000000.0+2.71828182845905i) 'error) (num-test (max -1234000000.0+2.71828182845905i) 'error) (num-test (< 2 1 1.0+1.0i) 'error) (num-test (<= 2 1 1.0+1.0i) 'error) (num-test (> 1 2 1.0+1.0i) 'error) (num-test (>= 1 2 1.0+1.0i) 'error) (num-test (< 2 1 #\a) 'error) (num-test (<= 2 1 #\a) 'error) (num-test (> 1 2 #\a) 'error) (num-test (>= 1 2 #\a) 'error) (num-test (= 0 1 "hi") 'error) (num-test (= 0.0 1.0 "hi") 'error) (num-test (* 0 1 "hi") 'error) (num-test (* 0.0 "hi") 'error) (num-test (* 0.0+0.0i "hi") 'error) (num-test (* 0/1 "hi") 'error) (num-test (/ 0 1 "hi") 'error) (num-test (gcd 0 "hi") 'error) (num-test (lcm 0 "hi") 'error) (num-test (* 1 0.0 #\a) 'error) (num-test (< 3 3.0 3 3.0+1.0i) 'error) (num-test (> 3 3.0 3 3.0+1.0i) 'error) (num-test (log 3 0) 'error) (for-each (lambda (arg) (test (log 10.0 arg) 'error)) (list "hi" #\a 0 '#(1 2 3) #t #f '() abs 'hi (list 1 2 3) '(1 . 2))) (test (quotient 3 0) 'error) (test (remainder 3 0) 'error) (test (+ 1 + 2) 'error) (test (+ 1 - 2) 'error) (test (+ 1 #t) 'error) (test (+ 1 #f) 'error) (test (/ 0) 'error) (test (/ -0) 'error) (test (/ 0.0) 'error) (test (/ 1.0 0) 'error) (if with-bitwise-functions (begin (test (logior -1 "hi") 'error) (test (logand 0 "hi") 'error) (for-each (lambda (op) (for-each (lambda (arg) (let ((val (catch #t (lambda () (op arg)) (lambda args 'error)))) (if (not (equal? val 'error)) (begin (display op) (display " ") (display arg) (display " returned ") (display val) (newline))))) (list "hi" (integer->char 65) 'a-symbol (make-vector 3) abs #\f (lambda (a) (+ a 1))))) (list logior logand lognot logxor ash integer-length)) (for-each (lambda (op) (for-each (lambda (arg) (let ((val (catch #t (lambda () (op 1 arg)) (lambda args 'error)))) (if (not (equal? val 'error)) (begin (display op) (display " 1 ") (display arg) (display " returned ") (display val) (newline))))) (list "hi" (integer->char 65) 'a-symbol (make-vector 3) abs #\f (lambda (a) (+ a 1))))) (list logior logand logxor lognot)) )) (for-each (lambda (arg) (test (char-ready? arg) 'error)) (list "hi" -1 #\a 1 'a-symbol (make-vector 3) abs 3.14 3/4 1.0+1.0i #f #t (lambda (a) (+ a 1)))) (test (if #f) 'error) (test (if (< 2 3)) 'error) (test (if #f 1 2 3) 'error) (test (if 1 2 3 4) 'error) (test (if #f 1 else 2) 'error) (test (if) 'error) (test ('+ '1 '2) 'error) (test (if 1 . 2) 'error) (test (if 1 2 . 3) 'error) (test (if . 1) 'error) (test (if _no_var_ 1) 'error) (test (for-each (lambda (x) (display "for-each should not have called this"))) 'error) (test (for-each (lambda () 1) '()) 'error) (test (let ((ctr 0)) (for-each (lambda (x y z) (set! ctr (+ ctr x y z))) '(1) '(3) '()) ctr) 'error) (test (let ((ctr 0)) (for-each (lambda (x y z) (set! ctr (+ ctr x y z))) '(0 1) '(2 3) '(4 5 6)) ctr) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1) (list)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1) (list 2) (list 3)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1) (list 1 2)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1 2) (list 1)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1 2) (list 1 2 3)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1 2) (list 1)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1 2) (list 1 2) (list)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1 2) (list 1 2) (list 1 2)) 'error) (test (for-each (lambda (a b) (+ a b)) (list 1 2) (cons 1 2)) 'error) (test (for-each (lambda (a b) (+ a b)) (cons 1 2) (list 1 2)) 'error) (test (for-each (lambda (a) (+ a 1)) (list 1) (list 2)) 'error) (test (for-each (lambda (a) (+ a 1)) #\a) 'error) (test (for-each (lambda (a) (+ a 1)) (cons 1 2)) 'error) (test (let ((sum 0)) (for-each (lambda (a b . args) (set! sum (+ sum a b (apply + args)))) '(0 1 2)) sum) 'error) (test (for-each (lambda (a) a) '(1 2 . 3)) 'error) (for-each (lambda (arg) (test (for-each arg (list 1)) 'error)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (for-each (lambda (n m) n) (list 1) arg) 'error)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t '() (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (for-each (lambda (a) a) arg) 'error)) (list -1 #\a 1 'a-symbol 3.14 3/4 1.0+1.0i #f #t '(1 . 2))) (test (for-each abs '() abs) 'error) (test (for-each abs '() '#(1)) 'error) (test (map abs '() abs) 'error) (test (map (lambda (x) (display "map should not have called this"))) 'error) (test (map (lambda () 1) '()) 'error) (test (let ((ctr 0)) (map (lambda (x y z) (set! ctr (+ ctr x y z)) ctr) '(1) '(3) '())) 'error) (test (let ((ctr 0)) (map (lambda (x y z) (set! ctr (+ ctr x y z)) ctr) '(0 1) '(2 3) '(4 5 6))) 'error) (test (map (lambda (a b) (+ a b)) (list 1)) 'error) (test (map (lambda (a b) (+ a b)) (list 1) (list)) 'error) (test (map (lambda (a b) (+ a b)) (list 1) (list 2)) (list 3)) (test (map (lambda (a b) (+ a b)) (list 1)) 'error) (test (map (lambda (a b) (+ a b)) (list 1) (list 2) (list 3)) 'error) (test (map (lambda (a b) (+ a b)) (list 1) (list 1 2)) 'error) (test (map (lambda (a b) (+ a b)) (list 1 2) (list 1)) 'error) (test (map (lambda (a b) (+ a b)) (list 1 2) (list 1 2 3)) 'error) (test (map (lambda (a b) (+ a b)) (list 1 2) (list 1)) 'error) (test (map (lambda (a b) (+ a b)) (list 1 2) (list 1 2) (list)) 'error) (test (map (lambda (a b) (+ a b)) (list 1 2) (list 1 2) (list 1 2)) 'error) (test (map (lambda (a b) (+ a b)) (list 1 2) (cons 1 2)) 'error) (test (map (lambda (a) (+ a 1)) (list 1) (list 2)) 'error) (test (map (lambda (a) (+ a 1)) #\a) 'error) (test (map (lambda (a) (+ a 1)) (cons 1 2)) 'error) (test (map (lambda (a b . args) (+ a b (apply + args))) '(0 1 2)) 'error) (test (map (lambda (a) a) '(1 2 . 3)) 'error) (for-each (lambda (arg) (test (map arg (list 1)) 'error)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (map (lambda (n m) n) (list 1) arg) 'error)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #f #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (map (lambda (a) a) arg) 'error)) (list "hi" -1 #\a 1 'a-symbol 3.14 3/4 1.0+1.0i #f #t '(1 . 2))) ;(test (do '() ('() '())) 'error) ; ?? -- isn't this the same as before? (test (do '() (#t 1)) 'error) (test (do . 1) 'error) (test (do ((i i i)) (i i)) 'error) (test (do ((i 0 i (+ i 1))) (i i)) 'error) ;(test (do ((i)) (#t i)) 'error) ; there's some disagreement about this? (test (do ((i 0 (+ i 1))) #t) 'error) (test (do 123 (#t 1)) 'error) (test (do ((i 1)) (#t . 1) 1) 'error) (test (do ((i 1) . 1) (#t 1) 1) 'error) ;(test (do ((i 0 j) (i 0 j) (j 1 (+ j 1))) ((= j 3) i)) 'error) ; ?? (test (do ((i 1) ()) (= i 1)) 'error) (test (do ((i 0 . 1)) ((= i 1)) i) 'error) (test (let ((a 1)) (set! a)) 'error) (test (let ((a 1)) (set! a 2 3)) 'error) (test (let ((a 1)) (set! a . 2)) 'error) (test (let ((a 1)) (set! a 1 . 2)) 'error) (test (set! "hi" 1) 'error) (test (set! 'a 1) 'error) (test (set! 1 1) 'error) (test (set! (list 1 2) 1) 'error) (test (set! (let () 'a) 1) 'error) (test (set!) 'error) (test (set! #t #f) 'error) (test (set! (call/cc (lambda (a) a)) #f) 'error) (test (set! 3 1) 'error) (test (set! 3.14 1) 'error) (test (set! #\a 12) 'error) (test (set! (1 2) #t) 'error) (test (set! _not_a_var_ 1) 'error) (test (let ((a (lambda (x) (set! a 3) x))) (list (a 1) a)) 'error) (test (let ((a (let ((b 1)) (set! a 3) b))) a) 'error) (test (let ((a (lambda () "hi"))) (set! (a) "ho")) 'error) (test (let ((a (let ((b 1)) (set! a 3) b))) a) 'error) (test (cond) 'error) ;(test (cond ((= 1 2) 3) (else 4) (4 5)) 'error) (test (cond ((+ 1 2) => (lambda (a b) (+ a b)))) 'error) ;(test (cond (else)) 'error) ; value of else might be #t -- perhaps (equal? (cond (else)) else) (test (cond (#t => 'ok)) 'error) (test (cond (else =>)) 'error) (test (cond ((values -1) => => abs)) 'error) (test (cond ((values -1) =>)) 'error) (test (cond (cond (#t 1))) 'error) (test (cond 1) 'error) (test (cond (1 . 2) (else 3)) 'error) (test (cond (#f 2) (else . 4)) 'error) (test (cond ((values 1 2) => (lambda (x y) #t))) 'error) (test (cond #t) 'error) (test (cond 1 2) 'error) (test (cond 1 2 3) 'error) (test (cond 1 2 3 4) 'error) (test (cond (1 => (lambda (x y) #t))) 'error) (test (cond . 1) 'error) (test (case 1) 'error) (test (case 1 . "hi") 'error) (test (case 1 ("hi")) 'error) (test (case 1 ("a" "b")) 'error) (test (case 1 (else #f) ((1) #t)) 'error) (test (case "hi" (("hi" "ho") 123) ("ha" 321)) 'error) (test (case) 'error) (test (case . 1) 'error) (test (case 1 (#t #f) ((1) #t)) 'error) (test (case 1 (#t #f)) 'error) (test (case -1 ((-1) => abs)) 'error) (test ((lambda () => abs)) 'error) (test ((lambda () => => 3)) 'error) ;; actually, both Guile and Gauche accept ;; ((lambda () + 3)) and (begin + 3) ;; but surely => is an undefined variable in this context? (test (lambda) 'error) (test (lambda (a) ) 'error) ;; should this be an error: (lambda (a) (define x 1)) ? (test (lambda . 1) 'error) (test (lambda 1) 'error) (test (lambda (x 1) x) 'error) (test (lambda "hi" 1) 'error) ;(test (lambda (x x) x) 'error) ;(test ((lambda (x x) x) 1 2) 'error) (test (lambda (x "a")) 'error) (test ((lambda (x y) (+ x y a)) 1 2) 'error) (test ((lambda ())) 'error) (test (lambda (x (y)) x) 'error) (test ((lambda (x) x . 5) 2) 'error) (test (lambda (1) #f) 'error) ;(test (lambda (x . y z) x) 'error) ; this is apparently uncatchable in Guile (test ((lambda () 1) 1) 'error) (test ((lambda (()) 1) 1) 'error) (test ((lambda (x) x) 1 2) 'error) (test ((lambda (x) x)) 'error) (test ((lambda ("x") x)) 'error) (test ((lambda "x" x)) 'error) (test ((lambda (x . "hi") x)) 'error) ;(test (begin . 1) 'error) ;(test (let () (begin . 1)) 'error) ;(test (let ((x 0)) (set! x (+ x 1)) (begin (define y 1)) (+ x y)) 'error) (test (apply + #f) 'error) (test (apply #f '(2 3)) 'error) (test (apply make-vector '(1 2 3)) 'error) (test (apply + 1) 'error) (test (apply) 'error) (test (apply 1) 'error) (test (apply . 1) 'error) (test (apply car ''foo) 'error) (test (apply + '(1 . 2)) 'error) (for-each (lambda (arg) (test (apply arg '(1)) 'error)) (list -1 #\a 1 'a-symbol 3.14 3/4 1.0+1.0i #t)) ; "hi" and (list 1 2 3) work here because they are applicable in s7 (test (let ((x (list 1 2))) (set-cdr! x x) (apply + x)) 'error) (test (apply + '(1 2 . 3)) 'error) (test (apply + '(1 2) (list 3 4)) 'error) (test (define) 'error) (test (define x) 'error) (test (define . x) 'error) (test (define x 1 2) 'error) (test (define (x 1)) 'error) (test (define 1 2) 'error) (test (define "hi" 2) 'error) (test (define x 1 2) 'error) (test (define x 1 . 2) 'error) (test (define x . 1) 'error) ;(test (define 'hi 1) 'error) ; this redefines quote, which maybe isn't an error (test (let () (define . 1) 1) 'error) (test (let ((hi (lambda (a 0.0) (b 0.0) (+ a b)))) (hi)) 'error) (test (call-with-values (lambda (x) (+ x 1)) (lambda (y) y)) 'error) (test (+ (values . 1)) 'error) (for-each (lambda (arg) (test (call-with-values arg arg) 'error)) (list "hi" -1 #\a 1 'a-symbol 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (call-with-values (lambda () (values -1 2)) abs) 'error) (test (let ((x 1 2 3)) x) 'error) (test (let ((+ 1 2)) 2) 'error) (test (let* ((x 1 2)) x) 'error) (test (letrec ((x 1 2)) x) 'error) (test (let ((x 1 . 2)) x) 'error) (test (let ((x 1 , 2)) x) 'error) (test (let ((x . 1)) x) 'error) (test (let* ((x . 1)) x) 'error) (test (letrec ((x . 1)) x) 'error) (test (let hi ()) 'error) (test (let . 1) 'error) (test (let* (x)) 'error) (test (let (x) 1) 'error) (test (let ((x)) 3) 'error) (test (let ((x 1) y) x) 'error) (test (let* x ()) 'error) (test (let* ((1 2)) 3) 'error) (test (let () ) 'error) (test (let '() 3) 'error) (test (let* ((x 1))) 'error) (test (let ((x 1)) (letrec ((x 32) (y x)) (+ 1 y))) 'error) ; # seems reasonable if not the 1+ (test (let ((x 1)) (letrec ((y x) (x 32)) (+ 1 y))) 'error) ;(test (let ((x 1)) (letrec ((y x) (x 32)) 1)) 'error) ; Guile is perverse... s7 returns 1 here (test (let ((x 1)) (letrec ((y (let () (+ x 1))) (x 32)) (+ 1 y))) 'error) (test (let ((x 1)) (letrec ((y (let ((xx (+ x 1))) xx)) (x 32)) (+ 1 y))) 'error) ;(test (let ((x 32)) (letrec ((y (apply list `(* ,x 2))) (x 1)) y)) 'error) (test (letrec) 'error) (test (let ((x . 1)) x) 'error) (test (let (((x 1)) 2) 3) 'error) (test (let ((#f 1)) #f) 'error) (test (let (()) #f) 'error) (test (let (lambda () ) #f) 'error) (test (let ((f1 3) (f1 4)) f1) 'error) ; not sure about this ;; (let () (define (f1) 3) (define (f1) 4) (f1)) (test (let ((asdf (lambda (a) (if (> a 0) (asdf (- a 1)) 0)))) (asdf 3)) 'error) (test (let* ((asdf (lambda (a) (if (> a 0) (asdf (- a 1)) 0)))) (asdf 3)) 'error) (test (let (('a 3)) 1) 'error) (test (let ((#\a 3)) #\a) 'error) ;; (test (let ((#z1 2)) 1) 'error) (test (let ('a 3) 1) 'error) (test (let 'a 1) 'error) ;; what about: (let ('1 ) 1) (test (let func ((a 1) . b) a) 'error) (test (let func ((a 1) . b) (if (> a 0) (func (- a 1) 2 3) b)) 'error) (test (let func ((a . 1)) a) 'error) (test (let func (a . 1) a) 'error) (test (let ((a 1) . b) a) 'error) (test (let* ((a 1) . b) a) 'error) (test (call/cc (lambda () 0)) 'error) (test (call/cc (lambda (a) 0) 123) 'error) (test (call/cc) 'error) (test (call/cc abs) 'error) (for-each (lambda (arg) (test (call/cc arg) 'error)) (list "hi" -1 #\a 1 'a-symbol 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (test (call/cc . 1) 'error) (test (dynamic-wind) 'error) (test (dynamic-wind (lambda () #f)) 'error) (test (dynamic-wind (lambda () #f) (lambda () #f)) 'error) (test (dynamic-wind (lambda (a) #f) (lambda () #f) (lambda () #f)) 'error) (test (dynamic-wind (lambda () #f) (lambda (a b) #f) (lambda () #f)) 'error) (test (dynamic-wind (lambda () #f) (lambda () #f) (lambda (a) #f)) 'error) (test (dynamic-wind (lambda () 1) #f (lambda () 2)) 'error) (test (dynamic-wind . 1) 'error) (if with-delay (begin (test (force) 'error) (test (delay) 'error) (test (delay 1 2) 'error) )) (if with-hash-tables (begin (test (hash-table?) 'error) (test (hash-table? 1 2) 'error) (let ((ht (make-hash-table))) (test (hash-table-set! ht #\a 'key) 'error) (for-each (lambda (arg) (test (hash-table-set! ht arg 3.14) 'error)) (list #\a '#(1 2 3) 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (hash-table-ref ht arg) 'error)) (list #\a '#(1 2 3) 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))) (for-each (lambda (arg) (test (hash-table-size arg) 'error)) (list "hi" -1 0 #\a 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (make-hash-table arg) 'error)) (list "hi" -1 0 #\a 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2))) )) (if with-keywords (begin (for-each (lambda (arg) (test (make-keyword arg) 'error)) (list -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t #f '() '#(()) (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (keyword->symbol arg) 'error)) (list "hi" -1 #\a 1 'a-symbol '#(1 2 3) 3.14 3/4 1.0+1.0i #t #f '() '#(()) (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (test (symbol->keyword arg) 'error)) (list "hi" -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i #t #f '() '#(()) (list 1 2 3) '(1 . 2))) )) (if with-gensym (begin (for-each (lambda (arg) (test (gensym arg) 'error)) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i #t #f '() '#(()) (list 1 2 3) '(1 . 2))) )) (if with-format (begin (test (format #f "" 1) 'error) (test (format #f "hiho" 1) 'error) (test (format #f "a~%" 1) 'error) ; some just ignore extra args (for-each (lambda (arg) (let ((result (catch #t (lambda () (format arg "hiho")) (lambda args 'error)))) (if (not (eq? result 'error)) (begin (display "(format ") (display arg) (display " \"hiho\")") (display " returned ") (display result) (display " but expected 'error") (newline))))) (list -1 #\a 1 '#(1 2 3) 3.14 3/4 1.0+1.0i 'hi abs (lambda () 1) '#(()) (list 1 2 3) '(1 . 2))) (for-each (lambda (arg) (let ((result (catch #t (lambda () (format #f arg)) (lambda args 'error)))) (if (not (eq? result 'error)) (begin (display "(format #f ") (display arg) (display ")") (display " returned ") (display result) (display " but expected 'error") (newline))))) (list -1 #\a 1 #f #t '#(1 2 3) 3.14 3/4 1.0+1.0i '() 'hi abs (lambda () 1) '#(()) (list 1 2 3) '(1 . 2))) (test (format #f "hi ~A ho" 1 2) 'error) (test (format #f "hi ~A ho") 'error) (test (format #f "hi ~S ho") 'error) (test (format #f "hi ~S ho" 1 2) 'error) (test (format #f "~C" 1) 'error) (test (format #f "123 ~R 321" 1) 'error) (test (format #f "123 ~,3R 321" 1) 'error) (test (format #f "~,2,3,4D" 123) 'error) (test (format #f "hi ~Z ho") 'error) (test (format #f "hi ~+ ho") 'error) (test (format #f "hi ~# ho") 'error) (test (format #f "hi ~} ho") 'error) (test (format #f "hi {ho~}") 'error) (test (format #f "asb~{~A asd" '(1 2 3)) 'error) (test (format #f "~{~A~}" 1 2 3) 'error) (test (format #f "asb~{~}asd" '(1 2 3)) 'error) ; this apparently makes the format.scm in Guile hang? [fixed] (test (format #f "asb~{ ~}asd" '(1 2 3)) 'error) (test (format #f "asb~{ hiho~~~}asd" '(1 2 3)) 'error) (test (format #f "~{~A ~A ~}" '(1 "hi" 2)) 'error) (for-each (lambda (arg) (let ((result (catch #t (lambda () (format #f "~F" arg)) (lambda args 'error)))) (if (not (eq? result 'error)) (begin (display "(format #f \"~F\" ") (display arg) (display ") returned ") (display result) (display " but expected 'error") (newline))))) (list #\a '#(1 2 3) "hi" '() 'hi abs (lambda () 1) '#(()) (list 1 2 3) '(1 . 2))) (test (format #f "~D") 'error) ; (test (format () "hi") "hi") ; not sure this is a good idea )) (test (let "" 1) 'error) (test (let "hi" 1) 'error) (test (let #(1) 1) 'error) (test (let __hi__ #t) 'error) (test (let* hi () 1) 'error) (test (letrec (1 2) #t) 'error) (test (call/cc abs) 'error) (test (case #t ((1 2) (3 4)) -1) 'error) (test (quote . -1) 'error) (test (set! . -1) 'error) (test (and . #t) 'error) (test (and 1 . 2) 'error) (test (quote 1 1) 'error) (test (quote . 1) 'error) (test (quote . (1 2)) 'error) ;; I think these are correct, but they look odd (test (eq? (if #f #t) (if #f 3)) #t) (test (if . (1 2)) 2) (test (begin . (1 2)) 2) (test (cond . ((1 2) ((3 4)))) 2) (test (and . (1 2)) 2) (test (or . (1 2)) 1) ;; -------- (test (let ((!@$%^&*~|}{?><.,/`_-+=:! 1)) (+ !@$%^&*~|}{?><.,/`_-+=:! 1)) 2) (let ((d 3.14) (i 32) (r 2/3) (c 1.5+0.3i)) (let ((check-vals (lambda (name) (if (or (not (= d 3.14)) (not (= i 32)) (not (= r 2/3)) (not (= c 1.5+0.3i))) (begin (display name) (display " changed ") (if (not (= i 32)) (begin (display "stored integer to: ") (display i)) (if (not (= r 2/3)) (begin (display "stored ratio to: ") (display r)) (if (not (= d 3.14)) (begin (display "stored real to: ") (display d)) (begin (display "stored complex to: ") (display c))))) (display "?") (newline)))))) (for-each (lambda (op) (let ((x (catch #t (lambda () (op i)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op r)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op c)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op i d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op r d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op d d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op c d)) (lambda args 'error)))) (check-vals op))) (list number->string string->number make-rectangular magnitude abs exp make-polar angle sin cos tan sinh cosh tanh atan sqrt log asinh acosh atanh acos asin number? integer? real? complex? rational? even? odd? zero? positive? negative? real-part imag-part numerator denominator rationalize exact? inexact? exact->inexact inexact->exact floor ceiling truncate round logior logxor logand lognot ash integer-length + - * / quotient remainder expt = max min modulo < > <= >= lcm gcd )))) (if (and with-bignums with-bignum-function with-bigfloats) (begin (let ((d (bignum "3.14")) (i (bignum "32")) (r (bignum "2/3")) (c (bignum "1.5+0.3i"))) (let ((check-vals (lambda (name) (if (or (not (= d 3.14)) (not (= i 32)) (not (= r 2/3)) (not (= c 1.5+0.3i))) (begin (display name) (display " changed ") (if (not (= i 32)) (begin (display "stored integer to: ") (display i)) (if (not (= r 2/3)) (begin (display "stored ratio to: ") (display r)) (if (not (= d 3.14)) (begin (display "stored real to: ") (display d)) (begin (display "stored complex to: ") (display c))))) (display "?") (newline)))))) (for-each (lambda (op) (let ((x (catch #t (lambda () (op i)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op r)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op c)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op i d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op r d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op d d)) (lambda args 'error)))) (check-vals op)) (let ((x (catch #t (lambda () (op c d)) (lambda args 'error)))) (check-vals op))) (list number->string string->number make-rectangular magnitude abs exp make-polar angle sin cos tan sinh cosh tanh atan sqrt log asinh acosh atanh acos asin number? integer? real? complex? rational? even? odd? zero? positive? negative? real-part imag-part numerator denominator rationalize exact? inexact? exact->inexact inexact->exact floor ceiling truncate round logior logxor logand lognot ash integer-length + - * / quotient remainder expt = max min modulo < > <= >= lcm gcd )))) )) )) ;;; ---------------- ;;; Guile's reader can't handle these (test (char? '1e311) #f) (for-each (lambda (n) (let ((nb (catch #t (lambda () (number? n)) (lambda args 'error)))) (if (not nb) (begin (display "(number? ") (display n) (display ") returned #f?") (newline))))) (list '1e311 '1e-311 '0e311 '2.1e40000)) ;;; also (string->number "#e+i") throws an error in Guile, also "1e1111." ;;; ---------------- ;;; these might be "reader errors", so put them all here for convenience ;;; ideally they'd report the bad input, but allow us to continue, signalling ;;; a catchable error only if the bad stuff is accessed by the evaluator. ;;; The ones s7 can't handle gracefully are currently commented out with "";#;" ;;; (catch #t (lambda () (car '( . 1))) (lambda arg 'error)) ;;; Guile treats dot as a quasiquote subsidiary, I guess: ;;; guile> (. 1) ;;; 1 ;;; guile> '(. 1) ;;; 1 ;;; guile> ( . 1) ;;; 1 ;;; guile> . ;;; ERROR: Unbound variable: #{.}# ;;; ABORT: (unbound-variable) ;;; guile> (symbol? '.) ;;; #t ;;; guile> '(. (cons 1 2)) ;;; 2 ;;; guile> '(. (list 1 2 3)) ;;; 2 ;;; ;;; gosh> (. 1) ;;; *** READ-ERROR: Read error at "(stdin)":line 2: bad dot syntax ;(test (list #b) 'error) ;;; what # stuff is supported seems completely random: ;;; guile> #+ ;;; ERROR: In procedure scm_lreadr: ;;; ERROR: standard input:1:3: Unknown # object: #\+ ;;; ABORT: (read-error) ;;; guile> #* ;;; #* ;;; ;;; gosh> #* ;;; *** READ-ERROR: Read error at "(stdin)":line 2: unsupported #*-syntax: #* ; (test (char? #\spaces) 'error) ; (test (car '( . 1)) 'error) ; (test (car '(. )) 'error) ; (test (car '( . )) 'error) ; (test (car '(. . . )) 'error) ; (test '#( . 1) 'error) ; (test '(1 2 . ) 'error) ; (test '#(1 2 . ) 'error) ; (test (+ 1 . . ) 'error) ; (test (car '(1 . )) 'error) ; (test (car '(1 . . 2)) 'error) ; (test '#( . ) 'error) ; (test '#(1 . ) 'error) ; (test '#(. . . ) 'error) ; (test '#(1 . . 2) 'error) ; (test '(. 1) 'error) ; (test '#(. 1) 'error) ; (test '(. ) 'error) ; (test '#(. ) 'error) ; (test (list 1 . 2) 'error) ; (test (+ 1 . 2) 'error) ; (test (car '@#`') 'error) ; (test (list . ) 'error) ; (test '#( .) 'error) ; (test (car '( .)) 'error) ; (test '#(1 . 2) 'error) ; (test (let ((. 3)) .) 'error) ;;; ---------------- ;;; due primarily to stupidities on my part, the "expected" values are sometimes not more ;;; accurate than say 1e-7 or so (if (and (not (null? error-data)) with-error-data) (begin (if with-format (format #t "op~16Terror~44Ttest~76Tresult~115Texpected~%")) (for-each (lambda (op) (if with-format (format #t "~A: ~16T~A ~40T~A ~70T~A ~110T~A~%" (vector-ref op 0) (vector-ref op 1) (vector-ref op 2) (vector-ref op 3) (vector-ref op 4)) (begin (display op) (newline)))) error-data) (let ((data '((3.0 0.14159265358979323846 0.1411200080598672) (31.0 0.41592653589793238462 0.404037645323065) (314.0 0.15926535897932384626 0.1585929060285728) (3141.0 0.59265358979323846264 0.5585640372121817) (31415.0 0.92653589793238462643 0.7995441773754675) (314159.0 0.26535897932384626433 0.262255699519879) (3141592.0 0.65358979323846264338 0.6080402764374114) (31415926.0 0.53589793238462643383 0.5106132968486387) (314159265.0 0.35897932384626433832 0.3513188023745885) (3141592653.0 0.58979323846264338327 0.5561892044494355) (31415926535.0 0.89793238462643383279 0.7820399858427447) (314159265358.0 0.97932384626433832795 0.8301205477998297) (3141592653589.0 0.79323846264338327950 0.7126289202333107) (31415926535897.0 0.93238462643383279502 0.8030432710678118) (314159265358979.0 0.32384626433832795028 0.3182152351447919) (3141592653589793.0 0.23846264338327950288 0.2362090532517409) (31415926535897932.0 0.38462643383279502884 0.3752128900123344) (314159265358979323.0 0.84626433832795028841 0.7488096950162713) (3141592653589793238.0 0.46264338327950288419 0.4463151633593201) (31415926535897932384.0 0.62643383279502884197 0.5862594566145847) (314159265358979323846.0 0.26433832795028841971 0.2612706361296674) (3141592653589793238462.0 0.64338327950288419716 0.5999057324027754) (31415926535897932384626.0 0.43383279502884197169 0.4203516113275538) (314159265358979323846264.0 0.33832795028841971693 0.3319102940355321) (3141592653589793238462643.0 0.38327950288419716939 .3739640276557301))) (vals '()) (mx-sin-err 0.0)) (for-each (lambda (p) (let ((arg1 (car p)) (arg2 (cadr p)) (mxerr 0.0)) (do ((i 0 (+ i 1)) (x 0.0 (+ x .1))) ((= i 10)) (let ((err (abs (- (abs (sin (- arg1 x))) (abs (sin (+ arg2 x))))))) (if (> err mxerr) (set! mxerr err)))) (set! vals (cons mxerr vals)) (set! mx-sin-err (max mx-sin-err (abs (- (sin arg2) (caddr p))))))) data) (if (> mx-sin-err 1e-8) (begin (display "base sine seems inaccurate! error: ") (display mx-sin-err) (newline))) (set! vals (reverse vals)) (let ((stop #f)) (do ((i 0 (+ i 1))) ((or (number? stop) (= i (length vals)))) (if (> (list-ref vals i) 1e-6) (set! stop i))) (if (number? stop) (begin (display "sin error > 1e-6 after 2^") (display (/ (log (car (list-ref data stop))) (log 2.0))) (display " or thereabouts") (newline))))) (let ((data (list 2.71828182845904523536028747135266249775724709369995957 27.1828182845904523536028747135266249775724709369995957 271.828182845904523536028747135266249775724709369995957 2718.28182845904523536028747135266249775724709369995957 27182.8182845904523536028747135266249775724709369995957 271828.182845904523536028747135266249775724709369995957 2718281.82845904523536028747135266249775724709369995957 27182818.2845904523536028747135266249775724709369995957 271828182.845904523536028747135266249775724709369995957 2718281828.45904523536028747135266249775724709369995957 27182818284.5904523536028747135266249775724709369995957 271828182845.904523536028747135266249775724709369995957 2718281828459.04523536028747135266249775724709369995957 27182818284590.4523536028747135266249775724709369995957 271828182845904.523536028747135266249775724709369995957 2718281828459045.23536028747135266249775724709369995957 27182818284590452.3536028747135266249775724709369995957 271828182845904523.536028747135266249775724709369995957 2718281828459045235.36028747135266249775724709369995957 27182818284590452353.6028747135266249775724709369995957 271828182845904523536.028747135266249775724709369995957 2718281828459045235360.28747135266249775724709369995957 27182818284590452353602.8747135266249775724709369995957 271828182845904523536028.747135266249775724709369995957 2718281828459045235360287.47135266249775724709369995957 27182818284590452353602874.7135266249775724709369995957 271828182845904523536028747.135266249775724709369995957 2718281828459045235360287471.35266249775724709369995957 27182818284590452353602874713.5266249775724709369995957))) (let ((happy #t)) (do ((i 0 (+ i 1)) (dec 1.0 (* dec 10.0))) ((or (not happy) (= i (length data)))) (let ((val (exp (+ 1.0 (log dec))))) (let ((err (abs (- (list-ref data i) val)))) (if (> err 1e-6) (begin (set! happy #f) (display "exp+log error > 1e-6 around 2^") (display (/ (log val) (log 2))) (newline)))))))) (let ((data (list ; table[Tan[10^k], {k, 0, 30}] 1.55740772465490223050697480745836017308725077238152003838394660569886 0.64836082745908667125912493300980867681687434298372497563362796739585 -0.58721391515692907667780963564458789425876598687291954412663968360989 1.47032415570271844598020880490391856915748389146711182025455665358979 0.32097113462381472460896162480876337966088525010731594977977206336933 -0.03577166295289877341133054456893096203777589491986804979647879769616 -0.37362445398759902917349708857538141978530379801059302641978134928241 -0.46353082785018908581469758918080168755473695345937070670149218665289 -2.56377890672837725789840319603083470729708859667680805828679070820622 0.65145220214514128858645272422054798185112543058289784681820964602226 -0.55834963781124184656189340731863681858164809933060716499623295934358 2.50424481449822111118237373761381771825510968075886393173926375110559 -0.77230596813187614161063494471423746038444882506077057787558499031077 -0.30175082856983471199636858701688775346296430492149675721730025846251 0.21415652428250396225222102422385566728114779011753338339645623774420 -1.67241478212758304295552142696079055033040910554091189243737002950172 -1.24517343571840642168009129451609763781317676741030141327973693611564 0.52456243090255001593041672482494038697466467439258592602675334853162 -8.38854968059368800013526842602194492647448392917034135131083409265520 2.47279376584652736033818679563656602249667799226358809957010483326311 -0.84460246301988425418409323400055358116535547279258431245425813826798 -0.89552329255426546888442598272446987755918451773757800611680045521648 -1.62877822560689887854937593693954851354515116817021717086346127966844 -0.98333523138083649717001389546802280189805226009031609173028377317771 -11.87362630545544227571094967408372098364257316309876130680769667747893 1.11612596981774655887307362253927728556627435787456734029790793087502 -1.63758698713112186463163321344320618241852069893975176926240178134592 -1.03173363516910726343237554775898936974208941138122693037794681869065 6.35083773135836351463817396716338533781524290151157250457191403689220 -110.81342510911236031336859049236316125148742351166700266651506403034426 0.09048506806330217256622313805004127372738954023205417991033965089185))) (let ((happy #t)) (do ((i 0 (+ i 1)) (dec 1.0 (* dec 10.0))) ((or (not happy) (= i (length data)))) (let ((val (tan dec))) (let ((err (abs (- (list-ref data i) val))) (err1 (- (tan (+ 0.1 (* our-pi dec))) (tan 0.1))) (err2 (- (tan (+ 1.0 (* our-pi dec))) (tan 1.0)))) (if (or (> err 1e-6) (> err1 1e-6) (> err2 1e-6)) (begin (set! happy #f) (display "tan error > 1e-6 around 2^") (display (/ (log dec) (log 2))) (newline)))))))) ;; 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))) (catch #t (lambda () (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))))) (lambda args (display "expt no accurate below around 2^") (display (/ (log (expt .1 i)) (log 2))) (newline)))))) (let ((sin-err 0.0) (cos-err 0.0) (log-err 0.0) (asin-err 0.0) (atan-err 0.0) (sqrt-err 0.0)) ;; data generated by mathtool in the arprec package ;; another baddy: (tan 314159265358979323) should be -1.129792652308908544253650171110 (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)))) (set! sin-err mxerr))) (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)))) (set! cos-err mxerr))) (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)))) (set! log-err mxerr))) (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 (abs (- (asin x) (list-ref asins i))))) (if (> err mxerr) (set! mxerr err)))) (set! asin-err mxerr))) (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)))) (set! atan-err mxerr))) (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)))) (set! sqrt-err mxerr))) (if (> sin-err 1e-12) (begin (display "sin err: ") (display sin-err) (newline))) (if (> cos-err 1e-12) (begin (display "cos err: ") (display cos-err) (newline))) (if (> log-err 1e-12) (begin (display "log err: ") (display log-err) (newline))) (if (> asin-err 1e-12) (begin (display "asin err: ") (display asin-err) (newline))) (if (> atan-err 1e-12) (begin (display "atan err: ") (display atan-err) (newline))) (if (> sqrt-err 1e-12) (begin (display "sqrt err: ") (display sqrt-err) (newline))) ) )) '( ;;; this is the current s7 output from loading this file: " " (let ((funcs (make-vector 3 #f))) (do ((i 0 (+ i 1))) ((= i 3)) (vector-set! funcs i (lambda () (+ i 1)))) (+ ((vector-ref funcs 0)) ((vector-ref funcs 1)) ((vector-ref funcs 2)))) got 12 but expected 6 (let* ((x (quote (1 2 3))) (y (apply list x))) (not (eq? x y))) got #f but expected #t format #t 1 output-port: 2! (this is testing output ports) op error test result expected bes-i0: 4.728274528735e-07 (bes-i0 100.0) 1.0737511994318e+42 1.0737517071311e+42 *: 1.4453905801655e-16 (* 1234/11 1234/11 1+1i) 12584.760330579+12584.760330579i 12584.760330579+12584.760330579i +: 1.2356560980092e-17 (+ 1.234+1.234i -1+1i) 0.234+2.234i 0.234+2.234i -: 7.065416064077e-15 (- 1234/11 1234/11 -1+1i) 1-1i 1-1i /: 6.7706212385519e-12 (/ 1+1i 123.4 123.4) 6.5670402874788e-05+6.5670402874788e-05i 6.567040287e-05+6.567040287e-05i magnitude: 4.3762690498963e-15 (magnitude 1e-08+1e-08i) 1.4142135623731e-08 1.414214e-08 angle: 5.2180482157382e-15 (angle 3.1415926535898+1i) 0.30816907111599 0.30816907111598 make-polar: 5.1075947370453e-12 (make-polar 1e-08 1234.0) -7.9855062358758e-09+6.019276547625e-09i -7.98551e-09+6.01928e-09i remainder: 1.1102230246252e-16 (remainder -3.1 2.5) -0.6 -0.6 modulo: 1.1102230246252e-16 (modulo -3.1 2.0) 0.9 0.9 expt: 5.3037918931232e-12 (expt -1234-2.718281828459i -1-1e-08i) -0.00081036881365486+1.7851555921329e-06i -0.00081036881365+1.78515559e-06i log: 1.9801079834368e-14 (log 8.0 1+1i) 0.97790391649038-2.2161063668189i 0.97790391649038-2.2161063668189i exp: 6.2082941131998e-11 (exp 2.718281828459+1234000000i) 2.4081506430049-14.961700256459i 2.4081506420759-14.961700256608i sqrt: 4.9628289840723e-12 (sqrt 1e-08+1e-08i) 0.00010986841134678+4.5508986056223e-05i 0.00010986841135+4.550898606e-05i atanh: 3.3019134302818e-14 (atanh 1e-08+1e-08i) 9.9999999669809e-09+1e-08i 1e-08+1e-08i acosh: 3.0063814632876e-11 (acosh 0-1234i) 7.8111635492012-1.5707963267949i 7.8111635489617-1.5707963267949i asinh: 1.8798350372034e-07 (asinh -181440) -12.801827480089 -12.801829886622 tanh: 3.9570983863574e-10 (tanh 1e-08+1234000000i) 3.9600648213873e-07-6.2129419934418i 3.9600648244422e-07-6.2129419959003i cosh: 3.8571780349279e-10 (cosh 1e-08+1234000000i) 0.15890913095152-9.8729321283003e-09i 0.15890913089022-9.8729321283989e-09i sinh: 6.1863103554352e-11 (sinh 3.1415926535898+1234000000i) 1.8352001348474-11.444656792365i 1.8352001341396-11.44465679248i atan: 1.6781042865365e-14 (atan 0+1e-08i) 0+1.0000000016781e-08i 0+1e-08i acos: 1.8259451651704e-08 (acos 181440) -0+12.801827480074i 0+12.80182724632i asin: 6.2060307610322e-09 (asin 1e-08+1234000000i) 8.1037277147488e-18+21.62667394299i 8.1037250521496e-18+21.626673808774i tan: 4.2096697956986e-07 (tan 1234000000/3) -18.780955178921 -18.780947272762 cos: 2.2319583216357e-08 (cos 1234000000/3) -0.053170110875237 -0.05317013319482 sin: 1.1884160322495e-09 (sin 1234000000/3) 0.99858546920607 0.99858546801766 string->number: 3.514766724748e-14 (string->number "1234567890123456789012345678901234567890.123456789e-30") 1234567890.1235 1234567890.1235 sin error > 1e-6 after 2^38.192705173229 or thereabouts exp+log error > 1e-6 around 2^31.340047894875 tan error > 1e-6 around 2^46.506993328423 expt error > 1e-6 around 2^-46.506993328423 ) (if with-the-bug-finding-machine (let ((tries (if (integer? with-the-bug-finding-machine) with-the-bug-finding-machine 10000)) (err-max 1e-12) (err-max-12 1e-15) (expt-max (if with-bignums 100 31))) ; 63 is fine ;;; -------------------------------------------------------------------------------- ;;; these are for testing the logical funcs -- taken from slib ;; "logical.scm", bit access and operations for integers for Scheme ;; Copyright (C) 1991, 1993, 2001, 2003 Aubrey Jaffer ;; ;;Permission to copy this software, to modify it, to redistribute it, ;;to distribute modified versions, and to use it for any purpose is ;;granted, subject to the following restrictions and understandings. ;; ;;1. Any copy made of this software must include this copyright notice ;;in full. ;; ;;2. I have made no warranty or representation that the operation of ;;this software will be error-free, and I am under no obligation to ;;provide any services, by way of maintenance, update, or otherwise. ;; ;;3. In conjunction with products arising from the use of this ;;material, there shall be no use of my name in any advertising, ;;promotional, or sales literature without prior written consent in ;;each case. (define logical:integer-expt (if (provided? 'inexact) expt (lambda (n k) (do ((x n (* x x)) (j k (quotient j 2)) (acc 1 (if (even? j) acc (* x acc)))) ((<= j 1) (case j ((0) acc) ((1) (* x acc)) (else (slib:error 'integer-expt n k)))))))) (define logical:boole-xor '#(#(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) #(1 0 3 2 5 4 7 6 9 8 11 10 13 12 15 14) #(2 3 0 1 6 7 4 5 10 11 8 9 14 15 12 13) #(3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12) #(4 5 6 7 0 1 2 3 12 13 14 15 8 9 10 11) #(5 4 7 6 1 0 3 2 13 12 15 14 9 8 11 10) #(6 7 4 5 2 3 0 1 14 15 12 13 10 11 8 9) #(7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8) #(8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7) #(9 8 11 10 13 12 15 14 1 0 3 2 5 4 7 6) #(10 11 8 9 14 15 12 13 2 3 0 1 6 7 4 5) #(11 10 9 8 15 14 13 12 3 2 1 0 7 6 5 4) #(12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3) #(13 12 15 14 9 8 11 10 5 4 7 6 1 0 3 2) #(14 15 12 13 10 11 8 9 6 7 4 5 2 3 0 1) #(15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0))) (define logical:boole-and '#(#(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 0 2 2 0 0 2 2 0 0 2 2 0 0 2 2) #(0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3) #(0 0 0 0 4 4 4 4 0 0 0 0 4 4 4 4) #(0 1 0 1 4 5 4 5 0 1 0 1 4 5 4 5) #(0 0 2 2 4 4 6 6 0 0 2 2 4 4 6 6) #(0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7) #(0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8) #(0 1 0 1 0 1 0 1 8 9 8 9 8 9 8 9) #(0 0 2 2 0 0 2 2 8 8 10 10 8 8 10 10) #(0 1 2 3 0 1 2 3 8 9 10 11 8 9 10 11) #(0 0 0 0 4 4 4 4 8 8 8 8 12 12 12 12) #(0 1 0 1 4 5 4 5 8 9 8 9 12 13 12 13) #(0 0 2 2 4 4 6 6 8 8 10 10 12 12 14 14) #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15))) (define (logical:ash-4 x) (if (negative? x) (+ -1 (quotient (+ 1 x) 16)) (quotient x 16))) (define logical:logand (letrec ((lgand (lambda (n2 n1 scl acc) (cond ((= n1 n2) (+ acc (* scl n1))) ((zero? n2) acc) ((zero? n1) acc) (else (lgand (logical:ash-4 n2) (logical:ash-4 n1) (* 16 scl) (+ (* (vector-ref (vector-ref logical:boole-and (modulo n1 16)) (modulo n2 16)) scl) acc))))))) (lambda (n1 n2) (lgand n2 n1 1 0)))) (define logical:logior (letrec ((lgior (lambda (n2 n1 scl acc) (cond ((= n1 n2) (+ acc (* scl n1))) ((zero? n2) (+ acc (* scl n1))) ((zero? n1) (+ acc (* scl n2))) (else (lgior (logical:ash-4 n2) (logical:ash-4 n1) (* 16 scl) (+ (* (- 15 (vector-ref (vector-ref logical:boole-and (- 15 (modulo n1 16))) (- 15 (modulo n2 16)))) scl) acc))))))) (lambda (n1 n2) (lgior n2 n1 1 0)))) (define logical:logxor (letrec ((lgxor (lambda (n2 n1 scl acc) (cond ((= n1 n2) acc) ((zero? n2) (+ acc (* scl n1))) ((zero? n1) (+ acc (* scl n2))) (else (lgxor (logical:ash-4 n2) (logical:ash-4 n1) (* 16 scl) (+ (* (vector-ref (vector-ref logical:boole-xor (modulo n1 16)) (modulo n2 16)) scl) acc))))))) (lambda (n1 n2) (lgxor n2 n1 1 0)))) (define (logical:lognot n) (- -1 n)) (define (logical:ash n count) (if (negative? count) (let ((k (logical:integer-expt 2 (- count)))) (if (negative? n) (+ -1 (quotient (+ 1 n) k)) (quotient n k))) (* (logical:integer-expt 2 count) n))) (define logical:integer-length (letrec ((intlen (lambda (n tot) (case n ((0 -1) (+ 0 tot)) ((1 -2) (+ 1 tot)) ((2 3 -3 -4) (+ 2 tot)) ((4 5 6 7 -5 -6 -7 -8) (+ 3 tot)) (else (intlen (logical:ash-4 n) (+ 4 tot))))))) (lambda (n) (intlen n 0)))) ;; -------------------------------------------------------------------------------- ;; end of slib borrowings ;; -------------------------------------------------------------------------------- (if (and (provided? 's7) (defined? 'current-time) (defined? 'mus-rand-seed)) (set! (mus-rand-seed) (current-time))) (format #t "the bug machine is running...") (letrec ((distance (lambda (a b) (magnitude (- a b)) ;; (magnitude (- (exact->inexact a) (exact->inexact b))) )) (choose-number (lambda () (let ((choice (random 4)) (num1 (random (inexact->exact (floor (expt 2 expt-max))))) (num2 (random (inexact->exact (floor (expt 2 expt-max)))))) (if (> (random 1.0) 0.5) (set! num1 (- num1))) (if (> (random 1.0) 0.5) (set! num2 (- num2))) (list (case choice ((0) num1) ((1) (/ num1 (if (= num2 0) 1 num2))) ((2) (if (not (= num2 0)) (exact->inexact (/ num1 num2)) (* .01 num1))) ((3) (make-rectangular (* (random 1.0) num1) (* (random 1.0) num2)))))))) (choose-real (lambda () (let ((choice (random 3)) (num1 (random (expt 2 expt-max))) (num2 (random (expt 2 expt-max)))) (if (> (random 1.0) 0.5) (set! num1 (- num1))) (if (> (random 1.0) 0.5) (set! num2 (- num2))) (list (case choice ((0) num1) ((1) (/ num1 (if (= num2 0) 1 num2))) ((2) (if (not (= num2 0)) (exact->inexact (/ num1 num2)) (* .01 num1)))))))) (choose-rational (lambda () (let ((choice (random 2)) (num1 (random (inexact->exact (floor (expt 2 expt-max))))) (num2 (inexact->exact (floor (random (expt 2 expt-max)))))) (if (> (random 1.0) 0.5) (set! num1 (- num1))) (if (> (random 1.0) 0.5) (set! num2 (- num2))) (list (case choice ((0) num1) ((1) (/ num1 (if (= num2 0) 1 num2)))))))) (choose-integer (lambda () (list (random (inexact->exact (floor (expt 2 31))))))) (choose-number-small-imag (lambda () (let ((choice (random 4)) (num1 (random (inexact->exact (floor (expt 2 31))))) (num2 (random (inexact->exact (floor (expt 2 31)))))) (if (> (random 1.0) 0.5) (set! num1 (- num1))) (if (> (random 1.0) 0.5) (set! num2 (- num2))) (list (case choice ((0) num1) ((1) (/ num1 (if (= num2 0) 1 num2))) ((2) (if (not (= num2 0)) (exact->inexact (/ num1 num2)) (* .01 num1))) ((3) (make-rectangular (* (random 1.0) num1) (- (random 10.0) 5.0)))))))) (choose-number-small-real (lambda () (let ((choice (random 4)) (num1 (random 10.0)) (num2 (random 1000.0))) (if (> (random 1.0) 0.5) (set! num1 (- num1))) (if (> (random 1.0) 0.5) (set! num2 (- num2))) (list (case choice ((0) (floor num1)) ((1) (/ (floor num1) (max 1 (floor num2)))) ((2) num1) ((3) (make-rectangular (- (random 10.0) 5.0) (* (random 1.0) num1)))))))) (choose-small-number (lambda () (let ((choice (random 4)) (num1 (random 10.0)) (num2 (random 10.0))) (if (> (random 1.0) 0.5) (set! num1 (- num1))) (list (case choice ((0) (floor num1)) ((1) (/ (floor num1) (max 1 (floor num2)))) ((2) num1) ((3) (make-rectangular (- (random 10.0) 5.0) (* (random 1.0) num1)))))))) (choose-n-numbers (lambda () (let ((n (max 1 (random 20))) (args '())) (do ((i 0 (+ i 1))) ((= i n) args) (set! args (cons (car (choose-number)) args)))))) (choose-n-real-numbers (lambda () (let ((n (max 1 (random 20))) (args '())) (do ((i 0 (+ i 1))) ((= i n) args) (set! args (cons (car (choose-real)) args)))))) (choose-2-or-more-real-numbers (lambda () (let ((n (max 2 (random 20))) (args '())) (do ((i 0 (+ i 1))) ((= i n) args) (set! args (cons (car (choose-real)) args)))))) (choose-n-small-numbers (lambda () (let ((n (max 1 (random 20))) (args '())) (do ((i 0 (+ i 1))) ((= i n) args) (set! args (cons (car (choose-small-number)) args)))))) (ok-real-keep-type (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (real? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (or (and (integer? n) (not (integer? v))) (and (rational? n) (not (rational? v))) (not (real? v)) (not (tst n v))) (format #t "(~A ~A) -> ~A~%" op n v)))))) (ok-number-to-real (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (number? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (or (not (real? v)) (not (tst n v))) (format #t "(~A ~A) -> ~A~%" op n v)))))) (ok-rational (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (rational? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (not (tst n v)) (format #t "(~A ~A) -> ~A~%" op n v)))))) (ok-number (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (number? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (not (tst n v)) (format #t "(~A ~A) -> ~A~%" op n v)))))) (ok-two-numbers (lambda (op nlst v tst) (let ((n1 (car nlst)) (n2 (cadr nlst))) (if (or (not (number? n1)) (not (number? n2))) (if (not (eq? v 'error)) (format #t "(~A ~A ~A) -> ~A~%" op n1 n2 v)) (if (not (tst n1 n2 v)) (format #t "(~A ~A ~A) -> ~A~%" op n1 n2 v)))))) (ok-number-to-bool (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (number? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (or (not (boolean? v)) (not (tst n v))) (format #t "(~A ~A) -> ~A~%" op n v)))))) (ok-real-to-bool (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (real? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (or (not (boolean? v)) (not (tst n v))) (format #t "(~A ~A) -> ~A~%" op n v)))))) (ok-integer-to-bool (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (integer? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (or (not (boolean? v)) (not (tst n v))) (format #t "(~A ~A) -> ~A~%" op n v)))))) (ok-string-to-number (lambda (op nlst v tst) (let ((n (car nlst))) (if (not (number? n)) (if (not (eq? v 'error)) (format #t "(~A ~A) -> ~A~%" op n v)) (if (or (not (string? v)) (not (tst n v))) (format #t "(~A ~A) -> ~A~%" op n v)))))) (choose-char (lambda () (list (integer->char (random 128))))) (choose-non-null-char (lambda () (list (integer->char (max 1 (random 128)))))) (choose-2-or-more-chars (lambda () (let ((n (if with-char-ops-with-more-than-2-args (max 2 (random 20)) 2)) (args '())) (do ((i 0 (+ i 1))) ((= i n) args) (set! args (cons (car (choose-char)) args)))))) (choose-string (lambda () (let* ((strlen (random 20)) (str (make-string strlen))) (do ((i 0 (+ i 1))) ((= i strlen)) (string-set! str i (integer->char (+ 40 (random 80))))) ;(max 1 (random 128))))) (list str)))) (choose-non-null-string (lambda () (let* ((strlen (+ 1 (random 20))) (str (make-string strlen))) (do ((i 0 (+ i 1))) ((= i strlen)) (string-set! str i (integer->char (+ 40 (random 80))))) ;(max 1 (random 128))))) (list str)))) (choose-2-or-more-strings (lambda () (let ((n (if with-string-ops-with-more-than-2-args (max 2 (random 20)) 2)) (args '())) (do ((i 0 (+ i 1))) ((= i n) args) (set! args (cons (car (choose-string)) args)))))) (choose-vector (lambda (ctr) (if (> ctr 3) (list 1) (let* ((len (+ 1 (random (inexact->exact (floor (/ 10 (+ ctr 1))))))) (v (make-vector len))) (do ((i 0 (+ i 1))) ((= i len)) (vector-set! v i (car (choose-any (+ ctr 1))))) (list v))))) (choose-list (lambda (ctr) (if (> ctr 6) (list (list 1)) (let ((len (random (inexact->exact (floor (/ 20 (+ ctr 1)))))) (lst '())) (do ((i 0 (+ i 1))) ((= i len)) (set! lst (cons (car (choose-any (+ ctr 1))) lst))) (list lst))))) (choose-non-null-list (lambda (ctr) (let ((val (car (choose-list ctr)))) (if (null? val) (list (list val)) (list val))))) (choose-alist (lambda (type) (let ((dotted (> (random 1.0) 0.5)) (len (+ 1 (random 10))) (key (car (if (eq? type 'eq?) (choose-boolean) (if (eq? type 'eqv?) (choose-any 3) (choose-any 6)))))) (let ((lst '()) (keyset #f)) (do ((i 0 (+ i 1))) ((= i len)) (if (and (not keyset) (> (random 1.0) 0.75)) (begin (set! keyset #t) (set! lst (cons ((if dotted cons list) key key) lst))) (set! lst (cons ((if dotted cons list) (car (choose-any 3)) (car (choose-any 3))) lst)))) (list key (reverse lst)))))) (choose-mlist (lambda (type) (let ((len (+ 1 (random 10))) (key (car (if (eq? type 'eq?) (choose-boolean) (if (eq? type 'eqv?) (choose-any 3) (choose-any 6)))))) (let ((lst '()) (keyset #f)) (do ((i 0 (+ i 1))) ((= i len)) (if (and (not keyset) (> (random 1.0) 0.75)) (begin (set! keyset #t) (set! lst (cons key lst))) (set! lst (cons (car (choose-any 3)) lst)))) (list key (reverse lst)))))) (choose-boolean (lambda () (list (case (random 4) ((0) #f) ((1) #t) (else 'hi))))) (choose-any (lambda (ctr) (let ((type (random (if (= ctr 0) 6 (if (= ctr 1) 5 (if (= ctr 2) 4 3)))))) (case type ((0) (choose-number)) ((1) (choose-char)) ((2) (choose-string)) ((3) (choose-list (+ ctr 1))) ((4) (choose-vector (+ ctr 1))) (else (choose-boolean)))))) ) (let ((ops (list ;; -------- numbers -------------------------------- (list abs (lambda (nlst v) (ok-real-keep-type 'abs nlst v (lambda (n v) (= v (if (< n 0) (- n) n))))) choose-real) (list angle (lambda (nlst v) (ok-number 'angle nlst v (lambda (n v) (let ((val (make-polar (magnitude n) v))) (< (distance val n) 1e-5))))) choose-number) (list magnitude (lambda (nlst v) (ok-number 'magnitude nlst v (lambda (n v) (let ((val (make-polar v (angle n)))) (< (distance val n) 1e-5))))) choose-number) (list real-part (lambda (nlst v) (ok-number-to-real 'real-part nlst v (lambda (n v) (let ((val (make-rectangular v (imag-part n)))) (< (distance val n) 1e-5))))) choose-number) (list imag-part (lambda (nlst v) (ok-number-to-real 'imag-part nlst v (lambda (n v) (let ((val (make-rectangular (real-part n) v))) (< (distance val n) 1e-5))))) choose-number) (list numerator (lambda (nlst v) (ok-rational 'numerator nlst v (lambda (n v) (if (integer? n) (= n v) (= v (* n (denominator n))))))) choose-rational) (list denominator (lambda (nlst v) (ok-rational 'denominator nlst v (lambda (n v) (if (integer? n) (= v 1) (= v (/ (numerator n) n)))))) choose-rational) (list zero? (lambda (nlst v) (ok-number-to-bool 'zero? nlst v (lambda (n v) (or (and (= n 0) v) (and (not (= n 0)) (not v)))))) choose-number) (list positive? (lambda (nlst v) (ok-real-to-bool 'positive? nlst v (lambda (n v) (or (and (> n 0) v) (and (<= n 0) (not v)))))) choose-real) (list negative? (lambda (nlst v) (ok-real-to-bool 'negative? nlst v (lambda (n v) (or (and (< n 0) v) (and (>= n 0) (not v)))))) choose-real) (list even? (lambda (nlst v) (ok-integer-to-bool 'even? nlst v (lambda (n v) (or (and (= (modulo n 2) 0) v) (and (not (= (modulo n 2) 0)) (not v)))))) choose-integer) (list odd? (lambda (nlst v) (ok-integer-to-bool 'odd? nlst v (lambda (n v) (or (and (= (modulo n 2) 1) v) (and (not (= (modulo n 2) 1)) (not v)))))) choose-integer) (list exact? (lambda (nlst v) (ok-number-to-bool 'exact? nlst v (lambda (n v) (let* ((str (number->string n)) (dotted #f) (len (string-length str))) (do ((i 0 (+ i 1))) ((or dotted (= i len))) (set! dotted (char=? #\. (string-ref str i)))) (if (not (provided? 's7)) (eq? v (not dotted)) (eq? v (and (real? n) (not dotted)))))))) choose-number) (list inexact? (lambda (nlst v) (ok-number-to-bool 'inexact? nlst v (lambda (n v) (let* ((str (number->string n)) (dotted #f) (len (string-length str))) (do ((i 0 (+ i 1))) ((or dotted (= i len))) (set! dotted (char=? #\. (string-ref str i)))) (if (not (provided? 's7)) (eq? v dotted) (eq? v (or (not (real? n)) dotted))))))) choose-number) (list sin (lambda (nlst v) (ok-number 'sin nlst v (lambda (n v) (let ((a (cos n))) (and (< (min (distance v (sqrt (- 1 (* a a)))) (distance v (- (sqrt (- 1 (* a a)))))) err-max) (< (distance (- v) (sin (- n))) err-max) (< (distance v (- (* 3 (sin (/ n 3))) (* 4 (expt (sin (/ n 3)) 3)))) 1e-4)))))) choose-number-small-imag) (list cos (lambda (nlst v) (ok-number 'cos nlst v (lambda (n v) (let ((a (sin n))) (and (< (min (distance v (sqrt (- 1 (* a a)))) (distance v (- (sqrt (- 1 (* a a)))))) err-max) (< (distance v (cos (- n))) err-max) (< (distance v (- (* 4 (expt (cos (/ n 3)) 3)) (* 3 (cos (/ n 3))))) 1e-4)))))) choose-number-small-imag) (list asin (lambda (nlst v) (let ((asin-taylor (lambda (x) (+ x (* 1/6 x x x) (* 3/40 x x x x x) (* 5/112 (expt x 7)) (* 35/1152 (expt x 9)) (* 63/2816 (expt x 11)) (* 231/13312 (expt x 13)) (* 143/10240 (expt x 15)) (* 6435/557056 (expt x 17)) (* 12155/1245184 (expt x 19)))))) (ok-number 'asin nlst v (lambda (n v) (let ((a (sin v))) ;(format #t "[~A ~A ~A -> ~A]~%" n v a (min (magnitude (- a n)) (magnitude (+ a n)))) (and (< (/ (min (distance a n) (distance a (- n))) (max 0.001 (magnitude n))) 1e-2) (< (distance (asin (- n)) (- v)) 1e-6) (or (> (magnitude n) 0.1) (let ((val (asin-taylor (exact->inexact n)))) (< (min (distance val v) (distance val (- v))) 1e-6))))))))) choose-small-number) (list acos (lambda (nlst v) (let ((acos-taylor (lambda (x) (- (/ our-pi 2) x (* 1/6 x x x) (* 3/40 x x x x x) (* 5/112 (expt x 7)) (* 35/1152 (expt x 9)) (* 63/2816 (expt x 11)) (* 231/13312 (expt x 13)) (* 143/10240 (expt x 15)) (* 6435/557056 (expt x 17)) (* 12155/1245184 (expt x 19)))))) (ok-number 'acos nlst v (lambda (n v) (let ((a (cos v))) ;(format #t "[~A ~A ~A -> ~A]~%" n v a (min (magnitude (- a n)) (magnitude (+ a n)))) (and (< (/ (min (distance a n) (distance a (- n))) (max 0.001 (magnitude n))) 1e-2) (or (> (magnitude n) 0.1) (let ((val (acos-taylor (exact->inexact n)))) (< (min (distance val v) (distance val (- v))) 1e-6))))))))) choose-small-number) (list integer? (lambda (nlst v) (ok-number-to-bool 'integer? nlst v (lambda (n v) (eq? v (and (zero? (imag-part n)) (rational? n) (= n (inexact->exact n)) (= (denominator n) 1) ;; good grief... (let* ((str (number->string n)) (dotted #f) (unzero-after-dot #f) (len (string-length str))) (do ((i 0 (+ i 1))) ((or unzero-after-dot (= i len))) (if (not dotted) (set! dotted (char=? #\. (string-ref str i))) (set! unzero-after-dot (not (char=? #\0 (string-ref str i)))))) (not unzero-after-dot))))))) choose-number) (list rational? (lambda (nlst v) (ok-number-to-bool 'rational? nlst v (lambda (n v) (if with-generic-modulo (eq? v (exact? n)) (eq? v (real? n)))))) choose-number) (list real? (lambda (nlst v) (ok-number-to-bool 'real? nlst v (lambda (n v) (eq? v (zero? (imag-part n)))))) choose-number) (list complex? (lambda (nlst v) (ok-number-to-bool 'complex? nlst v (lambda (n v) (eq? v (number? n))))) choose-number) (list sqrt (lambda (nlst v) (ok-number 'sqrt nlst v (lambda (n v) (let ((a (* v v))) (and (< (magnitude (- a n)) 1e-6) (< (distance (expt n 1/2) v) 1e-6) (< (/ (distance (* n v) (expt n 3/2)) (max 1 (magnitude n))) 1e-6)))))) choose-number) (list exp (lambda (nlst v) (ok-number 'exp nlst v (lambda (n v) (let ((a (log v))) (and (< (min (distance a n) (distance (make-rectangular (real-part a) (+ (imag-part a) (* 2 our-pi))) n) (distance (make-rectangular (real-part a) (- (imag-part a) (* 2 our-pi))) n) (distance (make-rectangular (real-part a) (+ (imag-part a) (* 4 our-pi))) n) (distance (make-rectangular (real-part a) (- (imag-part a) (* 4 our-pi))) n)) err-max) (< (distance (/ (exp n) (exp 2.8125)) (exp (- n 2.8125))) err-max) (< (distance (* (exp n) (exp (- n))) 1.0) err-max)))))) choose-number-small-real) (list log (lambda (nlst v) (ok-number 'log nlst v (lambda (n v) (let ((a (exp v))) (and (< (distance a n) 1e-4) (or (complex? n) (negative? n) ; avoid the 2*pi = 1 business (< (distance v (- (log (/ (* 17 n) 16)) (log (/ 17 16)))) 1e-4) (< (distance (* 2 v) (log (* n n))) 1e-4) (< (distance (- v) (log (/ 1 n))) 1e-4))))))) (lambda () (let ((val (car (choose-number)))) (list (if (zero? val) 1.0 val))))) (list tan (lambda (nlst v) (ok-number 'tan nlst v (lambda (n v) (let ((a (/ (sin n) (cos n)))) ;; this division is a problem! (and (< (/ (distance a v) (magnitude n)) err-max) (< (distance v (/ (* 2 (tan (/ n 2))) (- 1 (expt (tan (/ n 2)) 2)))) 1e-4)))))) (lambda () (let ((val (car (choose-number-small-imag)))) (list (if (zero? (cos val)) 1.0 val))))) (list atan (lambda (nlst v) (let ((atan-taylor (lambda (x) (let ((val x)) (do ((i 3 (+ i 2)) (sign -1 (- sign))) ((>= i 100) val) (set! val (+ val (/ (* sign (expt x i)) i)))))))) (ok-number 'atan nlst v (lambda (n v) (let ((a (tan v))) (and (< (min (distance a n) (distance a (- n))) err-max) (< (distance (- v) (atan (- n))) 1e-6) (or (> (magnitude n) .5) (< (distance v (atan-taylor (exact->inexact n))) 1e-6)))))))) choose-number-small-real) (list floor (lambda (nlst v) (ok-number 'floor nlst v (lambda (n v) (and (rational? v) (>= (- n v) 0) (< (- n v) 1.0))))) choose-real) (list ceiling (lambda (nlst v) (ok-number 'ceiling nlst v (lambda (n v) (and (rational? v) (<= (- n v) 0) (< (- v n) 1.0))))) choose-real) (list round (lambda (nlst v) (ok-number 'round nlst v (lambda (n v) (and (rational? v) (<= (abs (- n v)) 0.5))))) choose-real) (list truncate (lambda (nlst v) (ok-number 'truncate nlst v (lambda (n v) (and (rational? v) (< (abs (- n v)) 1.0))))) choose-real) ;; -------- hyperbolics -------------------------------- (if with-hyperbolic-functions (list sinh (lambda (nlst v) (let ((sinh-taylor (lambda (x) (+ x (* 1/6 (expt x 3)) (* 1/120 (expt x 5)) (* 1/5040 (expt x 7)) (* 1/362880 (expt x 9)) (* 1/39916800 (expt x 11)) (* 1/6227020800 (expt x 13)))))) (ok-number 'sinh nlst v (lambda (n v) (let ((a (- (* 0.0+1.0i (sin (* 0.0+1.0i n)))))) (and (< (distance a v) err-max) (or (> (magnitude n) 1.0) (< (distance (sinh-taylor (exact->inexact n)) v) 1e-4)))))))) choose-number-small-real) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-hyperbolic-functions (list cosh (lambda (nlst v) (let ((cosh-taylor (lambda (x) (+ 1 (* 1/2 x x) (* 1/24 (expt x 4)) (* 1/720 (expt x 6)) (* 1/40320 (expt x 8)) (* 1/362880 (expt x 10)) (* 1/479001600 (expt x 12)))))) (ok-number 'cosh nlst v (lambda (n v) (let ((a (cos (* 0.0+1.0i n)))) (and (< (distance a v) err-max) (or (> (magnitude n) 1.0) (< (distance (cosh-taylor (exact->inexact n)) v) 1e-4)))))))) choose-number-small-real) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-hyperbolic-functions (list asinh (lambda (nlst v) (ok-number 'asinh nlst v (lambda (n v) (let ((a (sinh v))) (< (distance a n) err-max))))) choose-small-number) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-hyperbolic-functions (list acosh (lambda (nlst v) (ok-number 'acosh nlst v (lambda (n v) (let ((a (cosh v))) (< (distance a n) err-max))))) choose-small-number) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-hyperbolic-functions (list tanh (lambda (nlst v) (ok-number 'tanh nlst v (lambda (n v) (let ((a (/ (sinh n) (cosh n)))) (< (distance a v) err-max))))) choose-small-number) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-hyperbolic-functions (list atanh (lambda (nlst v) (ok-number 'atanh nlst v (lambda (n v) (let ((a (tanh v))) (< (distance a n) err-max))))) choose-small-number) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) ;; ------------------------------------------------ (list make-polar (lambda (nlst v) (ok-two-numbers 'make-polar nlst v (lambda (n1 n2 v) (if (>= (/ (distance (* n1 (exp (* 0.0+1.0i n2))) v) (max .001 (magnitude n1))) err-max) (format #t "(make-polar ~A ~A) -> ~A (~A, ~A)~%" n1 n2 v (* n1 (exp (* 0.0+1.0i n2))) (/ (distance (* n1 (exp (* 0.0+1.0i n2))) v) (max .001 (magnitude n1))))) (< (/ (distance (* n1 (exp (* 0.0+1.0i n2))) v) (max .001 (magnitude n1))) err-max)))) (lambda () (list (car (choose-real)) (car (choose-real))))) (list make-rectangular (lambda (nlst v) (ok-two-numbers 'make-rectangular nlst v (lambda (n1 n2 v) (< (/ (distance (+ n1 (* 0.0+1.0i n2)) v) (max .001 (magnitude n1))) err-max)))) (lambda () (list (car (choose-real)) (car (choose-real))))) (list modulo (lambda (nlst v) (ok-two-numbers 'modulo nlst v (lambda (n1 n2 v) (let ((a (- n1 (* n2 (floor (/ n1 n2)))))) (= a v))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (let ((val (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)))) (if (zero? val) 1 val))))) (list remainder (lambda (nlst v) (ok-two-numbers 'remainder nlst v (lambda (n1 n2 v) (let ((a (- n1 (* n2 (quotient n1 n2))))) (= a v))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (let ((val (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)))) (if (zero? val) 1 val))))) (list quotient (lambda (nlst v) (ok-two-numbers 'quotient nlst v (lambda (n1 n2 v) (let ((a (truncate (/ n1 n2)))) (= a v))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (let ((val (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)))) (if (zero? val) 1 val))))) (if with-rationalize (list rationalize (lambda (nlst v) (ok-two-numbers 'rationalize nlst v (lambda (n1 n2 v) ; (rationalize n1 n2) -> v (and (rational? v) (< (abs (- v n1)) n2) (let ((rat (lambda (ux err) (let ((x0 (- ux err)) (x1 (+ ux err))) (let ((i (inexact->exact (ceiling x0))) (i0 (inexact->exact (floor x0))) (i1 (inexact->exact (ceiling x1))) (r 0)) (if (>= err 1.0) (if (< x0 0.0) (if (< x1 0.0) (inexact->exact (floor x1)) 0) i) (if (>= x1 i) (if (>= i 0) i (inexact->exact (floor x1))) (do ((p0 i0 (+ p1 (* r p0))) (q0 1 (+ q1 (* r q0))) (p1 i1 p0) (q1 1 q0) (e0 (- i1 x0) e1p) (e1 (- x0 i0) (- e0p (* r e1p))) (e0p (- i1 x1) e1) (e1p (- x1 i0) (- e0 (* r e1)))) ((<= x0 (/ p0 q0) x1) (/ p0 q0)) (set! r (min (inexact->exact (floor (/ e0 e1))) (inexact->exact (ceiling (/ e0p e1p))))))))))))) (let ((v1 (rat n1 n2))) (= v1 v))))))) (lambda () (list (car (choose-real)) (max 0.000001 (random .1))))) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (list number->string (lambda (nlst v) (ok-string-to-number 'number->string nlst v (lambda (n v) (< (distance n (string->number v)) 1e-4)))) choose-number) (list exact->inexact (lambda (nlst v) (ok-number 'exact->inexact nlst v (lambda (n v) (and (< (abs (- n v)) 1e-11) (inexact? v))))) choose-rational) (list inexact->exact (lambda (nlst v) (ok-number 'inexact->exact nlst v (lambda (n v) (and (< (abs (- n v)) 1e-11) (exact? v))))) choose-real) (list gcd (lambda (nlst v) (ok-two-numbers 'gcd nlst v (lambda (n1 n2 v) (and (integer? (/ n1 v)) (integer? (/ n2 v)) (positive? v) (= (abs (lcm n1 n2)) (abs (/ (* n1 n2) v))))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1))))) (list lcm (lambda (nlst v) (ok-two-numbers 'lcm nlst v (lambda (n1 n2 v) (or (and (or (= n1 0) (= n2 0)) (= v 0)) (and (integer? (/ v n1)) (integer? (/ v n2)) (= (abs (/ (* n1 n2) v)) (gcd n1 n2))))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1))))) (list expt (lambda (nlst v) (ok-two-numbers 'expt nlst v (lambda (n1 n2 v) (let ((a1 (if (zero? n1) 0 (exp (* n2 (log n1))))) (a2 (if (zero? n1) 0 (exp (* n2 (+ (* 2 our-pi 0+i) (log n1))))))) (if (and (> (/ (distance a1 v) (magnitude v)) err-max) (> (/ (distance a2 v) (magnitude v)) err-max)) (format #t "[expt ~A ~A -> ~A, ~A -> ~A]~%" n1 n2 v a1 (distance a1 v))) (or (< (/ (distance a1 v) (magnitude v)) err-max) (< (/ (distance a2 v) (magnitude v)) err-max)))))) (lambda () (list (let ((val (car (choose-small-number)))) (if (zero? val) 1 (/ val 2.0))) (car (choose-small-number))))) (list + (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (mx 0.0)) (do ((i 0 (+ i 1))) ((= i n)) (let ((arg (list-ref nlst i))) (set! v (- v arg)) ;;(set! v (- v (exact->inexact arg))) (set! mx (max mx (magnitude arg))))) (< (magnitude (/ v (max 0.001 mx))) err-max))))) (if (not (tst nlst v)) (format #t "(+ ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-n-numbers) (list - (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (mx 0.0) (ans (car nlst))) (if (= n 1) (< (distance v (- 0.0 ans)) err-max) (let () (do ((i 1 (+ i 1))) ((= i n)) (let ((arg (list-ref nlst i))) (set! v (+ v arg)) (set! mx (max mx (magnitude arg))))) (< (magnitude (/ (- v ans) (max 0.001 mx))) err-max))))))) (if (not (tst nlst v)) (format #t "(- ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-n-numbers) (list * (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (mx 0.0)) (do ((i 0 (+ i 1))) ((= i n)) (let ((arg (list-ref nlst i))) (set! v (/ v arg)) (set! mx (max mx (magnitude arg))))) (< (magnitude (/ (- v 1) (max 0.001 mx))) err-max))))) (if (not (tst nlst v)) (format #t "(* ~{~A~^ ~}) -> ~A~%" nlst v) #t))) (lambda () (map (lambda (n) (if (zero? n) 1 n)) (choose-n-small-numbers)))) (list / (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (mx 0.0) (ans (car nlst))) (if (= n 1) (distance v (/ 1 n)) (let () (do ((i 1 (+ i 1))) ((= i n)) (let ((arg (list-ref nlst i))) (set! v (* v arg)) (set! mx (max mx (magnitude arg))))) (< (magnitude (/ (- v ans) (max 0.001 mx))) err-max))))))) (if (not (tst nlst v)) (format #t "(/ ~{~A~^ ~}) -> ~A~%" nlst v) #t))) (lambda () (map (lambda (n) (if (zero? n) 1 n)) (choose-n-small-numbers)))) (list max (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i n)) happy) (let ((arg (list-ref nlst i))) (set! happy (> (- v arg) (- err-max))))))))) (if (not (tst nlst v)) (format #t "(max ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-n-real-numbers) (list min (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i n)) happy) (let ((arg (list-ref nlst i))) (set! happy (> (- arg v) (- err-max))))))))) (if (not (tst nlst v)) (format #t "(min ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-n-real-numbers) (list < (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (happy #t) (last-arg (car nlst))) (do ((i 1 (+ i 1))) ((or (not happy) (= i n)) (eq? v happy)) (let ((arg (list-ref nlst i))) (set! happy (> (- arg last-arg) (- err-max-12))) (set! last-arg arg))))))) (if (not (tst nlst v)) (format #t "(< ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-2-or-more-real-numbers) (list <= (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (happy #t) (last-arg (car nlst))) (do ((i 1 (+ i 1))) ((or (not happy) (= i n)) (eq? v happy)) (let ((arg (list-ref nlst i))) (set! happy (> (- arg last-arg) (- err-max-12))) (set! last-arg arg))))))) (if (not (tst nlst v)) (format #t "(<= ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-2-or-more-real-numbers) (list > (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (happy #t) (last-arg (car nlst))) (do ((i 1 (+ i 1))) ((or (not happy) (= i n)) (eq? v happy)) (let ((arg (list-ref nlst i))) (set! happy (> (- last-arg arg) (- err-max-12))) (set! last-arg arg))))))) (if (not (tst nlst v)) (format #t "(> ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-2-or-more-real-numbers) (list >= (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (happy #t) (last-arg (car nlst))) (do ((i 1 (+ i 1))) ((or (not happy) (= i n)) (eq? v happy)) (let ((arg (list-ref nlst i))) (set! happy (> (- last-arg arg) (- err-max-12))) (set! last-arg arg))))))) (if (not (tst nlst v)) (format #t "(>= ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-2-or-more-real-numbers) (list = (lambda (nlst v) (let ((tst (lambda (nlst v) (let ((n (length nlst)) (happy #t) (last-arg (car nlst))) (do ((i 1 (+ i 1))) ((or (not happy) (= i n)) (eq? v happy)) (let ((arg (list-ref nlst i))) (set! happy (< (abs (- last-arg arg)) err-max-12)) (set! last-arg arg))))))) (if (not (tst nlst v)) (format #t "(= ~{~A~^ ~}) -> ~A~%" nlst v) #t))) choose-2-or-more-real-numbers) ;; -------- bitwise functions ------------------------- (if with-bitwise-functions (list logand (lambda (nlst v) (ok-two-numbers 'logand nlst v (lambda (n1 n2 v) (let ((a (logical:logand n1 n2))) (= a v))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1))))) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-bitwise-functions (list logior (lambda (nlst v) (ok-two-numbers 'logior nlst v (lambda (n1 n2 v) (let ((a (logical:logior n1 n2))) (= a v))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1))))) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-bitwise-functions (list logxor (lambda (nlst v) (ok-two-numbers 'logxor nlst v (lambda (n1 n2 v) (let ((a (logical:logxor n1 n2))) (= a v))))) (lambda () (list (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1)) (* (random (inexact->exact (floor (expt 2 30)))) (if (> (random 1.0) 0.5) 1 -1))))) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-bitwise-functions (list lognot (lambda (nlst v) (ok-number 'logxor nlst v (lambda (n1 v) (let ((a (logical:lognot n1))) (= a v))))) choose-integer) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-bitwise-functions (list ash (lambda (nlst v) (ok-two-numbers 'ash nlst v (lambda (n1 n2 v) (let ((a (logical:ash n1 n2))) (= a v))))) (lambda () (list (* (random (inexact->exact (floor (inexact->exact (floor (expt 2 30)))))) (if (> (random 1.0) 0.5) 1 -1)) (* (random (if with-bignums 100 30)) (if (> (random 1.0) 0.5) 1 -1))))) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) (if with-bitwise-functions (list integer-length (lambda (nlst v) (ok-number 'integer-length nlst v (lambda (n1 v) (let ((a (logical:integer-length n1)) (b (ceiling (log (abs n1) 2)))) (= a b v))))) choose-integer) (list (lambda () #f) (lambda (a b) #t) (lambda () '()))) ;; -------- characters -------------------------------- (list char-upcase (lambda (nlst v) (let ((chr (car nlst))) (if (not (char-alphabetic? chr)) (if (not (char=? v chr)) (format #t "(char-upcase #\\~A) -> ~A" chr v)) (if (and (not (char=? chr v)) (not (char=? chr (char-downcase v)))) (format #t "(char-upcase #\\~A) -> ~A~%" chr v))))) choose-char) (list char-downcase (lambda (nlst v) (let ((chr (car nlst))) (if (not (char-alphabetic? chr)) (if (not (char=? v chr)) (format #t "(char-downcase @\\~A) -> ~A" chr v)) (if (and (not (char=? chr v)) (not (char=? chr (char-upcase v)))) (format #t "(char-downcase #\\~A) -> ~A~%" chr v))))) choose-char) (list char-alphabetic? (lambda (nlst v) (let ((chr (car nlst))) (if (not (eq? v (or (and (char<=? #\A chr) (char<=? chr #\Z)) (and (char<=? #\a chr) (char<=? chr #\z))))) (format #t "(char-alphabetic? #\\~A) -> ~A~%" chr v)))) choose-char) (list char-numeric? (lambda (nlst v) (let ((chr (car nlst))) (if (not (eq? v (if (member chr (list #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9)) #t #f))) (format #t "(char-numeric? #\\~A) -> ~A~%" chr v)))) choose-char) (list char-upper-case? (lambda (nlst v) (let ((chr (car nlst))) (if (not (eq? v (and (char<=? #\A chr) (char<=? chr #\Z)))) (format #t "(char-upper-case? #\\~A) -> ~A~%" chr v)))) choose-char) (list char-lower-case? (lambda (nlst v) (let ((chr (car nlst))) (if (not (eq? v (and (char<=? #\a chr) (char<=? chr #\z)))) (format #t "(char-lower-case? #\\~A) -> ~A~%" chr v)))) choose-char) (list char-whitespace? (lambda (nlst v) (let ((chr (car nlst))) (if (not (eq? v (if (member chr (list #\space (integer->char 9) (integer->char 10) (integer->char 11) (integer->char 12) (integer->char 13))) #t #f))) (format #t "(char-whitespace? #\\~A) -> ~A (~D)~%" chr v (char->integer chr))))) choose-char) (list char=? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (= (char->integer c1) (char->integer (list-ref nlst i))))) (if (not (eq? happy v)) (format #t "(char=? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list char-ci=? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (or (= (char->integer c1) (char->integer (list-ref nlst i))) (= (char->integer c1) (char->integer (char-upcase (list-ref nlst i)))) (= (char->integer c1) (char->integer (char-downcase (list-ref nlst i))))))) (if (not (eq? happy v)) (format #t "(char-ci=? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list charinteger c1) (char->integer (list-ref nlst i)))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char ~A~%" nlst v)))) choose-2-or-more-chars) (list char-ciinteger (char-upcase c1)) (char->integer (char-upcase (list-ref nlst i))))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char-ci ~A~%" nlst v)))) choose-2-or-more-chars) (list char<=? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (<= (char->integer c1) (char->integer (list-ref nlst i)))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char<=? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list char-ci<=? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (<= (char->integer (char-upcase c1)) (char->integer (char-upcase (list-ref nlst i))))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char-ci<=? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list char>? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (> (char->integer c1) (char->integer (list-ref nlst i)))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char>? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list char-ci>? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (> (char->integer (char-upcase c1)) (char->integer (char-upcase (list-ref nlst i))))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char-ci>? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list char>=? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (>= (char->integer c1) (char->integer (list-ref nlst i)))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char>=? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list char-ci>=? (lambda (nlst v) (let ((c1 (car nlst)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (set! happy (>= (char->integer (char-upcase c1)) (char->integer (char-upcase (list-ref nlst i))))) (set! c1 (list-ref nlst i))) (if (not (eq? happy v)) (format #t "(char-ci>=? ~{#\\~A~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-chars) (list char->integer (lambda (nlst v) (let ((chr (car nlst))) (if (or (not (integer? v)) (not (char=? chr (integer->char v)))) (format #t "(char->integer #\\~A) -> ~A~%" chr v)))) choose-char) (list integer->char (lambda (nlst v) (let ((chr (car nlst))) (if (or (not (char? v)) (not (= chr (char->integer v)))) (format #t "(integer->char ~A) -> #\\~A" chr v)))) (lambda () (list (random 256)))) ;; -------- strings -------------------------------- (list string-length (lambda (nlst v) (let ((chr (car nlst)) (ilen -1)) (if (or (not (integer? v)) ;; assume for these tests that there won't be embedded nulls (let ((happy #t)) (catch #t (lambda () (do ((i 0 (+ i 1))) ((not happy)) (let ((c (string-ref chr i))) ; error if we run off the end? (set! ilen i) (if (= (char->integer c) 0) (set! happy #f))))) (lambda args args)) (not (= (+ ilen 1) v)))) (format #t "(string-length ~S) -> ~D (~D)~%" chr v ilen)))) choose-string) (list string-ref (lambda (nlst v) (let ((str (car nlst)) (pt (cadr nlst))) (if (or (not (char? v)) (not (char=? (list-ref (string->list str) pt) v))) (format #t "(string-ref ~S ~D) -> #\\~A~%" str pt v)))) (lambda () (let ((str (string-append "1" (car (choose-string))))) (list str (random (string-length str)))))) (list string-set! (lambda (nlst v) (let ((str (car nlst)) (pt (cadr nlst)) (chr (caddr nlst))) (if (not (char=? (list-ref (string->list str) pt) chr)) (format #t "(string-set! ~S ~D #\\~A) -> #\\~A~%" str pt chr (list-ref (string->list str) pt))))) (lambda () (let ((str (string-append "1" (car (choose-string))))) (list str (random (string-length str)) (car (choose-non-null-char)))))) (list make-string (lambda (nlst v) (let ((len (car nlst)) (c (and (not (null? (cdr nlst))) (cadr nlst)))) (if (or (not (string? v)) (not (= (string-length v) len)) (and c (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (char=? (string-ref v i) c)))))) (if c (format #t "(make-string ~D #\\~A) -> ~S~%" len c v) (format #t "(make-string ~D) -> ~S~%" len v))))) (lambda () (let ((len (random 20))) (if (> (random 1.0) 0.5) (list len (car (choose-non-null-char))) (list len))))) (list string=? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let ((c2 (list-ref nlst i))) (if (not (= (string-length c2) c1-len)) (set! happy #f) (do ((k 0 (+ k 1))) ((or (not happy) (= k c1-len)) happy) (set! happy (char=? (string-ref c1 k) (string-ref c2 k))))))) (if (not (eq? happy v)) (format #t "(string=? ~{~S~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-strings) (list string-ci=? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let ((c2 (list-ref nlst i))) (if (not (= (string-length c2) c1-len)) (set! happy #f) (do ((k 0 (+ k 1))) ((or (not happy) (= k c1-len)) happy) (set! happy (char-ci=? (string-ref c1 k) (string-ref c2 k))))))) (if (not (eq? happy v)) (format #t "(string-ci=? ~{~S~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-strings) (list string ~A~%" nlst v)))) choose-2-or-more-strings) (list string-ci ~A~%" nlst v)))) choose-2-or-more-strings) (list string>? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let* ((c2 (list-ref nlst i)) (c2-len (string-length c2)) (pos -1)) (do ((k 0 (+ k 1))) ((or (not happy) (not (= pos -1)) (= k (min c1-len c2-len)))) (if (not (char=? (string-ref c1 k) (string-ref c2 k))) (begin (if (= pos -1) (set! pos k)) (set! happy (char>? (string-ref c1 k) (string-ref c2 k)))))) (if (and happy (= pos -1)) (set! happy (> c1-len c2-len))) (set! c1 c2) (set! c1-len c2-len))) (if (not (eq? happy v)) (format #t "(string>? ~{~S~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-strings) (list string-ci>? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let* ((c2 (list-ref nlst i)) (c2-len (string-length c2)) (pos -1)) (do ((k 0 (+ k 1))) ((or (not happy) (not (= pos -1)) (= k (min c1-len c2-len)))) (if (not (char-ci=? (string-ref c1 k) (string-ref c2 k))) (begin (if (= pos -1) (set! pos k)) (set! happy (char-ci>? (string-ref c1 k) (string-ref c2 k)))))) (if (and happy (= pos -1)) (set! happy (> c1-len c2-len))) (set! c1 c2) (set! c1-len c2-len))) (if (not (eq? happy v)) (format #t "(string-ci>? ~{~S~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-strings) (list string<=? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let* ((c2 (list-ref nlst i)) (c2-len (string-length c2)) (pos -1)) (do ((k 0 (+ k 1))) ((or (not happy) (not (= pos -1)) (= k (min c1-len c2-len)))) (if (not (char=? (string-ref c1 k) (string-ref c2 k))) (begin (if (= pos -1) (set! pos k)) (set! happy (char ~A~%" nlst v)))) choose-2-or-more-strings) (list string-ci<=? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let* ((c2 (list-ref nlst i)) (c2-len (string-length c2)) (pos -1)) (do ((k 0 (+ k 1))) ((or (not happy) (not (= pos -1)) (= k (min c1-len c2-len)))) (if (not (char-ci=? (string-ref c1 k) (string-ref c2 k))) (begin (if (= pos -1) (set! pos k)) (set! happy (char-ci ~A~%" nlst v)))) choose-2-or-more-strings) (list string>=? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let* ((c2 (list-ref nlst i)) (c2-len (string-length c2)) (pos -1)) (do ((k 0 (+ k 1))) ((or (not happy) (not (= pos -1)) (= k (min c1-len c2-len)))) (if (not (char=? (string-ref c1 k) (string-ref c2 k))) (begin (if (= pos -1) (set! pos k)) (set! happy (char>? (string-ref c1 k) (string-ref c2 k)))))) (if (and happy (= pos -1)) (set! happy (>= c1-len c2-len))) (set! c1 c2) (set! c1-len c2-len))) (if (not (eq? happy v)) (format #t "(string>=? ~{~S~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-strings) (list string-ci>=? (lambda (nlst v) (let* ((c1 (car nlst)) (c1-len (string-length c1)) (len (length nlst)) (happy #t)) (do ((i 1 (+ i 1))) ((or (not happy) (= i len))) (let* ((c2 (list-ref nlst i)) (c2-len (string-length c2)) (pos -1)) (do ((k 0 (+ k 1))) ((or (not happy) (not (= pos -1)) (= k (min c1-len c2-len)))) (if (not (char-ci=? (string-ref c1 k) (string-ref c2 k))) (begin (if (= pos -1) (set! pos k)) (set! happy (char-ci>? (string-ref c1 k) (string-ref c2 k)))))) (if (and happy (= pos -1)) (set! happy (>= c1-len c2-len))) (set! c1 c2) (set! c1-len c2-len))) (if (not (eq? happy v)) (format #t "(string-ci>=? ~{~S~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-strings) (list string-append (lambda (nlst v) (let* ((len (length nlst)) (happy #t) (j 0) (vlen (string-length v))) (do ((i 0 (+ i 1))) ((or (not happy) (= i len))) (let* ((c1 (list-ref nlst i)) (c1-len (string-length c1))) (do ((k 0 (+ k 1))) ((or (not happy) (= k c1-len))) (set! happy (char=? (string-ref c1 k) (string-ref v j))) (set! j (+ j 1)) (if (> j vlen) (set! happy #f))))) (if (not happy) (format #t "(string-append ~{~S~^ ~}) -> ~A~%" nlst v)))) choose-2-or-more-strings) (list string-fill! (lambda (nlst v) (let ((str (car nlst)) (c (cadr nlst)) (happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i (string-length str)))) (set! happy (char=? c (string-ref str i)))) (if (not happy) (format #t "(string-fill! ~S #\\~A) -> ~S~%" str c v)))) (lambda () (let ((str (car (choose-string)))) (list str (car (choose-non-null-char)))))) (list string-copy (lambda (nlst v) (let ((str (car nlst))) (if (not (string=? str v)) (format #t "(string-copy ~S) -> ~S~%" str v)))) choose-string) (list string->list (lambda (nlst v) (let* ((str (car nlst)) (strlen (string-length str))) (if (or (not (list? v)) (not (= (length v) strlen)) (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i strlen)) (not happy)) (set! happy (char=? (string-ref str i) (list-ref v i)))))) (format #t "(string->list ~S) -> ~A~%" str v)))) choose-string) (list list->string (lambda (nlst v) (let* ((lst (car nlst)) (len (length lst))) (if (or (not (string? v)) (not (= (string-length v) len)) (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (char=? (string-ref v i) (list-ref lst i)))))) (format #t "(list->string ~A) -> ~S~%" lst v)))) (lambda () (let ((lst '()) (len (random 20))) (do ((i 0 (+ i 1))) ((= i len) (list lst)) (set! lst (cons (car (choose-non-null-char)) lst)))))) (list string (lambda (nlst v) (let ((len (length nlst))) (if (or (not (string? v)) (not (= len (string-length v))) (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (char=? (string-ref v i) (list-ref nlst i)))))) (format #t "(string~{~^ #\\~A~}) -> ~S~%" nlst v)))) (lambda () (let ((lst '()) (len (random 20))) (do ((i 0 (+ i 1))) ((= i len) lst) (set! lst (cons (car (choose-non-null-char)) lst)))))) (list substring (lambda (nlst v) (let* ((str (car nlst)) (start (cadr nlst)) (end (if (not (null? (cddr nlst))) (caddr nlst) (string-length str))) (happy #t)) (if (or (not (string? v)) (not (= (string-length v) (- end start))) (do ((i start (+ i 1)) (j 0 (+ j 1))) ((or (not happy) (= i end)) (not happy)) (set! happy (char=? (string-ref str i) (string-ref v j))))) (if (not (null? (cddr nlst))) (format #t "(substring ~S ~D ~D) -> ~S~%" str start end v) (format #t "(substring ~S ~D) -> ~S~%" str start v))))) (lambda () (let* ((str (car (choose-non-null-string))) (strlen (string-length str)) (start (if (> strlen 1) (random (- strlen 1)) 0))) (if (or (> (random 1.0) 0.5) (= start strlen)) (list str start) (list str start (+ start (random (- strlen start)))))))) ;; -------- generic stuff -------------------------------- (list not (lambda (nlst v) (if (not (eq? v (if (car nlst) #f #t))) (format #t "(not ~A) -> ~A~%" (car nlst) v))) (lambda () (choose-any 0))) (list boolean? (lambda (nlst v) (if (or (and (not (eq? v #t)) (not (eq? v #f))) (and (eq? v #t) (not (eq? (car nlst) #t)) (not (eq? (car nlst) #f))) (and (eq? v #f) (or (eq? (car nlst) #f) (eq? (car nlst) #t)))) (format #t "(boolean? ~A) -> ~A~%" (car nlst) v))) (lambda () (choose-any 0))) (list number? (lambda (nlst v) (if (or (not (boolean? v)) (not (eq? v (complex? (car nlst))))) (format #t "(number? ~A) -> ~A~%" (car nlst) v))) (lambda () (choose-any 0))) (list string? (lambda (nlst v) (let ((strp (catch #t (lambda () (integer? (string-length (car nlst)))) (lambda args #f)))) (if (or (not (boolean? v)) (not (eq? v strp))) (format #t "(string? ~A) -> ~A~%" (car nlst) v)))) (lambda () (choose-any 0))) (list char? (lambda (nlst v) (let ((chrp (catch #t (lambda () (integer? (char->integer (car nlst)))) (lambda args #f)))) (if (or (not (boolean? v)) (not (eq? v chrp))) (format #t "(char? ~A) -> ~A~%" (car nlst) v)))) (lambda () (choose-any 0))) (list vector? (lambda (nlst v) (let ((chrp (catch #t (lambda () (integer? (vector-length (car nlst)))) (lambda args #f)))) (if (or (not (boolean? v)) (not (eq? v chrp))) (format #t "(vector? ~A) -> ~A~%" (car nlst) v)))) (lambda () (choose-any 0))) (list list? (lambda (nlst v) (let ((chrp (catch #t (lambda () (let ((hi (or (null? (car nlst)) (list-ref (car nlst) 0)))) #t)) (lambda args #f)))) (if (or (not (boolean? v)) (not (eq? v chrp))) (format #t "(list? ~A) -> ~A~%" (car nlst) v)))) (lambda () (choose-any 0))) (list pair? (lambda (nlst v) (let ((chrp (catch #t (lambda () (car (car nlst)) #t) (lambda args #f)))) (if (or (not (boolean? v)) (not (eq? v chrp))) (format #t "(pair? ~A) -> ~A~%" (car nlst) v)))) (lambda () (choose-any 0))) (list eqv? (lambda (nlst v) (let* ((a1 (car nlst)) (a2 (cadr nlst))) ;; eq? + numbers chars (define (eqv-1 x y) ; from Dybvig (cond ((eq? x y)) ((number? x) (and (number? y) (if (exact? x) (and (exact? y) (= x y)) (and (inexact? y) (= x y))))) ((char? x) (and (char? y) (char=? x y))) (else #f))) (if (or (not (boolean? v)) (not (eq? v (eqv-1 a1 a2)))) (format #t "(eqv? ~A ~A) -> ~A~%" a1 a2 v)))) (lambda () (list (car (choose-any 0)) (car (choose-any 0))))) (list equal? (lambda (nlst v) (let* ((a1 (car nlst)) (a2 (cadr nlst))) (define (equal-1 x y) ; also Dybvig (cond ((eqv? x y)) ((pair? x) (and (pair? y) (equal? (car x) (car y)) (equal? (cdr x) (cdr y)))) ((string? x) (and (string? y) (string=? x y))) ((vector? x) (and (vector? y) (let ((n (vector-length x))) (and (= n (vector-length y)) (let loop ((i 0)) (or (= i n) (and (equal? (vector-ref x i) (vector-ref y i)) (loop (+ i 1))))))))) (else #f))) (if (or (not (boolean? v)) (not (eq? v (equal-1 a1 a2)))) (format #t "(equal? ~A ~A) -> ~A~%" a1 a2 v)))) (lambda () (list (car (choose-any 0)) (car (choose-any 0))))) ;; -------- vectors -------------------------------- (list vector-fill! (lambda (nlst v) (let* ((vect (car nlst)) (len (vector-length vect)) (val (cadr nlst)) (happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len))) (set! happy (equal? (vector-ref vect i) val))) (if (not happy) (format #t "(vector-fill! ~A ~A)~%" vect val)))) (lambda () (list (car (choose-vector 0)) (car (choose-any 0))))) (list vector-ref (lambda (nlst v) (let* ((vect (car nlst)) (pos (cadr nlst)) (val (list-ref (vector->list vect) pos))) (if (not (equal? val v)) (format #t "(vector-ref ~A ~A) -> ~A~%" vect pos v)))) (lambda () (let ((vect (car (choose-vector 0)))) (list vect (random (vector-length vect)))))) (list vector-set! (lambda (nlst v) (let* ((vect (car nlst)) (pos (cadr nlst)) (val (caddr nlst))) (if (not (equal? val (list-ref (vector->list vect) pos))) (format #t "(vector-set! ~A ~A ~A)~%" vect pos val)))) (lambda () (let ((vect (car (choose-vector 0)))) (list vect (random (vector-length vect)) (car (choose-any 0)))))) (list vector-length (lambda (nlst v) (let* ((vect (car nlst)) (val (length (vector->list vect)))) (if (not (= val v)) (format #t "(vector-length ~A) -> ~A~%" vect v)))) (lambda () (choose-vector 0))) (list vector->list (lambda (nlst v) (let* ((vect (car nlst)) (len (vector-length vect))) (if (or (not (list? v)) (not (= len (length v))) (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (equal? (vector-ref vect i) (list-ref v i)))))) (format #t "(vector->list ~A) -> ~A~%" vect v)))) (lambda () (choose-vector 0))) (list list->vector (lambda (nlst v) (let* ((lst (car nlst)) (len (length lst))) (if (or (not (vector? v)) (not (= len (vector-length v))) (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (equal? (vector-ref v i) (list-ref lst i)))))) (format #t "(list->vector ~A) -> ~A~%" lst v)))) (lambda () (choose-list 0))) (list vector (lambda (lst v) (let* ((len (length lst))) (if (or (not (vector? v)) (not (= len (vector-length v))) (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (equal? (vector-ref v i) (list-ref lst i)))))) (format #t "(vector ~{~A~^ ~}) -> ~A~%" lst v)))) (lambda () (choose-list 0))) (list make-vector (lambda (nlst v) (let* ((len (car nlst)) (val (if (not (null? (cdr nlst))) (cadr nlst) 12345))) (if (or (not (vector? v)) (not (= len (vector-length v))) (and (not (equal? val 12345)) (let ((happy #t)) (do ((i 0 (+ i 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (equal? (vector-ref v i) val)))))) (if (not (equal? val 12345)) (format #t "(make-vector ~A ~A) -> ~A~%" len val v) (format #t "(make-vector ~A) -> ~A~%" len v))))) (lambda () (if (> (random 1.0) 0.5) (list (+ 1 (random 20)) (car (choose-any 0))) (list (+ 1 (random 20)))))) ;; -------- lists -------------------------------- (list null? (lambda (nlst v) (if (or (not (boolean? v)) (and (eq? v #t) (not (eq? (car nlst) '()))) (and (eq? v #f) (eq? (car nlst) '()))) (format #t "(null? ~A) -> ~A~%" (car nlst) v))) (lambda () (choose-list 0))) (list car (lambda (nlst v) (if (not (eq? v (list-ref (list-ref nlst 0) 0))) (format #t "(car ~A) -> ~A~%" (car nlst) v))) (lambda () (choose-non-null-list 0))) (list cdr (lambda (nlst v) (if (not (equal? v (list-tail (car nlst) 1))) (format #t "(cdr ~A) -> ~A~%" (car nlst) v))) (lambda () (choose-non-null-list 0))) (list length (lambda (nlst v) (let* ((lst (car nlst))) (if (or (not (integer? v)) (not (= v (vector-length (list->vector lst))))) (format #t "(length ~A) -> ~A~%" lst v)))) (lambda () (choose-list 0))) (list null? (lambda (nlst v) (let* ((lst (car nlst)) (len (length lst))) (if (or (and v (not (= len 0))) (and (not v) (= len 0))) (format #t "(null? ~A) -> ~A~%" lst v)))) (lambda () (choose-list 0))) (list list-ref (lambda (nlst v) (let* ((lst (car nlst)) (pos (cadr nlst))) (if (not (equal? v (vector-ref (list->vector lst) pos))) (format #t "(list-ref ~A ~D) -> ~A~%" lst pos v)))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (list lst (random (length lst)))))) (list reverse (lambda (nlst v) (let* ((lst (car nlst)) (len (length lst))) (if (or (not (list? v)) (not (= len (length v))) (let ((happy #t)) (do ((i 0 (+ i 1)) (j (- len 1) (- j 1))) ((or (not happy) (= i len)) (not happy)) (set! happy (equal? (list-ref lst i) (list-ref v j)))))) (format #t "(reverse ~A) -> ~A~%" lst v)))) (lambda () (choose-list 0))) (list cons (lambda (nlst v) (let* ((cr (car nlst)) (cd (cadr nlst))) (if (or (not (pair? v)) (not (equal? (car v) cr)) (not (equal? (cdr v) cd))) (format #t "(cons ~A ~A) -> ~A~%" cr cd v)))) (lambda () (list (car (choose-any 0)) (car (choose-any 0))))) (list caar (lambda (nlst v) (if (not (eq? v (list-ref (list-ref (list-ref nlst 0) 0) 0))) (format #t "(caar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (not (pair? (car lst))) (list (list (choose-list 0) lst)) (list lst))))) (list cadr (lambda (nlst v) (if (not (eq? v (list-ref (list-tail (car nlst) 1) 0))) (format #t "(cadr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (< (length lst) 2) (list (list lst (choose-non-null-list 0))) (list lst))))) (list cdar (lambda (nlst v) (if (not (eq? v (list-tail (list-ref (list-ref nlst 0) 0) 1))) (format #t "(cdar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (not (pair? (car lst))) (list (list (choose-list 0) lst)) (list lst))))) (list cddr (lambda (nlst v) (if (not (eq? v (list-tail (list-tail (list-ref nlst 0) 1) 1))) (format #t "(cddr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (not (pair? (cdr lst))) (list (list lst (choose-list 0))) (list lst))))) (list caaar (lambda (nlst v) (if (not (eq? v (list-ref (list-ref (list-ref (list-ref nlst 0) 0) 0) 0))) (format #t "(caaar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (caar lst)))) (list (list (list lst (choose-list 0)))) (list lst))))) (list caadr (lambda (nlst v) (if (not (eq? v (list-ref (list-ref (list-tail (car nlst) 1) 0) 0))) (format #t "(caadr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cadr lst)))) (list (list lst (list (choose-non-null-list 0)))) (list lst))))) (list cadar (lambda (nlst v) (if (not (eq? v (list-ref (list-tail (list-ref (list-ref nlst 0) 0) 1) 0))) (format #t "(cadar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (cdar lst)))) (list (list (list (choose-non-null-list 0) (list 1 lst)))) (list lst))))) (list cdaar (lambda (nlst v) (if (not (eq? v (list-tail (list-ref (list-ref (list-ref nlst 0) 0) 0) 1))) (format #t "(cdaar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (caar lst)))) (list (list (list (choose-list 0) lst))) (list lst))))) (list caddr (lambda (nlst v) (if (not (eq? v (list-ref (list-tail (list-tail (list-ref nlst 0) 1) 1) 0))) (format #t "(caddr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cddr lst)))) (list (list 1 lst (list (choose-list 0)))) (list lst))))) (list cdddr (lambda (nlst v) (if (not (eq? v (list-tail (list-tail (list-tail (list-ref nlst 0) 1) 1) 1))) (format #t "(cdddr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cddr lst)))) (list (list 1 lst (list (choose-list 0)))) (list lst))))) (list cdadr (lambda (nlst v) (if (not (eq? v (list-tail (list-ref (list-tail (car nlst) 1) 0) 1))) (format #t "(cdadr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cadr lst)))) (list (list 1 (list lst (list (choose-list 0))))) (list lst))))) (list cddar (lambda (nlst v) (if (not (eq? v (list-tail (list-tail (list-ref (list-ref nlst 0) 0) 1) 1))) (format #t "(cddar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (cdar lst)))) (list (list (list lst (list (choose-list 0))))) (list lst))))) (list caaaar (lambda (nlst v) (if (not (eq? v (list-ref (list-ref (list-ref (list-ref (list-ref nlst 0) 0) 0) 0) 0))) (format #t "(caaaar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (caar lst)))) (list (list (list (list lst (choose-list 0))))) (list lst))))) (list cdaaar (lambda (nlst v) (if (not (eq? v (list-tail (list-ref (list-ref (list-ref (list-ref nlst 0) 0) 0) 0) 1))) (format #t "(caaaar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (caar lst)))) (list (list (list (list lst (choose-list 0))))) (list lst))))) (list caaadr (lambda (nlst v) (if (not (eq? v (list-ref (list-ref (list-ref (list-tail (car nlst) 1) 0) 0) 0))) (format #t "(caaadr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cadr lst))) (not (pair? (caadr lst)))) (list (list lst (list (list (choose-non-null-list 0))))) (list lst))))) (list cdaadr (lambda (nlst v) (if (not (eq? v (list-tail (list-ref (list-ref (list-tail (car nlst) 1) 0) 0) 1))) (format #t "(cdaadr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cadr lst))) (not (pair? (caadr lst)))) (list (list lst (list (list (choose-non-null-list 0))))) (list lst))))) (list caadar (lambda (nlst v) (if (not (eq? v (list-ref (list-ref (list-tail (list-ref (list-ref nlst 0) 0) 1) 0) 0))) (format #t "(caadar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (cdar lst))) (not (pair? (cadar lst)))) (list (list (list (choose-non-null-list 0) (list (list 1 lst))))) (list lst))))) (list cdadar (lambda (nlst v) (if (not (eq? v (list-tail (list-ref (list-tail (list-ref (list-ref nlst 0) 0) 1) 0) 1))) (format #t "(cdadar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (cdar lst))) (not (pair? (cadar lst)))) (list (list (list (choose-non-null-list 0) (list (list 1 lst))))) (list lst))))) (list cadaar (lambda (nlst v) (if (not (eq? v (list-ref (list-tail (list-ref (list-ref (list-ref nlst 0) 0) 0) 1) 0))) (format #t "(cadaar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (caar lst))) (not (pair? (cdaar lst)))) (list (list (list (list (choose-list 0) (list lst))))) (list lst))))) (list cddaar (lambda (nlst v) (if (not (eq? v (list-tail (list-tail (list-ref (list-ref (list-ref nlst 0) 0) 0) 1) 1))) (format #t "(cddaar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (caar lst))) (not (pair? (cdaar lst)))) (list (list (list (list (choose-list 0) (list lst))))) (list lst))))) (list caaddr (lambda (nlst v) (if (not (eq? v (list-ref (list-ref (list-tail (list-tail (list-ref nlst 0) 1) 1) 0) 0))) (format #t "(caaddr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cddr lst))) (not (pair? (caddr lst)))) (list (list 1 lst (list (list (choose-list 0))))) (list lst))))) (list cdaddr (lambda (nlst v) (if (not (eq? v (list-tail (list-ref (list-tail (list-tail (list-ref nlst 0) 1) 1) 0) 1))) (format #t "(cdaddr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cddr lst))) (not (pair? (caddr lst)))) (list (list 1 lst (list (list (choose-list 0))))) (list lst))))) (list cadddr (lambda (nlst v) (if (not (eq? v (list-ref (list-tail (list-tail (list-tail (list-ref nlst 0) 1) 1) 1) 0))) (format #t "(cadddr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cddr lst))) (not (pair? (cdddr lst)))) (list (list 1 lst 1 (list (choose-list 0)))) (list lst))))) (list cddddr (lambda (nlst v) (if (not (eq? v (list-tail (list-tail (list-tail (list-tail (list-ref nlst 0) 1) 1) 1) 1))) (format #t "(cddddr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cddr lst))) (not (pair? (cdddr lst)))) (list (list 1 lst 1 (list (choose-list 0)))) (list lst))))) (list cadadr (lambda (nlst v) (if (not (eq? v (list-ref (list-tail (list-ref (list-tail (car nlst) 1) 0) 1) 0))) (format #t "(cadadr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cadr lst))) (not (pair? (cdadr lst)))) (list (list 1 (list lst (list (choose-list 0))))) (list lst))))) (list cddadr (lambda (nlst v) (if (not (eq? v (list-tail (list-tail (list-ref (list-tail (car nlst) 1) 0) 1) 1))) (format #t "(cddadr ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (cdr lst))) (not (pair? (cadr lst))) (not (pair? (cdadr lst)))) (list (list 1 (list lst (list (choose-list 0))))) (list lst))))) (list caddar (lambda (nlst v) (if (not (eq? v (list-ref (list-tail (list-tail (list-ref (list-ref nlst 0) 0) 1) 1) 0))) (format #t "(caddar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (cdar lst))) (not (pair? (cddar lst)))) (list (list (list lst 1 (list (choose-list 0))))) (list lst))))) (list cdddar (lambda (nlst v) (if (not (eq? v (list-tail (list-tail (list-tail (list-ref (list-ref nlst 0) 0) 1) 1) 1))) (format #t "(cdddar ~A) -> ~A~%" (car nlst) v))) (lambda () (let ((lst (car (choose-non-null-list 0)))) (if (or (not (pair? (car lst))) (not (pair? (cdar lst))) (not (pair? (cddar lst)))) (list (list (list lst 1 (list (choose-list 0))))) (list lst))))) (list set-car! (lambda (nlst v) (let* ((lst (car nlst)) (val (cadr nlst))) (if (not (equal? (car lst) val)) (format #t "(set-car! ~A ~A)~%" lst val)))) (lambda () (list (choose-non-null-list 0) (choose-any 0)))) (list set-cdr! (lambda (nlst v) (let* ((lst (car nlst)) (val (cadr nlst))) (if (not (equal? (cdr lst) val)) (format #t "(set-cdr! ~A ~A)~%" lst val)))) (lambda () (list (choose-non-null-list 0) (choose-any 0)))) (list assoc (lambda (nlst v) (let* ((alst (cadr nlst)) (obj (car nlst)) (val #f)) (for-each (lambda (kv) (if (and (not val) (equal? obj (car kv))) (set! val kv))) alst) (if (not (equal? v val)) (format #t "(assoc ~A ~A) -> ~A~%" obj alst v)))) (lambda () (choose-alist 'equal?))) (list assq (lambda (nlst v) (let* ((alst (cadr nlst)) (obj (car nlst)) (val #f)) (for-each (lambda (kv) (if (and (not val) (equal? obj (car kv))) (set! val kv))) alst) (if (not (eq? v val)) (format #t "(assq ~A ~A) -> ~A~%" obj alst v)))) (lambda () (choose-alist 'eq?))) (list assv (lambda (nlst v) (let* ((alst (cadr nlst)) (obj (car nlst)) (val #f)) (for-each (lambda (kv) (if (and (not val) (eqv? obj (car kv))) (set! val kv))) alst) (if (not (equal? v val)) (format #t "(assv ~A ~A) -> ~A~%" obj alst v)))) (lambda () (choose-alist 'eqv?))) (list memq (lambda (nlst v) (let* ((lst (cadr nlst)) (len (length lst)) (obj (car nlst)) (val #f)) (do ((i 0 (+ i 1)) (mlst lst (cdr mlst))) ((or val (= i len))) (if (eq? obj (car mlst)) (set! val mlst))) (if (not (equal? v val)) (format #t "(memq ~A ~A) -> ~A~%" obj lst v)))) (lambda () (choose-mlist 'eq?))) (list memv (lambda (nlst v) (let* ((lst (cadr nlst)) (len (length lst)) (obj (car nlst)) (val #f)) (do ((i 0 (+ i 1)) (mlst lst (cdr mlst))) ((or val (= i len))) (if (eqv? obj (car mlst)) (set! val mlst))) (if (not (equal? v val)) (format #t "(memv ~A ~A) -> ~A~%" obj lst v)))) (lambda () (choose-mlist 'eqv?))) (list member (lambda (nlst v) (let* ((lst (cadr nlst)) (len (length lst)) (obj (car nlst)) (val #f)) (do ((i 0 (+ i 1)) (mlst lst (cdr mlst))) ((or val (= i len))) (if (equal? obj (car mlst)) (set! val mlst))) (if (not (equal? v val)) (format #t "(member ~A ~A) -> ~A~%" obj lst v)))) (lambda () (choose-mlist 'equal?))) (list list-tail (lambda (nlst v) (let* ((lst (car nlst)) (pos (cadr nlst))) (if (not (equal? v (do ((i 0 (+ i 1)) (mlst lst (cdr mlst))) ((= i pos) mlst)))) (format #t "(list-tail ~A ~A) -> ~A~%" lst pos v)))) (lambda () (let ((lst (car (choose-list 0)))) (list lst (random (length lst)))))) (list list (lambda (nlst v) (if (not (equal? nlst v)) (format #t "(list ~{~A~^ ~}) -> ~A~%" nlst v))) (lambda () (car (choose-list 0)))) (list symbol? (lambda (nlst v) (let ((symp (catch #t (lambda () (string? (symbol->string (car nlst)))) (lambda args #f)))) (if (or (not (boolean? v)) (not (eq? v symp))) (format #t "(symbol? ~A) -> ~A~%" (car nlst) v)))) (lambda () (choose-any 0))) (list append (lambda (nlst v) (let* ((len (length nlst)) (mv v) (happy #t)) (for-each (lambda (lst) (if happy (for-each (lambda (obj) (if happy (if (not (equal? obj (car mv))) (begin (format #t "(append ~{~A~^ ~}) -> ~A~%" nslt v) (set! happy #f)))) (set! mv (cdr mv))) lst))) nlst))) (lambda () (let ((len (random 10)) (lsts '())) (do ((i 0 (+ i 1))) ((= i len)) (set! lsts (cons (car (choose-list 0)) lsts))) lsts))) ;; -------------------------------------------------------------------------------- ))) (define (choose-op) (let ((choice (random (length ops)))) (list-ref ops choice))) (define (quotify args) (map (lambda (arg) (if (or (list? arg) (vector? arg) (symbol? arg)) (list 'quote arg) arg)) args)) (do ((i 1 (+ i 1))) ((> i tries)) (if (= (modulo i 1000) 0) (format #t ".")) (let* ((data (choose-op)) (args ((caddr data))) (op (car data)) (checker (cadr data))) ; (format #t "(~A ~A)~%" op args) (let ((result (catch #t (lambda () (apply op args)) (lambda args (display args) (newline) 'error)))) (checker args result) (set! result (catch #t (lambda () (eval (cons op (quotify args)))) (lambda args (display args) (newline) 'error))) (checker args result)))))) )) ;;; I made a fancier version that created nested expressions, but it didn't hit any new ;;; bugs, and it was too complicated. (newline) (display ";all done!") (newline) ;;; -------------------------------------------------------------------------------- (define (s7-test-at-random) (let ((ops (list gensym symbol-table symbol? symbol->string string->symbol symbol->value global-environment current-environment provided? provide defined? keyword? make-keyword symbol->keyword keyword->symbol hash-table? make-hash-table hash-table-ref hash-table-set! hash-table-size port-line-number port-filename input-port? output-port? char-ready? eof-object? current-input-port current-output-port ;set-current-output-port set-current-input-port set-current-error-port current-error-port close-input-port close-output-port ;open-input-file open-output-file open-input-string ;open-output-string get-output-string read-char peek-char read newline write-char write display read-byte write-byte read-line ;call-with-input-string call-with-input-file ;with-input-from-string with-input-from-file ;call-with-output-string call-with-output-file ;with-output-to-string with-output-to-file number->string string->number make-polar make-rectangular magnitude angle rationalize abs exp log sin cos tan asin acos atan sinh cosh tanh asinh acosh atanh sqrt expt floor ceiling truncate round lcm gcd + - * ; / -- too many divide by 0 complaints max min quotient remainder modulo = < > <= >= number? integer? real? complex? rational? even? odd? zero? positive? negative? real-part imag-part numerator denominator inexact->exact exact->inexact exact? inexact? integer-length logior logxor logand lognot ash random make-random-state char-upcase char-downcase char->integer integer->char char-upper-case? char-lower-case? char-alphabetic? char-numeric? char-whitespace? char? char=? char? char<=? char>=? char-ci=? char-ci? char-ci<=? char-ci>=? string? make-string string-length string-ref string-set! string=? string? string<=? string>=? string-ci=? string-ci? string-ci<=? string-ci>=? string-append string-fill! string-copy substring string list->string string->list object->string format null? list? pair? reverse ;reverse! set-car! set-cdr! sort! cons car cdr caar cadr cdar cddr caaar caadr cadar cdaar caddr cdddr cdadr cddar caaaar caaadr caadar cadaar caaddr cadddr cadadr caddar cdaaar cdaadr cdadar cddaar cdaddr cddddr cddadr cdddar length assq assv assoc memq memv member append list list-ref ;list-set! vector-set! list-tail vector? vector->list list->vector vector-fill! vector vector-length vector-ref make-vector ;call/cc call-with-current-continuation call-with-exit load continuation? eval eval-string apply force for-each map values call-with-values dynamic-wind ;catch error ;quit gc procedure? procedure-documentation help procedure-arity procedure-source make-procedure-with-setter procedure-with-setter? procedure-with-setter-setter-arity not boolean? eq? eqv? equal? s7-version))) (let ((argls (list #t #f -1 0 1 1.5 1.0+1.0i 3/4 (if with-bignums (expt 2 100) (expt 2 30)) (list 1 2) (cons 1 2) '() '((1 2) (3 4)) '((1 (2)) (((3) 4))) '#(1 2) (vector 1 #\a '(3)) (make-vector 0) (let ((x 3)) (lambda (y) (+ x y))) abs "hi" "" 'hi :hi #\a #\newline ;;; (call/cc (lambda (a) a)) -- this causes us to start over! (make-hash-table 256) (symbol->value '_?__undefined__?_) ; -> # hopefully (vector-fill! (vector 0) 0) ; -> #? (with-input-from-string "" (lambda () (read-char))) ; -> #? (make-random-state 1234)))) ;(display "no args") (newline) (for-each (lambda (f) (catch #t (lambda () (f)) (lambda args #f))) ops) ;(display "one arg") (newline) (for-each (lambda (f) (for-each (lambda (a) (catch #t (lambda () (if (or (and (not (eq? f make-string)) (not (eq? f ash))) (not (>= a (expt 2 30)))) (f a) #f)) (lambda args #f))) argls)) ops) ;(display "two args") (newline) (for-each (lambda (f) (for-each (lambda (a) (for-each (lambda (b) (catch #t (lambda () (if (or (and (not (eq? f expt)) (not (eq? f ash)) (not (eq? f make-string))) (and (not (>= a (expt 2 30))) (not (>= b (expt 2 30))))) (f a b) #f)) (lambda args #f))) argls)) argls)) ops) ;(display "three args") (newline) (for-each (lambda (f) (for-each (lambda (a) (for-each (lambda (b) (for-each (lambda (c) (catch #t (lambda () ;(format #t "(~A ~A ~A ~A)~%" f a b c) (f a b c)) (lambda args #f))) argls)) argls)) argls)) ops) ;(display "four args") (newline) (for-each (lambda (f) (display f) (display " ") (for-each (lambda (a) (for-each (lambda (b) (for-each (lambda (c) (for-each (lambda (d) (catch #t (lambda () (f a b c d)) (lambda args #f))) argls)) argls)) argls)) argls)) ops))) (let ((ops (list 'lambda 'define 'quote 'if 'begin 'set! 'let 'let* 'letrec 'cond 'case 'and 'or 'do 'call/cc 'apply 'for-each 'map 'values 'dynamic-wind)) (args (list #t #f -1 0 1 1.5 1.0+1.0i 3/4 (expt 2 30) (list 1 2) (cons 1 2) '() '((1 2) (3 4)) '((1 (2)) (((3) 4))) '#(1 2) (vector 1 #\a '(3)) (make-vector 0) (let ((x 3)) (lambda (y) (+ x y))) abs (lambda args args) "hi" "" 'hi :hi #\a #\newline ;;; (call/cc (lambda (a) a)) (make-hash-table 256) (symbol->value '_?__undefined__?_) ; -> # hopefully (vector-fill! (vector 0) 0) ; -> #? (with-input-from-string "" (lambda () (read-char))) ; -> #? (make-random-state 1234)))) (for-each (lambda (op) (for-each (lambda (arg) (catch #t (lambda () (if (or (and (not (eq? op make-string)) (not (eq? op ash))) (not (>= arg (expt 2 30)))) (eval (list op arg)) #f)) (lambda args #f))) args)) ops) (for-each (lambda (op) (for-each (lambda (arg1) (for-each (lambda (arg2) (catch #t (lambda () (if (or (and (not (eq? op expt)) (not (eq? op ash)) (not (eq? op make-string))) (and (not (>= arg1 (expt 2 30))) (not (>= arg2 (expt 2 30))))) (eval (list op arg1 arg2)) #f)) (lambda args #f))) args)) args)) ops) (for-each (lambda (op) (for-each (lambda (arg) (catch #t (lambda () (eval (cons op arg))) (lambda args #f))) args)) ops) (for-each (lambda (op) (for-each (lambda (arg1) (for-each (lambda (arg2) (catch #t (lambda () (eval (list op (cons arg1 arg2)))) (lambda args #f))) args)) args)) ops) (for-each (lambda (arg1) (for-each (lambda (arg2) (catch #t (lambda () (eval (list 'set! (list arg1) arg2))) (lambda args #f))) args)) args) (for-each (lambda (arg1) (for-each (lambda (arg2) (catch #t (lambda () (eval (list 'set! (list arg1) arg2))) (lambda args #f))) ops)) args) (for-each (lambda (arg1) (for-each (lambda (arg2) (catch #t (lambda () (eval (list 'set! (cons arg1 arg2) arg1))) (lambda args #f))) args)) args) (for-each (lambda (op) (for-each (lambda (arg1) (for-each (lambda (arg2) (for-each (lambda (arg3) (catch #t (lambda () (eval (list op arg1 arg2 arg3))) (lambda args #f))) args)) args)) args)) ops) (for-each (lambda (op) (for-each (lambda (arg1) (for-each (lambda (arg2) (for-each (lambda (arg3) (catch #t (lambda () (eval (list op (list arg1 arg2 arg3)))) (lambda args #f))) args)) args)) ops)) ops) (for-each (lambda (op) (for-each (lambda (arg1) (for-each (lambda (arg2) (for-each (lambda (arg3) (catch #t (lambda () (eval (list op arg1 (list arg2 arg3)))) (lambda args #f))) args)) ops)) args)) ops) (for-each (lambda (op) (for-each (lambda (arg1) (for-each (lambda (arg2) (for-each (lambda (arg3) (for-each (lambda (arg4) (catch #t (lambda () (eval (list op arg1 arg2 arg3 arg4))) (lambda args #f))) args)) args)) args)) args)) ops) (for-each (lambda (op) (for-each (lambda (arg1) (for-each (lambda (arg2) (for-each (lambda (arg3) (for-each (lambda (arg4) (catch #t (lambda () (eval (list op arg1 (list arg2 arg3) arg4))) (lambda args #f))) args)) args)) ops)) args)) ops) )) ;;; trouble: [bignum-precision = 128] ;;; (= (string->number (number->string 100000000000000000000000000000000.0)) 100000000000000000000000000000000.0) -> #f ;;; even with gmp ;;; (string->number "100000000000000000000000000000000.0") -> 1.000E32 ;;; (= 1.000E32 100000000000000000000000000000000.0) -> #f ;;; (format #f "~40F" 32.0) -> " 32.000000" ;;; (format #f "~40F" 100000000000000000000000000000000.0) -> "1.000E32" ;;; but: ;;; (cos (bignum "1.0000000000000000000000000000000000e32")) gets the right answer, so who truncates? ;;; I think this is a bug in mpfr ;;; guile/s7 accept: (call/cc (lambda (a . b) (a 1))) -> 1 ;;; same: (call/cc (lambda (a b c) (a 1))) -> too many args ;;; same: (call/cc (lambda (a b) (a 1))) -> same ;;; same: (call/cc (lambda arg ((car arg) 1))) -> 1 ;;; (call/cc (lambda () 1)) -> error?