
Time bar (total: 5.2s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 0 |
| 100% | 0% | 0% | 100% | 0% | 0% | 0% | 1 |
Compiled 44 to 32 computations (27.3% saved)
ival-add: 0.0ms (0% of total)ival-and: 0.0ms (0% of total)ival-mult: 0.0ms (0% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)ival-<=: 0.0ms (0% of total)| 1.2s | 8256× | 0 | valid |
ival-<=: 289.0ms (42% of total)ival-add: 213.0ms (30.9% of total)ival-mult: 84.0ms (12.2% of total)ival-and: 66.0ms (9.6% of total)const: 32.0ms (4.6% of total)backward-pass: 3.0ms (0.4% of total)| 2× | egg-herbie |
| 1606× | fma-define |
| 1512× | distribute-rgt-in |
| 1424× | distribute-lft-in |
| 1026× | associate--r+ |
| 898× | sub-neg |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 53 | 141 |
| 1 | 154 | 113 |
| 2 | 560 | 113 |
| 3 | 2508 | 113 |
| 4 | 7121 | 113 |
| 0 | 9 | 9 |
| 1 | 17 | 7 |
| 2 | 62 | 7 |
| 3 | 202 | 7 |
| 4 | 477 | 7 |
| 5 | 618 | 7 |
| 6 | 633 | 7 |
| 0 | 633 | 7 |
| 1× | iter limit |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
(* (+ a (+ b (+ c d))) 2) |
| Outputs |
|---|
(* (+ a (+ b (+ c d))) 2) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| Inputs |
|---|
(* (+ a (+ b (+ c d))) 2) |
(* (+ (neg a) (+ b (+ c d))) 2) |
(* (+ a (+ (neg b) (+ c d))) 2) |
(* (+ a (+ b (+ (neg c) d))) 2) |
(* (+ a (+ b (+ c (neg d)))) 2) |
(neg (* (+ (neg a) (+ b (+ c d))) 2)) |
(neg (* (+ a (+ (neg b) (+ c d))) 2)) |
(neg (* (+ a (+ b (+ (neg c) d))) 2)) |
(neg (* (+ a (+ b (+ c (neg d)))) 2)) |
(* (+ b (+ a (+ c d))) 2) |
(* (+ c (+ b (+ a d))) 2) |
(* (+ d (+ b (+ c a))) 2) |
(* (+ a (+ c (+ b d))) 2) |
(* (+ a (+ d (+ c b))) 2) |
(* (+ a (+ b (+ d c))) 2) |
| Outputs |
|---|
(* (+ a (+ b (+ c d))) 2) |
(* 2 (sum4 a b c d)) |
(* (+ (neg a) (+ b (+ c d))) 2) |
(* 2 (sum4 b c d (neg a))) |
(* (+ a (+ (neg b) (+ c d))) 2) |
(* 2 (sum4 a (neg b) c d)) |
(* (+ a (+ b (+ (neg c) d))) 2) |
(* 2 (- (sum3 a b d) c)) |
(* (+ a (+ b (+ c (neg d)))) 2) |
(* 2 (sum4 a b c (neg d))) |
(neg (* (+ (neg a) (+ b (+ c d))) 2)) |
(* (sum4 b c d (neg a)) -2) |
(neg (* (+ a (+ (neg b) (+ c d))) 2)) |
(* 2 (- b (sum3 a c d))) |
(neg (* (+ a (+ b (+ (neg c) d))) 2)) |
(* 2 (- c (sum3 a b d))) |
(neg (* (+ a (+ b (+ c (neg d)))) 2)) |
(* (sum4 a b c (neg d)) -2) |
(* (+ b (+ a (+ c d))) 2) |
(* 2 (sum4 a b c d)) |
(* (+ c (+ b (+ a d))) 2) |
(* 2 (sum4 a b c d)) |
(* (+ d (+ b (+ c a))) 2) |
(* 2 (sum4 a b c d)) |
(* (+ a (+ c (+ b d))) 2) |
(* 2 (sum4 a b c d)) |
(* (+ a (+ d (+ c b))) 2) |
(* 2 (sum4 a b c d)) |
(* (+ a (+ b (+ d c))) 2) |
(* 2 (sum4 a b c d)) |
(sort a b c d)
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 82 | 11 | (-13.742865024207138 -2.6085331566769527 3.068154098839874 13.280911988289892) | 42 | (-13.62136324828589 -2.318180591464764 3.161088525448294 12.579914950516743) | (+.f64 a (+.f64 b (+.f64 c d))) |
| 0 | 0 | - | 0 | - | b |
| 0 | 0 | - | 0 | - | #s(literal 2 binary64) |
| 0 | 0 | - | 0 | - | c |
| 0 | 0 | - | 0 | - | (+.f64 b (+.f64 c d)) |
| 0 | 0 | - | 0 | - | (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| 0 | 0 | - | 0 | - | d |
| 0 | 0 | - | 0 | - | (+.f64 c d) |
| 0 | 0 | - | 0 | - | a |
| 60.0ms | 512× | 0 | valid |
Compiled 81 to 29 computations (64.2% saved)
ival-add: 11.0ms (72.9% of total)ival-mult: 3.0ms (19.9% of total)const: 1.0ms (6.6% of total)backward-pass: 0.0ms (0% of total)Compiled 13 to 9 computations (30.8% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 94.2% | (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
Compiled 13 to 9 computations (30.8% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | cost-diff | 0 | (+.f64 c d) |
| ✓ | cost-diff | 0 | (+.f64 b (+.f64 c d)) |
| ✓ | cost-diff | 0 | (+.f64 a (+.f64 b (+.f64 c d))) |
| ✓ | cost-diff | 0 | (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| 288× | sum3-define |
| 228× | fma-define |
| 200× | fma-lowering-fma.f32 |
| 200× | +-lowering-+.f64 |
| 200× | +-lowering-+.f32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 29 |
| 1 | 17 | 24 |
| 2 | 62 | 24 |
| 3 | 202 | 24 |
| 4 | 477 | 24 |
| 5 | 618 | 24 |
| 6 | 633 | 24 |
| 0 | 633 | 24 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(* (+ a (+ b (+ c d))) 2) |
(+ a (+ b (+ c d))) |
a |
(+ b (+ c d)) |
b |
(+ c d) |
c |
d |
2 |
| Outputs |
|---|
(* (+ a (+ b (+ c d))) 2) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
(+ a (+ b (+ c d))) |
(+.f64 a (+.f64 b (+.f64 c d))) |
a |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
b |
(+ c d) |
(+.f64 c d) |
c |
d |
2 |
#s(literal 2 binary64) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | accuracy | 100.0% | (+.f64 c d) |
| ✓ | accuracy | 100.0% | (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| ✓ | accuracy | 99.4% | (+.f64 b (+.f64 c d)) |
| ✓ | accuracy | 95.4% | (+.f64 a (+.f64 b (+.f64 c d))) |
| 30.0ms | 256× | 0 | valid |
Compiled 34 to 10 computations (70.6% saved)
ival-add: 4.0ms (68.5% of total)ival-mult: 2.0ms (34.2% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| Inputs |
|---|
#<alt (* (+ a (+ b (+ c d))) 2)> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ b (+ c d))> |
#<alt (+ c d)> |
| Outputs |
|---|
#<alt (* 2 (+ b (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ b (+ c d))))> |
#<alt (+ (* 2 a) (* 2 (+ b (+ c d))))> |
#<alt (+ (* 2 a) (* 2 (+ b (+ c d))))> |
#<alt (* 2 a)> |
#<alt (* a (+ 2 (* 2 (/ (+ b (+ c d)) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ b (+ c d)) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ b (+ c d)) a))))> |
#<alt (* 2 a)> |
#<alt (* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2)))> |
#<alt (* 2 (+ a (+ c d)))> |
#<alt (+ (* 2 b) (* 2 (+ a (+ c d))))> |
#<alt (+ (* 2 b) (* 2 (+ a (+ c d))))> |
#<alt (+ (* 2 b) (* 2 (+ a (+ c d))))> |
#<alt (* 2 b)> |
#<alt (* b (+ 2 (* 2 (/ (+ a (+ c d)) b))))> |
#<alt (* b (+ 2 (* 2 (/ (+ a (+ c d)) b))))> |
#<alt (* b (+ 2 (* 2 (/ (+ a (+ c d)) b))))> |
#<alt (* 2 b)> |
#<alt (* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2)))> |
#<alt (* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2)))> |
#<alt (* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2)))> |
#<alt (* 2 (+ a (+ b d)))> |
#<alt (+ (* 2 c) (* 2 (+ a (+ b d))))> |
#<alt (+ (* 2 c) (* 2 (+ a (+ b d))))> |
#<alt (+ (* 2 c) (* 2 (+ a (+ b d))))> |
#<alt (* 2 c)> |
#<alt (* c (+ 2 (* 2 (/ (+ a (+ b d)) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a (+ b d)) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a (+ b d)) c))))> |
#<alt (* 2 c)> |
#<alt (* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2)))> |
#<alt (* 2 (+ a (+ b c)))> |
#<alt (+ (* 2 d) (* 2 (+ a (+ b c))))> |
#<alt (+ (* 2 d) (* 2 (+ a (+ b c))))> |
#<alt (+ (* 2 d) (* 2 (+ a (+ b c))))> |
#<alt (* 2 d)> |
#<alt (* d (+ 2 (* 2 (/ (+ a (+ b c)) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a (+ b c)) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a (+ b c)) d))))> |
#<alt (* 2 d)> |
#<alt (* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2)))> |
#<alt (+ b (+ c d))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt a> |
#<alt (* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a)))))> |
#<alt (* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a)))))> |
#<alt (* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a)))))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1)))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt b> |
#<alt (* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b)))))> |
#<alt (* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b)))))> |
#<alt (* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b)))))> |
#<alt b> |
#<alt (* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1)))> |
#<alt (+ a (+ b d))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt c> |
#<alt (* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c)))))> |
#<alt (* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c)))))> |
#<alt (* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c)))))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1)))> |
#<alt (+ a (+ b c))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt d> |
#<alt (* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d)))))> |
#<alt (* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d)))))> |
#<alt (* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d)))))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1)))> |
#<alt (+ c d)> |
#<alt (+ b (+ c d))> |
#<alt (+ b (+ c d))> |
#<alt (+ b (+ c d))> |
#<alt b> |
#<alt (* b (+ 1 (+ (/ c b) (/ d b))))> |
#<alt (* b (+ 1 (+ (/ c b) (/ d b))))> |
#<alt (* b (+ 1 (+ (/ c b) (/ d b))))> |
#<alt b> |
#<alt (* -1 (* b (- (* -1 (/ (+ c d) b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ (+ c d) b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ (+ c d) b)) 1)))> |
#<alt (+ b d)> |
#<alt (+ b (+ c d))> |
#<alt (+ b (+ c d))> |
#<alt (+ b (+ c d))> |
#<alt c> |
#<alt (* c (+ 1 (+ (/ b c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ b c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ b c) (/ d c))))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ (+ b d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ b d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ b d) c)) 1)))> |
#<alt (+ b c)> |
#<alt (+ b (+ c d))> |
#<alt (+ b (+ c d))> |
#<alt (+ b (+ c d))> |
#<alt d> |
#<alt (* d (+ 1 (+ (/ b d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ b d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ b d) (/ c d))))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ (+ b c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ b c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ b c) d)) 1)))> |
#<alt d> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt c> |
#<alt (* c (+ 1 (/ d c)))> |
#<alt (* c (+ 1 (/ d c)))> |
#<alt (* c (+ 1 (/ d c)))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ d c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ d c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ d c)) 1)))> |
#<alt c> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt d> |
#<alt (* d (+ 1 (/ c d)))> |
#<alt (* d (+ 1 (/ c d)))> |
#<alt (* d (+ 1 (/ c d)))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ c d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ c d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ c d)) 1)))> |
39 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | a | @ | 0 | (* (+ a (+ b (+ c d))) 2) |
| 0.0ms | d | @ | inf | (+ a (+ b (+ c d))) |
| 0.0ms | b | @ | -inf | (* (+ a (+ b (+ c d))) 2) |
| 0.0ms | a | @ | inf | (* (+ a (+ b (+ c d))) 2) |
| 0.0ms | a | @ | -inf | (* (+ a (+ b (+ c d))) 2) |
| 1× | batch-egg-rewrite |
| 288× | sum3-define |
| 228× | fma-define |
| 200× | fma-lowering-fma.f32 |
| 200× | +-lowering-+.f64 |
| 200× | +-lowering-+.f32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 24 |
| 1 | 17 | 19 |
| 2 | 62 | 19 |
| 3 | 202 | 19 |
| 4 | 477 | 19 |
| 5 | 618 | 19 |
| 6 | 633 | 19 |
| 0 | 633 | 19 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(* (+ a (+ b (+ c d))) 2) |
(+ a (+ b (+ c d))) |
(+ b (+ c d)) |
(+ c d) |
| Outputs |
|---|
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 a b)) (*.f64 (+.f64 c d) #s(literal 2 binary64))) |
(+.f64 (*.f64 (+.f64 c d) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 a b))) |
(+.f64 (*.f64 a #s(literal 2 binary64)) (*.f64 (+.f64 b (+.f64 c d)) #s(literal 2 binary64))) |
(+.f64 (*.f64 (+.f64 b (+.f64 c d)) #s(literal 2 binary64)) (*.f64 a #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) (*.f64 b #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 a d)) (*.f64 #s(literal 2 binary64) (+.f64 b c))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b c))) (*.f64 d #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 d (+.f64 a b))) (*.f64 c #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 b d)) (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(+.f64 (*.f64 b #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d)))) |
(+.f64 (*.f64 c #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 d (+.f64 a b)))) |
(+.f64 (*.f64 d #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b c)))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 b c)) (*.f64 #s(literal 2 binary64) (+.f64 a d))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 a c)) (*.f64 #s(literal 2 binary64) (+.f64 b d))) |
(fma.f64 a #s(literal 2 binary64) (*.f64 (+.f64 b (+.f64 c d)) #s(literal 2 binary64))) |
(fma.f64 b #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d)))) |
(fma.f64 c #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 d (+.f64 a b)))) |
(fma.f64 d #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b c)))) |
(fma.f64 (+.f64 c d) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 a b))) |
(fma.f64 (+.f64 b (+.f64 c d)) #s(literal 2 binary64) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) a (*.f64 (+.f64 b (+.f64 c d)) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) b (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d)))) |
(fma.f64 #s(literal 2 binary64) c (*.f64 #s(literal 2 binary64) (+.f64 d (+.f64 a b)))) |
(fma.f64 #s(literal 2 binary64) d (*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b c)))) |
(fma.f64 #s(literal 2 binary64) (+.f64 c d) (*.f64 #s(literal 2 binary64) (+.f64 a b))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c d)) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b c) (*.f64 #s(literal 2 binary64) (+.f64 a d))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a b) (*.f64 (+.f64 c d) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b c)) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 d (+.f64 a b)) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b d) (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d)) (*.f64 b #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a d) (*.f64 #s(literal 2 binary64) (+.f64 b c))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a c) (*.f64 #s(literal 2 binary64) (+.f64 b d))) |
(fma.f64 (+.f64 b c) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 a d))) |
(fma.f64 (+.f64 a b) #s(literal 2 binary64) (*.f64 (+.f64 c d) #s(literal 2 binary64))) |
(fma.f64 (+.f64 a (+.f64 b c)) #s(literal 2 binary64) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 (+.f64 d (+.f64 a b)) #s(literal 2 binary64) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 (+.f64 b d) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 (+.f64 a (+.f64 c d)) #s(literal 2 binary64) (*.f64 b #s(literal 2 binary64))) |
(fma.f64 (+.f64 a d) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 b c))) |
(fma.f64 (+.f64 a c) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 b d))) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b (+.f64 c d)))) |
(+.f64 a (+.f64 b (+.f64 c d))) |
(+.f64 b (+.f64 a (+.f64 c d))) |
(+.f64 c (+.f64 d (+.f64 a b))) |
(+.f64 d (+.f64 a (+.f64 b c))) |
(+.f64 (+.f64 c d) (+.f64 a b)) |
(+.f64 (+.f64 b (+.f64 c d)) a) |
(+.f64 (+.f64 b c) (+.f64 a d)) |
(+.f64 (+.f64 a b) (+.f64 c d)) |
(+.f64 (+.f64 a (+.f64 b c)) d) |
(+.f64 (+.f64 d (+.f64 a b)) c) |
(+.f64 (+.f64 b d) (+.f64 a c)) |
(+.f64 (+.f64 a (+.f64 c d)) b) |
(+.f64 (+.f64 a d) (+.f64 b c)) |
(+.f64 (+.f64 a c) (+.f64 b d)) |
(+.f64 b (+.f64 c d)) |
(+.f64 c (+.f64 b d)) |
(+.f64 d (+.f64 b c)) |
(+.f64 (+.f64 c d) b) |
(+.f64 (+.f64 b c) d) |
(+.f64 (+.f64 b d) c) |
(+.f64 c d) |
(+.f64 d c) |
| 1× | egg-herbie |
| 3186× | *-lowering-*.f32 |
| 3186× | *-lowering-*.f64 |
| 1866× | fnmadd-define |
| 1502× | +-lowering-+.f64 |
| 1502× | +-lowering-+.f32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 137 | 1142 |
| 1 | 466 | 984 |
| 2 | 1468 | 942 |
| 3 | 4969 | 924 |
| 0 | 8414 | 924 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* 2 (+ b (+ c d))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(* 2 a) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(* 2 a) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(* 2 (+ a (+ c d))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(* 2 b) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(* 2 b) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(* 2 (+ a (+ b d))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(* 2 c) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(* 2 c) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(* 2 (+ a (+ b c))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(* 2 d) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(* 2 d) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(+ b (+ c d)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
a |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
a |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(+ a (+ c d)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
b |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
b |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(+ a (+ b d)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
c |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
c |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(+ a (+ b c)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
d |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
d |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(+ c d) |
(+ b (+ c d)) |
(+ b (+ c d)) |
(+ b (+ c d)) |
b |
(* b (+ 1 (+ (/ c b) (/ d b)))) |
(* b (+ 1 (+ (/ c b) (/ d b)))) |
(* b (+ 1 (+ (/ c b) (/ d b)))) |
b |
(* -1 (* b (- (* -1 (/ (+ c d) b)) 1))) |
(* -1 (* b (- (* -1 (/ (+ c d) b)) 1))) |
(* -1 (* b (- (* -1 (/ (+ c d) b)) 1))) |
(+ b d) |
(+ b (+ c d)) |
(+ b (+ c d)) |
(+ b (+ c d)) |
c |
(* c (+ 1 (+ (/ b c) (/ d c)))) |
(* c (+ 1 (+ (/ b c) (/ d c)))) |
(* c (+ 1 (+ (/ b c) (/ d c)))) |
c |
(* -1 (* c (- (* -1 (/ (+ b d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ b d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ b d) c)) 1))) |
(+ b c) |
(+ b (+ c d)) |
(+ b (+ c d)) |
(+ b (+ c d)) |
d |
(* d (+ 1 (+ (/ b d) (/ c d)))) |
(* d (+ 1 (+ (/ b d) (/ c d)))) |
(* d (+ 1 (+ (/ b d) (/ c d)))) |
d |
(* -1 (* d (- (* -1 (/ (+ b c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ b c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ b c) d)) 1))) |
d |
(+ c d) |
(+ c d) |
(+ c d) |
c |
(* c (+ 1 (/ d c))) |
(* c (+ 1 (/ d c))) |
(* c (+ 1 (/ d c))) |
c |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
c |
(+ c d) |
(+ c d) |
(+ c d) |
d |
(* d (+ 1 (/ c d))) |
(* d (+ 1 (/ c d))) |
(* d (+ 1 (/ c d))) |
d |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
| Outputs |
|---|
(* 2 (+ b (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c d))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 (+ a (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 (+.f64 c d) a)) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 (+ a (+ b d))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 d a))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 (+ a (+ b c))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c a))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 (+.f64 c d) a))) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
a |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(*.f64 a (+.f64 (/.f64 b a) (+.f64 (/.f64 c a) (+.f64 #s(literal 1 binary64) (/.f64 d a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(*.f64 a (+.f64 (/.f64 b a) (+.f64 (/.f64 c a) (+.f64 #s(literal 1 binary64) (/.f64 d a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(*.f64 a (+.f64 (/.f64 b a) (+.f64 (/.f64 c a) (+.f64 #s(literal 1 binary64) (/.f64 d a))))) |
a |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(*.f64 a (+.f64 (/.f64 (+.f64 b (+.f64 c d)) a) #s(literal 1 binary64))) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(*.f64 a (+.f64 (/.f64 (+.f64 b (+.f64 c d)) a) #s(literal 1 binary64))) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(*.f64 a (+.f64 (/.f64 (+.f64 b (+.f64 c d)) a) #s(literal 1 binary64))) |
(+ a (+ c d)) |
(+.f64 (+.f64 c d) a) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
b |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (+.f64 (/.f64 a b) (+.f64 (/.f64 c b) (/.f64 d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (+.f64 (/.f64 a b) (+.f64 (/.f64 c b) (/.f64 d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (+.f64 (/.f64 a b) (+.f64 (/.f64 c b) (/.f64 d b))))) |
b |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(*.f64 b (+.f64 (/.f64 (+.f64 (+.f64 c d) a) b) #s(literal 1 binary64))) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(*.f64 b (+.f64 (/.f64 (+.f64 (+.f64 c d) a) b) #s(literal 1 binary64))) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(*.f64 b (+.f64 (/.f64 (+.f64 (+.f64 c d) a) b) #s(literal 1 binary64))) |
(+ a (+ b d)) |
(+.f64 b (+.f64 d a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
c |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(+.f64 (*.f64 (+.f64 (/.f64 a c) (+.f64 #s(literal 1 binary64) (/.f64 b c))) c) d) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(+.f64 (*.f64 (+.f64 (/.f64 a c) (+.f64 #s(literal 1 binary64) (/.f64 b c))) c) d) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(+.f64 (*.f64 (+.f64 (/.f64 a c) (+.f64 #s(literal 1 binary64) (/.f64 b c))) c) d) |
c |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(*.f64 c (+.f64 (/.f64 (+.f64 b (+.f64 d a)) c) #s(literal 1 binary64))) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(*.f64 c (+.f64 (/.f64 (+.f64 b (+.f64 d a)) c) #s(literal 1 binary64))) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(*.f64 c (+.f64 (/.f64 (+.f64 b (+.f64 d a)) c) #s(literal 1 binary64))) |
(+ a (+ b c)) |
(+.f64 b (+.f64 c a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
(+ a (+ b (+ c d))) |
(+.f64 b (+.f64 (+.f64 c d) a)) |
d |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(+.f64 (*.f64 d (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 b d)))) c) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(+.f64 (*.f64 d (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 b d)))) c) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(+.f64 (*.f64 d (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 b d)))) c) |
d |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(*.f64 d (+.f64 (/.f64 (+.f64 b (+.f64 c a)) d) #s(literal 1 binary64))) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(*.f64 d (+.f64 (/.f64 (+.f64 b (+.f64 c a)) d) #s(literal 1 binary64))) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(*.f64 d (+.f64 (/.f64 (+.f64 b (+.f64 c a)) d) #s(literal 1 binary64))) |
(+ c d) |
(+.f64 c d) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
b |
(* b (+ 1 (+ (/ c b) (/ d b)))) |
(*.f64 b (+.f64 (/.f64 c b) (+.f64 #s(literal 1 binary64) (/.f64 d b)))) |
(* b (+ 1 (+ (/ c b) (/ d b)))) |
(*.f64 b (+.f64 (/.f64 c b) (+.f64 #s(literal 1 binary64) (/.f64 d b)))) |
(* b (+ 1 (+ (/ c b) (/ d b)))) |
(*.f64 b (+.f64 (/.f64 c b) (+.f64 #s(literal 1 binary64) (/.f64 d b)))) |
b |
(* -1 (* b (- (* -1 (/ (+ c d) b)) 1))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 c d) b))) |
(* -1 (* b (- (* -1 (/ (+ c d) b)) 1))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 c d) b))) |
(* -1 (* b (- (* -1 (/ (+ c d) b)) 1))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 c d) b))) |
(+ b d) |
(+.f64 b d) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
c |
(* c (+ 1 (+ (/ b c) (/ d c)))) |
(+.f64 d (*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c)))) |
(* c (+ 1 (+ (/ b c) (/ d c)))) |
(+.f64 d (*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c)))) |
(* c (+ 1 (+ (/ b c) (/ d c)))) |
(+.f64 d (*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c)))) |
c |
(* -1 (* c (- (* -1 (/ (+ b d) c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 b d) c))) |
(* -1 (* c (- (* -1 (/ (+ b d) c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 b d) c))) |
(* -1 (* c (- (* -1 (/ (+ b d) c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 b d) c))) |
(+ b c) |
(+.f64 b c) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
(+ b (+ c d)) |
(+.f64 b (+.f64 c d)) |
d |
(* d (+ 1 (+ (/ b d) (/ c d)))) |
(+.f64 c (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 b d)))) |
(* d (+ 1 (+ (/ b d) (/ c d)))) |
(+.f64 c (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 b d)))) |
(* d (+ 1 (+ (/ b d) (/ c d)))) |
(+.f64 c (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 b d)))) |
d |
(* -1 (* d (- (* -1 (/ (+ b c) d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 b c) d))) |
(* -1 (* d (- (* -1 (/ (+ b c) d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 b c) d))) |
(* -1 (* d (- (* -1 (/ (+ b c) d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 b c) d))) |
d |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
c |
(* c (+ 1 (/ d c))) |
(+.f64 c d) |
(* c (+ 1 (/ d c))) |
(+.f64 c d) |
(* c (+ 1 (/ d c))) |
(+.f64 c d) |
c |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(+.f64 c d) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(+.f64 c d) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(+.f64 c d) |
c |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
d |
(* d (+ 1 (/ c d))) |
(+.f64 c d) |
(* d (+ 1 (/ c d))) |
(+.f64 c d) |
(* d (+ 1 (/ c d))) |
(+.f64 c d) |
d |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(+.f64 c d) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(+.f64 c d) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(+.f64 c d) |
Compiled 2114 to 220 computations (89.6% saved)
5 alts after pruning (5 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 217 | 5 | 222 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 218 | 5 | 223 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 11.3% | (*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
| ▶ | 100.0% | (*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
| ▶ | 8.6% | (*.f64 (+.f64 a d) #s(literal 2 binary64)) |
| ▶ | 11.2% | (*.f64 c #s(literal 2 binary64)) |
| ▶ | 6.5% | (*.f64 b #s(literal 2 binary64)) |
Compiled 94 to 72 computations (23.4% saved)
| 1× | egg-herbie |
Found 11 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | cost-diff | 0 | (+.f64 c d) |
| ✓ | cost-diff | 0 | (+.f64 (+.f64 c d) a) |
| ✓ | cost-diff | 0 | (*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
| ✓ | cost-diff | 0 | (+.f64 a d) |
| ✓ | cost-diff | 0 | (*.f64 (+.f64 a d) #s(literal 2 binary64)) |
| ✓ | cost-diff | 0 | (*.f64 c #s(literal 2 binary64)) |
| ✓ | cost-diff | 0 | (*.f64 b #s(literal 2 binary64)) |
| ✓ | cost-diff | 0 | (+.f64 a d) |
| ✓ | cost-diff | 0 | (+.f64 b c) |
| ✓ | cost-diff | 0 | (+.f64 (+.f64 b c) (+.f64 a d)) |
| ✓ | cost-diff | 0 | (*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
| 288× | sum3-define |
| 248× | fma-define |
| 200× | fma-lowering-fma.f32 |
| 200× | +-lowering-+.f64 |
| 200× | +-lowering-+.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 61 |
| 1 | 34 | 61 |
| 2 | 98 | 61 |
| 3 | 295 | 61 |
| 4 | 496 | 61 |
| 5 | 600 | 61 |
| 6 | 604 | 61 |
| 0 | 604 | 61 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(* (+ (+ b c) (+ a d)) 2) |
(+ (+ b c) (+ a d)) |
(+ b c) |
b |
c |
(+ a d) |
a |
d |
2 |
(* b 2) |
b |
2 |
(* c 2) |
c |
2 |
(* (+ a d) 2) |
(+ a d) |
a |
d |
2 |
(* (+ (+ c d) a) 2) |
(+ (+ c d) a) |
(+ c d) |
c |
d |
a |
2 |
| Outputs |
|---|
(* (+ (+ b c) (+ a d)) 2) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
(+ (+ b c) (+ a d)) |
(+.f64 a (+.f64 b (+.f64 c d))) |
(+ b c) |
(+.f64 b c) |
b |
c |
(+ a d) |
(+.f64 a d) |
a |
d |
2 |
#s(literal 2 binary64) |
(* b 2) |
(*.f64 b #s(literal 2 binary64)) |
b |
2 |
#s(literal 2 binary64) |
(* c 2) |
(*.f64 c #s(literal 2 binary64)) |
c |
2 |
#s(literal 2 binary64) |
(* (+ a d) 2) |
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
(+ a d) |
(+.f64 a d) |
a |
d |
2 |
#s(literal 2 binary64) |
(* (+ (+ c d) a) 2) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d))) |
(+ (+ c d) a) |
(+.f64 c (+.f64 a d)) |
(+ c d) |
(+.f64 c d) |
c |
d |
a |
2 |
#s(literal 2 binary64) |
Found 11 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | accuracy | 100.0% | (+.f64 c d) |
| ✓ | accuracy | 100.0% | (*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
| ✓ | accuracy | 98.1% | (+.f64 (+.f64 c d) a) |
| ✓ | accuracy | 100.0% | (+.f64 a d) |
| ✓ | accuracy | 100.0% | (*.f64 (+.f64 a d) #s(literal 2 binary64)) |
| ✓ | accuracy | 100.0% | (*.f64 c #s(literal 2 binary64)) |
| ✓ | accuracy | 100.0% | (*.f64 b #s(literal 2 binary64)) |
| ✓ | accuracy | 100.0% | (+.f64 (+.f64 b c) (+.f64 a d)) |
| ✓ | accuracy | 100.0% | (+.f64 b c) |
| ✓ | accuracy | 100.0% | (+.f64 a d) |
| ✓ | accuracy | 100.0% | (*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
| 358.0ms | 256× | 0 | valid |
Compiled 72 to 16 computations (77.8% saved)
ival-mult: 7.0ms (51.9% of total)ival-add: 6.0ms (44.5% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| Inputs |
|---|
#<alt (* (+ (+ b c) (+ a d)) 2)> |
#<alt (+ (+ b c) (+ a d))> |
#<alt (+ b c)> |
#<alt (+ a d)> |
#<alt (* b 2)> |
#<alt (* c 2)> |
#<alt (* (+ a d) 2)> |
#<alt (* (+ (+ c d) a) 2)> |
#<alt (+ (+ c d) a)> |
#<alt (+ c d)> |
| Outputs |
|---|
#<alt (* 2 (+ a (+ c d)))> |
#<alt (+ (* 2 b) (* 2 (+ a (+ c d))))> |
#<alt (+ (* 2 b) (* 2 (+ a (+ c d))))> |
#<alt (+ (* 2 b) (* 2 (+ a (+ c d))))> |
#<alt (* 2 b)> |
#<alt (* b (+ 2 (* 2 (/ (+ a (+ c d)) b))))> |
#<alt (* b (+ 2 (* 2 (/ (+ a (+ c d)) b))))> |
#<alt (* b (+ 2 (* 2 (/ (+ a (+ c d)) b))))> |
#<alt (* 2 b)> |
#<alt (* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2)))> |
#<alt (* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2)))> |
#<alt (* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2)))> |
#<alt (* 2 (+ a (+ b d)))> |
#<alt (+ (* 2 c) (* 2 (+ a (+ b d))))> |
#<alt (+ (* 2 c) (* 2 (+ a (+ b d))))> |
#<alt (+ (* 2 c) (* 2 (+ a (+ b d))))> |
#<alt (* 2 c)> |
#<alt (* c (+ 2 (* 2 (/ (+ a (+ b d)) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a (+ b d)) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a (+ b d)) c))))> |
#<alt (* 2 c)> |
#<alt (* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2)))> |
#<alt (* 2 (+ b (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ b (+ c d))))> |
#<alt (+ (* 2 a) (* 2 (+ b (+ c d))))> |
#<alt (+ (* 2 a) (* 2 (+ b (+ c d))))> |
#<alt (* 2 a)> |
#<alt (* a (+ 2 (* 2 (/ (+ b (+ c d)) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ b (+ c d)) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ b (+ c d)) a))))> |
#<alt (* 2 a)> |
#<alt (* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2)))> |
#<alt (* 2 (+ a (+ b c)))> |
#<alt (+ (* 2 d) (* 2 (+ a (+ b c))))> |
#<alt (+ (* 2 d) (* 2 (+ a (+ b c))))> |
#<alt (+ (* 2 d) (* 2 (+ a (+ b c))))> |
#<alt (* 2 d)> |
#<alt (* d (+ 2 (* 2 (/ (+ a (+ b c)) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a (+ b c)) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a (+ b c)) d))))> |
#<alt (* 2 d)> |
#<alt (* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2)))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt b> |
#<alt (* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b)))))> |
#<alt (* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b)))))> |
#<alt (* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b)))))> |
#<alt b> |
#<alt (* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1)))> |
#<alt (+ a (+ b d))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt c> |
#<alt (* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c)))))> |
#<alt (* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c)))))> |
#<alt (* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c)))))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1)))> |
#<alt (+ b (+ c d))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt a> |
#<alt (* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a)))))> |
#<alt (* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a)))))> |
#<alt (* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a)))))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1)))> |
#<alt (+ a (+ b c))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt (+ a (+ b (+ c d)))> |
#<alt d> |
#<alt (* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d)))))> |
#<alt (* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d)))))> |
#<alt (* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d)))))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1)))> |
#<alt c> |
#<alt (+ b c)> |
#<alt (+ b c)> |
#<alt (+ b c)> |
#<alt b> |
#<alt (* b (+ 1 (/ c b)))> |
#<alt (* b (+ 1 (/ c b)))> |
#<alt (* b (+ 1 (/ c b)))> |
#<alt b> |
#<alt (* -1 (* b (- (* -1 (/ c b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ c b)) 1)))> |
#<alt (* -1 (* b (- (* -1 (/ c b)) 1)))> |
#<alt b> |
#<alt (+ b c)> |
#<alt (+ b c)> |
#<alt (+ b c)> |
#<alt c> |
#<alt (* c (+ 1 (/ b c)))> |
#<alt (* c (+ 1 (/ b c)))> |
#<alt (* c (+ 1 (/ b c)))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ b c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ b c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ b c)) 1)))> |
#<alt d> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt a> |
#<alt (* a (+ 1 (/ d a)))> |
#<alt (* a (+ 1 (/ d a)))> |
#<alt (* a (+ 1 (/ d a)))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ d a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ d a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ d a)) 1)))> |
#<alt a> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt d> |
#<alt (* d (+ 1 (/ a d)))> |
#<alt (* d (+ 1 (/ a d)))> |
#<alt (* d (+ 1 (/ a d)))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ a d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ a d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ a d)) 1)))> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 b)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 c)> |
#<alt (* 2 d)> |
#<alt (+ (* 2 a) (* 2 d))> |
#<alt (+ (* 2 a) (* 2 d))> |
#<alt (+ (* 2 a) (* 2 d))> |
#<alt (* 2 a)> |
#<alt (* a (+ 2 (* 2 (/ d a))))> |
#<alt (* a (+ 2 (* 2 (/ d a))))> |
#<alt (* a (+ 2 (* 2 (/ d a))))> |
#<alt (* 2 a)> |
#<alt (* -1 (* a (- (* -2 (/ d a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ d a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ d a)) 2)))> |
#<alt (* 2 a)> |
#<alt (+ (* 2 a) (* 2 d))> |
#<alt (+ (* 2 a) (* 2 d))> |
#<alt (+ (* 2 a) (* 2 d))> |
#<alt (* 2 d)> |
#<alt (* d (+ 2 (* 2 (/ a d))))> |
#<alt (* d (+ 2 (* 2 (/ a d))))> |
#<alt (* d (+ 2 (* 2 (/ a d))))> |
#<alt (* 2 d)> |
#<alt (* -1 (* d (- (* -2 (/ a d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ a d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ a d)) 2)))> |
#<alt (* 2 (+ a d))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (* 2 c)> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* 2 c)> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* 2 (+ a c))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (* 2 d)> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* 2 d)> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* 2 (+ c d))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (* 2 a)> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* 2 a)> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (+ a d)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt c> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (+ a c)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt d> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (+ c d)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt a> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt d> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt c> |
#<alt (* c (+ 1 (/ d c)))> |
#<alt (* c (+ 1 (/ d c)))> |
#<alt (* c (+ 1 (/ d c)))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ d c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ d c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ d c)) 1)))> |
#<alt c> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt (+ c d)> |
#<alt d> |
#<alt (* d (+ 1 (/ c d)))> |
#<alt (* d (+ 1 (/ c d)))> |
#<alt (* d (+ 1 (/ c d)))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ c d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ c d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ c d)) 1)))> |
72 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | c | @ | inf | (+ (+ c d) a) |
| 1.0ms | d | @ | 0 | (* (+ (+ c d) a) 2) |
| 0.0ms | b | @ | inf | (* b 2) |
| 0.0ms | b | @ | -inf | (* b 2) |
| 0.0ms | b | @ | 0 | (* b 2) |
| 1× | batch-egg-rewrite |
| 288× | sum3-define |
| 248× | fma-define |
| 200× | fma-lowering-fma.f32 |
| 200× | +-lowering-+.f64 |
| 200× | +-lowering-+.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 42 |
| 1 | 34 | 42 |
| 2 | 98 | 42 |
| 3 | 295 | 42 |
| 4 | 496 | 42 |
| 5 | 600 | 42 |
| 6 | 604 | 42 |
| 0 | 604 | 42 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(* (+ (+ b c) (+ a d)) 2) |
(+ (+ b c) (+ a d)) |
(+ b c) |
(+ a d) |
(* b 2) |
(* c 2) |
(* (+ a d) 2) |
(* (+ (+ c d) a) 2) |
(+ (+ c d) a) |
(+ c d) |
| Outputs |
|---|
(+.f64 (*.f64 b #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d)))) |
(+.f64 (*.f64 c #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 a d)))) |
(+.f64 (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 (+.f64 b c) #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d))) (*.f64 b #s(literal 2 binary64))) |
(+.f64 (*.f64 (+.f64 b c) #s(literal 2 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c a))) (*.f64 d #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 c d)) (*.f64 #s(literal 2 binary64) (+.f64 b a))) |
(+.f64 (*.f64 d #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c a)))) |
(+.f64 (*.f64 a #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c d)))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 c a)) (*.f64 #s(literal 2 binary64) (+.f64 b d))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 b a)) (*.f64 #s(literal 2 binary64) (+.f64 c d))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c d))) (*.f64 a #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 a d))) (*.f64 c #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 b d)) (*.f64 #s(literal 2 binary64) (+.f64 c a))) |
(fma.f64 b #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d)))) |
(fma.f64 c #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 a d)))) |
(fma.f64 (+.f64 b c) #s(literal 2 binary64) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 a #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c d)))) |
(fma.f64 d #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c a)))) |
(fma.f64 (+.f64 a d) #s(literal 2 binary64) (*.f64 (+.f64 b c) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) b (*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d)))) |
(fma.f64 #s(literal 2 binary64) c (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 a d)))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b c) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) a (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c d)))) |
(fma.f64 #s(literal 2 binary64) d (*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c a)))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a d) (*.f64 (+.f64 b c) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 c d) (*.f64 #s(literal 2 binary64) (+.f64 b a))) |
(fma.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d)) (*.f64 b #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c a)) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 c a) (*.f64 #s(literal 2 binary64) (+.f64 b d))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b a) (*.f64 #s(literal 2 binary64) (+.f64 c d))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b (+.f64 c d)) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b (+.f64 a d)) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 b d) (*.f64 #s(literal 2 binary64) (+.f64 c a))) |
(fma.f64 (+.f64 c d) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 b a))) |
(fma.f64 (+.f64 c (+.f64 a d)) #s(literal 2 binary64) (*.f64 b #s(literal 2 binary64))) |
(fma.f64 (+.f64 b (+.f64 c a)) #s(literal 2 binary64) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 (+.f64 c a) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 b d))) |
(fma.f64 (+.f64 b a) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 c d))) |
(fma.f64 (+.f64 b (+.f64 c d)) #s(literal 2 binary64) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 (+.f64 b (+.f64 a d)) #s(literal 2 binary64) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 (+.f64 b d) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 c a))) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b (+.f64 c d)))) |
(+.f64 b (+.f64 c (+.f64 a d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+.f64 (+.f64 b c) (+.f64 a d)) |
(+.f64 a (+.f64 b (+.f64 c d))) |
(+.f64 d (+.f64 b (+.f64 c a))) |
(+.f64 (+.f64 a d) (+.f64 b c)) |
(+.f64 (+.f64 c d) (+.f64 b a)) |
(+.f64 (+.f64 c (+.f64 a d)) b) |
(+.f64 (+.f64 b (+.f64 c a)) d) |
(+.f64 (+.f64 c a) (+.f64 b d)) |
(+.f64 (+.f64 b a) (+.f64 c d)) |
(+.f64 (+.f64 b (+.f64 c d)) a) |
(+.f64 (+.f64 b (+.f64 a d)) c) |
(+.f64 (+.f64 b d) (+.f64 c a)) |
(+.f64 b c) |
(+.f64 c b) |
(+.f64 a d) |
(+.f64 d a) |
(*.f64 b #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) b) |
(*.f64 c #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) c) |
(+.f64 (*.f64 d #s(literal 2 binary64)) (*.f64 a #s(literal 2 binary64))) |
(+.f64 (*.f64 a #s(literal 2 binary64)) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 a #s(literal 2 binary64) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 d #s(literal 2 binary64) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) a (*.f64 d #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) d (*.f64 a #s(literal 2 binary64))) |
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(+.f64 (*.f64 c #s(literal 2 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(+.f64 (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 c #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 c d)) (*.f64 a #s(literal 2 binary64))) |
(+.f64 (*.f64 d #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 c a))) |
(+.f64 (*.f64 a #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 c d))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 c a)) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 c #s(literal 2 binary64) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 a #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 c d))) |
(fma.f64 d #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 c a))) |
(fma.f64 (+.f64 a d) #s(literal 2 binary64) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) c (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) a (*.f64 #s(literal 2 binary64) (+.f64 c d))) |
(fma.f64 #s(literal 2 binary64) d (*.f64 #s(literal 2 binary64) (+.f64 c a))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a d) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 c d) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 c a) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 (+.f64 c d) #s(literal 2 binary64) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 (+.f64 c a) #s(literal 2 binary64) (*.f64 d #s(literal 2 binary64))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d))) |
(*.f64 (+.f64 c (+.f64 a d)) #s(literal 2 binary64)) |
(+.f64 c (+.f64 a d)) |
(+.f64 a (+.f64 c d)) |
(+.f64 d (+.f64 c a)) |
(+.f64 (+.f64 a d) c) |
(+.f64 (+.f64 c d) a) |
(+.f64 (+.f64 c a) d) |
(+.f64 c d) |
(+.f64 d c) |
| 1× | egg-herbie |
| 4722× | *-lowering-*.f32 |
| 4722× | *-lowering-*.f64 |
| 1998× | +-lowering-+.f64 |
| 1998× | +-lowering-+.f32 |
| 1550× | fma-lowering-fma.f32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 207 | 2024 |
| 1 | 710 | 1827 |
| 2 | 2081 | 1749 |
| 3 | 6546 | 1749 |
| 0 | 8042 | 1749 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* 2 (+ a (+ c d))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(* 2 b) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(* 2 b) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(* 2 (+ a (+ b d))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(* 2 c) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(* 2 c) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(* 2 (+ b (+ c d))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(* 2 a) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(* 2 a) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(* 2 (+ a (+ b c))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(* 2 d) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(* 2 d) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(+ a (+ c d)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
b |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
b |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(+ a (+ b d)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
c |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
c |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(+ b (+ c d)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
a |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
a |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(+ a (+ b c)) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
(+ a (+ b (+ c d))) |
d |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
d |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
c |
(+ b c) |
(+ b c) |
(+ b c) |
b |
(* b (+ 1 (/ c b))) |
(* b (+ 1 (/ c b))) |
(* b (+ 1 (/ c b))) |
b |
(* -1 (* b (- (* -1 (/ c b)) 1))) |
(* -1 (* b (- (* -1 (/ c b)) 1))) |
(* -1 (* b (- (* -1 (/ c b)) 1))) |
b |
(+ b c) |
(+ b c) |
(+ b c) |
c |
(* c (+ 1 (/ b c))) |
(* c (+ 1 (/ b c))) |
(* c (+ 1 (/ b c))) |
c |
(* -1 (* c (- (* -1 (/ b c)) 1))) |
(* -1 (* c (- (* -1 (/ b c)) 1))) |
(* -1 (* c (- (* -1 (/ b c)) 1))) |
d |
(+ a d) |
(+ a d) |
(+ a d) |
a |
(* a (+ 1 (/ d a))) |
(* a (+ 1 (/ d a))) |
(* a (+ 1 (/ d a))) |
a |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
a |
(+ a d) |
(+ a d) |
(+ a d) |
d |
(* d (+ 1 (/ a d))) |
(* d (+ 1 (/ a d))) |
(* d (+ 1 (/ a d))) |
d |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 b) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 c) |
(* 2 d) |
(+ (* 2 a) (* 2 d)) |
(+ (* 2 a) (* 2 d)) |
(+ (* 2 a) (* 2 d)) |
(* 2 a) |
(* a (+ 2 (* 2 (/ d a)))) |
(* a (+ 2 (* 2 (/ d a)))) |
(* a (+ 2 (* 2 (/ d a)))) |
(* 2 a) |
(* -1 (* a (- (* -2 (/ d a)) 2))) |
(* -1 (* a (- (* -2 (/ d a)) 2))) |
(* -1 (* a (- (* -2 (/ d a)) 2))) |
(* 2 a) |
(+ (* 2 a) (* 2 d)) |
(+ (* 2 a) (* 2 d)) |
(+ (* 2 a) (* 2 d)) |
(* 2 d) |
(* d (+ 2 (* 2 (/ a d)))) |
(* d (+ 2 (* 2 (/ a d)))) |
(* d (+ 2 (* 2 (/ a d)))) |
(* 2 d) |
(* -1 (* d (- (* -2 (/ a d)) 2))) |
(* -1 (* d (- (* -2 (/ a d)) 2))) |
(* -1 (* d (- (* -2 (/ a d)) 2))) |
(* 2 (+ a d)) |
(+ (* 2 c) (* 2 (+ a d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(* 2 c) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* 2 c) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* 2 (+ a c)) |
(+ (* 2 d) (* 2 (+ a c))) |
(+ (* 2 d) (* 2 (+ a c))) |
(+ (* 2 d) (* 2 (+ a c))) |
(* 2 d) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* 2 d) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* 2 (+ c d)) |
(+ (* 2 a) (* 2 (+ c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(* 2 a) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* 2 a) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(+ a d) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
c |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
c |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+ a c) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
d |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
d |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+ c d) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
a |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
a |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
d |
(+ c d) |
(+ c d) |
(+ c d) |
c |
(* c (+ 1 (/ d c))) |
(* c (+ 1 (/ d c))) |
(* c (+ 1 (/ d c))) |
c |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
c |
(+ c d) |
(+ c d) |
(+ c d) |
d |
(* d (+ 1 (/ c d))) |
(* d (+ 1 (/ c d))) |
(* d (+ 1 (/ c d))) |
d |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
| Outputs |
|---|
(* 2 (+ a (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 b) (* 2 (+ a (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(*.f64 b (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 a (+.f64 c d)) b)) #s(literal -2 binary64))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(*.f64 b (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 a (+.f64 c d)) b)) #s(literal -2 binary64))) |
(* b (+ 2 (* 2 (/ (+ a (+ c d)) b)))) |
(*.f64 b (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 a (+.f64 c d)) b)) #s(literal -2 binary64))) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(*.f64 b (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 a (+.f64 c d)) b)) #s(literal -2 binary64))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(*.f64 b (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 a (+.f64 c d)) b)) #s(literal -2 binary64))) |
(* -1 (* b (- (* -2 (/ (+ a (+ c d)) b)) 2))) |
(*.f64 b (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 a (+.f64 c d)) b)) #s(literal -2 binary64))) |
(* 2 (+ a (+ b d))) |
(*.f64 #s(literal 2 binary64) (+.f64 b (+.f64 a d))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 c) (* 2 (+ a (+ b d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (/.f64 (+.f64 b (+.f64 a d)) c)))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (/.f64 (+.f64 b (+.f64 a d)) c)))) |
(* c (+ 2 (* 2 (/ (+ a (+ b d)) c)))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (/.f64 (+.f64 b (+.f64 a d)) c)))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (/.f64 (+.f64 b (+.f64 a d)) c)))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (/.f64 (+.f64 b (+.f64 a d)) c)))) |
(* -1 (* c (- (* -2 (/ (+ a (+ b d)) c)) 2))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (/.f64 (+.f64 b (+.f64 a d)) c)))) |
(* 2 (+ b (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d b))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 a) (* 2 (+ b (+ c d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) a)) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) a)) |
(* a (+ 2 (* 2 (/ (+ b (+ c d)) a)))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) a)) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) a)) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) a)) |
(* -1 (* a (- (* -2 (/ (+ b (+ c d)) a)) 2))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) a)) |
(* 2 (+ a (+ b c))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c b))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(+ (* 2 d) (* 2 (+ a (+ b c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 b (+.f64 a d)))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d)) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d)) |
(* d (+ 2 (* 2 (/ (+ a (+ b c)) d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d)) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d)) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d)) |
(* -1 (* d (- (* -2 (/ (+ a (+ b c)) d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d)) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
b |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(*.f64 b (+.f64 (/.f64 a b) (+.f64 (/.f64 c b) (+.f64 #s(literal 1 binary64) (/.f64 d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(*.f64 b (+.f64 (/.f64 a b) (+.f64 (/.f64 c b) (+.f64 #s(literal 1 binary64) (/.f64 d b))))) |
(* b (+ 1 (+ (/ a b) (+ (/ c b) (/ d b))))) |
(*.f64 b (+.f64 (/.f64 a b) (+.f64 (/.f64 c b) (+.f64 #s(literal 1 binary64) (/.f64 d b))))) |
b |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c d)) b) #s(literal 1 binary64)) b) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c d)) b) #s(literal 1 binary64)) b) |
(* -1 (* b (- (* -1 (/ (+ a (+ c d)) b)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c d)) b) #s(literal 1 binary64)) b) |
(+ a (+ b d)) |
(+.f64 b (+.f64 a d)) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
c |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(*.f64 c (+.f64 (/.f64 d c) (+.f64 (/.f64 b c) (+.f64 #s(literal 1 binary64) (/.f64 a c))))) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(*.f64 c (+.f64 (/.f64 d c) (+.f64 (/.f64 b c) (+.f64 #s(literal 1 binary64) (/.f64 a c))))) |
(* c (+ 1 (+ (/ a c) (+ (/ b c) (/ d c))))) |
(*.f64 c (+.f64 (/.f64 d c) (+.f64 (/.f64 b c) (+.f64 #s(literal 1 binary64) (/.f64 a c))))) |
c |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 b (+.f64 a d)) c) #s(literal 1 binary64)) c) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 b (+.f64 a d)) c) #s(literal 1 binary64)) c) |
(* -1 (* c (- (* -1 (/ (+ a (+ b d)) c)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 b (+.f64 a d)) c) #s(literal 1 binary64)) c) |
(+ b (+ c d)) |
(+.f64 c (+.f64 d b)) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
a |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(*.f64 a (+.f64 (/.f64 b a) (+.f64 (/.f64 d a) (+.f64 #s(literal 1 binary64) (/.f64 c a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(*.f64 a (+.f64 (/.f64 b a) (+.f64 (/.f64 d a) (+.f64 #s(literal 1 binary64) (/.f64 c a))))) |
(* a (+ 1 (+ (/ b a) (+ (/ c a) (/ d a))))) |
(*.f64 a (+.f64 (/.f64 b a) (+.f64 (/.f64 d a) (+.f64 #s(literal 1 binary64) (/.f64 c a))))) |
a |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) a) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) a) |
(* -1 (* a (- (* -1 (/ (+ b (+ c d)) a)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 c (+.f64 d b)) a) #s(literal 1 binary64)) a) |
(+ a (+ b c)) |
(+.f64 a (+.f64 c b)) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
(+ a (+ b (+ c d))) |
(+.f64 c (+.f64 b (+.f64 a d))) |
d |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(*.f64 d (+.f64 (/.f64 b d) (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 c d))))) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(*.f64 d (+.f64 (/.f64 b d) (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 c d))))) |
(* d (+ 1 (+ (/ a d) (+ (/ b d) (/ c d))))) |
(*.f64 d (+.f64 (/.f64 b d) (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 c d))))) |
d |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d) |
(* -1 (* d (- (* -1 (/ (+ a (+ b c)) d)) 1))) |
(*.f64 (+.f64 (/.f64 (+.f64 a (+.f64 c b)) d) #s(literal 1 binary64)) d) |
c |
(+ b c) |
(+.f64 c b) |
(+ b c) |
(+.f64 c b) |
(+ b c) |
(+.f64 c b) |
b |
(* b (+ 1 (/ c b))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 c b))) |
(* b (+ 1 (/ c b))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 c b))) |
(* b (+ 1 (/ c b))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 c b))) |
b |
(* -1 (* b (- (* -1 (/ c b)) 1))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 c b))) |
(* -1 (* b (- (* -1 (/ c b)) 1))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 c b))) |
(* -1 (* b (- (* -1 (/ c b)) 1))) |
(*.f64 b (+.f64 #s(literal 1 binary64) (/.f64 c b))) |
b |
(+ b c) |
(+.f64 c b) |
(+ b c) |
(+.f64 c b) |
(+ b c) |
(+.f64 c b) |
c |
(* c (+ 1 (/ b c))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c))) |
(* c (+ 1 (/ b c))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c))) |
(* c (+ 1 (/ b c))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c))) |
c |
(* -1 (* c (- (* -1 (/ b c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c))) |
(* -1 (* c (- (* -1 (/ b c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c))) |
(* -1 (* c (- (* -1 (/ b c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 b c))) |
d |
(+ a d) |
(+.f64 a d) |
(+ a d) |
(+.f64 a d) |
(+ a d) |
(+.f64 a d) |
a |
(* a (+ 1 (/ d a))) |
(*.f64 a (+.f64 #s(literal 1 binary64) (/.f64 d a))) |
(* a (+ 1 (/ d a))) |
(*.f64 a (+.f64 #s(literal 1 binary64) (/.f64 d a))) |
(* a (+ 1 (/ d a))) |
(*.f64 a (+.f64 #s(literal 1 binary64) (/.f64 d a))) |
a |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(*.f64 a (+.f64 #s(literal 1 binary64) (/.f64 d a))) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(*.f64 a (+.f64 #s(literal 1 binary64) (/.f64 d a))) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(*.f64 a (+.f64 #s(literal 1 binary64) (/.f64 d a))) |
a |
(+ a d) |
(+.f64 a d) |
(+ a d) |
(+.f64 a d) |
(+ a d) |
(+.f64 a d) |
d |
(* d (+ 1 (/ a d))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d))) |
(* d (+ 1 (/ a d))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d))) |
(* d (+ 1 (/ a d))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d))) |
d |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d))) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d))) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d))) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 b) |
(*.f64 #s(literal 2 binary64) b) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(+ (* 2 a) (* 2 d)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(+ (* 2 a) (* 2 d)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(+ (* 2 a) (* 2 d)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* a (+ 2 (* 2 (/ d a)))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 d a)) #s(literal -2 binary64))) |
(* a (+ 2 (* 2 (/ d a)))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 d a)) #s(literal -2 binary64))) |
(* a (+ 2 (* 2 (/ d a)))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 d a)) #s(literal -2 binary64))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* -1 (* a (- (* -2 (/ d a)) 2))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 d a)) #s(literal -2 binary64))) |
(* -1 (* a (- (* -2 (/ d a)) 2))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 d a)) #s(literal -2 binary64))) |
(* -1 (* a (- (* -2 (/ d a)) 2))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 d a)) #s(literal -2 binary64))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(+ (* 2 a) (* 2 d)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(+ (* 2 a) (* 2 d)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(+ (* 2 a) (* 2 d)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* d (+ 2 (* 2 (/ a d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d)))) |
(* d (+ 2 (* 2 (/ a d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d)))) |
(* d (+ 2 (* 2 (/ a d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d)))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* -1 (* d (- (* -2 (/ a d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d)))) |
(* -1 (* d (- (* -2 (/ a d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d)))) |
(* -1 (* d (- (* -2 (/ a d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 a d)))) |
(* 2 (+ a d)) |
(*.f64 #s(literal 2 binary64) (+.f64 a d)) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (/.f64 (*.f64 #s(literal 2 binary64) (+.f64 a d)) c))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (/.f64 (*.f64 #s(literal 2 binary64) (+.f64 a d)) c))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (/.f64 (*.f64 #s(literal 2 binary64) (+.f64 a d)) c))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (/.f64 (*.f64 #s(literal 2 binary64) (+.f64 a d)) c))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (/.f64 (*.f64 #s(literal 2 binary64) (+.f64 a d)) c))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 c (+.f64 #s(literal 2 binary64) (/.f64 (*.f64 #s(literal 2 binary64) (+.f64 a d)) c))) |
(* 2 (+ a c)) |
(*.f64 #s(literal 2 binary64) (+.f64 a c)) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d)) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d)) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d)) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d)) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d)) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d)) |
(* 2 (+ c d)) |
(*.f64 #s(literal 2 binary64) (+.f64 c d)) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 c d))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 c d) a)) #s(literal -2 binary64))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 c d) a)) #s(literal -2 binary64))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 c d) a)) #s(literal -2 binary64))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 c d) a)) #s(literal -2 binary64))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 c d) a)) #s(literal -2 binary64))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 a (*.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 c d) a)) #s(literal -2 binary64))) |
(+ a d) |
(+.f64 a d) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
c |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(*.f64 c (+.f64 (/.f64 a c) (+.f64 #s(literal 1 binary64) (/.f64 d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(*.f64 c (+.f64 (/.f64 a c) (+.f64 #s(literal 1 binary64) (/.f64 d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(*.f64 c (+.f64 (/.f64 a c) (+.f64 #s(literal 1 binary64) (/.f64 d c)))) |
c |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a d) c)) c) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a d) c)) c) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a d) c)) c) |
(+ a c) |
(+.f64 a c) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
d |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(*.f64 d (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(*.f64 d (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(*.f64 d (+.f64 (/.f64 a d) (+.f64 #s(literal 1 binary64) (/.f64 c d)))) |
d |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 a c) d)) d) |
(+ c d) |
(+.f64 c d) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
(+ a (+ c d)) |
(+.f64 a (+.f64 c d)) |
a |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(*.f64 a (+.f64 (/.f64 d a) (+.f64 #s(literal 1 binary64) (/.f64 c a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(*.f64 a (+.f64 (/.f64 d a) (+.f64 #s(literal 1 binary64) (/.f64 c a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(*.f64 a (+.f64 (/.f64 d a) (+.f64 #s(literal 1 binary64) (/.f64 c a)))) |
a |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 c d) a)) a) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 c d) a)) a) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 c d) a)) a) |
d |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
c |
(* c (+ 1 (/ d c))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 d c))) |
(* c (+ 1 (/ d c))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 d c))) |
(* c (+ 1 (/ d c))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 d c))) |
c |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 d c))) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 d c))) |
(* -1 (* c (- (* -1 (/ d c)) 1))) |
(*.f64 c (+.f64 #s(literal 1 binary64) (/.f64 d c))) |
c |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
(+ c d) |
(+.f64 c d) |
d |
(* d (+ 1 (/ c d))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 c d))) |
(* d (+ 1 (/ c d))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 c d))) |
(* d (+ 1 (/ c d))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 c d))) |
d |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 c d))) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 c d))) |
(* -1 (* d (- (* -1 (/ c d)) 1))) |
(*.f64 d (+.f64 #s(literal 1 binary64) (/.f64 c d))) |
Compiled 3598 to 283 computations (92.1% saved)
7 alts after pruning (2 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 414 | 2 | 416 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 5 | 5 |
| Done | 0 | 0 | 0 |
| Total | 414 | 7 | 421 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 11.3% | (*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
| ▶ | 11.3% | (*.f64 (+.f64 (+.f64 c a) d) #s(literal 2 binary64)) |
| ✓ | 100.0% | (*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
| ▶ | 11.3% | (*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
| ✓ | 8.6% | (*.f64 (+.f64 a d) #s(literal 2 binary64)) |
| ✓ | 11.2% | (*.f64 c #s(literal 2 binary64)) |
| ✓ | 6.5% | (*.f64 b #s(literal 2 binary64)) |
Compiled 69 to 52 computations (24.6% saved)
| 1× | egg-herbie |
Found 6 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | cost-diff | 0 | (+.f64 c a) |
| ✓ | cost-diff | 0 | (+.f64 (+.f64 c a) d) |
| ✓ | cost-diff | 0 | (*.f64 (+.f64 (+.f64 c a) d) #s(literal 2 binary64)) |
| ✓ | cost-diff | 0 | (+.f64 a d) |
| ✓ | cost-diff | 0 | (+.f64 (+.f64 a d) c) |
| ✓ | cost-diff | 0 | (*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
| 48× | fma-lowering-fma.f32 |
| 48× | fma-define |
| 48× | +-lowering-+.f64 |
| 48× | +-lowering-+.f32 |
| 48× | fma-lowering-fma.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 34 |
| 1 | 19 | 34 |
| 2 | 47 | 34 |
| 3 | 86 | 34 |
| 4 | 106 | 34 |
| 0 | 106 | 34 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(* (+ (+ a d) c) 2) |
(+ (+ a d) c) |
(+ a d) |
a |
d |
c |
2 |
(* (+ (+ c a) d) 2) |
(+ (+ c a) d) |
(+ c a) |
c |
a |
d |
2 |
| Outputs |
|---|
(* (+ (+ a d) c) 2) |
(*.f64 (+.f64 a (+.f64 d c)) #s(literal 2 binary64)) |
(+ (+ a d) c) |
(+.f64 a (+.f64 d c)) |
(+ a d) |
(+.f64 a d) |
a |
d |
c |
2 |
#s(literal 2 binary64) |
(* (+ (+ c a) d) 2) |
(*.f64 (+.f64 a (+.f64 d c)) #s(literal 2 binary64)) |
(+ (+ c a) d) |
(+.f64 a (+.f64 d c)) |
(+ c a) |
(+.f64 a c) |
c |
a |
d |
2 |
#s(literal 2 binary64) |
Found 6 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | accuracy | 100.0% | (+.f64 c a) |
| ✓ | accuracy | 100.0% | (*.f64 (+.f64 (+.f64 c a) d) #s(literal 2 binary64)) |
| ✓ | accuracy | 98.6% | (+.f64 (+.f64 c a) d) |
| ✓ | accuracy | 100.0% | (+.f64 (+.f64 a d) c) |
| ✓ | accuracy | 100.0% | (+.f64 a d) |
| ✓ | accuracy | 100.0% | (*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
| 37.0ms | 256× | 0 | valid |
Compiled 43 to 12 computations (72.1% saved)
ival-add: 5.0ms (47.6% of total)ival-mult: 5.0ms (47.6% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| Inputs |
|---|
#<alt (* (+ (+ a d) c) 2)> |
#<alt (+ (+ a d) c)> |
#<alt (+ a d)> |
#<alt (* (+ (+ c a) d) 2)> |
#<alt (+ (+ c a) d)> |
#<alt (+ c a)> |
| Outputs |
|---|
#<alt (* 2 (+ c d))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (* 2 a)> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* 2 a)> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* 2 (+ a c))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (* 2 d)> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* 2 d)> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* 2 (+ a d))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (* 2 c)> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* 2 c)> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (+ c d)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt a> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (+ a c)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt d> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (+ a d)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt c> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt d> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt a> |
#<alt (* a (+ 1 (/ d a)))> |
#<alt (* a (+ 1 (/ d a)))> |
#<alt (* a (+ 1 (/ d a)))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ d a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ d a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ d a)) 1)))> |
#<alt a> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt (+ a d)> |
#<alt d> |
#<alt (* d (+ 1 (/ a d)))> |
#<alt (* d (+ 1 (/ a d)))> |
#<alt (* d (+ 1 (/ a d)))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ a d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ a d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ a d)) 1)))> |
#<alt (* 2 (+ a d))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (+ (* 2 c) (* 2 (+ a d)))> |
#<alt (* 2 c)> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* c (+ 2 (* 2 (/ (+ a d) c))))> |
#<alt (* 2 c)> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* -1 (* c (- (* -2 (/ (+ a d) c)) 2)))> |
#<alt (* 2 (+ c d))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (+ (* 2 a) (* 2 (+ c d)))> |
#<alt (* 2 a)> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* a (+ 2 (* 2 (/ (+ c d) a))))> |
#<alt (* 2 a)> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* -1 (* a (- (* -2 (/ (+ c d) a)) 2)))> |
#<alt (* 2 (+ a c))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (+ (* 2 d) (* 2 (+ a c)))> |
#<alt (* 2 d)> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* d (+ 2 (* 2 (/ (+ a c) d))))> |
#<alt (* 2 d)> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (* -1 (* d (- (* -2 (/ (+ a c) d)) 2)))> |
#<alt (+ a d)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt c> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt (* c (+ 1 (+ (/ a c) (/ d c))))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ (+ a d) c)) 1)))> |
#<alt (+ c d)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt a> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt (* a (+ 1 (+ (/ c a) (/ d a))))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ (+ c d) a)) 1)))> |
#<alt (+ a c)> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt (+ a (+ c d))> |
#<alt d> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt (* d (+ 1 (+ (/ a d) (/ c d))))> |
#<alt d> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt (* -1 (* d (- (* -1 (/ (+ a c) d)) 1)))> |
#<alt a> |
#<alt (+ a c)> |
#<alt (+ a c)> |
#<alt (+ a c)> |
#<alt c> |
#<alt (* c (+ 1 (/ a c)))> |
#<alt (* c (+ 1 (/ a c)))> |
#<alt (* c (+ 1 (/ a c)))> |
#<alt c> |
#<alt (* -1 (* c (- (* -1 (/ a c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ a c)) 1)))> |
#<alt (* -1 (* c (- (* -1 (/ a c)) 1)))> |
#<alt c> |
#<alt (+ a c)> |
#<alt (+ a c)> |
#<alt (+ a c)> |
#<alt a> |
#<alt (* a (+ 1 (/ c a)))> |
#<alt (* a (+ 1 (/ c a)))> |
#<alt (* a (+ 1 (/ c a)))> |
#<alt a> |
#<alt (* -1 (* a (- (* -1 (/ c a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ c a)) 1)))> |
#<alt (* -1 (* a (- (* -1 (/ c a)) 1)))> |
48 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | c | @ | inf | (+ c a) |
| 0.0ms | a | @ | -inf | (+ c a) |
| 0.0ms | c | @ | -inf | (+ c a) |
| 0.0ms | a | @ | inf | (+ c a) |
| 0.0ms | a | @ | 0 | (* (+ (+ a d) c) 2) |
| 1× | batch-egg-rewrite |
| 48× | fma-lowering-fma.f32 |
| 48× | fma-define |
| 48× | +-lowering-+.f64 |
| 48× | +-lowering-+.f32 |
| 48× | fma-lowering-fma.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 26 |
| 1 | 19 | 26 |
| 2 | 47 | 26 |
| 3 | 86 | 26 |
| 4 | 106 | 26 |
| 0 | 106 | 26 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(* (+ (+ a d) c) 2) |
(+ (+ a d) c) |
(+ a d) |
(* (+ (+ c a) d) 2) |
(+ (+ c a) d) |
(+ c a) |
| Outputs |
|---|
(+.f64 (*.f64 a #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 d c))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 a c)) (*.f64 d #s(literal 2 binary64))) |
(+.f64 (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 c #s(literal 2 binary64))) |
(+.f64 (*.f64 c #s(literal 2 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 d c)) (*.f64 a #s(literal 2 binary64))) |
(+.f64 (*.f64 d #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 a #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 d c))) |
(fma.f64 d #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 (+.f64 a d) #s(literal 2 binary64) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 c #s(literal 2 binary64) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) a (*.f64 #s(literal 2 binary64) (+.f64 d c))) |
(fma.f64 #s(literal 2 binary64) d (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a d) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) c (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a c) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 d c) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 (+.f64 a c) #s(literal 2 binary64) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 (+.f64 d c) #s(literal 2 binary64) (*.f64 a #s(literal 2 binary64))) |
(*.f64 (+.f64 a (+.f64 d c)) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 d c))) |
(+.f64 a (+.f64 d c)) |
(+.f64 d (+.f64 a c)) |
(+.f64 (+.f64 a d) c) |
(+.f64 c (+.f64 a d)) |
(+.f64 (+.f64 a c) d) |
(+.f64 (+.f64 d c) a) |
(+.f64 a d) |
(+.f64 d a) |
(+.f64 (*.f64 a #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 d c))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 a c)) (*.f64 d #s(literal 2 binary64))) |
(+.f64 (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 c #s(literal 2 binary64))) |
(+.f64 (*.f64 c #s(literal 2 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(+.f64 (*.f64 #s(literal 2 binary64) (+.f64 d c)) (*.f64 a #s(literal 2 binary64))) |
(+.f64 (*.f64 d #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 a #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 d c))) |
(fma.f64 d #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 (+.f64 a d) #s(literal 2 binary64) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 c #s(literal 2 binary64) (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) a (*.f64 #s(literal 2 binary64) (+.f64 d c))) |
(fma.f64 #s(literal 2 binary64) d (*.f64 #s(literal 2 binary64) (+.f64 a c))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a d) (*.f64 c #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) c (*.f64 (+.f64 a d) #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 a c) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 #s(literal 2 binary64) (+.f64 d c) (*.f64 a #s(literal 2 binary64))) |
(fma.f64 (+.f64 a c) #s(literal 2 binary64) (*.f64 d #s(literal 2 binary64))) |
(fma.f64 (+.f64 d c) #s(literal 2 binary64) (*.f64 a #s(literal 2 binary64))) |
(*.f64 (+.f64 a (+.f64 d c)) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 d c))) |
(+.f64 a (+.f64 d c)) |
(+.f64 d (+.f64 a c)) |
(+.f64 (+.f64 a d) c) |
(+.f64 c (+.f64 a d)) |
(+.f64 (+.f64 a c) d) |
(+.f64 (+.f64 d c) a) |
(+.f64 a c) |
(+.f64 c a) |
| 1× | egg-herbie |
| 2366× | *-lowering-*.f32 |
| 2366× | *-lowering-*.f64 |
| 1468× | times-frac |
| 1460× | /-lowering-/.f32 |
| 1460× | /-lowering-/.f64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 95 | 864 |
| 1 | 314 | 756 |
| 2 | 830 | 756 |
| 3 | 2534 | 756 |
| 4 | 7016 | 756 |
| 0 | 8222 | 756 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* 2 (+ c d)) |
(+ (* 2 a) (* 2 (+ c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(* 2 a) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* 2 a) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* 2 (+ a c)) |
(+ (* 2 d) (* 2 (+ a c))) |
(+ (* 2 d) (* 2 (+ a c))) |
(+ (* 2 d) (* 2 (+ a c))) |
(* 2 d) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* 2 d) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* 2 (+ a d)) |
(+ (* 2 c) (* 2 (+ a d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(* 2 c) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* 2 c) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(+ c d) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
a |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
a |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+ a c) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
d |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
d |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+ a d) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
c |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
c |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
d |
(+ a d) |
(+ a d) |
(+ a d) |
a |
(* a (+ 1 (/ d a))) |
(* a (+ 1 (/ d a))) |
(* a (+ 1 (/ d a))) |
a |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
a |
(+ a d) |
(+ a d) |
(+ a d) |
d |
(* d (+ 1 (/ a d))) |
(* d (+ 1 (/ a d))) |
(* d (+ 1 (/ a d))) |
d |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(* 2 (+ a d)) |
(+ (* 2 c) (* 2 (+ a d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(+ (* 2 c) (* 2 (+ a d))) |
(* 2 c) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(* 2 c) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(* 2 (+ c d)) |
(+ (* 2 a) (* 2 (+ c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(+ (* 2 a) (* 2 (+ c d))) |
(* 2 a) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(* 2 a) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(* 2 (+ a c)) |
(+ (* 2 d) (* 2 (+ a c))) |
(+ (* 2 d) (* 2 (+ a c))) |
(+ (* 2 d) (* 2 (+ a c))) |
(* 2 d) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(* 2 d) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(+ a d) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
c |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
c |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+ c d) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
a |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
a |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+ a c) |
(+ a (+ c d)) |
(+ a (+ c d)) |
(+ a (+ c d)) |
d |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
d |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
a |
(+ a c) |
(+ a c) |
(+ a c) |
c |
(* c (+ 1 (/ a c))) |
(* c (+ 1 (/ a c))) |
(* c (+ 1 (/ a c))) |
c |
(* -1 (* c (- (* -1 (/ a c)) 1))) |
(* -1 (* c (- (* -1 (/ a c)) 1))) |
(* -1 (* c (- (* -1 (/ a c)) 1))) |
c |
(+ a c) |
(+ a c) |
(+ a c) |
a |
(* a (+ 1 (/ c a))) |
(* a (+ 1 (/ c a))) |
(* a (+ 1 (/ c a))) |
a |
(* -1 (* a (- (* -1 (/ c a)) 1))) |
(* -1 (* a (- (* -1 (/ c a)) 1))) |
(* -1 (* a (- (* -1 (/ c a)) 1))) |
| Outputs |
|---|
(* 2 (+ c d)) |
(*.f64 #s(literal 2 binary64) (+.f64 c d)) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 (+ a c)) |
(*.f64 #s(literal 2 binary64) (+.f64 c a)) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 (+ a d)) |
(*.f64 #s(literal 2 binary64) (+.f64 d a)) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ c d) |
(+.f64 c d) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
a |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(+.f64 c (+.f64 d a)) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(+.f64 c (+.f64 d a)) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(+.f64 c (+.f64 d a)) |
a |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+.f64 c (+.f64 d a)) |
(+ a c) |
(+.f64 c a) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
d |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(+.f64 c (+.f64 d a)) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(+.f64 c (+.f64 d a)) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(+.f64 c (+.f64 d a)) |
d |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+.f64 c (+.f64 d a)) |
(+ a d) |
(+.f64 d a) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
c |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(+.f64 c (+.f64 d a)) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(+.f64 c (+.f64 d a)) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(+.f64 c (+.f64 d a)) |
c |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+.f64 c (+.f64 d a)) |
d |
(+ a d) |
(+.f64 d a) |
(+ a d) |
(+.f64 d a) |
(+ a d) |
(+.f64 d a) |
a |
(* a (+ 1 (/ d a))) |
(+.f64 d a) |
(* a (+ 1 (/ d a))) |
(+.f64 d a) |
(* a (+ 1 (/ d a))) |
(+.f64 d a) |
a |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(+.f64 d a) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(+.f64 d a) |
(* -1 (* a (- (* -1 (/ d a)) 1))) |
(+.f64 d a) |
a |
(+ a d) |
(+.f64 d a) |
(+ a d) |
(+.f64 d a) |
(+ a d) |
(+.f64 d a) |
d |
(* d (+ 1 (/ a d))) |
(+.f64 d a) |
(* d (+ 1 (/ a d))) |
(+.f64 d a) |
(* d (+ 1 (/ a d))) |
(+.f64 d a) |
d |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(+.f64 d a) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(+.f64 d a) |
(* -1 (* d (- (* -1 (/ a d)) 1))) |
(+.f64 d a) |
(* 2 (+ a d)) |
(*.f64 #s(literal 2 binary64) (+.f64 d a)) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 c) (* 2 (+ a d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* c (+ 2 (* 2 (/ (+ a d) c)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 c) |
(*.f64 #s(literal 2 binary64) c) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* c (- (* -2 (/ (+ a d) c)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 (+ c d)) |
(*.f64 #s(literal 2 binary64) (+.f64 c d)) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 a) (* 2 (+ c d))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* a (+ 2 (* 2 (/ (+ c d) a)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 a) |
(*.f64 #s(literal 2 binary64) a) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* a (- (* -2 (/ (+ c d) a)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 (+ a c)) |
(*.f64 #s(literal 2 binary64) (+.f64 c a)) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ (* 2 d) (* 2 (+ a c))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* d (+ 2 (* 2 (/ (+ a c) d)))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* 2 d) |
(*.f64 #s(literal 2 binary64) d) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(* -1 (* d (- (* -2 (/ (+ a c) d)) 2))) |
(*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 d a))) |
(+ a d) |
(+.f64 d a) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
c |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(+.f64 c (+.f64 d a)) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(+.f64 c (+.f64 d a)) |
(* c (+ 1 (+ (/ a c) (/ d c)))) |
(+.f64 c (+.f64 d a)) |
c |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* c (- (* -1 (/ (+ a d) c)) 1))) |
(+.f64 c (+.f64 d a)) |
(+ c d) |
(+.f64 c d) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
a |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(+.f64 c (+.f64 d a)) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(+.f64 c (+.f64 d a)) |
(* a (+ 1 (+ (/ c a) (/ d a)))) |
(+.f64 c (+.f64 d a)) |
a |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* a (- (* -1 (/ (+ c d) a)) 1))) |
(+.f64 c (+.f64 d a)) |
(+ a c) |
(+.f64 c a) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
(+ a (+ c d)) |
(+.f64 c (+.f64 d a)) |
d |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(+.f64 c (+.f64 d a)) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(+.f64 c (+.f64 d a)) |
(* d (+ 1 (+ (/ a d) (/ c d)))) |
(+.f64 c (+.f64 d a)) |
d |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+.f64 c (+.f64 d a)) |
(* -1 (* d (- (* -1 (/ (+ a c) d)) 1))) |
(+.f64 c (+.f64 d a)) |
a |
(+ a c) |
(+.f64 c a) |
(+ a c) |
(+.f64 c a) |
(+ a c) |
(+.f64 c a) |
c |
(* c (+ 1 (/ a c))) |
(+.f64 c a) |
(* c (+ 1 (/ a c))) |
(+.f64 c a) |
(* c (+ 1 (/ a c))) |
(+.f64 c a) |
c |
(* -1 (* c (- (* -1 (/ a c)) 1))) |
(+.f64 c a) |
(* -1 (* c (- (* -1 (/ a c)) 1))) |
(+.f64 c a) |
(* -1 (* c (- (* -1 (/ a c)) 1))) |
(+.f64 c a) |
c |
(+ a c) |
(+.f64 c a) |
(+ a c) |
(+.f64 c a) |
(+ a c) |
(+.f64 c a) |
a |
(* a (+ 1 (/ c a))) |
(+.f64 c a) |
(* a (+ 1 (/ c a))) |
(+.f64 c a) |
(* a (+ 1 (/ c a))) |
(+.f64 c a) |
a |
(* -1 (* a (- (* -1 (/ c a)) 1))) |
(+.f64 c a) |
(* -1 (* a (- (* -1 (/ c a)) 1))) |
(+.f64 c a) |
(* -1 (* a (- (* -1 (/ c a)) 1))) |
(+.f64 c a) |
Compiled 1644 to 66 computations (96% saved)
7 alts after pruning (0 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 248 | 0 | 248 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 5 | 5 |
| Total | 248 | 7 | 255 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 11.3% | (*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
| ✓ | 11.3% | (*.f64 (+.f64 (+.f64 c a) d) #s(literal 2 binary64)) |
| ✓ | 100.0% | (*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
| ✓ | 11.3% | (*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
| ✓ | 8.6% | (*.f64 (+.f64 a d) #s(literal 2 binary64)) |
| ✓ | 11.2% | (*.f64 c #s(literal 2 binary64)) |
| ✓ | 6.5% | (*.f64 b #s(literal 2 binary64)) |
Compiled 123 to 75 computations (39% saved)
| Inputs |
|---|
(*.f64 b #s(literal 2 binary64)) |
(*.f64 c #s(literal 2 binary64)) |
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 c a) d) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
| Outputs |
|---|
(*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
8 calls:
| 6.0ms | b |
| 4.0ms | (+.f64 c d) |
| 4.0ms | d |
| 3.0ms | a |
| 3.0ms | (+.f64 b (+.f64 c d)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | a |
| 100.0% | 1 | b |
| 100.0% | 1 | c |
| 100.0% | 1 | d |
| 100.0% | 1 | (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| 100.0% | 1 | (+.f64 a (+.f64 b (+.f64 c d))) |
| 100.0% | 1 | (+.f64 b (+.f64 c d)) |
| 100.0% | 1 | (+.f64 c d) |
Compiled 60 to 43 computations (28.3% saved)
| Inputs |
|---|
(*.f64 b #s(literal 2 binary64)) |
(*.f64 c #s(literal 2 binary64)) |
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 c a) d) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| Outputs |
|---|
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
8 calls:
| 8.0ms | (+.f64 a (+.f64 b (+.f64 c d))) |
| 5.0ms | a |
| 3.0ms | b |
| 3.0ms | (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| 3.0ms | (+.f64 c d) |
| Accuracy | Segments | Branch |
|---|---|---|
| 94.2% | 1 | a |
| 94.2% | 1 | b |
| 94.2% | 1 | c |
| 94.2% | 1 | d |
| 94.2% | 1 | (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
| 94.2% | 1 | (+.f64 a (+.f64 b (+.f64 c d))) |
| 94.2% | 1 | (+.f64 b (+.f64 c d)) |
| 94.2% | 1 | (+.f64 c d) |
Compiled 60 to 43 computations (28.3% saved)
| Inputs |
|---|
(*.f64 b #s(literal 2 binary64)) |
(*.f64 c #s(literal 2 binary64)) |
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 c a) d) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 c d) a) #s(literal 2 binary64)) |
| Outputs |
|---|
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
(*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64)) |
5 calls:
| 5.0ms | (+.f64 c d) |
| 3.0ms | a |
| 3.0ms | b |
| 3.0ms | d |
| 3.0ms | c |
| Accuracy | Segments | Branch |
|---|---|---|
| 11.3% | 1 | c |
| 13.2% | 2 | (+.f64 c d) |
| 12.9% | 2 | d |
| 11.3% | 1 | a |
| 13.3% | 2 | b |
Compiled 27 to 21 computations (22.2% saved)
| Inputs |
|---|
(*.f64 b #s(literal 2 binary64)) |
(*.f64 c #s(literal 2 binary64)) |
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
| Outputs |
|---|
(*.f64 (+.f64 a d) #s(literal 2 binary64)) |
(*.f64 c #s(literal 2 binary64)) |
1 calls:
| 2.0ms | b |
| Accuracy | Segments | Branch |
|---|---|---|
| 13.2% | 2 | b |
Compiled 5 to 4 computations (20% saved)
| Inputs |
|---|
(*.f64 b #s(literal 2 binary64)) |
(*.f64 c #s(literal 2 binary64)) |
| Outputs |
|---|
(*.f64 c #s(literal 2 binary64)) |
4 calls:
| 4.0ms | a |
| 2.0ms | d |
| 2.0ms | b |
| 2.0ms | c |
| Accuracy | Segments | Branch |
|---|---|---|
| 11.2% | 1 | a |
| 11.2% | 1 | c |
| 11.2% | 1 | d |
| 11.2% | 1 | b |
Compiled 20 to 16 computations (20% saved)
Total 0.0b remaining (0%)
Threshold costs 0b (0%)
| Inputs |
|---|
(*.f64 b #s(literal 2 binary64)) |
| Outputs |
|---|
(*.f64 b #s(literal 2 binary64)) |
4 calls:
| 1.0ms | b |
| 1.0ms | c |
| 1.0ms | d |
| 1.0ms | a |
| Accuracy | Segments | Branch |
|---|---|---|
| 6.5% | 1 | a |
| 6.5% | 1 | d |
| 6.5% | 1 | b |
| 6.5% | 1 | c |
Compiled 20 to 16 computations (20% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 0.0ms | -2.646815701337942 | -2.646514945369276 |
Compiled 20 to 15 computations (25% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 0.0ms | -2.646815701337942 | -2.646514945369276 |
Compiled 20 to 15 computations (25% saved)
| 1× | egg-herbie |
| 14× | +-commutative_binary64 |
| 12× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 52 |
| 1 | 35 | 52 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
(if (<=.f64 b #s(literal -5959613386899377/2251799813685248 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64))) |
(if (<=.f64 b #s(literal -5959613386899377/2251799813685248 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 c #s(literal 2 binary64))) |
(*.f64 c #s(literal 2 binary64)) |
(*.f64 b #s(literal 2 binary64)) |
| Outputs |
|---|
(*.f64 (+.f64 (+.f64 b c) (+.f64 a d)) #s(literal 2 binary64)) |
(*.f64 (+.f64 a (+.f64 b (+.f64 c d))) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (+.f64 a (+.f64 b (+.f64 c d)))) |
(if (<=.f64 b #s(literal -5959613386899377/2251799813685248 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 (+.f64 (+.f64 a d) c) #s(literal 2 binary64))) |
(if (<=.f64 b #s(literal -5959613386899377/2251799813685248 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (+.f64 c (+.f64 a d)))) |
(if (<=.f64 b #s(literal -5959613386899377/2251799813685248 binary64)) (*.f64 (+.f64 a d) #s(literal 2 binary64)) (*.f64 c #s(literal 2 binary64))) |
(*.f64 c #s(literal 2 binary64)) |
(*.f64 b #s(literal 2 binary64)) |
| 3186× | *-lowering-*.f32 |
| 3186× | *-lowering-*.f64 |
| 1866× | fnmadd-define |
| 1502× | +-lowering-+.f64 |
| 1502× | +-lowering-+.f32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 42 |
| 1 | 34 | 42 |
| 2 | 98 | 42 |
| 3 | 295 | 42 |
| 4 | 496 | 42 |
| 5 | 600 | 42 |
| 6 | 604 | 42 |
| 0 | 604 | 42 |
| 0 | 137 | 1142 |
| 1 | 466 | 984 |
| 2 | 1468 | 942 |
| 3 | 4969 | 924 |
| 0 | 8414 | 924 |
| 0 | 9 | 24 |
| 1 | 17 | 19 |
| 2 | 62 | 19 |
| 3 | 202 | 19 |
| 4 | 477 | 19 |
| 5 | 618 | 19 |
| 6 | 633 | 19 |
| 0 | 633 | 19 |
| 1× | done |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | saturated |
Compiled 130 to 79 computations (39.2% saved)
(sort a b c d)
Compiled 220 to 118 computations (46.4% saved)
Loading profile data...