Examples.Basics.BasicTests:f1 from sbv-4.4

Time bar (total: 1.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 9 to 7 computations (22.2% saved)

sample814.0ms (60.5%)

Memory
33.7MiB live, 980.9MiB allocated; 204ms collecting garbage
Samples
506.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 227.0ms
ival-add: 119.0ms (52.4% of total)
ival-mult: 53.0ms (23.3% of total)
ival-sub: 50.0ms (22% of total)
ival-assert: 3.0ms (1.3% of total)
adjust: 2.0ms (0.9% of total)
Bogosity

explain58.0ms (4.3%)

Memory
-1.8MiB live, 97.1MiB allocated; 16ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-y
00-0-(*.f64 (+.f64 x y) (-.f64 x y))
00-0-(+.f64 x y)
00-0-(-.f64 x y)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
22.0ms512×0valid
Compiler

Compiled 41 to 19 computations (53.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-sub: 3.0ms (30.5% of total)
ival-add: 3.0ms (30.5% of total)
ival-mult: 3.0ms (30.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess128.0ms (9.5%)

Memory
15.7MiB live, 105.4MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01851
14145
210642
336742
460342
5113042
6205242
7301942
8332542
9340342
10340342
11358742
057
087
1137
2317
31027
42547
54407
68687
714047
820887
929047
1032147
1132767
1232767
1333547
033547
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (-.f64 x y))
Outputs
(*.f64 (+.f64 x y) (-.f64 x y))
(*.f64 (-.f64 x y) (+.f64 y x))
Symmetry

(abs x)

(abs y)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval6.0ms (0.5%)

Memory
0.1MiB live, 0.1MiB allocated; 10ms collecting garbage
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
-54.5MiB live, 0.8MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 x y) (-.f64 x y))
Compiler

Compiled 7 to 5 computations (28.6% saved)

series10.0ms (0.7%)

Memory
11.2MiB live, 11.2MiB allocated; 0ms collecting garbage
Counts
5 → 30
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (-.f64 x y))
(+.f64 x y)
x
y
(-.f64 x y)
Outputs
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ y (* -1 y))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ x (+ y (* -1 y)))))))
#s(approx (+ x y) #s(hole binary64 y))
#s(approx (+ x y) #s(hole binary64 (+ x y)))
#s(approx x #s(hole binary64 x))
#s(approx (- x y) #s(hole binary64 (* -1 y)))
#s(approx (- x y) #s(hole binary64 (- x y)))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (pow x 2)))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (/ y x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ (pow y 2) (pow x 2))) (/ y x)))))))
#s(approx (+ x y) #s(hole binary64 x))
#s(approx (+ x y) #s(hole binary64 (* x (+ 1 (/ y x)))))
#s(approx (- x y) #s(hole binary64 x))
#s(approx (- x y) #s(hole binary64 (* x (+ 1 (* -1 (/ y x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (* -1 (/ (+ (* -1 (+ y (* -1 y))) (/ (pow y 2) x)) x))))))
#s(approx (+ x y) #s(hole binary64 (* -1 (* x (- (* -1 (/ y x)) 1)))))
#s(approx (- x y) #s(hole binary64 (* -1 (* x (- (/ y x) 1)))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (* -1 x))) (pow x 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (+ (* -1 x) (* -1 y)))) (pow x 2))))
#s(approx y #s(hole binary64 y))
#s(approx (- x y) #s(hole binary64 (+ x (* -1 y))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (/ x y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (+ (/ x y) (/ (pow x 2) (pow y 2)))) 1))))
#s(approx (+ x y) #s(hole binary64 (* y (+ 1 (/ x y)))))
#s(approx (- x y) #s(hole binary64 (* y (- (/ x y) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (* -1 x)) y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (+ (* -1 x) (* -1 (/ (pow x 2) y)))) y)) 1))))
#s(approx (+ x y) #s(hole binary64 (* -1 (* y (- (* -1 (/ x y)) 1)))))
#s(approx (- x y) #s(hole binary64 (* -1 (* y (+ 1 (* -1 (/ x y)))))))
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((* (+ x y) (- x y)) (+ x y) x y (- x y))
1.0ms
x
@inf
((* (+ x y) (- x y)) (+ x y) x y (- x y))
1.0ms
y
@inf
((* (+ x y) (- x y)) (+ x y) x y (- x y))
1.0ms
y
@-inf
((* (+ x y) (- x y)) (+ x y) x y (- x y))
0.0ms
x
@0
((* (+ x y) (- x y)) (+ x y) x y (- x y))

rewrite86.0ms (6.4%)

Memory
27.4MiB live, 71.9MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0120475
0121428
0703419
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
35 → 42
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (-.f64 x y))
(+.f64 x y)
x
y
(-.f64 x y)
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ y (* -1 y))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ x (+ y (* -1 y)))))))
#s(approx (+ x y) #s(hole binary64 y))
#s(approx (+ x y) #s(hole binary64 (+ x y)))
#s(approx x #s(hole binary64 x))
#s(approx (- x y) #s(hole binary64 (* -1 y)))
#s(approx (- x y) #s(hole binary64 (- x y)))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (pow x 2)))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (/ y x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ (pow y 2) (pow x 2))) (/ y x)))))))
#s(approx (+ x y) #s(hole binary64 x))
#s(approx (+ x y) #s(hole binary64 (* x (+ 1 (/ y x)))))
#s(approx (- x y) #s(hole binary64 x))
#s(approx (- x y) #s(hole binary64 (* x (+ 1 (* -1 (/ y x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (* -1 (/ (+ (* -1 (+ y (* -1 y))) (/ (pow y 2) x)) x))))))
#s(approx (+ x y) #s(hole binary64 (* -1 (* x (- (* -1 (/ y x)) 1)))))
#s(approx (- x y) #s(hole binary64 (* -1 (* x (- (/ y x) 1)))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (* -1 x))) (pow x 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (+ (* -1 x) (* -1 y)))) (pow x 2))))
#s(approx y #s(hole binary64 y))
#s(approx (- x y) #s(hole binary64 (+ x (* -1 y))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (/ x y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (+ (/ x y) (/ (pow x 2) (pow y 2)))) 1))))
#s(approx (+ x y) #s(hole binary64 (* y (+ 1 (/ x y)))))
#s(approx (- x y) #s(hole binary64 (* y (- (/ x y) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (* -1 x)) y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (+ (* -1 x) (* -1 (/ (pow x 2) y)))) y)) 1))))
#s(approx (+ x y) #s(hole binary64 (* -1 (* y (- (* -1 (/ x y)) 1)))))
#s(approx (- x y) #s(hole binary64 (* -1 (* y (+ 1 (* -1 (/ x y)))))))
Outputs
(*.f64 (-.f64 x y) (+.f64 y x))
(*.f64 (+.f64 y x) (-.f64 x y))
(-.f64 (*.f64 x x) (*.f64 y y))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 x x (-.f64 (*.f64 y y) (*.f64 x y))))
(/.f64 (*.f64 (-.f64 x y) (+.f64 y x)) (-.f64 x y))
(+.f64 y x)
(+.f64 x y)
x
y
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 y #s(literal 3 binary64))) (fma.f64 x x (fma.f64 y y (*.f64 x y))))
(/.f64 (*.f64 (-.f64 x y) (+.f64 y x)) (+.f64 y x))
(-.f64 x y)
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
#s(approx (* (+ x y) (- x y)) (fma.f64 (*.f64 #s(literal 0 binary64) y) x (neg.f64 (*.f64 y y))))
#s(approx (* (+ x y) (- x y)) (fma.f64 (fma.f64 #s(literal 0 binary64) y x) x (neg.f64 (*.f64 y y))))
#s(approx (+ x y) y)
#s(approx (+ x y) (+.f64 y x))
#s(approx x x)
#s(approx (- x y) (neg.f64 y))
#s(approx (- x y) (-.f64 x y))
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
#s(approx (* (+ x y) (- x y)) (*.f64 (fma.f64 #s(literal 0 binary64) (/.f64 y x) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (*.f64 (+.f64 (fma.f64 (/.f64 y x) #s(literal -1 binary64) #s(literal 1 binary64)) (fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) #s(literal -1 binary64) (/.f64 y x))) (*.f64 x x)))
#s(approx (+ x y) x)
#s(approx (+ x y) (*.f64 (+.f64 (/.f64 y x) #s(literal 1 binary64)) x))
#s(approx (- x y) x)
#s(approx (- x y) (*.f64 (fma.f64 (/.f64 y x) #s(literal -1 binary64) #s(literal 1 binary64)) x))
#s(approx (* (+ x y) (- x y)) (*.f64 (fma.f64 (/.f64 (fma.f64 (*.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (/.f64 (*.f64 y y) x)) x) #s(literal -1 binary64) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (+ x y) (*.f64 (neg.f64 x) (-.f64 (/.f64 (neg.f64 y) x) #s(literal 1 binary64))))
#s(approx (- x y) (*.f64 (neg.f64 x) (-.f64 (/.f64 y x) #s(literal 1 binary64))))
#s(approx (* (+ x y) (- x y)) (fma.f64 (*.f64 #s(literal 0 binary64) x) y (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (fma.f64 (fma.f64 #s(literal 0 binary64) x (neg.f64 y)) y (*.f64 x x)))
#s(approx y y)
#s(approx (- x y) (fma.f64 #s(literal -1 binary64) y x))
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (*.f64 #s(literal 0 binary64) (/.f64 x y)) #s(literal 1 binary64)) (*.f64 y y)))
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (fma.f64 #s(literal 0 binary64) (/.f64 x y) (/.f64 (*.f64 x x) (*.f64 y y))) #s(literal 1 binary64)) (*.f64 y y)))
#s(approx (+ x y) (*.f64 (+.f64 (/.f64 x y) #s(literal 1 binary64)) y))
#s(approx (- x y) (*.f64 (-.f64 (/.f64 x y) #s(literal 1 binary64)) y))
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (neg.f64 (*.f64 #s(literal 0 binary64) (/.f64 x y))) #s(literal 1 binary64)) (*.f64 y y)))
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (neg.f64 (/.f64 (fma.f64 #s(literal 0 binary64) x (neg.f64 (/.f64 (*.f64 x x) y))) y)) #s(literal 1 binary64)) (*.f64 y y)))
#s(approx (+ x y) (*.f64 (neg.f64 y) (-.f64 (/.f64 (neg.f64 x) y) #s(literal 1 binary64))))
#s(approx (- x y) (*.f64 (neg.f64 y) (fma.f64 (/.f64 x y) #s(literal -1 binary64) #s(literal 1 binary64))))

eval5.0ms (0.3%)

Memory
7.6MiB live, 7.6MiB allocated; 0ms collecting garbage
Compiler

Compiled 637 to 148 computations (76.8% saved)

prune19.0ms (1.4%)

Memory
-40.1MiB live, 5.0MiB allocated; 3ms collecting garbage
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New44246
Fresh000
Picked011
Done000
Total44347
Accuracy
100.0%
Counts
47 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 x y) (-.f64 x y))
47.8%
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
57.9%
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
Compiler

Compiled 30 to 20 computations (33.3% saved)

series5.0ms (0.3%)

Memory
10.2MiB live, 10.2MiB allocated; 0ms collecting garbage
Counts
7 → 18
Calls
Call 1
Inputs
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
(neg.f64 (*.f64 y y))
(*.f64 y y)
y
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
(*.f64 x x)
x
Outputs
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ y (* -1 y))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ x (+ y (* -1 y)))))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (pow x 2)))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (/ y x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ (pow y 2) (pow x 2))) (/ y x)))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (* -1 (/ (+ (* -1 (+ y (* -1 y))) (/ (pow y 2) x)) x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (* -1 x))) (pow x 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (+ (* -1 x) (* -1 y)))) (pow x 2))))
#s(approx (neg (* y y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (* y y) #s(hole binary64 (pow y 2)))
#s(approx y #s(hole binary64 y))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (/ x y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (+ (/ x y) (/ (pow x 2) (pow y 2)))) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (* -1 x)) y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (+ (* -1 x) (* -1 (/ (pow x 2) y)))) y)) 1))))
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
((* (+ x y) (- x y)) (neg (* y y)) (* y y) y (* (+ x y) (- x y)) (* x x) x)
1.0ms
y
@-inf
((* (+ x y) (- x y)) (neg (* y y)) (* y y) y (* (+ x y) (- x y)) (* x x) x)
1.0ms
x
@-inf
((* (+ x y) (- x y)) (neg (* y y)) (* y y) y (* (+ x y) (- x y)) (* x x) x)
1.0ms
y
@inf
((* (+ x y) (- x y)) (neg (* y y)) (* y y) y (* (+ x y) (- x y)) (* x x) x)
1.0ms
x
@inf
((* (+ x y) (- x y)) (neg (* y y)) (* y y) y (* (+ x y) (- x y)) (* x x) x)

rewrite70.0ms (5.2%)

Memory
5.2MiB live, 48.0MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
092370
096332
0586323
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
25 → 39
Calls
Call 1
Inputs
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
(neg.f64 (*.f64 y y))
(*.f64 y y)
y
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
(*.f64 x x)
x
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ y (* -1 y))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* -1 (pow y 2)) (* x (+ x (+ y (* -1 y)))))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (pow x 2)))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (/ y x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (+ (* -1 (/ y x)) (+ (* -1 (/ (pow y 2) (pow x 2))) (/ y x)))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow x 2) (+ 1 (* -1 (/ (+ (* -1 (+ y (* -1 y))) (/ (pow y 2) x)) x))))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (* -1 x))) (pow x 2))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (+ (* y (+ x (+ (* -1 x) (* -1 y)))) (pow x 2))))
#s(approx (neg (* y y)) #s(hole binary64 (* -1 (pow y 2))))
#s(approx (* y y) #s(hole binary64 (pow y 2)))
#s(approx y #s(hole binary64 y))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (/ x y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (+ (* -1 (/ x y)) (+ (/ x y) (/ (pow x 2) (pow y 2)))) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (* -1 x)) y)) 1))))
#s(approx (* (+ x y) (- x y)) #s(hole binary64 (* (pow y 2) (- (* -1 (/ (+ x (+ (* -1 x) (* -1 (/ (pow x 2) y)))) y)) 1))))
Outputs
#s(approx (* (+ x y) (- x y)) (*.f64 (neg.f64 y) y))
(*.f64 (neg.f64 y) y)
(*.f64 (*.f64 y y) #s(literal -1 binary64))
(*.f64 #s(literal -1 binary64) (*.f64 y y))
(*.f64 y (neg.f64 y))
(neg.f64 (*.f64 y y))
(*.f64 (pow.f64 y #s(literal 1 binary64)) (pow.f64 y #s(literal 1 binary64)))
(*.f64 (fabs.f64 y) (fabs.f64 y))
(*.f64 (neg.f64 y) (neg.f64 y))
(*.f64 y y)
(pow.f64 y #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 y) #s(literal 2 binary64)))
y
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
x
#s(approx (* (+ x y) (- x y)) (*.f64 (neg.f64 y) y))
#s(approx (* (+ x y) (- x y)) (fma.f64 (neg.f64 y) y (*.f64 (*.f64 #s(literal 0 binary64) y) x)))
#s(approx (* (+ x y) (- x y)) (fma.f64 (neg.f64 y) y (*.f64 (fma.f64 #s(literal 0 binary64) y x) x)))
#s(approx (* x x) (*.f64 x x))
#s(approx x x)
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
#s(approx (* (+ x y) (- x y)) (*.f64 (fma.f64 #s(literal 0 binary64) (/.f64 y x) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (*.f64 (+.f64 (+.f64 #s(literal 1 binary64) (/.f64 (neg.f64 y) x)) (fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) #s(literal -1 binary64) (/.f64 y x))) (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (*.f64 (fma.f64 (/.f64 (fma.f64 (*.f64 #s(literal 0 binary64) y) #s(literal -1 binary64) (/.f64 (*.f64 y y) x)) x) #s(literal -1 binary64) #s(literal 1 binary64)) (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (fma.f64 (*.f64 #s(literal 0 binary64) x) y (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (fma.f64 (fma.f64 #s(literal 0 binary64) x (neg.f64 y)) y (*.f64 x x)))
#s(approx (neg (* y y)) (*.f64 (neg.f64 y) y))
#s(approx (* y y) (*.f64 y y))
#s(approx y y)
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (*.f64 #s(literal 0 binary64) (/.f64 x y)) #s(literal 1 binary64)) (*.f64 y y)))
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (fma.f64 #s(literal 0 binary64) (/.f64 x y) (/.f64 (*.f64 x x) (*.f64 y y))) #s(literal 1 binary64)) (*.f64 y y)))
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (neg.f64 (*.f64 #s(literal 0 binary64) (/.f64 x y))) #s(literal 1 binary64)) (*.f64 y y)))
#s(approx (* (+ x y) (- x y)) (*.f64 (-.f64 (neg.f64 (/.f64 (fma.f64 #s(literal 0 binary64) x (neg.f64 (/.f64 (*.f64 x x) y))) y)) #s(literal 1 binary64)) (*.f64 y y)))

eval4.0ms (0.3%)

Memory
6.1MiB live, 6.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 627 to 132 computations (78.9% saved)

prune4.0ms (0.3%)

Memory
5.6MiB live, 5.6MiB allocated; 0ms collecting garbage
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New41041
Fresh000
Picked022
Done011
Total41344
Accuracy
100.0%
Counts
44 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 x y) (-.f64 x y))
47.8%
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
57.9%
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
Compiler

Compiled 60 to 33 computations (45% saved)

regimes5.0ms (0.4%)

Memory
9.6MiB live, 9.6MiB allocated; 0ms collecting garbage
Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
(*.f64 (+.f64 x y) (-.f64 x y))
Outputs
(*.f64 (+.f64 x y) (-.f64 x y))
Calls

3 calls:

2.0ms
y
2.0ms
x
1.0ms
(*.f64 (+.f64 x y) (-.f64 x y))
Results
AccuracySegmentsBranch
100.0%1(*.f64 (+.f64 x y) (-.f64 x y))
100.0%1x
100.0%1y
Compiler

Compiled 9 to 9 computations (0% saved)

regimes4.0ms (0.3%)

Memory
7.9MiB live, 7.9MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
Outputs
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
Calls

3 calls:

1.0ms
y
1.0ms
x
1.0ms
(*.f64 (+.f64 x y) (-.f64 x y))
Results
AccuracySegmentsBranch
99.4%2(*.f64 (+.f64 x y) (-.f64 x y))
80.8%2x
80.1%2y
Compiler

Compiled 9 to 9 computations (0% saved)

regimes3.0ms (0.2%)

Memory
7.6MiB live, 7.6MiB allocated; 0ms collecting garbage
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
Outputs
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
Calls

3 calls:

1.0ms
x
1.0ms
y
1.0ms
(*.f64 (+.f64 x y) (-.f64 x y))
Results
AccuracySegmentsBranch
47.8%1y
47.8%1x
47.8%1(*.f64 (+.f64 x y) (-.f64 x y))
Compiler

Compiled 9 to 9 computations (0% saved)

bsearch7.0ms (0.5%)

Memory
-65.9MiB live, 0.9MiB allocated; 14ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-1.2e-322
0.0
Compiler

Compiled 10 to 10 computations (0% saved)

simplify81.0ms (6%)

Memory
19.4MiB live, 65.1MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01651
13051
25151
312351
427551
546151
688751
7142551
8210951
9294151
10325151
11331351
12331351
13339151
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (-.f64 x y))
(if (<=.f64 (*.f64 (+.f64 x y) (-.f64 x y)) #s(literal -5/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696 binary64)) #s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y))) #s(approx (* (+ x y) (- x y)) (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
Outputs
(*.f64 (+.f64 x y) (-.f64 x y))
(if (<=.f64 (*.f64 (+.f64 x y) (-.f64 x y)) #s(literal -5/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696 binary64)) #s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y))) #s(approx (* (+ x y) (- x y)) (*.f64 x x)))
(if (<=.f64 (*.f64 (+.f64 x y) (-.f64 x y)) #s(literal -5/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696 binary64)) #s(approx (* (+ x y) (- x y)) (*.f64 (neg.f64 y) y)) #s(approx (* (+ x y) (- x y)) (*.f64 x x)))
#s(approx (* (+ x y) (- x y)) (*.f64 x x))

derivations6.0ms (0.4%)

Memory
9.5MiB live, 9.5MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 51 to 16 computations (68.6% saved)

preprocess30.0ms (2.2%)

Memory
15.4MiB live, 59.1MiB allocated; 3ms collecting garbage
Remove

(abs y)

(abs x)

Compiler

Compiled 172 to 82 computations (52.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...