Graphics.Rasterific.Svg.PathConverter:arcToSegments from rasterific-svg-0.2.3.1

Time bar (total: 1.7s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze143.0ms (8.5%)

Memory
1.4MiB live, 278.0MiB 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
0%0%99.8%0.2%0%0%0%4
25%25%74.9%0.2%0%0%0%5
25%25%74.9%0.2%0%0%0%6
37.5%37.4%62.4%0.2%0%0%0%7
37.5%37.4%62.4%0.2%0%0%0%8
56.3%56.1%43.7%0.2%0%0%0%9
56.3%56.1%43.7%0.2%0%0%0%10
65.6%65.5%34.3%0.2%0%0%0%11
65.6%65.5%34.3%0.2%0%0%0%12
Compiler

Compiled 17 to 13 computations (23.5% saved)

sample924.0ms (55%)

Memory
41.5MiB live, 1 311.7MiB allocated
Samples
613.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 397.0ms
ival-mult: 256.0ms (64.5% of total)
ival-div: 94.0ms (23.7% of total)
ival-add: 36.0ms (9.1% of total)
ival-true: 7.0ms (1.8% of total)
ival-assert: 4.0ms (1% of total)
Bogosity

explain120.0ms (7.1%)

Memory
-32.7MiB live, 258.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
700-4(-1.8027149213200943e+139 1.4410940768206013e+74 2.046521797373851e-159 -4.31543341731516e-84)(/.f64 (*.f64 z z) (*.f64 t t))
680-2(5.88425831213944e-146 3.0102908664735987e-159 1.3746927430233823e-172 4.773850824112003e-276)(/.f64 (*.f64 x x) (*.f64 y y))
00-0-t
00-0-(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
00-0-z
00-0-(*.f64 x x)
00-0-(*.f64 t t)
00-0-(*.f64 z z)
00-0-y
00-0-(*.f64 y y)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 x x) (*.f64 y y))o/o170
(*.f64 x x)overflow68
(*.f64 y y)overflow69
/.f64(/.f64 (*.f64 z z) (*.f64 t t))o/o160
(*.f64 z z)overflow53
(*.f64 t t)overflow79
/.f64(/.f64 (*.f64 z z) (*.f64 t t))u/u130
(*.f64 z z)underflow63
(*.f64 t t)underflow50
/.f64(/.f64 (*.f64 x x) (*.f64 y y))u/u90
(*.f64 x x)underflow58
(*.f64 y y)underflow56
/.f64(/.f64 (*.f64 z z) (*.f64 t t))n/o80
(*.f64 t t)overflow79
/.f64(/.f64 (*.f64 x x) (*.f64 y y))o/n80
(*.f64 x x)overflow68
/.f64(/.f64 (*.f64 z z) (*.f64 t t))o/n80
(*.f64 z z)overflow53
/.f64(/.f64 (*.f64 x x) (*.f64 y y))n/u70
(*.f64 y y)underflow56
/.f64(/.f64 (*.f64 z z) (*.f64 t t))n/u50
(*.f64 t t)underflow50
/.f64(/.f64 (*.f64 z z) (*.f64 t t))u/n50
(*.f64 z z)underflow63
/.f64(/.f64 (*.f64 x x) (*.f64 y y))n/o40
(*.f64 y y)overflow69
/.f64(/.f64 (*.f64 x x) (*.f64 y y))u/n40
(*.f64 x x)underflow58
Confusion
Predicted +Predicted -
+829
-19146
Precision
0.8118811881188119
Recall
0.9010989010989011
Confusion?
Predicted +Predicted MaybePredicted -
+8209
-190146
Precision?
0.8118811881188119
Recall?
0.9010989010989011
Freqs
test
numberfreq
0155
198
23
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
43.0ms512×0valid
Compiler

Compiled 154 to 48 computations (68.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-mult: 13.0ms (58.8% of total)
ival-div: 6.0ms (27.2% of total)
ival-add: 2.0ms (9.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess4.0ms (0.2%)

Memory
8.0MiB live, 8.0MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
Outputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
Compiler

Compiled 15 to 11 computations (26.7% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 4 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
65.6%
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y y)
cost-diff0
(*.f64 x x)
cost-diff0
(/.f64 (*.f64 x x) (*.f64 y y))
cost-diff0
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
Calls
Call 1
Inputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
x
(*.f64 y y)
y
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 z z)
z
(*.f64 t t)
t
Outputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
x
(*.f64 y y)
y
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 z z)
z
(*.f64 t t)
t

localize34.0ms (2%)

Memory
-22.9MiB live, 56.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 t t)
accuracy0.00390625
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
accuracy15.906602067213784
(/.f64 (*.f64 x x) (*.f64 y y))
accuracy16.051102590812516
(/.f64 (*.f64 z z) (*.f64 t t))
Samples
24.0ms256×0valid
Compiler

Compiled 92 to 24 computations (73.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-div: 7.0ms (46.6% of total)
ival-mult: 7.0ms (46.6% of total)
ival-add: 1.0ms (6.7% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series13.0ms (0.8%)

Memory
31.0MiB live, 31.0MiB allocated
Counts
6 → 10
Calls
Call 1
Inputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
(*.f64 y y)
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 t t)
Outputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
(pow t 2)
Calls

12 calls:

TimeVariablePointExpression
2.0ms
z
@0
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (/ (* z z) (* t t)) (* t t))
2.0ms
x
@0
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (/ (* z z) (* t t)) (* t t))
2.0ms
x
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (/ (* z z) (* t t)) (* t t))
1.0ms
z
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (/ (* z z) (* t t)) (* t t))
1.0ms
t
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (/ (* z z) (* t t)) (* t t))

simplify0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Counts
10 → 6
Calls
Call 1
Inputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
(pow t 2)
Outputs
(/ (pow z 2) (pow t 2))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/.f64 (*.f64 x x) (*.f64 y y))
(/ (pow x 2) (pow y 2))
(*.f64 x x)
(pow x 2)
(*.f64 y y)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/.f64 (*.f64 z z) (*.f64 t t))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(*.f64 t t)

rewrite0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Counts
6 → 6
Calls
Call 1
Inputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
(*.f64 y y)
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 t t)
Outputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
(*.f64 y y)
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 t t)

eval1.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Compiler

Compiled 224 to 27 computations (87.9% saved)

prune5.0ms (0.3%)

Memory
-30.2MiB live, 8.1MiB allocated
Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New7512
Fresh000
Picked101
Done000
Total8513
Accuracy
76.8%
Counts
13 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
18.4%
(+.f64 (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
48.5%
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
46.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
48.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
12.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
Compiler

Compiled 206 to 136 computations (34% saved)

simplify1.0ms (0.1%)

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

Found 18 expressions of interest:

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

localize43.0ms (2.5%)

Memory
10.6MiB live, 92.8MiB allocated
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(+.f64 (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
accuracy15.906602067213784
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
accuracy16.051102590812516
(/.f64 (*.f64 z z) (*.f64 t t))
accuracy52.43596753315337
#s(approx (* x x) (*.f64 y y))
accuracy0.0
(*.f64 t t)
accuracy0.00390625
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
accuracy16.051102590812516
(/.f64 (*.f64 z z) (*.f64 t t))
accuracy42.66972891813431
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
accuracy0.0
(*.f64 z z)
accuracy0.0
(*.f64 t t)
accuracy16.051102590812516
(/.f64 (*.f64 z z) (*.f64 t t))
accuracy27.287809489799663
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
accuracy0.0
(*.f64 t t)
accuracy56.0045460412434
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
accuracy0.0
(*.f64 y y)
accuracy0.0
(*.f64 x x)
accuracy15.906602067213784
(/.f64 (*.f64 x x) (*.f64 y y))
accuracy26.918892429396127
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
Samples
30.0ms256×0valid
Compiler

Compiled 370 to 38 computations (89.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 7.0ms (63.7% of total)
ival-div: 3.0ms (27.3% of total)
ival-add: 1.0ms (9.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series14.0ms (0.8%)

Memory
3.1MiB live, 42.2MiB allocated
Counts
14 → 11
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
(*.f64 y y)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
(*.f64 t t)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 z z)
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
(+.f64 (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
#s(approx (* x x) (*.f64 y y))
Outputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(pow z 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
(pow t 2)
Calls

12 calls:

TimeVariablePointExpression
3.0ms
y
@-inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* t t) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* z z) (* t t)) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x))
1.0ms
z
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* t t) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* z z) (* t t)) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x))
1.0ms
x
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* t t) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* z z) (* t t)) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x))
1.0ms
x
@-inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* t t) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* z z) (* t t)) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x))
1.0ms
z
@-inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* t t) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* z z) (* t t)) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x))

simplify0.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Algorithm
egg-herbie
Counts
11 → 11
Calls
Call 1
Inputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(pow z 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
(pow t 2)
Outputs
(/ (pow z 2) (pow t 2))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/.f64 (*.f64 x x) (*.f64 y y))
(/ (pow x 2) (pow y 2))
(*.f64 x x)
(pow x 2)
(*.f64 y y)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(*.f64 t t)
(pow y 2)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
(pow z 2)
(/.f64 (*.f64 z z) (*.f64 t t))
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(*.f64 z z)
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
(pow t 2)
#s(approx (/ (* x x) (* y y)) (*.f64 x x))

rewrite1.0ms (0%)

Memory
2.5MiB live, 2.5MiB allocated
Counts
14 → 14
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
(*.f64 y y)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
(*.f64 t t)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 z z)
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
(+.f64 (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
#s(approx (* x x) (*.f64 y y))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 x x)
(*.f64 y y)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
(*.f64 t t)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 (*.f64 z z) (*.f64 t t))
(*.f64 z z)
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
(+.f64 (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
#s(approx (* x x) (*.f64 y y))

eval3.0ms (0.2%)

Memory
10.9MiB live, 10.9MiB allocated
Compiler

Compiled 1 001 to 52 computations (94.8% saved)

prune4.0ms (0.2%)

Memory
-29.0MiB live, 10.3MiB allocated
Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New35439
Fresh000
Picked235
Done000
Total37744
Accuracy
77.0%
Counts
44 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
30.5%
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))
46.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
48.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
2.2%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
21.8%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
12.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
26.3%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
Compiler

Compiled 161 to 99 computations (38.5% saved)

simplify1.0ms (0%)

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

Found 13 expressions of interest:

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

localize36.0ms (2.1%)

Memory
-8.3MiB live, 72.2MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))
accuracy16.051102590812516
(/.f64 (*.f64 z z) (*.f64 t t))
accuracy42.66972891813431
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
accuracy52.43596753315337
#s(approx (* x x) (*.f64 y y))
accuracy0.0
(*.f64 y y)
accuracy15.906602067213784
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
accuracy26.918892429396127
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
accuracy52.43596753315337
#s(approx (* x x) (*.f64 y y))
accuracy0.0
(*.f64 z z)
accuracy50.03640234084552
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
accuracy0.0
(*.f64 x x)
accuracy26.918892429396127
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
accuracy42.66972891813431
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
Samples
22.0ms256×0valid
Compiler

Compiled 298 to 37 computations (87.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 7.0ms (64.4% of total)
ival-div: 3.0ms (27.6% of total)
ival-add: 1.0ms (9.2% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series12.0ms (0.7%)

Memory
23.3MiB live, 23.3MiB allocated
Counts
12 → 10
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
(*.f64 x x)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
(*.f64 z z)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
#s(approx (* x x) (*.f64 y y))
(*.f64 y y)
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
(/.f64 (*.f64 z z) (*.f64 t t))
Outputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(pow z 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (/ (* z z) (* t t)))
1.0ms
x
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (/ (* z z) (* t t)))
1.0ms
z
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (/ (* z z) (* t t)))
1.0ms
z
@-inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (/ (* z z) (* t t)))
1.0ms
x
@0
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* z z) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (/ (* z z) (* t t)))

simplify0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
10 → 10
Calls
Call 1
Inputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(pow z 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
Outputs
(/ (pow z 2) (pow t 2))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
(/ (pow x 2) (pow y 2))
(*.f64 x x)
(pow x 2)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(*.f64 z z)
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(pow y 2)
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
(pow z 2)
#s(approx (* x x) (*.f64 y y))
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(*.f64 y y)
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))

rewrite1.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Counts
12 → 12
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
(*.f64 x x)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
(*.f64 z z)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
#s(approx (* x x) (*.f64 y y))
(*.f64 y y)
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
(/.f64 (*.f64 z z) (*.f64 t t))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (/ (* x x) (* y y)) (*.f64 x x))
(*.f64 x x)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
(*.f64 z z)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))
#s(approx (* x x) (*.f64 y y))
(*.f64 y y)
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
(/.f64 (*.f64 z z) (*.f64 t t))

eval2.0ms (0.1%)

Memory
4.8MiB live, 4.8MiB allocated
Compiler

Compiled 754 to 43 computations (94.3% saved)

prune7.0ms (0.4%)

Memory
-29.3MiB live, 8.6MiB allocated
Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New23326
Fresh000
Picked134
Done033
Total24933
Accuracy
77.2%
Counts
33 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
18.4%
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
46.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
48.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
2.2%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
3.3%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
21.8%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
9.3%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
12.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
26.3%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
Compiler

Compiled 227 to 131 computations (42.3% saved)

simplify1.0ms (0%)

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

Found 10 expressions of interest:

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

localize34.0ms (2%)

Memory
25.9MiB live, 63.5MiB allocated
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
accuracy16.051102590812516
(/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t))
accuracy42.66972891813431
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
accuracy52.43596753315337
#s(approx (* x x) (*.f64 y y))
accuracy55.64573624338956
#s(approx (* z z) #s(approx (* x x) (*.f64 y y)))
accuracy26.918892429396127
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
accuracy52.43596753315337
#s(approx (* x x) (*.f64 y y))
accuracy52.43596753315337
#s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))))
accuracy62.05756610298101
#s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
accuracy0.0
(*.f64 y y)
accuracy58.02815629642767
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
Samples
24.0ms256×0valid
Compiler

Compiled 334 to 37 computations (88.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 9.0ms (68.4% of total)
ival-div: 3.0ms (22.8% of total)
ival-add: 1.0ms (7.6% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series14.0ms (0.8%)

Memory
-17.3MiB live, 21.3MiB allocated
Counts
11 → 10
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
(*.f64 y y)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
(/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y))
#s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))))
#s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
#s(approx (* x x) (*.f64 y y))
#s(approx (* z z) #s(approx (* x x) (*.f64 y y)))
(/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t))
Outputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(pow z 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
Calls

12 calls:

TimeVariablePointExpression
3.0ms
z
@0
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* z z) (/ (* z z) (* t t)))
1.0ms
z
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* z z) (/ (* z z) (* t t)))
1.0ms
x
@inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* z z) (/ (* z z) (* t t)))
1.0ms
x
@-inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* z z) (/ (* z z) (* t t)))
1.0ms
z
@-inf
((+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* y y) (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/ (* x x) (* y y)) (* x x) (* z z) (/ (* z z) (* t t)))

simplify0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
10 → 10
Calls
Call 1
Inputs
(/ (pow z 2) (pow t 2))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(/ (pow x 2) (pow y 2))
(pow x 2)
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
(pow y 2)
(pow z 2)
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
Outputs
(/ (pow z 2) (pow t 2))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
(+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow t 2)))
(*.f64 y y)
(/ (pow x 2) (pow y 2))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
(pow x 2)
(/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y))
(* (pow x 2) (+ (/ 1 (pow y 2)) (/ (pow z 2) (* (pow t 2) (pow x 2)))))
#s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))))
(/ (+ (/ (* (pow y 2) (pow z 2)) (pow t 2)) (pow x 2)) (pow y 2))
#s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(pow y 2)
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
(pow z 2)
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
(* (pow z 2) (+ (/ 1 (pow t 2)) (/ (pow x 2) (* (pow y 2) (pow z 2)))))
#s(approx (* x x) (*.f64 y y))
(/ (+ (/ (* (pow t 2) (pow x 2)) (pow y 2)) (pow z 2)) (pow t 2))
#s(approx (* z z) #s(approx (* x x) (*.f64 y y)))

rewrite1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Counts
11 → 11
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
(*.f64 y y)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
(/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y))
#s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))))
#s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
#s(approx (* x x) (*.f64 y y))
#s(approx (* z z) #s(approx (* x x) (*.f64 y y)))
(/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
(*.f64 y y)
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
(/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y))
#s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y))))
#s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
#s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y)))
#s(approx (* x x) (*.f64 y y))
#s(approx (* z z) #s(approx (* x x) (*.f64 y y)))
(/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t))

eval3.0ms (0.2%)

Memory
6.2MiB live, 6.2MiB allocated
Compiler

Compiled 1 288 to 57 computations (95.6% saved)

prune6.0ms (0.3%)

Memory
10.9MiB live, 10.9MiB allocated
Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New31132
Fresh000
Picked033
Done066
Total311041
Accuracy
77.2%
Counts
41 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
18.4%
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
46.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
48.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
12.7%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y))) (*.f64 y y)))
2.2%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
3.3%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
21.8%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
9.3%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
12.5%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
26.3%
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
Compiler

Compiled 624 to 193 computations (69.1% saved)

regimes53.0ms (3.2%)

Memory
-16.3MiB live, 105.8MiB allocated
Counts
14 → 3
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
(+.f64 (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y))) (*.f64 y y)))
Outputs
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
Calls

11 calls:

8.0ms
(*.f64 z z)
7.0ms
y
5.0ms
(/.f64 (*.f64 x x) (*.f64 y y))
4.0ms
x
4.0ms
t
Results
AccuracySegmentsBranch
70.2%3x
70.3%3y
67.6%2z
65.6%1t
72.4%2(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
75.9%3(/.f64 (*.f64 x x) (*.f64 y y))
72.2%3(*.f64 x x)
70.3%2(*.f64 y y)
73.7%3(/.f64 (*.f64 z z) (*.f64 t t))
71.0%3(*.f64 z z)
68.9%3(*.f64 t t)
Compiler

Compiled 45 to 61 computations (-35.6% saved)

regimes31.0ms (1.8%)

Memory
21.4MiB live, 59.9MiB allocated
Counts
12 → 3
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 #s(approx (* z z) #s(approx (* x x) (*.f64 y y))) (*.f64 t t)))
(+.f64 #s(approx (/ (* x x) (* y y)) #s(approx (* x x) (*.f64 y y))) (/.f64 (*.f64 z z) (*.f64 t t)))
(+.f64 #s(approx (/ (* x x) (* y y)) (*.f64 x x)) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) #s(approx (* y y) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))) (*.f64 y y)))
(+.f64 (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 z z) (*.f64 t t)))
Calls

8 calls:

5.0ms
(*.f64 x x)
4.0ms
x
4.0ms
y
4.0ms
(*.f64 y y)
3.0ms
(*.f64 z z)
Results
AccuracySegmentsBranch
62.4%4x
64.0%3y
63.4%3(*.f64 z z)
64.0%2(*.f64 y y)
62.8%3(*.f64 x x)
69.0%3(/.f64 (*.f64 z z) (*.f64 t t))
58.2%4(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
69.9%3(/.f64 (*.f64 x x) (*.f64 y y))
Compiler

Compiled 40 to 48 computations (-20% saved)

regimes26.0ms (1.6%)

Memory
0.3MiB live, 42.3MiB allocated
Counts
6 → 2
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 (*.f64 x x) (*.f64 y y)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
Calls

10 calls:

6.0ms
z
2.0ms
x
2.0ms
y
2.0ms
t
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
50.5%2x
53.2%3(*.f64 x x)
55.9%2(*.f64 z z)
51.2%2y
50.8%2(*.f64 y y)
48.5%1t
48.5%1(*.f64 t t)
48.5%1(/.f64 (*.f64 z z) (*.f64 t t))
55.9%3z
51.2%2(/.f64 (*.f64 x x) (*.f64 y y))
Compiler

Compiled 30 to 50 computations (-66.7% saved)

regimes25.0ms (1.5%)

Memory
2.4MiB live, 40.3MiB allocated
Counts
5 → 2
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (/.f64 #s(approx (* x x) (*.f64 y y)) (*.f64 y y)))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 z z))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
Calls

11 calls:

2.0ms
x
2.0ms
t
2.0ms
z
2.0ms
y
2.0ms
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
Results
AccuracySegmentsBranch
30.1%2(/.f64 (*.f64 z z) (*.f64 t t))
30.4%3t
29.8%3(*.f64 t t)
35.7%3x
28.5%2(*.f64 y y)
32.8%2(/.f64 (*.f64 x x) (*.f64 y y))
26.3%1y
35.5%2(*.f64 x x)
35.1%3z
26.3%1(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
35.1%2(*.f64 z z)
Compiler

Compiled 45 to 61 computations (-35.6% saved)

regimes15.0ms (0.9%)

Memory
-13.2MiB live, 24.7MiB allocated
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 y y))
Calls

8 calls:

4.0ms
(*.f64 z z)
2.0ms
x
2.0ms
t
2.0ms
z
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
28.2%2(*.f64 y y)
28.1%2t
26.3%1(/.f64 (*.f64 z z) (*.f64 t t))
26.3%1(/.f64 (*.f64 x x) (*.f64 y y))
26.3%1z
26.3%1x
26.3%1(*.f64 z z)
29.7%3(*.f64 x x)
Compiler

Compiled 26 to 41 computations (-57.7% saved)

regimes4.0ms (0.2%)

Memory
8.2MiB live, 8.2MiB allocated
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) (*.f64 t t))
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
Calls

3 calls:

1.0ms
(*.f64 x x)
1.0ms
(*.f64 y y)
1.0ms
(*.f64 t t)
Results
AccuracySegmentsBranch
29.7%3(*.f64 x x)
26.3%1(*.f64 t t)
26.3%1(*.f64 y y)
Compiler

Compiled 9 to 15 computations (-66.7% saved)

regimes3.0ms (0.2%)

Memory
7.4MiB live, 7.4MiB allocated
Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
Outputs
#s(approx (+ (/ (* x x) (* y y)) (/ (* z z) (* t t))) #s(approx (/ (* x x) (* y y)) (*.f64 x x)))
Calls

3 calls:

1.0ms
t
1.0ms
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
26.3%1(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
26.3%1t
26.3%1(*.f64 x x)
Compiler

Compiled 19 to 20 computations (-5.3% saved)

bsearch1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
+inf
NaN
0.0ms
1.6717809176415795e+295
1.388761359620929e+299
Compiler

Compiled 18 to 18 computations (0% saved)

bsearch0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
+inf
NaN
0.0ms
5.341330539682202e-249
1.9309091992769382e-214
Compiler

Compiled 18 to 18 computations (0% saved)

bsearch18.0ms (1.1%)

Memory
-17.7MiB live, 20.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
16.0ms
2.1203902114694304e+302
+inf
Samples
9.0ms144×0valid
Compiler

Compiled 378 to 279 computations (26.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (56.9% of total)
ival-div: 2.0ms (37.9% of total)
ival-add: 1.0ms (19% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch16.0ms (0.9%)

Memory
20.0MiB live, 20.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
1.4864456312425213e+285
5.51056565262202e+291
Samples
9.0ms144×0valid
Compiler

Compiled 414 to 270 computations (34.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (56.5% of total)
ival-div: 2.0ms (37.7% of total)
ival-add: 1.0ms (18.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch21.0ms (1.3%)

Memory
-20.1MiB live, 20.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
20.0ms
4.2218517962438214e+287
1.250687212796663e+297
Samples
14.0ms144×0valid
Compiler

Compiled 414 to 270 computations (34.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-div: 7.0ms (66.4% of total)
ival-mult: 3.0ms (28.5% of total)
ival-add: 1.0ms (9.5% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch35.0ms (2.1%)

Memory
2.5MiB live, 39.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
2.0089432270099032e+301
+inf
14.0ms
5.317517438959609e-302
1.3048493464693216e-296
Samples
22.0ms288×0valid
Compiler

Compiled 810 to 522 computations (35.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-div: 7.0ms (49.6% of total)
ival-mult: 6.0ms (42.5% of total)
ival-add: 1.0ms (7.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify4.0ms (0.3%)

Memory
8.1MiB live, 8.1MiB allocated

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...