Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3

Time bar (total: 1.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze15.0ms (1.3%)

Memory
-14.3MiB live, 24.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
75%74.9%25%0.1%0%0%0%6
87.5%87.4%12.5%0.1%0%0%0%7
87.5%87.4%12.5%0.1%0%0%0%8
93.8%93.7%6.2%0.1%0%0%0%9
93.8%93.7%6.2%0.1%0%0%0%10
96.9%96.8%3.1%0.1%0%0%0%11
96.9%96.8%3.1%0.1%0%0%0%12
Compiler

Compiled 13 to 11 computations (15.4% saved)

sample699.0ms (61.8%)

Memory
58.4MiB live, 948.1MiB allocated
Samples
455.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 272.0ms
ival-mult: 99.0ms (36.4% of total)
ival-sub: 98.0ms (36% of total)
ival-div: 57.0ms (21% of total)
exact: 9.0ms (3.3% of total)
ival-true: 7.0ms (2.6% of total)
ival-assert: 4.0ms (1.5% of total)
Bogosity

explain80.0ms (7.1%)

Memory
-4.4MiB live, 153.8MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
170-0-(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
00-0-(*.f64 y #s(literal 3 binary64))
00-0-(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
00-0-#s(literal 3 binary64)
00-0-#s(literal 1 binary64)
00-0-(-.f64 #s(literal 1 binary64) x)
00-0-(-.f64 #s(literal 3 binary64) x)
00-0-y
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))o/n170
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))overflow55
Confusion
Predicted +Predicted -
+170
-0239
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+1700
-00239
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0239
117
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
36.0ms512×0valid
Compiler

Compiled 108 to 40 computations (63% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-sub: 7.0ms (39.2% of total)
ival-mult: 6.0ms (33.6% of total)
ival-div: 3.0ms (16.8% of total)
exact: 1.0ms (5.6% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess3.0ms (0.2%)

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

Compiled 11 to 9 computations (18.2% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 11 to 9 computations (18.2% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

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

localize23.0ms (2%)

Memory
-1.6MiB live, 36.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy0.0
(*.f64 y #s(literal 3 binary64))
accuracy0.0078125
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
accuracy4.185813736499053
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
Samples
17.0ms256×0valid
Compiler

Compiled 64 to 20 computations (68.8% saved)

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

series6.0ms (0.5%)

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

6 calls:

TimeVariablePointExpression
1.0ms
y
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (* y 3))
1.0ms
y
@0
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (* y 3))
1.0ms
y
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (* y 3))
1.0ms
x
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (* y 3))
1.0ms
x
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (* y 3))

simplify0.0ms (0%)

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

rewrite0.0ms (0%)

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

eval3.0ms (0.3%)

Memory
-35.2MiB live, 2.2MiB allocated
Compiler

Compiled 142 to 23 computations (83.8% saved)

prune2.0ms (0.2%)

Memory
5.5MiB live, 5.5MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
93.6%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.5%
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
55.8%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
3.1%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64))) (*.f64 y #s(literal 3 binary64)))
3.8%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
11.3%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
Compiler

Compiled 75 to 59 computations (21.3% saved)

simplify1.0ms (0.1%)

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

Found 13 expressions of interest:

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

localize28.0ms (2.5%)

Memory
11.9MiB live, 49.8MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 #s(literal 3 binary64) x)
accuracy0.0
(*.f64 y #s(literal 3 binary64))
accuracy4.185813736499053
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
accuracy30.932026693063204
#s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x))
accuracy0.0
(*.f64 y #s(literal 3 binary64))
accuracy4.185813736499053
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64))) (*.f64 y #s(literal 3 binary64)))
accuracy61.975091115078826
#s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64)))
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy61.55230364275586
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
accuracy0.0
(-.f64 #s(literal 3 binary64) x)
accuracy0.0
(-.f64 #s(literal 1 binary64) x)
accuracy0.0078125
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
accuracy56.793586062765534
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
Samples
18.0ms256×0valid
Compiler

Compiled 216 to 32 computations (85.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-sub: 3.0ms (37.8% of total)
ival-mult: 3.0ms (37.8% of total)
ival-div: 2.0ms (25.2% 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
11.7MiB live, 11.7MiB allocated
Counts
10 → 24
Calls
Call 1
Inputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
(-.f64 #s(literal 1 binary64) x)
(-.f64 #s(literal 3 binary64) x)
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64))) (*.f64 y #s(literal 3 binary64)))
#s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64)))
(*.f64 y #s(literal 3 binary64))
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
#s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x))
Outputs
(/ 1 y)
(+ (* -4/3 (/ x y)) (/ 1 y))
(+ (* x (- (* 1/3 (/ x y)) (* 4/3 (/ 1 y)))) (/ 1 y))
3
(+ 3 (* -4 x))
(+ 3 (* x (- x 4)))
1
(+ 1 (* -1 x))
(+ 3 (* -1 x))
(* 1/3 (/ (pow x 2) y))
(* (pow x 2) (- (* 1/3 (/ 1 y)) (* 4/3 (/ 1 (* x y)))))
(* (pow x 2) (- (+ (* 1/3 (/ 1 y)) (/ 1 (* (pow x 2) y))) (/ 4/3 (* x y))))
(pow x 2)
(* (pow x 2) (- 1 (* 4 (/ 1 x))))
(* (pow x 2) (- (+ 1 (/ 3 (pow x 2))) (* 4 (/ 1 x))))
(* -1 x)
(* x (- (/ 1 x) 1))
(* x (- (* 3 (/ 1 x)) 1))
(* (pow x 2) (+ (* -1 (/ (- (* 4/3 (/ 1 y)) (/ 1 (* x y))) x)) (* 1/3 (/ 1 y))))
(* (pow x 2) (+ 1 (* -1 (/ (- 4 (* 3 (/ 1 x))) x))))
(* -1 (* x (- 1 (/ 1 x))))
(* -1 (* x (- 1 (* 3 (/ 1 x)))))
(* 1/3 (/ (* (- 1 x) (- 3 x)) y))
(* 3 y)
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@0
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)))
1.0ms
y
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)))
1.0ms
y
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)))
0.0ms
x
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)))
0.0ms
x
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)))

simplify0.0ms (0%)

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

rewrite1.0ms (0%)

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

eval2.0ms (0.2%)

Memory
5.6MiB live, 5.6MiB allocated
Compiler

Compiled 524 to 40 computations (92.4% saved)

prune21.0ms (1.9%)

Memory
-60.9MiB live, 10.4MiB allocated
Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New20424
Fresh000
Picked044
Done011
Total20929
Accuracy
99.7%
Counts
29 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.5%
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
55.8%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
3.1%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64))) (*.f64 y #s(literal 3 binary64)))
3.8%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
11.3%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
99.6%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
5.1%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
3.9%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
3.8%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
Compiler

Compiled 175 to 119 computations (32% saved)

simplify1.0ms (0.1%)

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

Found 14 expressions of interest:

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

localize34.0ms (3%)

Memory
24.9MiB live, 62.6MiB allocated
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
accuracy4.185813736499053
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
accuracy30.932026693063204
#s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x))
accuracy56.793586062765534
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
accuracy61.54831704002261
#s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))
accuracy0.0
(*.f64 y #s(literal 3 binary64))
accuracy0.0078125
(*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))
accuracy56.793586062765534
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
accuracy61.758172288651785
#s(approx (- 1 x) (*.f64 y #s(literal 3 binary64)))
accuracy0.0
(*.f64 y #s(literal 3 binary64))
accuracy61.55230364275586
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
accuracy61.758172288651785
#s(approx (- 1 x) (*.f64 y #s(literal 3 binary64)))
accuracy0.0
(-.f64 #s(literal 3 binary64) x)
accuracy30.932026693063204
#s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x))
accuracy56.793586062765534
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
Samples
23.0ms256×0valid
Compiler

Compiled 362 to 35 computations (90.3% saved)

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

series8.0ms (0.7%)

Memory
-29.6MiB live, 8.5MiB allocated
Counts
13 → 24
Calls
Call 1
Inputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
#s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x))
(-.f64 #s(literal 3 binary64) x)
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
#s(approx (- 1 x) (*.f64 y #s(literal 3 binary64)))
(*.f64 y #s(literal 3 binary64))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
(*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
(*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))))
(-.f64 #s(literal 1 binary64) x)
#s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
Outputs
(/ 1 y)
(+ (* -4/3 (/ x y)) (/ 1 y))
(+ (* x (- (* 1/3 (/ x y)) (* 4/3 (/ 1 y)))) (/ 1 y))
3
(+ 3 (* -4 x))
(+ 3 (* x (- x 4)))
(+ 3 (* -1 x))
1
(+ 1 (* -1 x))
(* 1/3 (/ (pow x 2) y))
(* (pow x 2) (- (* 1/3 (/ 1 y)) (* 4/3 (/ 1 (* x y)))))
(* (pow x 2) (- (+ (* 1/3 (/ 1 y)) (/ 1 (* (pow x 2) y))) (/ 4/3 (* x y))))
(pow x 2)
(* (pow x 2) (- 1 (* 4 (/ 1 x))))
(* (pow x 2) (- (+ 1 (/ 3 (pow x 2))) (* 4 (/ 1 x))))
(* -1 x)
(* x (- (* 3 (/ 1 x)) 1))
(* x (- (/ 1 x) 1))
(* (pow x 2) (+ (* -1 (/ (- (* 4/3 (/ 1 y)) (/ 1 (* x y))) x)) (* 1/3 (/ 1 y))))
(* (pow x 2) (+ 1 (* -1 (/ (- 4 (* 3 (/ 1 x))) x))))
(* -1 (* x (- 1 (* 3 (/ 1 x)))))
(* -1 (* x (- 1 (/ 1 x))))
(* 1/3 (/ (* (- 1 x) (- 3 x)) y))
(* 3 y)
Calls

6 calls:

TimeVariablePointExpression
5.0ms
y
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
1.0ms
y
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
1.0ms
y
@0
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
0.0ms
x
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
0.0ms
x
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))

simplify1.0ms (0.1%)

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

rewrite1.0ms (0.1%)

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

eval4.0ms (0.3%)

Memory
9.3MiB live, 9.3MiB allocated
Compiler

Compiled 1 230 to 69 computations (94.4% saved)

prune7.0ms (0.6%)

Memory
16.1MiB live, 16.1MiB allocated
Pruning

11 alts after pruning (2 fresh and 9 done)

PrunedKeptTotal
New36238
Fresh000
Picked044
Done055
Total361147
Accuracy
99.7%
Counts
47 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.5%
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
55.8%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
3.1%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64))) (*.f64 y #s(literal 3 binary64)))
3.8%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
11.3%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
99.6%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
16.2%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) (-.f64 #s(literal 3 binary64) x)))
5.1%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
4.7%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) #s(approx (- 3 x) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))))))
3.9%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
3.8%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
Compiler

Compiled 253 to 154 computations (39.1% saved)

simplify1.0ms (0.1%)

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

Found 8 expressions of interest:

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

localize35.0ms (3.1%)

Memory
-19.8MiB live, 63.4MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))
accuracy56.793586062765534
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) (-.f64 #s(literal 3 binary64) x)))
accuracy57.04152517170034
#s(approx (- 1 x) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
accuracy61.758172288651785
#s(approx (- 1 x) (*.f64 y #s(literal 3 binary64)))
accuracy56.793586062765534
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
accuracy56.793586062765534
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) #s(approx (- 3 x) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))))))
accuracy61.54831704002261
#s(approx (- 3 x) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))))
accuracy61.758172288651785
#s(approx (- 1 x) (*.f64 y #s(literal 3 binary64)))
Samples
18.0ms256×0valid
Compiler

Compiled 344 to 32 computations (90.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-sub: 3.0ms (37.9% of total)
ival-mult: 3.0ms (37.9% of total)
ival-div: 2.0ms (25.3% 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.3%)

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

6 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
1.0ms
y
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
1.0ms
y
@0
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
0.0ms
x
@inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))
0.0ms
x
@-inf
((/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* y 3) (/ (* (- 1 x) (- 3 x)) (* y 3)) (* (- 1 x) (- 3 x)) (- 1 x) (* (- 1 x) (- 3 x)) (- 3 x) (/ (* (- 1 x) (- 3 x)) (* y 3)))

simplify1.0ms (0%)

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

rewrite1.0ms (0.1%)

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

eval3.0ms (0.3%)

Memory
7.2MiB live, 7.2MiB allocated
Compiler

Compiled 1 165 to 52 computations (95.5% saved)

prune7.0ms (0.6%)

Memory
-25.7MiB live, 13.7MiB allocated
Pruning

11 alts after pruning (0 fresh and 11 done)

PrunedKeptTotal
New27027
Fresh000
Picked022
Done099
Total271138
Accuracy
99.7%
Counts
38 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
93.5%
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
55.8%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
3.1%
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64))) (*.f64 y #s(literal 3 binary64)))
3.8%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
11.3%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
99.6%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
16.2%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) (-.f64 #s(literal 3 binary64) x)))
5.1%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
4.7%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) #s(approx (- 3 x) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))))))
3.9%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
3.8%
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
Compiler

Compiled 506 to 190 computations (62.5% saved)

regimes20.0ms (1.7%)

Memory
3.0MiB live, 42.2MiB allocated
Counts
11 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x)))
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) (-.f64 #s(literal 3 binary64) x)))
(/.f64 #s(approx (* (- 1 x) (- 3 x)) (*.f64 y #s(literal 3 binary64))) (*.f64 y #s(literal 3 binary64)))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) #s(approx (- 3 x) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))))))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
Outputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
Calls

5 calls:

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

Compiled 23 to 24 computations (-4.3% saved)

regimes17.0ms (1.5%)

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

5 calls:

4.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
3.0ms
(*.f64 y #s(literal 3 binary64))
3.0ms
y
3.0ms
x
3.0ms
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
Results
AccuracySegmentsBranch
65.2%3(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
66.6%3x
55.8%1y
66.1%2(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
55.8%1(*.f64 y #s(literal 3 binary64))
Compiler

Compiled 23 to 24 computations (-4.3% saved)

regimes7.0ms (0.7%)

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

3 calls:

2.0ms
x
2.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
2.0ms
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
Results
AccuracySegmentsBranch
61.0%2(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
61.7%3x
61.4%2(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
Compiler

Compiled 19 to 18 computations (5.3% saved)

regimes11.0ms (1%)

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

5 calls:

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

Compiled 23 to 24 computations (-4.3% saved)

regimes9.0ms (0.8%)

Memory
-27.6MiB live, 12.6MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (-.f64 #s(literal 1 binary64) x))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
Outputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
Calls

3 calls:

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

Compiled 15 to 15 computations (0% saved)

regimes9.0ms (0.8%)

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

5 calls:

2.0ms
(*.f64 y #s(literal 3 binary64))
2.0ms
x
2.0ms
y
2.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
1.0ms
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
Results
AccuracySegmentsBranch
3.9%1(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
3.9%1x
3.9%1y
3.9%1(*.f64 y #s(literal 3 binary64))
3.9%1(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
Compiler

Compiled 23 to 24 computations (-4.3% saved)

regimes10.0ms (0.8%)

Memory
-22.8MiB live, 15.1MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

5 calls:

1.0ms
y
1.0ms
(*.f64 y #s(literal 3 binary64))
1.0ms
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
1.0ms
x
1.0ms
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
Results
AccuracySegmentsBranch
3.8%1y
3.8%1(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64)))
3.8%1(*.f64 y #s(literal 3 binary64))
3.8%1x
3.8%1(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))
Compiler

Compiled 23 to 24 computations (-4.3% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.738272563075927e+303
+inf
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.4611119336716186e+302
6.738272563075927e+303
Compiler

Compiled 14 to 15 computations (-7.1% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-5.6066987203387734e-161
-1.6065719898954568e-163
Compiler

Compiled 14 to 14 computations (0% saved)

simplify5.0ms (0.4%)

Memory
10.5MiB live, 10.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
(if (<=.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) #s(literal 9999999999999999392535525055364621860040287220117324953190771571323204563013233902843309257440507748436856118056162172578717193742636030530235798840866882774987301441682011041067710253162440905843719802548551599076639682550821832659549112269607949805346034918662572406407604380845959862074904348138143744 binary64)) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) (-.f64 #s(literal 3 binary64) x))))
(if (<=.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) #s(literal 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568 binary64)) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))))
(if (<=.f64 (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))) #s(literal -1582914569427869/31658291388557380359744322690514840324496812684955115509000071179890844813636078997800499335839109758668501942530065835436974724391264154875845907853042325493325666835033489408 binary64)) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))
Outputs
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) #s(approx (- 3 x) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))))))
(if (<=.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) #s(literal 9999999999999999392535525055364621860040287220117324953190771571323204563013233902843309257440507748436856118056162172578717193742636030530235798840866882774987301441682011041067710253162440905843719802548551599076639682550821832659549112269607949805346034918662572406407604380845959862074904348138143744 binary64)) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) (-.f64 #s(literal 3 binary64) x))))
(if (<=.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) #s(literal 1000000000000000000161765076786456438212668646231659438295495017101117499225738747865260243034213915253779773568180337416027445820567779199643391541606026068611150746122284976177256650044200527276807327067690462112661427500197051226489898260678763391449376088547292320814127957486330655468919122263277568 binary64)) (/.f64 #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))))
(if (<=.f64 (/.f64 (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)) (*.f64 y #s(literal 3 binary64))) #s(literal -1582914569427869/31658291388557380359744322690514840324496812684955115509000071179890844813636078997800499335839109758668501942530065835436974724391264154875845907853042325493325666835033489408 binary64)) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))) (-.f64 #s(literal 3 binary64) x))) #s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x))))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) (*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 3 binary64) x)))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (- 1 x) (*.f64 y #s(literal 3 binary64))))
#s(approx (/ (* (- 1 x) (- 3 x)) (* y 3)) #s(approx (* (- 1 x) (- 3 x)) (-.f64 #s(literal 3 binary64) x)))

soundness2.0ms (0.2%)

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

Compiled 252 to 39 computations (84.5% saved)

preprocess46.0ms (4%)

Memory
-1.0MiB live, 72.8MiB allocated
Compiler

Compiled 548 to 114 computations (79.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...