Linear.Quaternion:$cexp from linear-1.19.1.3

Time bar (total: 3.9s)

start0.0ms (0%)

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

analyze12.0ms (0.3%)

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

Compiled 8 to 7 computations (12.5% saved)

sample1.1s (29.2%)

Memory
26.1MiB live, 1 309.1MiB allocated; 343ms collecting garbage
Samples
750.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 386.0ms
ival-sin: 246.0ms (63.7% of total)
ival-div: 77.0ms (19.9% of total)
ival-mult: 53.0ms (13.7% of total)
ival-true: 6.0ms (1.6% of total)
ival-assert: 3.0ms (0.8% of total)
adjust: 2.0ms (0.5% of total)
Bogosity

explain120.0ms (3.1%)

Memory
3.2MiB live, 206.5MiB allocated; 68ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(sin.f64 y)
00-0-y
00-0-(*.f64 x (/.f64 (sin.f64 y) y))
00-0-(/.f64 (sin.f64 y) 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
81.0ms512×0valid
Compiler

Compiled 38 to 19 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 56.0ms
ival-sin: 38.0ms (67.4% of total)
ival-mult: 14.0ms (24.8% of total)
ival-div: 4.0ms (7.1% of total)
ival-true: 1.0ms (1.8% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess98.0ms (2.5%)

Memory
12.8MiB live, 60.4MiB allocated; 40ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01536
13632
28132
313432
425832
553032
6124032
7320232
8662332
056
086
1116
2136
3156
4166
0166
Stop Event
iter limit
saturated
iter limit
node limit
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
Outputs
(*.f64 x (/.f64 (sin.f64 y) y))
(*.f64 (/.f64 (sin.f64 y) y) x)
Symmetry

(abs y)

(negabs x)

Compiler

Compiled 6 to 5 computations (16.7% 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
1.5MiB live, 1.5MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 x (/.f64 (sin.f64 y) y))
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify4.0ms (0.1%)

Memory
13.0MiB live, 13.0MiB allocated; 0ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 y)
cost-diff0
(/.f64 (sin.f64 y) y)
cost-diff0
(*.f64 x (/.f64 (sin.f64 y) y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0514
0814
11114
21314
31514
41614
01614
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
x
(/.f64 (sin.f64 y) y)
(sin.f64 y)
y
Outputs
(*.f64 x (/.f64 (sin.f64 y) y))
(*.f64 (/.f64 (sin.f64 y) y) x)
x
(/.f64 (sin.f64 y) y)
(sin.f64 y)
y

localize24.0ms (0.6%)

Memory
-14.9MiB live, 81.8MiB allocated; 5ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(sin.f64 y)
accuracy0.12109375
(/.f64 (sin.f64 y) y)
accuracy0.12337875976844201
(*.f64 x (/.f64 (sin.f64 y) y))
Samples
18.0ms256×0valid
Compiler

Compiled 16 to 7 computations (56.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-sin: 8.0ms (65.5% of total)
ival-div: 2.0ms (16.4% of total)
ival-mult: 2.0ms (16.4% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series7.0ms (0.2%)

Memory
-27.9MiB live, 19.4MiB allocated; 1ms collecting garbage
Counts
3 → 15
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
(/.f64 (sin.f64 y) y)
(sin.f64 y)
Outputs
(/ (* x (sin y)) y)
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
y
(* y (+ 1 (* -1/6 (pow y 2))))
(* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))
(* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))
(/ (sin y) y)
(sin y)
Calls

6 calls:

TimeVariablePointExpression
2.0ms
y
@inf
((* x (/ (sin y) y)) (/ (sin y) y) (sin y))
1.0ms
x
@0
((* x (/ (sin y) y)) (/ (sin y) y) (sin y))
1.0ms
y
@-inf
((* x (/ (sin y) y)) (/ (sin y) y) (sin y))
1.0ms
x
@-inf
((* x (/ (sin y) y)) (/ (sin y) y) (sin y))
1.0ms
x
@inf
((* x (/ (sin y) y)) (/ (sin y) y) (sin y))

simplify236.0ms (6%)

Memory
36.6MiB live, 276.9MiB allocated; 89ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043150
1142150
2488140
32111138
47219138
08012120
Stop Event
iter limit
node limit
Counts
15 → 13
Calls
Call 1
Inputs
(/ (* x (sin y)) y)
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
y
(* y (+ 1 (* -1/6 (pow y 2))))
(* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))
(* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))
(/ (sin y) y)
(sin y)
Outputs
(/ (* x (sin y)) y)
(*.f64 (sin.f64 y) (/.f64 x y))
x
(+ x (* -1/6 (* x (pow y 2))))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(fma.f64 (*.f64 (*.f64 y y) x) (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) x)
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
(fma.f64 (*.f64 (*.f64 y y) x) (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) x)
1
#s(literal 1 binary64)
(+ 1 (* -1/6 (pow y 2)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
y
(* y (+ 1 (* -1/6 (pow y 2))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/6 binary64) y)
(* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) y)
(* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) y)
(/ (sin y) y)
(/.f64 (sin.f64 y) y)
(sin y)
(sin.f64 y)

rewrite60.0ms (1.5%)

Memory
-34.0MiB live, 108.6MiB allocated; 16ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0512
0812
11412
23712
314512
085212
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
3 → 39
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
(/.f64 (sin.f64 y) y)
(sin.f64 y)
Outputs
(*.f64 (/.f64 (neg.f64 x) y) (neg.f64 (sin.f64 y)))
(*.f64 (/.f64 x y) (sin.f64 y))
(*.f64 (neg.f64 x) (/.f64 (sin.f64 y) (neg.f64 y)))
(*.f64 (/.f64 (sin.f64 y) (neg.f64 y)) (neg.f64 x))
(*.f64 (neg.f64 (sin.f64 y)) (/.f64 (neg.f64 x) y))
(*.f64 (/.f64 (sin.f64 y) y) x)
(*.f64 (sin.f64 y) (/.f64 x y))
(*.f64 x (/.f64 (sin.f64 y) y))
(/.f64 (*.f64 (sin.f64 y) x) y)
(/.f64 (*.f64 (neg.f64 x) (sin.f64 y)) (neg.f64 y))
(neg.f64 (*.f64 (neg.f64 x) (/.f64 (sin.f64 y) y)))
(/.f64 (neg.f64 (sin.f64 y)) (neg.f64 y))
(/.f64 (sin.f64 y) y)
(neg.f64 (/.f64 (sin.f64 y) (neg.f64 y)))
(-.f64 (/.f64 (*.f64 #s(literal 0 binary64) (cos.f64 y)) (neg.f64 y)) (/.f64 (*.f64 #s(literal 1 binary64) (sin.f64 y)) (neg.f64 y)))
(+.f64 (/.f64 (*.f64 #s(literal -1 binary64) (sin.f64 y)) (neg.f64 y)) (/.f64 (*.f64 #s(literal 0 binary64) (cos.f64 y)) (neg.f64 y)))
(neg.f64 (neg.f64 (sin.f64 y)))
(fma.f64 (neg.f64 (sin.f64 y)) #s(literal -1 binary64) (*.f64 (cos.f64 (+.f64 (PI.f64) y)) #s(literal 0 binary64)))
(fma.f64 (neg.f64 (sin.f64 y)) #s(literal -1 binary64) (*.f64 #s(literal 0 binary64) (cos.f64 y)))
(sin.f64 (neg.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) y) (/.f64 (PI.f64) #s(literal 2 binary64)))))
(sin.f64 (+.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) y) (/.f64 (PI.f64) #s(literal 2 binary64))) (PI.f64)))
(sin.f64 (+.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) y) (PI.f64)) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) (neg.f64 y)) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (neg.f64 (+.f64 (PI.f64) y)))
(sin.f64 (+.f64 (+.f64 (PI.f64) y) (PI.f64)))
(sin.f64 (+.f64 (PI.f64) (neg.f64 y)))
(sin.f64 y)
(-.f64 (*.f64 (cos.f64 (+.f64 (PI.f64) y)) #s(literal 0 binary64)) (*.f64 (neg.f64 (sin.f64 y)) #s(literal 1 binary64)))
(-.f64 (*.f64 (neg.f64 (sin.f64 y)) #s(literal -1 binary64)) (*.f64 #s(literal 0 binary64) (cos.f64 y)))
(-.f64 (*.f64 #s(literal 0 binary64) (cos.f64 y)) (*.f64 (neg.f64 (sin.f64 y)) #s(literal 1 binary64)))
(cos.f64 (neg.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) y) (PI.f64))))
(cos.f64 (neg.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) (neg.f64 y))))
(cos.f64 (+.f64 (neg.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) y)) (PI.f64)))
(cos.f64 (+.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) y) (/.f64 (PI.f64) #s(literal 2 binary64))) (/.f64 (PI.f64) #s(literal 2 binary64))))
(cos.f64 (+.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) y) (PI.f64)))
(cos.f64 (+.f64 (/.f64 (PI.f64) #s(literal 2 binary64)) (neg.f64 y)))
(+.f64 (neg.f64 (*.f64 #s(literal -1 binary64) (sin.f64 y))) (neg.f64 (*.f64 #s(literal 0 binary64) (cos.f64 y))))
(+.f64 (*.f64 (neg.f64 (sin.f64 y)) #s(literal -1 binary64)) (*.f64 (cos.f64 (+.f64 (PI.f64) y)) #s(literal 0 binary64)))
(+.f64 (*.f64 (neg.f64 (sin.f64 y)) #s(literal -1 binary64)) (*.f64 #s(literal 0 binary64) (cos.f64 y)))

eval6.0ms (0.2%)

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

Compiled 643 to 182 computations (71.7% saved)

prune3.0ms (0.1%)

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

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New48452
Fresh000
Picked011
Done000
Total48553
Accuracy
99.9%
Counts
53 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
88.7%
(/.f64 (*.f64 (sin.f64 y) x) y)
86.5%
(*.f64 (/.f64 x y) (sin.f64 y))
99.8%
(*.f64 x (/.f64 (sin.f64 y) y))
50.3%
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
51.2%
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
Compiler

Compiled 39 to 32 computations (17.9% saved)

simplify195.0ms (5%)

Memory
29.5MiB live, 203.6MiB allocated; 57ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 y)
cost-diff0
(*.f64 (sin.f64 y) x)
cost-diff0
(/.f64 (*.f64 (sin.f64 y) x) y)
cost-diff0
(sin.f64 y)
cost-diff0
(/.f64 x y)
cost-diff0
(*.f64 (/.f64 x y) (sin.f64 y))
cost-diff0
(*.f64 y y)
cost-diff0
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
cost-diff0
#s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)))
cost-diff0
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
cost-diff0
#s(approx (/ (sin y) y) #s(literal 1 binary64))
cost-diff0
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01780
02780
14280
27980
316780
429180
553180
6261880
7609780
0822380
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
x
#s(approx (/ (sin y) y) #s(literal 1 binary64))
#s(literal 1 binary64)
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
x
#s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(*.f64 y y)
y
#s(literal -1/6 binary64)
#s(literal 1 binary64)
(*.f64 (/.f64 x y) (sin.f64 y))
(/.f64 x y)
x
y
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) x) y)
(*.f64 (sin.f64 y) x)
(sin.f64 y)
y
x
Outputs
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
(*.f64 #s(approx (/ (sin y) y) #s(literal 1 binary64)) x)
x
#s(approx (/ (sin y) y) #s(literal 1 binary64))
#s(literal 1 binary64)
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
(*.f64 #s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))) x)
x
#s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)))
#s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))
(*.f64 y y)
y
#s(literal -1/6 binary64)
#s(literal 1 binary64)
(*.f64 (/.f64 x y) (sin.f64 y))
(*.f64 (sin.f64 y) (/.f64 x y))
(/.f64 x y)
x
y
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) x) y)
(*.f64 (sin.f64 y) (/.f64 x y))
(*.f64 (sin.f64 y) x)
(sin.f64 y)
y
x

localize90.0ms (2.3%)

Memory
-39.9MiB live, 112.5MiB allocated; 43ms collecting garbage
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(sin.f64 y)
accuracy0.09375
(*.f64 (sin.f64 y) x)
accuracy7.223260391743716
(/.f64 (*.f64 (sin.f64 y) x) y)
accuracy0.0
(/.f64 x y)
accuracy0.0
(sin.f64 y)
accuracy8.62445784498462
(*.f64 (/.f64 x y) (sin.f64 y))
accuracy0.0
(*.f64 y y)
accuracy0.11328125
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
accuracy0.12337875976844201
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
accuracy31.86366729120712
#s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)))
accuracy0.12337875976844201
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
accuracy31.430417872901735
#s(approx (/ (sin y) y) #s(literal 1 binary64))
Samples
51.0ms256×0valid
Compiler

Compiled 65 to 16 computations (75.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 28.0ms
ival-mult: 11.0ms (39.8% of total)
ival-sin: 7.0ms (25.3% of total)
ival-div: 5.0ms (18.1% of total)
const: 3.0ms (10.9% of total)
ival-add: 1.0ms (3.6% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series9.0ms (0.2%)

Memory
20.2MiB live, 20.2MiB allocated; 0ms collecting garbage
Counts
11 → 24
Calls
Call 1
Inputs
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
#s(approx (/ (sin y) y) #s(literal 1 binary64))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
#s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(*.f64 y y)
(*.f64 (/.f64 x y) (sin.f64 y))
(/.f64 x y)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) x) y)
(*.f64 (sin.f64 y) x)
Outputs
(/ (* x (sin y)) y)
(/ x y)
(* x (sin y))
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(pow y 2)
y
(* y (+ 1 (* -1/6 (pow y 2))))
(* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))
(* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))
(* x y)
(* y (+ x (* -1/6 (* x (pow y 2)))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))
(/ (sin y) y)
(* -1/6 (pow y 2))
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
(sin y)
Calls

6 calls:

TimeVariablePointExpression
3.0ms
y
@inf
((* x (/ (sin y) y)) (/ (sin y) y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* y y) (* (/ x y) (sin y)) (/ x y) (sin y) (/ (* (sin y) x) y) (* (sin y) x))
2.0ms
y
@-inf
((* x (/ (sin y) y)) (/ (sin y) y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* y y) (* (/ x y) (sin y)) (/ x y) (sin y) (/ (* (sin y) x) y) (* (sin y) x))
1.0ms
x
@-inf
((* x (/ (sin y) y)) (/ (sin y) y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* y y) (* (/ x y) (sin y)) (/ x y) (sin y) (/ (* (sin y) x) y) (* (sin y) x))
1.0ms
x
@inf
((* x (/ (sin y) y)) (/ (sin y) y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* y y) (* (/ x y) (sin y)) (/ x y) (sin y) (/ (* (sin y) x) y) (* (sin y) x))
1.0ms
x
@0
((* x (/ (sin y) y)) (/ (sin y) y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* y y) (* (/ x y) (sin y)) (/ x y) (sin y) (/ (* (sin y) x) y) (* (sin y) x))

simplify151.0ms (3.9%)

Memory
4.2MiB live, 187.6MiB allocated; 18ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051236
1171236
2584222
32558216
46590216
08271192
Stop Event
iter limit
node limit
Counts
24 → 22
Calls
Call 1
Inputs
(/ (* x (sin y)) y)
(/ x y)
(* x (sin y))
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(pow y 2)
y
(* y (+ 1 (* -1/6 (pow y 2))))
(* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))
(* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))
(* x y)
(* y (+ x (* -1/6 (* x (pow y 2)))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))
(/ (sin y) y)
(* -1/6 (pow y 2))
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
(sin y)
Outputs
(/ (* x (sin y)) y)
(*.f64 (sin.f64 y) (/.f64 x y))
(/ x y)
(/.f64 x y)
(* x (sin y))
(*.f64 (sin.f64 y) x)
x
(+ x (* -1/6 (* x (pow y 2))))
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(fma.f64 (*.f64 x (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64))) (*.f64 y y) x)
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
(fma.f64 (*.f64 x (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64))) (*.f64 y y) x)
1
#s(literal 1 binary64)
(+ 1 (* -1/6 (pow y 2)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
(pow y 2)
(*.f64 y y)
y
(* y (+ 1 (* -1/6 (pow y 2))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/6 binary64) y)
(* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) y)
(* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) y)
(* x y)
(*.f64 y x)
(* y (+ x (* -1/6 (* x (pow y 2)))))
(*.f64 x (fma.f64 (pow.f64 y #s(literal 3 binary64)) #s(literal -1/6 binary64) y))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))
(*.f64 (fma.f64 (*.f64 x (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64))) (*.f64 y y) x) y)
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) (*.f64 x (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64))) (*.f64 y x))
(/ (sin y) y)
(/.f64 (sin.f64 y) y)
(* -1/6 (pow y 2))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 y y)) #s(literal 1/6 binary64)) y) y)
(sin y)
(sin.f64 y)

rewrite42.0ms (1.1%)

Memory
14.6MiB live, 61.1MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01768
02768
16468
029268
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
11 → 70
Calls
Call 1
Inputs
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
#s(approx (/ (sin y) y) #s(literal 1 binary64))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
#s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(*.f64 y y)
(*.f64 (/.f64 x y) (sin.f64 y))
(/.f64 x y)
(sin.f64 y)
(/.f64 (*.f64 (sin.f64 y) x) y)
(*.f64 (sin.f64 y) x)
Outputs
(*.f64 #s(approx (/ (sin y) y) #s(literal 1 binary64)) x)
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
#s(approx (/ (sin y) y) #s(literal 1 binary64))
(*.f64 #s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))) x)
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))))
#s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 y y))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 y y) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal -1 binary64)))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 y y) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 y y) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (neg.f64 y)) (neg.f64 y) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (fabs.f64 y)) (fabs.f64 y) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
(fma.f64 (neg.f64 y) (*.f64 (neg.f64 y) #s(literal -1/6 binary64)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) #s(literal -1/6 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 1 binary64))
(fma.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) y) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 y (*.f64 #s(literal -1/6 binary64) y) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal -1 binary64))))
(-.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) (*.f64 y y)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 y y)) #s(literal -1/6 binary64)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 y) (*.f64 #s(literal -1/6 binary64) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))))
(+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))
(*.f64 (pow.f64 y #s(literal 1 binary64)) (pow.f64 y #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 y)) (neg.f64 (neg.f64 y)))
(*.f64 (neg.f64 (fabs.f64 y)) (neg.f64 (fabs.f64 y)))
(*.f64 (fabs.f64 (fabs.f64 y)) (fabs.f64 (fabs.f64 y)))
(*.f64 (neg.f64 y) (neg.f64 y))
(*.f64 (fabs.f64 y) (fabs.f64 y))
(*.f64 y y)
(pow.f64 (neg.f64 y) #s(literal 2 binary64))
(pow.f64 (fabs.f64 y) #s(literal 2 binary64))
(pow.f64 y #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 y) y))
(neg.f64 (*.f64 y (neg.f64 y)))
(fabs.f64 (*.f64 y y))
(exp.f64 (*.f64 (log.f64 y) #s(literal 2 binary64)))
(*.f64 (sin.f64 y) (/.f64 x y))
(*.f64 (/.f64 x y) (sin.f64 y))
(*.f64 x (/.f64 (sin.f64 y) y))
(/.f64 (neg.f64 (*.f64 (neg.f64 x) (sin.f64 y))) (neg.f64 (neg.f64 y)))
(/.f64 (*.f64 (neg.f64 x) (sin.f64 y)) (neg.f64 y))
(/.f64 (*.f64 (sin.f64 y) x) y)
(neg.f64 (/.f64 (*.f64 (neg.f64 x) (sin.f64 y)) y))
(neg.f64 (/.f64 (*.f64 (sin.f64 y) x) (neg.f64 y)))
(/.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 y)))
(/.f64 (neg.f64 x) (neg.f64 y))
(/.f64 x y)
(neg.f64 (/.f64 (neg.f64 x) y))
(neg.f64 (/.f64 x (neg.f64 y)))
(sin.f64 y)
(*.f64 (sin.f64 y) (/.f64 x y))
(*.f64 (/.f64 x y) (sin.f64 y))
(*.f64 x (/.f64 (sin.f64 y) y))
(/.f64 (neg.f64 (*.f64 (neg.f64 x) (sin.f64 y))) (neg.f64 (neg.f64 y)))
(/.f64 (*.f64 (neg.f64 x) (sin.f64 y)) (neg.f64 y))
(/.f64 (*.f64 (sin.f64 y) x) y)
(neg.f64 (/.f64 (*.f64 (neg.f64 x) (sin.f64 y)) y))
(neg.f64 (/.f64 (*.f64 (sin.f64 y) x) (neg.f64 y)))
(*.f64 (sin.f64 y) x)
(*.f64 x (sin.f64 y))

eval167.0ms (4.3%)

Memory
-12.6MiB live, 33.8MiB allocated; 198ms collecting garbage
Compiler

Compiled 1 321 to 300 computations (77.3% saved)

prune6.0ms (0.1%)

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

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New84488
Fresh000
Picked134
Done011
Total85893
Accuracy
99.9%
Counts
93 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
88.7%
(/.f64 (*.f64 (sin.f64 y) x) y)
40.0%
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
86.5%
(*.f64 (/.f64 x y) (sin.f64 y))
99.8%
(*.f64 x (/.f64 (sin.f64 y) y))
50.3%
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
2.8%
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
51.2%
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
50.3%
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
Compiler

Compiled 84 to 64 computations (23.8% saved)

simplify171.0ms (4.4%)

Memory
-4.7MiB live, 193.6MiB allocated; 38ms collecting garbage
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y x)
cost-diff0
#s(approx (* (sin y) x) (*.f64 y x))
cost-diff0
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
cost-diff0
(*.f64 #s(literal -1/6 binary64) y)
cost-diff0
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
cost-diff0
#s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64)))
cost-diff0
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
cost-diff0
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
cost-diff0
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
cost-diff0
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
cost-diff0
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
cost-diff0
(*.f64 y y)
cost-diff0
(*.f64 (*.f64 y y) x)
cost-diff0
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
cost-diff0
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026156
038153
164153
2132153
3349153
4638153
5975153
63353153
77195153
08009153
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 y y) x)
(*.f64 y y)
y
x
#s(literal -1/6 binary64)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
x
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(*.f64 y y)
y
#s(literal -1/6 binary64)
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
x
#s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64)))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
(*.f64 #s(literal -1/6 binary64) y)
#s(literal -1/6 binary64)
y
#s(literal 1 binary64)
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
#s(approx (* (sin y) x) (*.f64 y x))
(*.f64 y x)
y
x
Outputs
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x) x))
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x) x)
(*.f64 (*.f64 y y) x)
(*.f64 y y)
y
x
#s(literal -1/6 binary64)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
(*.f64 #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))) x)
x
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 #s(literal -1/6 binary64) (*.f64 y y))))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(*.f64 #s(literal -1/6 binary64) (*.f64 y y))
(*.f64 y y)
y
#s(literal -1/6 binary64)
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
(*.f64 #s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))) x)
x
#s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64)))
#s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64)))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
(fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))
(*.f64 #s(literal -1/6 binary64) y)
#s(literal -1/6 binary64)
y
#s(literal 1 binary64)
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
#s(approx (* (sin y) x) (*.f64 y x))
(*.f64 y x)
y
x

localize64.0ms (1.6%)

Memory
-17.8MiB live, 121.7MiB allocated; 10ms collecting garbage
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y x)
accuracy7.223260391743716
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
accuracy31.437738362668306
#s(approx (* (sin y) x) (*.f64 y x))
accuracy0.0703125
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
accuracy0.12337875976844201
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
accuracy0.3515625
(*.f64 #s(literal -1/6 binary64) y)
accuracy31.86366729120712
#s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64)))
accuracy0.12337875976844201
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
accuracy0.234375
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
accuracy30.68761921972793
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
accuracy31.86366729120712
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
accuracy0.0
(*.f64 y y)
accuracy0.0703125
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
accuracy6.381166140989508
(*.f64 (*.f64 y y) x)
accuracy31.767185026014644
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
Samples
52.0ms256×0valid
Compiler

Compiled 95 to 21 computations (77.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
ival-mult: 13.0ms (39.9% of total)
ival-sin: 8.0ms (24.6% of total)
ival-div: 4.0ms (12.3% of total)
ival-add: 4.0ms (12.3% of total)
const: 4.0ms (12.3% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series14.0ms (0.4%)

Memory
-24.8MiB live, 27.1MiB allocated; 5ms collecting garbage
Counts
15 → 24
Calls
Call 1
Inputs
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 y y) x)
(*.f64 y y)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
#s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64)))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
(*.f64 #s(literal -1/6 binary64) y)
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
#s(approx (* (sin y) x) (*.f64 y x))
(*.f64 y x)
Outputs
(/ (* x (sin y)) y)
(* x (+ 1 (* -1/6 (pow y 2))))
(* x (pow y 2))
(* x (sin y))
(* x y)
(* -1 (* x (- (* 1/6 (pow y 2)) 1)))
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
(pow y 2)
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(* -1/6 (pow y 2))
(* -1/6 y)
(* y (+ x (* -1/6 (* x (pow y 2)))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))
(* -1/6 (* x (pow y 2)))
(* (pow y 2) (+ (* -1/6 x) (/ x (pow y 2))))
(/ (sin y) y)
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
Calls

6 calls:

TimeVariablePointExpression
5.0ms
y
@-inf
((* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* y y) x) (* y y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* y y) -1/6) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* -1/6 y) y) 1) (* -1/6 y) (/ (* (sin y) x) y) (* (sin y) x) (* y x))
2.0ms
x
@-inf
((* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* y y) x) (* y y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* y y) -1/6) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* -1/6 y) y) 1) (* -1/6 y) (/ (* (sin y) x) y) (* (sin y) x) (* y x))
2.0ms
x
@inf
((* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* y y) x) (* y y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* y y) -1/6) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* -1/6 y) y) 1) (* -1/6 y) (/ (* (sin y) x) y) (* (sin y) x) (* y x))
2.0ms
y
@inf
((* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* y y) x) (* y y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* y y) -1/6) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* -1/6 y) y) 1) (* -1/6 y) (/ (* (sin y) x) y) (* (sin y) x) (* y x))
2.0ms
x
@0
((* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* y y) x) (* y y) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* y y) -1/6) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* -1/6 y) y) 1) (* -1/6 y) (/ (* (sin y) x) y) (* (sin y) x) (* y x))

simplify193.0ms (4.9%)

Memory
44.8MiB live, 227.4MiB allocated; 30ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057228
1180228
2581220
32365214
08027193
Stop Event
iter limit
node limit
Counts
24 → 23
Calls
Call 1
Inputs
(/ (* x (sin y)) y)
(* x (+ 1 (* -1/6 (pow y 2))))
(* x (pow y 2))
(* x (sin y))
(* x y)
(* -1 (* x (- (* 1/6 (pow y 2)) 1)))
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
(pow y 2)
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(* -1/6 (pow y 2))
(* -1/6 y)
(* y (+ x (* -1/6 (* x (pow y 2)))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))
(* -1/6 (* x (pow y 2)))
(* (pow y 2) (+ (* -1/6 x) (/ x (pow y 2))))
(/ (sin y) y)
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
Outputs
(/ (* x (sin y)) y)
(*.f64 (/.f64 (sin.f64 y) y) x)
(* x (+ 1 (* -1/6 (pow y 2))))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(* x (pow y 2))
(*.f64 (*.f64 y y) x)
(* x (sin y))
(*.f64 (sin.f64 y) x)
(* x y)
(*.f64 y x)
(* -1 (* x (- (* 1/6 (pow y 2)) 1)))
(*.f64 (neg.f64 x) (fma.f64 #s(literal 1/6 binary64) (*.f64 y y) #s(literal -1 binary64)))
x
(+ x (* -1/6 (* x (pow y 2))))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(*.f64 x (fma.f64 #s(literal 1/120 binary64) (pow.f64 y #s(literal 4 binary64)) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
(fma.f64 (*.f64 x (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64))) (*.f64 y y) x)
(pow y 2)
(*.f64 y y)
1
#s(literal 1 binary64)
(+ 1 (* -1/6 (pow y 2)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
(* -1/6 (pow y 2))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(* -1/6 y)
(*.f64 #s(literal -1/6 binary64) y)
(* y (+ x (* -1/6 (* x (pow y 2)))))
(*.f64 x (fma.f64 #s(literal -1/6 binary64) (pow.f64 y #s(literal 3 binary64)) y))
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))
(*.f64 (*.f64 x (fma.f64 #s(literal 1/120 binary64) (pow.f64 y #s(literal 4 binary64)) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)))) y)
(* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))
(fma.f64 (pow.f64 y #s(literal 3 binary64)) (*.f64 x (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64))) (*.f64 y x))
(* -1/6 (* x (pow y 2)))
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
(* (pow y 2) (+ (* -1/6 x) (/ x (pow y 2))))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(/ (sin y) y)
(/.f64 (sin.f64 y) y)
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 y y)) #s(literal 1/6 binary64)) y) y)

rewrite126.0ms (3.2%)

Memory
-19.1MiB live, 66.2MiB allocated; 53ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026141
038138
1109138
0502138
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
15 → 105
Calls
Call 1
Inputs
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 y y) x)
(*.f64 y y)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
#s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64)))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
(*.f64 #s(literal -1/6 binary64) y)
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
#s(approx (* (sin y) x) (*.f64 y x))
(*.f64 y x)
Outputs
#s(approx (* x (/ (sin y) y)) (fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x) x))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64))) (-.f64 x (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) x)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x)) (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) x))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) x))))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (-.f64 x (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x)) (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 y y) x)
(fma.f64 (neg.f64 y) (*.f64 (neg.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x x)
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x) x)
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x)
(fma.f64 y (*.f64 (*.f64 y x) #s(literal -1/6 binary64)) x)
(fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 x (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x)
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) x)))
(-.f64 x (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 y y) x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 y y) x)) #s(literal -1/6 binary64)))
(-.f64 x (*.f64 (neg.f64 (*.f64 y y)) (*.f64 #s(literal -1/6 binary64) x)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x)) (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x)) (pow.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x) x)
(+.f64 x (*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) x))
(*.f64 (*.f64 x (neg.f64 y)) (neg.f64 y))
(*.f64 (*.f64 x (fabs.f64 y)) (fabs.f64 y))
(*.f64 (neg.f64 y) (*.f64 (neg.f64 y) x))
(*.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) x))
(*.f64 (*.f64 y x) y)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 x (*.f64 y y))
(*.f64 (pow.f64 y #s(literal 1 binary64)) (pow.f64 y #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 y)) (neg.f64 (neg.f64 y)))
(*.f64 (neg.f64 (fabs.f64 y)) (neg.f64 (fabs.f64 y)))
(*.f64 (fabs.f64 (fabs.f64 y)) (fabs.f64 (fabs.f64 y)))
(*.f64 (neg.f64 y) (neg.f64 y))
(*.f64 (fabs.f64 y) (fabs.f64 y))
(*.f64 y y)
(pow.f64 (neg.f64 y) #s(literal 2 binary64))
(pow.f64 (fabs.f64 y) #s(literal 2 binary64))
(pow.f64 y #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 y) y))
(neg.f64 (*.f64 y (neg.f64 y)))
(fabs.f64 (*.f64 y y))
(exp.f64 (*.f64 (log.f64 y) #s(literal 2 binary64)))
(*.f64 #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))) x)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 #s(literal -1/6 binary64) (*.f64 y y))))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))
(*.f64 (*.f64 #s(literal -1/6 binary64) (neg.f64 y)) (neg.f64 y))
(*.f64 (*.f64 #s(literal -1/6 binary64) (fabs.f64 y)) (fabs.f64 y))
(*.f64 (neg.f64 y) (*.f64 (neg.f64 y) #s(literal -1/6 binary64)))
(*.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y #s(literal 1 binary64)))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
(*.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))
(*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) #s(literal 1 binary64)))
(*.f64 #s(literal -1/6 binary64) (*.f64 y y))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(*.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) y) #s(literal 1 binary64)))
(*.f64 y (*.f64 #s(literal -1/6 binary64) y))
(*.f64 #s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))) x)
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))))
#s(approx (/ (sin y) y) (fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 y y))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal -1 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 y y) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal -1 binary64)))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 y y) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (*.f64 y y) #s(literal 3 binary64)) #s(literal 1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (neg.f64 y)) (neg.f64 y) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (fabs.f64 y)) (fabs.f64 y) #s(literal 1 binary64))
(fma.f64 (neg.f64 y) (*.f64 (neg.f64 y) #s(literal -1/6 binary64)) #s(literal 1 binary64))
(fma.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) #s(literal -1/6 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 1 binary64))
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal -1/6 binary64) (*.f64 y y) #s(literal 1 binary64))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(fma.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) y) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 y (*.f64 #s(literal -1/6 binary64) y) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal -1 binary64))))
(-.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 #s(literal -1/6 binary64) y)) y))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) (*.f64 y y)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (*.f64 y y)) #s(literal -1/6 binary64)))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 y) (*.f64 #s(literal -1/6 binary64) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))))
(+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 y y)) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 y y)))
(*.f64 #s(literal -1/6 binary64) y)
(*.f64 y #s(literal -1/6 binary64))
(/.f64 (neg.f64 (neg.f64 #s(approx (* (sin y) x) (*.f64 y x)))) (neg.f64 (neg.f64 y)))
(/.f64 (neg.f64 #s(approx (* (sin y) x) (*.f64 y x))) (neg.f64 y))
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
(neg.f64 (/.f64 (neg.f64 #s(approx (* (sin y) x) (*.f64 y x))) y))
(neg.f64 (/.f64 #s(approx (* (sin y) x) (*.f64 y x)) (neg.f64 y)))
#s(approx (* (sin y) x) (*.f64 y x))
(*.f64 y x)
(*.f64 x y)

eval25.0ms (0.6%)

Memory
-0.6MiB live, 42.2MiB allocated; 24ms collecting garbage
Compiler

Compiled 2 749 to 516 computations (81.2% saved)

prune7.0ms (0.2%)

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

10 alts after pruning (5 fresh and 5 done)

PrunedKeptTotal
New1375142
Fresh000
Picked314
Done044
Total14010150
Accuracy
99.9%
Counts
150 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
88.7%
(/.f64 (*.f64 (sin.f64 y) x) y)
40.0%
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
86.5%
(*.f64 (/.f64 x y) (sin.f64 y))
99.8%
(*.f64 x (/.f64 (sin.f64 y) y))
2.8%
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
51.2%
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
50.4%
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
50.4%
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
50.4%
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
2.8%
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
Compiler

Compiled 214 to 151 computations (29.4% saved)

simplify196.0ms (5%)

Memory
-21.5MiB live, 188.7MiB allocated; 51ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y x)
cost-diff0
(*.f64 (*.f64 y x) y)
cost-diff0
(fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x)
cost-diff0
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
cost-diff0
(*.f64 y x)
cost-diff0
(*.f64 #s(literal -1/6 binary64) y)
cost-diff0
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
cost-diff0
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
cost-diff0
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
cost-diff0
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))
cost-diff0
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y)))
cost-diff0
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
cost-diff0
(*.f64 (*.f64 y y) x)
cost-diff0
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
cost-diff0
#s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
cost-diff0
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
cost-diff0
(*.f64 #s(literal -1/6 binary64) x)
cost-diff0
(*.f64 y (*.f64 #s(literal -1/6 binary64) x))
cost-diff0
(fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x)
cost-diff0
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033221
049219
188219
2168219
3383219
4677219
51052219
64673219
08296216
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
(fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x)
y
(*.f64 y (*.f64 #s(literal -1/6 binary64) x))
(*.f64 #s(literal -1/6 binary64) x)
#s(literal -1/6 binary64)
x
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
(*.f64 (*.f64 y y) x)
(*.f64 y y)
y
x
#s(literal -1/6 binary64)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
x
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y)))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
(*.f64 #s(literal -1/6 binary64) y)
#s(literal -1/6 binary64)
y
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(*.f64 #s(literal -1/6 binary64) y)
#s(literal -1/6 binary64)
y
(*.f64 y x)
x
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 y x) y)
(*.f64 y x)
y
x
#s(literal -1/6 binary64)
Outputs
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x))
(fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x)
y
(*.f64 y (*.f64 #s(literal -1/6 binary64) x))
(*.f64 (*.f64 #s(literal -1/6 binary64) x) y)
(*.f64 #s(literal -1/6 binary64) x)
#s(literal -1/6 binary64)
x
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
(*.f64 (*.f64 y y) x)
(*.f64 y y)
y
x
#s(literal -1/6 binary64)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
(*.f64 #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))) x)
x
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y)))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(*.f64 #s(literal -1/6 binary64) y)
#s(literal -1/6 binary64)
y
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x)
(*.f64 #s(literal -1/6 binary64) y)
#s(literal -1/6 binary64)
y
(*.f64 y x)
x
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x))
(fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x)
(*.f64 (*.f64 y x) y)
(*.f64 (*.f64 y y) x)
(*.f64 y x)
y
x
#s(literal -1/6 binary64)

localize166.0ms (4.2%)

Memory
14.6MiB live, 112.4MiB allocated; 25ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y x)
accuracy0.0703125
(fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x)
accuracy0.14453125
(*.f64 (*.f64 y x) y)
accuracy31.767185026014644
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
accuracy0.0
(*.f64 y x)
accuracy0.06640625
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
accuracy0.3515625
(*.f64 #s(literal -1/6 binary64) y)
accuracy31.767185026014644
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
accuracy0.14453125
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
accuracy0.3515625
(*.f64 #s(literal -1/6 binary64) y)
accuracy30.68761921972793
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))
accuracy31.86366729120712
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y)))
accuracy0.1953125
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
accuracy6.381166140989508
(*.f64 (*.f64 y y) x)
accuracy30.488370375748335
#s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
accuracy31.767185026014644
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
accuracy0.03125
(fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x)
accuracy0.16015625
(*.f64 y (*.f64 #s(literal -1/6 binary64) x))
accuracy0.328125
(*.f64 #s(literal -1/6 binary64) x)
accuracy31.767185026014644
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
Samples
100.0ms256×0valid
Compiler

Compiled 139 to 27 computations (80.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 83.0ms
ival-sin: 52.0ms (62.3% of total)
ival-mult: 20.0ms (24% of total)
ival-add: 6.0ms (7.2% of total)
const: 4.0ms (4.8% of total)
ival-div: 2.0ms (2.4% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series18.0ms (0.5%)

Memory
4.1MiB live, 46.2MiB allocated; 8ms collecting garbage
Counts
19 → 21
Calls
Call 1
Inputs
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
(fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x)
(*.f64 y (*.f64 #s(literal -1/6 binary64) x))
(*.f64 #s(literal -1/6 binary64) x)
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
(*.f64 (*.f64 y y) x)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y)))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(*.f64 #s(literal -1/6 binary64) y)
(*.f64 y x)
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 y x) y)
Outputs
(/ (* x (sin y)) y)
(* x (+ 1 (* -1/6 (pow y 2))))
(* -1/6 (* x y))
(* -1/6 x)
(* -1/6 (* x (pow y 2)))
(* x (pow y 2))
(* x y)
(* -1 (* x (- (* 1/6 (pow y 2)) 1)))
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(* -1/6 (pow y 2))
(* -1/6 y)
(* (pow y 2) (+ (* -1/6 x) (/ x (pow y 2))))
(/ (sin y) y)
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
Calls

6 calls:

TimeVariablePointExpression
7.0ms
x
@inf
((* x (/ (sin y) y)) (+ (* y (* y (* -1/6 x))) x) (* y (* -1/6 x)) (* -1/6 x) (* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* (* y y) x) -1/6) (* (* y y) x) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* -1/6 y) y) (* x (/ (sin y) y)) (+ (* (* -1/6 y) (* y x)) x) (* -1/6 y) (* y x) (* x (/ (sin y) y)) (+ (* (* (* y x) y) -1/6) x) (* (* y x) y))
2.0ms
x
@-inf
((* x (/ (sin y) y)) (+ (* y (* y (* -1/6 x))) x) (* y (* -1/6 x)) (* -1/6 x) (* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* (* y y) x) -1/6) (* (* y y) x) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* -1/6 y) y) (* x (/ (sin y) y)) (+ (* (* -1/6 y) (* y x)) x) (* -1/6 y) (* y x) (* x (/ (sin y) y)) (+ (* (* (* y x) y) -1/6) x) (* (* y x) y))
2.0ms
y
@-inf
((* x (/ (sin y) y)) (+ (* y (* y (* -1/6 x))) x) (* y (* -1/6 x)) (* -1/6 x) (* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* (* y y) x) -1/6) (* (* y y) x) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* -1/6 y) y) (* x (/ (sin y) y)) (+ (* (* -1/6 y) (* y x)) x) (* -1/6 y) (* y x) (* x (/ (sin y) y)) (+ (* (* (* y x) y) -1/6) x) (* (* y x) y))
2.0ms
y
@inf
((* x (/ (sin y) y)) (+ (* y (* y (* -1/6 x))) x) (* y (* -1/6 x)) (* -1/6 x) (* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* (* y y) x) -1/6) (* (* y y) x) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* -1/6 y) y) (* x (/ (sin y) y)) (+ (* (* -1/6 y) (* y x)) x) (* -1/6 y) (* y x) (* x (/ (sin y) y)) (+ (* (* (* y x) y) -1/6) x) (* (* y x) y))
2.0ms
x
@0
((* x (/ (sin y) y)) (+ (* y (* y (* -1/6 x))) x) (* y (* -1/6 x)) (* -1/6 x) (* x (/ (sin y) y)) (+ (* (* (* y y) x) -1/6) x) (* (* (* y y) x) -1/6) (* (* y y) x) (* x (/ (sin y) y)) (/ (sin y) y) (+ (* (* y y) -1/6) 1) (* (* -1/6 y) y) (* x (/ (sin y) y)) (+ (* (* -1/6 y) (* y x)) x) (* -1/6 y) (* y x) (* x (/ (sin y) y)) (+ (* (* (* y x) y) -1/6) x) (* (* y x) y))

simplify189.0ms (4.8%)

Memory
-20.6MiB live, 177.2MiB allocated; 19ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055172
1160172
2500168
31993166
47111166
08101151
Stop Event
iter limit
node limit
Counts
21 → 20
Calls
Call 1
Inputs
(/ (* x (sin y)) y)
(* x (+ 1 (* -1/6 (pow y 2))))
(* -1/6 (* x y))
(* -1/6 x)
(* -1/6 (* x (pow y 2)))
(* x (pow y 2))
(* x y)
(* -1 (* x (- (* 1/6 (pow y 2)) 1)))
x
(+ x (* -1/6 (* x (pow y 2))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
1
(+ 1 (* -1/6 (pow y 2)))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(* -1/6 (pow y 2))
(* -1/6 y)
(* (pow y 2) (+ (* -1/6 x) (/ x (pow y 2))))
(/ (sin y) y)
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
Outputs
(/ (* x (sin y)) y)
(*.f64 (/.f64 (sin.f64 y) y) x)
(* x (+ 1 (* -1/6 (pow y 2))))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(* -1/6 (* x y))
(*.f64 (*.f64 y x) #s(literal -1/6 binary64))
(* -1/6 x)
(*.f64 #s(literal -1/6 binary64) x)
(* -1/6 (* x (pow y 2)))
(*.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64))
(* x (pow y 2))
(*.f64 (*.f64 y x) y)
(* x y)
(*.f64 y x)
(* -1 (* x (- (* 1/6 (pow y 2)) 1)))
(*.f64 (neg.f64 x) (fma.f64 #s(literal 1/6 binary64) (*.f64 y y) #s(literal -1 binary64)))
x
(+ x (* -1/6 (* x (pow y 2))))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))
(*.f64 x (fma.f64 #s(literal 1/120 binary64) (pow.f64 y #s(literal 4 binary64)) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
(+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))
(fma.f64 (*.f64 x (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64))) (*.f64 y y) x)
1
#s(literal 1 binary64)
(+ 1 (* -1/6 (pow y 2)))
(fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))
(fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
(+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) (*.f64 y y) #s(literal -1/6 binary64)) (*.f64 y y) #s(literal 1 binary64))
(* -1/6 (pow y 2))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(* -1/6 y)
(*.f64 #s(literal -1/6 binary64) y)
(* (pow y 2) (+ (* -1/6 x) (/ x (pow y 2))))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(/ (sin y) y)
(/.f64 (sin.f64 y) y)
(* (pow y 2) (- (/ 1 (pow y 2)) 1/6))
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 y y)) #s(literal 1/6 binary64)) y) y)

rewrite90.0ms (2.3%)

Memory
-17.0MiB live, 85.7MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033197
049195
1157195
0595192
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
19 → 155
Calls
Call 1
Inputs
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
(fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x)
(*.f64 y (*.f64 #s(literal -1/6 binary64) x))
(*.f64 #s(literal -1/6 binary64) x)
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
(*.f64 (*.f64 y y) x)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y)))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(*.f64 #s(literal -1/6 binary64) y)
(*.f64 y x)
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
(fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x)
(*.f64 (*.f64 y x) y)
Outputs
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64))) (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x))))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64))))
(fma.f64 (neg.f64 y) (*.f64 (neg.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (*.f64 y x) (*.f64 #s(literal -1/6 binary64) y) x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(fma.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) x x)
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x)
(fma.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) y x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 y y) x)
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x) x)
(fma.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) x)
(fma.f64 x (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) x)
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 y x)) (*.f64 #s(literal -1/6 binary64) y)))
(-.f64 x (*.f64 (neg.f64 (*.f64 #s(literal -1/6 binary64) y)) (*.f64 y x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64))) x))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 y y) x)) #s(literal -1/6 binary64)))
(-.f64 x (*.f64 (neg.f64 (*.f64 y y)) (*.f64 #s(literal -1/6 binary64) x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y)) y))
(-.f64 x (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 y y) x)))
(-.f64 x (*.f64 (neg.f64 y) (*.f64 (*.f64 #s(literal -1/6 binary64) x) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)
(+.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 (*.f64 y x) #s(literal -1/6 binary64))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) x)
(*.f64 (*.f64 #s(literal -1/6 binary64) x) y)
(*.f64 #s(literal -1/6 binary64) (*.f64 y x))
(*.f64 y (*.f64 #s(literal -1/6 binary64) x))
(*.f64 x (*.f64 #s(literal -1/6 binary64) y))
(*.f64 #s(literal -1/6 binary64) x)
(*.f64 x #s(literal -1/6 binary64))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
#s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 (neg.f64 y) (*.f64 (neg.f64 y) (*.f64 #s(literal -1/6 binary64) x)))
(*.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) (*.f64 #s(literal -1/6 binary64) x)))
(*.f64 (*.f64 y x) (*.f64 #s(literal -1/6 binary64) y))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x))
(*.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) x)
(*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))
(*.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x))
(*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) y)
(*.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 y y))
(*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x))
(*.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) x) y))
(*.f64 x (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 x (neg.f64 y)) (neg.f64 y))
(*.f64 (*.f64 x (fabs.f64 y)) (fabs.f64 y))
(*.f64 (neg.f64 y) (*.f64 (neg.f64 y) x))
(*.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) x))
(*.f64 (*.f64 y x) y)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 x (*.f64 y y))
(*.f64 #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))) x)
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
#s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64))))
#s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 #s(literal -1/6 binary64) (neg.f64 y)) (neg.f64 y))
(*.f64 (*.f64 #s(literal -1/6 binary64) (fabs.f64 y)) (fabs.f64 y))
(*.f64 (neg.f64 y) (*.f64 (neg.f64 y) #s(literal -1/6 binary64)))
(*.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y #s(literal 1 binary64)))
(*.f64 (*.f64 #s(literal -1/6 binary64) y) y)
(*.f64 #s(literal 1 binary64) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))
(*.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) #s(literal 1 binary64))
(*.f64 (*.f64 y y) #s(literal -1/6 binary64))
(*.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) #s(literal 1 binary64)))
(*.f64 #s(literal -1/6 binary64) (*.f64 y y))
(*.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) y) #s(literal 1 binary64)))
(*.f64 y (*.f64 #s(literal -1/6 binary64) y))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64))) (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x))))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64))))
(fma.f64 (neg.f64 y) (*.f64 (neg.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (*.f64 y x) (*.f64 #s(literal -1/6 binary64) y) x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(fma.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) x x)
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x)
(fma.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) y x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 y y) x)
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x) x)
(fma.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) x)
(fma.f64 x (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) x)
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 y x)) (*.f64 #s(literal -1/6 binary64) y)))
(-.f64 x (*.f64 (neg.f64 (*.f64 #s(literal -1/6 binary64) y)) (*.f64 y x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64))) x))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 y y) x)) #s(literal -1/6 binary64)))
(-.f64 x (*.f64 (neg.f64 (*.f64 y y)) (*.f64 #s(literal -1/6 binary64) x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y)) y))
(-.f64 x (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 y y) x)))
(-.f64 x (*.f64 (neg.f64 y) (*.f64 (*.f64 #s(literal -1/6 binary64) x) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)
(+.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 #s(literal -1/6 binary64) y)
(*.f64 y #s(literal -1/6 binary64))
(*.f64 y x)
(*.f64 x y)
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x))
(*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) x)
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64))) (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x))))
(/.f64 (fma.f64 (pow.f64 (*.f64 (*.f64 y y) x) #s(literal 3 binary64)) #s(literal -1/216 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64))))
(fma.f64 (neg.f64 y) (*.f64 (neg.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) (*.f64 #s(literal -1/6 binary64) x)) x)
(fma.f64 (*.f64 y x) (*.f64 #s(literal -1/6 binary64) y) x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x)
(fma.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) x x)
(fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 y y) (*.f64 #s(literal -1/6 binary64) x) x)
(fma.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) y x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 y y) x)
(fma.f64 #s(literal -1/6 binary64) (*.f64 (*.f64 y y) x) x)
(fma.f64 y (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) x)
(fma.f64 x (*.f64 (*.f64 y y) #s(literal -1/6 binary64)) x)
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 y x)) (*.f64 #s(literal -1/6 binary64) y)))
(-.f64 x (*.f64 (neg.f64 (*.f64 #s(literal -1/6 binary64) y)) (*.f64 y x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 y y) #s(literal -1/6 binary64))) x))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 y y) x)) #s(literal -1/6 binary64)))
(-.f64 x (*.f64 (neg.f64 (*.f64 y y)) (*.f64 #s(literal -1/6 binary64) x)))
(-.f64 x (*.f64 (neg.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y)) y))
(-.f64 x (*.f64 #s(literal 1/6 binary64) (*.f64 (*.f64 y y) x)))
(-.f64 x (*.f64 (neg.f64 y) (*.f64 (*.f64 #s(literal -1/6 binary64) x) y)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))) (pow.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) #s(literal 2 binary64)))))
(+.f64 (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)) x)
(+.f64 x (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64)))
(*.f64 (*.f64 x (neg.f64 y)) (neg.f64 y))
(*.f64 (*.f64 x (fabs.f64 y)) (fabs.f64 y))
(*.f64 (neg.f64 y) (*.f64 (neg.f64 y) x))
(*.f64 (fabs.f64 y) (*.f64 (fabs.f64 y) x))
(*.f64 (*.f64 y x) y)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 x (*.f64 y y))

eval11.0ms (0.3%)

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

Compiled 2 279 to 372 computations (83.7% saved)

prune13.0ms (0.3%)

Memory
-18.2MiB live, 27.0MiB allocated; 4ms collecting garbage
Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New1053108
Fresh000
Picked235
Done055
Total10711118
Accuracy
99.9%
Counts
118 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
88.7%
(/.f64 (*.f64 (sin.f64 y) x) y)
40.0%
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
86.5%
(*.f64 (/.f64 x y) (sin.f64 y))
99.8%
(*.f64 x (/.f64 (sin.f64 y) y))
2.8%
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
51.2%
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
50.4%
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
2.8%
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
2.8%
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64))))
2.8%
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) y)))
2.8%
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 y x) (*.f64 #s(literal -1/6 binary64) y))))
Compiler

Compiled 425 to 187 computations (56% saved)

regimes51.0ms (1.3%)

Memory
-7.6MiB live, 36.0MiB allocated; 11ms collecting garbage
Counts
17 → 1
Calls
Call 1
Inputs
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 y x) (*.f64 #s(literal -1/6 binary64) y))))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) y)))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64))))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
(*.f64 x (/.f64 (sin.f64 y) y))
(*.f64 (/.f64 x y) (sin.f64 y))
(/.f64 (*.f64 (sin.f64 y) x) y)
Outputs
(*.f64 x (/.f64 (sin.f64 y) y))
Calls

4 calls:

35.0ms
(/.f64 (sin.f64 y) y)
5.0ms
(*.f64 x (/.f64 (sin.f64 y) y))
5.0ms
y
5.0ms
x
Results
AccuracySegmentsBranch
99.8%1(/.f64 (sin.f64 y) y)
99.8%1(*.f64 x (/.f64 (sin.f64 y) y))
99.8%1x
99.8%1y
Compiler

Compiled 12 to 13 computations (-8.3% saved)

regimes18.0ms (0.4%)

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

Total -31.2b remaining (-100%)

Threshold costs -31.2b (-100%)

Counts
14 → 1
Calls
Call 1
Inputs
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 y x) (*.f64 #s(literal -1/6 binary64) y))))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 #s(literal -1/6 binary64) x) y) y)))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64))))
#s(approx (* x (/ (sin y) y)) #s(approx (+ (* (* (* y y) x) -1/6) x) (*.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64))))
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 #s(literal -1/6 binary64) y) y))))
(*.f64 x #s(approx (/ (sin y) y) #s(approx (+ (* (* y y) -1/6) 1) (*.f64 (*.f64 y y) #s(literal -1/6 binary64)))))
#s(approx (* x (/ (sin y) y)) (fma.f64 y (*.f64 y (*.f64 #s(literal -1/6 binary64) x)) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) (*.f64 y x) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y x) y) #s(literal -1/6 binary64) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 #s(literal -1/6 binary64) y) y #s(literal 1 binary64))))
(*.f64 x #s(approx (/ (sin y) y) (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64))))
(/.f64 #s(approx (* (sin y) x) (*.f64 y x)) y)
Outputs
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
Calls

4 calls:

4.0ms
(*.f64 x (/.f64 (sin.f64 y) y))
4.0ms
x
4.0ms
y
4.0ms
(/.f64 (sin.f64 y) y)
Results
AccuracySegmentsBranch
51.2%1(/.f64 (sin.f64 y) y)
51.2%1(*.f64 x (/.f64 (sin.f64 y) y))
51.2%1x
51.2%1y
Compiler

Compiled 12 to 13 computations (-8.3% saved)

simplify102.0ms (2.6%)

Memory
-12.5MiB live, 32.9MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
11214
21514
32314
44614
521914
6222314
7534014
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))
Outputs
(*.f64 x (/.f64 (sin.f64 y) y))
(*.f64 x #s(approx (/ (sin y) y) #s(literal 1 binary64)))

derivations49.0ms (1.3%)

Memory
-27.8MiB live, 30.6MiB allocated; 19ms collecting garbage
Stop Event
fuel
Compiler

Compiled 14 to 10 computations (28.6% saved)

preprocess42.0ms (1.1%)

Memory
27.9MiB live, 72.8MiB allocated; 5ms collecting garbage
Remove

(negabs x)

(abs y)

Compiler

Compiled 88 to 70 computations (20.5% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...