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.6MiB live, 0.6MiB 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)

sample759.0ms (57.7%)

Memory
32.9MiB live, 819.1MiB allocated; 284ms collecting garbage
Samples
455.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 232.0ms
ival-mult: 89.0ms (38.3% of total)
ival-add: 76.0ms (32.7% of total)
ival-sub: 63.0ms (27.1% of total)
ival-assert: 3.0ms (1.3% of total)
adjust: 2.0ms (0.9% of total)
Bogosity

explain63.0ms (4.8%)

Memory
39.8MiB live, 85.5MiB allocated; 10ms 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 (31% of total)
ival-add: 3.0ms (31% of total)
ival-mult: 3.0ms (31% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess130.0ms (9.9%)

Memory
-6.5MiB live, 141.0MiB allocated; 23ms 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)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB 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)

series29.0ms (2.2%)

Memory
-26.5MiB live, 19.7MiB allocated; 7ms 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
23.0ms
x
@-inf
((* (+ x y) (- x y)) (+ x y) x y (- x y))
4.0ms
y
@0
((* (+ 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))

rewrite84.0ms (6.4%)

Memory
6.4MiB live, 53.1MiB allocated; 3ms 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
6.1MiB live, 6.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 637 to 148 computations (76.8% saved)

prune2.0ms (0.2%)

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

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New44246
Fresh000
Picked101
Done000
Total45247
Accuracy
100.0%
Counts
47 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.7%
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
52.1%
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
Compiler

Compiled 23 to 15 computations (34.8% saved)

series4.0ms (0.3%)

Memory
3.6MiB live, 3.6MiB 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
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)
0.0ms
x
@0
((* (+ x y) (- x y)) (neg (* y y)) (* y y) y (* (+ x y) (- x y)) (* x x) x)

rewrite77.0ms (5.9%)

Memory
-11.4MiB live, 34.4MiB allocated; 4ms 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
7.6MiB live, 7.6MiB allocated; 0ms collecting garbage
Compiler

Compiled 627 to 132 computations (78.9% saved)

prune3.0ms (0.3%)

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

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New41041
Fresh000
Picked022
Done000
Total41243
Accuracy
100.0%
Counts
43 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.7%
#s(approx (* (+ x y) (- x y)) (*.f64 x x))
52.1%
#s(approx (* (+ x y) (- x y)) (neg.f64 (*.f64 y y)))
Compiler

Compiled 53 to 28 computations (47.2% saved)

regimes5.0ms (0.4%)

Memory
9.8MiB live, 9.8MiB 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)

regimes33.0ms (2.5%)

Memory
-55.2MiB live, 9.8MiB allocated; 26ms 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:

30.0ms
x
1.0ms
y
1.0ms
(*.f64 (+.f64 x y) (-.f64 x y))
Results
AccuracySegmentsBranch
100.0%2(*.f64 (+.f64 x y) (-.f64 x y))
79.5%2x
78.4%2y
Compiler

Compiled 9 to 9 computations (0% saved)

regimes4.0ms (0.3%)

Memory
5.9MiB live, 5.9MiB 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
55.7%1y
55.7%1x
55.7%1(*.f64 (+.f64 x y) (-.f64 x y))
Compiler

Compiled 9 to 9 computations (0% saved)

bsearch0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-2.7644137375205873e-295
-0.0
Compiler

Compiled 10 to 10 computations (0% saved)

simplify72.0ms (5.4%)

Memory
1.3MiB live, 44.6MiB allocated; 7ms 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 -4602094425247529/23010472126237643618935106442099516590310105330461524130999050388189782503104123280986685097268164610703374576623538349780325090408245327679084471121852687920354290358382782115366684108959500047289994617866880738411283287339835248828660878149225886356908865367627046174713247480125403687018925610191900689563648 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 -4602094425247529/23010472126237643618935106442099516590310105330461524130999050388189782503104123280986685097268164610703374576623538349780325090408245327679084471121852687920354290358382782115366684108959500047289994617866880738411283287339835248828660878149225886356908865367627046174713247480125403687018925610191900689563648 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 -4602094425247529/23010472126237643618935106442099516590310105330461524130999050388189782503104123280986685097268164610703374576623538349780325090408245327679084471121852687920354290358382782115366684108959500047289994617866880738411283287339835248828660878149225886356908865367627046174713247480125403687018925610191900689563648 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))

derivations4.0ms (0.3%)

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

Compiled 51 to 16 computations (68.6% saved)

preprocess37.0ms (2.8%)

Memory
-7.0MiB live, 38.7MiB allocated; 4ms 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...