Linear.Quaternion:$csin from linear-1.19.1.3

Details

Time bar (total: 1.9s)

analyze15.0ms (0.8%)

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.4s (73.4%)

Results
313.0ms2531×body256infinite
304.0ms1036×body1024valid
295.0ms2615×body256valid
261.0ms1032×body1024infinite
106.0ms534×body512valid
95.0ms507×body512infinite
0.0msbody2048valid
Bogosity

preprocess66.0ms (3.5%)

Algorithm
egg-herbie
Rules
1380×fma-neg
1340×fma-def
1114×div-sub
1034×associate-*r/
902×associate-*l/
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01342
13042
26542
314642
432942
583942
6256342
7676342
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 (cos.f64 y) (/.f64 (sinh.f64 x) x))
Outputs
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
(/.f64 (sinh.f64 y) (/.f64 y (cos.f64 x)))
(*.f64 (cos.f64 y) (/.f64 (sinh.f64 x) x))
(/.f64 (sinh.f64 x) (/.f64 x (cos.f64 y)))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify53.0ms (2.8%)

Algorithm
egg-herbie
Rules
1558×fma-neg
982×times-frac
714×associate-*r*
710×associate-/l*
706×div-sub
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
11821
23721
37921
417221
543321
6131221
7514021
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
Outputs
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))

eval3.0ms (0.1%)

Compiler

Compiled 9 to 6 computations (33.3% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Accurracy
100.0%
Counts
2 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
100.0%
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
Compiler

Compiled 18 to 12 computations (33.3% saved)

localize72.0ms (3.8%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(sinh.f64 y)
Compiler

Compiled 20 to 7 computations (65% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(sinh.f64 y)
1.0ms
y
@-inf
(sinh.f64 y)
0.0ms
y
@0
(sinh.f64 y)

rewrite50.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
830×pow1
804×add-sqr-sqrt
788×*-un-lft-identity
768×add-exp-log
766×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045
1835
210235
Stop Event
node limit
Counts
1 → 30
Calls
Call 1
Inputs
(sinh.f64 y)
Outputs
(+.f64 0 (sinh.f64 y))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sinh.f64 y))) (cbrt.f64 (exp.f64 (sinh.f64 y))))) (log.f64 (cbrt.f64 (exp.f64 (sinh.f64 y)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sinh.f64 y)))) (log.f64 (sqrt.f64 (exp.f64 (sinh.f64 y)))))
(-.f64 (+.f64 1 (sinh.f64 y)) 1)
(-.f64 (/.f64 (exp.f64 y) 2) (/.f64 (exp.f64 (neg.f64 y)) 2))
(-.f64 (*.f64 (sinh.f64 (+.f64 1 y)) (cosh.f64 1)) (*.f64 (cosh.f64 (+.f64 1 y)) (sinh.f64 1)))
(*.f64 (sinh.f64 y) 1)
(*.f64 1 (sinh.f64 y))
(*.f64 (cbrt.f64 (sinh.f64 y)) (pow.f64 (cbrt.f64 (sinh.f64 y)) 2))
(*.f64 (pow.f64 (cbrt.f64 (sinh.f64 y)) 2) (cbrt.f64 (sinh.f64 y)))
(*.f64 (sqrt.f64 (sinh.f64 y)) (sqrt.f64 (sinh.f64 y)))
(*.f64 (*.f64 2 (sinh.f64 y)) 1/2)
(/.f64 1 (/.f64 2 (*.f64 2 (sinh.f64 y))))
(/.f64 (*.f64 2 (sinh.f64 y)) 2)
(/.f64 (neg.f64 (*.f64 2 (sinh.f64 y))) -2)
(pow.f64 (sinh.f64 y) 1)
(pow.f64 (cbrt.f64 (sinh.f64 y)) 3)
(pow.f64 (pow.f64 (sinh.f64 y) 2) 1/2)
(pow.f64 (pow.f64 (sinh.f64 y) 3) 1/3)
(pow.f64 (sqrt.f64 (sinh.f64 y)) 2)
(pow.f64 (/.f64 2 (*.f64 2 (sinh.f64 y))) -1)
(sqrt.f64 (pow.f64 (sinh.f64 y) 2))
(log.f64 (exp.f64 (sinh.f64 y)))
(cbrt.f64 (pow.f64 (sinh.f64 y) 3))
(expm1.f64 (log1p.f64 (sinh.f64 y)))
(exp.f64 (log.f64 (sinh.f64 y)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (sinh.f64 y))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (sinh.f64 y) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (sinh.f64 y))) 2))
(log1p.f64 (expm1.f64 (sinh.f64 y)))

simplify65.0ms (3.4%)

Algorithm
egg-herbie
Rules
1012×log-prod
830×associate-*r*
796×associate-*l*
646×fma-def
574×fma-neg
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
097544
1221520
2791482
35083482
Stop Event
node limit
Counts
42 → 48
Calls
Call 1
Inputs
y
(+.f64 y (*.f64 1/6 (pow.f64 y 3)))
(+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 1/6 (pow.f64 y 3))))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 1/6 (pow.f64 y 3)))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(+.f64 0 (sinh.f64 y))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sinh.f64 y))) (cbrt.f64 (exp.f64 (sinh.f64 y))))) (log.f64 (cbrt.f64 (exp.f64 (sinh.f64 y)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sinh.f64 y)))) (log.f64 (sqrt.f64 (exp.f64 (sinh.f64 y)))))
(-.f64 (+.f64 1 (sinh.f64 y)) 1)
(-.f64 (/.f64 (exp.f64 y) 2) (/.f64 (exp.f64 (neg.f64 y)) 2))
(-.f64 (*.f64 (sinh.f64 (+.f64 1 y)) (cosh.f64 1)) (*.f64 (cosh.f64 (+.f64 1 y)) (sinh.f64 1)))
(*.f64 (sinh.f64 y) 1)
(*.f64 1 (sinh.f64 y))
(*.f64 (cbrt.f64 (sinh.f64 y)) (pow.f64 (cbrt.f64 (sinh.f64 y)) 2))
(*.f64 (pow.f64 (cbrt.f64 (sinh.f64 y)) 2) (cbrt.f64 (sinh.f64 y)))
(*.f64 (sqrt.f64 (sinh.f64 y)) (sqrt.f64 (sinh.f64 y)))
(*.f64 (*.f64 2 (sinh.f64 y)) 1/2)
(/.f64 1 (/.f64 2 (*.f64 2 (sinh.f64 y))))
(/.f64 (*.f64 2 (sinh.f64 y)) 2)
(/.f64 (neg.f64 (*.f64 2 (sinh.f64 y))) -2)
(pow.f64 (sinh.f64 y) 1)
(pow.f64 (cbrt.f64 (sinh.f64 y)) 3)
(pow.f64 (pow.f64 (sinh.f64 y) 2) 1/2)
(pow.f64 (pow.f64 (sinh.f64 y) 3) 1/3)
(pow.f64 (sqrt.f64 (sinh.f64 y)) 2)
(pow.f64 (/.f64 2 (*.f64 2 (sinh.f64 y))) -1)
(sqrt.f64 (pow.f64 (sinh.f64 y) 2))
(log.f64 (exp.f64 (sinh.f64 y)))
(cbrt.f64 (pow.f64 (sinh.f64 y) 3))
(expm1.f64 (log1p.f64 (sinh.f64 y)))
(exp.f64 (log.f64 (sinh.f64 y)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (sinh.f64 y))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (sinh.f64 y) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (sinh.f64 y))) 2))
(log1p.f64 (expm1.f64 (sinh.f64 y)))
Outputs
y
(+.f64 y (*.f64 1/6 (pow.f64 y 3)))
(fma.f64 1/6 (pow.f64 y 3) y)
(+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 1/6 (pow.f64 y 3))))
(fma.f64 1/120 (pow.f64 y 5) (+.f64 y (*.f64 1/6 (pow.f64 y 3))))
(fma.f64 1/120 (pow.f64 y 5) (fma.f64 1/6 (pow.f64 y 3) y))
(fma.f64 1/6 (pow.f64 y 3) (fma.f64 1/120 (pow.f64 y 5) y))
(+.f64 (*.f64 1/5040 (pow.f64 y 7)) (+.f64 (*.f64 1/120 (pow.f64 y 5)) (+.f64 y (*.f64 1/6 (pow.f64 y 3)))))
(fma.f64 1/5040 (pow.f64 y 7) (fma.f64 1/120 (pow.f64 y 5) (+.f64 y (*.f64 1/6 (pow.f64 y 3)))))
(fma.f64 1/5040 (pow.f64 y 7) (fma.f64 1/120 (pow.f64 y 5) (fma.f64 1/6 (pow.f64 y 3) y)))
(fma.f64 1/5040 (pow.f64 y 7) (fma.f64 1/6 (pow.f64 y 3) (fma.f64 1/120 (pow.f64 y 5) y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(*.f64 1/2 (-.f64 (exp.f64 y) (/.f64 1 (exp.f64 y))))
(*.f64 1/2 (-.f64 (exp.f64 y) (exp.f64 (neg.f64 y))))
(fma.f64 1/2 (exp.f64 y) (/.f64 -1/2 (exp.f64 y)))
(+.f64 0 (sinh.f64 y))
(sinh.f64 y)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sinh.f64 y))) (cbrt.f64 (exp.f64 (sinh.f64 y))))) (log.f64 (cbrt.f64 (exp.f64 (sinh.f64 y)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (sinh.f64 y))))) (log.f64 (cbrt.f64 (exp.f64 (sinh.f64 y)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (sinh.f64 y)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (sinh.f64 y)))) (log.f64 (sqrt.f64 (exp.f64 (sinh.f64 y)))))
(sinh.f64 y)
(-.f64 (+.f64 1 (sinh.f64 y)) 1)
(sinh.f64 y)
(-.f64 (/.f64 (exp.f64 y) 2) (/.f64 (exp.f64 (neg.f64 y)) 2))
(sinh.f64 y)
(-.f64 (*.f64 (sinh.f64 (+.f64 1 y)) (cosh.f64 1)) (*.f64 (cosh.f64 (+.f64 1 y)) (sinh.f64 1)))
(-.f64 (*.f64 (sinh.f64 (+.f64 y 1)) (cosh.f64 1)) (*.f64 (cosh.f64 (+.f64 y 1)) (sinh.f64 1)))
(*.f64 (sinh.f64 y) 1)
(sinh.f64 y)
(*.f64 1 (sinh.f64 y))
(sinh.f64 y)
(*.f64 (cbrt.f64 (sinh.f64 y)) (pow.f64 (cbrt.f64 (sinh.f64 y)) 2))
(sinh.f64 y)
(*.f64 (pow.f64 (cbrt.f64 (sinh.f64 y)) 2) (cbrt.f64 (sinh.f64 y)))
(sinh.f64 y)
(*.f64 (sqrt.f64 (sinh.f64 y)) (sqrt.f64 (sinh.f64 y)))
(sinh.f64 y)
(*.f64 (*.f64 2 (sinh.f64 y)) 1/2)
(sinh.f64 y)
(/.f64 1 (/.f64 2 (*.f64 2 (sinh.f64 y))))
(sinh.f64 y)
(/.f64 (*.f64 2 (sinh.f64 y)) 2)
(sinh.f64 y)
(/.f64 (neg.f64 (*.f64 2 (sinh.f64 y))) -2)
(sinh.f64 y)
(pow.f64 (sinh.f64 y) 1)
(sinh.f64 y)
(pow.f64 (cbrt.f64 (sinh.f64 y)) 3)
(sinh.f64 y)
(pow.f64 (pow.f64 (sinh.f64 y) 2) 1/2)
(sinh.f64 y)
(pow.f64 (pow.f64 (sinh.f64 y) 3) 1/3)
(sinh.f64 y)
(pow.f64 (sqrt.f64 (sinh.f64 y)) 2)
(sinh.f64 y)
(pow.f64 (/.f64 2 (*.f64 2 (sinh.f64 y))) -1)
(sinh.f64 y)
(sqrt.f64 (pow.f64 (sinh.f64 y) 2))
(sinh.f64 y)
(log.f64 (exp.f64 (sinh.f64 y)))
(sinh.f64 y)
(cbrt.f64 (pow.f64 (sinh.f64 y) 3))
(sinh.f64 y)
(expm1.f64 (log1p.f64 (sinh.f64 y)))
(sinh.f64 y)
(exp.f64 (log.f64 (sinh.f64 y)))
(sinh.f64 y)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (sinh.f64 y))) 3))
(sinh.f64 y)
(exp.f64 (*.f64 (log.f64 (pow.f64 (sinh.f64 y) 3)) 1/3))
(sinh.f64 y)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (sinh.f64 y))) 2))
(sinh.f64 y)
(log1p.f64 (expm1.f64 (sinh.f64 y)))
(sinh.f64 y)

eval10.0ms (0.5%)

Compiler

Compiled 637 to 341 computations (46.5% saved)

prune42.0ms (2.2%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New47148
Fresh000
Picked011
Done000
Total47249
Accurracy
100.0%
Counts
49 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
54.4%
(*.f64 (cos.f64 x) (/.f64 y y))
100.0%
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
54.4%
(*.f64 (cos.f64 x) (/.f64 y y))
Compiler

Compiled 34 to 22 computations (35.3% saved)

localize41.0ms (2.2%)

Compiler

Compiled 16 to 6 computations (62.5% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune5.0ms (0.3%)

Pruning

2 alts after pruning (0 fresh and 2 done)

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

Compiled 32 to 19 computations (40.6% saved)

regimes13.0ms (0.7%)

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

5 calls:

3.0ms
y
3.0ms
x
2.0ms
(cos.f64 x)
2.0ms
(*.f64 (cos.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 (cos.f64 x) (/.f64 (sinh.f64 y) y))
100.0%1(cos.f64 x)
100.0%1(/.f64 (sinh.f64 y) y)
Compiler

Compiled 40 to 25 computations (37.5% saved)

regimes9.0ms (0.5%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

3 calls:

3.0ms
y
2.0ms
x
2.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
54.4%1x
54.4%1y
54.4%1(cos.f64 x)
Compiler

Compiled 18 to 12 computations (33.3% saved)

simplify5.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01138
11338
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 (cos.f64 x) (/.f64 y y))
Outputs
(*.f64 (cos.f64 x) (/.f64 (sinh.f64 y) y))
(*.f64 (cos.f64 x) (/.f64 y y))
Compiler

Compiled 17 to 11 computations (35.3% saved)

soundness0.0ms (0%)

end50.0ms (2.7%)

Compiler

Compiled 48 to 28 computations (41.7% saved)

Profiling

Loading profile data...