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

Time bar (total: 1.7s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze171.0ms (10.1%)

Memory
11.9MiB live, 243.0MiB allocated
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.1s (65.6%)

Memory
34.3MiB live, 1 554.3MiB allocated
Samples
835.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 657.0ms
ival-sin: 368.0ms (56% of total)
ival-mult: 147.0ms (22.4% of total)
ival-div: 124.0ms (18.9% of total)
exact: 10.0ms (1.5% of total)
ival-true: 6.0ms (0.9% of total)
ival-assert: 3.0ms (0.5% of total)
Bogosity

explain152.0ms (9%)

Memory
-23.8MiB live, 216.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
570-5(3.022886813310279e-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))))
0143(-8.478482430385212e+304)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)))sensitivity1431
/.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/n520
(*.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))))underflow52
Confusion
Predicted +Predicted -
+525
-14356
Precision
0.26666666666666666
Recall
0.9122807017543859
Confusion?
Predicted +Predicted MaybePredicted -
+5205
-143155
Precision?
0.2653061224489796
Recall?
0.9122807017543859
Freqs
test
numberfreq
061
1195
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
63.0ms512×0valid
Compiler

Compiled 179 to 48 computations (73.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 42.0ms
ival-sin: 23.0ms (54.1% of total)
ival-mult: 11.0ms (25.9% of total)
ival-div: 7.0ms (16.5% of total)
exact: 1.0ms (2.4% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess2.0ms (0.1%)

Memory
4.3MiB live, 4.3MiB allocated
Algorithm
egg-herbie
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))
Compiler

Compiled 16 to 11 computations (31.3% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.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)

simplify1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
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))
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 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)

localize38.0ms (2.2%)

Memory
16.0MiB live, 54.0MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(sin.f64 x)
accuracy0.26171875
(*.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.38671875
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy12.839570325997173
(/.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
30.0ms256×0valid
Compiler

Compiled 108 to 24 computations (77.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-sin: 11.0ms (49.4% of total)
ival-mult: 7.0ms (31.4% of total)
ival-div: 4.0ms (18% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series6.0ms (0.4%)

Memory
10.0MiB live, 10.0MiB allocated
Counts
5 → 20
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))
(sin.f64 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))))))))
(* 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))))
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)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(sin x)
Calls

3 calls:

TimeVariablePointExpression
3.0ms
x
@-inf
((/ (* (* (/ 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))) (/ 8 3) (sin x))
1.0ms
x
@inf
((/ (* (* (/ 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))) (/ 8 3) (sin x))
1.0ms
x
@0
((/ (* (* (/ 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))) (/ 8 3) (sin x))

simplify0.0ms (0%)

Memory
1.3MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Counts
20 → 5
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))))
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)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(sin x)
Outputs
(* 2/3 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))
(* x (+ 2/3 (* 1/18 (pow x 2))))
(*.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))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
(* 2/3 (pow x 2))
(sin.f64 x)

rewrite0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Counts
5 → 5
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))
(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 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))
(sin.f64 x)

eval1.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Compiler

Compiled 207 to 27 computations (87% saved)

prune5.0ms (0.3%)

Memory
-30.2MiB live, 7.7MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
82.0%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.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))
6.9%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
6.5%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
14.6%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
8.4%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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)))))
Compiler

Compiled 110 to 77 computations (30% saved)

simplify1.0ms (0.1%)

Memory
2.5MiB live, 2.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 x)
cost-diff0
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
cost-diff0
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
cost-diff0
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
cost-diff0
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
cost-diff0
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
cost-diff0
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
cost-diff0
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
cost-diff0
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
cost-diff0
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
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
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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)))))
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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 (/.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)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 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)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
#s(literal 8 binary64)
#s(literal 3 binary64)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
x
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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 (/.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)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 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)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
#s(literal 8 binary64)
#s(literal 3 binary64)
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
x

localize64.0ms (3.8%)

Memory
-49.5MiB live, 113.9MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(sin.f64 x)
accuracy12.839570325997173
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
accuracy58.9866752044394
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
accuracy0.0
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
accuracy59.808067555948206
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
accuracy0.0
(*.f64 x #s(literal 1/2 binary64))
accuracy0.0
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
accuracy0.38671875
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy54.62791316323604
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
accuracy0.0
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
accuracy0.26171875
(*.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.38671875
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy58.6396579889933
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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)))))
Samples
49.0ms256×0valid
Compiler

Compiled 319 to 38 computations (88.1% saved)

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

series3.0ms (0.2%)

Memory
8.7MiB live, 8.7MiB allocated
Counts
11 → 25
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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 (/.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(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.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)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
(*.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))))
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)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(sin (* 1/2 x))
(sin x)
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((/ (* (* (/ 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))) (/ 8 3) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (sin (* x 1/2)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x) (* x 1/2))
1.0ms
x
@-inf
((/ (* (* (/ 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))) (/ 8 3) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (sin (* x 1/2)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x) (* x 1/2))
1.0ms
x
@0
((/ (* (* (/ 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))) (/ 8 3) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (sin (* x 1/2)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x) (* x 1/2))

simplify1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Algorithm
egg-herbie
Counts
25 → 11
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))))
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)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(* 8/3 (sin (* 1/2 x)))
(sin (* 1/2 x))
(sin x)
Outputs
(* 2/3 x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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)))))
(* x (+ 2/3 (* 1/18 (pow x 2))))
(*.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))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(/.f64 #s(literal 8 binary64) #s(literal 3 binary64))
(* 2/3 (pow x 2))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
(* 4/3 x)
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
(* x (+ 4/3 (* -1/18 (pow x 2))))
(sin.f64 x)
(* x (+ 4/3 (* (pow x 2) (- (* 1/1440 (pow x 2)) 1/18))))
(*.f64 x #s(literal 1/2 binary64))

rewrite1.0ms (0%)

Memory
3.3MiB live, 3.3MiB allocated
Counts
11 → 11
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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 (/.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(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.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)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
(*.f64 x #s(literal 1/2 binary64))
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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 (/.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(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.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)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
(*.f64 x #s(literal 1/2 binary64))

eval3.0ms (0.2%)

Memory
9.3MiB live, 9.3MiB allocated
Compiler

Compiled 933 to 46 computations (95.1% saved)

prune4.0ms (0.3%)

Memory
9.1MiB live, 9.1MiB allocated
Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New27330
Fresh000
Picked044
Done011
Total27835
Accuracy
82.4%
Counts
35 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.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))
6.9%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
6.5%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
14.6%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
8.4%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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)))))
10.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
19.7%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
15.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
Compiler

Compiled 202 to 122 computations (39.6% saved)

simplify1.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Algorithm
egg-herbie
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x #s(literal 1/2 binary64))
cost-diff0
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))
cost-diff0
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
cost-diff0
(sin.f64 x)
cost-diff0
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
cost-diff0
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (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
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
cost-diff0
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (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 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
x
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (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 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
x
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))
(*.f64 x #s(literal 1/2 binary64))
x
#s(literal 1/2 binary64)

localize44.0ms (2.6%)

Memory
1.1MiB live, 76.8MiB allocated
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x #s(literal 1/2 binary64))
accuracy54.62791316323604
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
accuracy57.64064957443091
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))
accuracy0.00390625
(sin.f64 x)
accuracy54.273744252460084
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
accuracy54.62791316323604
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
accuracy0.0
(*.f64 x #s(literal 1/2 binary64))
accuracy0.0
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
accuracy58.249773348475415
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
accuracy58.6396579889933
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
Samples
36.0ms256×0valid
Compiler

Compiled 246 to 34 computations (86.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-sin: 11.0ms (56% of total)
ival-div: 4.0ms (20.4% of total)
ival-mult: 4.0ms (20.4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series6.0ms (0.3%)

Memory
-37.6MiB live, 7.6MiB allocated
Counts
9 → 25
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (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))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.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))))
(* 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 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)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(sin (* 1/2 x))
(* 8/3 (sin (* 1/2 x)))
(sin x)
Calls

3 calls:

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

simplify1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Algorithm
egg-herbie
Counts
25 → 9
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))))
(* 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 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)))
(* 8/3 (pow (sin (* 1/2 x)) 2))
(sin (* 1/2 x))
(* 8/3 (sin (* 1/2 x)))
(sin x)
Outputs
(* 2/3 x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(* x (+ 2/3 (* 1/18 (pow x 2))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64))))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* 1/180 (pow x 2))))))
(sin.f64 (*.f64 x #s(literal 1/2 binary64)))
(* x (+ 2/3 (* (pow x 2) (+ 1/18 (* (pow x 2) (+ 1/180 (* 17/30240 (pow x 2))))))))
(*.f64 x #s(literal 1/2 binary64))
(* 2/3 (pow x 2))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
(* (pow x 2) (+ 2/3 (* -1/18 (pow x 2))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* 1/540 (pow x 2)) 1/18))))
(sin.f64 x)
(* (pow x 2) (+ 2/3 (* (pow x 2) (- (* (pow x 2) (+ 1/540 (* -1/30240 (pow x 2)))) 1/18))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
(* 1/2 x)
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))

rewrite1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Counts
9 → 9
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (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))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
#s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (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))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x))
(sin.f64 x)
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))

eval2.0ms (0.1%)

Memory
5.5MiB live, 5.5MiB allocated
Compiler

Compiled 646 to 35 computations (94.6% saved)

prune8.0ms (0.5%)

Memory
22.0MiB live, 22.0MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New18018
Fresh000
Picked033
Done055
Total18826
Accuracy
82.4%
Counts
26 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.6%
(/.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))
6.9%
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
6.5%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
14.6%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
8.4%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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)))))
10.8%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
19.7%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
15.2%
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
Compiler

Compiled 404 to 154 computations (61.9% saved)

regimes8.0ms (0.4%)

Memory
-25.3MiB live, 13.9MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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 (*.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))
Calls

2 calls:

4.0ms
x
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))
Results
AccuracySegmentsBranch
79.6%1x
79.6%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)

regimes6.0ms (0.4%)

Memory
12.6MiB live, 12.6MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (*.f64 (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)) (sin.f64 (*.f64 x #s(literal 1/2 binary64)))))
(/.f64 #s(approx (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin.f64 x)) (sin.f64 x))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin 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)))))
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 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
19.7%1x
19.7%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)

regimes3.0ms (0.2%)

Memory
8.8MiB live, 8.8MiB allocated
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64)))
Calls

2 calls:

1.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))
1.0ms
x
Results
AccuracySegmentsBranch
14.3%2(/.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))
12.6%2x
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes3.0ms (0.2%)

Memory
8.4MiB live, 8.4MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
Outputs
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
Calls

2 calls:

1.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))
1.0ms
x
Results
AccuracySegmentsBranch
10.8%1x
10.8%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)

bsearch0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.573923789393061e-9
0.044018002813745266
Compiler

Compiled 19 to 15 computations (21.1% saved)

simplify6.0ms (0.3%)

Memory
-26.7MiB live, 12.3MiB allocated
Algorithm
egg-herbie
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))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
(if (<=.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)) #s(literal 4835703278458517/2417851639229258349412352 binary64)) #s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))) #s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))
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))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (sin.f64 x)))
(if (<=.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)) #s(literal 4835703278458517/2417851639229258349412352 binary64)) #s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64)))) #s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) (/.f64 #s(literal 8 binary64) #s(literal 3 binary64))))
#s(approx (/ (* (* (/ 8 3) (sin (* x 1/2))) (sin (* x 1/2))) (sin x)) #s(approx (* (/ 8 3) (sin (* x 1/2))) (*.f64 x #s(literal 1/2 binary64))))

soundness1.0ms (0.1%)

Memory
2.8MiB live, 2.8MiB allocated
Stop Event
done
Compiler

Compiled 141 to 29 computations (79.4% saved)

preprocess39.0ms (2.3%)

Memory
6.2MiB live, 84.9MiB allocated
Compiler

Compiled 346 to 102 computations (70.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...