File tree Expand file tree Collapse file tree 2 files changed +21
-5
lines changed Expand file tree Collapse file tree 2 files changed +21
-5
lines changed Original file line number Diff line number Diff line change 2020(provide explain
2121 actual-errors)
2222
23+ (define 100.l (flonum->logfl 100.0 ))
24+ (define 32.l (flonum->logfl 32.0 ))
25+
2326(define *top-3* (make-parameter #f ))
2427
2528(define MAX-EXP 1023 )
165168
166169 (define cond-x (abs (/ xfl (+ xfl yfl))))
167170 (define cond-y (abs (/ yfl (+ xfl yfl))))
171+ ;(define cond-x.l (logabs (log/ xlog (log+ xlog ylog))))
172+ ;(define cond-y.l (logabs (log/ ylog (log+ xlog ylog))))
168173
169174 (define x.eps (+ 127 (bigfloat-exponent (exacts-ref x-ex))))
170175 (define y.eps (+ 127 (bigfloat-exponent (exacts-ref y-ex))))
546551 (define explanations-table
547552 (for/list ([(key val) (in-dict expls->points)]
548553 #:unless (zero? (length val)))
549- (define expr (car key))
554+ (define subexpr (car key))
550555 (define expl (cdr key))
551556 (define err-count (length val))
552557 (define maybe-count (length (hash-ref maybe-expls->points key '() )))
553- (define flow-list (make-flow-table oflow-hash uflow-hash expr expl))
558+ (define flow-list (make-flow-table oflow-hash uflow-hash subexpr expl))
554559
555- (list (~a (car expr )) (~a expr ) (~a expl) err-count maybe-count flow-list)))
560+ (list (~a (car subexpr )) (~a subexpr ) (~a expl) err-count maybe-count flow-list)))
556561
557562 (define sorted-explanations-table (take-top-n (sort explanations-table > #:key fourth)))
558563
Original file line number Diff line number Diff line change 8989 (if (log<= A B) A B))
9090
9191(define (log+ A B)
92- (define P (logmax A B))
93- (define Q (logmin A B))
92+ (define P (if (log>= (logabs A) (logabs B)) A B))
93+ (define Q (if (log< (logabs A) (logabs B)) A B))
9494 (match-define (logfl a sa ea) P)
9595 (match-define (logfl b sb eb) Q)
9696 (define x (- eb ea))
251251 [(list (or 'PI.f64 'PI.f32 'E.f64 'E.f32 )) (flonum->logfl ((impl-info (first expr) 'fl )))]
252252 [(list op args ... ) (cons (op->logop op) (map expr->logfl args))]
253253 [sym sym]))
254+
255+ (define x (flonum->logfl 2e+103 ))
256+ (define 1.l (flonum->logfl 1.0 ))
257+ (define 2.l (flonum->logfl 2.0 ))
258+
259+ (define x+1 (log+ x 1.l))
260+ (define 1/x+1 (log/ 1.l x+1))
261+
262+ (define 2/x (log/ 2.l x))
263+
264+ (define res (log- 1/x+1 2/x))
You can’t perform that action at this time.
0 commit comments