Linear.Quaternion:$cexp from linear-1.19.1.3

Time bar (total: 1.2s)

start0.0ms (0%)

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

analyze20.0ms (1.7%)

Memory
-13.8MiB live, 31.3MiB allocated; 6ms 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)

sample765.0ms (64.7%)

Memory
19.6MiB live, 1 650.5MiB allocated; 66ms collecting garbage
Samples
528.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 332.0ms
ival-sin: 205.0ms (61.7% of total)
ival-div: 67.0ms (20.2% of total)
ival-mult: 55.0ms (16.6% of total)
ival-assert: 3.0ms (0.9% of total)
adjust: 2.0ms (0.6% of total)
Bogosity

explain68.0ms (5.8%)

Memory
-38.8MiB live, 157.0MiB allocated; 5ms 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
37.0ms512×0valid
Compiler

Compiled 38 to 19 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-sin: 13.0ms (59.7% of total)
ival-div: 4.0ms (18.4% of total)
ival-mult: 3.0ms (13.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess61.0ms (5.2%)

Memory
19.6MiB live, 67.3MiB allocated; 1ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01638
13938
28438
313738
426138
553338
6123938
7318638
8656038
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.1MiB live, 1.1MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 x (/.f64 (sin.f64 y) y))
Compiler

Compiled 6 to 5 computations (16.7% saved)

series8.0ms (0.7%)

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

6 calls:

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

rewrite95.0ms (8.1%)

Memory
-23.8MiB live, 166.5MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064245
068245
1318245
02690231
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
22 → 33
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
x
(/.f64 (sin.f64 y) y)
(sin.f64 y)
y
#s(approx (* x (/ (sin y) y)) #s(hole binary64 (/ (* x (sin y)) y)))
#s(approx x #s(hole binary64 x))
#s(approx (* x (/ (sin y) y)) #s(hole binary64 x))
#s(approx (* x (/ (sin y) y)) #s(hole binary64 (+ x (* -1/6 (* x (pow y 2))))))
#s(approx (* x (/ (sin y) y)) #s(hole binary64 (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))))
#s(approx (* x (/ (sin y) y)) #s(hole binary64 (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))))
#s(approx (/ (sin y) y) #s(hole binary64 1))
#s(approx (/ (sin y) y) #s(hole binary64 (+ 1 (* -1/6 (pow y 2)))))
#s(approx (/ (sin y) y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6)))))
#s(approx (/ (sin y) y) #s(hole binary64 (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6)))))
#s(approx (sin y) #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx y #s(hole binary64 y))
#s(approx (/ (sin y) y) #s(hole binary64 (/ (sin y) y)))
#s(approx (sin y) #s(hole binary64 (sin y)))
Outputs
(*.f64 (/.f64 (sin.f64 y) y) x)
(*.f64 (sin.f64 y) (/.f64 x 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)))
x
(/.f64 (neg.f64 (neg.f64 (sin.f64 y))) (neg.f64 (neg.f64 y)))
(/.f64 (neg.f64 (sin.f64 y)) (neg.f64 y))
(/.f64 (sin.f64 y) y)
(neg.f64 (/.f64 (neg.f64 (sin.f64 y)) y))
(neg.f64 (/.f64 (sin.f64 y) (neg.f64 y)))
(sin.f64 y)
y
#s(approx (* x (/ (sin y) y)) (*.f64 (/.f64 (sin.f64 y) y) x))
#s(approx x x)
#s(approx (* x (/ (sin y) y)) x)
#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 (fma.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x))
#s(approx (* x (/ (sin y) y)) (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal 1/120 binary64) x)) y) y (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x))
#s(approx (/ (sin y) y) #s(literal 1 binary64))
#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 (*.f64 #s(literal 1/120 binary64) (*.f64 y y)) #s(literal 1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx (/ (sin y) y) (fma.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) y) y) #s(literal 1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)))
#s(approx (sin y) y)
#s(approx (sin y) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 y y)) #s(literal 1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (fma.f64 (*.f64 y (*.f64 y y)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) y) y) #s(literal 1/6 binary64)) y))
#s(approx y y)
#s(approx (/ (sin y) y) (/.f64 (sin.f64 y) y))
#s(approx (sin y) (sin.f64 y))

eval4.0ms (0.4%)

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

Compiled 387 to 103 computations (73.4% saved)

prune8.0ms (0.7%)

Memory
-27.1MiB live, 20.5MiB allocated; 1ms collecting garbage
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New33235
Fresh000
Picked011
Done000
Total33336
Accuracy
99.9%
Counts
36 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.3%
(/.f64 (*.f64 (sin.f64 y) x) y)
88.7%
(*.f64 (sin.f64 y) (/.f64 x y))
99.7%
(*.f64 x (/.f64 (sin.f64 y) y))
Compiler

Compiled 18 to 15 computations (16.7% saved)

series9.0ms (0.7%)

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

6 calls:

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

rewrite87.0ms (7.4%)

Memory
-14.4MiB live, 129.4MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
078374
084374
1357374
02874352
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
30 → 51
Calls
Call 1
Inputs
(*.f64 (sin.f64 y) (/.f64 x y))
(sin.f64 y)
y
(/.f64 x y)
x
(/.f64 (*.f64 (sin.f64 y) x) y)
(*.f64 (sin.f64 y) x)
#s(approx (* (sin y) (/ x y)) #s(hole binary64 (/ (* x (sin y)) y)))
#s(approx (/ x y) #s(hole binary64 (/ x y)))
#s(approx x #s(hole binary64 x))
#s(approx (/ (* (sin y) x) y) #s(hole binary64 (/ (* x (sin y)) y)))
#s(approx (* (sin y) x) #s(hole binary64 (* x (sin y))))
#s(approx (* (sin y) (/ x y)) #s(hole binary64 x))
#s(approx (* (sin y) (/ x y)) #s(hole binary64 (+ x (* -1/6 (* x (pow y 2))))))
#s(approx (* (sin y) (/ x y)) #s(hole binary64 (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))))
#s(approx (* (sin y) (/ x y)) #s(hole binary64 (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))))
#s(approx (sin y) #s(hole binary64 y))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* -1/6 (pow y 2))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* 1/120 (pow y 2)) 1/6))))))
#s(approx (sin y) #s(hole binary64 (* y (+ 1 (* (pow y 2) (- (* (pow y 2) (+ 1/120 (* -1/5040 (pow y 2)))) 1/6))))))
#s(approx y #s(hole binary64 y))
#s(approx (/ (* (sin y) x) y) #s(hole binary64 x))
#s(approx (/ (* (sin y) x) y) #s(hole binary64 (+ x (* -1/6 (* x (pow y 2))))))
#s(approx (/ (* (sin y) x) y) #s(hole binary64 (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2))))))))
#s(approx (/ (* (sin y) x) y) #s(hole binary64 (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x))))))))
#s(approx (* (sin y) x) #s(hole binary64 (* x y)))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* -1/6 (* x (pow y 2)))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* 1/120 (* x (pow y 2)))))))))
#s(approx (* (sin y) x) #s(hole binary64 (* y (+ x (* (pow y 2) (+ (* -1/6 x) (* (pow y 2) (+ (* -1/5040 (* x (pow y 2))) (* 1/120 x)))))))))
#s(approx (sin y) #s(hole binary64 (sin y)))
Outputs
(*.f64 (/.f64 (sin.f64 y) y) x)
(*.f64 (/.f64 x y) (sin.f64 y))
(*.f64 (sin.f64 y) (/.f64 x 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)))
(sin.f64 y)
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)))
x
(*.f64 (/.f64 (sin.f64 y) y) x)
(*.f64 (/.f64 x y) (sin.f64 y))
(*.f64 (sin.f64 y) (/.f64 x 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))
#s(approx (* (sin y) (/ x y)) (*.f64 (/.f64 (sin.f64 y) y) x))
#s(approx (/ x y) (/.f64 x y))
#s(approx x x)
#s(approx (* (sin y) (/ x y)) (*.f64 (/.f64 (sin.f64 y) y) x))
#s(approx (* (sin y) x) (*.f64 (sin.f64 y) x))
#s(approx (* (sin y) (/ x y)) x)
#s(approx (* (sin y) (/ x y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
#s(approx (* (sin y) (/ x y)) (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x))
#s(approx (* (sin y) (/ x y)) (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal 1/120 binary64) x)) y) y (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x))
#s(approx (sin y) y)
#s(approx (sin y) (*.f64 (fma.f64 (*.f64 y y) #s(literal -1/6 binary64) #s(literal 1 binary64)) y))
#s(approx (sin y) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 y y)) #s(literal 1/6 binary64)) (*.f64 y y) #s(literal 1 binary64)) y))
#s(approx (sin y) (fma.f64 (*.f64 y (*.f64 y y)) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 y y) #s(literal 1/120 binary64)) y) y) #s(literal 1/6 binary64)) y))
#s(approx y y)
#s(approx (* (sin y) (/ x y)) x)
#s(approx (* (sin y) (/ x y)) (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x))
#s(approx (* (sin y) (/ x y)) (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x))
#s(approx (* (sin y) (/ x y)) (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal 1/120 binary64) x)) y) y (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x))
#s(approx (* (sin y) x) (*.f64 x y))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (*.f64 (*.f64 y y) x) #s(literal -1/6 binary64) x) y))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y))
#s(approx (* (sin y) x) (*.f64 (fma.f64 (fma.f64 (*.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 (*.f64 y y) x) (*.f64 #s(literal 1/120 binary64) x)) y) y (*.f64 #s(literal -1/6 binary64) x)) (*.f64 y y) x) y))
#s(approx (sin y) (sin.f64 y))

eval5.0ms (0.4%)

Memory
13.7MiB live, 13.8MiB allocated; 0ms collecting garbage
Compiler

Compiled 560 to 121 computations (78.4% saved)

prune11.0ms (0.9%)

Memory
-23.0MiB live, 24.7MiB allocated; 1ms collecting garbage
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New51051
Fresh000
Picked022
Done011
Total51354
Accuracy
99.9%
Counts
54 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
89.3%
(/.f64 (*.f64 (sin.f64 y) x) y)
88.7%
(*.f64 (sin.f64 y) (/.f64 x y))
99.7%
(*.f64 x (/.f64 (sin.f64 y) y))
Compiler

Compiled 36 to 24 computations (33.3% saved)

regimes6.0ms (0.5%)

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

Total -13.9b remaining (-8327.7%)

Threshold costs -13.9b (-8327.7%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
(*.f64 (sin.f64 y) (/.f64 x y))
(/.f64 (*.f64 (sin.f64 y) x) y)
Outputs
(*.f64 x (/.f64 (sin.f64 y) y))
Calls

4 calls:

1.0ms
y
1.0ms
(*.f64 x (/.f64 (sin.f64 y) y))
1.0ms
x
1.0ms
(/.f64 (sin.f64 y) y)
Results
AccuracySegmentsBranch
99.7%1(/.f64 (sin.f64 y) y)
99.7%1(*.f64 x (/.f64 (sin.f64 y) y))
99.7%1x
99.7%1y
Compiler

Compiled 12 to 13 computations (-8.3% saved)

simplify9.0ms (0.8%)

Memory
22.7MiB live, 22.7MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sin.f64 y) y))
Outputs
(*.f64 x (/.f64 (sin.f64 y) y))

derivations0.0ms (0%)

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

Compiled 6 to 5 computations (16.7% saved)

preprocess25.0ms (2.1%)

Memory
-40.6MiB live, 56.4MiB allocated; 3ms collecting garbage
Remove

(negabs x)

(abs y)

Compiler

Compiled 72 to 60 computations (16.7% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...