Data.Number.Erf:$cinvnormcdf from erf-2.0.0.0, A

Time bar (total: 2.5s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze108.0ms (4.3%)

Memory
-24.7MiB live, 168.9MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
50%49.9%49.9%0.2%0%0%0%4
50%49.9%49.9%0.2%0%0%0%5
50%49.9%49.9%0.2%0%0%0%6
50%49.9%49.9%0.2%0%0%0%7
66.7%49.9%25%0.2%0%25%0%8
66.7%49.9%25%0.2%0%25%0%9
66.7%49.9%25%0.2%0%25%0%10
66.7%49.9%25%0.2%0%25%0%11
80%49.9%12.5%0.2%0%37.4%0%12
Compiler

Compiled 19 to 17 computations (10.5% saved)

sample1.4s (56.8%)

Memory
17.8MiB live, 2 169.9MiB allocated
Samples
780.0ms8 256×0valid
195.0ms2 096×0invalid
Precisions
Click to see histograms. Total time spent on operations: 660.0ms
ival-mult: 332.0ms (50.3% of total)
ival-div: 89.0ms (13.5% of total)
ival-exp: 75.0ms (11.4% of total)
ival-sqrt: 74.0ms (11.2% of total)
ival-sub: 65.0ms (9.8% of total)
exact: 11.0ms (1.7% of total)
ival-true: 9.0ms (1.4% of total)
ival-assert: 5.0ms (0.8% of total)
Bogosity

explain148.0ms (5.9%)

Memory
9.8MiB live, 283.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-0-(/.f64 (*.f64 t t) #s(literal 2 binary64))
10-0-(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
01(4.944528753386513e+189 1.7657377324715244e-189 5.041954672167115e+235 27.972306250389757)0-(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
00-0-t
00-0-(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
00-0-z
00-0-(*.f64 x #s(literal 1/2 binary64))
00-0-(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
00-0-(*.f64 t t)
00-0-#s(literal 2 binary64)
00-0-y
00-0-(*.f64 z #s(literal 2 binary64))
00-0-(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
00-0-#s(literal 1/2 binary64)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
*.f64(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))u*o10
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))underflow5
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))overflow124
(/.f64 (*.f64 t t) #s(literal 2 binary64))overflow66
(*.f64 t t)overflow67
/.f64(/.f64 (*.f64 t t) #s(literal 2 binary64))o/n10
(*.f64 t t)overflow67
exp.f64(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))sensitivity10
Confusion
Predicted +Predicted -
+10
-2253
Precision
0.3333333333333333
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+100
-20253
Precision?
0.3333333333333333
Recall?
1.0
Freqs
test
numberfreq
0253
13
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
53.0ms512×0valid
Compiler

Compiled 207 to 64 computations (69.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-mult: 18.0ms (55.8% of total)
ival-exp: 4.0ms (12.4% of total)
ival-sqrt: 4.0ms (12.4% of total)
ival-sub: 3.0ms (9.3% of total)
ival-div: 3.0ms (9.3% of total)
exact: 1.0ms (3.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess4.0ms (0.2%)

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

Compiled 17 to 15 computations (11.8% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Compiler

Compiled 17 to 15 computations (11.8% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

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

localize41.0ms (1.6%)

Memory
1.5MiB live, 41.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.009070031620653759
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
accuracy0.18999899044871377
(/.f64 (*.f64 t t) #s(literal 2 binary64))
accuracy0.234375
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
accuracy0.2539041858302058
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Samples
32.0ms256×0valid
Compiler

Compiled 126 to 32 computations (74.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-mult: 14.0ms (65% of total)
ival-div: 2.0ms (9.3% of total)
ival-exp: 2.0ms (9.3% of total)
ival-sqrt: 2.0ms (9.3% of total)
ival-sub: 1.0ms (4.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series28.0ms (1.1%)

Memory
-10.5MiB live, 25.1MiB allocated
Counts
6 → 35
Calls
Call 1
Inputs
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
(*.f64 x #s(literal 1/2 binary64))
(/.f64 (*.f64 t t) #s(literal 2 binary64))
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 x)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
(* 1/2 (pow t 2))
1
(+ 1 (* 1/2 (pow t 2)))
(+ 1 (* (pow t 2) (+ 1/2 (* 1/8 (pow t 2)))))
(+ 1 (* (pow t 2) (+ 1/2 (* (pow t 2) (+ 1/8 (* 1/48 (pow t 2)))))))
(exp (* 1/2 (pow t 2)))
Calls

12 calls:

TimeVariablePointExpression
10.0ms
z
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (/ (* t t) 2) (exp (/ (* t t) 2)))
3.0ms
x
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (/ (* t t) 2) (exp (/ (* t t) 2)))
2.0ms
y
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (/ (* t t) 2) (exp (/ (* t t) 2)))
2.0ms
x
@0
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (/ (* t t) 2) (exp (/ (* t t) 2)))
2.0ms
z
@0
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (/ (* t t) 2) (exp (/ (* t t) 2)))

simplify1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
35 → 6
Calls
Call 1
Inputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 x)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
(* 1/2 (pow t 2))
1
(+ 1 (* 1/2 (pow t 2)))
(+ 1 (* (pow t 2) (+ 1/2 (* 1/8 (pow t 2)))))
(+ 1 (* (pow t 2) (+ 1/2 (* (pow t 2) (+ 1/8 (* 1/48 (pow t 2)))))))
(exp (* 1/2 (pow t 2)))
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(*.f64 x #s(literal 1/2 binary64))
(* -1 y)
(/.f64 (*.f64 t t) #s(literal 2 binary64))
(- (* 1/2 x) y)
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB allocated
Compiler

Compiled 256 to 38 computations (85.2% saved)

prune2.0ms (0.1%)

Memory
2.8MiB live, 2.8MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New9312
Fresh000
Picked011
Done000
Total9413
Accuracy
99.8%
Counts
13 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
52.6%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
39.1%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
55.7%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Compiler

Compiled 89 to 77 computations (13.5% saved)

simplify1.0ms (0%)

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

Found 12 expressions of interest:

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

localize49.0ms (2%)

Memory
19.1MiB live, 54.9MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.009070031620653759
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
accuracy0.18999899044871377
(/.f64 (*.f64 t t) #s(literal 2 binary64))
accuracy0.2539041858302058
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
accuracy59.253512036321965
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
accuracy0.009070031620653759
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
accuracy0.18999899044871377
(/.f64 (*.f64 t t) #s(literal 2 binary64))
accuracy0.2539041858302058
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
accuracy60.43773079694412
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
accuracy0.0
(*.f64 x #s(literal 1/2 binary64))
accuracy0.0
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
accuracy0.234375
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Samples
36.0ms256×0valid
Compiler

Compiled 331 to 47 computations (85.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-mult: 8.0ms (37.7% of total)
ival-sqrt: 8.0ms (37.7% of total)
ival-div: 2.0ms (9.4% of total)
ival-exp: 2.0ms (9.4% of total)
ival-sub: 1.0ms (4.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series19.0ms (0.8%)

Memory
-9.3MiB live, 27.7MiB allocated
Counts
11 → 37
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(/.f64 (*.f64 t t) #s(literal 2 binary64))
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 x)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* (sqrt z) (sqrt 2))
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(* -1 (* (sqrt z) (* (sqrt -2) (sqrt -1))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
1
(+ 1 (* 1/2 (pow t 2)))
(+ 1 (* (pow t 2) (+ 1/2 (* 1/8 (pow t 2)))))
(+ 1 (* (pow t 2) (+ 1/2 (* (pow t 2) (+ 1/8 (* 1/48 (pow t 2)))))))
(* 1/2 (pow t 2))
(exp (* 1/2 (pow t 2)))
Calls

12 calls:

TimeVariablePointExpression
6.0ms
y
@inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2)) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (/ (* t t) 2))
2.0ms
z
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2)) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (/ (* t t) 2))
2.0ms
z
@0
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2)) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (/ (* t t) 2))
1.0ms
z
@inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2)) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (/ (* t t) 2))
1.0ms
x
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2)) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (/ (* t t) 2))

simplify1.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Algorithm
egg-herbie
Counts
37 → 11
Calls
Call 1
Inputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 x)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* (sqrt z) (sqrt 2))
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(* -1 (* (sqrt z) (* (sqrt -2) (sqrt -1))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
1
(+ 1 (* 1/2 (pow t 2)))
(+ 1 (* (pow t 2) (+ 1/2 (* 1/8 (pow t 2)))))
(+ 1 (* (pow t 2) (+ 1/2 (* (pow t 2) (+ 1/8 (* 1/48 (pow t 2)))))))
(* 1/2 (pow t 2))
(exp (* 1/2 (pow t 2)))
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(*.f64 x #s(literal 1/2 binary64))
(* -1 y)
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(- (* 1/2 x) y)
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(* 1/2 x)
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(/.f64 (*.f64 t t) #s(literal 2 binary64))

rewrite1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Counts
11 → 11
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(/.f64 (*.f64 t t) #s(literal 2 binary64))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(/.f64 (*.f64 t t) #s(literal 2 binary64))

eval3.0ms (0.1%)

Memory
6.2MiB live, 6.2MiB allocated
Compiler

Compiled 862 to 56 computations (93.5% saved)

prune18.0ms (0.7%)

Memory
-36.7MiB live, 13.8MiB allocated
Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New22628
Fresh000
Picked033
Done011
Total221032
Accuracy
99.8%
Counts
32 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
52.6%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
39.1%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
55.7%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
60.3%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
26.4%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
16.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
5.9%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
4.2%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
3.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Compiler

Compiled 541 to 339 computations (37.3% saved)

simplify1.0ms (0.1%)

Memory
3.8MiB live, 3.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 19 expressions of interest:

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

localize51.0ms (2%)

Memory
11.8MiB live, 87.8MiB allocated
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 t t)
accuracy0.18999899044871377
(/.f64 (*.f64 t t) #s(literal 2 binary64))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
accuracy61.10839903198087
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
accuracy0.0
(*.f64 z #s(literal 2 binary64))
accuracy0.0
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
accuracy61.59029284978929
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
accuracy0.0
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
accuracy0.0
(*.f64 x #s(literal 1/2 binary64))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
accuracy59.253512036321965
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
accuracy0.0
(*.f64 x #s(literal 1/2 binary64))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
accuracy60.43773079694412
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
accuracy0.2539041858302058
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
accuracy60.235319601299445
#s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
accuracy60.43773079694412
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
Samples
33.0ms256×0valid
Compiler

Compiled 635 to 53 computations (91.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-mult: 8.0ms (54.2% of total)
ival-div: 2.0ms (13.6% of total)
ival-exp: 2.0ms (13.6% of total)
ival-sqrt: 2.0ms (13.6% of total)
ival-sub: 1.0ms (6.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series17.0ms (0.7%)

Memory
24.4MiB live, 24.4MiB allocated
Counts
18 → 34
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(/.f64 (*.f64 t t) #s(literal 2 binary64))
(*.f64 t t)
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 x)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* (sqrt z) (sqrt 2))
(* 2 z)
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(* -1 (* (sqrt z) (* (sqrt -2) (sqrt -1))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
(* 1/2 (pow t 2))
(pow t 2)
Calls

12 calls:

TimeVariablePointExpression
2.0ms
z
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (/ (* t t) 2) (* t t))
2.0ms
z
@inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (/ (* t t) 2) (* t t))
2.0ms
z
@0
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (/ (* t t) 2) (* t t))
1.0ms
x
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (/ (* t t) 2) (* t t))
1.0ms
t
@inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* x 1/2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt (* z 2)) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (/ (* t t) 2) (* t t))

simplify1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Counts
34 → 18
Calls
Call 1
Inputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 x)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* (sqrt z) (sqrt 2))
(* 2 z)
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(* -1 (* (sqrt z) (* (sqrt -2) (sqrt -1))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
(* 1/2 (pow t 2))
(pow t 2)
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
#s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(* -1 y)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
(- (* 1/2 x) y)
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(* 1/2 x)
(*.f64 x #s(literal 1/2 binary64))
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(* x (+ 1/2 (* -1 (/ y x))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(*.f64 z #s(literal 2 binary64))
(* -1 (* x (- (/ y x) 1/2)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(+ (* -1 y) (* 1/2 x))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(/.f64 (*.f64 t t) #s(literal 2 binary64))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(*.f64 t t)

rewrite1.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Counts
18 → 18
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(/.f64 (*.f64 t t) #s(literal 2 binary64))
(*.f64 t t)
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
(/.f64 (*.f64 t t) #s(literal 2 binary64))
(*.f64 t t)

eval8.0ms (0.3%)

Memory
-30.5MiB live, 7.3MiB allocated
Compiler

Compiled 1 781 to 75 computations (95.8% saved)

prune9.0ms (0.4%)

Memory
13.8MiB live, 13.8MiB allocated
Pruning

14 alts after pruning (5 fresh and 9 done)

PrunedKeptTotal
New38442
Fresh011
Picked055
Done044
Total381452
Accuracy
99.8%
Counts
52 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
52.6%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
39.1%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
55.7%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
60.3%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
17.5%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
26.4%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
3.2%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
16.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
5.9%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
3.2%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
4.2%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
16.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
3.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Compiler

Compiled 664 to 398 computations (40.1% saved)

simplify1.0ms (0.1%)

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

Found 18 expressions of interest:

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

localize54.0ms (2.1%)

Memory
-20.2MiB live, 60.0MiB allocated
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.234375
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
accuracy59.253512036321965
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
accuracy61.10839903198087
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
accuracy0.234375
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
accuracy59.253512036321965
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
accuracy61.59029284978929
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
accuracy0.0
(*.f64 z #s(literal 2 binary64))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
accuracy61.53277090469176
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64)))
accuracy0.0
(*.f64 t t)
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
accuracy61.10899902377489
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))
accuracy0.234375
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
accuracy28.250153091386995
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
accuracy59.253512036321965
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
accuracy60.43773079694412
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
Samples
31.0ms256×0valid
Compiler

Compiled 692 to 55 computations (92.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-mult: 7.0ms (47.2% of total)
ival-div: 2.0ms (13.5% of total)
ival-exp: 2.0ms (13.5% of total)
ival-sqrt: 2.0ms (13.5% of total)
ival-sub: 1.0ms (6.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series16.0ms (0.6%)

Memory
23.0MiB live, 23.0MiB allocated
Counts
18 → 31
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))
(*.f64 t t)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* 1/2 x)
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* 2 z)
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
(pow t 2)
Calls

12 calls:

TimeVariablePointExpression
2.0ms
z
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* t t) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))))
2.0ms
z
@inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* t t) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))))
1.0ms
z
@0
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* t t) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))))
1.0ms
x
@-inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* t t) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))))
1.0ms
x
@inf
((* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* t t) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (* z 2) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))) (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (* (- (* x 1/2) y) (sqrt (* z 2))) (- (* x 1/2) y) (* (- (* x 1/2) y) (sqrt (* z 2))))

simplify1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Counts
31 → 18
Calls
Call 1
Inputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
(* -1 y)
(- (* 1/2 x) y)
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(* 1/2 x)
(* x (+ 1/2 (* -1 (/ y x))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
(* -1 (* x (- (/ y x) 1/2)))
(+ (* -1 y) (* 1/2 x))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
(* y (- (* 1/2 (/ x y)) 1))
(* -1 (* y (+ (* -1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z))) (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
(* -1 (* y (+ (* -1/2 (* (/ (* x (sqrt 2)) y) (sqrt z))) (* (sqrt z) (sqrt 2)))))
(* -1 (* y (+ 1 (* -1/2 (/ x y)))))
(* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt 2) (- (* 1/2 x) y))))
(* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))
(* 2 z)
(* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y))))))
(* -1 (* (sqrt z) (* (sqrt -2) (* (sqrt -1) (- (* 1/2 x) y)))))
(+ (* 1/2 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/8 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))
(+ (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y))) (* (pow t 2) (+ (* 1/2 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))) (* (pow t 2) (+ (* 1/48 (* (* (pow t 2) (* (sqrt 2) (- (* 1/2 x) y))) (sqrt z))) (* 1/8 (* (sqrt z) (* (sqrt 2) (- (* 1/2 x) y)))))))))
(pow t 2)
Outputs
(* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(+ (* -1 (* (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))) (* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* -1 (* (* y (sqrt 2)) (sqrt z)))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
(+ (* -1 (* (* y (sqrt 2)) (sqrt z))) (* 1/2 (* (* x (sqrt 2)) (sqrt z))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
(* -1 y)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
(- (* 1/2 x) y)
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))
(* 1/2 (* (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) (sqrt z)))
(*.f64 t t)
(* x (+ (* -1 (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z))) (* 1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2))))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
(* 1/2 (* (* x (sqrt 2)) (sqrt z)))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64)))
(* x (+ (* -1 (* (/ (* y (sqrt 2)) x) (sqrt z))) (* 1/2 (* (sqrt z) (sqrt 2)))))
(*.f64 z #s(literal 2 binary64))
(* 1/2 x)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(* x (+ 1/2 (* -1 (/ y x))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* (/ (* y (* (exp (* 1/2 (pow t 2))) (sqrt 2))) x) (sqrt z)))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(* -1 (* x (+ (* -1/2 (* (sqrt z) (sqrt 2))) (* (/ (* y (sqrt 2)) x) (sqrt z)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* -1 (* x (- (/ y x) 1/2)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(+ (* -1 y) (* 1/2 x))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
(* y (+ (* -1 (* (sqrt z) (* (exp (* 1/2 (pow t 2))) (sqrt 2)))) (* 1/2 (* (/ (* x (* (exp (* 1/2 (pow t 2))) (sqrt 2))) y) (sqrt z)))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(* y (+ (* -1 (* (sqrt z) (sqrt 2))) (* 1/2 (* (/ (* x (sqrt 2)) y) (sqrt z)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))

rewrite1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Counts
18 → 18
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))
(*.f64 t t)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))
(*.f64 t t)
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64)))
(*.f64 z #s(literal 2 binary64))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
#s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))

eval4.0ms (0.2%)

Memory
6.7MiB live, 6.7MiB allocated
Compiler

Compiled 1 738 to 71 computations (95.9% saved)

prune14.0ms (0.5%)

Memory
-21.7MiB live, 16.1MiB allocated
Pruning

15 alts after pruning (3 fresh and 12 done)

PrunedKeptTotal
New36339
Fresh000
Picked235
Done099
Total381553
Accuracy
99.8%
Counts
53 → 15
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.4%
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
52.6%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
39.1%
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
55.7%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
18.2%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
7.6%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
60.3%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
26.4%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
17.5%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
16.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
5.9%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
3.2%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
4.2%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
16.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
3.0%
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Compiler

Compiled 1 155 to 380 computations (67.1% saved)

regimes73.0ms (2.9%)

Memory
0.9MiB live, 121.6MiB allocated
Counts
17 → 1
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Outputs
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Calls

13 calls:

8.0ms
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
7.0ms
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
6.0ms
x
5.0ms
(*.f64 z #s(literal 2 binary64))
5.0ms
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
Results
AccuracySegmentsBranch
99.4%1x
99.4%1y
99.4%1z
99.4%1t
99.4%1(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
99.4%1(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
99.4%1(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
99.4%1(*.f64 x #s(literal 1/2 binary64))
99.4%1(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
99.4%1(*.f64 z #s(literal 2 binary64))
99.4%1(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
99.4%1(/.f64 (*.f64 t t) #s(literal 2 binary64))
99.4%1(*.f64 t t)
Compiler

Compiled 60 to 88 computations (-46.7% saved)

regimes67.0ms (2.7%)

Memory
2.5MiB live, 122.3MiB allocated
Counts
16 → 2
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Calls

13 calls:

6.0ms
y
6.0ms
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
5.0ms
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
5.0ms
(*.f64 z #s(literal 2 binary64))
5.0ms
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
73.9%5x
73.2%3y
64.1%2z
99.5%3t
94.9%3(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
64.9%3(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
65.1%3(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
73.9%5(*.f64 x #s(literal 1/2 binary64))
64.1%2(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
64.1%2(*.f64 z #s(literal 2 binary64))
99.5%2(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
99.5%2(/.f64 (*.f64 t t) #s(literal 2 binary64))
99.5%2(*.f64 t t)
Compiler

Compiled 60 to 88 computations (-46.7% saved)

regimes22.0ms (0.9%)

Memory
-7.2MiB live, 31.4MiB allocated
Counts
14 → 2
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
(*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Calls

5 calls:

5.0ms
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
4.0ms
t
4.0ms
(/.f64 (*.f64 t t) #s(literal 2 binary64))
4.0ms
(*.f64 t t)
3.0ms
(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
82.2%3(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
87.0%3t
87.0%2(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
87.0%2(/.f64 (*.f64 t t) #s(literal 2 binary64))
87.0%2(*.f64 t t)
Compiler

Compiled 32 to 39 computations (-21.9% saved)

regimes33.0ms (1.3%)

Memory
9.7MiB live, 48.3MiB allocated
Counts
13 → 2
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Calls

8 calls:

5.0ms
y
4.0ms
(*.f64 x #s(literal 1/2 binary64))
4.0ms
t
4.0ms
x
4.0ms
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Results
AccuracySegmentsBranch
55.7%1x
55.7%1(*.f64 x #s(literal 1/2 binary64))
55.7%1y
65.4%2(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
66.7%3t
65.8%2(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
66.7%2(/.f64 (*.f64 t t) #s(literal 2 binary64))
66.7%2(*.f64 t t)
Compiler

Compiled 37 to 53 computations (-43.2% saved)

regimes8.0ms (0.3%)

Memory
11.9MiB live, 11.9MiB allocated
Counts
12 → 2
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Calls

2 calls:

3.0ms
(/.f64 (*.f64 t t) #s(literal 2 binary64))
3.0ms
(*.f64 t t)
Results
AccuracySegmentsBranch
66.4%2(/.f64 (*.f64 t t) #s(literal 2 binary64))
66.4%2(*.f64 t t)
Compiler

Compiled 8 to 12 computations (-50% saved)

regimes44.0ms (1.7%)

Memory
-23.7MiB live, 60.6MiB allocated
Counts
8 → 2
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Calls

13 calls:

7.0ms
(*.f64 x #s(literal 1/2 binary64))
4.0ms
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
3.0ms
x
3.0ms
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
3.0ms
t
Results
AccuracySegmentsBranch
29.9%3x
29.9%3(*.f64 x #s(literal 1/2 binary64))
30.3%2y
28.5%2(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
28.7%2(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
26.4%1z
26.4%1(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
26.4%1(*.f64 z #s(literal 2 binary64))
39.0%3t
38.7%2(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
38.5%2(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
39.0%2(/.f64 (*.f64 t t) #s(literal 2 binary64))
39.0%2(*.f64 t t)
Compiler

Compiled 60 to 88 computations (-46.7% saved)

regimes37.0ms (1.5%)

Memory
18.1MiB live, 56.8MiB allocated
Counts
7 → 2
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
Calls

13 calls:

4.0ms
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
3.0ms
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
3.0ms
x
3.0ms
(*.f64 x #s(literal 1/2 binary64))
3.0ms
t
Results
AccuracySegmentsBranch
17.5%1z
17.5%1(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
17.5%1(*.f64 z #s(literal 2 binary64))
17.5%1x
17.5%1(*.f64 x #s(literal 1/2 binary64))
19.5%2(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
19.5%2(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
17.5%1y
17.5%1t
17.5%1(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
19.5%2(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
17.5%1(/.f64 (*.f64 t t) #s(literal 2 binary64))
17.5%1(*.f64 t t)
Compiler

Compiled 60 to 88 computations (-46.7% saved)

regimes36.0ms (1.4%)

Memory
-14.5MiB live, 62.3MiB allocated
Counts
6 → 2
Calls
Call 1
Inputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 z #s(literal 2 binary64))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Outputs
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
Calls

13 calls:

5.0ms
(*.f64 t t)
4.0ms
(*.f64 x #s(literal 1/2 binary64))
3.0ms
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
3.0ms
(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
2.0ms
x
Results
AccuracySegmentsBranch
17.7%2(/.f64 (*.f64 t t) #s(literal 2 binary64))
17.7%2(*.f64 t t)
16.0%1(exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))
16.0%1y
16.0%1z
16.0%1t
16.0%1(sqrt.f64 (*.f64 z #s(literal 2 binary64)))
16.0%1(*.f64 z #s(literal 2 binary64))
16.0%1x
16.0%1(*.f64 x #s(literal 1/2 binary64))
18.1%2(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
18.1%2(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
18.1%2(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Compiler

Compiled 60 to 88 computations (-46.7% saved)

regimes9.0ms (0.3%)

Memory
17.4MiB live, 17.4MiB allocated
Accuracy

Total -9.1b remaining (-17%)

Threshold costs -9.1b (-17%)

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

5 calls:

2.0ms
(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
2.0ms
(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
2.0ms
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
1.0ms
(/.f64 (*.f64 t t) #s(literal 2 binary64))
1.0ms
(*.f64 t t)
Results
AccuracySegmentsBranch
16.0%1(/.f64 (*.f64 t t) #s(literal 2 binary64))
16.0%1(*.f64 t t)
16.0%1(*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))
16.0%1(-.f64 (*.f64 x #s(literal 1/2 binary64)) y)
16.0%1(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
Compiler

Compiled 40 to 45 computations (-12.5% saved)

bsearch24.0ms (1%)

Memory
-10.2MiB live, 30.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
22.0ms
5.95071946581214e-7
782.4499169655938
Samples
12.0ms144×0valid
Compiler

Compiled 461 to 418 computations (9.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 3.0ms (39.2% of total)
ival-exp: 2.0ms (26.1% of total)
ival-sub: 1.0ms (13.1% of total)
ival-div: 1.0ms (13.1% of total)
ival-sqrt: 1.0ms (13.1% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch4.0ms (0.1%)

Memory
5.7MiB live, 5.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
3.0ms
5.95071946581214e-7
782.4499169655938
Samples
1.0ms16×0valid
Compiler

Compiled 443 to 409 computations (7.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.0ms
ival-sub: 0.0ms (0% of total)
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-exp: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
ival-sqrt: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch18.0ms (0.7%)

Memory
-13.9MiB live, 25.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
17.0ms
2.4700173441321882e+191
6.127062448767315e+195
Samples
11.0ms128×0valid
Compiler

Compiled 676 to 422 computations (37.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 4.0ms (51.2% of total)
ival-sub: 1.0ms (12.8% of total)
ival-div: 1.0ms (12.8% of total)
ival-exp: 1.0ms (12.8% of total)
ival-sqrt: 1.0ms (12.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch15.0ms (0.6%)

Memory
21.1MiB live, 21.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
13.0ms
2.4430336092234453e+265
4.0233959306980385e+266
Samples
9.0ms112×0valid
Compiler

Compiled 503 to 351 computations (30.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-mult: 3.0ms (54.2% of total)
ival-sub: 1.0ms (18.1% of total)
ival-div: 1.0ms (18.1% of total)
ival-exp: 1.0ms (18.1% of total)
ival-sqrt: 1.0ms (18.1% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch23.0ms (0.9%)

Memory
-8.3MiB live, 30.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
21.0ms
1.815716255415517e+235
7.172367096323706e+249
Samples
15.0ms160×0valid
Compiler

Compiled 860 to 502 computations (41.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 6.0ms (59% of total)
ival-sub: 1.0ms (9.8% of total)
ival-div: 1.0ms (9.8% of total)
ival-exp: 1.0ms (9.8% of total)
ival-sqrt: 1.0ms (9.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-9.28637710553153e-215
-1.0330379805279515e-261
Compiler

Compiled 20 to 22 computations (-10% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
4.11622429986815e+292
+inf
Compiler

Compiled 20 to 22 computations (-10% saved)

simplify6.0ms (0.2%)

Memory
12.0MiB live, 12.0MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(if (<=.f64 (*.f64 t t) #s(literal 290 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(if (<=.f64 (*.f64 t t) #s(literal 320 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(if (<=.f64 (*.f64 t t) #s(literal 1019999999999999963206335169314322669145819860554818892367126689022250094441661155976154106811534186775796174203720768218699345967460592175280481940139468757345010215213635390082093598917001216 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 t t) #s(literal 28999999999999999602014271710821087527892229410334789146600274405845715839447741174171119799416946052928021316787061847096482532783667622256691332281918825539980894330659644171814505466265267876838233017545471212924344960458727844181839399900050328308944946254053376 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 t t) #s(literal 22999999999999999528410077016241429649412652200287014227908690759254435691230822349952211653384301347234807271030779633576066724847125457034311077983712360340476238821701050222456771683024844088262323206494923920331429253011107798319104 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))) #s(literal -4851619038439715/97032380768794308446811218028906409703555376069793538196190752376628184542898555395679900551790404871905483168570692075385723752757175899465267954690073821200278436001303119096891580351974902801578937449607279296930802928363503616 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))) #s(literal 49999999999999996231174218676980242530224466978961762601305327424495174139733038646250984711634202512664485115581272824171827637653339436220866895089029739165367697530233734863997486450265031989402921976551056934000189810184542251067154487752614777886456814711818152920801188793163123882196992 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))
Outputs
(*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64))))
(if (<=.f64 (*.f64 t t) #s(literal 290 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y)) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(if (<=.f64 (*.f64 t t) #s(literal 320 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (*.f64 #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))))
(if (<=.f64 (*.f64 t t) #s(literal 1019999999999999963206335169314322669145819860554818892367126689022250094441661155976154106811534186775796174203720768218699345967460592175280481940139468757345010215213635390082093598917001216 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (/.f64 (*.f64 t t) #s(literal 2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 t t) #s(literal 28999999999999999602014271710821087527892229410334789146600274405845715839447741174171119799416946052928021316787061847096482532783667622256691332281918825539980894330659644171814505466265267876838233017545471212924344960458727844181839399900050328308944946254053376 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 t t) #s(literal 22999999999999999528410077016241429649412652200287014227908690759254435691230822349952211653384301347234807271030779633576066724847125457034311077983712360340476238821701050222456771683024844088262323206494923920331429253011107798319104 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 x #s(literal 1/2 binary64)))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))) #s(literal -4851619038439715/97032380768794308446811218028906409703555376069793538196190752376628184542898555395679900551790404871905483168570692075385723752757175899465267954690073821200278436001303119096891580351974902801578937449607279296930802928363503616 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) (*.f64 #s(approx (- (* x 1/2) y) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))) (sqrt.f64 (*.f64 z #s(literal 2 binary64))))))
(if (<=.f64 (*.f64 (*.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) y) (sqrt.f64 (*.f64 z #s(literal 2 binary64)))) (exp.f64 (/.f64 (*.f64 t t) #s(literal 2 binary64)))) #s(literal 49999999999999996231174218676980242530224466978961762601305327424495174139733038646250984711634202512664485115581272824171827637653339436220866895089029739165367697530233734863997486450265031989402921976551056934000189810184542251067154487752614777886456814711818152920801188793163123882196992 binary64)) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) y))) #s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t))))
#s(approx (* (* (- (* x 1/2) y) (sqrt (* z 2))) (exp (/ (* t t) 2))) #s(approx (* (- (* x 1/2) y) (sqrt (* z 2))) (*.f64 t t)))

soundness3.0ms (0.1%)

Memory
5.7MiB live, 5.7MiB allocated
Stop Event
fuel
Compiler

Compiled 603 to 67 computations (88.9% saved)

preprocess63.0ms (2.5%)

Memory
-18.6MiB live, 99.0MiB allocated
Compiler

Compiled 1 278 to 198 computations (84.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...