Diagrams.Tangent:$catParam from diagrams-lib-1.3.0.3, E

Time bar (total: 953.0ms)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
100%100%0%0%0%0%0%1
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample640.0ms (67.2%)

Memory
28.5MiB live, 974.2MiB allocated
Samples
371.0ms7 654×0valid
32.0ms293×2valid
23.0ms309×1valid
Precisions
Click to see histograms. Total time spent on operations: 258.0ms
ival-mult: 181.0ms (70.3% of total)
ival-sub: 50.0ms (19.4% of total)
adjust: 10.0ms (3.9% of total)
exact: 8.0ms (3.1% of total)
ival-true: 6.0ms (2.3% of total)
ival-assert: 3.0ms (1.2% of total)
Bogosity

explain84.0ms (8.8%)

Memory
0.3MiB live, 160.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
00-0-(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
00-0-#s(literal 2 binary64)
00-0-#s(literal 3 binary64)
00-0-(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
00-0-(*.f64 x #s(literal 3 binary64))
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
23.0ms430×0valid
5.0ms40×2valid
4.0ms42×1valid
Compiler

Compiled 94 to 32 computations (66% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 11.0ms (64.4% of total)
ival-sub: 3.0ms (17.6% of total)
adjust: 1.0ms (5.9% of total)
ival-true: 1.0ms (5.9% of total)
exact: 1.0ms (5.9% of total)
ival-assert: 0.0ms (0% of total)

preprocess2.0ms (0.2%)

Memory
4.2MiB live, 4.2MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Outputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Compiler

Compiled 9 to 7 computations (22.2% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
cost-diff0
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
cost-diff0
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
#s(literal 3 binary64)
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x
Outputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
#s(literal 3 binary64)
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x

localize27.0ms (2.8%)

Memory
0.1MiB live, 36.2MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy0.078125
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
accuracy0.14453125
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
accuracy0.1484375
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
Samples
16.0ms215×0valid
3.0ms20×2valid
2.0ms21×1valid
Compiler

Compiled 56 to 16 computations (71.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 5.0ms (60.3% of total)
ival-sub: 2.0ms (24.1% of total)
adjust: 1.0ms (12.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series3.0ms (0.4%)

Memory
5.6MiB live, 5.6MiB allocated
Counts
4 → 15
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
Outputs
(* 6 x)
(* x (+ 6 (* -9 x)))
6
(+ 6 (* -9 x))
2
(+ 2 (* -3 x))
(* 3 x)
(* -9 (pow x 2))
(* (pow x 2) (- (* 6 (/ 1 x)) 9))
(* -9 x)
(* x (- (* 6 (/ 1 x)) 9))
(* -3 x)
(* x (- (* 2 (/ 1 x)) 3))
(* -1 (* x (- 9 (* 6 (/ 1 x)))))
(* -1 (* x (- 3 (* 2 (/ 1 x)))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* x 3))
1.0ms
x
@-inf
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* x 3))
1.0ms
x
@0
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* x 3))

simplify0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
egg-herbie
Counts
15 → 4
Calls
Call 1
Inputs
(* 6 x)
(* x (+ 6 (* -9 x)))
6
(+ 6 (* -9 x))
2
(+ 2 (* -3 x))
(* 3 x)
(* -9 (pow x 2))
(* (pow x 2) (- (* 6 (/ 1 x)) 9))
(* -9 x)
(* x (- (* 6 (/ 1 x)) 9))
(* -3 x)
(* x (- (* 2 (/ 1 x)) 3))
(* -1 (* x (- 9 (* 6 (/ 1 x)))))
(* -1 (* x (- 3 (* 2 (/ 1 x)))))
Outputs
(* 6 x)
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(* x (+ 6 (* -9 x)))
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
6
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(+ 6 (* -9 x))
(*.f64 x #s(literal 3 binary64))

rewrite0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
Outputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))

eval1.0ms (0.1%)

Memory
1.8MiB live, 1.8MiB allocated
Compiler

Compiled 100 to 19 computations (81% saved)

prune6.0ms (0.6%)

Memory
-33.7MiB live, 3.6MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New538
Fresh000
Picked011
Done000
Total549
Accuracy
99.7%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
38.3%
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
3.1%
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
3.7%
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
Compiler

Compiled 54 to 42 computations (22.2% saved)

simplify1.0ms (0.1%)

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

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
cost-diff0
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
cost-diff0
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
cost-diff0
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
cost-diff0
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
cost-diff0
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
#s(literal 3 binary64)
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
Outputs
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
#s(literal 3 binary64)
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)

localize36.0ms (3.8%)

Memory
-5.5MiB live, 46.8MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy0.078125
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
accuracy0.14453125
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
accuracy52.62918414278684
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy0.14453125
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
accuracy62.635918072537265
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy0.078125
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
accuracy0.1484375
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
accuracy61.63622183802681
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
Samples
22.0ms215×0valid
3.0ms20×2valid
2.0ms21×1valid
Compiler

Compiled 180 to 26 computations (85.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 5.0ms (59.7% of total)
ival-sub: 2.0ms (23.9% of total)
adjust: 1.0ms (11.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series2.0ms (0.2%)

Memory
3.7MiB live, 3.7MiB allocated
Counts
8 → 15
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
Outputs
(* 6 x)
(* x (+ 6 (* -9 x)))
6
(+ 6 (* -9 x))
2
(+ 2 (* -3 x))
(* 3 x)
(* -9 (pow x 2))
(* (pow x 2) (- (* 6 (/ 1 x)) 9))
(* -9 x)
(* x (- (* 6 (/ 1 x)) 9))
(* -3 x)
(* x (- (* 2 (/ 1 x)) 3))
(* -1 (* x (- 9 (* 6 (/ 1 x)))))
(* -1 (* x (- 3 (* 2 (/ 1 x)))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* x 3) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))))
1.0ms
x
@-inf
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* x 3) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))))
0.0ms
x
@0
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* x 3) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))))

simplify0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Counts
15 → 8
Calls
Call 1
Inputs
(* 6 x)
(* x (+ 6 (* -9 x)))
6
(+ 6 (* -9 x))
2
(+ 2 (* -3 x))
(* 3 x)
(* -9 (pow x 2))
(* (pow x 2) (- (* 6 (/ 1 x)) 9))
(* -9 x)
(* x (- (* 6 (/ 1 x)) 9))
(* -3 x)
(* x (- (* 2 (/ 1 x)) 3))
(* -1 (* x (- 9 (* 6 (/ 1 x)))))
(* -1 (* x (- 3 (* 2 (/ 1 x)))))
Outputs
(* 6 x)
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(* x (+ 6 (* -9 x)))
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
6
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(+ 6 (* -9 x))
(*.f64 x #s(literal 3 binary64))
2
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
(+ 2 (* -3 x))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(* 3 x)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(* -9 (pow x 2))
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))

rewrite1.0ms (0.1%)

Memory
1.1MiB live, 1.1MiB allocated
Counts
8 → 8
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
Outputs
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))

eval2.0ms (0.2%)

Memory
4.4MiB live, 4.4MiB allocated
Compiler

Compiled 442 to 38 computations (91.4% saved)

prune3.0ms (0.3%)

Memory
5.4MiB live, 5.4MiB allocated
Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New16420
Fresh000
Picked213
Done011
Total18624
Accuracy
99.7%
Counts
24 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
38.3%
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
16.0%
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
11.3%
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
3.7%
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
10.8%
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
Compiler

Compiled 126 to 69 computations (45.2% saved)

simplify1.0ms (0.1%)

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

Found 15 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
cost-diff0
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
cost-diff0
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
cost-diff0
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
cost-diff0
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
cost-diff0
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
cost-diff0
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
cost-diff0
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
cost-diff0
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
cost-diff0
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
cost-diff0
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
#s(literal 3 binary64)
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
Outputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
#s(literal 3 binary64)
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)

localize38.0ms (4%)

Memory
-19.8MiB live, 55.8MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.14453125
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
accuracy52.62918414278684
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
accuracy61.61005398367039
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
accuracy62.635918072537265
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
accuracy0.1484375
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
accuracy52.62918414278684
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
accuracy61.63622183802681
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
accuracy62.635918072537265
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy0.078125
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
accuracy52.62918414278684
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
accuracy61.63622183802681
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy61.63622183802681
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
accuracy62.635918072537265
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
Samples
19.0ms215×0valid
4.0ms20×2valid
3.0ms21×1valid
Compiler

Compiled 394 to 31 computations (92.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-mult: 6.0ms (70.5% of total)
ival-sub: 2.0ms (23.5% of total)
adjust: 1.0ms (11.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series2.0ms (0.2%)

Memory
4.6MiB live, 4.6MiB allocated
Counts
13 → 15
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
Outputs
(* 6 x)
(* x (+ 6 (* -9 x)))
6
(+ 6 (* -9 x))
(* 3 x)
2
(+ 2 (* -3 x))
(* -9 (pow x 2))
(* (pow x 2) (- (* 6 (/ 1 x)) 9))
(* -9 x)
(* x (- (* 6 (/ 1 x)) 9))
(* -3 x)
(* x (- (* 2 (/ 1 x)) 3))
(* -1 (* x (- 9 (* 6 (/ 1 x)))))
(* -1 (* x (- 3 (* 2 (/ 1 x)))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (* x 3) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x))
1.0ms
x
@-inf
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (* x 3) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x))
1.0ms
x
@0
((* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (* x 3) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x) (* 3 (- 2 (* x 3))) (- 2 (* x 3)) (* (* 3 (- 2 (* x 3))) x))

simplify1.0ms (0.1%)

Memory
0.9MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
15 → 13
Calls
Call 1
Inputs
(* 6 x)
(* x (+ 6 (* -9 x)))
6
(+ 6 (* -9 x))
(* 3 x)
2
(+ 2 (* -3 x))
(* -9 (pow x 2))
(* (pow x 2) (- (* 6 (/ 1 x)) 9))
(* -9 x)
(* x (- (* 6 (/ 1 x)) 9))
(* -3 x)
(* x (- (* 2 (/ 1 x)) 3))
(* -1 (* x (- 9 (* 6 (/ 1 x)))))
(* -1 (* x (- 3 (* 2 (/ 1 x)))))
Outputs
(* 6 x)
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
(* x (+ 6 (* -9 x)))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
6
(*.f64 x #s(literal 3 binary64))
(+ 6 (* -9 x))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(* 3 x)
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
2
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
(+ 2 (* -3 x))
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(* -9 (pow x 2))
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
(* (pow x 2) (- (* 6 (/ 1 x)) 9))
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
(* -9 x)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
(* x (- (* 6 (/ 1 x)) 9))
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
(* -3 x)
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
(* x (- (* 2 (/ 1 x)) 3))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)

rewrite1.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated
Counts
13 → 13
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
Outputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))
(-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))
#s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
#s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)))
#s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)

eval3.0ms (0.4%)

Memory
7.9MiB live, 7.9MiB allocated
Compiler

Compiled 1 270 to 74 computations (94.2% saved)

prune6.0ms (0.7%)

Memory
12.8MiB live, 12.8MiB allocated
Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New36036
Fresh000
Picked044
Done022
Total36642
Accuracy
99.7%
Counts
42 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
38.3%
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
16.0%
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
11.3%
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
3.7%
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
10.8%
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
Compiler

Compiled 282 to 95 computations (66.3% saved)

regimes7.0ms (0.8%)

Memory
-26.2MiB live, 12.7MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Outputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Calls

2 calls:

4.0ms
x
3.0ms
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Results
AccuracySegmentsBranch
99.7%1x
99.7%1(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Compiler

Compiled 10 to 8 computations (20% saved)

regimes6.0ms (0.6%)

Memory
11.4MiB live, 11.4MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) #s(approx (- 2 (* x 3)) (*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x))) x)
Outputs
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Calls

2 calls:

3.0ms
x
2.0ms
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Results
AccuracySegmentsBranch
38.3%1(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
38.3%1x
Compiler

Compiled 10 to 8 computations (20% saved)

regimes5.0ms (0.5%)

Memory
9.8MiB live, 9.8MiB allocated
Counts
5 → 2
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))) x)
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
Outputs
#s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
Calls

2 calls:

2.0ms
x
2.0ms
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Results
AccuracySegmentsBranch
13.0%2x
11.3%1(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Compiler

Compiled 10 to 8 computations (20% saved)

regimes3.0ms (0.3%)

Memory
6.9MiB live, 6.9MiB allocated
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
Outputs
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))))
Calls

2 calls:

1.0ms
x
1.0ms
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
Results
AccuracySegmentsBranch
10.8%1(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
12.4%2x
Compiler

Compiled 10 to 8 computations (20% saved)

regimes1.0ms (0.1%)

Memory
3.3MiB live, 3.3MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

1 calls:

1.0ms
x
Results
AccuracySegmentsBranch
10.8%1x
Compiler

Compiled 1 to 1 computations (0% saved)

bsearch15.0ms (1.6%)

Memory
-22.5MiB live, 21.5MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
13.0ms
2.8747370651852333e-10
0.334452984345287
Samples
6.0ms144×0valid
Compiler

Compiled 480 to 263 computations (45.2% saved)

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

bsearch13.0ms (1.4%)

Memory
21.7MiB live, 21.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
12.0ms
0.334452984345287
78978039.50408424
Samples
6.0ms144×0valid
Compiler

Compiled 408 to 245 computations (40% saved)

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

simplify6.0ms (0.7%)

Memory
-27.6MiB live, 11.0MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(if (<=.f64 x #s(literal 5764607523034235/36028797018963968 binary64)) #s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))) #s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))))
(if (<=.f64 x #s(literal 7566047373982433/18014398509481984 binary64)) #s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))) #s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))
Outputs
(*.f64 (*.f64 #s(literal 3 binary64) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(*.f64 #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64)))) x)
(if (<=.f64 x #s(literal 5764607523034235/36028797018963968 binary64)) #s(approx (* (* 3 (- 2 (* x 3))) x) (*.f64 #s(literal 3 binary64) #s(approx (- 2 (* x 3)) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))))) #s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))))
(if (<=.f64 x #s(literal 7566047373982433/18014398509481984 binary64)) #s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64)))) #s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (-.f64 #s(literal 2 binary64) (*.f64 x #s(literal 3 binary64))))))
#s(approx (* (* 3 (- 2 (* x 3))) x) #s(approx (* 3 (- 2 (* x 3))) (*.f64 x #s(literal 3 binary64))))

soundness2.0ms (0.2%)

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

Compiled 149 to 27 computations (81.9% saved)

preprocess34.0ms (3.5%)

Memory
26.9MiB live, 65.5MiB allocated
Compiler

Compiled 334 to 82 computations (75.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...