Graphics.Rendering.Chart.Drawing:drawTextsR from Chart-1.5.3

Time bar (total: 6.4s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.7MiB live, 0.7MiB 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 11 to 10 computations (9.1% saved)

sample4.3s (66.7%)

Memory
-164.3MiB live, 2 022.5MiB allocated; 3.7s collecting garbage
Samples
3.2s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 3.0s
ival-mult: 2.5s (83.8% of total)
ival-sub: 346.0ms (11.5% of total)
ival-add: 125.0ms (4.2% of total)
ival-true: 6.0ms (0.2% of total)
exact: 5.0ms (0.2% of total)
ival-assert: 3.0ms (0.1% of total)
adjust: 2.0ms (0.1% of total)
Bogosity

explain89.0ms (1.4%)

Memory
20.6MiB live, 121.4MiB allocated; 10ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
100-0-(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
00-0-(*.f64 (-.f64 x #s(literal 1 binary64)) z)
00-0-y
00-0-(-.f64 x #s(literal 1 binary64))
00-0-#s(literal 1 binary64)
00-0-z
00-0-(*.f64 x y)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))nan-rescue100
(*.f64 x y)overflow44
(*.f64 (-.f64 x #s(literal 1 binary64)) z)overflow35
Confusion
Predicted +Predicted -
+100
-0246
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+1000
-00246
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0246
110
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
28.0ms512×0valid
Compiler

Compiled 61 to 28 computations (54.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 7.0ms (55.6% of total)
ival-sub: 3.0ms (23.8% of total)
ival-add: 2.0ms (15.9% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess334.0ms (5.2%)

Memory
9.2MiB live, 282.9MiB allocated; 38ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03290
18084
216883
330283
436983
566583
6418082
7746082
089
0129
1209
2379
3669
41179
52949
620189
754499
086168
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
Outputs
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
(fma.f64 z (-.f64 x #s(literal 1 binary64)) (*.f64 y x))
Compiler

Compiled 9 to 8 computations (11.1% saved)

eval0.0ms (0%)

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

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
96.1%
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
Compiler

Compiled 9 to 8 computations (11.1% saved)

series32.0ms (0.5%)

Memory
-11.0MiB live, 47.9MiB allocated; 5ms collecting garbage
Counts
8 → 24
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
(*.f64 x y)
x
y
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(-.f64 x #s(literal 1 binary64))
#s(literal 1 binary64)
z
Outputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
(* x y)
x
(+ (* -1 z) (* x z))
-1
(- x 1)
(* x (+ y z))
(* x (+ y (+ z (* -1 (/ z x)))))
(* x z)
(* x (+ z (* -1 (/ z x))))
(* x (- 1 (/ 1 x)))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* -1 (* x (+ (* -1 z) (/ z x))))
(* -1 (* x (- (/ 1 x) 1)))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
y
(* y (+ x (/ (* z (- x 1)) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
z
(* z (- (+ x (/ (* x y) z)) 1))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
24.0ms
y
@0
((+ (* x y) (* (- x 1) z)) (* x y) x y (* (- x 1) z) (- x 1) 1 z)
1.0ms
x
@-inf
((+ (* x y) (* (- x 1) z)) (* x y) x y (* (- x 1) z) (- x 1) 1 z)
1.0ms
y
@-inf
((+ (* x y) (* (- x 1) z)) (* x y) x y (* (- x 1) z) (- x 1) 1 z)
1.0ms
x
@inf
((+ (* x y) (* (- x 1) z)) (* x y) x y (* (- x 1) z) (- x 1) 1 z)
1.0ms
z
@-inf
((+ (* x y) (* (- x 1) z)) (* x y) x y (* (- x 1) z) (- x 1) 1 z)

simplify247.0ms (3.9%)

Memory
-32.4MiB live, 174.8MiB allocated; 114ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
054115
1192107
2608107
31885107
45714107
08030107
Stop Event
iter limit
node limit
Counts
24 → 21
Calls
Call 1
Inputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
(* x y)
x
(+ (* -1 z) (* x z))
-1
(- x 1)
(* x (+ y z))
(* x (+ y (+ z (* -1 (/ z x)))))
(* x z)
(* x (+ z (* -1 (/ z x))))
(* x (- 1 (/ 1 x)))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* -1 (* x (+ (* -1 z) (/ z x))))
(* -1 (* x (- (/ 1 x) 1)))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
y
(* y (+ x (/ (* z (- x 1)) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
z
(* z (- (+ x (/ (* x y) z)) 1))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
Outputs
(* -1 z)
(neg.f64 z)
(+ (* -1 z) (* x (+ y z)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* x y)
(*.f64 y x)
x
(+ (* -1 z) (* x z))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
-1
#s(literal -1 binary64)
(- x 1)
(-.f64 x #s(literal 1 binary64))
(* x (+ y z))
(*.f64 (+.f64 z y) x)
(* x (+ y (+ z (* -1 (/ z x)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* x z)
(*.f64 z x)
(* x (+ z (* -1 (/ z x))))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(* x (- 1 (/ 1 x)))
(-.f64 x #s(literal 1 binary64))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(*.f64 (+.f64 z y) x)
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* x (+ (* -1 z) (/ z x))))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(* -1 (* x (- (/ 1 x) 1)))
(-.f64 x #s(literal 1 binary64))
(* z (- x 1))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(+ (* x y) (* z (- x 1)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
y
(* y (+ x (/ (* z (- x 1)) y)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
z
(* z (- (+ x (/ (* x y) z)) 1))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))

rewrite64.0ms (1%)

Memory
3.1MiB live, 98.4MiB allocated; 23ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0824
01224
14624
034823
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
8 → 42
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
(*.f64 x y)
x
y
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(-.f64 x #s(literal 1 binary64))
#s(literal 1 binary64)
z
Outputs
(/.f64 (-.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 y x)))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (pow.f64 (neg.f64 (*.f64 z (-.f64 x #s(literal 1 binary64)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 y x) (neg.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y x) (*.f64 z (-.f64 x #s(literal 1 binary64))))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (-.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 2 binary64))) (-.f64 (*.f64 y x) (*.f64 z (-.f64 x #s(literal 1 binary64)))))
(/.f64 (+.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 y x) z) (-.f64 x #s(literal 1 binary64))))))
(/.f64 (+.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (fma.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (-.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))
(fma.f64 z (-.f64 x #s(literal 1 binary64)) (*.f64 y x))
(fma.f64 (-.f64 x #s(literal 1 binary64)) z (*.f64 y x))
(fma.f64 y x (*.f64 (neg.f64 (neg.f64 (-.f64 x #s(literal 1 binary64)))) z))
(fma.f64 y x (*.f64 z (-.f64 x #s(literal 1 binary64))))
(fma.f64 x y (*.f64 (neg.f64 (neg.f64 (-.f64 x #s(literal 1 binary64)))) z))
(fma.f64 x y (*.f64 z (-.f64 x #s(literal 1 binary64))))
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 y x) (*.f64 z (-.f64 x #s(literal 1 binary64))))) (/.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 2 binary64)) (-.f64 (*.f64 y x) (*.f64 z (-.f64 x #s(literal 1 binary64))))))
(-.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 (neg.f64 y) x))
(-.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 (neg.f64 x) y))
(-.f64 (*.f64 y x) (*.f64 (neg.f64 z) (-.f64 x #s(literal 1 binary64))))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 z (-.f64 x #s(literal 1 binary64)))))
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (-.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) #s(literal 3 binary64)) (fma.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (-.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(+.f64 (*.f64 z (-.f64 x #s(literal 1 binary64))) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 (neg.f64 (-.f64 x #s(literal 1 binary64)))) z))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x #s(literal 1 binary64))))
(*.f64 y x)
(*.f64 x y)
x
y
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) z) (-.f64 x #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64)) z) (fma.f64 x x (-.f64 x #s(literal -1 binary64))))
(/.f64 (*.f64 z (fma.f64 x x #s(literal -1 binary64))) (-.f64 x #s(literal -1 binary64)))
(/.f64 (*.f64 z (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))) (fma.f64 x x (-.f64 x #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 x x #s(literal -1 binary64))) (neg.f64 (-.f64 x #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 x x (-.f64 x #s(literal -1 binary64)))))
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (-.f64 x #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 x x (-.f64 x #s(literal -1 binary64))))
(-.f64 (/.f64 (*.f64 x x) (-.f64 x #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal -1 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (-.f64 x #s(literal -1 binary64)))) (/.f64 #s(literal 1 binary64) (fma.f64 x x (-.f64 x #s(literal -1 binary64)))))
(-.f64 x #s(literal 1 binary64))
(+.f64 x #s(literal -1 binary64))
#s(literal 1 binary64)
z

eval5.0ms (0.1%)

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

Compiled 825 to 146 computations (82.3% saved)

prune3.0ms (0.1%)

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

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New47552
Fresh000
Picked101
Done000
Total48553
Accuracy
100.0%
Counts
53 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
65.5%
(+.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))
100.0%
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
59.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
69.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
32.9%
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
Compiler

Compiled 144 to 110 computations (23.6% saved)

series25.0ms (0.4%)

Memory
-22.0MiB live, 23.8MiB allocated; 6ms collecting garbage
Counts
18 → 42
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(+.f64 z y)
z
y
x
(neg.f64 z)
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
(*.f64 (+.f64 z y) x)
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(-.f64 x #s(literal 1 binary64))
#s(literal 1 binary64)
(+.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))
(*.f64 x y)
#s(approx (* (- x 1) z) (*.f64 z x))
(*.f64 z x)
Outputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
(- (* x (+ y z)) z)
x
(* x (+ y z))
(+ (* -1 z) (* x z))
-1
(- x 1)
(* x y)
(* x z)
(* x (+ y (+ z (* -1 (/ z x)))))
(* x (+ z (* -1 (/ z x))))
(* x (- 1 (/ 1 x)))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* -1 (* x (+ (* -1 (+ y z)) (/ z x))))
(* -1 (* x (+ (* -1 z) (/ z x))))
(* -1 (* x (- (/ 1 x) 1)))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
(- (* x z) z)
(- (+ (* x y) (* x z)) z)
z
(+ y z)
y
(+ (* x y) (* x z))
(* y (+ x (/ (* z (- x 1)) y)))
(* y (- (+ x (/ (* x z) y)) (/ z y)))
(* y (+ 1 (/ z y)))
(* y (+ x (/ (* x z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* x z) z) y)))))
(* -1 (* y (- (* -1 (/ z y)) 1)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* x z) y)))))
(* z (- (+ x (/ (* x y) z)) 1))
(* z (+ 1 (/ y z)))
(* z (+ x (/ (* x y) z)))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
(* -1 (* z (+ 1 (* -1 x))))
(* -1 (* z (+ 1 (+ (* -1 x) (* -1 (/ (* x y) z))))))
(* -1 (* z (- (* -1 (/ y z)) 1)))
(* -1 (* z (+ (* -1 x) (* -1 (/ (* x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
15.0ms
x
@inf
((+ (* x y) (* (- x 1) z)) (+ (* (+ z y) x) (neg z)) (+ z y) z y x (neg z) (+ (* x y) (* (- x 1) z)) (+ (* x y) (* (- x 1) z)) (* (+ z y) x) (+ (* x y) (* (- x 1) z)) (* (- x 1) z) (- x 1) 1 (+ (* x y) (* (- x 1) z)) (* x y) (* (- x 1) z) (* z x))
2.0ms
y
@-inf
((+ (* x y) (* (- x 1) z)) (+ (* (+ z y) x) (neg z)) (+ z y) z y x (neg z) (+ (* x y) (* (- x 1) z)) (+ (* x y) (* (- x 1) z)) (* (+ z y) x) (+ (* x y) (* (- x 1) z)) (* (- x 1) z) (- x 1) 1 (+ (* x y) (* (- x 1) z)) (* x y) (* (- x 1) z) (* z x))
2.0ms
x
@-inf
((+ (* x y) (* (- x 1) z)) (+ (* (+ z y) x) (neg z)) (+ z y) z y x (neg z) (+ (* x y) (* (- x 1) z)) (+ (* x y) (* (- x 1) z)) (* (+ z y) x) (+ (* x y) (* (- x 1) z)) (* (- x 1) z) (- x 1) 1 (+ (* x y) (* (- x 1) z)) (* x y) (* (- x 1) z) (* z x))
1.0ms
z
@-inf
((+ (* x y) (* (- x 1) z)) (+ (* (+ z y) x) (neg z)) (+ z y) z y x (neg z) (+ (* x y) (* (- x 1) z)) (+ (* x y) (* (- x 1) z)) (* (+ z y) x) (+ (* x y) (* (- x 1) z)) (* (- x 1) z) (- x 1) 1 (+ (* x y) (* (- x 1) z)) (* x y) (* (- x 1) z) (* z x))
1.0ms
x
@0
((+ (* x y) (* (- x 1) z)) (+ (* (+ z y) x) (neg z)) (+ z y) z y x (neg z) (+ (* x y) (* (- x 1) z)) (+ (* x y) (* (- x 1) z)) (* (+ z y) x) (+ (* x y) (* (- x 1) z)) (* (- x 1) z) (- x 1) 1 (+ (* x y) (* (- x 1) z)) (* x y) (* (- x 1) z) (* z x))

simplify149.0ms (2.3%)

Memory
9.3MiB live, 193.5MiB allocated; 36ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0100221
1359207
21152207
33542207
45933207
08312205
Stop Event
iter limit
node limit
Counts
42 → 39
Calls
Call 1
Inputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
(- (* x (+ y z)) z)
x
(* x (+ y z))
(+ (* -1 z) (* x z))
-1
(- x 1)
(* x y)
(* x z)
(* x (+ y (+ z (* -1 (/ z x)))))
(* x (+ z (* -1 (/ z x))))
(* x (- 1 (/ 1 x)))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* -1 (* x (+ (* -1 (+ y z)) (/ z x))))
(* -1 (* x (+ (* -1 z) (/ z x))))
(* -1 (* x (- (/ 1 x) 1)))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
(- (* x z) z)
(- (+ (* x y) (* x z)) z)
z
(+ y z)
y
(+ (* x y) (* x z))
(* y (+ x (/ (* z (- x 1)) y)))
(* y (- (+ x (/ (* x z) y)) (/ z y)))
(* y (+ 1 (/ z y)))
(* y (+ x (/ (* x z) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* x z) z) y)))))
(* -1 (* y (- (* -1 (/ z y)) 1)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* x z) y)))))
(* z (- (+ x (/ (* x y) z)) 1))
(* z (+ 1 (/ y z)))
(* z (+ x (/ (* x y) z)))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
(* -1 (* z (+ 1 (* -1 x))))
(* -1 (* z (+ 1 (+ (* -1 x) (* -1 (/ (* x y) z))))))
(* -1 (* z (- (* -1 (/ y z)) 1)))
(* -1 (* z (+ (* -1 x) (* -1 (/ (* x y) z)))))
Outputs
(* -1 z)
(neg.f64 z)
(+ (* -1 z) (* x (+ y z)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(- (* x (+ y z)) z)
(fma.f64 (+.f64 z y) x (neg.f64 z))
x
(* x (+ y z))
(*.f64 (+.f64 z y) x)
(+ (* -1 z) (* x z))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
-1
#s(literal -1 binary64)
(- x 1)
(-.f64 x #s(literal 1 binary64))
(* x y)
(*.f64 y x)
(* x z)
(*.f64 z x)
(* x (+ y (+ z (* -1 (/ z x)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* x (+ z (* -1 (/ z x))))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(* x (- 1 (/ 1 x)))
(fma.f64 (/.f64 #s(literal -1 binary64) x) x x)
(* -1 (* x (+ (* -1 y) (* -1 z))))
(*.f64 (+.f64 z y) x)
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* x (+ (* -1 (+ y z)) (/ z x))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* x (+ (* -1 z) (/ z x))))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(* -1 (* x (- (/ 1 x) 1)))
(fma.f64 (/.f64 #s(literal -1 binary64) x) x x)
(* z (- x 1))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(+ (* x y) (* z (- x 1)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(- (* x z) z)
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(- (+ (* x y) (* x z)) z)
(fma.f64 (+.f64 z y) x (neg.f64 z))
z
(+ y z)
(+.f64 z y)
y
(+ (* x y) (* x z))
(*.f64 (+.f64 z y) x)
(* y (+ x (/ (* z (- x 1)) y)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* y (- (+ x (/ (* x z) y)) (/ z y)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* y (+ 1 (/ z y)))
(+.f64 z y)
(* y (+ x (/ (* x z) y)))
(*.f64 (+.f64 z y) x)
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* y (+ (* -1 x) (* -1 (/ (- (* x z) z) y)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* y (- (* -1 (/ z y)) 1)))
(+.f64 z y)
(* -1 (* y (+ (* -1 x) (* -1 (/ (* x z) y)))))
(*.f64 (+.f64 z y) x)
(* z (- (+ x (/ (* x y) z)) 1))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* z (+ 1 (/ y z)))
(+.f64 z y)
(* z (+ x (/ (* x y) z)))
(*.f64 (+.f64 z y) x)
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* z (+ 1 (* -1 x))))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(* -1 (* z (+ 1 (+ (* -1 x) (* -1 (/ (* x y) z))))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* z (- (* -1 (/ y z)) 1)))
(+.f64 z y)
(* -1 (* z (+ (* -1 x) (* -1 (/ (* x y) z)))))
(*.f64 (+.f64 z y) x)

rewrite78.0ms (1.2%)

Memory
8.0MiB live, 68.2MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022116
031116
1104116
0741111
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
18 → 78
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(+.f64 z y)
z
y
x
(neg.f64 z)
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
(*.f64 (+.f64 z y) x)
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(-.f64 x #s(literal 1 binary64))
#s(literal 1 binary64)
(+.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))
(*.f64 x y)
#s(approx (* (- x 1) z) (*.f64 z x))
(*.f64 z x)
Outputs
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
(/.f64 (-.f64 (*.f64 z z) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64))) (-.f64 (neg.f64 z) (*.f64 (+.f64 z y) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64)) (*.f64 z z))) (neg.f64 (-.f64 (*.f64 (+.f64 z y) x) (neg.f64 z))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (neg.f64 z) #s(literal 3 binary64)) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (neg.f64 z) (-.f64 (neg.f64 z) (*.f64 (+.f64 z y) x)) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64)) (*.f64 z z)) (-.f64 (*.f64 (+.f64 z y) x) (neg.f64 z)))
(/.f64 (+.f64 (pow.f64 (neg.f64 z) #s(literal 3 binary64)) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 3 binary64))) (fma.f64 z z (-.f64 (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64)) (*.f64 (*.f64 (+.f64 z y) x) (neg.f64 z)))))
(/.f64 (+.f64 (pow.f64 (neg.f64 z) #s(literal 3 binary64)) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 3 binary64))) (fma.f64 (neg.f64 z) (-.f64 (neg.f64 z) (*.f64 (+.f64 z y) x)) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(fma.f64 x (+.f64 z y) (neg.f64 z))
(-.f64 (/.f64 (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64)) (-.f64 (*.f64 (+.f64 z y) x) (neg.f64 z))) (/.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 z y) x) (neg.f64 z))))
(-.f64 (neg.f64 z) (*.f64 (neg.f64 (+.f64 z y)) x))
(-.f64 (neg.f64 z) (*.f64 (neg.f64 x) (+.f64 z y)))
(+.f64 (/.f64 (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 3 binary64)) (fma.f64 (neg.f64 z) (-.f64 (neg.f64 z) (*.f64 (+.f64 z y) x)) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64)))) (/.f64 (pow.f64 (neg.f64 z) #s(literal 3 binary64)) (fma.f64 (neg.f64 z) (-.f64 (neg.f64 z) (*.f64 (+.f64 z y) x)) (pow.f64 (*.f64 (+.f64 z y) x) #s(literal 2 binary64)))))
(+.f64 (*.f64 (+.f64 z y) x) (neg.f64 z))
(+.f64 (neg.f64 z) (*.f64 (+.f64 z y) x))
(/.f64 (-.f64 (*.f64 y y) (*.f64 z z)) (-.f64 y z))
(/.f64 (neg.f64 (*.f64 (+.f64 z y) (-.f64 z y))) (neg.f64 (-.f64 z y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (neg.f64 (fma.f64 y (-.f64 y z) (*.f64 z z))))
(/.f64 (*.f64 (+.f64 z y) (-.f64 z y)) (-.f64 z y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 y y (-.f64 (*.f64 z z) (*.f64 z y))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) (fma.f64 y (-.f64 y z) (*.f64 z z)))
(-.f64 (/.f64 (*.f64 z z) (-.f64 z y)) (/.f64 (*.f64 y y) (-.f64 z y)))
(+.f64 (/.f64 (pow.f64 z #s(literal 3 binary64)) (fma.f64 y (-.f64 y z) (*.f64 z z))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y z) (*.f64 z z))))
(+.f64 z y)
(+.f64 y z)
z
y
x
(neg.f64 z)
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
(*.f64 (+.f64 z y) x)
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (*.f64 (+.f64 z y) (-.f64 z y)) x) (-.f64 z y))
(/.f64 (*.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64))) x) (fma.f64 y (-.f64 y z) (*.f64 z z)))
(/.f64 (*.f64 x (*.f64 (+.f64 z y) (-.f64 z y))) (-.f64 z y))
(/.f64 (*.f64 x (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 z #s(literal 3 binary64)))) (fma.f64 y (-.f64 y z) (*.f64 z z)))
(fma.f64 z x (*.f64 y x))
(fma.f64 y x (*.f64 z x))
(fma.f64 x z (*.f64 y x))
(fma.f64 x y (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 z x))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
(*.f64 (-.f64 x #s(literal 1 binary64)) z)
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(/.f64 (*.f64 (fma.f64 x x #s(literal -1 binary64)) z) (-.f64 x #s(literal -1 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64)) z) (fma.f64 x x (-.f64 x #s(literal -1 binary64))))
(/.f64 (*.f64 z (fma.f64 x x #s(literal -1 binary64))) (-.f64 x #s(literal -1 binary64)))
(/.f64 (*.f64 z (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))) (fma.f64 x x (-.f64 x #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 x x #s(literal -1 binary64))) (neg.f64 (-.f64 x #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 x x (-.f64 x #s(literal -1 binary64)))))
(/.f64 (fma.f64 x x #s(literal -1 binary64)) (-.f64 x #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 x x (-.f64 x #s(literal -1 binary64))))
(-.f64 (/.f64 (*.f64 x x) (-.f64 x #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal -1 binary64))))
(-.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x (-.f64 x #s(literal -1 binary64)))) (/.f64 #s(literal 1 binary64) (fma.f64 x x (-.f64 x #s(literal -1 binary64)))))
(-.f64 x #s(literal 1 binary64))
(+.f64 x #s(literal -1 binary64))
#s(literal 1 binary64)
(/.f64 (-.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 y x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y x) #s(approx (* (- x 1) z) (*.f64 z x)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64))) (-.f64 (*.f64 y x) #s(approx (* (- x 1) z) (*.f64 z x))))
(/.f64 (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (*.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 y x)))))
(/.f64 (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (pow.f64 (*.f64 y x) #s(literal 3 binary64))) (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64))))
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
(fma.f64 x y #s(approx (* (- x 1) z) (*.f64 z x)))
(-.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 2 binary64)) (-.f64 (*.f64 y x) #s(approx (* (- x 1) z) (*.f64 z x)))) (/.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)) (-.f64 (*.f64 y x) #s(approx (* (- x 1) z) (*.f64 z x)))))
(-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 (neg.f64 y) x))
(-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 (neg.f64 x) y))
(+.f64 (/.f64 (pow.f64 (*.f64 y x) #s(literal 3 binary64)) (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))) (/.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 y x)) (pow.f64 (*.f64 y x) #s(literal 2 binary64)))))
(+.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 y x))
(+.f64 (*.f64 y x) #s(approx (* (- x 1) z) (*.f64 z x)))
(*.f64 y x)
(*.f64 x y)
#s(approx (* (- x 1) z) (*.f64 z x))
(*.f64 z x)
(*.f64 x z)

eval28.0ms (0.4%)

Memory
-17.9MiB live, 27.8MiB allocated; 5ms collecting garbage
Compiler

Compiled 2 527 to 293 computations (88.4% saved)

prune7.0ms (0.1%)

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

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New1111112
Fresh000
Picked145
Done000
Total1125117
Accuracy
100.0%
Counts
117 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.1%
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
100.0%
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
59.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
69.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
32.9%
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
Compiler

Compiled 71 to 54 computations (23.9% saved)

series32.0ms (0.5%)

Memory
-34.0MiB live, 10.4MiB allocated; 6ms collecting garbage
Counts
6 → 20
Calls
Call 1
Inputs
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
y
x
#s(approx (* (- x 1) z) (*.f64 z x))
(*.f64 z x)
z
Outputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
x
(+ (* -1 z) (* x z))
(* x z)
(* x (+ y z))
(* x (+ y (+ z (* -1 (/ z x)))))
(* x (+ z (* -1 (/ z x))))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* -1 (* x (+ (* -1 z) (/ z x))))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
y
(* x y)
(* y (+ x (/ (* z (- x 1)) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
z
(* z (- (+ x (/ (* x y) z)) 1))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
Calls

9 calls:

TimeVariablePointExpression
28.0ms
z
@-inf
((+ (* y x) (* (- x 1) z)) y x (* (- x 1) z) (* z x) z)
1.0ms
x
@-inf
((+ (* y x) (* (- x 1) z)) y x (* (- x 1) z) (* z x) z)
1.0ms
z
@inf
((+ (* y x) (* (- x 1) z)) y x (* (- x 1) z) (* z x) z)
1.0ms
x
@inf
((+ (* y x) (* (- x 1) z)) y x (* (- x 1) z) (* z x) z)
0.0ms
y
@-inf
((+ (* y x) (* (- x 1) z)) y x (* (- x 1) z) (* z x) z)

simplify138.0ms (2.2%)

Memory
18.5MiB live, 245.1MiB allocated; 39ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048105
118197
258797
3183997
4559097
0810797
Stop Event
iter limit
node limit
Counts
20 → 17
Calls
Call 1
Inputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
x
(+ (* -1 z) (* x z))
(* x z)
(* x (+ y z))
(* x (+ y (+ z (* -1 (/ z x)))))
(* x (+ z (* -1 (/ z x))))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* -1 (* x (+ (* -1 z) (/ z x))))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
y
(* x y)
(* y (+ x (/ (* z (- x 1)) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
z
(* z (- (+ x (/ (* x y) z)) 1))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
Outputs
(* -1 z)
(neg.f64 z)
(+ (* -1 z) (* x (+ y z)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
x
(+ (* -1 z) (* x z))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(* x z)
(*.f64 z x)
(* x (+ y z))
(*.f64 (+.f64 z y) x)
(* x (+ y (+ z (* -1 (/ z x)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* x (+ z (* -1 (/ z x))))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(*.f64 (+.f64 z y) x)
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* x (+ (* -1 z) (/ z x))))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(* z (- x 1))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(+ (* x y) (* z (- x 1)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
y
(* x y)
(*.f64 x y)
(* y (+ x (/ (* z (- x 1)) y)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
z
(* z (- (+ x (/ (* x y) z)) 1))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))

rewrite65.0ms (1%)

Memory
42.9MiB live, 131.6MiB allocated; 49ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0927
01227
14427
030127
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
6 → 20
Calls
Call 1
Inputs
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
y
x
#s(approx (* (- x 1) z) (*.f64 z x))
(*.f64 z x)
z
Outputs
(/.f64 (-.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 x y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64))) (-.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x))))
(/.f64 (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (*.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x))))))
(/.f64 (+.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (pow.f64 (*.f64 x y) #s(literal 3 binary64))) (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64))))
(fma.f64 x y #s(approx (* (- x 1) z) (*.f64 z x)))
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
(-.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 2 binary64)) (-.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))) (/.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 2 binary64)) (-.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))))
(-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 (neg.f64 x) y))
(-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 (neg.f64 y) x))
(+.f64 (/.f64 (pow.f64 (*.f64 x y) #s(literal 3 binary64)) (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))) (/.f64 (pow.f64 #s(approx (* (- x 1) z) (*.f64 z x)) #s(literal 3 binary64)) (fma.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (-.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 x y)) (pow.f64 (*.f64 x y) #s(literal 2 binary64)))))
(+.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))
(+.f64 #s(approx (* (- x 1) z) (*.f64 z x)) (*.f64 x y))
y
x
#s(approx (* (- x 1) z) (*.f64 z x))
(*.f64 z x)
(*.f64 x z)
z

eval11.0ms (0.2%)

Memory
-30.7MiB live, 14.5MiB allocated; 11ms collecting garbage
Compiler

Compiled 622 to 73 computations (88.3% saved)

prune3.0ms (0%)

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

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New27128
Fresh000
Picked011
Done044
Total27633
Accuracy
100.0%
Counts
33 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.1%
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
44.6%
#s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))
100.0%
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
59.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
69.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
32.9%
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
Compiler

Compiled 84 to 64 computations (23.8% saved)

series11.0ms (0.2%)

Memory
-18.1MiB live, 27.5MiB allocated; 7ms collecting garbage
Counts
4 → 15
Calls
Call 1
Inputs
#s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))
(*.f64 x y)
x
y
Outputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
(* x y)
x
(* x (+ y z))
(* x (+ y (+ z (* -1 (/ z x)))))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
y
(* y (+ x (/ (* z (- x 1)) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(* z (- (+ x (/ (* x y) z)) 1))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
Calls

9 calls:

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

simplify188.0ms (2.9%)

Memory
14.5MiB live, 163.7MiB allocated; 42ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04390
116282
256482
3171982
4527982
0810682
Stop Event
iter limit
node limit
Counts
15 → 13
Calls
Call 1
Inputs
(* -1 z)
(+ (* -1 z) (* x (+ y z)))
(* x y)
x
(* x (+ y z))
(* x (+ y (+ z (* -1 (/ z x)))))
(* -1 (* x (+ (* -1 y) (* -1 z))))
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(* z (- x 1))
(+ (* x y) (* z (- x 1)))
y
(* y (+ x (/ (* z (- x 1)) y)))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(* z (- (+ x (/ (* x y) z)) 1))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
Outputs
(* -1 z)
(neg.f64 z)
(+ (* -1 z) (* x (+ y z)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* x y)
(*.f64 x y)
x
(* x (+ y z))
(*.f64 (+.f64 z y) x)
(* x (+ y (+ z (* -1 (/ z x)))))
(*.f64 (-.f64 z (-.f64 (/.f64 z x) y)) x)
(* -1 (* x (+ (* -1 y) (* -1 z))))
(*.f64 (+.f64 z y) x)
(* -1 (* x (+ (* -1 y) (+ (* -1 z) (/ z x)))))
(*.f64 (-.f64 z (-.f64 (/.f64 z x) y)) x)
(* z (- x 1))
(*.f64 z (-.f64 x #s(literal 1 binary64)))
(+ (* x y) (* z (- x 1)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
y
(* y (+ x (/ (* z (- x 1)) y)))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* y (+ (* -1 x) (* -1 (/ (* z (- x 1)) y)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* z (- (+ x (/ (* x y) z)) 1))
(fma.f64 (+.f64 z y) x (neg.f64 z))
(* -1 (* z (+ (* -1 (- x 1)) (* -1 (/ (* x y) z)))))
(fma.f64 (+.f64 z y) x (neg.f64 z))

rewrite44.0ms (0.7%)

Memory
4.1MiB live, 48.1MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01018
01118
14518
034717
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 5
Calls
Call 1
Inputs
#s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))
(*.f64 x y)
x
y
Outputs
#s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))
(*.f64 x y)
(*.f64 y x)
x
y

eval1.0ms (0%)

Memory
3.2MiB live, 3.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 160 to 31 computations (80.6% saved)

prune3.0ms (0.1%)

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

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New11011
Fresh000
Picked011
Done055
Total11617
Accuracy
100.0%
Counts
17 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.1%
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
44.6%
#s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))
100.0%
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
59.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
69.4%
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
32.9%
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
Compiler

Compiled 190 to 92 computations (51.6% saved)

regimes24.0ms (0.4%)

Memory
-10.3MiB live, 41.6MiB allocated; 13ms collecting garbage
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
#s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
(fma.f64 y x #s(approx (* (- x 1) z) (*.f64 z x)))
(+.f64 (*.f64 x y) #s(approx (* (- x 1) z) (*.f64 z x)))
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
Outputs
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
Calls

4 calls:

16.0ms
y
3.0ms
x
3.0ms
z
3.0ms
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
Results
AccuracySegmentsBranch
100.0%1(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
100.0%1x
100.0%1y
100.0%1z
Compiler

Compiled 12 to 17 computations (-41.7% saved)

regimes11.0ms (0.2%)

Memory
-23.7MiB live, 21.3MiB allocated; 5ms collecting garbage
Counts
4 → 3
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
#s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
Outputs
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
#s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))
Calls

4 calls:

5.0ms
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
2.0ms
z
2.0ms
y
2.0ms
x
Results
AccuracySegmentsBranch
78.6%5(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
87.7%3x
83.9%3y
81.7%3z
Compiler

Compiled 12 to 17 computations (-41.7% saved)

regimes2.0ms (0%)

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

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
87.7%3x
Compiler

Compiled 1 to 3 computations (-200% saved)

regimes6.0ms (0.1%)

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

4 calls:

1.0ms
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
1.0ms
z
1.0ms
x
1.0ms
y
Results
AccuracySegmentsBranch
53.9%5(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
55.4%3z
59.2%3y
62.9%3x
Compiler

Compiled 12 to 17 computations (-41.7% saved)

regimes4.0ms (0.1%)

Memory
17.4MiB live, 17.4MiB 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 1) z)) (neg.f64 z))
Outputs
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
Calls

4 calls:

1.0ms
(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
1.0ms
z
1.0ms
x
1.0ms
y
Results
AccuracySegmentsBranch
32.9%1(+.f64 (*.f64 x y) (*.f64 (-.f64 x #s(literal 1 binary64)) z))
32.9%1z
32.9%1y
32.9%1x
Compiler

Compiled 12 to 17 computations (-41.7% saved)

bsearch26.0ms (0.4%)

Memory
-0.0MiB live, 44.3MiB allocated; 5ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
8.0ms
3.6109689657091905e-14
1.7485731957419404e-13
16.0ms
-2.8618239883712207e-31
-1.936741539233063e-40
Samples
15.0ms240×0valid
Compiler

Compiled 462 to 389 computations (15.8% saved)

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

bsearch29.0ms (0.5%)

Memory
-34.5MiB live, 10.3MiB allocated; 9ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
26.0ms
4.688659138874688e-57
2.6584262205700146e-56
1.0ms
-2.8618239883712207e-31
-1.936741539233063e-40
Samples
4.0ms96×0valid
Compiler

Compiled 417 to 359 computations (13.9% saved)

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

bsearch13.0ms (0.2%)

Memory
16.5MiB live, 16.5MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
0.0ms
4.688659138874688e-57
2.6584262205700146e-56
11.0ms
-2.8618239883712207e-31
-1.936741539233063e-40
Samples
6.0ms128×0valid
Compiler

Compiled 387 to 344 computations (11.1% saved)

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

simplify65.0ms (1%)

Memory
-12.4MiB live, 41.5MiB allocated; 16ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036138
160138
280138
3116138
4174138
5422138
63051138
77337138
Stop Event
node limit
Calls
Call 1
Inputs
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
(if (<=.f64 x #s(literal -3516957540073085/1496577676626844588240573268701473812127674924007424 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x)) (if (<=.f64 x #s(literal 3089898338056309/79228162514264337593543950336 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))))
(if (<=.f64 x #s(literal -3516957540073085/1496577676626844588240573268701473812127674924007424 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x)) (if (<=.f64 x #s(literal 6846532376016239/441711766194596082395824375185729628956870974218904739530401550323154944 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))))
(if (<=.f64 x #s(literal -6547527335242445/187072209578355573530071658587684226515959365500928 binary64)) #s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y)) (if (<=.f64 x #s(literal 6846532376016239/441711766194596082395824375185729628956870974218904739530401550323154944 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z)) #s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))))
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))
Outputs
#s(approx (+ (* x y) (* (- x 1) z)) (fma.f64 (+.f64 z y) x (neg.f64 z)))
(if (<=.f64 x #s(literal -3516957540073085/1496577676626844588240573268701473812127674924007424 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x)) (if (<=.f64 x #s(literal 3089898338056309/79228162514264337593543950336 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))))
(if (or (<=.f64 x #s(literal -3516957540073085/1496577676626844588240573268701473812127674924007424 binary64)) (not (<=.f64 x #s(literal 3089898338056309/79228162514264337593543950336 binary64)))) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (-.f64 x #s(literal 1 binary64)) z)))
(if (<=.f64 x #s(literal -3516957540073085/1496577676626844588240573268701473812127674924007424 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x)) (if (<=.f64 x #s(literal 6846532376016239/441711766194596082395824375185729628956870974218904739530401550323154944 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z)) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x))))
(if (or (<=.f64 x #s(literal -3516957540073085/1496577676626844588240573268701473812127674924007424 binary64)) (not (<=.f64 x #s(literal 6846532376016239/441711766194596082395824375185729628956870974218904739530401550323154944 binary64)))) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 (+.f64 z y) x)) #s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z)))
(if (<=.f64 x #s(literal -6547527335242445/187072209578355573530071658587684226515959365500928 binary64)) #s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y)) (if (<=.f64 x #s(literal 6846532376016239/441711766194596082395824375185729628956870974218904739530401550323154944 binary64)) #s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z)) #s(approx (+ (* y x) (* (- x 1) z)) (*.f64 x y))))
(if (or (<=.f64 x #s(literal -6547527335242445/187072209578355573530071658587684226515959365500928 binary64)) (not (<=.f64 x #s(literal 6846532376016239/441711766194596082395824375185729628956870974218904739530401550323154944 binary64)))) #s(approx (+ (* x y) (* (- x 1) z)) (*.f64 x y)) #s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z)))
#s(approx (+ (* x y) (* (- x 1) z)) (neg.f64 z))

derivations364.0ms (5.7%)

Memory
1.6MiB live, 281.5MiB allocated; 100ms collecting garbage
Stop Event
done
Compiler

Compiled 138 to 37 computations (73.2% saved)

preprocess28.0ms (0.4%)

Memory
12.0MiB live, 57.6MiB allocated; 7ms collecting garbage
Compiler

Compiled 294 to 90 computations (69.4% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...