
Time bar (total: 2.6s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 0.2% | 99.8% | 0% | 0% | 0% | 0 |
| 0% | 0% | 0.2% | 99.8% | 0% | 0% | 0% | 1 |
| 0% | 0% | 0.2% | 99.8% | 0% | 0% | 0% | 2 |
| 0% | 0% | 0.2% | 99.8% | 0% | 0% | 0% | 3 |
| 0% | 0% | 0.2% | 99.8% | 0% | 0% | 0% | 4 |
| 37.5% | 0.1% | 0.1% | 99.8% | 0% | 0% | 0% | 5 |
| 43.7% | 0.1% | 0.1% | 99.8% | 0% | 0% | 0% | 6 |
| 65.6% | 0.1% | 0.1% | 99.8% | 0% | 0% | 0% | 7 |
| 70.3% | 0.1% | 0% | 99.8% | 0% | 0% | 0% | 8 |
| 82% | 0.1% | 0% | 99.8% | 0% | 0% | 0% | 9 |
| 84.8% | 0.1% | 0% | 99.8% | 0% | 0% | 0% | 10 |
| 90.8% | 0.1% | 0% | 99.8% | 0% | 0% | 0% | 11 |
| 92.3% | 0.2% | 0% | 99.8% | 0% | 0% | 0% | 12 |
Compiled 25 to 18 computations (28% saved)
| 653.0ms | 8 256× | 0 | valid |
ival-mult: 149.0ms (33.7% of total)ival-log: 144.0ms (32.5% of total)ival-sub: 52.0ms (11.7% of total)ival-neg: 45.0ms (10.2% of total)const: 37.0ms (8.4% of total)exact: 7.0ms (1.6% of total)adjust: 3.0ms (0.7% of total)ival-assert: 2.0ms (0.5% of total)ival-<=: 2.0ms (0.5% of total)ival-and: 1.0ms (0.2% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 191 | 8 | (0.0009595235460437834 0.006227615289390087) | 4 | (0.06589572131633759 0.0114758824929595) | (log.f32 (-.f32 #s(literal 1 binary32) u0)) |
| 0 | 0 | - | 0 | - | u0 |
| 0 | 0 | - | 0 | - | #s(literal 1 binary32) |
| 0 | 0 | - | 0 | - | (neg.f32 alpha) |
| 0 | 0 | - | 0 | - | (*.f32 (neg.f32 alpha) alpha) |
| 0 | 0 | - | 0 | - | alpha |
| 0 | 0 | - | 0 | - | (-.f32 #s(literal 1 binary32) u0) |
| 0 | 0 | - | 0 | - | (*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
log.f32 | (log.f32 (-.f32 #s(literal 1 binary32) u0)) | sensitivity | 195 | 15 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 186 | 3 |
| - | 9 | 58 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 186 | 3 | 0 |
| - | 9 | 12 | 46 |
| number | freq |
|---|---|
| 0 | 61 |
| 1 | 195 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 39.0ms | 512× | 0 | valid |
Compiled 63 to 28 computations (55.6% saved)
ival-log: 8.0ms (36.2% of total)ival-mult: 7.0ms (31.7% of total)ival-sub: 3.0ms (13.6% of total)ival-neg: 3.0ms (13.6% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 58 |
| 1 | 56 | 54 |
| 2 | 122 | 54 |
| 3 | 220 | 52 |
| 4 | 411 | 52 |
| 5 | 757 | 52 |
| 6 | 4020 | 52 |
| 0 | 8 | 9 |
| 0 | 13 | 9 |
| 1 | 21 | 9 |
| 2 | 40 | 9 |
| 3 | 78 | 9 |
| 4 | 170 | 9 |
| 5 | 412 | 9 |
| 6 | 2250 | 9 |
| 7 | 5538 | 9 |
| 0 | 8681 | 8 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
| Outputs |
|---|
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 (neg.f32 alpha) alpha)) |
(abs alpha)
Compiled 9 to 8 computations (11.1% saved)
Compiled 0 to 2 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 58.7% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
Compiled 9 to 8 computations (11.1% saved)
| Inputs |
|---|
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
(*.f32 (neg.f32 alpha) alpha) |
(neg.f32 alpha) |
alpha |
(log.f32 (-.f32 #s(literal 1 binary32) u0)) |
(-.f32 #s(literal 1 binary32) u0) |
#s(literal 1 binary32) |
u0 |
| Outputs |
|---|
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* -1 (* (pow alpha 2) (log (- 1 u0)))))) |
#s(approx (* (neg alpha) alpha) #s(hole binary32 (* -1 (pow alpha 2)))) |
#s(approx (neg alpha) #s(hole binary32 (* -1 alpha))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* -1 u0))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (- 1 u0) #s(hole binary32 1)) |
#s(approx (- 1 u0) #s(hole binary32 (+ 1 (* -1 u0)))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (log -1) (* -1 (log (/ 1 u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (- (+ (log -1) (* -1 (log (/ 1 u0)))) (/ 1 u0)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (- (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (/ 1 u0)))) |
#s(approx (- 1 u0) #s(hole binary32 (* -1 u0))) |
#s(approx (- 1 u0) #s(hole binary32 (* u0 (- (/ 1 u0) 1)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* (pow alpha 2) (log (/ -1 u0))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* (pow alpha 2) (log (/ -1 u0))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* -1 (log (/ -1 u0))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (- (* -1 (log (/ -1 u0))) (/ 1 u0)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))))) |
#s(approx (- 1 u0) #s(hole binary32 (* -1 (* u0 (- 1 (/ 1 u0)))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 48.0ms | alpha | @ | 0 | ((* (* (neg alpha) alpha) (log (- 1 u0))) (* (neg alpha) alpha) (neg alpha) alpha (log (- 1 u0)) (- 1 u0) 1 u0) |
| 14.0ms | alpha | @ | -inf | ((* (* (neg alpha) alpha) (log (- 1 u0))) (* (neg alpha) alpha) (neg alpha) alpha (log (- 1 u0)) (- 1 u0) 1 u0) |
| 7.0ms | alpha | @ | inf | ((* (* (neg alpha) alpha) (log (- 1 u0))) (* (neg alpha) alpha) (neg alpha) alpha (log (- 1 u0)) (- 1 u0) 1 u0) |
| 1.0ms | u0 | @ | -inf | ((* (* (neg alpha) alpha) (log (- 1 u0))) (* (neg alpha) alpha) (neg alpha) alpha (log (- 1 u0)) (- 1 u0) 1 u0) |
| 1.0ms | u0 | @ | inf | ((* (* (neg alpha) alpha) (log (- 1 u0))) (* (neg alpha) alpha) (neg alpha) alpha (log (- 1 u0)) (- 1 u0) 1 u0) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 160 | 716 |
| 0 | 166 | 676 |
| 1 | 897 | 622 |
| 0 | 8491 | 574 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
(*.f32 (neg.f32 alpha) alpha) |
(neg.f32 alpha) |
alpha |
(log.f32 (-.f32 #s(literal 1 binary32) u0)) |
(-.f32 #s(literal 1 binary32) u0) |
#s(literal 1 binary32) |
u0 |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* -1 (* (pow alpha 2) (log (- 1 u0)))))) |
#s(approx (* (neg alpha) alpha) #s(hole binary32 (* -1 (pow alpha 2)))) |
#s(approx (neg alpha) #s(hole binary32 (* -1 alpha))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* -1 u0))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (- 1 u0) #s(hole binary32 1)) |
#s(approx (- 1 u0) #s(hole binary32 (+ 1 (* -1 u0)))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (log -1) (* -1 (log (/ 1 u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (- (+ (log -1) (* -1 (log (/ 1 u0)))) (/ 1 u0)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (- (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (/ 1 u0)))) |
#s(approx (- 1 u0) #s(hole binary32 (* -1 u0))) |
#s(approx (- 1 u0) #s(hole binary32 (* u0 (- (/ 1 u0) 1)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (* (pow alpha 2) (log (/ -1 u0))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* (pow alpha 2) (log (/ -1 u0))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (* -1 (log (/ -1 u0))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (- (* -1 (log (/ -1 u0))) (/ 1 u0)))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))))) |
#s(approx (log (- 1 u0)) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))))) |
#s(approx (- 1 u0) #s(hole binary32 (* -1 (* u0 (- 1 (/ 1 u0)))))) |
| Outputs |
|---|
(log.f32 (pow.f32 (pow.f32 (-.f32 #s(literal 1 binary32) u0) alpha) (neg.f32 alpha))) |
(*.f32 (*.f32 #s(literal -1 binary32) (log1p.f32 (neg.f32 u0))) (*.f32 alpha alpha)) |
(*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) #s(literal -1 binary32)) (*.f32 alpha alpha)) |
(*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) |
(*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) alpha) (neg.f32 alpha)) |
(*.f32 (neg.f32 (log1p.f32 (neg.f32 u0))) (*.f32 alpha alpha)) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log1p.f32 (neg.f32 u0))) |
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
(*.f32 (*.f32 alpha alpha) (*.f32 #s(literal -1 binary32) (log1p.f32 (neg.f32 u0)))) |
(*.f32 (*.f32 alpha alpha) (*.f32 (log1p.f32 (neg.f32 u0)) #s(literal -1 binary32))) |
(*.f32 (*.f32 alpha alpha) (neg.f32 (log1p.f32 (neg.f32 u0)))) |
(*.f32 #s(literal -1 binary32) (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0)))) |
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 (neg.f32 alpha) alpha)) |
(*.f32 (neg.f32 alpha) (*.f32 alpha (log1p.f32 (neg.f32 u0)))) |
(*.f32 alpha (*.f32 (neg.f32 alpha) (log1p.f32 (neg.f32 u0)))) |
(*.f32 alpha (*.f32 #s(literal -1 binary32) (*.f32 alpha (log1p.f32 (neg.f32 u0))))) |
(neg.f32 (*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal 1 binary32))) |
(neg.f32 (*.f32 #s(literal 1 binary32) (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))))) |
(neg.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0)))) |
(*.f32 (*.f32 alpha alpha) #s(literal -1 binary32)) |
(*.f32 #s(literal -1 binary32) (*.f32 alpha alpha)) |
(*.f32 (neg.f32 alpha) alpha) |
(*.f32 alpha (neg.f32 alpha)) |
(neg.f32 (*.f32 (*.f32 alpha alpha) #s(literal 1 binary32))) |
(neg.f32 (*.f32 alpha alpha)) |
(*.f32 #s(literal -1 binary32) alpha) |
(*.f32 alpha #s(literal -1 binary32)) |
(neg.f32 (*.f32 alpha #s(literal 1 binary32))) |
(neg.f32 (*.f32 #s(literal 1 binary32) alpha)) |
(neg.f32 alpha) |
alpha |
(log.f32 (-.f32 #s(literal 1 binary32) u0)) |
(-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)) |
(-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (fma.f32 u0 u0 u0))) |
(log1p.f32 (neg.f32 u0)) |
(*.f32 #s(literal 1 binary32) (-.f32 #s(literal 1 binary32) u0)) |
(/.f32 (-.f32 (*.f32 u0 u0) #s(literal 1 binary32)) (-.f32 (neg.f32 u0) #s(literal 1 binary32))) |
(/.f32 (fma.f32 (pow.f32 u0 #s(literal 3 binary32)) #s(literal -1 binary32) #s(literal 1 binary32)) (fma.f32 u0 u0 (-.f32 #s(literal 1 binary32) (*.f32 (neg.f32 u0) #s(literal 1 binary32))))) |
(/.f32 (neg.f32 (-.f32 #s(literal 1 binary32) (*.f32 u0 u0))) (neg.f32 (+.f32 #s(literal 1 binary32) u0))) |
(/.f32 (neg.f32 (-.f32 #s(literal 1 binary32) (pow.f32 u0 #s(literal 3 binary32)))) (neg.f32 (+.f32 #s(literal 1 binary32) (fma.f32 u0 u0 u0)))) |
(/.f32 (-.f32 #s(literal 1 binary32) (*.f32 u0 u0)) (+.f32 #s(literal 1 binary32) u0)) |
(/.f32 (-.f32 #s(literal 1 binary32) (pow.f32 u0 #s(literal 3 binary32))) (+.f32 #s(literal 1 binary32) (fma.f32 u0 u0 u0))) |
(-.f32 (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) u0)) (/.f32 (*.f32 u0 u0) (+.f32 #s(literal 1 binary32) u0))) |
(-.f32 (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (fma.f32 u0 u0 u0))) (/.f32 (pow.f32 u0 #s(literal 3 binary32)) (+.f32 #s(literal 1 binary32) (fma.f32 u0 u0 u0)))) |
(-.f32 (neg.f32 u0) #s(literal -1 binary32)) |
(-.f32 #s(literal 1 binary32) (*.f32 (neg.f32 u0) #s(literal -1 binary32))) |
(-.f32 #s(literal 1 binary32) u0) |
(fma.f32 #s(literal -1 binary32) u0 #s(literal 1 binary32)) |
(fma.f32 u0 #s(literal -1 binary32) #s(literal 1 binary32)) |
(fma.f32 #s(literal 1 binary32) (neg.f32 u0) #s(literal 1 binary32)) |
(+.f32 (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (fma.f32 u0 u0 u0))) (/.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32)) (+.f32 #s(literal 1 binary32) (fma.f32 u0 u0 u0)))) |
(+.f32 (neg.f32 u0) #s(literal 1 binary32)) |
(+.f32 #s(literal 1 binary32) (neg.f32 u0)) |
(neg.f32 (+.f32 u0 #s(literal -1 binary32))) |
(neg.f32 (+.f32 #s(literal -1 binary32) u0)) |
#s(literal 1 binary32) |
u0 |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (*.f32 (neg.f32 alpha) alpha) (log1p.f32 (neg.f32 u0)))) |
#s(approx (* (neg alpha) alpha) (*.f32 (neg.f32 alpha) alpha)) |
#s(approx (neg alpha) (neg.f32 alpha)) |
#s(approx alpha alpha) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (*.f32 alpha alpha) u0)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (fma.f32 #s(literal 1/2 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (fma.f32 (fma.f32 #s(literal 1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal 1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (log (- 1 u0)) (neg.f32 u0)) |
#s(approx (log (- 1 u0)) (*.f32 (fma.f32 #s(literal -1/2 binary32) u0 #s(literal -1 binary32)) u0)) |
#s(approx (log (- 1 u0)) (*.f32 (fma.f32 (fma.f32 #s(literal -1/3 binary32) u0 #s(literal -1/2 binary32)) u0 #s(literal -1 binary32)) u0)) |
#s(approx (log (- 1 u0)) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal -1/4 binary32) u0 #s(literal -1/3 binary32)) u0 #s(literal -1/2 binary32)) u0 #s(literal -1 binary32)) u0)) |
#s(approx (- 1 u0) #s(literal 1 binary32)) |
#s(approx (- 1 u0) (-.f32 #s(literal 1 binary32) u0)) |
#s(approx u0 u0) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 (neg.f32 alpha) alpha))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (-.f32 (/.f32 (*.f32 alpha alpha) u0) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (-.f32 (fma.f32 (/.f32 (/.f32 (*.f32 alpha alpha) u0) u0) #s(literal 1/2 binary32) (/.f32 (*.f32 alpha alpha) u0)) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (-.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) (pow.f32 u0 #s(literal 3 binary32))) #s(literal 1/3 binary32) (fma.f32 (/.f32 (/.f32 (*.f32 alpha alpha) u0) u0) #s(literal 1/2 binary32) (/.f32 (*.f32 alpha alpha) u0))) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha)))) |
#s(approx (log (- 1 u0)) (log.f32 (neg.f32 u0))) |
#s(approx (log (- 1 u0)) (-.f32 (log.f32 (neg.f32 u0)) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (- 1 u0)) (-.f32 (log.f32 (neg.f32 u0)) (/.f32 (-.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal -1 binary32)) u0))) |
#s(approx (log (- 1 u0)) (-.f32 (-.f32 (log.f32 (neg.f32 u0)) (/.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/3 binary32) u0) #s(literal -1/2 binary32)) u0) u0)) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (- 1 u0) (neg.f32 u0)) |
#s(approx (- 1 u0) (*.f32 (-.f32 (/.f32 #s(literal 1 binary32) u0) #s(literal 1 binary32)) u0)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 (neg.f32 alpha) alpha))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (-.f32 (/.f32 (*.f32 alpha alpha) u0) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha)))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (/.f32 (fma.f32 #s(literal 1/2 binary32) (/.f32 (*.f32 alpha alpha) u0) (*.f32 alpha alpha)) u0))) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (/.f32 (fma.f32 alpha alpha (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal 1/3 binary32) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0)) u0))) |
#s(approx (log (- 1 u0)) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)))) |
#s(approx (log (- 1 u0)) (-.f32 (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (- 1 u0)) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32) (/.f32 (+.f32 (/.f32 #s(literal -1/2 binary32) u0) #s(literal -1 binary32)) u0))) |
#s(approx (log (- 1 u0)) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32) (+.f32 (/.f32 #s(literal -1 binary32) u0) (/.f32 (/.f32 (+.f32 (/.f32 #s(literal -1/3 binary32) u0) #s(literal -1/2 binary32)) u0) u0)))) |
#s(approx (- 1 u0) (*.f32 (neg.f32 u0) (-.f32 #s(literal 1 binary32) (/.f32 #s(literal 1 binary32) u0)))) |
Compiled 1 310 to 309 computations (76.4% saved)
6 alts after pruning (6 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 85 | 6 | 91 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 86 | 6 | 92 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.1% | (*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
| 98.6% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (fma.f32 u0 u0 u0)))) | |
| 98.8% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) | |
| 98.9% | (*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) | |
| 92.5% | #s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal 1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) | |
| 90.2% | #s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (fma.f32 (fma.f32 #s(literal 1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
Compiled 222 to 148 computations (33.3% saved)
| Inputs |
|---|
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
(*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) |
(*.f32 alpha alpha) |
alpha |
(log1p.f32 (neg.f32 u0)) |
(neg.f32 u0) |
u0 |
#s(literal -1 binary32) |
| Outputs |
|---|
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* -1 (* (pow alpha 2) (log (- 1 u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* (pow alpha 2) (log (- 1 u0))))) |
#s(approx (* alpha alpha) #s(hole binary32 (pow alpha 2))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) u0)))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* u0 (+ (* -1 (pow alpha 2)) (* -1/2 (* (pow alpha 2) u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* u0 (+ (* -1 (pow alpha 2)) (* u0 (+ (* -1/2 (pow alpha 2)) (* -1/3 (* (pow alpha 2) u0)))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* u0 (+ (* -1 (pow alpha 2)) (* u0 (+ (* -1/2 (pow alpha 2)) (* u0 (+ (* -1/3 (pow alpha 2)) (* -1/4 (* (pow alpha 2) u0)))))))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 u0))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (neg u0) #s(hole binary32 (* -1 u0))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (/ (pow alpha 2) u0)) (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (/ (pow alpha 2) u0)) (+ (* -1/2 (/ (pow alpha 2) (pow u0 2))) (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0))))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (/ (pow alpha 2) u0)) (+ (* -1/2 (/ (pow alpha 2) (pow u0 2))) (+ (* -1/3 (/ (pow alpha 2) (pow u0 3))) (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (* -1 (log (/ 1 u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (* -1 (log (/ 1 u0)))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (/ 1 u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* (pow alpha 2) (log (/ -1 u0))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* (pow alpha 2) (log (/ -1 u0))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (log (/ -1 u0)))) (* -1 (/ (pow alpha 2) u0))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (log (/ -1 u0)))) (* -1 (/ (+ (* 1/2 (/ (pow alpha 2) u0)) (pow alpha 2)) u0))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (log (/ -1 u0)))) (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (pow alpha 2)) (* -1/3 (/ (pow alpha 2) u0))) u0)) (pow alpha 2)) u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 (log (/ -1 u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (* -1 (log (/ -1 u0))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 14.0ms | alpha | @ | 0 | ((* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (* (* alpha alpha) (log (+ 1 (neg u0)))) (* alpha alpha) alpha (log (+ 1 (neg u0))) (neg u0) u0 -1) |
| 8.0ms | alpha | @ | -inf | ((* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (* (* alpha alpha) (log (+ 1 (neg u0)))) (* alpha alpha) alpha (log (+ 1 (neg u0))) (neg u0) u0 -1) |
| 7.0ms | alpha | @ | inf | ((* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (* (* alpha alpha) (log (+ 1 (neg u0)))) (* alpha alpha) alpha (log (+ 1 (neg u0))) (neg u0) u0 -1) |
| 4.0ms | u0 | @ | inf | ((* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (* (* alpha alpha) (log (+ 1 (neg u0)))) (* alpha alpha) alpha (log (+ 1 (neg u0))) (neg u0) u0 -1) |
| 1.0ms | u0 | @ | -inf | ((* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (* (* alpha alpha) (log (+ 1 (neg u0)))) (* alpha alpha) alpha (log (+ 1 (neg u0))) (neg u0) u0 -1) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 206 | 1042 |
| 0 | 212 | 975 |
| 1 | 1245 | 923 |
| 0 | 8702 | 892 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
(*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) |
(*.f32 alpha alpha) |
alpha |
(log1p.f32 (neg.f32 u0)) |
(neg.f32 u0) |
u0 |
#s(literal -1 binary32) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* -1 (* (pow alpha 2) (log (- 1 u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* (pow alpha 2) (log (- 1 u0))))) |
#s(approx (* alpha alpha) #s(hole binary32 (pow alpha 2))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) u0)))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* u0 (+ (* -1 (pow alpha 2)) (* -1/2 (* (pow alpha 2) u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* u0 (+ (* -1 (pow alpha 2)) (* u0 (+ (* -1/2 (pow alpha 2)) (* -1/3 (* (pow alpha 2) u0)))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* u0 (+ (* -1 (pow alpha 2)) (* u0 (+ (* -1/2 (pow alpha 2)) (* u0 (+ (* -1/3 (pow alpha 2)) (* -1/4 (* (pow alpha 2) u0)))))))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 u0))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (neg u0) #s(hole binary32 (* -1 u0))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (/ (pow alpha 2) u0)) (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (/ (pow alpha 2) u0)) (+ (* -1/2 (/ (pow alpha 2) (pow u0 2))) (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0))))))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (/ (pow alpha 2) u0)) (+ (* -1/2 (/ (pow alpha 2) (pow u0 2))) (+ (* -1/3 (/ (pow alpha 2) (pow u0 3))) (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (* -1 (log (/ 1 u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (* -1 (log (/ 1 u0)))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (/ 1 u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (* (pow alpha 2) (log (/ -1 u0))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* (pow alpha 2) (log (/ -1 u0))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (log (/ -1 u0)))) (* -1 (/ (pow alpha 2) u0))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (log (/ -1 u0)))) (* -1 (/ (+ (* 1/2 (/ (pow alpha 2) u0)) (pow alpha 2)) u0))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (log (/ -1 u0)))) (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (pow alpha 2)) (* -1/3 (/ (pow alpha 2) u0))) u0)) (pow alpha 2)) u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 (log (/ -1 u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (* -1 (log (/ -1 u0))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))))) |
| Outputs |
|---|
(log.f32 (pow.f32 (pow.f32 (pow.f32 (-.f32 (neg.f32 u0) #s(literal -1 binary32)) alpha) alpha) #s(literal -1 binary32))) |
(*.f32 (*.f32 alpha alpha) (*.f32 (log1p.f32 (neg.f32 u0)) #s(literal -1 binary32))) |
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
(*.f32 #s(literal -1 binary32) (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0)))) |
(log.f32 (pow.f32 (pow.f32 (-.f32 (neg.f32 u0) #s(literal -1 binary32)) alpha) alpha)) |
(*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) |
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 alpha alpha)) |
(*.f32 alpha (*.f32 alpha (log1p.f32 (neg.f32 u0)))) |
(*.f32 (neg.f32 (neg.f32 alpha)) (neg.f32 (neg.f32 alpha))) |
(*.f32 (neg.f32 (fabs.f32 alpha)) (neg.f32 (fabs.f32 alpha))) |
(*.f32 (fabs.f32 (fabs.f32 alpha)) (fabs.f32 (fabs.f32 alpha))) |
(*.f32 (exp.f32 (log.f32 alpha)) (exp.f32 (log.f32 alpha))) |
(*.f32 (neg.f32 alpha) (neg.f32 alpha)) |
(*.f32 (fabs.f32 alpha) (fabs.f32 alpha)) |
(*.f32 alpha alpha) |
(pow.f32 (exp.f32 (log.f32 alpha)) #s(literal 2 binary32)) |
(pow.f32 (neg.f32 alpha) #s(literal 2 binary32)) |
(pow.f32 (fabs.f32 alpha) #s(literal 2 binary32)) |
(pow.f32 (*.f32 alpha alpha) #s(literal 1 binary32)) |
(pow.f32 alpha #s(literal 2 binary32)) |
(fabs.f32 (*.f32 alpha alpha)) |
(+.f32 (cosh.f32 (*.f32 (log.f32 alpha) #s(literal 2 binary32))) (sinh.f32 (*.f32 (log.f32 alpha) #s(literal 2 binary32)))) |
(exp.f32 (*.f32 (log.f32 alpha) #s(literal 2 binary32))) |
alpha |
(log.f32 (-.f32 (neg.f32 u0) #s(literal -1 binary32))) |
(-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (-.f32 (*.f32 u0 u0) (*.f32 #s(literal 1 binary32) (neg.f32 u0))))) |
(-.f32 (log.f32 (-.f32 #s(literal 1 binary32) (*.f32 u0 u0))) (log.f32 (-.f32 #s(literal 1 binary32) (neg.f32 u0)))) |
(log1p.f32 (neg.f32 u0)) |
(*.f32 #s(literal -1 binary32) u0) |
(*.f32 u0 #s(literal -1 binary32)) |
(neg.f32 u0) |
u0 |
#s(literal -1 binary32) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (log.f32 (pow.f32 (-.f32 #s(literal 1 binary32) u0) (neg.f32 (*.f32 alpha alpha))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (log.f32 (-.f32 #s(literal 1 binary32) u0)) (*.f32 alpha alpha))) |
#s(approx (* alpha alpha) (*.f32 alpha alpha)) |
#s(approx alpha alpha) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (*.f32 (*.f32 alpha alpha) u0)) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (*.f32 (fma.f32 #s(literal 1/2 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (*.f32 (fma.f32 (fma.f32 #s(literal 1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal 1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (neg.f32 (*.f32 alpha alpha)) u0)) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha)) u0 (neg.f32 (*.f32 alpha alpha))) u0)) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 #s(literal -1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal -1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) |
#s(approx (log (+ 1 (neg u0))) (neg.f32 u0)) |
#s(approx (log (+ 1 (neg u0))) (*.f32 (-.f32 (*.f32 #s(literal -1/2 binary32) u0) #s(literal 1 binary32)) u0)) |
#s(approx (log (+ 1 (neg u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/3 binary32) u0) #s(literal 1/2 binary32)) u0) #s(literal 1 binary32)) u0)) |
#s(approx (log (+ 1 (neg u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/4 binary32) u0) #s(literal 1/3 binary32)) u0) #s(literal 1/2 binary32)) u0) #s(literal 1 binary32)) u0)) |
#s(approx (neg u0) (neg.f32 u0)) |
#s(approx u0 u0) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (*.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)) (fma.f32 (/.f32 #s(literal 1/2 binary32) u0) (/.f32 (*.f32 alpha alpha) u0) (/.f32 (*.f32 alpha alpha) u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)) (fma.f32 (/.f32 (*.f32 alpha alpha) (pow.f32 u0 #s(literal 3 binary32))) #s(literal 1/3 binary32) (fma.f32 (/.f32 #s(literal 1/2 binary32) u0) (/.f32 (*.f32 alpha alpha) u0) (/.f32 (*.f32 alpha alpha) u0))))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (-.f32 (*.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha)) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (-.f32 (fma.f32 (/.f32 #s(literal -1/2 binary32) u0) (/.f32 (*.f32 alpha alpha) u0) (*.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha))) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (-.f32 (fma.f32 (/.f32 #s(literal -1/2 binary32) u0) (/.f32 (*.f32 alpha alpha) u0) (fma.f32 (log.f32 (neg.f32 u0)) (*.f32 alpha alpha) (/.f32 (*.f32 #s(literal -1/3 binary32) (*.f32 alpha alpha)) (pow.f32 u0 #s(literal 3 binary32))))) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (log (+ 1 (neg u0))) (log.f32 (neg.f32 u0))) |
#s(approx (log (+ 1 (neg u0))) (-.f32 (log.f32 (neg.f32 u0)) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (+ 1 (neg u0))) (+.f32 (log.f32 (neg.f32 u0)) (neg.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal -1 binary32)) u0)))) |
#s(approx (log (+ 1 (neg u0))) (-.f32 (+.f32 (log.f32 (neg.f32 u0)) (neg.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/3 binary32) u0) #s(literal -1/2 binary32)) (*.f32 u0 u0)))) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (*.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (neg.f32 (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal -1/2 binary32) (neg.f32 (*.f32 alpha alpha))) u0)))) |
#s(approx (* (* (* alpha alpha) (log (+ 1 (neg u0)))) -1) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (neg.f32 (/.f32 (fma.f32 (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal 1/3 binary32) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0) #s(literal -1 binary32) (neg.f32 (*.f32 alpha alpha))) u0)))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (/.f32 #s(literal -1 binary32) u0)))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (-.f32 (*.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (/.f32 #s(literal -1 binary32) u0))) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (/.f32 #s(literal -1 binary32) u0)) (neg.f32 (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal 1/2 binary32) (*.f32 alpha alpha)) u0)))) |
#s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (/.f32 #s(literal -1 binary32) u0)) (neg.f32 (/.f32 (fma.f32 alpha alpha (neg.f32 (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal -1/3 binary32) (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0))) u0)))) |
#s(approx (log (+ 1 (neg u0))) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)))) |
#s(approx (log (+ 1 (neg u0))) (-.f32 (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (+ 1 (neg u0))) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32) (neg.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal -1 binary32)) u0)))) |
#s(approx (log (+ 1 (neg u0))) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32) (neg.f32 (/.f32 (-.f32 (+.f32 (/.f32 #s(literal 1/3 binary32) (*.f32 u0 u0)) (/.f32 #s(literal 1/2 binary32) u0)) #s(literal -1 binary32)) u0)))) |
Compiled 1 451 to 326 computations (77.5% saved)
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 74 | 3 | 77 |
| Fresh | 2 | 3 | 5 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 76 | 7 | 83 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.1% | (*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
| 98.6% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (fma.f32 u0 u0 u0)))) | |
| 98.8% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) | |
| ▶ | 98.9% | (*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) |
| 95.3% | (*.f32 (*.f32 (exp.f32 (*.f32 (log.f32 alpha) #s(literal 2 binary32))) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) | |
| 92.5% | (*.f32 #s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal -1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) #s(literal -1 binary32)) | |
| 90.2% | (*.f32 #s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 #s(literal -1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) #s(literal -1 binary32)) |
Compiled 247 to 174 computations (29.6% saved)
| Inputs |
|---|
(*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) |
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) |
(log1p.f32 (neg.f32 u0)) |
(neg.f32 u0) |
u0 |
(neg.f32 alpha) |
alpha |
| Outputs |
|---|
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* -1 (* (pow alpha 2) (log (- 1 u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* -1 (* alpha (log (- 1 u0)))))) |
#s(approx (neg alpha) #s(hole binary32 (* -1 alpha))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* alpha u0))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* u0 (+ alpha (* 1/2 (* alpha u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* u0 (+ alpha (* u0 (+ (* 1/3 (* alpha u0)) (* 1/2 alpha))))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* u0 (+ alpha (* u0 (+ (* 1/2 alpha) (* u0 (+ (* 1/4 (* alpha u0)) (* 1/3 alpha))))))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 u0))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (neg u0) #s(hole binary32 (* -1 u0))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ alpha u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ alpha (pow u0 2))) (/ alpha u0))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ alpha (pow u0 3))) (+ (* 1/2 (/ alpha (pow u0 2))) (/ alpha u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (* -1 (log (/ 1 u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (* -1 (log (/ 1 u0)))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (/ 1 u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* (pow alpha 2) (log (/ -1 u0))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* (pow alpha 2) (log (/ -1 u0))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* alpha (log (/ -1 u0))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* alpha (log (/ -1 u0))) (/ alpha u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (/ (+ (* -1 alpha) (* -1/2 (/ alpha u0))) u0)) (* alpha (log (/ -1 u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (/ (+ (* -1 alpha) (* -1 (/ (+ (* 1/3 (/ alpha u0)) (* 1/2 alpha)) u0))) u0)) (* alpha (log (/ -1 u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 (log (/ -1 u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (* -1 (log (/ -1 u0))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 61.0ms | alpha | @ | inf | ((* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (* (log (+ 1 (neg u0))) (neg alpha)) (log (+ 1 (neg u0))) (neg u0) u0 (neg alpha) alpha) |
| 20.0ms | alpha | @ | 0 | ((* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (* (log (+ 1 (neg u0))) (neg alpha)) (log (+ 1 (neg u0))) (neg u0) u0 (neg alpha) alpha) |
| 8.0ms | alpha | @ | -inf | ((* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (* (log (+ 1 (neg u0))) (neg alpha)) (log (+ 1 (neg u0))) (neg u0) u0 (neg alpha) alpha) |
| 1.0ms | u0 | @ | -inf | ((* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (* (log (+ 1 (neg u0))) (neg alpha)) (log (+ 1 (neg u0))) (neg u0) u0 (neg alpha) alpha) |
| 1.0ms | u0 | @ | inf | ((* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (* (log (+ 1 (neg u0))) (neg alpha)) (log (+ 1 (neg u0))) (neg u0) u0 (neg alpha) alpha) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 212 | 939 |
| 0 | 218 | 876 |
| 1 | 1252 | 822 |
| 0 | 8383 | 789 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) |
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) |
(log1p.f32 (neg.f32 u0)) |
(neg.f32 u0) |
u0 |
(neg.f32 alpha) |
alpha |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* -1 (* (pow alpha 2) (log (- 1 u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* -1 (* alpha (log (- 1 u0)))))) |
#s(approx (neg alpha) #s(hole binary32 (* -1 alpha))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* alpha u0))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* u0 (+ alpha (* 1/2 (* alpha u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* u0 (+ alpha (* u0 (+ (* 1/3 (* alpha u0)) (* 1/2 alpha))))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* u0 (+ alpha (* u0 (+ (* 1/2 alpha) (* u0 (+ (* 1/4 (* alpha u0)) (* 1/3 alpha))))))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 u0))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (neg u0) #s(hole binary32 (* -1 u0))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))) (/ alpha u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ alpha (pow u0 2))) (/ alpha u0))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (* alpha (+ (log -1) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ alpha (pow u0 3))) (+ (* 1/2 (/ alpha (pow u0 2))) (/ alpha u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (* -1 (log (/ 1 u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (* -1 (log (/ 1 u0)))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (+ (log -1) (+ (* -1 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (/ 1 u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (* (pow alpha 2) (log (/ -1 u0))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* (pow alpha 2) (log (/ -1 u0))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) #s(hole binary32 (+ (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0)) (* (pow alpha 2) (log (/ -1 u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (* alpha (log (/ -1 u0))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* alpha (log (/ -1 u0))) (/ alpha u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (/ (+ (* -1 alpha) (* -1/2 (/ alpha u0))) u0)) (* alpha (log (/ -1 u0)))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) #s(hole binary32 (+ (* -1 (/ (+ (* -1 alpha) (* -1 (/ (+ (* 1/3 (/ alpha u0)) (* 1/2 alpha)) u0))) u0)) (* alpha (log (/ -1 u0)))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (* -1 (log (/ -1 u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (- (* -1 (log (/ -1 u0))) (/ 1 u0)))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))))) |
#s(approx (log (+ 1 (neg u0))) #s(hole binary32 (+ (* -1 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))))) |
| Outputs |
|---|
(*.f32 (*.f32 (neg.f32 alpha) (log1p.f32 (neg.f32 u0))) alpha) |
(*.f32 (log1p.f32 (neg.f32 u0)) (*.f32 (neg.f32 alpha) alpha)) |
(*.f32 alpha (*.f32 (neg.f32 alpha) (log1p.f32 (neg.f32 u0)))) |
(log.f32 (pow.f32 (-.f32 (neg.f32 u0) #s(literal -1 binary32)) (neg.f32 alpha))) |
(*.f32 (neg.f32 alpha) (log1p.f32 (neg.f32 u0))) |
(*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) |
(neg.f32 (*.f32 (log1p.f32 (neg.f32 u0)) alpha)) |
(log.f32 (-.f32 (neg.f32 u0) #s(literal -1 binary32))) |
(-.f32 (log.f32 (-.f32 #s(literal 1 binary32) (*.f32 u0 u0))) (log.f32 (-.f32 #s(literal 1 binary32) (neg.f32 u0)))) |
(-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (-.f32 (*.f32 u0 u0) (*.f32 #s(literal 1 binary32) (neg.f32 u0))))) |
(log1p.f32 (neg.f32 u0)) |
(*.f32 #s(literal -1 binary32) u0) |
(*.f32 u0 #s(literal -1 binary32)) |
(neg.f32 u0) |
u0 |
(*.f32 #s(literal -1 binary32) alpha) |
(*.f32 alpha #s(literal -1 binary32)) |
(neg.f32 alpha) |
alpha |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (log.f32 (pow.f32 (-.f32 #s(literal 1 binary32) u0) (neg.f32 (*.f32 alpha alpha))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 (neg.f32 alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0)))) |
#s(approx (neg alpha) (neg.f32 alpha)) |
#s(approx alpha alpha) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (*.f32 (*.f32 alpha alpha) u0)) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (*.f32 (fma.f32 #s(literal 1/2 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (*.f32 (fma.f32 (fma.f32 #s(literal 1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal 1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 alpha u0)) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 (fma.f32 (*.f32 alpha u0) #s(literal 1/2 binary32) alpha) u0)) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 (fma.f32 (fma.f32 (*.f32 alpha u0) #s(literal 1/3 binary32) (*.f32 #s(literal 1/2 binary32) alpha)) u0 alpha) u0)) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 (fma.f32 (fma.f32 (fma.f32 (*.f32 alpha u0) #s(literal 1/4 binary32) (*.f32 #s(literal 1/3 binary32) alpha)) u0 (*.f32 #s(literal 1/2 binary32) alpha)) u0 alpha) u0)) |
#s(approx (log (+ 1 (neg u0))) (neg.f32 u0)) |
#s(approx (log (+ 1 (neg u0))) (*.f32 (-.f32 (*.f32 #s(literal -1/2 binary32) u0) #s(literal 1 binary32)) u0)) |
#s(approx (log (+ 1 (neg u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/3 binary32) u0) #s(literal 1/2 binary32)) u0) #s(literal 1 binary32)) u0)) |
#s(approx (log (+ 1 (neg u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/4 binary32) u0) #s(literal 1/3 binary32)) u0) #s(literal 1/2 binary32)) u0) #s(literal 1 binary32)) u0)) |
#s(approx (neg u0) (neg.f32 u0)) |
#s(approx u0 u0) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (*.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)) (fma.f32 (pow.f32 (/.f32 alpha u0) #s(literal 2 binary32)) #s(literal 1/2 binary32) (/.f32 (*.f32 alpha alpha) u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (fma.f32 (neg.f32 (*.f32 alpha alpha)) (log.f32 (neg.f32 u0)) (fma.f32 (pow.f32 (/.f32 alpha u0) #s(literal 2 binary32)) (/.f32 #s(literal 1/3 binary32) u0) (fma.f32 (pow.f32 (/.f32 alpha u0) #s(literal 2 binary32)) #s(literal 1/2 binary32) (/.f32 (*.f32 alpha alpha) u0))))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 (neg.f32 alpha) (log.f32 (neg.f32 u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (fma.f32 (neg.f32 alpha) (log.f32 (neg.f32 u0)) (/.f32 alpha u0))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (fma.f32 (neg.f32 alpha) (log.f32 (neg.f32 u0)) (fma.f32 (/.f32 alpha (*.f32 u0 u0)) #s(literal 1/2 binary32) (/.f32 alpha u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (fma.f32 (neg.f32 alpha) (log.f32 (neg.f32 u0)) (fma.f32 (/.f32 alpha (pow.f32 u0 #s(literal 3 binary32))) #s(literal 1/3 binary32) (fma.f32 (/.f32 alpha (*.f32 u0 u0)) #s(literal 1/2 binary32) (/.f32 alpha u0))))) |
#s(approx (log (+ 1 (neg u0))) (log.f32 (neg.f32 u0))) |
#s(approx (log (+ 1 (neg u0))) (-.f32 (log.f32 (neg.f32 u0)) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (+ 1 (neg u0))) (+.f32 (log.f32 (neg.f32 u0)) (neg.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal -1 binary32)) u0)))) |
#s(approx (log (+ 1 (neg u0))) (-.f32 (+.f32 (log.f32 (neg.f32 u0)) (neg.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/3 binary32) u0) #s(literal -1/2 binary32)) (*.f32 u0 u0)))) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (*.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (neg.f32 (/.f32 (-.f32 (*.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal -1/2 binary32)) (*.f32 alpha alpha)) u0)))) |
#s(approx (* (* (log (+ 1 (neg u0))) (neg alpha)) alpha) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (*.f32 alpha alpha) (neg.f32 (/.f32 (-.f32 (neg.f32 (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal 1/3 binary32) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0)) (*.f32 alpha alpha)) u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (log.f32 (pow.f32 (/.f32 #s(literal -1 binary32) u0) alpha))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) alpha (/.f32 alpha u0))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) alpha (neg.f32 (/.f32 (fma.f32 (/.f32 alpha u0) #s(literal -1/2 binary32) (neg.f32 alpha)) u0)))) |
#s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) alpha (neg.f32 (/.f32 (fma.f32 (/.f32 (fma.f32 (/.f32 alpha u0) #s(literal 1/3 binary32) (*.f32 #s(literal 1/2 binary32) alpha)) u0) #s(literal -1 binary32) (neg.f32 alpha)) u0)))) |
#s(approx (log (+ 1 (neg u0))) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)))) |
#s(approx (log (+ 1 (neg u0))) (-.f32 (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (+ 1 (neg u0))) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32) (neg.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal -1 binary32)) u0)))) |
#s(approx (log (+ 1 (neg u0))) (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32) (neg.f32 (/.f32 (-.f32 (+.f32 (/.f32 #s(literal 1/3 binary32) (*.f32 u0 u0)) (/.f32 #s(literal 1/2 binary32) u0)) #s(literal -1 binary32)) u0)))) |
Compiled 1 153 to 277 computations (76% saved)
6 alts after pruning (5 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 62 | 1 | 63 |
| Fresh | 1 | 4 | 5 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 0 | 1 |
| Total | 64 | 6 | 70 |
| Status | Accuracy | Program |
|---|---|---|
| 98.6% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (fma.f32 u0 u0 u0)))) | |
| ▶ | 98.8% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) |
| ✓ | 98.9% | (*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) |
| 95.3% | (*.f32 (*.f32 (exp.f32 (*.f32 (log.f32 alpha) #s(literal 2 binary32))) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) | |
| 92.5% | (*.f32 #s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal -1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) #s(literal -1 binary32)) | |
| 92.4% | (*.f32 #s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 (fma.f32 (fma.f32 (fma.f32 (*.f32 alpha u0) #s(literal 1/4 binary32) (*.f32 #s(literal 1/3 binary32) alpha)) u0 (*.f32 #s(literal 1/2 binary32) alpha)) u0 alpha) u0)) alpha) |
Compiled 224 to 159 computations (29% saved)
| Inputs |
|---|
(*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) |
(*.f32 (neg.f32 alpha) alpha) |
(neg.f32 alpha) |
alpha |
(-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)) |
(log1p.f32 (*.f32 (neg.f32 u0) u0)) |
(*.f32 (neg.f32 u0) u0) |
(neg.f32 u0) |
u0 |
(log1p.f32 u0) |
| Outputs |
|---|
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (- (log (+ 1 (* -1 (pow u0 2)))) (log (+ 1 u0))))))) |
#s(approx (* (neg alpha) alpha) #s(hole binary32 (* -1 (pow alpha 2)))) |
#s(approx (neg alpha) #s(hole binary32 (* -1 alpha))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* -1 u0))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* -1 (pow u0 2)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* (pow u0 2) (- (* -1/2 (pow u0 2)) 1)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* (pow u0 2) (- (* (pow u0 2) (- (* -1/3 (pow u0 2)) 1/2)) 1)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* (pow u0 2) (- (* (pow u0 2) (- (* (pow u0 2) (- (* -1/4 (pow u0 2)) 1/3)) 1/2)) 1)))) |
#s(approx (* (neg u0) u0) #s(hole binary32 (* -1 (pow u0 2)))) |
#s(approx (neg u0) #s(hole binary32 (* -1 u0))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (log (+ 1 u0)) #s(hole binary32 u0)) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* u0 (+ 1 (* -1/2 u0))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* u0 (+ 1 (* u0 (- (* 1/3 u0) 1/2)))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* u0 (+ 1 (* u0 (- (* u0 (+ 1/3 (* -1/4 u0))) 1/2)))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ 1 u0)))) (+ (* -1 (log (/ 1 u0))) (/ 1 u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))) (* -1 (log (/ 1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (+ (* -1 (log (/ 1 u0))) (/ 1 u0))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (* -2 (log (/ 1 u0)))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ 1 u0)))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 (pow u0 2)))) (pow u0 2))))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 (pow u0 2)))) (pow u0 4))))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* -1 (log (/ 1 u0))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (* -1 (log (/ 1 u0))) (/ 1 u0)))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (- (+ (* -1 (log (/ 1 u0))) (/ 1 u0)) (/ 1/2 (pow u0 2))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (- (+ (* -1 (log (/ 1 u0))) (+ (/ 1 u0) (* 1/3 (/ 1 (pow u0 3))))) (/ 1/2 (pow u0 2))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (* -2 (log (/ -1 u0))) (+ (* -1 (log (/ -1 u0))) (/ 1 u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))) (* -1 (log (/ -1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))) (* -1 (log (/ -1 u0)))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (* -2 (log (/ -1 u0)))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ -1 u0)))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 (pow u0 2)))) (pow u0 2))))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 (pow u0 2)))) (pow u0 4))))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (* -1 (log (/ -1 u0)))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ -1 u0))) (/ 1 u0))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ -1 u0))) (* -1 (/ (- (* 1/2 (/ 1 u0)) 1) u0)))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ -1 u0))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 u0)) 1/2) u0)) 1) u0)))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 88.0ms | alpha | @ | 0 | ((* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (* (neg alpha) alpha) (neg alpha) alpha (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (log (+ 1 (* (neg u0) u0))) (* (neg u0) u0) (neg u0) u0 (log (+ 1 u0))) |
| 25.0ms | alpha | @ | -inf | ((* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (* (neg alpha) alpha) (neg alpha) alpha (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (log (+ 1 (* (neg u0) u0))) (* (neg u0) u0) (neg u0) u0 (log (+ 1 u0))) |
| 22.0ms | alpha | @ | inf | ((* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (* (neg alpha) alpha) (neg alpha) alpha (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (log (+ 1 (* (neg u0) u0))) (* (neg u0) u0) (neg u0) u0 (log (+ 1 u0))) |
| 2.0ms | u0 | @ | inf | ((* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (* (neg alpha) alpha) (neg alpha) alpha (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (log (+ 1 (* (neg u0) u0))) (* (neg u0) u0) (neg u0) u0 (log (+ 1 u0))) |
| 2.0ms | u0 | @ | 0 | ((* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (* (neg alpha) alpha) (neg alpha) alpha (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (log (+ 1 (* (neg u0) u0))) (* (neg u0) u0) (neg u0) u0 (log (+ 1 u0))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 272 | 1423 |
| 0 | 285 | 1269 |
| 1 | 1702 | 1187 |
| 0 | 8048 | 1155 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) |
(*.f32 (neg.f32 alpha) alpha) |
(neg.f32 alpha) |
alpha |
(-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)) |
(log1p.f32 (*.f32 (neg.f32 u0) u0)) |
(*.f32 (neg.f32 u0) u0) |
(neg.f32 u0) |
u0 |
(log1p.f32 u0) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (- (log (+ 1 (* -1 (pow u0 2)))) (log (+ 1 u0))))))) |
#s(approx (* (neg alpha) alpha) #s(hole binary32 (* -1 (pow alpha 2)))) |
#s(approx (neg alpha) #s(hole binary32 (* -1 alpha))) |
#s(approx alpha #s(hole binary32 alpha)) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* (pow alpha 2) u0))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* u0 (+ (* 1/2 (* (pow alpha 2) u0)) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/3 (* (pow alpha 2) u0)) (* 1/2 (pow alpha 2)))) (pow alpha 2))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* u0 (+ (* u0 (+ (* 1/2 (pow alpha 2)) (* u0 (+ (* 1/4 (* (pow alpha 2) u0)) (* 1/3 (pow alpha 2)))))) (pow alpha 2))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* -1 u0))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* u0 (- (* -1/2 u0) 1)))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* u0 (- (* u0 (- (* -1/3 u0) 1/2)) 1)))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (* u0 (- (* u0 (- (* u0 (- (* -1/4 u0) 1/3)) 1/2)) 1)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* -1 (pow u0 2)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* (pow u0 2) (- (* -1/2 (pow u0 2)) 1)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* (pow u0 2) (- (* (pow u0 2) (- (* -1/3 (pow u0 2)) 1/2)) 1)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (* (pow u0 2) (- (* (pow u0 2) (- (* (pow u0 2) (- (* -1/4 (pow u0 2)) 1/3)) 1/2)) 1)))) |
#s(approx (* (neg u0) u0) #s(hole binary32 (* -1 (pow u0 2)))) |
#s(approx (neg u0) #s(hole binary32 (* -1 u0))) |
#s(approx u0 #s(hole binary32 u0)) |
#s(approx (log (+ 1 u0)) #s(hole binary32 u0)) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* u0 (+ 1 (* -1/2 u0))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* u0 (+ 1 (* u0 (- (* 1/3 u0) 1/2)))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* u0 (+ 1 (* u0 (- (* u0 (+ 1/3 (* -1/4 u0))) 1/2)))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) (+ (* 1/3 (/ (pow alpha 2) (pow u0 3))) (+ (* 1/2 (/ (pow alpha 2) (pow u0 2))) (/ (pow alpha 2) u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ 1 u0)))) (* -1 (log (/ 1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ 1 u0)))) (+ (* -1 (log (/ 1 u0))) (/ 1 u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0)))) (* -1 (log (/ 1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 u0))) (pow u0 2))))) (+ (* -1 (log (/ 1 u0))) (/ 1 u0))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (* -2 (log (/ 1 u0)))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ 1 u0)))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 (pow u0 2)))) (pow u0 2))))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ 1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 (pow u0 2)))) (pow u0 4))))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (* -1 (log (/ 1 u0))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (* -1 (log (/ 1 u0))) (/ 1 u0)))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (- (+ (* -1 (log (/ 1 u0))) (/ 1 u0)) (/ 1/2 (pow u0 2))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (- (+ (* -1 (log (/ 1 u0))) (+ (/ 1 u0) (* 1/3 (/ 1 (pow u0 3))))) (/ 1/2 (pow u0 2))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) (/ (pow alpha 2) u0)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) (* -1 (/ (+ (* -1 (pow alpha 2)) (* -1/2 (/ (pow alpha 2) u0))) u0))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) #s(hole binary32 (+ (* -1 (* (pow alpha 2) (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) (* -1 (/ (+ (* -1 (/ (+ (* 1/3 (/ (pow alpha 2) u0)) (* 1/2 (pow alpha 2))) u0)) (* -1 (pow alpha 2))) u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (* -2 (log (/ -1 u0))) (* -1 (log (/ -1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (* -2 (log (/ -1 u0))) (+ (* -1 (log (/ -1 u0))) (/ 1 u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 u0))) u0))) (* -1 (log (/ -1 u0)))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) #s(hole binary32 (- (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1 (+ (/ 1/3 (pow u0 2)) (* 1/2 (/ 1 u0)))) u0))) (* -1 (log (/ -1 u0)))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (* -2 (log (/ -1 u0)))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (* -2 (log (/ -1 u0)))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (+ (log -1) (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1 (* 1/2 (/ 1 (pow u0 2)))) (pow u0 2))))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) #s(hole binary32 (- (+ (log -1) (+ (* -2 (log (/ -1 u0))) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 (pow u0 2)))) (pow u0 4))))) (/ 1 (pow u0 2))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (* -1 (log (/ -1 u0)))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ -1 u0))) (/ 1 u0))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ -1 u0))) (* -1 (/ (- (* 1/2 (/ 1 u0)) 1) u0)))))) |
#s(approx (log (+ 1 u0)) #s(hole binary32 (+ (log -1) (+ (* -1 (log (/ -1 u0))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 u0)) 1/2) u0)) 1) u0)))))) |
| Outputs |
|---|
(log.f32 (pow.f32 (/.f32 (fma.f32 (neg.f32 u0) u0 #s(literal 1 binary32)) (+.f32 #s(literal 1 binary32) u0)) (*.f32 (neg.f32 alpha) alpha))) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) |
(*.f32 (*.f32 (*.f32 alpha alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) #s(literal -1 binary32)) |
(*.f32 #s(literal -1 binary32) (*.f32 (*.f32 alpha alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) |
(*.f32 (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)) (*.f32 (neg.f32 alpha) alpha)) |
(*.f32 (neg.f32 alpha) (*.f32 alpha (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) |
(neg.f32 (*.f32 (*.f32 alpha alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) |
(*.f32 (*.f32 alpha alpha) #s(literal -1 binary32)) |
(*.f32 #s(literal -1 binary32) (*.f32 alpha alpha)) |
(*.f32 (neg.f32 alpha) alpha) |
(*.f32 alpha (neg.f32 alpha)) |
(neg.f32 (*.f32 alpha alpha)) |
(*.f32 #s(literal -1 binary32) alpha) |
(*.f32 alpha #s(literal -1 binary32)) |
(neg.f32 alpha) |
alpha |
(log.f32 (/.f32 (fma.f32 (neg.f32 u0) u0 #s(literal 1 binary32)) (+.f32 #s(literal 1 binary32) u0))) |
(/.f32 (neg.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 2 binary32)))) (neg.f32 (+.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) |
(/.f32 (neg.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 3 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 3 binary32)))) (neg.f32 (+.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (fma.f32 (log1p.f32 u0) (log1p.f32 u0) (*.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))))) |
(/.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 2 binary32))) (+.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) |
(/.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 3 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 3 binary32))) (+.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (fma.f32 (log1p.f32 u0) (log1p.f32 u0) (*.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))))) |
(-.f32 (/.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (+.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) (/.f32 (pow.f32 (log1p.f32 u0) #s(literal 2 binary32)) (+.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) |
(-.f32 (/.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 3 binary32)) (+.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (fma.f32 (log1p.f32 u0) (log1p.f32 u0) (*.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))))) (/.f32 (pow.f32 (log1p.f32 u0) #s(literal 3 binary32)) (+.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (fma.f32 (log1p.f32 u0) (log1p.f32 u0) (*.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))))) |
(-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)) |
(log.f32 (fma.f32 (neg.f32 u0) u0 #s(literal 1 binary32))) |
(-.f32 (log.f32 (-.f32 #s(literal 1 binary32) (pow.f32 u0 #s(literal 4 binary32)))) (log.f32 (-.f32 #s(literal 1 binary32) (*.f32 (neg.f32 u0) u0)))) |
(-.f32 (log1p.f32 (pow.f32 (*.f32 (neg.f32 u0) u0) #s(literal 3 binary32))) (log1p.f32 (-.f32 (pow.f32 u0 #s(literal 4 binary32)) (*.f32 #s(literal 1 binary32) (*.f32 (neg.f32 u0) u0))))) |
(log1p.f32 (*.f32 (neg.f32 u0) u0)) |
(*.f32 (*.f32 u0 u0) #s(literal -1 binary32)) |
(*.f32 #s(literal -1 binary32) (*.f32 u0 u0)) |
(*.f32 (neg.f32 u0) u0) |
(*.f32 u0 (neg.f32 u0)) |
(neg.f32 (*.f32 u0 u0)) |
(*.f32 #s(literal -1 binary32) u0) |
(*.f32 u0 #s(literal -1 binary32)) |
(neg.f32 u0) |
u0 |
(log.f32 (+.f32 #s(literal 1 binary32) u0)) |
(-.f32 (log1p.f32 (pow.f32 u0 #s(literal 3 binary32))) (log1p.f32 (-.f32 (*.f32 u0 u0) (*.f32 #s(literal 1 binary32) u0)))) |
(-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
(log1p.f32 u0) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) |
#s(approx (* (neg alpha) alpha) (*.f32 (neg.f32 alpha) alpha)) |
#s(approx (neg alpha) (neg.f32 alpha)) |
#s(approx alpha alpha) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (*.f32 (*.f32 alpha alpha) u0)) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (*.f32 (fma.f32 #s(literal 1/2 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (*.f32 (fma.f32 (fma.f32 #s(literal 1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal 1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (neg.f32 u0)) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (*.f32 (-.f32 (*.f32 #s(literal -1/2 binary32) u0) #s(literal 1 binary32)) u0)) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/3 binary32) u0) #s(literal 1/2 binary32)) u0) #s(literal 1 binary32)) u0)) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/4 binary32) u0) #s(literal 1/3 binary32)) u0) #s(literal 1/2 binary32)) u0) #s(literal 1 binary32)) u0)) |
#s(approx (log (+ 1 (* (neg u0) u0))) (*.f32 (neg.f32 u0) u0)) |
#s(approx (log (+ 1 (* (neg u0) u0))) (*.f32 (-.f32 (*.f32 #s(literal -1/2 binary32) (*.f32 u0 u0)) #s(literal 1 binary32)) (*.f32 u0 u0))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/3 binary32) (*.f32 u0 u0)) #s(literal 1/2 binary32)) (*.f32 u0 u0)) #s(literal 1 binary32)) (*.f32 u0 u0))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 (-.f32 (*.f32 #s(literal -1/4 binary32) (*.f32 u0 u0)) #s(literal 1/3 binary32)) (*.f32 u0 u0)) #s(literal 1/2 binary32)) (*.f32 u0 u0)) #s(literal 1 binary32)) (*.f32 u0 u0))) |
#s(approx (* (neg u0) u0) (*.f32 (neg.f32 u0) u0)) |
#s(approx (neg u0) (neg.f32 u0)) |
#s(approx u0 u0) |
#s(approx (log (+ 1 u0)) u0) |
#s(approx (log (+ 1 u0)) (*.f32 (fma.f32 #s(literal -1/2 binary32) u0 #s(literal 1 binary32)) u0)) |
#s(approx (log (+ 1 u0)) (*.f32 (fma.f32 (-.f32 (*.f32 #s(literal 1/3 binary32) u0) #s(literal 1/2 binary32)) u0 #s(literal 1 binary32)) u0)) |
#s(approx (log (+ 1 u0)) (*.f32 (fma.f32 (-.f32 (*.f32 (fma.f32 #s(literal -1/4 binary32) u0 #s(literal 1/3 binary32)) u0) #s(literal 1/2 binary32)) u0 #s(literal 1 binary32)) u0)) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (*.f32 (*.f32 (neg.f32 alpha) alpha) (+.f32 (log.f32 #s(literal -1 binary32)) (log.f32 u0)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (fma.f32 (*.f32 (neg.f32 alpha) alpha) (+.f32 (log.f32 #s(literal -1 binary32)) (log.f32 u0)) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (fma.f32 (*.f32 (neg.f32 alpha) alpha) (+.f32 (log.f32 #s(literal -1 binary32)) (log.f32 u0)) (fma.f32 (/.f32 #s(literal 1/2 binary32) u0) (/.f32 (*.f32 alpha alpha) u0) (/.f32 (*.f32 alpha alpha) u0)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (fma.f32 (*.f32 (neg.f32 alpha) alpha) (+.f32 (log.f32 #s(literal -1 binary32)) (log.f32 u0)) (fma.f32 (/.f32 (*.f32 alpha alpha) (pow.f32 u0 #s(literal 3 binary32))) #s(literal 1/3 binary32) (fma.f32 (/.f32 #s(literal 1/2 binary32) u0) (/.f32 (*.f32 alpha alpha) u0) (/.f32 (*.f32 alpha alpha) u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (+.f32 (log.f32 #s(literal -1 binary32)) (log.f32 u0))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (-.f32 (+.f32 (log.f32 #s(literal -1 binary32)) (log.f32 u0)) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (-.f32 (+.f32 (log.f32 (*.f32 (neg.f32 u0) u0)) (neg.f32 (/.f32 (+.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal 1 binary32)) u0))) (log.f32 u0))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (-.f32 (+.f32 (log.f32 (*.f32 (neg.f32 u0) u0)) (neg.f32 (/.f32 (+.f32 (/.f32 #s(literal 1/3 binary32) u0) #s(literal 1/2 binary32)) (*.f32 u0 u0)))) (+.f32 (log.f32 u0) (/.f32 #s(literal 1 binary32) u0)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (log.f32 (*.f32 (neg.f32 u0) u0))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (-.f32 (log.f32 (*.f32 (neg.f32 u0) u0)) (pow.f32 u0 #s(literal -2 binary32)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (+.f32 (log.f32 (*.f32 (neg.f32 u0) u0)) (neg.f32 (/.f32 (fma.f32 (pow.f32 u0 #s(literal -2 binary32)) #s(literal 1/2 binary32) #s(literal 1 binary32)) (*.f32 u0 u0))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (-.f32 (+.f32 (log.f32 (*.f32 (neg.f32 u0) u0)) (neg.f32 (/.f32 (fma.f32 (pow.f32 u0 #s(literal -2 binary32)) #s(literal 1/3 binary32) #s(literal 1/2 binary32)) (pow.f32 u0 #s(literal 4 binary32))))) (pow.f32 u0 #s(literal -2 binary32)))) |
#s(approx (log (+ 1 u0)) (log.f32 u0)) |
#s(approx (log (+ 1 u0)) (+.f32 (log.f32 u0) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (+ 1 u0)) (-.f32 (+.f32 (log.f32 u0) (/.f32 #s(literal 1 binary32) u0)) (*.f32 (pow.f32 u0 #s(literal -2 binary32)) #s(literal 1/2 binary32)))) |
#s(approx (log (+ 1 u0)) (-.f32 (+.f32 (fma.f32 (pow.f32 u0 #s(literal -3 binary32)) #s(literal 1/3 binary32) (/.f32 #s(literal 1 binary32) u0)) (log.f32 u0)) (*.f32 (pow.f32 u0 #s(literal -2 binary32)) #s(literal 1/2 binary32)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (*.f32 (*.f32 (neg.f32 alpha) alpha) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (fma.f32 (*.f32 (neg.f32 alpha) alpha) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))) (/.f32 (*.f32 alpha alpha) u0))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (fma.f32 (*.f32 (neg.f32 alpha) alpha) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))) (neg.f32 (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal -1/2 binary32) (*.f32 (neg.f32 alpha) alpha)) u0)))) |
#s(approx (* (* (neg alpha) alpha) (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0)))) (fma.f32 (*.f32 (neg.f32 alpha) alpha) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))) (neg.f32 (/.f32 (fma.f32 (neg.f32 alpha) alpha (neg.f32 (/.f32 (fma.f32 (/.f32 (*.f32 alpha alpha) u0) #s(literal 1/3 binary32) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0))) u0)))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (-.f32 (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (-.f32 (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -2 binary32) (neg.f32 (/.f32 (+.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal 1 binary32)) u0))) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))))) |
#s(approx (- (log (+ 1 (* (neg u0) u0))) (log (+ 1 u0))) (-.f32 (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -2 binary32) (neg.f32 (/.f32 (+.f32 (fma.f32 (pow.f32 u0 #s(literal -2 binary32)) #s(literal 1/3 binary32) (/.f32 #s(literal 1/2 binary32) u0)) #s(literal 1 binary32)) u0))) (neg.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0))))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (log.f32 (*.f32 (pow.f32 (/.f32 #s(literal -1 binary32) u0) #s(literal -2 binary32)) #s(literal -1 binary32)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (-.f32 (log.f32 (*.f32 (pow.f32 (/.f32 #s(literal -1 binary32) u0) #s(literal -2 binary32)) #s(literal -1 binary32))) (pow.f32 u0 #s(literal -2 binary32)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (+.f32 (fma.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) #s(literal -2 binary32) (neg.f32 (/.f32 (fma.f32 (pow.f32 u0 #s(literal -2 binary32)) #s(literal 1/2 binary32) #s(literal 1 binary32)) (*.f32 u0 u0)))) (log.f32 #s(literal -1 binary32)))) |
#s(approx (log (+ 1 (* (neg u0) u0))) (-.f32 (+.f32 (log.f32 (*.f32 (pow.f32 (/.f32 #s(literal -1 binary32) u0) #s(literal -2 binary32)) #s(literal -1 binary32))) (neg.f32 (/.f32 (fma.f32 (pow.f32 u0 #s(literal -2 binary32)) #s(literal 1/3 binary32) #s(literal 1/2 binary32)) (pow.f32 u0 #s(literal 4 binary32))))) (pow.f32 u0 #s(literal -2 binary32)))) |
#s(approx (log (+ 1 u0)) (log.f32 (*.f32 (/.f32 #s(literal 1 binary32) (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32)))) |
#s(approx (log (+ 1 u0)) (+.f32 (log.f32 (*.f32 (/.f32 #s(literal 1 binary32) (/.f32 #s(literal -1 binary32) u0)) #s(literal -1 binary32))) (/.f32 #s(literal 1 binary32) u0))) |
#s(approx (log (+ 1 u0)) (fma.f32 #s(literal -1 binary32) (+.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (/.f32 (-.f32 (/.f32 #s(literal 1/2 binary32) u0) #s(literal 1 binary32)) u0)) (log.f32 #s(literal -1 binary32)))) |
#s(approx (log (+ 1 u0)) (fma.f32 #s(literal -1 binary32) (+.f32 (log.f32 (/.f32 #s(literal -1 binary32) u0)) (/.f32 (-.f32 (neg.f32 (/.f32 (-.f32 (/.f32 #s(literal 1/3 binary32) u0) #s(literal 1/2 binary32)) u0)) #s(literal 1 binary32)) u0)) (log.f32 #s(literal -1 binary32)))) |
Compiled 2 441 to 442 computations (81.9% saved)
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 99 | 3 | 102 |
| Fresh | 1 | 3 | 4 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 101 | 7 | 108 |
| Status | Accuracy | Program |
|---|---|---|
| 98.4% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (/.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 3 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 3 binary32))) (+.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (fma.f32 (log1p.f32 u0) (log1p.f32 u0) (*.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))))) | |
| 98.6% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (/.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 2 binary32))) (+.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) | |
| 98.6% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (fma.f32 u0 u0 u0)))) | |
| 98.8% | (*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (-.f32 (log1p.f32 (pow.f32 u0 #s(literal 3 binary32))) (log1p.f32 (-.f32 (*.f32 u0 u0) (*.f32 #s(literal 1 binary32) u0)))))) | |
| ✓ | 98.9% | (*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) |
| 95.3% | (*.f32 (*.f32 (exp.f32 (*.f32 (log.f32 alpha) #s(literal 2 binary32))) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) | |
| 92.5% | (*.f32 #s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal -1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) #s(literal -1 binary32)) |
Compiled 483 to 215 computations (55.5% saved)
Total -15.4b remaining (-5226.2%)
Threshold costs -15.4b (-5226.2%)
| Inputs |
|---|
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (fma.f32 (fma.f32 #s(literal 1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
(*.f32 #s(approx (* (log (+ 1 (neg u0))) (neg alpha)) (*.f32 (fma.f32 (fma.f32 (fma.f32 (*.f32 alpha u0) #s(literal 1/4 binary32) (*.f32 #s(literal 1/3 binary32) alpha)) u0 (*.f32 #s(literal 1/2 binary32) alpha)) u0 alpha) u0)) alpha) |
(*.f32 #s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 #s(literal -1/3 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) #s(literal -1 binary32)) |
#s(approx (* (* (neg alpha) alpha) (log (- 1 u0))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal 1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal 1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal 1/2 binary32) (*.f32 alpha alpha))) u0 (*.f32 alpha alpha)) u0)) |
(*.f32 #s(approx (* (* alpha alpha) (log (+ 1 (neg u0)))) (*.f32 (fma.f32 (fma.f32 (fma.f32 #s(literal -1/4 binary32) (*.f32 (*.f32 alpha alpha) u0) (*.f32 #s(literal -1/3 binary32) (*.f32 alpha alpha))) u0 (*.f32 #s(literal -1/2 binary32) (*.f32 alpha alpha))) u0 (neg.f32 (*.f32 alpha alpha))) u0)) #s(literal -1 binary32)) |
(*.f32 (*.f32 (log1p.f32 (neg.f32 u0)) (neg.f32 alpha)) alpha) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0))) |
(*.f32 (*.f32 (exp.f32 (*.f32 (log.f32 alpha) #s(literal 2 binary32))) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (pow.f32 (neg.f32 u0) #s(literal 3 binary32))) (log1p.f32 (fma.f32 u0 u0 u0)))) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (-.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (-.f32 (log1p.f32 (pow.f32 u0 #s(literal 3 binary32))) (log1p.f32 (-.f32 (*.f32 u0 u0) (*.f32 #s(literal 1 binary32) u0)))))) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (/.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 2 binary32))) (+.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))) |
(*.f32 (*.f32 (neg.f32 alpha) alpha) (/.f32 (-.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 3 binary32)) (pow.f32 (log1p.f32 u0) #s(literal 3 binary32))) (+.f32 (pow.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) #s(literal 2 binary32)) (fma.f32 (log1p.f32 u0) (log1p.f32 u0) (*.f32 (log1p.f32 (*.f32 (neg.f32 u0) u0)) (log1p.f32 u0)))))) |
| Outputs |
|---|
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
6 calls:
| 13.0ms | (-.f32 #s(literal 1 binary32) u0) |
| 8.0ms | alpha |
| 8.0ms | (*.f32 (neg.f32 alpha) alpha) |
| 7.0ms | u0 |
| 7.0ms | (log.f32 (-.f32 #s(literal 1 binary32) u0)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.1% | 1 | (-.f32 #s(literal 1 binary32) u0) |
| 99.1% | 1 | (log.f32 (-.f32 #s(literal 1 binary32) u0)) |
| 99.1% | 1 | (*.f32 (neg.f32 alpha) alpha) |
| 99.1% | 1 | (*.f32 (*.f32 (neg.f32 alpha) alpha) (log.f32 (-.f32 #s(literal 1 binary32) u0))) |
| 99.1% | 1 | alpha |
| 99.1% | 1 | u0 |
Compiled 22 to 25 computations (-13.6% saved)
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 9 |
| 1 | 12 | 9 |
| 2 | 13 | 9 |
| 1× | saturated |
| Inputs |
|---|
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
| Outputs |
|---|
(*.f32 (*.f32 (*.f32 alpha alpha) (log1p.f32 (neg.f32 u0))) #s(literal -1 binary32)) |
| 1× | fuel |
Compiled 9 to 8 computations (11.1% saved)
(abs alpha)
Compiled 54 to 48 computations (11.1% saved)
Loading profile data...