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

Time bar (total: 1.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

Compiled 15 to 12 computations (20% saved)

sample882.0ms (66.1%)

Memory
-120.3MiB live, 1 243.6MiB allocated
Samples
486.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 318.0ms
ival-mult: 209.0ms (65.8% of total)
ival-add: 48.0ms (15.1% of total)
ival-sub: 39.0ms (12.3% of total)
exact: 12.0ms (3.8% of total)
ival-true: 6.0ms (1.9% of total)
ival-assert: 3.0ms (0.9% of total)
Bogosity

explain115.0ms (8.7%)

Memory
-12.9MiB live, 263.8MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-0-(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
00-0-(*.f64 (*.f64 x #s(literal 3 binary64)) x)
00-0-#s(literal 1 binary64)
00-0-#s(literal 3 binary64)
00-0-#s(literal 4 binary64)
00-0-(*.f64 x #s(literal 3 binary64))
00-0-(*.f64 x #s(literal 4 binary64))
00-0-(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
00-0-x
00-0-(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))cancellation10
Confusion
Predicted +Predicted -
+10
-0255
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+100
-00255
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0255
11
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
34.0ms512×0valid
Compiler

Compiled 161 to 44 computations (72.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-mult: 14.0ms (67.7% of total)
ival-sub: 2.0ms (9.7% of total)
ival-add: 2.0ms (9.7% of total)
exact: 1.0ms (4.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess2.0ms (0.2%)

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

Compiled 13 to 10 computations (23.1% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.8MiB live, 1.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize25.0ms (1.8%)

Memory
9.8MiB live, 51.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
accuracy0.01688253162065376
(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
accuracy0.078125
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
accuracy0.1328125
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
Samples
18.0ms256×0valid
Compiler

Compiled 98 to 22 computations (77.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-mult: 6.0ms (66.3% of total)
ival-sub: 1.0ms (11% of total)
ival-add: 1.0ms (11% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.2%)

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

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* (* x 3) x))
1.0ms
x
@0
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* (* x 3) x))
1.0ms
x
@-inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* (* x 3) x))

simplify0.0ms (0%)

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

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
1.9MiB live, 1.9MiB allocated
Compiler

Compiled 146 to 24 computations (83.6% saved)

prune3.0ms (0.3%)

Memory
-35.0MiB live, 3.4MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

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

Compiled 80 to 60 computations (25% saved)

simplify1.0ms (0.1%)

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

Found 12 expressions of interest:

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

localize31.0ms (2.3%)

Memory
13.7MiB live, 50.7MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy0.078125
(*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
accuracy0.1328125
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
accuracy29.623980601763574
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy0.0078125
(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
accuracy0.1328125
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
accuracy43.724110380585024
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))))
accuracy0.0078125
(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
accuracy0.01688253162065376
(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
accuracy0.1328125
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
accuracy39.46294943971275
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
Samples
21.0ms256×0valid
Compiler

Compiled 272 to 34 computations (87.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 9.0ms (77.6% of total)
ival-sub: 1.0ms (8.6% of total)
ival-add: 1.0ms (8.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.2%)

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

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (* x 3) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1))
1.0ms
x
@inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (* x 3) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1))
1.0ms
x
@0
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (* x 3) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1))

simplify0.0ms (0%)

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

rewrite1.0ms (0%)

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

eval2.0ms (0.1%)

Memory
5.2MiB live, 5.2MiB allocated
Compiler

Compiled 594 to 36 computations (93.9% saved)

prune3.0ms (0.2%)

Memory
5.2MiB live, 5.2MiB allocated
Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New16420
Fresh000
Picked033
Done011
Total16824
Accuracy
99.8%
Counts
24 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
53.6%
(*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
31.7%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))))
38.3%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
60.1%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
38.3%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
31.8%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
3.6%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64))))
Compiler

Compiled 238 to 127 computations (46.6% saved)

simplify1.0ms (0.1%)

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

Found 15 expressions of interest:

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

localize41.0ms (3.1%)

Memory
-29.8MiB live, 53.9MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.1328125
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
accuracy29.623980601763574
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
accuracy39.46294943971275
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
accuracy43.724110380585024
#s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
accuracy0.1328125
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
accuracy29.424825877783892
#s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
accuracy29.623980601763574
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
accuracy39.46294943971275
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
accuracy0.1328125
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
accuracy29.424825877783892
#s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
accuracy29.623980601763574
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
accuracy43.724110380585024
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
accuracy0.0
(*.f64 x #s(literal 3 binary64))
accuracy39.46294943971275
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64))))
accuracy61.67875274633666
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64)))
Samples
24.0ms256×0valid
Compiler

Compiled 620 to 37 computations (94% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 6.0ms (48.1% of total)
ival-sub: 4.0ms (32.1% of total)
ival-add: 1.0ms (8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.2%)

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

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (* x 3) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)))
1.0ms
x
@-inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (* x 3) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)))
1.0ms
x
@0
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (* x 3) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)))

simplify1.0ms (0%)

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

rewrite1.0ms (0.1%)

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

eval3.0ms (0.3%)

Memory
7.6MiB live, 7.6MiB allocated
Compiler

Compiled 1 857 to 66 computations (96.4% saved)

prune10.0ms (0.8%)

Memory
17.2MiB live, 17.2MiB allocated
Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New36339
Fresh000
Picked044
Done044
Total361147
Accuracy
99.8%
Counts
47 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
53.6%
(*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
31.7%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))))
38.3%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
39.4%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64)))
60.1%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
38.3%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
61.2%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
31.8%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
15.9%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x))))
3.6%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64))))
Compiler

Compiled 429 to 189 computations (55.9% saved)

simplify6.0ms (0.4%)

Memory
-34.4MiB live, 3.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

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

localize38.0ms (2.9%)

Memory
23.2MiB live, 60.2MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy29.424825877783892
#s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
accuracy29.424825877783892
#s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
accuracy29.623980601763574
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
accuracy39.46294943971275
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64)))
accuracy39.46294943971275
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
accuracy39.46294943971275
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
accuracy43.678296065373765
#s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64))))
accuracy43.724110380585024
#s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
accuracy29.424825877783892
#s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x)))
accuracy29.623980601763574
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x))
accuracy43.724110380585024
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x))))
accuracy60.88443090603031
#s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
Samples
24.0ms256×0valid
Compiler

Compiled 1 100 to 46 computations (95.8% saved)

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

series4.0ms (0.3%)

Memory
5.4MiB live, 5.4MiB allocated
Counts
18 → 17
Calls
Call 1
Inputs
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x))))
#s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x)))
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x))
(*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x)
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
(+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64))
#s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64))))))
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64)))
(+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64))
#s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
(+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))
#s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
#s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
#s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
#s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))
#s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
Outputs
3
(+ 3 (* -12 x))
(+ 3 (* x (- (* 9 x) 12)))
(* -4 x)
(* x (- (* 3 x) 4))
1
(+ 1 (* -4 x))
(+ 1 (* x (- (* 3 x) 4)))
(* 3 (pow x 2))
(* 3 x)
(* 9 (pow x 2))
(* (pow x 2) (- 9 (* 12 (/ 1 x))))
(* (pow x 2) (- (+ 9 (/ 3 (pow x 2))) (* 12 (/ 1 x))))
(* (pow x 2) (- 3 (* 4 (/ 1 x))))
(* (pow x 2) (- (+ 3 (/ 1 (pow x 2))) (* 4 (/ 1 x))))
(* (pow x 2) (+ 9 (* -1 (/ (- 12 (* 3 (/ 1 x))) x))))
(* (pow x 2) (+ 3 (* -1 (/ (- 4 (/ 1 x)) x))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* x 3) (- (* (* x 3) x) (* x 4)) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)))
1.0ms
x
@-inf
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* x 3) (- (* (* x 3) x) (* x 4)) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)))
1.0ms
x
@0
((* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)) (+ (- (* (* x 3) x) (* x 4)) 1) (* x 3) (- (* (* x 3) x) (* x 4)) (* (* x 3) x) (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+ (- (* (* x 3) x) (* x 4)) 1) (- (* (* x 3) x) (* x 4)))

simplify1.0ms (0.1%)

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

rewrite1.0ms (0.1%)

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

eval3.0ms (0.2%)

Memory
5.4MiB live, 5.4MiB allocated
Compiler

Compiled 2 304 to 68 computations (97% saved)

prune11.0ms (0.8%)

Memory
-21.4MiB live, 16.8MiB allocated
Pruning

11 alts after pruning (0 fresh and 11 done)

PrunedKeptTotal
New34034
Fresh000
Picked033
Done088
Total341145
Accuracy
99.8%
Counts
45 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
53.6%
(*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
31.7%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))))
38.3%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
39.4%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64)))
60.1%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
38.3%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
61.2%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
31.8%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
15.9%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x))))
3.6%
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64))))
Compiler

Compiled 858 to 234 computations (72.7% saved)

regimes14.0ms (1.1%)

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

4 calls:

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

Compiled 34 to 27 computations (20.6% saved)

regimes16.0ms (1.2%)

Memory
-21.1MiB live, 23.4MiB allocated
Counts
10 → 1
Calls
Call 1
Inputs
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 #s(approx (* x 3) (*.f64 (*.f64 x #s(literal 3 binary64)) x)) x))))
(*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
Outputs
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
Calls

4 calls:

3.0ms
(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
3.0ms
x
3.0ms
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
3.0ms
(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
Results
AccuracySegmentsBranch
61.2%1x
61.2%1(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
61.2%1(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
61.2%1(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
Compiler

Compiled 34 to 27 computations (20.6% saved)

regimes14.0ms (1%)

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

4 calls:

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

Compiled 34 to 27 computations (20.6% saved)

regimes10.0ms (0.7%)

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

4 calls:

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

Compiled 34 to 27 computations (20.6% saved)

regimes6.0ms (0.5%)

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

3 calls:

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

Compiled 33 to 26 computations (21.2% saved)

regimes10.0ms (0.7%)

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

4 calls:

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

Compiled 34 to 27 computations (20.6% saved)

regimes6.0ms (0.4%)

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

4 calls:

1.0ms
(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
1.0ms
x
1.0ms
(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
1.0ms
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
Results
AccuracySegmentsBranch
31.8%1x
31.8%1(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
31.8%1(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
31.8%1(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
Compiler

Compiled 34 to 27 computations (20.6% saved)

regimes5.0ms (0.4%)

Memory
11.3MiB live, 11.3MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

4 calls:

1.0ms
(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
1.0ms
x
1.0ms
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
1.0ms
(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
Results
AccuracySegmentsBranch
3.6%1x
3.6%1(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
3.6%1(+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))
3.6%1(-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64)))
Compiler

Compiled 34 to 27 computations (20.6% saved)

bsearch0.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.3319047806832176
1792.6039004693775
Compiler

Compiled 16 to 15 computations (6.3% saved)

bsearch0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.3319047806832176
1792.6039004693775
Compiler

Compiled 16 to 15 computations (6.3% saved)

simplify7.0ms (0.5%)

Memory
-28.2MiB live, 10.6MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
(if (<=.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1/2 binary64)) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64))) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
(if (<=.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1/2 binary64)) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64))))
Outputs
(*.f64 #s(literal 3 binary64) (+.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) #s(approx (* (* x 3) x) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x)))) #s(literal 1 binary64)))
(if (<=.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1/2 binary64)) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) #s(literal 1 binary64))) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
(if (<=.f64 (-.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) (*.f64 x #s(literal 4 binary64))) #s(literal 1/2 binary64)) #s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64))) (*.f64 #s(literal 3 binary64) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) (+.f64 #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))) #s(literal 1 binary64)))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (- (* (* x 3) x) (* x 4)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 (*.f64 x #s(literal 3 binary64)) x))))
#s(approx (* 3 (+ (- (* (* x 3) x) (* x 4)) 1)) #s(approx (+ (- (* (* x 3) x) (* x 4)) 1) (*.f64 x #s(literal 3 binary64))))

soundness2.0ms (0.2%)

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

Compiled 420 to 42 computations (90% saved)

preprocess44.0ms (3.3%)

Memory
22.3MiB live, 102.7MiB allocated
Compiler

Compiled 888 to 122 computations (86.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...