VandenBroeck and Keller, Equation (24)

Time bar (total: 1.8s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze159.0ms (8.7%)

Memory
-6.2MiB live, 187.6MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
25%25%74.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
37.5%37.5%62.4%0.1%0%0%0%7
43.8%43.7%56.2%0.1%0%0%0%8
43.8%43.7%56.2%0.1%0%0%0%9
46.9%46.8%53.1%0.1%0%0%0%10
46.9%46.8%53.1%0.1%0%0%0%11
48.4%48.4%51.5%0.1%0%0%0%12
Compiler

Compiled 14 to 12 computations (14.3% saved)

sample1.2s (63.6%)

Memory
34.8MiB live, 1 267.6MiB allocated
Samples
879.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 691.0ms
ival-tan: 254.0ms (36.8% of total)
ival-sin: 179.0ms (25.9% of total)
ival-div: 115.0ms (16.6% of total)
ival-mult: 56.0ms (8.1% of total)
ival-neg: 37.0ms (5.4% of total)
ival-add: 35.0ms (5.1% of total)
ival-true: 6.0ms (0.9% of total)
exact: 5.0ms (0.7% of total)
ival-assert: 4.0ms (0.6% of total)
Bogosity

explain128.0ms (7%)

Memory
25.4MiB live, 184.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-0-(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
00-0-#s(literal 1 binary64)
00-0-(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
00-0-(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
00-0-(/.f64 #s(literal 1 binary64) (sin.f64 B))
00-0-(/.f64 #s(literal 1 binary64) (tan.f64 B))
00-0-(tan.f64 B)
00-0-B
00-0-(sin.f64 B)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
*.f64(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))n*o10
Confusion
Predicted +Predicted -
+00
-1255
Precision
0.0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-10255
Precision?
0.0
Recall?
0/0
Freqs
test
numberfreq
0255
11
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-100
Precision?
0.0
Recall?
0/0
Samples
60.0ms512×0valid
Compiler

Compiled 136 to 44 computations (67.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 42.0ms
ival-tan: 13.0ms (31.2% of total)
ival-sin: 12.0ms (28.8% of total)
ival-div: 7.0ms (16.8% of total)
ival-mult: 4.0ms (9.6% of total)
ival-add: 2.0ms (4.8% of total)
ival-neg: 2.0ms (4.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

preprocess3.0ms (0.1%)

Memory
4.6MiB live, 4.6MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Outputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Compiler

Compiled 12 to 10 computations (16.7% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Compiler

Compiled 12 to 10 computations (16.7% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal 1 binary64) (tan.f64 B))
cost-diff0
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
cost-diff0
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
cost-diff0
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Calls
Call 1
Inputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
x
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)
Outputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
x
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)

localize37.0ms (2%)

Memory
-19.8MiB live, 56.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.01171875
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
accuracy0.12109375
(/.f64 #s(literal 1 binary64) (sin.f64 B))
accuracy0.15625
(/.f64 #s(literal 1 binary64) (tan.f64 B))
accuracy0.4802310748357843
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
Samples
30.0ms256×0valid
Compiler

Compiled 82 to 22 computations (73.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
ival-tan: 6.0ms (31.6% of total)
ival-sin: 5.0ms (26.3% of total)
ival-div: 3.0ms (15.8% of total)
ival-mult: 2.0ms (10.5% of total)
ival-add: 1.0ms (5.3% of total)
ival-neg: 1.0ms (5.3% 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.7%)

Memory
20.6MiB live, 20.6MiB allocated
Counts
5 → 27
Calls
Call 1
Inputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
Outputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ 1 B)
(/ (+ 1 (* -1/3 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (- (* -1/45 (pow B 2)) 1/3))) B)
(/ (+ 1 (* (pow B 2) (- (* (pow B 2) (- (* -2/945 (pow B 2)) 1/45)) 1/3))) B)
(/ (+ 1 (* 1/6 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* 7/360 (pow B 2))))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* (pow B 2) (+ 7/360 (* 31/15120 (pow B 2))))))) B)
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(* -1 (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ (cos B) (sin B))
(/ 1 (sin B))
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Calls

6 calls:

TimeVariablePointExpression
2.0ms
B
@-inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (/ 1 (sin B)))
2.0ms
B
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (/ 1 (sin B)))
2.0ms
x
@0
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (/ 1 (sin B)))
2.0ms
B
@0
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (/ 1 (sin B)))
2.0ms
x
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (/ 1 (sin B)))

simplify1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Counts
27 → 5
Calls
Call 1
Inputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ 1 B)
(/ (+ 1 (* -1/3 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (- (* -1/45 (pow B 2)) 1/3))) B)
(/ (+ 1 (* (pow B 2) (- (* (pow B 2) (- (* -2/945 (pow B 2)) 1/45)) 1/3))) B)
(/ (+ 1 (* 1/6 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* 7/360 (pow B 2))))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* (pow B 2) (+ 7/360 (* 31/15120 (pow B 2))))))) B)
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(* -1 (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ (cos B) (sin B))
(/ 1 (sin B))
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Outputs
(/ (- 1 x) B)
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(/.f64 #s(literal 1 binary64) (tan.f64 B))
(* -1 (/ x B))
(/.f64 #s(literal 1 binary64) (sin.f64 B))

rewrite0.0ms (0%)

Memory
0.6MiB live, 0.7MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
Outputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
(/.f64 #s(literal 1 binary64) (sin.f64 B))

eval1.0ms (0.1%)

Memory
2.2MiB live, 2.2MiB allocated
Compiler

Compiled 158 to 24 computations (84.8% saved)

prune4.0ms (0.2%)

Memory
-37.9MiB live, 3.8MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
99.7%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
12.0%
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
28.6%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
2.2%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
47.9%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
Compiler

Compiled 85 to 67 computations (21.2% saved)

simplify1.0ms (0%)

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

Found 15 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sin.f64 B)
cost-diff0
(/.f64 #s(literal 1 binary64) (sin.f64 B))
cost-diff0
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
cost-diff0
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
cost-diff0
(tan.f64 B)
cost-diff0
(/.f64 #s(literal 1 binary64) (tan.f64 B))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
cost-diff0
(tan.f64 B)
cost-diff0
(/.f64 #s(literal 1 binary64) (tan.f64 B))
cost-diff0
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
cost-diff0
(/.f64 #s(literal 1 binary64) (tan.f64 B))
cost-diff0
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
cost-diff0
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
x
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
x
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
#s(literal 1 binary64)
(sin.f64 B)
B
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
x
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
x
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(literal 1 binary64)
(tan.f64 B)
B
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
#s(literal 1 binary64)
(sin.f64 B)
B

localize43.0ms (2.3%)

Memory
23.3MiB live, 61.9MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(sin.f64 B)
accuracy0.01171875
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
accuracy0.12109375
(/.f64 #s(literal 1 binary64) (sin.f64 B))
accuracy61.69742355398504
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
accuracy0.0
(tan.f64 B)
accuracy0.15625
(/.f64 #s(literal 1 binary64) (tan.f64 B))
accuracy45.700003034181194
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
accuracy0.0
(tan.f64 B)
accuracy0.15625
(/.f64 #s(literal 1 binary64) (tan.f64 B))
accuracy0.4802310748357843
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
accuracy62.59204096676679
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
accuracy0.0
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
accuracy0.15625
(/.f64 #s(literal 1 binary64) (tan.f64 B))
accuracy0.4802310748357843
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
accuracy33.45296542854804
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
Samples
32.0ms256×0valid
Compiler

Compiled 248 to 34 computations (86.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-tan: 7.0ms (34.9% of total)
ival-sin: 5.0ms (24.9% of total)
ival-div: 3.0ms (15% of total)
ival-mult: 2.0ms (10% of total)
ival-add: 1.0ms (5% of total)
ival-neg: 1.0ms (5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series9.0ms (0.5%)

Memory
13.1MiB live, 13.1MiB allocated
Counts
11 → 36
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(tan.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)
Outputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ 1 B)
(/ (+ 1 (* -1/3 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (- (* -1/45 (pow B 2)) 1/3))) B)
(/ (+ 1 (* (pow B 2) (- (* (pow B 2) (- (* -2/945 (pow B 2)) 1/45)) 1/3))) B)
B
(* B (+ 1 (* 1/3 (pow B 2))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* 2/15 (pow B 2))))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* (pow B 2) (+ 2/15 (* 17/315 (pow B 2))))))))
(/ (+ 1 (* 1/6 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* 7/360 (pow B 2))))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* (pow B 2) (+ 7/360 (* 31/15120 (pow B 2))))))) B)
(* B (+ 1 (* -1/6 (pow B 2))))
(* B (+ 1 (* (pow B 2) (- (* 1/120 (pow B 2)) 1/6))))
(* B (+ 1 (* (pow B 2) (- (* (pow B 2) (+ 1/120 (* -1/5040 (pow B 2)))) 1/6))))
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(* -1 (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ (cos B) (sin B))
(/ (sin B) (cos B))
(/ 1 (sin B))
(sin B)
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Calls

6 calls:

TimeVariablePointExpression
3.0ms
B
@0
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (/ 1 (sin B)) (sin B))
1.0ms
x
@-inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (/ 1 (sin B)) (sin B))
1.0ms
x
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (/ 1 (sin B)) (sin B))
1.0ms
x
@0
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (/ 1 (sin B)) (sin B))
1.0ms
B
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (/ 1 (tan B)) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (/ 1 (sin B)) (sin B))

simplify2.0ms (0.1%)

Memory
-37.0MiB live, 1.3MiB allocated
Algorithm
egg-herbie
Counts
36 → 11
Calls
Call 1
Inputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ 1 B)
(/ (+ 1 (* -1/3 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (- (* -1/45 (pow B 2)) 1/3))) B)
(/ (+ 1 (* (pow B 2) (- (* (pow B 2) (- (* -2/945 (pow B 2)) 1/45)) 1/3))) B)
B
(* B (+ 1 (* 1/3 (pow B 2))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* 2/15 (pow B 2))))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* (pow B 2) (+ 2/15 (* 17/315 (pow B 2))))))))
(/ (+ 1 (* 1/6 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* 7/360 (pow B 2))))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* (pow B 2) (+ 7/360 (* 31/15120 (pow B 2))))))) B)
(* B (+ 1 (* -1/6 (pow B 2))))
(* B (+ 1 (* (pow B 2) (- (* 1/120 (pow B 2)) 1/6))))
(* B (+ 1 (* (pow B 2) (- (* (pow B 2) (+ 1/120 (* -1/5040 (pow B 2)))) 1/6))))
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(* -1 (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ (cos B) (sin B))
(/ (sin B) (cos B))
(/ 1 (sin B))
(sin B)
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Outputs
(/ (- 1 x) B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(/.f64 #s(literal 1 binary64) (tan.f64 B))
(* -1 (/ x B))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(tan.f64 B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/ x B)
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(sin.f64 B)

rewrite1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Counts
11 → 11
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(tan.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(/.f64 #s(literal 1 binary64) (tan.f64 B))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
(tan.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)

eval3.0ms (0.2%)

Memory
6.8MiB live, 6.8MiB allocated
Compiler

Compiled 660 to 43 computations (93.5% saved)

prune6.0ms (0.3%)

Memory
11.8MiB live, 11.8MiB allocated
Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New24529
Fresh000
Picked134
Done011
Total25934
Accuracy
99.7%
Counts
34 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
12.0%
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
28.6%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
47.9%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
2.1%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
2.0%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
53.3%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
8.0%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
4.8%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
Compiler

Compiled 300 to 194 computations (35.3% saved)

simplify1.0ms (0%)

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

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal 1 binary64) (sin.f64 B))
cost-diff0
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
cost-diff0
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
cost-diff0
(sin.f64 B)
cost-diff0
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
cost-diff0
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
cost-diff0
(sin.f64 B)
cost-diff0
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
cost-diff0
(tan.f64 B)
cost-diff0
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
cost-diff0
(sin.f64 B)
cost-diff0
(/.f64 #s(literal 1 binary64) (sin.f64 B))
cost-diff0
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
#s(literal 1 binary64)
(sin.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
(tan.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
(sin.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
(sin.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
#s(literal 1 binary64)
(sin.f64 B)
B
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
#s(literal 1 binary64)
(sin.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
(tan.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
(sin.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
(sin.f64 B)
B
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
#s(literal 1 binary64)
(sin.f64 B)
B

localize46.0ms (2.5%)

Memory
-9.0MiB live, 69.7MiB allocated
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
accuracy0.12109375
(/.f64 #s(literal 1 binary64) (sin.f64 B))
accuracy33.45296542854804
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
accuracy61.83381607005041
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
accuracy0.0
(sin.f64 B)
accuracy0.0
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
accuracy33.45296542854804
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
accuracy61.91309334137954
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
accuracy0.0
(sin.f64 B)
accuracy61.91309334137954
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
accuracy62.59204096676679
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
accuracy0.0
(tan.f64 B)
accuracy33.45296542854804
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
accuracy61.90689556394786
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
accuracy0.0
(sin.f64 B)
accuracy0.12109375
(/.f64 #s(literal 1 binary64) (sin.f64 B))
accuracy61.83381607005041
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
accuracy62.59204096676679
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
Samples
35.0ms256×0valid
Compiler

Compiled 346 to 36 computations (89.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-sin: 8.0ms (37% of total)
ival-tan: 6.0ms (27.8% of total)
ival-div: 4.0ms (18.5% of total)
ival-mult: 2.0ms (9.3% of total)
ival-add: 1.0ms (4.6% of total)
ival-neg: 1.0ms (4.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series7.0ms (0.4%)

Memory
14.1MiB live, 14.1MiB allocated
Counts
13 → 32
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
(tan.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
Outputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ 1 B)
(/ (+ 1 (* 1/6 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* 7/360 (pow B 2))))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* (pow B 2) (+ 7/360 (* 31/15120 (pow B 2))))))) B)
B
(* B (+ 1 (* -1/6 (pow B 2))))
(* B (+ 1 (* (pow B 2) (- (* 1/120 (pow B 2)) 1/6))))
(* B (+ 1 (* (pow B 2) (- (* (pow B 2) (+ 1/120 (* -1/5040 (pow B 2)))) 1/6))))
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(* B (+ 1 (* 1/3 (pow B 2))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* 2/15 (pow B 2))))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* (pow B 2) (+ 2/15 (* 17/315 (pow B 2))))))))
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ 1 (sin B))
(sin B)
(* -1 (/ (* x (cos B)) (sin B)))
(/ (sin B) (cos B))
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (/ 1 (sin B)) (sin B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))))
1.0ms
x
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (/ 1 (sin B)) (sin B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))))
1.0ms
x
@0
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (/ 1 (sin B)) (sin B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))))
1.0ms
B
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (/ 1 (sin B)) (sin B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))))
1.0ms
B
@-inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (/ 1 (sin B)) (sin B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (tan B) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (* x (/ 1 (tan B))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))))

simplify1.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Algorithm
egg-herbie
Counts
32 → 13
Calls
Call 1
Inputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ 1 B)
(/ (+ 1 (* 1/6 (pow B 2))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* 7/360 (pow B 2))))) B)
(/ (+ 1 (* (pow B 2) (+ 1/6 (* (pow B 2) (+ 7/360 (* 31/15120 (pow B 2))))))) B)
B
(* B (+ 1 (* -1/6 (pow B 2))))
(* B (+ 1 (* (pow B 2) (- (* 1/120 (pow B 2)) 1/6))))
(* B (+ 1 (* (pow B 2) (- (* (pow B 2) (+ 1/120 (* -1/5040 (pow B 2)))) 1/6))))
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(* B (+ 1 (* 1/3 (pow B 2))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* 2/15 (pow B 2))))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* (pow B 2) (+ 2/15 (* 17/315 (pow B 2))))))))
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ 1 (sin B))
(sin B)
(* -1 (/ (* x (cos B)) (sin B)))
(/ (sin B) (cos B))
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Outputs
(/ (- 1 x) B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(sin.f64 B)
(/ x B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(tan.f64 B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
(/ 1 B)
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
(/ (+ 1 (* 1/6 (pow B 2))) B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
(/ (+ 1 (* (pow B 2) (+ 1/6 (* 7/360 (pow B 2))))) B)
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
(/ (+ 1 (* (pow B 2) (+ 1/6 (* (pow B 2) (+ 7/360 (* 31/15120 (pow B 2))))))) B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
B
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))

rewrite1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Counts
13 → 13
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
(tan.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(/.f64 #s(literal 1 binary64) (sin.f64 B))
(sin.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B))
(tan.f64 B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (* x (/ 1 (tan B))) (sin.f64 B))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))

eval4.0ms (0.2%)

Memory
9.2MiB live, 9.2MiB allocated
Compiler

Compiled 1 279 to 73 computations (94.3% saved)

prune12.0ms (0.7%)

Memory
-19.7MiB live, 18.9MiB allocated
Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New41142
Fresh000
Picked145
Done044
Total42951
Accuracy
99.7%
Counts
51 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
12.0%
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
28.6%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
47.9%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
2.1%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
4.7%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
53.3%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
8.0%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
4.8%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
Compiler

Compiled 183 to 123 computations (32.8% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(tan.f64 B)
cost-diff0
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
cost-diff0
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
cost-diff0
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
(tan.f64 B)
B
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
(tan.f64 B)
B

localize33.0ms (1.8%)

Memory
19.0MiB live, 57.8MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(tan.f64 B)
accuracy0.0
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
accuracy33.45296542854804
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
accuracy61.969815410866396
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
Samples
27.0ms256×0valid
Compiler

Compiled 75 to 26 computations (65.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-tan: 7.0ms (35.6% of total)
ival-sin: 5.0ms (25.4% of total)
ival-div: 3.0ms (15.2% of total)
ival-mult: 2.0ms (10.2% of total)
ival-add: 1.0ms (5.1% of total)
ival-neg: 1.0ms (5.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series7.0ms (0.4%)

Memory
-27.6MiB live, 11.4MiB allocated
Counts
4 → 24
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
(tan.f64 B)
Outputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
B
(* B (+ 1 (* 1/3 (pow B 2))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* 2/15 (pow B 2))))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* (pow B 2) (+ 2/15 (* 17/315 (pow B 2))))))))
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(* -1 (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ (sin B) (cos B))
(/ 1 (sin B))
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x
@0
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (tan B))
1.0ms
x
@-inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (tan B))
1.0ms
x
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (tan B))
1.0ms
B
@inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (tan B))
1.0ms
B
@-inf
((+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg (* x (/ 1 (tan B)))) (* x (/ 1 (tan B))) (tan B))

simplify0.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Algorithm
egg-herbie
Counts
24 → 4
Calls
Call 1
Inputs
(/ (- 1 x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(* -1 (/ x B))
(/ (- (* 1/3 (* (pow B 2) x)) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (* 2/15 x))))) x) B)
(/ (- (* (pow B 2) (+ (* 1/3 x) (* (pow B 2) (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))) x) B)
(/ x B)
(/ (+ x (* -1/3 (* (pow B 2) x))) B)
(/ (+ x (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
(/ (+ x (* (pow B 2) (- (* (pow B 2) (- (* -1 (* (pow B 2) (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))) (+ (* -1/9 x) (* 2/15 x)))) (* 1/3 x)))) B)
B
(* B (+ 1 (* 1/3 (pow B 2))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* 2/15 (pow B 2))))))
(* B (+ 1 (* (pow B 2) (+ 1/3 (* (pow B 2) (+ 2/15 (* 17/315 (pow B 2))))))))
(- (/ 1 (sin B)) (/ (* x (cos B)) (sin B)))
(* -1 (/ (* x (cos B)) (sin B)))
(/ (* x (cos B)) (sin B))
(/ (sin B) (cos B))
(/ 1 (sin B))
(+ (* -1 (/ (* x (cos B)) (sin B))) (/ 1 (sin B)))
(* x (- (/ 1 (* x (sin B))) (/ (cos B) (sin B))))
(* -1 (* x (- (/ (cos B) (sin B)) (/ 1 (* x (sin B))))))
Outputs
(/ (- 1 x) B)
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (* 1/3 x)))) x) B)
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (* 2/15 x)))))))) x) B)
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
(/ (- (+ 1 (* (pow B 2) (+ 1/6 (+ (* 1/3 x) (* (pow B 2) (+ 7/360 (+ (* -1/9 x) (+ (* 2/15 x) (* (pow B 2) (+ 31/15120 (+ (* -1/3 (+ (* -1/9 x) (* 2/15 x))) (+ (* -2/45 x) (* 17/315 x))))))))))))) x) B)
(tan.f64 B)

rewrite0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
(tan.f64 B)
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
(neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B)))
#s(approx (* x (/ 1 (tan B))) (tan.f64 B))
(tan.f64 B)

eval1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated
Compiler

Compiled 165 to 17 computations (89.7% saved)

prune5.0ms (0.3%)

Memory
10.6MiB live, 10.6MiB allocated
Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New707
Fresh000
Picked011
Done088
Total7916
Accuracy
99.7%
Counts
16 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
12.0%
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
28.6%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
47.9%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
2.1%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
4.7%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
53.3%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
8.0%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
4.8%
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
Compiler

Compiled 408 to 159 computations (61% saved)

regimes18.0ms (1%)

Memory
-23.5MiB live, 19.9MiB allocated
Counts
11 → 1
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Outputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Calls

3 calls:

4.0ms
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
4.0ms
B
4.0ms
x
Results
AccuracySegmentsBranch
99.7%1B
99.7%1x
99.7%1(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Compiler

Compiled 14 to 14 computations (0% saved)

regimes11.0ms (0.6%)

Memory
16.6MiB live, 16.6MiB allocated
Counts
10 → 3
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
(+.f64 #s(approx (neg (* x (/ 1 (tan B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))
Calls

3 calls:

3.0ms
x
3.0ms
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
3.0ms
B
Results
AccuracySegmentsBranch
56.4%2B
76.6%3(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
97.2%3x
Compiler

Compiled 14 to 14 computations (0% saved)

regimes10.0ms (0.5%)

Memory
14.8MiB live, 14.8MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (/.f64 #s(literal 1 binary64) (tan.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
Calls

3 calls:

3.0ms
x
3.0ms
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
3.0ms
B
Results
AccuracySegmentsBranch
53.3%1B
53.3%1(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
53.3%1x
Compiler

Compiled 14 to 14 computations (0% saved)

regimes10.0ms (0.5%)

Memory
-26.1MiB live, 11.3MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 #s(approx (* x (/ 1 (tan B))) (tan.f64 B))))
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
Calls

3 calls:

5.0ms
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
2.0ms
x
2.0ms
B
Results
AccuracySegmentsBranch
8.0%1(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
8.0%1B
8.0%1x
Compiler

Compiled 14 to 14 computations (0% saved)

regimes4.0ms (0.2%)

Memory
7.6MiB live, 7.6MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
Outputs
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
Calls

3 calls:

1.0ms
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
1.0ms
x
1.0ms
B
Results
AccuracySegmentsBranch
4.8%1B
4.8%1(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
4.8%1x
Compiler

Compiled 14 to 14 computations (0% saved)

bsearch46.0ms (2.5%)

Memory
12.4MiB live, 49.1MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
23.0ms
3.7823297244335526e-7
2.3559923012407262
20.0ms
-17125597.034241736
-0.7332232397951061
Samples
31.0ms288×0valid
Compiler

Compiled 807 to 609 computations (24.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-sin: 9.0ms (37.1% of total)
ival-tan: 6.0ms (24.7% of total)
ival-div: 4.0ms (16.5% of total)
ival-mult: 2.0ms (8.2% of total)
ival-add: 1.0ms (4.1% of total)
ival-neg: 1.0ms (4.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

simplify5.0ms (0.3%)

Memory
8.5MiB live, 8.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(if (<=.f64 x #s(literal -3/2 binary64)) #s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))) (if (<=.f64 x #s(literal 1 binary64)) #s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))) #s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))
Outputs
(+.f64 (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))
(if (<=.f64 x #s(literal -3/2 binary64)) #s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B))))) (if (<=.f64 x #s(literal 1 binary64)) #s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B)))) #s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) (neg.f64 (*.f64 x (/.f64 #s(literal 1 binary64) (tan.f64 B)))))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (/.f64 #s(literal 1 binary64) (sin.f64 B))))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (* x (/ 1 (tan B))) (sin.f64 B)))
#s(approx (+ (neg (* x (/ 1 (tan B)))) (/ 1 (sin B))) #s(approx (neg (* x (/ 1 (tan B)))) (tan.f64 B)))

soundness1.0ms (0.1%)

Memory
1.9MiB live, 2.0MiB allocated
Stop Event
done
Compiler

Compiled 153 to 30 computations (80.4% saved)

preprocess32.0ms (1.7%)

Memory
6.2MiB live, 43.1MiB allocated
Compiler

Compiled 330 to 80 computations (75.8% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...