Graphics.Rasterific.Svg.PathConverter:segmentToBezier from rasterific-svg-0.2.3.1, A

Time bar (total: 6.1s)

start0.0ms (0%)

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

analyze255.0ms (4.2%)

Memory
38.4MiB live, 422.1MiB allocated; 96ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
25%25%75%0%0%0%0%3
37.5%37.5%62.5%0%0%0%0%4
43.8%43.7%56.2%0%0%0%0%5
46.9%46.9%53.1%0%0%0%0%6
48.4%48.4%51.5%0%0%0%0%7
49.2%49.2%50.8%0%0%0%0%8
49.6%49.6%50.4%0%0%0%0%9
49.8%49.8%50.2%0%0%0%0%10
49.9%49.9%50.1%0%0%0%0%11
50%49.9%50%0%0%0%0%12
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample1.9s (30.9%)

Memory
15.8MiB live, 2 557.0MiB allocated; 564ms collecting garbage
Samples
1.4s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.1s
ival-sin: 618.0ms (55.4% of total)
ival-mult: 304.0ms (27.2% of total)
ival-div: 170.0ms (15.2% of total)
exact: 12.0ms (1.1% of total)
ival-true: 6.0ms (0.5% of total)
ival-assert: 4.0ms (0.4% of total)
adjust: 3.0ms (0.3% of total)
Bogosity

explain204.0ms (3.4%)

Memory
33.6MiB live, 225.0MiB allocated; 22ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
690-1(-9.91850093731027e-161)(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
00-0-(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
0125(1.7990889791801317e+51)0-(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
00-0-#s(literal 8 binary64)
00-0-#s(literal 3 binary64)
00-0-(*.f64 x #s(literal 1/2 binary64))
00-0-(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
00-0-(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
00-0-(sin.f64 x)
00-0-#s(literal 1/2 binary64)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sin.f64(sin.f64 (*.f64 x #s(literal 1/2 binary64)))sensitivity1250
/.f64(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))u/n680
(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))underflow68
Confusion
Predicted +Predicted -
+681
-12562
Precision
0.35233160621761656
Recall
0.9855072463768116
Confusion?
Predicted +Predicted MaybePredicted -
+6801
-125062
Precision?
0.35233160621761656
Recall?
0.9855072463768116
Freqs
test
numberfreq
063
1193
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
96.0ms512×0valid
Compiler

Compiled 126 to 37 computations (70.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 80.0ms
ival-sin: 41.0ms (51.2% of total)
ival-div: 27.0ms (33.7% of total)
ival-mult: 10.0ms (12.5% of total)
exact: 1.0ms (1.2% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess337.0ms (5.6%)

Memory
2.0MiB live, 334.3MiB allocated; 62ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01435
13129
210128
337128
490728
5196128
6400628
7797428
01114
01914
12614
24014
38314
418614
539814
682314
7200914
8602514
0801014
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
Outputs
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (/.f64 #s(literal -8/3 binary64) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
Symmetry

(negabs x)

Compiler

Compiled 16 to 11 computations (31.3% saved)

eval0.0ms (0%)

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

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.4%
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
Compiler

Compiled 16 to 11 computations (31.3% saved)

simplify166.0ms (2.7%)

Memory
-26.8MiB live, 166.3MiB allocated; 14ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
cost-diff0
(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
cost-diff0
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
cost-diff2
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01145
01945
12645
24045
38345
418645
539845
682345
7200945
8602545
0801045
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
#s(literal 8 binary64)
#s(literal 3 binary64)
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
(sin.f64 x)
Outputs
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (/.f64 #s(literal -8/3 binary64) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal -1/2 binary64) x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
#s(literal 8/3 binary64)
#s(literal 8 binary64)
#s(literal 3 binary64)
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) x)
x
#s(literal 1/2 binary64)
(sin.f64 x)

localize69.0ms (1.1%)

Memory
11.5MiB live, 109.8MiB allocated; 8ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
accuracy0.2265625
(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy0.3359375
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy16.228328588299583
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
Samples
61.0ms256×0valid
Compiler

Compiled 55 to 13 computations (76.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-sin: 13.0ms (57.9% of total)
ival-mult: 5.0ms (22.3% of total)
ival-div: 4.0ms (17.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.1%)

Memory
11.6MiB live, 11.6MiB allocated; 0ms collecting garbage
Counts
5 → 20
Calls
Call 1
Inputs
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
Outputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(sin (* 1/2 x))
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
((/ 8 3) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2)))
1.0ms
x
@inf
((/ 8 3) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2)))
1.0ms
x
@0
((/ 8 3) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2)))

simplify158.0ms (2.6%)

Memory
-2.8MiB live, 220.8MiB allocated; 41ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
089229
1291229
2830229
33079229
47156229
08561211
Stop Event
iter limit
node limit
Counts
20 → 20
Calls
Call 1
Inputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(sin (* 1/2 x))
Outputs
(* 2/3 x)
(*.f64 #s(literal 2/3 binary64) x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
(* 2/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(*.f64 (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/30240 binary64) (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (*.f64 x x) #s(literal 2/3 binary64)) (*.f64 x x))
(* 4/3 x)
(*.f64 #s(literal 4/3 binary64) x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/241920 binary64) (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (*.f64 #s(literal 4/3 binary64) x))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/48 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/645120 binary64) (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64))) (*.f64 #s(literal 1/2 binary64) x))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(* 8/3 (sin (* 1/2 x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(sin (* 1/2 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))

rewrite53.0ms (0.9%)

Memory
36.1MiB live, 80.9MiB allocated; 13ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01136
01936
12930
28130
036030
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
5 → 33
Calls
Call 1
Inputs
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
Outputs
#s(literal 8/3 binary64)
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (neg.f64 (sin.f64 x))))
(*.f64 #s(literal -8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (neg.f64 (sin.f64 x))))
(*.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64))) (/.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 x))))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(*.f64 #s(literal 8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x)))
(/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (sin.f64 x)))
(*.f64 (*.f64 #s(literal 8/3 binary64) (fabs.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))) (fabs.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (neg.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64)))) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64))))
(*.f64 #s(literal -8/3 binary64) (neg.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))))
(*.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64))) (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (fabs.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (*.f64 (fabs.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) #s(literal 8/3 binary64)))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64)))))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (neg.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 #s(literal 8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))
(/.f64 (*.f64 (-.f64 (cos.f64 #s(literal 0 binary64)) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 8/3 binary64)) #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 8/3 binary64) (-.f64 (cos.f64 #s(literal 0 binary64)) (cos.f64 (*.f64 #s(literal 1 binary64) x)))) #s(literal 2 binary64))
(neg.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))

eval37.0ms (0.6%)

Memory
-55.7MiB live, 52.5MiB allocated; 31ms collecting garbage
Compiler

Compiled 1 151 to 229 computations (80.1% saved)

prune11.0ms (0.2%)

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

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New421759
Fresh000
Picked101
Done000
Total431760
Accuracy
99.6%
Counts
60 → 17
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.5%
(/.f64 (/.f64 (*.f64 (-.f64 (cos.f64 #s(literal 0 binary64)) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 8/3 binary64)) #s(literal 2 binary64)) (sin.f64 x))
74.3%
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
26.0%
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) #s(approx (sin (* x 1/2)) (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 x))
74.4%
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
25.9%
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
26.0%
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 #s(literal 4/3 binary64) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
25.0%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/30240 binary64) (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (*.f64 x x) #s(literal 2/3 binary64)) (*.f64 x x))) (sin.f64 x))
26.5%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
26.6%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
74.3%
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
74.3%
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
99.3%
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
99.2%
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.9%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
51.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
Compiler

Compiled 726 to 518 computations (28.7% saved)

simplify158.0ms (2.6%)

Memory
-19.6MiB live, 164.8MiB allocated; 32ms collecting garbage
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
cost-diff0
(pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))
cost-diff0
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
cost-diff0
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
cost-diff0
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
cost-diff0
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))
cost-diff0
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
cost-diff0
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
cost-diff0
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
cost-diff0
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
cost-diff0
(*.f64 #s(literal 2/3 binary64) x)
cost-diff0
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
cost-diff0
(*.f64 #s(literal 1/2 binary64) x)
cost-diff0
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
cost-diff0
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
cost-diff3
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041280
064268
1109268
2195268
3392268
4771268
51265268
62733268
77526268
08097268
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(sin.f64 x)
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
#s(literal 8/3 binary64)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
(*.f64 #s(literal 2/3 binary64) x)
#s(literal 2/3 binary64)
x
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x x)
x
#s(literal 2/3 binary64)
(sin.f64 x)
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64))
(-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64))
(*.f64 #s(literal 1/1440 binary64) (*.f64 x x))
#s(literal 1/1440 binary64)
(*.f64 x x)
x
#s(literal 1/18 binary64)
#s(literal 4/3 binary64)
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(sin.f64 x)
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
#s(literal 2 binary64)
#s(literal 8/3 binary64)
(sin.f64 x)
Outputs
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
x
(sin.f64 x)
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
#s(literal 8/3 binary64)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
(*.f64 #s(literal 2/3 binary64) x)
#s(literal 2/3 binary64)
x
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x x)
x
#s(literal 2/3 binary64)
(sin.f64 x)
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (/.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64))
(-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64))
(*.f64 #s(literal 1/1440 binary64) (*.f64 x x))
#s(literal 1/1440 binary64)
(*.f64 x x)
x
#s(literal 1/18 binary64)
#s(literal 4/3 binary64)
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(sin.f64 x)
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))
(pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
x
#s(literal 2 binary64)
#s(literal 8/3 binary64)
(sin.f64 x)

localize176.0ms (2.9%)

Memory
-6.6MiB live, 233.9MiB allocated; 54ms collecting garbage
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
accuracy0.265625
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
accuracy0.27181625976844204
(pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))
accuracy16.228328588299583
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
accuracy0.2265625
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy0.5587053572312197
(*.f64 #s(literal 1/1440 binary64) (*.f64 x x))
accuracy16.228328588299583
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
accuracy31.357706912517113
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))
accuracy0.0
(sin.f64 x)
accuracy0.20703125
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
accuracy16.228328588299583
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
accuracy30.890389193312846
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
accuracy0.3515625
(*.f64 #s(literal 2/3 binary64) x)
accuracy31.077966206209876
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
accuracy0.00390625
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
accuracy0.174160009768442
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
accuracy0.17578125
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
accuracy0.3359375
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
Samples
143.0ms256×0valid
Compiler

Compiled 235 to 35 computations (85.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 83.0ms
ival-mult: 36.0ms (43.4% of total)
ival-sin: 20.0ms (24.1% of total)
const: 14.0ms (16.9% of total)
ival-div: 6.0ms (7.2% of total)
ival-pow2: 3.0ms (3.6% of total)
ival-add: 1.0ms (1.2% of total)
ival-sub: 1.0ms (1.2% of total)
exact: 1.0ms (1.2% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series11.0ms (0.2%)

Memory
21.1MiB live, 21.1MiB allocated; 0ms collecting garbage
Counts
20 → 42
Calls
Call 1
Inputs
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
(*.f64 #s(literal 2/3 binary64) x)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x x)
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(sin.f64 x)
(*.f64 #s(literal 1/1440 binary64) (*.f64 x x))
Outputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
1/2
(+ 1/2 (* 1/16 (pow x 2)))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(pow x 2)
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(* 1/4 (pow x 2))
(* (pow x 2) (+ 1/4 (* -1/48 (pow x 2))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/48))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/80640 (pow x 2)))) 1/48))))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
(* 1/1440 (pow x 2))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(/ (sin (* 1/2 x)) (sin x))
(sin (* 1/2 x))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(* 1/1440 (pow x 5))
(* (pow x 5) (- 1/1440 (* 1/18 (/ 1 (pow x 2)))))
(* (pow x 5) (- (+ 1/1440 (/ 4/3 (pow x 4))) (* 1/18 (/ 1 (pow x 2)))))
(pow (sin (* 1/2 x)) 2)
(sin x)
(* -1 (* (pow x 5) (- (* 1/18 (/ 1 (pow x 2))) 1/1440)))
(* -1 (* (pow x 5) (- (* 1/18 (/ 1 (pow x 2))) (+ 1/1440 (/ 4/3 (pow x 4))))))
Calls

3 calls:

TimeVariablePointExpression
4.0ms
x
@inf
((* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* 1/2 x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* 2/3 x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* x x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (/ 8 3) (sin (* x 1/2))) (* (+ (* (- (* 1/1440 (* x x)) 1/18) (* x x)) 4/3) x) (/ (* (pow (sin (* 1/2 x)) 2) 8/3) (sin x)) (* (pow (sin (* 1/2 x)) 2) 8/3) (pow (sin (* 1/2 x)) 2) (* (sin (* 1/2 x)) 8/3) (sin x) (* 1/1440 (* x x)))
3.0ms
x
@-inf
((* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* 1/2 x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* 2/3 x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* x x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (/ 8 3) (sin (* x 1/2))) (* (+ (* (- (* 1/1440 (* x x)) 1/18) (* x x)) 4/3) x) (/ (* (pow (sin (* 1/2 x)) 2) 8/3) (sin x)) (* (pow (sin (* 1/2 x)) 2) 8/3) (pow (sin (* 1/2 x)) 2) (* (sin (* 1/2 x)) 8/3) (sin x) (* 1/1440 (* x x)))
3.0ms
x
@0
((* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* 1/2 x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* 2/3 x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* x x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (/ 8 3) (sin (* x 1/2))) (* (+ (* (- (* 1/1440 (* x x)) 1/18) (* x x)) 4/3) x) (/ (* (pow (sin (* 1/2 x)) 2) 8/3) (sin x)) (* (pow (sin (* 1/2 x)) 2) 8/3) (pow (sin (* 1/2 x)) 2) (* (sin (* 1/2 x)) 8/3) (sin x) (* 1/1440 (* x x)))

simplify153.0ms (2.5%)

Memory
12.1MiB live, 195.4MiB allocated; 36ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0161457
1515457
21507451
33992451
47939451
08005415
Stop Event
iter limit
node limit
Counts
42 → 41
Calls
Call 1
Inputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
1/2
(+ 1/2 (* 1/16 (pow x 2)))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(pow x 2)
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(* 1/4 (pow x 2))
(* (pow x 2) (+ 1/4 (* -1/48 (pow x 2))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/48))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/80640 (pow x 2)))) 1/48))))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
(* 1/1440 (pow x 2))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(/ (sin (* 1/2 x)) (sin x))
(sin (* 1/2 x))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(* 1/1440 (pow x 5))
(* (pow x 5) (- 1/1440 (* 1/18 (/ 1 (pow x 2)))))
(* (pow x 5) (- (+ 1/1440 (/ 4/3 (pow x 4))) (* 1/18 (/ 1 (pow x 2)))))
(pow (sin (* 1/2 x)) 2)
(sin x)
(* -1 (* (pow x 5) (- (* 1/18 (/ 1 (pow x 2))) 1/1440)))
(* -1 (* (pow x 5) (- (* 1/18 (/ 1 (pow x 2))) (+ 1/1440 (/ 4/3 (pow x 4))))))
Outputs
(* 2/3 x)
(*.f64 #s(literal 2/3 binary64) x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* 1/16 (pow x 2)))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 61/92160 binary64) (*.f64 x x) #s(literal 5/768 binary64)) (*.f64 x x) #s(literal 1/16 binary64)) x) x #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/48 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/645120 binary64) (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64))) (*.f64 #s(literal 1/2 binary64) x))
(* 2/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/540 binary64) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/30240 binary64) (*.f64 x x) #s(literal 1/540 binary64)) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(pow x 2)
(*.f64 x x)
(* 4/3 x)
(*.f64 #s(literal 4/3 binary64) x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/1440 binary64) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/241920 binary64) (*.f64 x x) #s(literal 1/1440 binary64)) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* 1/4 (pow x 2))
(*.f64 #s(literal 1/4 binary64) (*.f64 x x))
(* (pow x 2) (+ 1/4 (* -1/48 (pow x 2))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/48 binary64) (*.f64 x x) #s(literal 1/4 binary64)) x) x)
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/48))))
(*.f64 (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/4 binary64)) x) x)
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/80640 (pow x 2)))) 1/48))))
(*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/80640 binary64) (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/48 binary64))) (*.f64 x x) #s(literal 1/4 binary64)) (*.f64 x x))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) #s(literal 1/6 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/5040 binary64) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) #s(literal 1/6 binary64))) x)
(* 1/1440 (pow x 2))
(*.f64 #s(literal 1/1440 binary64) (*.f64 x x))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))
(/ (sin (* 1/2 x)) (sin x))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin (* 1/2 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(* 8/3 (sin (* 1/2 x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(* 1/1440 (pow x 5))
(*.f64 (pow.f64 x #s(literal 5 binary64)) #s(literal 1/1440 binary64))
(* (pow x 5) (- 1/1440 (* 1/18 (/ 1 (pow x 2)))))
(*.f64 (-.f64 #s(literal 1/1440 binary64) (/.f64 #s(literal 1/18 binary64) (*.f64 x x))) (pow.f64 x #s(literal 5 binary64)))
(* (pow x 5) (- (+ 1/1440 (/ 4/3 (pow x 4))) (* 1/18 (/ 1 (pow x 2)))))
(*.f64 (-.f64 (/.f64 #s(literal 4/3 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 1/1440 binary64))) (pow.f64 x #s(literal 5 binary64)))
(pow (sin (* 1/2 x)) 2)
(pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))
(sin x)
(sin.f64 x)
(* -1 (* (pow x 5) (- (* 1/18 (/ 1 (pow x 2))) 1/1440)))
(*.f64 (neg.f64 (-.f64 (/.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 1/1440 binary64))) (pow.f64 x #s(literal 5 binary64)))
(* -1 (* (pow x 5) (- (* 1/18 (/ 1 (pow x 2))) (+ 1/1440 (/ 4/3 (pow x 4))))))
(*.f64 (neg.f64 (pow.f64 x #s(literal 5 binary64))) (-.f64 (-.f64 (/.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 1/1440 binary64)) (/.f64 #s(literal 4/3 binary64) (pow.f64 x #s(literal 4 binary64)))))

rewrite58.0ms (1%)

Memory
17.9MiB live, 64.1MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041222
064210
1155210
0637210
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
20 → 124
Calls
Call 1
Inputs
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
(*.f64 #s(literal 2/3 binary64) x)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x x)
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(sin.f64 x)
(*.f64 #s(literal 1/1440 binary64) (*.f64 x x))
Outputs
(*.f64 (*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(*.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)))
(*.f64 #s(literal 8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)))
(*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 #s(literal 8/3 binary64) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x))))
(/.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 x))))
(/.f64 (neg.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (neg.f64 (sin.f64 x)))
(/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x))
(neg.f64 (/.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 x)))
(neg.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (neg.f64 (sin.f64 x))))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)))
(pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1 binary64))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) #s(literal 1 binary64)))
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
(*.f64 #s(literal 2/3 binary64) x)
(*.f64 x #s(literal 2/3 binary64))
(/.f64 (neg.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))) (neg.f64 (sin.f64 x)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
(neg.f64 (/.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))) (sin.f64 x)))
(neg.f64 (/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (neg.f64 (sin.f64 x))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 #s(literal 2/3 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 2/3 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2/3 binary64)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 (*.f64 #s(literal 2/3 binary64) x) x)
(*.f64 #s(literal 2/3 binary64) (*.f64 x x))
(*.f64 x (*.f64 #s(literal 2/3 binary64) x))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) x)
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)))
(*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 x)))
(/.f64 (neg.f64 (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (neg.f64 (sin.f64 x))))
(*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(*.f64 x (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64)) #s(literal 16/9 binary64)) x) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 4/3 binary64)))
(/.f64 (*.f64 (+.f64 #s(literal 64/27 binary64) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 3 binary64))) x) (fma.f64 #s(literal 4/3 binary64) (-.f64 #s(literal 4/3 binary64) (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x)) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64))))
(/.f64 (*.f64 x (-.f64 (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64)) #s(literal 16/9 binary64))) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 4/3 binary64)))
(/.f64 (*.f64 x (+.f64 #s(literal 64/27 binary64) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 3 binary64)))) (fma.f64 #s(literal 4/3 binary64) (-.f64 #s(literal 4/3 binary64) (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x)) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64))))
(fma.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) x (*.f64 #s(literal 4/3 binary64) x))
(fma.f64 #s(literal 4/3 binary64) x (*.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) x))
(fma.f64 x (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) (*.f64 x #s(literal 4/3 binary64)))
(fma.f64 x #s(literal 4/3 binary64) (*.f64 x (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x)))
(+.f64 (*.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) x) (*.f64 #s(literal 4/3 binary64) x))
(+.f64 (*.f64 #s(literal 4/3 binary64) x) (*.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) x))
(+.f64 (*.f64 x (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x)) (*.f64 x #s(literal 4/3 binary64)))
(+.f64 (*.f64 x #s(literal 4/3 binary64)) (*.f64 x (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x)))
(*.f64 (*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(*.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)))
(*.f64 #s(literal 8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)))
(*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 #s(literal 8/3 binary64) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x))))
(/.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 x))))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(*.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 #s(literal 8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(*.f64 (fabs.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (fabs.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(*.f64 (exp.f64 (log.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))))) (exp.f64 (log.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))))))
(*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(pow.f64 (exp.f64 (log.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))))) #s(literal 2 binary64))
(pow.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1 binary64))
(pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))
(/.f64 (-.f64 (cos.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64)))) (cos.f64 (fma.f64 x #s(literal 1/2 binary64) (*.f64 x #s(literal 1/2 binary64))))) #s(literal 2 binary64))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))))
(exp.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) #s(literal 2 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) #s(literal 2 binary64))))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64))
(sin.f64 x)
(*.f64 (*.f64 #s(literal 1/1440 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 1/1440 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 #s(literal 1/1440 binary64) x) x)
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1/1440 binary64)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1/1440 binary64)))
(*.f64 #s(literal 1/1440 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 1/1440 binary64))
(*.f64 x (*.f64 #s(literal 1/1440 binary64) x))

eval91.0ms (1.5%)

Memory
-19.6MiB live, 136.1MiB allocated; 26ms collecting garbage
Compiler

Compiled 5 584 to 855 computations (84.7% saved)

prune43.0ms (0.7%)

Memory
-27.4MiB live, 70.9MiB allocated; 10ms collecting garbage
Pruning

24 alts after pruning (21 fresh and 3 done)

PrunedKeptTotal
New20315218
Fresh6612
Picked235
Done000
Total21124235
Accuracy
99.7%
Counts
235 → 24
Alt Table
Click to see full alt table
StatusAccuracyProgram
47.2%
(/.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
74.3%
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
52.5%
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
74.4%
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
25.1%
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64)) #s(literal 16/9 binary64)) x) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 4/3 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
25.1%
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (/.f64 (*.f64 (+.f64 #s(literal 64/27 binary64) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 3 binary64))) x) (fma.f64 #s(literal 4/3 binary64) (-.f64 #s(literal 4/3 binary64) (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x)) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64))))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
26.0%
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 #s(literal 4/3 binary64) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
25.2%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/30240 binary64) (*.f64 x x) #s(literal 1/540 binary64)) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
26.5%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/540 binary64) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
26.6%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
25.3%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
26.6%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 #s(literal 2/3 binary64) x) x)) (sin.f64 x))
74.3%
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
74.3%
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
72.3%
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64))) #s(literal 8/3 binary64)))
50.9%
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
50.9%
(*.f64 (/.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
99.2%
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
99.3%
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
55.1%
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) #s(literal 1/2 binary64)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.9%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
51.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
Compiler

Compiled 1 083 to 717 computations (33.8% saved)

simplify284.0ms (4.7%)

Memory
44.8MiB live, 303.6MiB allocated; 78ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
cost-diff0
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
cost-diff0
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
cost-diff0
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
cost-diff0
(*.f64 #s(literal 1/2 binary64) x)
cost-diff0
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
cost-diff0
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
cost-diff0
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
cost-diff0
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
cost-diff0
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
cost-diff0
(*.f64 x x)
cost-diff0
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
cost-diff0
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
cost-diff0
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
cost-diff0
(/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
cost-diff0
(*.f64 x #s(literal 1/2 binary64))
cost-diff0
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
cost-diff0
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042263
067263
1110263
2212263
3504263
41023263
51448263
62161263
74077263
08234263
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
(/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(literal 8/3 binary64)
(sin.f64 x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
(*.f64 x x)
x
#s(literal 1/18 binary64)
#s(literal 2/3 binary64)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x x)
x
#s(literal 2/3 binary64)
#s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)
#s(literal -1/6 binary64)
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(sin.f64 x)
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
#s(literal 8/3 binary64)
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
#s(literal 8/3 binary64)
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
(sin.f64 x)
Outputs
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
(*.f64 (*.f64 (/.f64 #s(literal -8/3 binary64) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) x)
x
#s(literal 1/2 binary64)
(/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
#s(literal 8/3 binary64)
(sin.f64 x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 #s(literal 1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(*.f64 (fma.f64 #s(literal 1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x)
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
(fma.f64 #s(literal 1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x x)
x
#s(literal 1/18 binary64)
#s(literal 2/3 binary64)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))) #s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 #s(literal 2/3 binary64) (*.f64 x x))
(*.f64 x x)
x
#s(literal 2/3 binary64)
#s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
#s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)
#s(literal -1/6 binary64)
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 (*.f64 (/.f64 #s(literal -8/3 binary64) (sin.f64 x)) #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(sin.f64 x)
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
#s(literal 8/3 binary64)
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (/.f64 #s(literal -8/3 binary64) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal -1/2 binary64) x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
#s(literal 8/3 binary64)
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) x)
(sin.f64 x)

localize301.0ms (5%)

Memory
-41.2MiB live, 332.8MiB allocated; 180ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
accuracy0.2265625
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy0.3359375
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
accuracy16.228328588299583
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
accuracy0.174160009768442
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
accuracy0.17578125
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
accuracy0.3359375
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
accuracy31.261315365709574
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
accuracy0.27094554922668423
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
accuracy16.228328588299583
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
accuracy30.890389193312846
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
accuracy31.48526126479672
#s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
accuracy0.0
(*.f64 x x)
accuracy0.11328125
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
accuracy0.19921875
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
accuracy31.280868779768333
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
accuracy0.00390625
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
accuracy0.32421875
(/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
accuracy0.3359375
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy0.33822250976844204
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
Samples
238.0ms256×0valid
Compiler

Compiled 227 to 35 computations (84.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 213.0ms
ival-mult: 146.0ms (68.6% of total)
ival-sin: 37.0ms (17.4% of total)
const: 16.0ms (7.5% of total)
ival-div: 8.0ms (3.8% of total)
ival-pow: 3.0ms (1.4% of total)
ival-add: 2.0ms (0.9% 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)

series12.0ms (0.2%)

Memory
-16.1MiB live, 30.3MiB allocated; 8ms collecting garbage
Counts
23 → 45
Calls
Call 1
Inputs
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
(/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
(*.f64 x x)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
Outputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
4/3
(+ 4/3 (* 1/6 (pow x 2)))
(+ 4/3 (* (pow x 2) (+ 1/6 (* 5/288 (pow x 2)))))
(+ 4/3 (* (pow x 2) (+ 1/6 (* (pow x 2) (+ 5/288 (* 61/34560 (pow x 2)))))))
2/3
(+ 2/3 (* 1/18 (pow x 2)))
(pow x 2)
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
1/2
(+ 1/2 (* 1/16 (pow x 2)))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(sin (* 1/2 x))
(* 8/3 (/ (sin (* 1/2 x)) (sin x)))
(* 1/18 (pow x 3))
(* (pow x 3) (+ 1/18 (* 2/3 (/ 1 (pow x 2)))))
(* 1/18 (pow x 2))
(* (pow x 2) (+ 1/18 (* 2/3 (/ 1 (pow x 2)))))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(/ (sin (* 1/2 x)) (sin x))
(* 8/3 (sin (* 1/2 x)))
(sin x)
(* -1/6 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/6))
(* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))
Calls

3 calls:

TimeVariablePointExpression
7.0ms
x
@-inf
((* (sin (* x 1/2)) (/ (* 8/3 (sin (* x 1/2))) (sin x))) (sin (* x 1/2)) (* x 1/2) (/ (* 8/3 (sin (* x 1/2))) (sin x)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (+ (* (* x x) 1/18) 2/3) x) (+ (* (* x x) 1/18) 2/3) (* x x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* 1/2 x) (/ (* (* (sin (* 1/2 x)) 8/3) (sin (* x 1/2))) (sin x)) (* (* (sin (* 1/2 x)) 8/3) (sin (* x 1/2))) (* (sin (* 1/2 x)) 8/3) (* 8/3 (sin (* x 1/2))) (sin x) (+ (* (pow x 3) -1/6) x) (sin (* 1/2 x)) (* (sin (* 1/2 x)) 8/3))
3.0ms
x
@inf
((* (sin (* x 1/2)) (/ (* 8/3 (sin (* x 1/2))) (sin x))) (sin (* x 1/2)) (* x 1/2) (/ (* 8/3 (sin (* x 1/2))) (sin x)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (+ (* (* x x) 1/18) 2/3) x) (+ (* (* x x) 1/18) 2/3) (* x x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* 1/2 x) (/ (* (* (sin (* 1/2 x)) 8/3) (sin (* x 1/2))) (sin x)) (* (* (sin (* 1/2 x)) 8/3) (sin (* x 1/2))) (* (sin (* 1/2 x)) 8/3) (* 8/3 (sin (* x 1/2))) (sin x) (+ (* (pow x 3) -1/6) x) (sin (* 1/2 x)) (* (sin (* 1/2 x)) 8/3))
2.0ms
x
@0
((* (sin (* x 1/2)) (/ (* 8/3 (sin (* x 1/2))) (sin x))) (sin (* x 1/2)) (* x 1/2) (/ (* 8/3 (sin (* x 1/2))) (sin x)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (+ (* (* x x) 1/18) 2/3) x) (+ (* (* x x) 1/18) 2/3) (* x x) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* 1/2 x) (/ (* (* (sin (* 1/2 x)) 8/3) (sin (* x 1/2))) (sin x)) (* (* (sin (* 1/2 x)) 8/3) (sin (* x 1/2))) (* (sin (* 1/2 x)) 8/3) (* 8/3 (sin (* x 1/2))) (sin x) (+ (* (pow x 3) -1/6) x) (sin (* 1/2 x)) (* (sin (* 1/2 x)) 8/3))

simplify217.0ms (3.6%)

Memory
13.4MiB live, 197.8MiB allocated; 23ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0155436
1520428
21592428
34300428
08419390
Stop Event
iter limit
node limit
Counts
45 → 44
Calls
Call 1
Inputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
4/3
(+ 4/3 (* 1/6 (pow x 2)))
(+ 4/3 (* (pow x 2) (+ 1/6 (* 5/288 (pow x 2)))))
(+ 4/3 (* (pow x 2) (+ 1/6 (* (pow x 2) (+ 5/288 (* 61/34560 (pow x 2)))))))
2/3
(+ 2/3 (* 1/18 (pow x 2)))
(pow x 2)
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
1/2
(+ 1/2 (* 1/16 (pow x 2)))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(sin (* 1/2 x))
(* 8/3 (/ (sin (* 1/2 x)) (sin x)))
(* 1/18 (pow x 3))
(* (pow x 3) (+ 1/18 (* 2/3 (/ 1 (pow x 2)))))
(* 1/18 (pow x 2))
(* (pow x 2) (+ 1/18 (* 2/3 (/ 1 (pow x 2)))))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(/ (sin (* 1/2 x)) (sin x))
(* 8/3 (sin (* 1/2 x)))
(sin x)
(* -1/6 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/6))
(* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))
Outputs
(* 2/3 x)
(*.f64 #s(literal 2/3 binary64) x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/48 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/645120 binary64) (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64))) (*.f64 #s(literal 1/2 binary64) x))
4/3
#s(literal 4/3 binary64)
(+ 4/3 (* 1/6 (pow x 2)))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 4/3 binary64))
(+ 4/3 (* (pow x 2) (+ 1/6 (* 5/288 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 5/288 binary64) (*.f64 x x) #s(literal 1/6 binary64)) (*.f64 x x) #s(literal 4/3 binary64))
(+ 4/3 (* (pow x 2) (+ 1/6 (* (pow x 2) (+ 5/288 (* 61/34560 (pow x 2)))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 61/34560 binary64) (*.f64 x x) #s(literal 5/288 binary64)) (*.f64 x x) #s(literal 1/6 binary64)) (*.f64 x x) #s(literal 4/3 binary64))
2/3
#s(literal 2/3 binary64)
(+ 2/3 (* 1/18 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
(pow x 2)
(*.f64 x x)
(* 2/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(*.f64 (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/30240 binary64) (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (*.f64 x x) #s(literal 2/3 binary64)) (*.f64 x x))
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* 1/16 (pow x 2)))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 61/92160 binary64) (*.f64 x x) #s(literal 5/768 binary64)) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(* 4/3 x)
(*.f64 #s(literal 4/3 binary64) x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/241920 binary64) (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (*.f64 #s(literal 4/3 binary64) x))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) #s(literal 1/6 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/5040 binary64) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) #s(literal 1/6 binary64))) x)
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))
(sin (* 1/2 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(* 8/3 (/ (sin (* 1/2 x)) (sin x)))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(* 1/18 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/18 binary64))
(* (pow x 3) (+ 1/18 (* 2/3 (/ 1 (pow x 2)))))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(* 1/18 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/18 binary64))
(* (pow x 2) (+ 1/18 (* 2/3 (/ 1 (pow x 2)))))
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(/ (sin (* 1/2 x)) (sin x))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(* 8/3 (sin (* 1/2 x)))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(sin x)
(sin.f64 x)
(* -1/6 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/6))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))

rewrite60.0ms (1%)

Memory
35.2MiB live, 78.2MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042221
067221
1156203
0635203
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
23 → 152
Calls
Call 1
Inputs
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
(/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
(*.f64 x x)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
Outputs
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)))
(*.f64 #s(literal 8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x)))
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 #s(literal 8/3 binary64) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(/.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 x))))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 #s(literal 8/3 binary64) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(/.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (neg.f64 (sin.f64 x))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 #s(literal 1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x))
(*.f64 (fma.f64 #s(literal 1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x)
(*.f64 x (fma.f64 #s(literal 1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)))
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) x) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64)))
(/.f64 (*.f64 (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64)) x) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64))))
(/.f64 (*.f64 x (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64))) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64)))
(/.f64 (*.f64 x (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64))) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64))))
(fma.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) x (*.f64 #s(literal 2/3 binary64) x))
(fma.f64 #s(literal 2/3 binary64) x (*.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) x))
(fma.f64 #s(literal 2/3 binary64) x (*.f64 x (*.f64 #s(literal 1/18 binary64) (*.f64 x x))))
(fma.f64 x (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) (*.f64 #s(literal 2/3 binary64) x))
(fma.f64 x #s(literal 2/3 binary64) (*.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) x))
(fma.f64 x #s(literal 2/3 binary64) (*.f64 x (*.f64 #s(literal 1/18 binary64) (*.f64 x x))))
(+.f64 (*.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) x) (*.f64 #s(literal 2/3 binary64) x))
(+.f64 (*.f64 x (*.f64 #s(literal 1/18 binary64) (*.f64 x x))) (*.f64 #s(literal 2/3 binary64) x))
(+.f64 (*.f64 #s(literal 2/3 binary64) x) (*.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) x))
(+.f64 (*.f64 #s(literal 2/3 binary64) x) (*.f64 x (*.f64 #s(literal 1/18 binary64) (*.f64 x x))))
(/.f64 (-.f64 #s(literal 4/9 binary64) (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64))) (-.f64 #s(literal 2/3 binary64) (*.f64 #s(literal 1/18 binary64) (*.f64 x x))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64)))
(/.f64 (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64)) (+.f64 #s(literal 4/9 binary64) (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64)))))
(/.f64 (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64))))
(fma.f64 (*.f64 #s(literal 1/18 binary64) (neg.f64 x)) (neg.f64 x) #s(literal 2/3 binary64))
(fma.f64 (*.f64 #s(literal 1/18 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal 2/3 binary64))
(fma.f64 (*.f64 #s(literal 1/18 binary64) x) x #s(literal 2/3 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1/18 binary64)) #s(literal 2/3 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1/18 binary64)) #s(literal 2/3 binary64))
(fma.f64 #s(literal 1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64))
(fma.f64 x (*.f64 #s(literal 1/18 binary64) x) #s(literal 2/3 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64))) (/.f64 #s(literal 4/9 binary64) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64))))
(-.f64 #s(literal 2/3 binary64) (*.f64 #s(literal -1/18 binary64) (*.f64 x x)))
(-.f64 #s(literal 2/3 binary64) (*.f64 (neg.f64 (*.f64 x x)) #s(literal 1/18 binary64)))
(-.f64 #s(literal 2/3 binary64) (*.f64 (neg.f64 x) (*.f64 #s(literal 1/18 binary64) x)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64)))) (/.f64 #s(literal 8/27 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64)))))
(+.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64))
(+.f64 #s(literal 2/3 binary64) (*.f64 #s(literal 1/18 binary64) (*.f64 x x)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 x (neg.f64 x)))
(neg.f64 (*.f64 (neg.f64 x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(/.f64 (neg.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))))) (neg.f64 (neg.f64 #s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)))))
(/.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))) (neg.f64 #s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))) #s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)))
(neg.f64 (/.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))) #s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x))))
(neg.f64 (/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))) (neg.f64 #s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))
(*.f64 (*.f64 #s(literal 2/3 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 2/3 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 #s(literal 2/3 binary64) x) x)
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2/3 binary64)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2/3 binary64)))
(*.f64 #s(literal 2/3 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x (*.f64 #s(literal 2/3 binary64) x))
(*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))) #s(literal 8/3 binary64))
(*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal 8/3 binary64) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 x)))
(/.f64 (*.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64)))) (neg.f64 (sin.f64 x)))
(/.f64 (neg.f64 (*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 x))
(/.f64 (neg.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64))) (neg.f64 (sin.f64 x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(neg.f64 (/.f64 (sin.f64 (fma.f64 #s(literal 1/2 binary64) x (PI.f64))) (sin.f64 x)))
(neg.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (neg.f64 (sin.f64 x))))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)))
(*.f64 #s(literal 8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x)))
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 #s(literal 8/3 binary64) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(/.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 x))))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(*.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 #s(literal 8/3 binary64) (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
#s(approx (sin x) (fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64))) (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)))
(/.f64 (neg.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64)) (*.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x))))
(/.f64 (fma.f64 #s(literal -1/216 binary64) (pow.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3/2 binary64))) (pow.f64 x #s(literal 3/2 binary64)) x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)
(fma.f64 (*.f64 #s(literal -1/6 binary64) x) (*.f64 x x) x)
(fma.f64 (pow.f64 x #s(literal 3/2 binary64)) (*.f64 (pow.f64 x #s(literal 3/2 binary64)) #s(literal -1/6 binary64)) x)
(fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)
(fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/6 binary64)) x)
(fma.f64 x (*.f64 (*.f64 x x) #s(literal -1/6 binary64)) x)
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)))
(-.f64 x (*.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (*.f64 (neg.f64 (pow.f64 x #s(literal 3 binary64))) #s(literal -1/6 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))) (pow.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) #s(literal 2 binary64)))))
(+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))) x)
(+.f64 x (*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64))))
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(literal 8/3 binary64) #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)))

eval31.0ms (0.5%)

Memory
-1.4MiB live, 49.9MiB allocated; 16ms collecting garbage
Compiler

Compiled 5 589 to 711 computations (87.3% saved)

prune30.0ms (0.5%)

Memory
-21.8MiB live, 66.6MiB allocated; 7ms collecting garbage
Pruning

32 alts after pruning (26 fresh and 6 done)

PrunedKeptTotal
New19613209
Fresh31316
Picked145
Done123
Total20132233
Accuracy
99.9%
Counts
233 → 32
Alt Table
Click to see full alt table
StatusAccuracyProgram
47.2%
(/.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
74.3%
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
52.5%
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
74.4%
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
26.0%
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 #s(literal 4/3 binary64) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
25.2%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/30240 binary64) (*.f64 x x) #s(literal 1/540 binary64)) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
26.5%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/540 binary64) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
25.5%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
25.3%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/6 binary64)) x)))
25.3%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)))
17.2%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
1.2%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64)))))
26.6%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 #s(literal 2/3 binary64) x) x)) (sin.f64 x))
74.3%
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
74.3%
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
72.3%
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64))) #s(literal 8/3 binary64)))
50.9%
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
50.9%
(*.f64 (/.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
99.2%
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
50.9%
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)))
50.9%
(*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))) #s(literal 8/3 binary64))
99.3%
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
55.1%
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
50.6%
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
50.7%
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
99.3%
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
50.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 (*.f64 (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64)) x) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64)))))
50.4%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) x) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64))))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.9%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
51.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
Compiler

Compiled 1 428 to 960 computations (32.8% saved)

simplify146.0ms (2.4%)

Memory
33.3MiB live, 220.4MiB allocated; 28ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
cost-diff1
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))))
cost-diff2
(*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64))
cost-diff4
(*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))
cost-diff0
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
cost-diff0
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
cost-diff0
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
cost-diff1
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))
cost-diff0
#s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64))
cost-diff0
(*.f64 x #s(literal 1/2 binary64))
cost-diff0
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
cost-diff0
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
cost-diff0
(*.f64 x x)
cost-diff0
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
cost-diff0
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64)))
cost-diff0
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
cost-diff0
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
cost-diff0
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
cost-diff0
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
cost-diff0
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057364
088360
1156350
2319336
3903336
43636332
08418326
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
#s(literal 8/3 binary64)
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
(sin.f64 x)
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64)))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
#s(literal 1/16 binary64)
(*.f64 x x)
x
#s(literal 1/2 binary64)
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 8/3 binary64)
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
#s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64))
#s(literal 4/3 binary64)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x x)
x
#s(literal 2/3 binary64)
#s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))))
#s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))
(pow.f64 (neg.f64 x) #s(literal 3 binary64))
(neg.f64 x)
#s(literal 3 binary64)
(-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
#s(literal 1/6 binary64)
(/.f64 #s(literal 1 binary64) (*.f64 x x))
#s(literal 1 binary64)
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
(*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))))
#s(literal 1/2 binary64)
(*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))
(cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))
(*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))
#s(literal 2 binary64)
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 8/3 binary64)
(sin.f64 x)
Outputs
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
#s(literal 8/3 binary64)
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal -1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal -1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
x
(sin.f64 x)
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64))))
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64)))
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64)))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64))
#s(literal 1/16 binary64)
(*.f64 x x)
x
#s(literal 1/2 binary64)
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64))
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) x)
(*.f64 x #s(literal 1/2 binary64))
#s(literal 8/3 binary64)
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
(*.f64 #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
#s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64))
#s(literal 4/3 binary64)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (+.f64 #s(literal -1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 #s(literal 2/3 binary64) (*.f64 x x))
(*.f64 x x)
x
#s(literal 2/3 binary64)
#s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))))
#s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (+.f64 #s(literal -1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64)))))
#s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))
#s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (+.f64 #s(literal -1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64))))
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))
(*.f64 (+.f64 #s(literal -1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) (pow.f64 x #s(literal 3 binary64)))
(pow.f64 (neg.f64 x) #s(literal 3 binary64))
(neg.f64 x)
#s(literal 3 binary64)
(-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
#s(literal 1/6 binary64)
(/.f64 #s(literal 1 binary64) (*.f64 x x))
#s(literal 1 binary64)
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
(/.f64 (fma.f64 #s(literal -4/3 binary64) (cos.f64 x) #s(literal 4/3 binary64)) (sin.f64 x))
(*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64))
(fma.f64 #s(literal -4/3 binary64) (cos.f64 x) #s(literal 4/3 binary64))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))))
(fma.f64 #s(literal -1/2 binary64) (cos.f64 x) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))
(*.f64 (cos.f64 x) #s(literal 1/2 binary64))
(cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))
(cos.f64 x)
(*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))
x
#s(literal 2 binary64)
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 8/3 binary64)
(sin.f64 x)

localize356.0ms (5.9%)

Memory
-19.6MiB live, 287.6MiB allocated; 55ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))
accuracy0.265625
(*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64))
accuracy14.079640481461217
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))))
accuracy16.228328588299583
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
accuracy16.228328588299583
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
accuracy21.07506217993445
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))
accuracy30.890389193312846
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
accuracy31.48526126479672
#s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))))
accuracy0.0
(*.f64 x #s(literal 1/2 binary64))
accuracy0.00390625
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
accuracy0.33822250976844204
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
accuracy28.575491786761482
#s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64))
accuracy0.174160009768442
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
accuracy0.3359375
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
accuracy31.261315365709574
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
accuracy31.38081424998557
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64)))
accuracy0.00390625
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
accuracy0.171875
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
accuracy0.17578125
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
accuracy0.3515625
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
Samples
188.0ms129×0valid
62.0ms69×2valid
51.0ms38×1valid
22.0ms20×3valid
Compiler

Compiled 274 to 49 computations (82.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 271.0ms
ival-mult: 83.0ms (30.6% of total)
ival-sub: 71.0ms (26.2% of total)
ival-sin: 33.0ms (12.2% of total)
ival-cos: 22.0ms (8.1% of total)
adjust: 21.0ms (7.8% of total)
const: 16.0ms (5.9% of total)
ival-div: 12.0ms (4.4% of total)
ival-pow: 8.0ms (3% of total)
ival-add: 3.0ms (1.1% of total)
exact: 1.0ms (0.4% of total)
ival-neg: 1.0ms (0.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series68.0ms (1.1%)

Memory
-25.8MiB live, 18.8MiB allocated; 12ms collecting garbage
Counts
24 → 58
Calls
Call 1
Inputs
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64)))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
#s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64))
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))))
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
#s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))))
(cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))
Outputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(* 1/4 x)
(* x (+ 1/4 (* 1/48 (pow x 2))))
(* x (+ 1/4 (* (pow x 2) (+ 1/48 (* 1/480 (pow x 2))))))
(* x (+ 1/4 (* (pow x 2) (+ 1/48 (* (pow x 2) (+ 1/480 (* 17/80640 (pow x 2))))))))
1/2
(+ 1/2 (* 1/16 (pow x 2)))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(pow x 2)
4/3
(+ 4/3 (* 1/6 (pow x 2)))
(+ 4/3 (* (pow x 2) (+ 1/6 (* 5/288 (pow x 2)))))
(+ 4/3 (* (pow x 2) (+ 1/6 (* (pow x 2) (+ 5/288 (* 61/34560 (pow x 2)))))))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(* 1/4 (pow x 2))
(* (pow x 2) (+ 1/4 (* -1/48 (pow x 2))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/48))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/80640 (pow x 2)))) 1/48))))
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(/ (pow (sin (* 1/2 x)) 2) (sin x))
(/ (sin (* 1/2 x)) (sin x))
(sin (* 1/2 x))
(* 1/16 (pow x 2))
(* (pow x 2) (+ 1/16 (* 1/2 (/ 1 (pow x 2)))))
(* 8/3 (/ (sin (* 1/2 x)) (sin x)))
(* -1/6 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/6))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (- 1/2 (* 1/2 (cos x))))
(- 1/2 (* 1/2 (cos x)))
(* 8/3 (/ (- 1/2 (* 1/2 (cos x))) (sin x)))
(* 8/3 (sin (* 1/2 x)))
(sin x)
(cos x)
(* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))
Calls

3 calls:

TimeVariablePointExpression
58.0ms
x
@-inf
((* 8/3 (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)))) (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x))) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (+ (* 1/16 (* x x)) 1/2) (* x x) (* (sin (* x 1/2)) (/ (* 8/3 (sin (* x 1/2))) (sin x))) (sin (* x 1/2)) (* x 1/2) (/ (* 8/3 (sin (* x 1/2))) (sin x)) (* (pow (neg x) 3) (- 1/6 (/ 1 (* x x)))) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* 2 (* x 1/2)) (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (sin (* 1/2 x)) (* (sin (* 1/2 x)) 8/3) (sin x) (cos (* 2 (* x 1/2))))
6.0ms
x
@inf
((* 8/3 (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)))) (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x))) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (+ (* 1/16 (* x x)) 1/2) (* x x) (* (sin (* x 1/2)) (/ (* 8/3 (sin (* x 1/2))) (sin x))) (sin (* x 1/2)) (* x 1/2) (/ (* 8/3 (sin (* x 1/2))) (sin x)) (* (pow (neg x) 3) (- 1/6 (/ 1 (* x x)))) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* 2 (* x 1/2)) (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (sin (* 1/2 x)) (* (sin (* 1/2 x)) 8/3) (sin x) (cos (* 2 (* x 1/2))))
2.0ms
x
@0
((* 8/3 (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)))) (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x))) (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x)) (* (/ (sin (* 1/2 x)) (sin x)) (* (sin (* 1/2 x)) 8/3)) (/ (sin (* 1/2 x)) (sin x)) (+ (* 1/16 (* x x)) 1/2) (* x x) (* (sin (* x 1/2)) (/ (* 8/3 (sin (* x 1/2))) (sin x))) (sin (* x 1/2)) (* x 1/2) (/ (* 8/3 (sin (* x 1/2))) (sin x)) (* (pow (neg x) 3) (- 1/6 (/ 1 (* x x)))) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (* (* x x) 2/3) (* 2 (* x 1/2)) (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (sin (* 1/2 x)) (* (sin (* 1/2 x)) 8/3) (sin x) (cos (* 2 (* x 1/2))))

simplify175.0ms (2.9%)

Memory
4.9MiB live, 142.8MiB allocated; 37ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0208594
1708586
22160586
35456583
08268529
Stop Event
iter limit
node limit
Counts
58 → 57
Calls
Call 1
Inputs
(* 2/3 x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(* 1/4 x)
(* x (+ 1/4 (* 1/48 (pow x 2))))
(* x (+ 1/4 (* (pow x 2) (+ 1/48 (* 1/480 (pow x 2))))))
(* x (+ 1/4 (* (pow x 2) (+ 1/48 (* (pow x 2) (+ 1/480 (* 17/80640 (pow x 2))))))))
1/2
(+ 1/2 (* 1/16 (pow x 2)))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(* 1/2 x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(pow x 2)
4/3
(+ 4/3 (* 1/6 (pow x 2)))
(+ 4/3 (* (pow x 2) (+ 1/6 (* 5/288 (pow x 2)))))
(+ 4/3 (* (pow x 2) (+ 1/6 (* (pow x 2) (+ 5/288 (* 61/34560 (pow x 2)))))))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(* 2/3 (pow x 2))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(* 1/4 (pow x 2))
(* (pow x 2) (+ 1/4 (* -1/48 (pow x 2))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/48))))
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/80640 (pow x 2)))) 1/48))))
(* 4/3 x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
1
(+ 1 (* -1/2 (pow x 2)))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(/ (pow (sin (* 1/2 x)) 2) (sin x))
(/ (sin (* 1/2 x)) (sin x))
(sin (* 1/2 x))
(* 1/16 (pow x 2))
(* (pow x 2) (+ 1/16 (* 1/2 (/ 1 (pow x 2)))))
(* 8/3 (/ (sin (* 1/2 x)) (sin x)))
(* -1/6 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/6))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (- 1/2 (* 1/2 (cos x))))
(- 1/2 (* 1/2 (cos x)))
(* 8/3 (/ (- 1/2 (* 1/2 (cos x))) (sin x)))
(* 8/3 (sin (* 1/2 x)))
(sin x)
(cos x)
(* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))
Outputs
(* 2/3 x)
(*.f64 #s(literal 2/3 binary64) x)
(* x (+ 2/3 (* 1/18 (pow x 2))))
(*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x)
(* 1/4 x)
(*.f64 #s(literal 1/4 binary64) x)
(* x (+ 1/4 (* 1/48 (pow x 2))))
(*.f64 (fma.f64 #s(literal 1/48 binary64) (*.f64 x x) #s(literal 1/4 binary64)) x)
(* x (+ 1/4 (* (pow x 2) (+ 1/48 (* 1/480 (pow x 2))))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/480 binary64) (*.f64 x x) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/4 binary64)) x)
(* x (+ 1/4 (* (pow x 2) (+ 1/48 (* (pow x 2) (+ 1/480 (* 17/80640 (pow x 2))))))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/80640 binary64) (*.f64 x x) #s(literal 1/480 binary64)) (*.f64 x x) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/4 binary64)) x)
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* 1/16 (pow x 2)))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* (pow x 2) (+ 1/16 (* 5/768 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(+ 1/2 (* (pow x 2) (+ 1/16 (* (pow x 2) (+ 5/768 (* 61/92160 (pow x 2)))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 61/92160 binary64) (*.f64 x x) #s(literal 5/768 binary64)) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (* -1/48 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/48 binary64) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* 1/3840 (pow x 2)) 1/48))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/3840 (* -1/645120 (pow x 2)))) 1/48))))
(fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/645120 binary64) (-.f64 (*.f64 #s(literal 1/3840 binary64) (*.f64 x x)) #s(literal 1/48 binary64))) (pow.f64 x #s(literal 3 binary64)) (*.f64 #s(literal 1/2 binary64) x))
(pow x 2)
(*.f64 x x)
4/3
#s(literal 4/3 binary64)
(+ 4/3 (* 1/6 (pow x 2)))
(fma.f64 #s(literal 1/6 binary64) (*.f64 x x) #s(literal 4/3 binary64))
(+ 4/3 (* (pow x 2) (+ 1/6 (* 5/288 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 5/288 binary64) (*.f64 x x) #s(literal 1/6 binary64)) (*.f64 x x) #s(literal 4/3 binary64))
(+ 4/3 (* (pow x 2) (+ 1/6 (* (pow x 2) (+ 5/288 (* 61/34560 (pow x 2)))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 61/34560 binary64) (*.f64 x x) #s(literal 5/288 binary64)) (*.f64 x x) #s(literal 1/6 binary64)) (*.f64 x x) #s(literal 4/3 binary64))
x
(* x (+ 1 (* -1/6 (pow x 2))))
(fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)
(* 2/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(*.f64 (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/30240 binary64) (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (*.f64 x x) #s(literal 2/3 binary64)) (*.f64 x x))
(* 1/4 (pow x 2))
(*.f64 (*.f64 #s(literal 1/4 binary64) x) x)
(* (pow x 2) (+ 1/4 (* -1/48 (pow x 2))))
(*.f64 (*.f64 (fma.f64 #s(literal -1/48 binary64) (*.f64 x x) #s(literal 1/4 binary64)) x) x)
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/48))))
(*.f64 (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/48 binary64)) (*.f64 x x) #s(literal 1/4 binary64)) x) x)
(* (pow x 2) (+ 1/4 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/80640 (pow x 2)))) 1/48))))
(*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/80640 binary64) (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/48 binary64))) (*.f64 x x) #s(literal 1/4 binary64)) (*.f64 x x))
(* 4/3 x)
(*.f64 #s(literal 4/3 binary64) x)
(* x (+ 4/3 (* -1/18 (pow x 2))))
(*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)
(* x (+ 4/3 (* (pow x 2) (- (* (pow x 2) (+ 1/1440 (* -1/241920 (pow x 2)))) 1/18))))
(fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/241920 binary64) (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (pow.f64 x #s(literal 3 binary64)) (*.f64 #s(literal 4/3 binary64) x))
(* x (+ 1 (* (pow x 2) (- (* 1/120 (pow x 2)) 1/6))))
(fma.f64 (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) #s(literal 1/6 binary64)) (pow.f64 x #s(literal 3 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/120 (* -1/5040 (pow x 2)))) 1/6))))
(fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/5040 binary64) (-.f64 (*.f64 #s(literal 1/120 binary64) (*.f64 x x)) #s(literal 1/6 binary64))) (pow.f64 x #s(literal 3 binary64)) x)
1
#s(literal 1 binary64)
(+ 1 (* -1/2 (pow x 2)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2)))
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 x x) #s(literal 1/24 binary64)) (*.f64 x x) #s(literal -1/2 binary64)) (*.f64 x x) #s(literal 1 binary64))
(* 8/3 (/ (pow (sin (* 1/2 x)) 2) (sin x)))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(/ (pow (sin (* 1/2 x)) 2) (sin x))
(/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x))
(/ (sin (* 1/2 x)) (sin x))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin (* 1/2 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(* 1/16 (pow x 2))
(*.f64 #s(literal 1/16 binary64) (*.f64 x x))
(* (pow x 2) (+ 1/16 (* 1/2 (/ 1 (pow x 2)))))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(* 8/3 (/ (sin (* 1/2 x)) (sin x)))
(*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(* -1/6 (pow x 3))
(*.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)))
(* (pow x 3) (- (/ 1 (pow x 2)) 1/6))
(fma.f64 #s(literal -1/6 binary64) (pow.f64 x #s(literal 3 binary64)) x)
(* 8/3 (pow (sin (* 1/2 x)) 2))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(* 8/3 (- 1/2 (* 1/2 (cos x))))
(*.f64 (fma.f64 (cos.f64 x) #s(literal -1/2 binary64) #s(literal 1/2 binary64)) #s(literal 8/3 binary64))
(- 1/2 (* 1/2 (cos x)))
(fma.f64 (cos.f64 x) #s(literal -1/2 binary64) #s(literal 1/2 binary64))
(* 8/3 (/ (- 1/2 (* 1/2 (cos x))) (sin x)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (tan.f64 (/.f64 x #s(literal 2 binary64)))) #s(literal 8/3 binary64))
(* 8/3 (sin (* 1/2 x)))
(*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(sin x)
(sin.f64 x)
(cos x)
(cos.f64 x)
(* -1 (* (pow x 3) (- 1/6 (/ 1 (pow x 2)))))
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))

rewrite75.0ms (1.2%)

Memory
45.4MiB live, 85.1MiB allocated; 10ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057283
088280
1238246
01160244
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
24 → 192
Calls
Call 1
Inputs
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))
(sin.f64 (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64)))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
#s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64))
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))))
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
#s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64))
#s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))))))
(cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64))))
Outputs
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(*.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(*.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(*.f64 #s(literal 8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)))
(/.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(/.f64 (*.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(/.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) #s(literal 8/3 binary64)) (*.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)))
(/.f64 (*.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) #s(literal 8/3 binary64)) (*.f64 (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (sin.f64 x)))
(/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 x))))
(*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)))
(/.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64)))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (neg.f64 (sin.f64 x)))
(/.f64 (neg.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) (*.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)))
(/.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) (*.f64 (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (sin.f64 x)))
(/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x))
(-.f64 (/.f64 #s(literal 1/2 binary64) (sin.f64 x)) (/.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (sin.f64 x)))
(+.f64 (/.f64 #s(literal 1/2 binary64) (sin.f64 x)) (/.f64 (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))) (sin.f64 x)))
(/.f64 (neg.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (neg.f64 (sin.f64 x)))
(/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x))
(neg.f64 (/.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 x)))
(neg.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (neg.f64 (sin.f64 x))))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 (*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64)))) #s(literal 8/3 binary64))
(*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64))))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) (*.f64 #s(literal 8/3 binary64) #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64)))))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)))
(*.f64 #s(literal 8/3 binary64) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64)))))
#s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64)))
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64))) (-.f64 #s(literal 1/2 binary64) (*.f64 (*.f64 x x) #s(literal 1/16 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) #s(literal 1/4 binary64))) (neg.f64 (-.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 1/2 binary64))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 1/4096 binary64) #s(literal 1/8 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 x x) #s(literal 1/32 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (-.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 1/2 binary64)))
(/.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 1/4096 binary64) #s(literal 1/8 binary64)) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) #s(literal 1/32 binary64)))))
(/.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 1/4096 binary64) #s(literal 1/8 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 x x) #s(literal 1/32 binary64))))
(fma.f64 (*.f64 #s(literal 1/16 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal 1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/16 binary64) (neg.f64 x)) (neg.f64 x) #s(literal 1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/16 binary64) x) x #s(literal 1/2 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 1/16 binary64)) #s(literal 1/2 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 1/16 binary64)) #s(literal 1/2 binary64))
(fma.f64 (*.f64 x x) #s(literal 1/16 binary64) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))
(fma.f64 x (*.f64 #s(literal 1/16 binary64) x) #s(literal 1/2 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 1/2 binary64))))
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 (*.f64 #s(literal 1/16 binary64) x)) x))
(-.f64 #s(literal 1/2 binary64) (*.f64 (*.f64 (neg.f64 x) x) #s(literal 1/16 binary64)))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/16 binary64) (*.f64 x x)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 x x) #s(literal 1/32 binary64)))) (/.f64 #s(literal 1/8 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (*.f64 (*.f64 x x) #s(literal 1/32 binary64)))))
(+.f64 (*.f64 (*.f64 x x) #s(literal 1/16 binary64)) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 (*.f64 x x) #s(literal 1/16 binary64)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) x)
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 x x)
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(*.f64 #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) x)
#s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64))
(*.f64 (*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (pow.f64 (neg.f64 x) #s(literal 3/2 binary64))) (pow.f64 (neg.f64 x) #s(literal 3/2 binary64)))
(*.f64 (*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (neg.f64 x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (*.f64 x x)) (neg.f64 x))
(*.f64 (pow.f64 (neg.f64 x) #s(literal 3/2 binary64)) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3/2 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64)))))
(*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))))
(*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (pow.f64 x #s(literal 3 binary64)))
(*.f64 (neg.f64 x) (*.f64 (*.f64 x x) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64)))))
(*.f64 (*.f64 x x) (*.f64 (neg.f64 x) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64)))))
(/.f64 (*.f64 (-.f64 #s(literal 1/36 binary64) (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 2 binary64))) (pow.f64 x #s(literal 3 binary64))) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1/6 binary64)))
(/.f64 (*.f64 (-.f64 #s(literal 1/216 binary64) (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 3 binary64))) (pow.f64 x #s(literal 3 binary64))) (fma.f64 (pow.f64 x #s(literal -2 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1/6 binary64)) #s(literal 1/36 binary64)))
(/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/36 binary64) (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 2 binary64)))) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1/6 binary64)))
(/.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/216 binary64) (pow.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 3 binary64)))) (fma.f64 (pow.f64 x #s(literal -2 binary64)) (+.f64 (pow.f64 x #s(literal -2 binary64)) #s(literal 1/6 binary64)) #s(literal 1/36 binary64)))
(neg.f64 (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64)))))
(/.f64 (neg.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))))) (neg.f64 (neg.f64 #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64)))))))))
(/.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))) (neg.f64 #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))))))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64)))))))
(neg.f64 (/.f64 (neg.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))))))))
(neg.f64 (/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x))) (neg.f64 #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64)))))))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 #s(literal 2/3 binary64) (*.f64 x x)))
(*.f64 (*.f64 #s(literal 2/3 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 #s(literal 2/3 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 2/3 binary64) x) x)
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2/3 binary64)))
(*.f64 #s(literal 2/3 binary64) (*.f64 x x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 2/3 binary64))
(*.f64 x (*.f64 #s(literal 2/3 binary64) x))
(*.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/2 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 #s(literal 1 binary64) x)
(*.f64 (*.f64 x #s(literal 1/2 binary64)) #s(literal 2 binary64))
(*.f64 x #s(literal 1 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 2 binary64) x))
(/.f64 (-.f64 (*.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64))) (*.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64)))) (-.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64))))
(/.f64 (+.f64 (pow.f64 (*.f64 x #s(literal 1/2 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 x #s(literal 1/2 binary64)) #s(literal 3 binary64))) (fma.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64)) (-.f64 (*.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64))) (*.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64))))))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/2 binary64)) (*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/2 binary64))))
(fma.f64 (*.f64 x #s(literal 1/2 binary64)) #s(literal 1 binary64) (*.f64 (*.f64 x #s(literal 1/2 binary64)) #s(literal 1 binary64)))
(fma.f64 x #s(literal 1/2 binary64) (*.f64 x #s(literal 1/2 binary64)))
(fma.f64 #s(literal 1/2 binary64) x (*.f64 x #s(literal 1/2 binary64)))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 (neg.f64 x) #s(literal 1/2 binary64)))
(-.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 #s(literal -1/2 binary64) x))
(+.f64 (*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/2 binary64))) (*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/2 binary64))))
(+.f64 (*.f64 (*.f64 x #s(literal 1/2 binary64)) #s(literal 1 binary64)) (*.f64 (*.f64 x #s(literal 1/2 binary64)) #s(literal 1 binary64)))
(+.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64))
(*.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)))
(*.f64 #s(literal 8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(/.f64 (*.f64 #s(literal 8/3 binary64) (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64)))) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(/.f64 (*.f64 #s(literal 8/3 binary64) (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64)))) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(/.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) #s(literal 8/3 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(/.f64 (*.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) #s(literal 8/3 binary64)) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(+.f64 #s(literal 4/3 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 8/3 binary64)))
(+.f64 #s(literal 4/3 binary64) (*.f64 #s(literal 8/3 binary64) (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x)))))
(*.f64 (fabs.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (fabs.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x)))))))
(/.f64 (neg.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64)))) (neg.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))))
(/.f64 (neg.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64)))) (neg.f64 (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64))))
(/.f64 (-.f64 (cos.f64 (-.f64 (*.f64 x #s(literal 1/2 binary64)) (*.f64 x #s(literal 1/2 binary64)))) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 2 binary64))
(/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(/.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(fma.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64))
(fma.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal -1/2 binary64) #s(literal 1/2 binary64))
(-.f64 (/.f64 #s(literal 1/4 binary64) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (/.f64 (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))))
(-.f64 (/.f64 #s(literal 1/8 binary64) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64))) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64))))
(-.f64 #s(literal 1/2 binary64) (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)))
(+.f64 (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 1/2 binary64)))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))))
(*.f64 (/.f64 #s(literal 8/3 binary64) (sin.f64 x)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(*.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(*.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 (/.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))))
(*.f64 #s(literal 8/3 binary64) (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)))
(/.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(/.f64 (*.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(/.f64 (neg.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))) (neg.f64 (neg.f64 (sin.f64 x))))
(/.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) #s(literal 8/3 binary64)) (*.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)))
(/.f64 (*.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) #s(literal 8/3 binary64)) (*.f64 (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64)) (sin.f64 x)))
(/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(neg.f64 (/.f64 (*.f64 #s(literal -8/3 binary64) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (sin.f64 x)))
(neg.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (neg.f64 (sin.f64 x))))
#s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))) #s(literal 8/3 binary64))
(*.f64 #s(literal 8/3 binary64) #s(approx (sin (* 1/2 x)) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))))))
(*.f64 (+.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (-.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(/.f64 (-.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))) (+.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (fma.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))))))
(fma.f64 (+.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1 binary64)) #s(literal 1/2 binary64) (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(fma.f64 (neg.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64)))) (neg.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64)))) (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(fma.f64 (fabs.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64)))) (fabs.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64)))) (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(fma.f64 (sin.f64 (*.f64 #s(literal 1 binary64) x)) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64))) (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(fma.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) (cos.f64 (*.f64 x #s(literal 1/2 binary64))) (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(sin.f64 (fma.f64 #s(literal -2 binary64) (*.f64 x #s(literal 1/2 binary64)) (/.f64 (PI.f64) #s(literal 2 binary64))))
(sin.f64 (fma.f64 #s(literal 1 binary64) x (/.f64 (PI.f64) #s(literal 2 binary64))))
(-.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))))
(-.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)))
(cos.f64 (neg.f64 (neg.f64 (*.f64 #s(literal 1 binary64) x))))
(cos.f64 (neg.f64 (*.f64 #s(literal 1 binary64) x)))
(cos.f64 (*.f64 #s(literal 1 binary64) x))
(+.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)))
(+.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1 binary64) x)) (cos.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))) (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) (sin.f64 (/.f64 (PI.f64) #s(literal 2 binary64)))))
(+.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (*.f64 (sin.f64 (fma.f64 x #s(literal 1/2 binary64) (PI.f64))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))

eval37.0ms (0.6%)

Memory
-26.2MiB live, 63.0MiB allocated; 13ms collecting garbage
Compiler

Compiled 7 694 to 1 176 computations (84.7% saved)

prune38.0ms (0.6%)

Memory
-22.2MiB live, 87.6MiB allocated; 14ms collecting garbage
Pruning

26 alts after pruning (21 fresh and 5 done)

PrunedKeptTotal
New25413267
Fresh13821
Picked415
Done246
Total27326299
Accuracy
100.0%
Counts
299 → 26
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.2%
(/.f64 (/.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) #s(literal 8/3 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (sin.f64 x))
52.4%
(/.f64 (/.f64 (*.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) #s(literal 8/3 binary64)) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64))) (sin.f64 x))
52.4%
(/.f64 (+.f64 #s(literal 4/3 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 8/3 binary64))) (sin.f64 x))
74.3%
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
52.1%
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (-.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x)))))) #s(literal 8/3 binary64)) (sin.f64 x))
74.4%
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
52.5%
(/.f64 (*.f64 #s(approx (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) (fma.f64 (cos.f64 x) #s(literal -1/2 binary64) #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) (sin.f64 x))
25.3%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/6 binary64)) x)))
25.3%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)))
23.4%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (*.f64 x x)) (neg.f64 x)))))
23.4%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (neg.f64 x)) (*.f64 x x)))))
74.3%
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
99.2%
(*.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
55.1%
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
50.6%
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
50.5%
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)))
50.7%
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 #s(literal 4/3 binary64) x)))
52.1%
(*.f64 #s(literal 8/3 binary64) (/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) (*.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x))))
50.9%
(*.f64 #s(literal 8/3 binary64) #s(approx (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x))) (*.f64 (fma.f64 #s(literal 1/48 binary64) (*.f64 x x) #s(literal 1/4 binary64)) x)))
99.5%
#s(approx (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (*.f64 (*.f64 #s(literal 1/2 binary64) (tan.f64 (/.f64 x #s(literal 2 binary64)))) #s(literal 8/3 binary64)))
50.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 (*.f64 (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64)) x) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64)))))
50.4%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) x) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64))))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
50.9%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
51.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
Compiler

Compiled 2 132 to 785 computations (63.2% saved)

regimes75.0ms (1.2%)

Memory
11.1MiB live, 57.1MiB allocated; 4ms collecting garbage
Counts
59 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
(*.f64 #s(literal 8/3 binary64) #s(approx (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x))) (*.f64 (fma.f64 #s(literal 1/48 binary64) (*.f64 x x) #s(literal 1/4 binary64)) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 #s(literal 4/3 binary64) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/6 binary64)) x)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) #s(literal 1/2 binary64)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
#s(approx (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (*.f64 (*.f64 #s(literal 1/2 binary64) (tan.f64 (/.f64 x #s(literal 2 binary64)))) #s(literal 8/3 binary64)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 #s(literal 2/3 binary64) x) x)) (sin.f64 x))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) (sin.f64 x))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64)))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) #s(approx (sin x) (fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal -1/6 binary64) x)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (neg.f64 x)) (*.f64 x x)))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (*.f64 (-.f64 #s(literal 1/6 binary64) (pow.f64 x #s(literal -2 binary64))) (*.f64 x x)) (neg.f64 x)))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) x) (-.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2/3 binary64))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/540 binary64) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) #s(approx (+ (* (pow x 3) -1/6) x) (*.f64 (pow.f64 (neg.f64 x) #s(literal 3 binary64)) (-.f64 #s(literal 1/6 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x)))))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/30240 binary64) (*.f64 x x) #s(literal 1/540 binary64)) (*.f64 x x) #s(literal -1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x) x)) (sin.f64 x))
(/.f64 (*.f64 #s(approx (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) (fma.f64 (cos.f64 x) #s(literal -1/2 binary64) #s(literal 1/2 binary64))) #s(literal 8/3 binary64)) (sin.f64 x))
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 #s(literal 4/3 binary64) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(/.f64 (+.f64 #s(literal 4/3 binary64) (*.f64 (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 8/3 binary64))) (sin.f64 x))
(*.f64 (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x))) #s(literal 8/3 binary64))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (/.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 x #s(literal 1/2 binary64)))))) #s(literal 8/3 binary64)) (sin.f64 x))
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) #s(approx (sin (* x 1/2)) (*.f64 #s(literal 1/2 binary64) x))) (sin.f64 x))
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 (fma.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 4/3 binary64)) x)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (fma.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/30240 binary64) (-.f64 (*.f64 #s(literal 1/540 binary64) (*.f64 x x)) #s(literal 1/18 binary64))) (*.f64 x x) #s(literal 2/3 binary64)) (*.f64 x x))) (sin.f64 x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 (*.f64 (fma.f64 #s(literal 1/5832 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8/27 binary64)) x) (-.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/18 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 4/9 binary64)) (*.f64 (*.f64 x x) #s(literal 1/27 binary64)))))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x)) #s(literal 8/3 binary64))
(*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x)))
(/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(*.f64 #s(literal 8/3 binary64) (*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (sin.f64 (*.f64 #s(literal 1/2 binary64) x))))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 (*.f64 #s(literal 8/3 binary64) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x)))
(*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 #s(literal 1/2 binary64) x)))
(*.f64 (*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) (/.f64 #s(literal 8/3 binary64) (sin.f64 x))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 (*.f64 (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(/.f64 (/.f64 (*.f64 (-.f64 (cos.f64 #s(literal 0 binary64)) (cos.f64 (*.f64 #s(literal 1 binary64) x))) #s(literal 8/3 binary64)) #s(literal 2 binary64)) (sin.f64 x))
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64)) #s(literal 16/9 binary64)) x) (-.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 4/3 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(/.f64 (*.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (-.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/2 binary64)) (*.f64 #s(literal -1/2 binary64) (cos.f64 (*.f64 #s(literal 1 binary64) x)))))) #s(literal 8/3 binary64)) (sin.f64 x))
(/.f64 (*.f64 #s(approx (* (/ 8 3) (sin (* x 1/2))) (/.f64 (*.f64 (+.f64 #s(literal 64/27 binary64) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 3 binary64))) x) (fma.f64 #s(literal 4/3 binary64) (-.f64 #s(literal 4/3 binary64) (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x)) (pow.f64 (*.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/1440 binary64) (*.f64 x x)) #s(literal 1/18 binary64)) x) x) #s(literal 2 binary64))))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
(*.f64 #s(literal 8/3 binary64) (/.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) (*.f64 (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) (sin.f64 x))))
(/.f64 (/.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (pow.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) #s(literal 2 binary64))) #s(literal 8/3 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64))) (sin.f64 x))
(/.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 8/3 binary64)) (sin.f64 x))
(*.f64 (/.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) (sin.f64 x)) (*.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64)) (pow.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 1/2 binary64))) #s(literal 8/3 binary64)))
(/.f64 (/.f64 (*.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 (pow.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 3 binary64)) #s(literal 1/8 binary64))) #s(literal 8/3 binary64)) (fma.f64 (*.f64 (cos.f64 (*.f64 #s(literal 1 binary64) x)) #s(literal 1/2 binary64)) (pow.f64 (cos.f64 (*.f64 x #s(literal 1/2 binary64))) #s(literal 2 binary64)) #s(literal 1/4 binary64))) (sin.f64 x))
Outputs
#s(approx (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (*.f64 (*.f64 #s(literal 1/2 binary64) (tan.f64 (/.f64 x #s(literal 2 binary64)))) #s(literal 8/3 binary64)))
Calls

2 calls:

57.0ms
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
14.0ms
x
Results
AccuracySegmentsBranch
99.5%1(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
99.5%1x
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes9.0ms (0.1%)

Memory
13.4MiB live, 13.4MiB allocated; 0ms collecting garbage
Counts
13 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
(*.f64 #s(literal 8/3 binary64) #s(approx (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x))) (*.f64 (fma.f64 #s(literal 1/48 binary64) (*.f64 x x) #s(literal 1/4 binary64)) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 #s(literal 4/3 binary64) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/6 binary64)) x)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) #s(literal 1/2 binary64)) (*.f64 (sin.f64 (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
Outputs
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
Calls

2 calls:

4.0ms
x
4.0ms
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
Results
AccuracySegmentsBranch
55.1%1(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
55.1%1x
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes7.0ms (0.1%)

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

Total -17.0b remaining (-54.5%)

Threshold costs -17b (-54.5%)

Counts
11 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (*.f64 x x) #s(literal 1/18 binary64) #s(literal 2/3 binary64)) x))
(*.f64 #s(literal 8/3 binary64) #s(approx (* (/ (sin (* 1/2 x)) (sin x)) (sin (* 1/2 x))) (*.f64 (fma.f64 #s(literal 1/48 binary64) (*.f64 x x) #s(literal 1/4 binary64)) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 #s(literal 4/3 binary64) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/180 binary64) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 #s(literal 1/16 binary64) (*.f64 x x) #s(literal 1/2 binary64))) #s(approx (* (sin (* 1/2 x)) 8/3) (*.f64 (fma.f64 #s(literal -1/18 binary64) (*.f64 x x) #s(literal 4/3 binary64)) x)))
(*.f64 #s(approx (/ (sin (* 1/2 x)) (sin x)) (fma.f64 (fma.f64 #s(literal 5/768 binary64) (*.f64 x x) #s(literal 1/16 binary64)) (*.f64 x x) #s(literal 1/2 binary64))) (*.f64 #s(approx (sin (* 1/2 x)) (*.f64 #s(literal 1/2 binary64) x)) #s(literal 8/3 binary64)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 x x)) x x)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (*.f64 (*.f64 x x) #s(literal 2/3 binary64))) #s(approx (sin x) (fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/6 binary64)) x)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 17/30240 binary64) (*.f64 x x) #s(literal 1/180 binary64)) (*.f64 x x) #s(literal 1/18 binary64)) (*.f64 x x) #s(literal 2/3 binary64)) x))
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
Calls

2 calls:

3.0ms
(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
3.0ms
x
Results
AccuracySegmentsBranch
51.2%1x
51.2%1(/.f64 (*.f64 (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))) (sin.f64 x))
Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify64.0ms (1.1%)

Memory
-18.2MiB live, 87.4MiB allocated; 28ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03358
16458
215558
343758
4131958
5602958
Stop Event
node limit
Calls
Call 1
Inputs
#s(approx (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (*.f64 (*.f64 #s(literal 1/2 binary64) (tan.f64 (/.f64 x #s(literal 2 binary64)))) #s(literal 8/3 binary64)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))
Outputs
#s(approx (/ (* (- 1/2 (* 1/2 (cos (* 2 (* x 1/2))))) 8/3) (sin x)) (*.f64 (*.f64 #s(literal 1/2 binary64) (tan.f64 (/.f64 x #s(literal 2 binary64)))) #s(literal 8/3 binary64)))
(*.f64 (sin.f64 (*.f64 x #s(literal 1/2 binary64))) #s(approx (/ (* 8/3 (sin (* x 1/2))) (sin x)) #s(literal 4/3 binary64)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 #s(literal 2/3 binary64) x))

derivations147.0ms (2.4%)

Memory
5.9MiB live, 143.9MiB allocated; 16ms collecting garbage
Stop Event
fuel
Compiler

Compiled 60 to 37 computations (38.3% saved)

preprocess67.0ms (1.1%)

Memory
-11.6MiB live, 85.3MiB allocated; 12ms collecting garbage
Remove

(negabs x)

Compiler

Compiled 232 to 158 computations (31.9% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...