Numeric.SpecFunctions:stirlingError from math-functions-0.1.5.2

Time bar (total: 1.5s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze1.0ms (0.1%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
100%49.9%0%0.1%0%49.9%0%3
Compiler

Compiled 14 to 12 computations (14.3% saved)

sample824.0ms (54.5%)

Memory
20.6MiB live, 1 278.0MiB allocated
Samples
533.0ms8 253×0valid
0.0ms1valid
0.0ms2valid
Precisions
Click to see histograms. Total time spent on operations: 332.0ms
ival-log: 110.0ms (33.2% of total)
ival-add: 85.0ms (25.6% of total)
ival-sub: 72.0ms (21.7% of total)
ival-mult: 51.0ms (15.4% of total)
ival-true: 6.0ms (1.8% of total)
exact: 5.0ms (1.5% of total)
ival-assert: 3.0ms (0.9% of total)
adjust: 0.0ms (0% of total)
Bogosity

explain120.0ms (7.9%)

Memory
-55.1MiB live, 226.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 y #s(literal 1/2 binary64))
00-0-(log.f64 y)
00-0-(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
00-0-(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
00-0-z
00-0-(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
00-0-y
00-0-(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
00-0-#s(literal 1/2 binary64)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
38.0ms512×0valid
Compiler

Compiled 151 to 44 computations (70.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-log: 7.0ms (33% of total)
ival-add: 5.0ms (23.6% of total)
ival-sub: 4.0ms (18.9% of total)
ival-mult: 4.0ms (18.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess3.0ms (0.2%)

Memory
8.5MiB live, 8.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
Outputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
Compiler

Compiled 12 to 10 computations (16.7% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
Compiler

Compiled 12 to 10 computations (16.7% saved)

simplify0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
cost-diff0
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
cost-diff0
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
cost-diff0
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
z
Outputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
z

localize27.0ms (1.8%)

Memory
6.6MiB live, 45.2MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
accuracy0.01171875
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
accuracy0.09375
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
accuracy0.12109375
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
Samples
20.0ms256×0valid
Compiler

Compiled 92 to 22 computations (76.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-sub: 4.0ms (34.4% of total)
ival-log: 3.0ms (25.8% of total)
ival-add: 3.0ms (25.8% of total)
ival-mult: 2.0ms (17.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series22.0ms (1.5%)

Memory
-4.1MiB live, 34.5MiB allocated
Counts
4 → 38
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(* 1/2 (log y))
(+ (* 1/2 (log y)) (* y (log y)))
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (* y (log (/ 1 y))))
(* y (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y))))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(* y (+ (log -1) (* -1 (log (/ -1 y)))))
(* -1 (* y (+ (* -1 (+ (log -1) (* -1 (log (/ -1 y))))) (* -1/2 (/ (+ (log -1) (* -1 (log (/ -1 y)))) y)))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Calls

9 calls:

TimeVariablePointExpression
7.0ms
x
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)))
4.0ms
y
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)))
3.0ms
y
@-inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)))
2.0ms
y
@inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)))
1.0ms
x
@inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)))

simplify1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
38 → 4
Calls
Call 1
Inputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(* 1/2 (log y))
(+ (* 1/2 (log y)) (* y (log y)))
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (* y (log (/ 1 y))))
(* y (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y))))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(* y (+ (log -1) (* -1 (log (/ -1 y)))))
(* -1 (* y (+ (* -1 (+ (log -1) (* -1 (log (/ -1 y))))) (* -1/2 (/ (+ (log -1) (* -1 (log (/ -1 y)))) y)))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(- y (* (log y) (+ 1/2 y)))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))

rewrite0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
Outputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))

eval1.0ms (0.1%)

Memory
1.6MiB live, 1.6MiB allocated
Compiler

Compiled 136 to 23 computations (83.1% saved)

prune1.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New538
Fresh000
Picked011
Done000
Total549
Accuracy
99.8%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
81.5%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
28.7%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
71.8%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
Compiler

Compiled 75 to 58 computations (22.7% saved)

simplify1.0ms (0.1%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
cost-diff0
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
cost-diff0
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
cost-diff0
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
cost-diff0
(+.f64 y #s(literal 1/2 binary64))
cost-diff0
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
cost-diff0
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
cost-diff0
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
cost-diff0
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
cost-diff0
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
cost-diff0
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
cost-diff0
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
z
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
z
Outputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
z
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
z

localize39.0ms (2.6%)

Memory
-27.1MiB live, 48.7MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
accuracy0.01171875
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
accuracy0.12109375
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
accuracy14.840676523958672
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
accuracy0.0
(log.f64 y)
accuracy0.00390625
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
accuracy0.12109375
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
accuracy62.77715739272341
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
accuracy0.01171875
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
accuracy0.09375
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
accuracy0.12109375
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
accuracy17.938131458553674
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
Samples
22.0ms256×0valid
Compiler

Compiled 295 to 33 computations (88.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-log: 3.0ms (29.8% of total)
ival-add: 3.0ms (29.8% of total)
ival-sub: 2.0ms (19.8% of total)
ival-mult: 2.0ms (19.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series53.0ms (3.5%)

Memory
38.1MiB live, 74.2MiB allocated
Counts
10 → 45
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(+.f64 y #s(literal 1/2 binary64))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(log.f64 y)
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(* 1/2 (log y))
(+ (* 1/2 (log y)) (* y (log y)))
1/2
(+ 1/2 y)
(log y)
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (* y (log (/ 1 y))))
(* y (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y))))
y
(* y (+ 1 (* 1/2 (/ 1 y))))
(* -1 (log (/ 1 y)))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(* y (+ (log -1) (* -1 (log (/ -1 y)))))
(* -1 (* y (+ (* -1 (+ (log -1) (* -1 (log (/ -1 y))))) (* -1/2 (/ (+ (log -1) (* -1 (log (/ -1 y)))) y)))))
(+ (log -1) (* -1 (log (/ -1 y))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Calls

9 calls:

TimeVariablePointExpression
18.0ms
y
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (log y))
15.0ms
y
@-inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (log y))
11.0ms
y
@inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (log y))
2.0ms
x
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (log y))
1.0ms
z
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (log y))

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Counts
45 → 10
Calls
Call 1
Inputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(* 1/2 (log y))
(+ (* 1/2 (log y)) (* y (log y)))
1/2
(+ 1/2 y)
(log y)
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (* y (log (/ 1 y))))
(* y (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y))))
y
(* y (+ 1 (* 1/2 (/ 1 y))))
(* -1 (log (/ 1 y)))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(* y (+ (log -1) (* -1 (log (/ -1 y)))))
(* -1 (* y (+ (* -1 (+ (log -1) (* -1 (log (/ -1 y))))) (* -1/2 (/ (+ (log -1) (* -1 (log (/ -1 y)))) y)))))
(+ (log -1) (* -1 (log (/ -1 y))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(- y (* (log y) (+ 1/2 y)))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(* -1 (* (log y) (+ 1/2 y)))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
(- x (* (log y) (+ 1/2 y)))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(+.f64 y #s(literal 1/2 binary64))
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(log.f64 y)

rewrite4.0ms (0.3%)

Memory
-35.3MiB live, 1.1MiB allocated
Counts
10 → 10
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(+.f64 y #s(literal 1/2 binary64))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(log.f64 y)
Outputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(+.f64 y #s(literal 1/2 binary64))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(log.f64 y)

eval3.0ms (0.2%)

Memory
5.4MiB live, 5.4MiB allocated
Compiler

Compiled 724 to 43 computations (94.1% saved)

prune5.0ms (0.3%)

Memory
8.6MiB live, 8.6MiB allocated
Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New22527
Fresh000
Picked123
Done011
Total23831
Accuracy
99.8%
Counts
31 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
81.5%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
28.9%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
71.8%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
2.1%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
3.9%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
53.7%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
2.1%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
Compiler

Compiled 312 to 189 computations (39.4% saved)

simplify1.0ms (0.1%)

Memory
1.6MiB live, 1.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 y #s(literal 1/2 binary64))
cost-diff0
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
cost-diff0
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
cost-diff0
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
cost-diff0
(log.f64 y)
cost-diff0
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
cost-diff0
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
cost-diff0
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
cost-diff0
(log.f64 y)
cost-diff0
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
cost-diff0
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
cost-diff0
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
cost-diff0
(+.f64 y #s(literal 1/2 binary64))
cost-diff0
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
cost-diff0
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
cost-diff0
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
cost-diff0
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
cost-diff0
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
y
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
y
z
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
Outputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
x
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
y
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
y
z
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(+.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
(log.f64 y)

localize42.0ms (2.8%)

Memory
9.5MiB live, 51.3MiB allocated
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(log.f64 y)
accuracy0.12109375
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
accuracy17.938131458553674
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
accuracy62.77715739272341
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
accuracy0.0
(log.f64 y)
accuracy0.00390625
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
accuracy14.840676523958672
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
accuracy62.7638469974938
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
accuracy0.0
(log.f64 y)
accuracy0.09375
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
accuracy17.938131458553674
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
accuracy62.7638469974938
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
accuracy0.0
(+.f64 y #s(literal 1/2 binary64))
accuracy61.48708144568756
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
accuracy0.01171875
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
accuracy0.12109375
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
accuracy14.840676523958672
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
accuracy17.938131458553674
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
Samples
30.0ms256×0valid
Compiler

Compiled 433 to 37 computations (91.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-log: 3.0ms (29.9% of total)
ival-add: 3.0ms (29.9% of total)
ival-sub: 2.0ms (20% of total)
ival-mult: 2.0ms (20% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series33.0ms (2.2%)

Memory
15.4MiB live, 52.4MiB allocated
Counts
14 → 45
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
(+.f64 y #s(literal 1/2 binary64))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(* 1/2 (log y))
(+ (* 1/2 (log y)) (* y (log y)))
1/2
(+ 1/2 y)
(log y)
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (* y (log (/ 1 y))))
(* y (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y))))
y
(* y (+ 1 (* 1/2 (/ 1 y))))
(* -1 (log (/ 1 y)))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(* y (+ (log -1) (* -1 (log (/ -1 y)))))
(* -1 (* y (+ (* -1 (+ (log -1) (* -1 (log (/ -1 y))))) (* -1/2 (/ (+ (log -1) (* -1 (log (/ -1 y)))) y)))))
(+ (log -1) (* -1 (log (/ -1 y))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Calls

9 calls:

TimeVariablePointExpression
10.0ms
y
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y))
7.0ms
y
@-inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y))
7.0ms
y
@inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y))
2.0ms
x
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y))
1.0ms
z
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (* (+ y 1/2) (log y)) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ y 1/2) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y))

simplify4.0ms (0.3%)

Memory
-36.5MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Counts
45 → 14
Calls
Call 1
Inputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(* 1/2 (log y))
(+ (* 1/2 (log y)) (* y (log y)))
1/2
(+ 1/2 y)
(log y)
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (* y (log (/ 1 y))))
(* y (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y))))
y
(* y (+ 1 (* 1/2 (/ 1 y))))
(* -1 (log (/ 1 y)))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(* y (+ (log -1) (* -1 (log (/ -1 y)))))
(* -1 (* y (+ (* -1 (+ (log -1) (* -1 (log (/ -1 y))))) (* -1/2 (/ (+ (log -1) (* -1 (log (/ -1 y)))) y)))))
(+ (log -1) (* -1 (log (/ -1 y))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(- y (* (log y) (+ 1/2 y)))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
(* -1 (* (log y) (+ 1/2 y)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
(- x (* (log y) (+ 1/2 y)))
(+.f64 y #s(literal 1/2 binary64))
x
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(log.f64 y)
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(- x (+ z (* 1/2 (log y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))

rewrite1.0ms (0.1%)

Memory
1.3MiB live, 1.3MiB allocated
Counts
14 → 14
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
(+.f64 y #s(literal 1/2 binary64))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
Outputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
(-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))
(*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
(+.f64 y #s(literal 1/2 binary64))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y)
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))

eval3.0ms (0.2%)

Memory
5.4MiB live, 5.4MiB allocated
Compiler

Compiled 885 to 40 computations (95.5% saved)

prune5.0ms (0.4%)

Memory
9.0MiB live, 9.0MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New26127
Fresh000
Picked145
Done033
Total27835
Accuracy
99.8%
Counts
35 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
81.5%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
28.9%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
71.8%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
3.9%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
53.7%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
2.1%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
2.1%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
Compiler

Compiled 193 to 116 computations (39.9% saved)

simplify0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(log.f64 y)
cost-diff0
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
cost-diff0
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
cost-diff0
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
y
Outputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
y

localize25.0ms (1.7%)

Memory
-6.3MiB live, 31.1MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(log.f64 y)
accuracy14.840676523958672
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
accuracy17.938131458553674
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
accuracy62.7638469974938
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
Samples
19.0ms256×0valid
Compiler

Compiled 106 to 26 computations (75.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-log: 3.0ms (30.2% of total)
ival-add: 3.0ms (30.2% of total)
ival-sub: 2.0ms (20.1% of total)
ival-mult: 2.0ms (20.1% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series34.0ms (2.3%)

Memory
3.5MiB live, 47.6MiB allocated
Counts
4 → 35
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(log y)
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (log (/ 1 y)))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(+ (log -1) (* -1 (log (/ -1 y))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Calls

9 calls:

TimeVariablePointExpression
14.0ms
y
@-inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y))
6.0ms
y
@inf
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y))
6.0ms
y
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y))
1.0ms
x
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y))
1.0ms
z
@0
((- (+ (- x (* (+ y 1/2) (log y))) y) z) (+ (- x (* (+ y 1/2) (log y))) y) (- x (* (+ y 1/2) (log y))) (log y))

simplify1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Counts
35 → 4
Calls
Call 1
Inputs
(- y (+ z (* (log y) (+ 1/2 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
(- y (* (log y) (+ 1/2 y)))
(- (+ x y) (* (log y) (+ 1/2 y)))
(* -1 (* (log y) (+ 1/2 y)))
(- x (* (log y) (+ 1/2 y)))
x
(* x (- (+ 1 (/ y x)) (+ (/ z x) (/ (* (log y) (+ 1/2 y)) x))))
(* x (- (+ 1 (/ y x)) (/ (* (log y) (+ 1/2 y)) x)))
(* x (+ 1 (* -1 (/ (* (log y) (+ 1/2 y)) x))))
(* -1 (* x (- (* -1 (/ (- y (+ z (* (log y) (+ 1/2 y)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (- y (* (log y) (+ 1/2 y))) x)) 1)))
(* -1 (* x (- (/ (* (log y) (+ 1/2 y)) x) 1)))
(- x (+ z (* 1/2 (log y))))
(- (+ x (* y (- 1 (log y)))) (+ z (* 1/2 (log y))))
(- x (* 1/2 (log y)))
(- (+ x (* y (- 1 (log y)))) (* 1/2 (log y)))
(- (+ x (* -1 (* y (log y)))) (* 1/2 (log y)))
(log y)
(* y (- 1 (* -1 (log (/ 1 y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (+ (* -1/2 (/ (log (/ 1 y)) y)) (/ z y)))))
(* y (- (+ 1 (/ x y)) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* y (log (/ 1 y)))
(* y (- (/ x y) (+ (* -1 (log (/ 1 y))) (* -1/2 (/ (log (/ 1 y)) y)))))
(* -1 (log (/ 1 y)))
(* y (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))
(* -1 (* y (- (* -1 (/ (- x (+ z (* 1/2 (+ (log -1) (* -1 (log (/ -1 y))))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (+ 1 (* -1 (+ (log -1) (* -1 (log (/ -1 y)))))))))
(* -1 (* y (+ (log -1) (* -1 (log (/ -1 y))))))
(* -1 (* y (- (* -1 (/ (- x (* 1/2 (+ (log -1) (* -1 (log (/ -1 y)))))) y)) (* -1 (+ (log -1) (* -1 (log (/ -1 y))))))))
(+ (log -1) (* -1 (log (/ -1 y))))
(- (+ x (+ y (* -1 z))) (* (log y) (+ 1/2 y)))
(* -1 z)
(* z (- (+ (/ x z) (/ y z)) (+ 1 (/ (* (log y) (+ 1/2 y)) z))))
(* -1 (* z (+ 1 (* -1 (/ (- (+ x y) (* (log y) (+ 1/2 y))) z)))))
Outputs
(- y (+ z (* (log y) (+ 1/2 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
(- (+ x y) (+ z (* (log y) (+ 1/2 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
(- y (* (log y) (+ 1/2 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(- (+ x y) (* (log y) (+ 1/2 y)))
(log.f64 y)

rewrite0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)
Outputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)))
#s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))
(log.f64 y)

eval1.0ms (0.1%)

Memory
1.4MiB live, 1.4MiB allocated
Compiler

Compiled 214 to 17 computations (92.1% saved)

prune5.0ms (0.3%)

Memory
8.4MiB live, 8.4MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New606
Fresh000
Picked011
Done077
Total6814
Accuracy
99.8%
Counts
14 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
81.5%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
28.9%
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
71.8%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
3.9%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
53.7%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
2.1%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
2.1%
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
Compiler

Compiled 431 to 147 computations (65.9% saved)

regimes22.0ms (1.5%)

Memory
-5.8MiB live, 32.1MiB allocated
Counts
10 → 1
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
Outputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
Calls

5 calls:

6.0ms
z
4.0ms
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
4.0ms
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
4.0ms
x
4.0ms
y
Results
AccuracySegmentsBranch
99.8%1x
99.8%1y
99.8%1z
99.8%1(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
99.8%1(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes21.0ms (1.4%)

Memory
-2.0MiB live, 35.8MiB allocated
Counts
9 → 3
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
Outputs
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)
Calls

5 calls:

6.0ms
z
4.0ms
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
4.0ms
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
4.0ms
y
3.0ms
x
Results
AccuracySegmentsBranch
81.5%1x
92.2%2y
94.7%3z
85.6%2(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
91.9%2(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes13.0ms (0.9%)

Memory
23.6MiB live, 23.6MiB allocated
Counts
8 → 3
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
Outputs
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
Calls

4 calls:

3.0ms
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
3.0ms
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
3.0ms
y
3.0ms
z
Results
AccuracySegmentsBranch
71.8%1(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
71.8%1(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
71.8%1y
87.0%3z
Compiler

Compiled 24 to 25 computations (-4.2% saved)

regimes20.0ms (1.3%)

Memory
-9.4MiB live, 27.7MiB allocated
Counts
7 → 3
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
Outputs
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
Calls

5 calls:

8.0ms
z
3.0ms
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
3.0ms
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
3.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
53.7%1y
53.7%1(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
53.7%1(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
53.7%1x
71.5%3z
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes3.0ms (0.2%)

Memory
5.7MiB live, 5.7MiB allocated
Counts
6 → 3
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
Outputs
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
Calls

1 calls:

3.0ms
z
Results
AccuracySegmentsBranch
71.5%3z
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes18.0ms (1.2%)

Memory
-19.7MiB live, 23.7MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))
Outputs
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
Calls

5 calls:

9.0ms
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
2.0ms
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
2.0ms
y
2.0ms
x
2.0ms
z
Results
AccuracySegmentsBranch
28.9%1(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
28.9%1x
28.9%1y
28.9%1(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
28.9%1z
Compiler

Compiled 25 to 28 computations (-12% saved)

regimes9.0ms (0.6%)

Memory
19.3MiB live, 19.3MiB allocated
Accuracy

Total -1.8b remaining (-2.9%)

Threshold costs -1.8b (-2.9%)

Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))))
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y)) y))
Outputs
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
Calls

5 calls:

2.0ms
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
2.0ms
(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
2.0ms
x
2.0ms
z
2.0ms
y
Results
AccuracySegmentsBranch
3.9%1x
3.9%1z
3.9%1y
3.9%1(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
3.9%1(+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)
Compiler

Compiled 25 to 28 computations (-12% saved)

bsearch26.0ms (1.7%)

Memory
-27.9MiB live, 49.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
2.1873129536972924e+47
8.281017378003171e+47
15.0ms
-1.8462663231717604e+27
-1.0496933365361554e+26
Samples
16.0ms192×0valid
Compiler

Compiled 543 to 436 computations (19.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 5.0ms (45.1% of total)
ival-sub: 2.0ms (18% of total)
ival-log: 2.0ms (18% of total)
ival-add: 2.0ms (18% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch28.0ms (1.8%)

Memory
26.5MiB live, 65.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
2.0538095317138835e+117
5.375868613830305e+126
10.0ms
-1.6097144520440258e+113
-1.2898172917203825e+112
Samples
15.0ms240×0valid
Compiler

Compiled 690 to 508 computations (26.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-log: 3.0ms (32.3% of total)
ival-sub: 2.0ms (21.5% of total)
ival-add: 2.0ms (21.5% of total)
ival-mult: 1.0ms (10.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch32.0ms (2.1%)

Memory
-26.7MiB live, 55.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
2.3546266043979128e+23
2.8514613571410374e+27
15.0ms
-2.2644619786552317e+106
-7.104132782556067e+103
Samples
18.0ms256×0valid
Compiler

Compiled 871 to 544 computations (37.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-log: 3.0ms (30.7% of total)
ival-sub: 2.0ms (20.5% of total)
ival-add: 2.0ms (20.5% of total)
ival-mult: 2.0ms (20.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch2.0ms (0.1%)

Memory
3.8MiB live, 3.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
1.0ms
2.3546266043979128e+23
2.8514613571410374e+27
1.0ms
-2.2644619786552317e+106
-7.104132782556067e+103
Compiler

Compiled 911 to 528 computations (42% saved)

simplify5.0ms (0.3%)

Memory
9.9MiB live, 9.9MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(if (<=.f64 z #s(literal -108000000000000000335544320 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z) (if (<=.f64 z #s(literal 219999999999999993420157786995427078861689454592 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)))
(if (<=.f64 z #s(literal -125000000000000001944927016183355378033525174615132679171221322553854222645594462908123173739380930959525785108480 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z) (if (<=.f64 z #s(literal 6600000000000000058383276219977663262712248583193472306159972959050431206760903257182208985882189172193062004335540428603392 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)))
(if (<=.f64 z #s(literal -1319999999999999938871316852717072535916133005196985921863313337210672875569876115544416093938525958832128 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z) (if (<=.f64 z #s(literal 11999999999999999798673408 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)))
(if (<=.f64 z #s(literal -1319999999999999938871316852717072535916133005196985921863313337210672875569876115544416093938525958832128 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z) (if (<=.f64 z #s(literal 11999999999999999798673408 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))
Outputs
(-.f64 (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y) z)
(if (<=.f64 z #s(literal -108000000000000000335544320 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z) (if (<=.f64 z #s(literal 219999999999999993420157786995427078861689454592 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y)))) z)))
(if (<=.f64 z #s(literal -125000000000000001944927016183355378033525174615132679171221322553854222645594462908123173739380930959525785108480 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z) (if (<=.f64 z #s(literal 6600000000000000058383276219977663262712248583193472306159972959050431206760903257182208985882189172193062004335540428603392 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) y)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)))
(if (<=.f64 z #s(literal -1319999999999999938871316852717072535916133005196985921863313337210672875569876115544416093938525958832128 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))) z) (if (<=.f64 z #s(literal 11999999999999999798673408 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)))
(if (<=.f64 z #s(literal -1319999999999999938871316852717072535916133005196985921863313337210672875569876115544416093938525958832128 binary64)) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z) (if (<=.f64 z #s(literal 11999999999999999798673408 binary64)) #s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) #s(approx (+ (- x (* (+ y 1/2) (log y))) y) (-.f64 x (*.f64 (+.f64 y #s(literal 1/2 binary64)) (log.f64 y))))) (-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)))
(-.f64 #s(approx (+ (- x (* (+ y 1/2) (log y))) y) #s(approx (- x (* (+ y 1/2) (log y))) (log.f64 y))) z)
#s(approx (- (+ (- x (* (+ y 1/2) (log y))) y) z) (+.f64 y #s(literal 1/2 binary64)))

soundness2.0ms (0.1%)

Memory
3.5MiB live, 3.5MiB allocated
Stop Event
done
Compiler

Compiled 370 to 46 computations (87.6% saved)

preprocess46.0ms (3.1%)

Memory
7.3MiB live, 84.1MiB allocated
Compiler

Compiled 788 to 132 computations (83.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...