Diagrams.TwoD.Layout.CirclePacking:approxRadius from diagrams-contrib-1.3.0.5

Time bar (total: 1.8s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze162.0ms (8.9%)

Memory
25.6MiB live, 221.4MiB 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
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
15.6%15.6%84.3%0.1%0%0%0%8
28.1%28.1%71.8%0.1%0%0%0%9
30.5%30.4%69.5%0.1%0%0%0%10
38.3%38.2%61.7%0.1%0%0%0%11
39.6%39.6%60.3%0.1%0%0%0%12
Compiler

Compiled 15 to 10 computations (33.3% saved)

sample1.2s (68.2%)

Memory
21.8MiB live, 1 768.9MiB allocated
Samples
685.0ms4 019×1valid
259.0ms4 237×0valid
Precisions
Click to see histograms. Total time spent on operations: 711.0ms
ival-tan: 205.0ms (28.8% of total)
ival-sin: 203.0ms (28.5% of total)
ival-div: 176.0ms (24.8% of total)
ival-mult: 63.0ms (8.9% of total)
adjust: 49.0ms (6.9% of total)
ival-true: 6.0ms (0.8% of total)
exact: 5.0ms (0.7% of total)
ival-assert: 3.0ms (0.4% of total)
Bogosity

explain131.0ms (7.2%)

Memory
-9.0MiB live, 185.2MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1340-0-(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
1340-0-(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
290-0-(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
00-0-y
00-0-#s(literal 2 binary64)
00-0-(/.f64 x (*.f64 y #s(literal 2 binary64)))
00-0-x
00-0-(*.f64 y #s(literal 2 binary64))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sin.f64(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))sensitivity950
tan.f64(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))sensitivity950
sin.f64(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))oflow-rescue390
(/.f64 x (*.f64 y #s(literal 2 binary64)))overflow39
tan.f64(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))oflow-rescue390
(/.f64 x (*.f64 y #s(literal 2 binary64)))overflow39
/.f64(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))u/u290
(/.f64 x (*.f64 y #s(literal 2 binary64)))underflow29
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))underflow29
(/.f64 x (*.f64 y #s(literal 2 binary64)))underflow29
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))underflow29
Confusion
Predicted +Predicted -
+1630
-093
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+16300
-0093
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
093
129
2134
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
47.0ms258×1valid
18.0ms254×0valid
Compiler

Compiled 125 to 36 computations (71.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 45.0ms
ival-div: 13.0ms (29% of total)
ival-sin: 13.0ms (29% of total)
ival-tan: 11.0ms (24.5% of total)
ival-mult: 4.0ms (8.9% of total)
adjust: 3.0ms (6.7% 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.8MiB live, 4.8MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Outputs
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Compiler

Compiled 13 to 8 computations (38.5% 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
42.0%
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Compiler

Compiled 13 to 8 computations (38.5% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

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

localize39.0ms (2.1%)

Memory
12.6MiB live, 50.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y #s(literal 2 binary64))
accuracy7.183673530473934
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
accuracy30.324543716375977
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy30.719408491299557
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
Samples
23.0ms129×1valid
8.0ms127×0valid
Compiler

Compiled 74 to 18 computations (75.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-sin: 7.0ms (31.6% of total)
ival-tan: 6.0ms (27.1% of total)
ival-div: 5.0ms (22.6% of total)
adjust: 2.0ms (9% of total)
ival-mult: 2.0ms (9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series19.0ms (1%)

Memory
-14.5MiB live, 23.5MiB allocated
Counts
5 → 33
Calls
Call 1
Inputs
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
(/.f64 x (*.f64 y #s(literal 2 binary64)))
(*.f64 y #s(literal 2 binary64))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
Outputs
1
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(* 1/2 (/ x y))
(* x (+ (* 1/24 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* 1/240 (/ (pow x 2) (pow y 5))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 17/40320 (/ (pow x 2) (pow y 7))) (* 1/240 (/ 1 (pow y 5))))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* -1/48 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* 1/3840 (/ (pow x 2) (pow y 5))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* (pow x 2) (+ (* -1/645120 (/ (pow x 2) (pow y 7))) (* 1/3840 (/ 1 (pow y 5))))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(/ 1 (cos (* 1/2 (/ x y))))
(/ (sin (* 1/2 (/ x y))) (cos (* 1/2 (/ x y))))
(sin (* 1/2 (/ x y)))
(* 2 y)
(- (+ 1 (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (+ (* 2 (/ (- (* -1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))))) (+ (* -1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))))))) (* x (pow y 6)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) (* -1/16 (/ (pow x 3) (pow y 2)))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (* 1/768 (/ (pow x 5) (pow y 4)))))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5))))) (pow y 6))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (+ (* -1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/768 (/ (pow x 5) (pow y 4))) (* 1/384 (/ (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 6))))))))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) y)
(- (+ 1 (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (+ (* -2 (/ (- (* 1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))))) (+ (* 1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))))))) (* x (pow y 6)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(* -1 (/ (- (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) (* 1/16 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (* 1/16 (/ (pow x 3) (pow y 2)))))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5))))) (pow y 6))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (+ (* 1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/384 (/ (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 6))) (* 1/16 (/ (pow x 3) (pow y 2))))))))) y))
(* -1 (/ (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) y))
Calls

6 calls:

TimeVariablePointExpression
5.0ms
y
@inf
((/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan (/ x (* y 2))) (/ x (* y 2)) (* y 2) (sin (/ x (* y 2))))
4.0ms
y
@-inf
((/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan (/ x (* y 2))) (/ x (* y 2)) (* y 2) (sin (/ x (* y 2))))
3.0ms
x
@inf
((/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan (/ x (* y 2))) (/ x (* y 2)) (* y 2) (sin (/ x (* y 2))))
2.0ms
x
@0
((/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan (/ x (* y 2))) (/ x (* y 2)) (* y 2) (sin (/ x (* y 2))))
2.0ms
x
@-inf
((/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan (/ x (* y 2))) (/ x (* y 2)) (* y 2) (sin (/ x (* y 2))))

simplify1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Algorithm
egg-herbie
Counts
33 → 5
Calls
Call 1
Inputs
1
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(* 1/2 (/ x y))
(* x (+ (* 1/24 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* 1/240 (/ (pow x 2) (pow y 5))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 17/40320 (/ (pow x 2) (pow y 7))) (* 1/240 (/ 1 (pow y 5))))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* -1/48 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* 1/3840 (/ (pow x 2) (pow y 5))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* (pow x 2) (+ (* -1/645120 (/ (pow x 2) (pow y 7))) (* 1/3840 (/ 1 (pow y 5))))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(/ 1 (cos (* 1/2 (/ x y))))
(/ (sin (* 1/2 (/ x y))) (cos (* 1/2 (/ x y))))
(sin (* 1/2 (/ x y)))
(* 2 y)
(- (+ 1 (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (+ (* 2 (/ (- (* -1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))))) (+ (* -1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))))))) (* x (pow y 6)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) (* -1/16 (/ (pow x 3) (pow y 2)))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (* 1/768 (/ (pow x 5) (pow y 4)))))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5))))) (pow y 6))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (+ (* -1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/768 (/ (pow x 5) (pow y 4))) (* 1/384 (/ (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 6))))))))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) y)
(- (+ 1 (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (+ (* -2 (/ (- (* 1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))))) (+ (* 1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))))))) (* x (pow y 6)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(* -1 (/ (- (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) (* 1/16 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (* 1/16 (/ (pow x 3) (pow y 2)))))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5))))) (pow y 6))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (+ (* 1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/384 (/ (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 6))) (* 1/16 (/ (pow x 3) (pow y 2))))))))) y))
(* -1 (/ (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) y))
Outputs
1
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(/.f64 x (*.f64 y #s(literal 2 binary64)))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(*.f64 y #s(literal 2 binary64))
(* 1/2 (/ x y))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))

rewrite0.0ms (0%)

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

eval1.0ms (0.1%)

Memory
2.1MiB live, 2.1MiB allocated
Compiler

Compiled 194 to 20 computations (89.7% saved)

prune2.0ms (0.1%)

Memory
3.8MiB live, 3.8MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New8412
Fresh000
Picked011
Done000
Total8513
Accuracy
45.1%
Counts
13 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
42.0%
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
39.0%
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
3.6%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
3.7%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
5.4%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Compiler

Compiled 89 to 56 computations (37.1% saved)

simplify1.0ms (0%)

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

Found 13 expressions of interest:

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

localize53.0ms (2.9%)

Memory
-17.8MiB live, 64.7MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y #s(literal 2 binary64))
accuracy7.183673530473934
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
accuracy30.324543716375977
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy30.781840773443708
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
accuracy0.0
(/.f64 x (*.f64 y #s(literal 2 binary64)))
accuracy0.0
(*.f64 y #s(literal 2 binary64))
accuracy61.698804855040855
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy0.0
(*.f64 y #s(literal 2 binary64))
accuracy61.60282130940158
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
accuracy0.0
(/.f64 x (*.f64 y #s(literal 2 binary64)))
accuracy0.0
(*.f64 y #s(literal 2 binary64))
accuracy30.719408491299557
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy58.983955397304506
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Samples
32.0ms129×1valid
11.0ms127×0valid
Compiler

Compiled 249 to 28 computations (88.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-div: 6.0ms (27.4% of total)
ival-sin: 6.0ms (27.4% of total)
ival-tan: 6.0ms (27.4% of total)
adjust: 2.0ms (9.1% of total)
ival-mult: 2.0ms (9.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
11.3MiB live, 11.3MiB allocated
Counts
9 → 33
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
(/.f64 x (*.f64 y #s(literal 2 binary64)))
(*.f64 y #s(literal 2 binary64))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
Outputs
1
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(* 1/2 (/ x y))
(* x (+ (* 1/24 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* 1/240 (/ (pow x 2) (pow y 5))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 17/40320 (/ (pow x 2) (pow y 7))) (* 1/240 (/ 1 (pow y 5))))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* -1/48 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* 1/3840 (/ (pow x 2) (pow y 5))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* (pow x 2) (+ (* -1/645120 (/ (pow x 2) (pow y 7))) (* 1/3840 (/ 1 (pow y 5))))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(/ 1 (cos (* 1/2 (/ x y))))
(/ (sin (* 1/2 (/ x y))) (cos (* 1/2 (/ x y))))
(sin (* 1/2 (/ x y)))
(* 2 y)
(- (+ 1 (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (+ (* 2 (/ (- (* -1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))))) (+ (* -1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))))))) (* x (pow y 6)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) (* -1/16 (/ (pow x 3) (pow y 2)))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (* 1/768 (/ (pow x 5) (pow y 4)))))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5))))) (pow y 6))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (+ (* -1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/768 (/ (pow x 5) (pow y 4))) (* 1/384 (/ (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 6))))))))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) y)
(- (+ 1 (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (+ (* -2 (/ (- (* 1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))))) (+ (* 1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))))))) (* x (pow y 6)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(* -1 (/ (- (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) (* 1/16 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (* 1/16 (/ (pow x 3) (pow y 2)))))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5))))) (pow y 6))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (+ (* 1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/384 (/ (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 6))) (* 1/16 (/ (pow x 3) (pow y 2))))))))) y))
(* -1 (/ (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) y))
Calls

6 calls:

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

simplify1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Algorithm
egg-herbie
Counts
33 → 9
Calls
Call 1
Inputs
1
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(* 1/2 (/ x y))
(* x (+ (* 1/24 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* 1/240 (/ (pow x 2) (pow y 5))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 17/40320 (/ (pow x 2) (pow y 7))) (* 1/240 (/ 1 (pow y 5))))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* -1/48 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* 1/3840 (/ (pow x 2) (pow y 5))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* (pow x 2) (+ (* -1/645120 (/ (pow x 2) (pow y 7))) (* 1/3840 (/ 1 (pow y 5))))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(/ 1 (cos (* 1/2 (/ x y))))
(/ (sin (* 1/2 (/ x y))) (cos (* 1/2 (/ x y))))
(sin (* 1/2 (/ x y)))
(* 2 y)
(- (+ 1 (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (+ (* 2 (/ (- (* -1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))))) (+ (* -1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))))))) (* x (pow y 6)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) (* -1/16 (/ (pow x 3) (pow y 2)))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (* 1/768 (/ (pow x 5) (pow y 4)))))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5))))) (pow y 6))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (+ (* -1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/768 (/ (pow x 5) (pow y 4))) (* 1/384 (/ (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 6))))))))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) y)
(- (+ 1 (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (+ (* -2 (/ (- (* 1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))))) (+ (* 1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))))))) (* x (pow y 6)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(* -1 (/ (- (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) (* 1/16 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (* 1/16 (/ (pow x 3) (pow y 2)))))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5))))) (pow y 6))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (+ (* 1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/384 (/ (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 6))) (* 1/16 (/ (pow x 3) (pow y 2))))))))) y))
(* -1 (/ (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) y))
Outputs
1
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(/.f64 x (*.f64 y #s(literal 2 binary64)))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(*.f64 y #s(literal 2 binary64))
(* 1/2 (/ x y))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
(* x (+ (* 1/24 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
(* x (+ (* (pow x 2) (+ (* 1/240 (/ (pow x 2) (pow y 5))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(* x (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 17/40320 (/ (pow x 2) (pow y 7))) (* 1/240 (/ 1 (pow y 5))))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(* x (+ (* -1/48 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))

rewrite1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Counts
9 → 9
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
(/.f64 x (*.f64 y #s(literal 2 binary64)))
(*.f64 y #s(literal 2 binary64))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
Outputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
(/.f64 x (*.f64 y #s(literal 2 binary64)))
(*.f64 y #s(literal 2 binary64))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))

eval2.0ms (0.1%)

Memory
4.0MiB live, 4.0MiB allocated
Compiler

Compiled 572 to 31 computations (94.6% saved)

prune4.0ms (0.2%)

Memory
6.6MiB live, 6.6MiB allocated
Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New23124
Fresh000
Picked044
Done011
Total23629
Accuracy
45.2%
Counts
29 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
42.0%
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
39.0%
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
3.6%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
3.7%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
5.4%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
5.2%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
Compiler

Compiled 123 to 71 computations (42.3% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

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

localize39.0ms (2.2%)

Memory
-25.2MiB live, 50.7MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
#s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))))
accuracy30.324543716375977
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy30.781840773443708
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
accuracy58.983955397304506
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
Samples
23.0ms129×1valid
8.0ms127×0valid
Compiler

Compiled 128 to 25 computations (80.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-div: 6.0ms (28.2% of total)
ival-sin: 6.0ms (28.2% of total)
ival-tan: 6.0ms (28.2% of total)
adjust: 2.0ms (9.4% of total)
ival-mult: 2.0ms (9.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series4.0ms (0.2%)

Memory
6.1MiB live, 6.1MiB allocated
Counts
4 → 32
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
Outputs
1
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(* 1/2 (/ x y))
(* x (+ (* 1/24 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* 1/240 (/ (pow x 2) (pow y 5))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 17/40320 (/ (pow x 2) (pow y 7))) (* 1/240 (/ 1 (pow y 5))))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* -1/48 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* 1/3840 (/ (pow x 2) (pow y 5))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* (pow x 2) (+ (* -1/645120 (/ (pow x 2) (pow y 7))) (* 1/3840 (/ 1 (pow y 5))))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(/ 1 (cos (* 1/2 (/ x y))))
(/ (sin (* 1/2 (/ x y))) (cos (* 1/2 (/ x y))))
(sin (* 1/2 (/ x y)))
(- (+ 1 (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (+ (* 2 (/ (- (* -1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))))) (+ (* -1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))))))) (* x (pow y 6)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) (* -1/16 (/ (pow x 3) (pow y 2)))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (* 1/768 (/ (pow x 5) (pow y 4)))))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5))))) (pow y 6))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (+ (* -1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/768 (/ (pow x 5) (pow y 4))) (* 1/384 (/ (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 6))))))))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) y)
(- (+ 1 (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (+ (* -2 (/ (- (* 1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))))) (+ (* 1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))))))) (* x (pow y 6)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(* -1 (/ (- (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) (* 1/16 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (* 1/16 (/ (pow x 3) (pow y 2)))))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5))))) (pow y 6))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (+ (* 1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/384 (/ (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 6))) (* 1/16 (/ (pow x 3) (pow y 2))))))))) y))
(* -1 (/ (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) y))
Calls

6 calls:

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

simplify1.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated
Algorithm
egg-herbie
Counts
32 → 4
Calls
Call 1
Inputs
1
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(* 1/2 (/ x y))
(* x (+ (* 1/24 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* 1/240 (/ (pow x 2) (pow y 5))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (+ (* (pow x 2) (+ (* 17/40320 (/ (pow x 2) (pow y 7))) (* 1/240 (/ 1 (pow y 5))))) (* 1/24 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* -1/48 (/ (pow x 2) (pow y 3))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* 1/3840 (/ (pow x 2) (pow y 5))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(* x (+ (* (pow x 2) (- (* (pow x 2) (+ (* -1/645120 (/ (pow x 2) (pow y 7))) (* 1/3840 (/ 1 (pow y 5))))) (* 1/48 (/ 1 (pow y 3))))) (* 1/2 (/ 1 y))))
(/ 1 (cos (* 1/2 (/ x y))))
(/ (sin (* 1/2 (/ x y))) (cos (* 1/2 (/ x y))))
(sin (* 1/2 (/ x y)))
(- (+ 1 (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) (* x (pow y 2)))) (+ (* 2 (/ (- (* -1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))))) (+ (* -1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))))))) (* x (pow y 6)))) (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) (* x (pow y 4))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (* (pow x 2) (- (* 2 (/ (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* 2 (/ (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) (* -1/16 (/ (pow x 3) (pow y 2)))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (* 1/768 (/ (pow x 5) (pow y 4)))))) y)
(/ (- (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 4))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3))))) (* 1/768 (pow x 5))))) (pow y 6))) (+ (* -1/16 (/ (pow x 3) (pow y 2))) (+ (* -1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/768 (/ (pow x 5) (pow y 4))) (* 1/384 (/ (* (pow x 4) (- (* -1/48 (pow x 3)) (* -1/16 (pow x 3)))) (pow y 6))))))))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (* 1/2 x)) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x))) y)
(/ (+ (* -1/48 (/ (pow x 3) (pow y 2))) (+ (* -1/645120 (/ (pow x 7) (pow y 6))) (+ (* 1/3840 (/ (pow x 5) (pow y 4))) (* 1/2 x)))) y)
(- (+ 1 (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))) (* -1/24 (/ (pow x 2) (pow y 2))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2)))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (* 1/1920 (/ (pow x 4) (pow y 4))))))
(- (+ 1 (+ (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) (* x (pow y 4)))) (+ (* -2 (/ (- (* 1/645120 (pow x 7)) (+ (* -1/8 (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))))) (+ (* 1/92160 (pow x 7)) (* 1/384 (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))))))) (* x (pow y 6)))) (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) (* x (pow y 2))))))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5)))) x)) (+ (* -1/24 (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2))))) (* 1/1920 (pow x 4))))) (pow y 6))) (+ (* -1/24 (/ (* (pow x 2) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 4))) (+ (* -1/24 (/ (pow x 2) (pow y 2))) (+ (* -1/322560 (/ (pow x 6) (pow y 6))) (+ (* 1/1920 (/ (* (pow x 4) (- (* -2 (/ (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))) x)) (* -1/24 (pow x 2)))) (pow y 6))) (* 1/1920 (/ (pow x 4) (pow y 4)))))))))
(* -1 (/ (- (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) (* 1/16 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (* 1/16 (/ (pow x 3) (pow y 2)))))) y))
(* -1 (/ (- (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) (+ (* -1/8 (/ (* (pow x 2) (- (* -1/3840 (pow x 5)) (+ (* -1/8 (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3))))) (* -1/768 (pow x 5))))) (pow y 6))) (+ (* -1/8 (/ (* (pow x 2) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 4))) (+ (* -1/768 (/ (pow x 5) (pow y 4))) (+ (* 1/92160 (/ (pow x 7) (pow y 6))) (+ (* 1/384 (/ (* (pow x 4) (- (* 1/48 (pow x 3)) (* 1/16 (pow x 3)))) (pow y 6))) (* 1/16 (/ (pow x 3) (pow y 2))))))))) y))
(* -1 (/ (+ (* -1/2 x) (* 1/48 (/ (pow x 3) (pow y 2)))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (* 1/48 (/ (pow x 3) (pow y 2))))) y))
(* -1 (/ (+ (* -1/2 x) (+ (* -1/3840 (/ (pow x 5) (pow y 4))) (+ (* 1/645120 (/ (pow x 7) (pow y 6))) (* 1/48 (/ (pow x 3) (pow y 2)))))) y))
Outputs
1
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
(+ 1 (* 1/8 (/ (pow x 2) (pow y 2))))
#s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))))
(+ 1 (* (pow x 2) (+ (* 5/384 (/ (pow x 2) (pow y 4))) (* 1/8 (/ 1 (pow y 2))))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(+ 1 (* (pow x 2) (+ (* (pow x 2) (+ (* 61/46080 (/ (pow x 2) (pow y 6))) (* 5/384 (/ 1 (pow y 4))))) (* 1/8 (/ 1 (pow y 2))))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))

rewrite0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
Outputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))))
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))

eval1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Compiler

Compiled 231 to 18 computations (92.2% saved)

prune3.0ms (0.2%)

Memory
5.7MiB live, 5.7MiB allocated
Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New707
Fresh000
Picked011
Done055
Total7613
Accuracy
45.2%
Counts
13 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
42.0%
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
39.0%
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
3.6%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
3.7%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
5.4%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
5.2%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
Compiler

Compiled 246 to 92 computations (62.6% saved)

regimes16.0ms (0.9%)

Memory
-16.2MiB live, 23.6MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Outputs
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Calls

5 calls:

5.0ms
y
3.0ms
(*.f64 y #s(literal 2 binary64))
3.0ms
x
3.0ms
(/.f64 x (*.f64 y #s(literal 2 binary64)))
2.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Results
AccuracySegmentsBranch
42.0%1x
42.0%1y
42.0%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
42.0%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
42.0%1(*.f64 y #s(literal 2 binary64))
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes12.0ms (0.7%)

Memory
21.5MiB live, 21.5MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Outputs
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Calls

5 calls:

2.0ms
(*.f64 y #s(literal 2 binary64))
2.0ms
x
2.0ms
y
2.0ms
(/.f64 x (*.f64 y #s(literal 2 binary64)))
2.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Results
AccuracySegmentsBranch
39.0%1y
39.0%1(*.f64 y #s(literal 2 binary64))
39.0%1x
39.0%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
39.0%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes12.0ms (0.6%)

Memory
-19.2MiB live, 19.3MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (/.f64 x (*.f64 y #s(literal 2 binary64))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Outputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Calls

5 calls:

3.0ms
(/.f64 x (*.f64 y #s(literal 2 binary64)))
2.0ms
(*.f64 y #s(literal 2 binary64))
2.0ms
x
2.0ms
y
2.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Results
AccuracySegmentsBranch
5.4%1x
5.4%1y
5.4%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
5.4%1(*.f64 y #s(literal 2 binary64))
5.4%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes9.0ms (0.5%)

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

5 calls:

2.0ms
(*.f64 y #s(literal 2 binary64))
2.0ms
y
2.0ms
x
2.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
2.0ms
(/.f64 x (*.f64 y #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
5.2%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
5.2%1x
5.2%1y
5.2%1(*.f64 y #s(literal 2 binary64))
5.2%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes8.0ms (0.5%)

Memory
-23.6MiB live, 15.1MiB allocated
Accuracy

Total -0.9b remaining (-1.5%)

Threshold costs -0.9b (-1.5%)

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

5 calls:

2.0ms
x
1.0ms
(*.f64 y #s(literal 2 binary64))
1.0ms
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
1.0ms
y
1.0ms
(/.f64 x (*.f64 y #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
3.7%1x
3.7%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
3.7%1y
3.7%1(*.f64 y #s(literal 2 binary64))
3.7%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Compiler

Compiled 23 to 21 computations (8.7% saved)

simplify4.0ms (0.2%)

Memory
8.8MiB live, 8.8MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
Outputs
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
(/.f64 #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) #s(approx (tan (/ x (* y 2))) #s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))))
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))

soundness1.0ms (0.1%)

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

Compiled 104 to 20 computations (80.8% saved)

preprocess38.0ms (2.1%)

Memory
22.7MiB live, 60.6MiB allocated
Compiler

Compiled 298 to 92 computations (69.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...