Linear.Quaternion:$ccos from linear-1.19.1.3

Time bar (total: 2.5s)

analyze19.0ms (0.7%)

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
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
75%74.9%25%0.1%0%0%0%6
87.5%87.4%12.5%0.1%0%0%0%7
87.5%87.4%12.5%0.1%0%0%0%8
93.8%93.7%6.2%0.1%0%0%0%9
93.8%93.7%6.2%0.1%0%0%0%10
96.9%96.8%3.1%0.1%0%0%0%11
96.9%96.8%3.1%0.1%0%0%0%12
Compiler

Compiled 10 to 7 computations (30% saved)

sample1.7s (68.4%)

Results
877.0ms4209×body256valid
837.0ms4047×body256infinite
Bogosity

preprocess184.0ms (7.3%)

Algorithm
egg-herbie
Rules
996×fma-neg
956×div-sub
772×sub-neg
712×times-frac
696×fma-def
Problems
256×No Errors
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025218
168218
2175218
3591218
42825218
56602218
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 (sin.f64 (neg.f64 x)) (/.f64 (sinh.f64 y) y))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 (neg.f64 y)) (neg.f64 y)))
(neg.f64 (*.f64 (sin.f64 (neg.f64 x)) (/.f64 (sinh.f64 y) y)))
(neg.f64 (*.f64 (sin.f64 x) (/.f64 (sinh.f64 (neg.f64 y)) (neg.f64 y))))
(*.f64 (sin.f64 y) (/.f64 (sinh.f64 x) x))
Outputs
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 (sin.f64 (neg.f64 x)) (/.f64 (sinh.f64 y) y))
(*.f64 (/.f64 (sinh.f64 y) y) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (sin.f64 x) (sinh.f64 y)) (neg.f64 y))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) (neg.f64 y)))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 (neg.f64 y)) (neg.f64 y)))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(neg.f64 (*.f64 (sin.f64 (neg.f64 x)) (/.f64 (sinh.f64 y) y)))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(neg.f64 (*.f64 (sin.f64 x) (/.f64 (sinh.f64 (neg.f64 y)) (neg.f64 y))))
(*.f64 (/.f64 (sinh.f64 y) y) (neg.f64 (sin.f64 x)))
(/.f64 (*.f64 (sin.f64 x) (sinh.f64 y)) (neg.f64 y))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) (neg.f64 y)))
(*.f64 (sin.f64 y) (/.f64 (sinh.f64 x) x))
(*.f64 (sinh.f64 x) (/.f64 (sin.f64 y) x))
Symmetry

(abs y)

(negabs x)

Compiler

Compiled 29 to 13 computations (55.2% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
100.0%
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
Compiler

Compiled 18 to 12 computations (33.3% saved)

localize37.0ms (1.5%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(sin.f64 x)
Compiler

Compiled 20 to 7 computations (65% saved)

series1.0ms (0%)

Counts
1 → 4
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(sin.f64 x)
0.0ms
x
@inf
(sin.f64 x)
0.0ms
x
@-inf
(sin.f64 x)

rewrite365.0ms (14.5%)

Algorithm
batch-egg-rewrite
Rules
989×log1p-expm1-u
554×expm1-udef
554×log1p-udef
448×expm1-log1p-u
384×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
1448
24568
350318
Stop Event
node limit
Counts
1 → 50
Calls
Call 1
Inputs
(sin.f64 x)
Outputs
(+.f64 (+.f64 (sin.f64 x) 1) -1)
(+.f64 0 (sin.f64 x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sin.f64 x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 x)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 x)))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 x)))))
(-.f64 (+.f64 (sin.f64 x) 1) 1)
(-.f64 (*.f64 (sin.f64 (+.f64 x 1)) (cos.f64 1)) (*.f64 (cos.f64 (+.f64 x 1)) (sin.f64 1)))
(*.f64 (sin.f64 x) 1)
(*.f64 (sin.f64 x) (log.f64 (E.f64)))
(*.f64 1 (sin.f64 x))
(*.f64 (cbrt.f64 (sin.f64 x)) (pow.f64 (cbrt.f64 (sin.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (cbrt.f64 (sin.f64 x)))
(*.f64 (sqrt.f64 (sin.f64 x)) (sqrt.f64 (sin.f64 x)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)))
(*.f64 (pow.f64 (sin.f64 x) 1/6) (*.f64 (pow.f64 (sin.f64 x) 1/6) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4))) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2) (cbrt.f64 (sin.f64 x))))
(*.f64 (pow.f64 (sin.f64 x) 1/4) (sqrt.f64 (pow.f64 (sin.f64 x) 3/2)))
(*.f64 (pow.f64 (sin.f64 x) 1/4) (*.f64 (pow.f64 (sin.f64 x) 1/4) (sqrt.f64 (sin.f64 x))))
(*.f64 (*.f64 (sqrt.f64 (sin.f64 x)) (cbrt.f64 (sin.f64 x))) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (pow.f64 1 1/3) (sin.f64 x))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2) 1/3) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (pow.f64 (pow.f64 (sin.f64 x) 5/2) 1/3) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2)) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 5/2)) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (*.f64 (sqrt.f64 (sin.f64 x)) (pow.f64 (sin.f64 x) 1/4)) (pow.f64 (sin.f64 x) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (sin.f64 x) 3/2)) (pow.f64 (sin.f64 x) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 5)) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (*.f64 (cbrt.f64 (sin.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)))) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2)) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (pow.f64 (sin.f64 x) 1/6)) (pow.f64 (sin.f64 x) 1/6))
(/.f64 (sqrt.f64 (-.f64 (cos.f64 0) (cos.f64 (*.f64 x 2)))) (sqrt.f64 2))
(/.f64 (-.f64 (pow.f64 (+.f64 (sin.f64 x) 1) 3) 1) (+.f64 (*.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1)) (+.f64 1 (+.f64 (sin.f64 x) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1)) 1) (+.f64 (+.f64 (sin.f64 x) 1) 1))
(pow.f64 (sin.f64 x) 1)
(pow.f64 (cbrt.f64 (sin.f64 x)) 3)
(pow.f64 (pow.f64 (sin.f64 x) 2) 1/2)
(pow.f64 (pow.f64 (sin.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (sin.f64 x)) 2)
(pow.f64 (E.f64) (log.f64 (sin.f64 x)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (log.f64 (sin.f64 x)) 2))) (cbrt.f64 (log.f64 (sin.f64 x))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sin.f64 x)))) (sqrt.f64 (log.f64 (sin.f64 x))))
(sqrt.f64 (pow.f64 (sin.f64 x) 2))
(fabs.f64 (sin.f64 x))
(log.f64 (exp.f64 (sin.f64 x)))
(cbrt.f64 (pow.f64 (sin.f64 x) 3))
(expm1.f64 (log1p.f64 (sin.f64 x)))
(exp.f64 (log.f64 (sin.f64 x)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (sin.f64 x))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (sin.f64 x))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (sin.f64 x))) 2))
(log1p.f64 (expm1.f64 (sin.f64 x)))

simplify60.0ms (2.4%)

Algorithm
egg-herbie
Rules
1218×fma-def
608×times-frac
606×associate-+r-
558×unswap-sqr
536×log-prod
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01631090
13631061
210501048
34518988
Stop Event
node limit
Counts
54 → 76
Calls
Call 1
Inputs
x
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 1/120 (pow.f64 x 5)))))
(+.f64 (+.f64 (sin.f64 x) 1) -1)
(+.f64 0 (sin.f64 x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sin.f64 x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 x)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 x)))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 x)))))
(-.f64 (+.f64 (sin.f64 x) 1) 1)
(-.f64 (*.f64 (sin.f64 (+.f64 x 1)) (cos.f64 1)) (*.f64 (cos.f64 (+.f64 x 1)) (sin.f64 1)))
(*.f64 (sin.f64 x) 1)
(*.f64 (sin.f64 x) (log.f64 (E.f64)))
(*.f64 1 (sin.f64 x))
(*.f64 (cbrt.f64 (sin.f64 x)) (pow.f64 (cbrt.f64 (sin.f64 x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (cbrt.f64 (sin.f64 x)))
(*.f64 (sqrt.f64 (sin.f64 x)) (sqrt.f64 (sin.f64 x)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)))
(*.f64 (pow.f64 (sin.f64 x) 1/6) (*.f64 (pow.f64 (sin.f64 x) 1/6) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4))) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2) (cbrt.f64 (sin.f64 x))))
(*.f64 (pow.f64 (sin.f64 x) 1/4) (sqrt.f64 (pow.f64 (sin.f64 x) 3/2)))
(*.f64 (pow.f64 (sin.f64 x) 1/4) (*.f64 (pow.f64 (sin.f64 x) 1/4) (sqrt.f64 (sin.f64 x))))
(*.f64 (*.f64 (sqrt.f64 (sin.f64 x)) (cbrt.f64 (sin.f64 x))) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (pow.f64 1 1/3) (sin.f64 x))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2) 1/3) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (pow.f64 (pow.f64 (sin.f64 x) 5/2) 1/3) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2)) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 5/2)) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (*.f64 (sqrt.f64 (sin.f64 x)) (pow.f64 (sin.f64 x) 1/4)) (pow.f64 (sin.f64 x) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (sin.f64 x) 3/2)) (pow.f64 (sin.f64 x) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 5)) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (*.f64 (cbrt.f64 (sin.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)))) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2)) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (pow.f64 (sin.f64 x) 1/6)) (pow.f64 (sin.f64 x) 1/6))
(/.f64 (sqrt.f64 (-.f64 (cos.f64 0) (cos.f64 (*.f64 x 2)))) (sqrt.f64 2))
(/.f64 (-.f64 (pow.f64 (+.f64 (sin.f64 x) 1) 3) 1) (+.f64 (*.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1)) (+.f64 1 (+.f64 (sin.f64 x) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1)) 1) (+.f64 (+.f64 (sin.f64 x) 1) 1))
(pow.f64 (sin.f64 x) 1)
(pow.f64 (cbrt.f64 (sin.f64 x)) 3)
(pow.f64 (pow.f64 (sin.f64 x) 2) 1/2)
(pow.f64 (pow.f64 (sin.f64 x) 3) 1/3)
(pow.f64 (sqrt.f64 (sin.f64 x)) 2)
(pow.f64 (E.f64) (log.f64 (sin.f64 x)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (log.f64 (sin.f64 x)) 2))) (cbrt.f64 (log.f64 (sin.f64 x))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sin.f64 x)))) (sqrt.f64 (log.f64 (sin.f64 x))))
(sqrt.f64 (pow.f64 (sin.f64 x) 2))
(fabs.f64 (sin.f64 x))
(log.f64 (exp.f64 (sin.f64 x)))
(cbrt.f64 (pow.f64 (sin.f64 x) 3))
(expm1.f64 (log1p.f64 (sin.f64 x)))
(exp.f64 (log.f64 (sin.f64 x)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (sin.f64 x))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (sin.f64 x))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (sin.f64 x))) 2))
(log1p.f64 (expm1.f64 (sin.f64 x)))
Outputs
x
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(fma.f64 -1/6 (pow.f64 x 3) x)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))))
(+.f64 x (fma.f64 -1/6 (pow.f64 x 3) (*.f64 1/120 (pow.f64 x 5))))
(fma.f64 -1/6 (pow.f64 x 3) (fma.f64 1/120 (pow.f64 x 5) x))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 1/120 (pow.f64 x 5)))))
(+.f64 x (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 -1/5040 (pow.f64 x 7) (*.f64 1/120 (pow.f64 x 5)))))
(+.f64 x (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 1/120 (pow.f64 x 5) (*.f64 -1/5040 (pow.f64 x 7)))))
(+.f64 x (fma.f64 1/120 (pow.f64 x 5) (fma.f64 -1/6 (pow.f64 x 3) (*.f64 -1/5040 (pow.f64 x 7)))))
(+.f64 (+.f64 (sin.f64 x) 1) -1)
(sin.f64 x)
(+.f64 0 (sin.f64 x))
(sin.f64 x)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sin.f64 x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 x)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (sin.f64 x))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 x)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (sin.f64 x)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 x)))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 x)))))
(sin.f64 x)
(-.f64 (+.f64 (sin.f64 x) 1) 1)
(sin.f64 x)
(-.f64 (*.f64 (sin.f64 (+.f64 x 1)) (cos.f64 1)) (*.f64 (cos.f64 (+.f64 x 1)) (sin.f64 1)))
(*.f64 (sin.f64 x) 1)
(sin.f64 x)
(*.f64 (sin.f64 x) (log.f64 (E.f64)))
(sin.f64 x)
(*.f64 1 (sin.f64 x))
(sin.f64 x)
(*.f64 (cbrt.f64 (sin.f64 x)) (pow.f64 (cbrt.f64 (sin.f64 x)) 2))
(sin.f64 x)
(*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (cbrt.f64 (sin.f64 x)))
(sin.f64 x)
(*.f64 (sqrt.f64 (sin.f64 x)) (sqrt.f64 (sin.f64 x)))
(sin.f64 x)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)))
(sin.f64 x)
(*.f64 (pow.f64 (sin.f64 x) 1/6) (*.f64 (pow.f64 (sin.f64 x) 1/6) (pow.f64 (cbrt.f64 (sin.f64 x)) 2)))
(sin.f64 x)
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4))) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2) (cbrt.f64 (sin.f64 x))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4))) (*.f64 (cbrt.f64 (sin.f64 x)) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 5))
(*.f64 (pow.f64 (sin.f64 x) 1/4) (sqrt.f64 (pow.f64 (sin.f64 x) 3/2)))
(sin.f64 x)
(*.f64 (pow.f64 (sin.f64 x) 1/4) (*.f64 (pow.f64 (sin.f64 x) 1/4) (sqrt.f64 (sin.f64 x))))
(sin.f64 x)
(*.f64 (*.f64 (sqrt.f64 (sin.f64 x)) (cbrt.f64 (sin.f64 x))) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (cbrt.f64 (sin.f64 x)) (pow.f64 (sin.f64 x) 1/6)))
(*.f64 (cbrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (pow.f64 (sin.f64 x) 1/6)))
(*.f64 (pow.f64 (sin.f64 x) 1/6) (*.f64 (cbrt.f64 (sin.f64 x)) (sqrt.f64 (sin.f64 x))))
(*.f64 (sqrt.f64 (sin.f64 x)) (pow.f64 (pow.f64 (sin.f64 x) 1/6) 3))
(*.f64 (pow.f64 1 1/3) (sin.f64 x))
(sin.f64 x)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2) 1/3) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2)))
(*.f64 (pow.f64 (pow.f64 (sin.f64 x) 5/2) 1/3) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (pow.f64 (sin.f64 x) 1/6) (cbrt.f64 (pow.f64 (sin.f64 x) 5/2)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2)) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(*.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)) 2)))
(*.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 5/2)) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (pow.f64 (sin.f64 x) 1/6) (cbrt.f64 (pow.f64 (sin.f64 x) 5/2)))
(*.f64 (*.f64 (sqrt.f64 (sin.f64 x)) (pow.f64 (sin.f64 x) 1/4)) (pow.f64 (sin.f64 x) 1/4))
(sin.f64 x)
(*.f64 (sqrt.f64 (pow.f64 (sin.f64 x) 3/2)) (pow.f64 (sin.f64 x) 1/4))
(sin.f64 x)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 5)) (pow.f64 (sin.f64 x) 1/6))
(*.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (cbrt.f64 (sin.f64 x)) (pow.f64 (sin.f64 x) 1/6)))
(*.f64 (cbrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (pow.f64 (sin.f64 x) 1/6)))
(*.f64 (pow.f64 (sin.f64 x) 1/6) (*.f64 (cbrt.f64 (sin.f64 x)) (sqrt.f64 (sin.f64 x))))
(*.f64 (sqrt.f64 (sin.f64 x)) (pow.f64 (pow.f64 (sin.f64 x) 1/6) 3))
(*.f64 (*.f64 (cbrt.f64 (sin.f64 x)) (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4)))) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4))) (*.f64 (cbrt.f64 (sin.f64 x)) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 x) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 5))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (sin.f64 x))) 2)) (cbrt.f64 (cbrt.f64 (sin.f64 x))))
(sin.f64 x)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (pow.f64 (sin.f64 x) 1/6)) (pow.f64 (sin.f64 x) 1/6))
(sin.f64 x)
(/.f64 (sqrt.f64 (-.f64 (cos.f64 0) (cos.f64 (*.f64 x 2)))) (sqrt.f64 2))
(/.f64 (sqrt.f64 (-.f64 1 (cos.f64 (*.f64 x 2)))) (sqrt.f64 2))
(/.f64 (-.f64 (pow.f64 (+.f64 (sin.f64 x) 1) 3) 1) (+.f64 (*.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1)) (+.f64 1 (+.f64 (sin.f64 x) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 (sin.f64 x) 1) 3) -1) (fma.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (sin.f64 x) 1) 3)) (fma.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (sin.f64 x) 1) 3)) (+.f64 1 (*.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 2))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (sin.f64 x) 1) 3)) (fma.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 2) 1))
(/.f64 (-.f64 (*.f64 (+.f64 (sin.f64 x) 1) (+.f64 (sin.f64 x) 1)) 1) (+.f64 (+.f64 (sin.f64 x) 1) 1))
(sin.f64 x)
(pow.f64 (sin.f64 x) 1)
(sin.f64 x)
(pow.f64 (cbrt.f64 (sin.f64 x)) 3)
(sin.f64 x)
(pow.f64 (pow.f64 (sin.f64 x) 2) 1/2)
(sin.f64 x)
(pow.f64 (pow.f64 (sin.f64 x) 3) 1/3)
(sin.f64 x)
(pow.f64 (sqrt.f64 (sin.f64 x)) 2)
(sin.f64 x)
(pow.f64 (E.f64) (log.f64 (sin.f64 x)))
(sin.f64 x)
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (log.f64 (sin.f64 x)) 2))) (cbrt.f64 (log.f64 (sin.f64 x))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sin.f64 x)))) (sqrt.f64 (log.f64 (sin.f64 x))))
(sin.f64 x)
(sqrt.f64 (pow.f64 (sin.f64 x) 2))
(sin.f64 x)
(fabs.f64 (sin.f64 x))
(sin.f64 x)
(log.f64 (exp.f64 (sin.f64 x)))
(sin.f64 x)
(cbrt.f64 (pow.f64 (sin.f64 x) 3))
(sin.f64 x)
(expm1.f64 (log1p.f64 (sin.f64 x)))
(sin.f64 x)
(exp.f64 (log.f64 (sin.f64 x)))
(sin.f64 x)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (sin.f64 x))) 3))
(sin.f64 x)
(exp.f64 (*.f64 (*.f64 3 (log.f64 (sin.f64 x))) 1/3))
(sin.f64 x)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (sin.f64 x))) 2))
(sin.f64 x)
(log1p.f64 (expm1.f64 (sin.f64 x)))
(sin.f64 x)

eval18.0ms (0.7%)

Compiler

Compiled 1188 to 535 computations (55% saved)

prune15.0ms (0.6%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New75176
Fresh000
Picked011
Done000
Total75277
Accuracy
100.0%
Counts
77 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
63.8%
(*.f64 x (/.f64 (sinh.f64 y) y))
100.0%
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
63.8%
(*.f64 x (/.f64 (sinh.f64 y) y))
Compiler

Compiled 34 to 22 computations (35.3% saved)

localize27.0ms (1.1%)

Compiler

Compiled 17 to 6 computations (64.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done011
Total022
Accuracy
100.0%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
63.8%
(*.f64 x (/.f64 (sinh.f64 y) y))
Compiler

Compiled 32 to 18 computations (43.8% saved)

regimes16.0ms (0.6%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sinh.f64 y) y))
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
Outputs
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
Calls

5 calls:

4.0ms
y
3.0ms
(sin.f64 x)
3.0ms
x
3.0ms
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
2.0ms
(/.f64 (sinh.f64 y) y)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
100.0%1(sin.f64 x)
100.0%1(/.f64 (sinh.f64 y) y)
Compiler

Compiled 40 to 24 computations (40% saved)

regimes7.0ms (0.3%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (/.f64 (sinh.f64 y) y))
Outputs
(*.f64 x (/.f64 (sinh.f64 y) y))
Calls

3 calls:

3.0ms
y
3.0ms
x
2.0ms
(/.f64 (sinh.f64 y) y)
Results
AccuracySegmentsBranch
63.8%1x
63.8%1y
63.8%1(/.f64 (sinh.f64 y) y)
Compiler

Compiled 20 to 13 computations (35% saved)

simplify13.0ms (0.5%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01356
11556
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 x (/.f64 (sinh.f64 y) y))
Outputs
(*.f64 (sin.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 x (/.f64 (sinh.f64 y) y))
Compiler

Compiled 17 to 11 computations (35.3% saved)

soundness0.0ms (0%)

end0.0ms (0%)

preprocess30.0ms (1.2%)

Remove

(negabs x)

(abs y)

Compiler

Compiled 156 to 98 computations (37.2% saved)

Profiling

Loading profile data...