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

analyze177.0ms (9.6%)

Memory
-33.9MiB live, 245.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
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 (66.9%)

Memory
34.0MiB live, 1 709.0MiB allocated
Samples
671.0ms4 038×1valid
277.0ms4 218×0valid
Precisions
Click to see histograms. Total time spent on operations: 707.0ms
ival-sin: 203.0ms (28.7% of total)
ival-tan: 197.0ms (27.9% of total)
ival-div: 173.0ms (24.5% of total)
ival-mult: 67.0ms (9.5% of total)
adjust: 52.0ms (7.4% of total)
ival-true: 6.0ms (0.8% of total)
exact: 5.0ms (0.7% of total)
ival-assert: 4.0ms (0.6% of total)
Bogosity

explain137.0ms (7.4%)

Memory
16.2MiB live, 179.9MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1360-1(-9.528928878118695e-38 -2.1369196751885223e-39)(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
1360-1(-9.528928878118695e-38 -2.1369196751885223e-39)(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
200-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))))sensitivity1060
tan.f64(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))sensitivity1060
sin.f64(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))oflow-rescue290
(/.f64 x (*.f64 y #s(literal 2 binary64)))overflow29
tan.f64(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))oflow-rescue290
(/.f64 x (*.f64 y #s(literal 2 binary64)))overflow29
/.f64(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))u/u200
(/.f64 x (*.f64 y #s(literal 2 binary64)))underflow20
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))underflow20
(/.f64 x (*.f64 y #s(literal 2 binary64)))underflow20
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))underflow20
Confusion
Predicted +Predicted -
+1550
-0101
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+15500
-00101
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0101
120
2135
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
47.0ms264×1valid
17.0ms248×0valid
Compiler

Compiled 125 to 36 computations (71.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 45.0ms
ival-sin: 13.0ms (29.1% of total)
ival-tan: 13.0ms (29.1% of total)
ival-div: 10.0ms (22.4% of total)
adjust: 4.0ms (9% of total)
ival-mult: 4.0ms (9% 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.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
44.3%
(/.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.7MiB live, 0.7MiB 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))))

localize41.0ms (2.2%)

Memory
-27.3MiB live, 49.9MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y #s(literal 2 binary64))
accuracy5.015680021016506
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
accuracy30.619049691814986
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy30.958417135247128
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
Samples
24.0ms132×1valid
8.0ms124×0valid
Compiler

Compiled 74 to 18 computations (75.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
ival-sin: 6.0ms (26.6% of total)
ival-tan: 6.0ms (26.6% of total)
ival-div: 5.0ms (22.2% of total)
ival-mult: 3.0ms (13.3% of total)
adjust: 2.0ms (8.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series17.0ms (0.9%)

Memory
23.2MiB live, 23.2MiB 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))))
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))))
2.0ms
y
@0
((/ (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
1.9MiB live, 1.8MiB 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
48.8%
Counts
13 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
44.3%
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
43.7%
(/.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.5%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
5.9%
#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.2MiB live, 1.2MiB 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)

localize51.0ms (2.8%)

Memory
-1.0MiB live, 73.0MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 y #s(literal 2 binary64))
accuracy5.015680021016506
(/.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.25126885342507
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
accuracy30.619049691814986
(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.70343538577174
#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.72921624474
#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.958417135247128
(tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy58.975178880609995
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
Samples
29.0ms132×1valid
10.0ms124×0valid
Compiler

Compiled 249 to 28 computations (88.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-tan: 9.0ms (38.1% of total)
ival-sin: 6.0ms (25.4% of total)
ival-div: 5.0ms (21.1% of total)
adjust: 2.0ms (8.5% of total)
ival-mult: 2.0ms (8.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series11.0ms (0.6%)

Memory
-24.7MiB live, 12.5MiB 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
6.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.2MiB live, 2.2MiB 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.5MiB live, 4.5MiB allocated
Compiler

Compiled 572 to 31 computations (94.6% saved)

prune4.0ms (0.2%)

Memory
7.8MiB live, 7.8MiB allocated
Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New23124
Fresh000
Picked044
Done011
Total23629
Accuracy
48.9%
Counts
29 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
44.3%
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
43.7%
(/.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.5%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
5.9%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
6.0%
#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
1.0MiB live, 1.0MiB 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)

localize43.0ms (2.4%)

Memory
17.3MiB live, 59.0MiB 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.25126885342507
#s(approx (tan (/ x (* y 2))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
accuracy30.619049691814986
(sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64))))
accuracy58.975178880609995
#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
28.0ms132×1valid
8.0ms124×0valid
Compiler

Compiled 128 to 25 computations (80.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
ival-sin: 11.0ms (42.2% of total)
ival-tan: 6.0ms (23% of total)
ival-div: 5.0ms (19.2% of total)
adjust: 2.0ms (7.7% of total)
ival-mult: 2.0ms (7.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series8.0ms (0.4%)

Memory
-30.2MiB live, 7.6MiB 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
5.0ms
x
@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
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
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
2.2MiB live, 2.2MiB 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.8MiB 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.8MiB live, 1.8MiB allocated
Compiler

Compiled 231 to 18 computations (92.2% saved)

prune3.0ms (0.2%)

Memory
7.3MiB live, 7.2MiB allocated
Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New707
Fresh000
Picked011
Done055
Total7613
Accuracy
48.9%
Counts
13 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
44.3%
(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
43.7%
(/.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.5%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.f64 y #s(literal 2 binary64)))
5.9%
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
6.0%
#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)

regimes14.0ms (0.8%)

Memory
-10.6MiB live, 28.5MiB 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:

3.0ms
y
3.0ms
(*.f64 y #s(literal 2 binary64))
3.0ms
x
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
44.3%1x
44.3%1y
44.3%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
44.3%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
44.3%1(*.f64 y #s(literal 2 binary64))
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes12.0ms (0.6%)

Memory
26.0MiB live, 26.0MiB 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
43.7%1x
43.7%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
43.7%1y
43.7%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
43.7%1(*.f64 y #s(literal 2 binary64))
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes11.0ms (0.6%)

Memory
-15.9MiB live, 23.1MiB 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)))) #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:

3.0ms
y
2.0ms
(*.f64 y #s(literal 2 binary64))
2.0ms
x
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
6.0%1(/.f64 (tan.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))) (sin.f64 (/.f64 x (*.f64 y #s(literal 2 binary64)))))
6.0%1x
6.0%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
6.0%1y
6.0%1(*.f64 y #s(literal 2 binary64))
Compiler

Compiled 23 to 21 computations (8.7% saved)

regimes7.0ms (0.4%)

Memory
15.5MiB live, 15.5MiB allocated
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 x (*.f64 y #s(literal 2 binary64))))
Calls

5 calls:

1.0ms
(/.f64 x (*.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
(*.f64 y #s(literal 2 binary64))
1.0ms
x
1.0ms
y
Results
AccuracySegmentsBranch
3.6%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
3.6%1x
3.6%1y
3.6%1(*.f64 y #s(literal 2 binary64))
3.6%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.4%)

Memory
-28.6MiB live, 13.6MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (/ (tan (/ x (* y 2))) (sin (/ x (* y 2)))) (*.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:

3.0ms
x
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
(*.f64 y #s(literal 2 binary64))
1.0ms
(/.f64 x (*.f64 y #s(literal 2 binary64)))
1.0ms
y
Results
AccuracySegmentsBranch
3.5%1(/.f64 x (*.f64 y #s(literal 2 binary64)))
3.5%1x
3.5%1y
3.5%1(*.f64 y #s(literal 2 binary64))
3.5%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
9.6MiB live, 9.6MiB 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)))) #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 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)))) #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 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.9MiB live, 1.9MiB allocated
Stop Event
done
Compiler

Compiled 103 to 20 computations (80.6% saved)

preprocess41.0ms (2.2%)

Memory
-7.9MiB live, 67.6MiB allocated
Compiler

Compiled 296 to 92 computations (68.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...