HairBSDF, Mp, upper

Time bar (total: 4.1s)

start0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated

analyze562.0ms (13.8%)

Memory
60.5MiB live, 868.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
0%0%0%100%0%0%0%1
0%0%0%100%0%0%0%2
0%0%0%100%0%0%0%3
0%0%0%100%0%0%0%4
0%0%0%100%0%0%0%5
0%0%0%100%0%0%0%6
0%0%0%100%0%0%0%7
0%0%0%100%0%0%0%8
0%0%0%100%0%0%0%9
0%0%0%100%0%0%0%10
50%0%0%100%0%0%0%11
50%0%0%100%0%0%0%12
Compiler

Compiled 62 to 42 computations (32.3% saved)

sample2.8s (67.7%)

Memory
35.3MiB live, 3 256.7MiB allocated
Samples
2.2s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.6s
const: 508.0ms (32% of total)
ival-mult: 299.0ms (18.9% of total)
ival-div: 255.0ms (16.1% of total)
ival-<=: 238.0ms (15% of total)
ival-exp: 86.0ms (5.4% of total)
ival-sinh: 68.0ms (4.3% of total)
ival-and: 53.0ms (3.3% of total)
ival-neg: 38.0ms (2.4% of total)
ival-<: 20.0ms (1.3% of total)
exact: 17.0ms (1.1% of total)
ival-assert: 4.0ms (0.3% of total)
Bogosity

explain206.0ms (5.1%)

Memory
-14.4MiB live, 295.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(/.f32 #s(literal 1 binary32) v)
00-0-#s(literal 2 binary32)
00-0-(*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))
00-0-sinTheta_i
00-0-cosTheta_i
00-0-v
00-0-(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
00-0-sinTheta_O
00-0-(*.f32 sinTheta_i sinTheta_O)
00-0-(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
00-0-#s(literal 1 binary32)
00-0-(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
00-0-(*.f32 cosTheta_i cosTheta_O)
00-0-(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
00-0-(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
00-0-cosTheta_O
00-0-(sinh.f32 (/.f32 #s(literal 1 binary32) v))
00-0-(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
04(6.103964633952718e-15 -4.888106354292702e-32 1.8661138073646618e-21 0.07007589936256409 0.3739693760871887)0-(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f32(/.f32 (*.f32 cosTheta_i cosTheta_O) v)u/n40
(*.f32 cosTheta_i cosTheta_O)underflow80
Confusion
Predicted +Predicted -
+00
-4252
Precision
0.0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-40252
Precision?
0.0
Recall?
0/0
Freqs
test
numberfreq
0252
14
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-100
Precision?
0.0
Recall?
0/0
Samples
74.0ms512×0valid
Compiler

Compiled 302 to 80 computations (73.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 53.0ms
ival-mult: 21.0ms (39.8% of total)
ival-div: 14.0ms (26.6% of total)
ival-neg: 8.0ms (15.2% of total)
ival-exp: 4.0ms (7.6% of total)
ival-sinh: 4.0ms (7.6% of total)
ival-true: 1.0ms (1.9% of total)
exact: 1.0ms (1.9% of total)
ival-assert: 0.0ms (0% of total)

preprocess5.0ms (0.1%)

Memory
9.1MiB live, 9.1MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Outputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Compiler

Compiled 22 to 19 computations (13.6% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 5 computations (-∞% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.7%
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Compiler

Compiled 22 to 19 computations (13.6% saved)

simplify1.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
cost-diff0
(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
cost-diff0
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
cost-diff0
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Calls
Call 1
Inputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 cosTheta_i cosTheta_O)
cosTheta_i
cosTheta_O
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 #s(literal 1 binary32) v)
#s(literal 1 binary32)
#s(literal 2 binary32)
Outputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 cosTheta_i cosTheta_O)
cosTheta_i
cosTheta_O
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 #s(literal 1 binary32) v)
#s(literal 1 binary32)
#s(literal 2 binary32)

localize63.0ms (1.6%)

Memory
-18.8MiB live, 67.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.23570253907376804
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
accuracy0.26953125
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
accuracy0.2772801023150756
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
accuracy0.7644642031730291
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
Samples
31.0ms256×0valid
Compiler

Compiled 186 to 40 computations (78.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-mult: 8.0ms (40% of total)
ival-div: 7.0ms (35% of total)
ival-exp: 2.0ms (10% of total)
ival-sinh: 2.0ms (10% of total)
ival-neg: 1.0ms (5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series70.0ms (1.7%)

Memory
19.5MiB live, 92.0MiB allocated
Counts
8 → 52
Calls
Call 1
Inputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(/ (* cosTheta_O cosTheta_i) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
1
(+ 1 (* -1 (/ (* sinTheta_O sinTheta_i) v)))
(+ 1 (* sinTheta_i (+ (* -1 (/ sinTheta_O v)) (* 1/2 (/ (* (pow sinTheta_O 2) sinTheta_i) (pow v 2))))))
(+ 1 (* sinTheta_i (+ (* -1 (/ sinTheta_O v)) (* sinTheta_i (+ (* -1/6 (/ (* (pow sinTheta_O 3) sinTheta_i) (pow v 3))) (* 1/2 (/ (pow sinTheta_O 2) (pow v 2))))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(/ (* sinTheta_O sinTheta_i) v)
(exp (neg (/ (* sinTheta_O sinTheta_i) v)))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(+ 1 (* sinTheta_O (+ (* -1 (/ sinTheta_i v)) (* 1/2 (/ (* sinTheta_O (pow sinTheta_i 2)) (pow v 2))))))
(+ 1 (* sinTheta_O (+ (* -1 (/ sinTheta_i v)) (* sinTheta_O (+ (* -1/6 (/ (* sinTheta_O (pow sinTheta_i 3)) (pow v 3))) (* 1/2 (/ (pow sinTheta_i 2) (pow v 2))))))))
(* 1/2 (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* v (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
(+ 1 (+ (* -1 (/ (* sinTheta_O sinTheta_i) v)) (* 1/2 (/ (* (pow sinTheta_O 2) (pow sinTheta_i 2)) (pow v 2)))))
(+ 1 (+ (* -1 (/ (* sinTheta_O sinTheta_i) v)) (+ (* -1/6 (/ (* (pow sinTheta_O 3) (pow sinTheta_i 3)) (pow v 3))) (* 1/2 (/ (* (pow sinTheta_O 2) (pow sinTheta_i 2)) (pow v 2))))))
(/ 1 v)
(/ (+ 1 (* 1/6 (/ 1 (pow v 2)))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (* 1/6 (/ 1 (pow v 2))))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (+ (* 1/6 (/ 1 (pow v 2))) (* 1/5040 (/ 1 (pow v 6)))))) v)
2
(+ 2 (* 1/3 (/ 1 (pow v 2))))
(+ 2 (+ (/ 1/60 (pow v 4)) (* 1/3 (/ 1 (pow v 2)))))
(+ 2 (+ (/ 1/60 (pow v 4)) (+ (* 1/3 (/ 1 (pow v 2))) (* 1/2520 (/ 1 (pow v 6))))))
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
(+ 1 (* -1 (/ (+ (* -1/2 (/ (* (pow sinTheta_O 2) (pow sinTheta_i 2)) v)) (* sinTheta_O sinTheta_i)) v)))
(+ 1 (* -1 (/ (+ (* -1 (/ (+ (* -1/6 (/ (* (pow sinTheta_O 3) (pow sinTheta_i 3)) v)) (* 1/2 (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v)) (* sinTheta_O sinTheta_i)) v)))
(* -1 (/ (- (* -1 (/ (+ 1/6 (* 1/120 (/ 1 (pow v 2)))) (pow v 2))) 1) v))
(* -1 (/ (- (* -1 (/ (+ 1/120 (* 1/5040 (/ 1 (pow v 2)))) (pow v 4))) (+ 1 (* 1/6 (/ 1 (pow v 2))))) v))
Calls

15 calls:

TimeVariablePointExpression
11.0ms
v
@0
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (neg (/ (* sinTheta_i sinTheta_O) v)) (sinh (/ 1 v)) (/ (* cosTheta_i cosTheta_O) v) (* (* (sinh (/ 1 v)) 2) v) (/ (* sinTheta_i sinTheta_O) v))
10.0ms
cosTheta_O
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (neg (/ (* sinTheta_i sinTheta_O) v)) (sinh (/ 1 v)) (/ (* cosTheta_i cosTheta_O) v) (* (* (sinh (/ 1 v)) 2) v) (/ (* sinTheta_i sinTheta_O) v))
6.0ms
cosTheta_i
@0
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (neg (/ (* sinTheta_i sinTheta_O) v)) (sinh (/ 1 v)) (/ (* cosTheta_i cosTheta_O) v) (* (* (sinh (/ 1 v)) 2) v) (/ (* sinTheta_i sinTheta_O) v))
6.0ms
sinTheta_O
@0
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (neg (/ (* sinTheta_i sinTheta_O) v)) (sinh (/ 1 v)) (/ (* cosTheta_i cosTheta_O) v) (* (* (sinh (/ 1 v)) 2) v) (/ (* sinTheta_i sinTheta_O) v))
5.0ms
cosTheta_O
@0
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (neg (/ (* sinTheta_i sinTheta_O) v)) (sinh (/ 1 v)) (/ (* cosTheta_i cosTheta_O) v) (* (* (sinh (/ 1 v)) 2) v) (/ (* sinTheta_i sinTheta_O) v))

simplify1.0ms (0%)

Memory
2.7MiB live, 2.7MiB allocated
Algorithm
egg-herbie
Counts
52 → 8
Calls
Call 1
Inputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(/ (* cosTheta_O cosTheta_i) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
1
(+ 1 (* -1 (/ (* sinTheta_O sinTheta_i) v)))
(+ 1 (* sinTheta_i (+ (* -1 (/ sinTheta_O v)) (* 1/2 (/ (* (pow sinTheta_O 2) sinTheta_i) (pow v 2))))))
(+ 1 (* sinTheta_i (+ (* -1 (/ sinTheta_O v)) (* sinTheta_i (+ (* -1/6 (/ (* (pow sinTheta_O 3) sinTheta_i) (pow v 3))) (* 1/2 (/ (pow sinTheta_O 2) (pow v 2))))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(/ (* sinTheta_O sinTheta_i) v)
(exp (neg (/ (* sinTheta_O sinTheta_i) v)))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(+ 1 (* sinTheta_O (+ (* -1 (/ sinTheta_i v)) (* 1/2 (/ (* sinTheta_O (pow sinTheta_i 2)) (pow v 2))))))
(+ 1 (* sinTheta_O (+ (* -1 (/ sinTheta_i v)) (* sinTheta_O (+ (* -1/6 (/ (* sinTheta_O (pow sinTheta_i 3)) (pow v 3))) (* 1/2 (/ (pow sinTheta_i 2) (pow v 2))))))))
(* 1/2 (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* v (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
(+ 1 (+ (* -1 (/ (* sinTheta_O sinTheta_i) v)) (* 1/2 (/ (* (pow sinTheta_O 2) (pow sinTheta_i 2)) (pow v 2)))))
(+ 1 (+ (* -1 (/ (* sinTheta_O sinTheta_i) v)) (+ (* -1/6 (/ (* (pow sinTheta_O 3) (pow sinTheta_i 3)) (pow v 3))) (* 1/2 (/ (* (pow sinTheta_O 2) (pow sinTheta_i 2)) (pow v 2))))))
(/ 1 v)
(/ (+ 1 (* 1/6 (/ 1 (pow v 2)))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (* 1/6 (/ 1 (pow v 2))))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (+ (* 1/6 (/ 1 (pow v 2))) (* 1/5040 (/ 1 (pow v 6)))))) v)
2
(+ 2 (* 1/3 (/ 1 (pow v 2))))
(+ 2 (+ (/ 1/60 (pow v 4)) (* 1/3 (/ 1 (pow v 2)))))
(+ 2 (+ (/ 1/60 (pow v 4)) (+ (* 1/3 (/ 1 (pow v 2))) (* 1/2520 (/ 1 (pow v 6))))))
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
(+ 1 (* -1 (/ (+ (* -1/2 (/ (* (pow sinTheta_O 2) (pow sinTheta_i 2)) v)) (* sinTheta_O sinTheta_i)) v)))
(+ 1 (* -1 (/ (+ (* -1 (/ (+ (* -1/6 (/ (* (pow sinTheta_O 3) (pow sinTheta_i 3)) v)) (* 1/2 (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v)) (* sinTheta_O sinTheta_i)) v)))
(* -1 (/ (- (* -1 (/ (+ 1/6 (* 1/120 (/ 1 (pow v 2)))) (pow v 2))) 1) v))
(* -1 (/ (- (* -1 (/ (+ 1/120 (* 1/5040 (/ 1 (pow v 2)))) (pow v 4))) (+ 1 (* 1/6 (/ 1 (pow v 2))))) v))
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(/ (* cosTheta_O cosTheta_i) v)
(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)

rewrite0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Counts
8 → 8
Calls
Call 1
Inputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
Outputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)

eval1.0ms (0%)

Memory
2.5MiB live, 2.5MiB allocated
Compiler

Compiled 430 to 45 computations (89.5% saved)

prune2.0ms (0%)

Memory
4.1MiB live, 4.1MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New13316
Fresh000
Picked011
Done000
Total13417
Accuracy
98.7%
Counts
17 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.7%
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
28.9%
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
55.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
27.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
Compiler

Compiled 107 to 86 computations (19.6% saved)

simplify1.0ms (0%)

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

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 sinTheta_i sinTheta_O)
cost-diff0
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
cost-diff0
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
cost-diff0
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
cost-diff0
(*.f32 cosTheta_i cosTheta_O)
cost-diff0
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
cost-diff0
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
cost-diff0
(*.f32 sinTheta_i sinTheta_O)
cost-diff0
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
cost-diff0
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
cost-diff0
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 cosTheta_i cosTheta_O)
cosTheta_i
cosTheta_O
v
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 #s(literal 1 binary32) v)
#s(literal 1 binary32)
#s(literal 2 binary32)
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 cosTheta_i cosTheta_O)
cosTheta_i
cosTheta_O
v
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 #s(literal 1 binary32) v)
#s(literal 1 binary32)
#s(literal 2 binary32)

localize58.0ms (1.4%)

Memory
-11.4MiB live, 71.1MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.23570253907376804
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
accuracy0.26953125
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
accuracy0.7644642031730291
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
accuracy23.436575033957308
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
accuracy0.0
(*.f32 cosTheta_i cosTheta_O)
accuracy0.2772801023150756
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
accuracy14.337173551796337
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
accuracy0.0
(*.f32 sinTheta_i sinTheta_O)
accuracy0.0
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
accuracy0.23570253907376804
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
accuracy23.2592560576937
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
Samples
46.0ms256×0valid
Compiler

Compiled 309 to 55 computations (82.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
ival-mult: 14.0ms (53.6% of total)
ival-div: 6.0ms (23% of total)
ival-exp: 2.0ms (7.7% of total)
ival-sinh: 2.0ms (7.7% of total)
ival-neg: 1.0ms (3.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series50.0ms (1.2%)

Memory
-2.5MiB live, 72.5MiB allocated
Counts
11 → 43
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 cosTheta_i cosTheta_O)
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O cosTheta_i) v)
(* cosTheta_O cosTheta_i)
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(/ (* sinTheta_O sinTheta_i) v)
(* sinTheta_O sinTheta_i)
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* 1/2 (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* v (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
(/ 1 v)
(/ (+ 1 (* 1/6 (/ 1 (pow v 2)))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (* 1/6 (/ 1 (pow v 2))))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (+ (* 1/6 (/ 1 (pow v 2))) (* 1/5040 (/ 1 (pow v 6)))))) v)
2
(+ 2 (* 1/3 (/ 1 (pow v 2))))
(+ 2 (+ (/ 1/60 (pow v 4)) (* 1/3 (/ 1 (pow v 2)))))
(+ 2 (+ (/ 1/60 (pow v 4)) (+ (* 1/3 (/ 1 (pow v 2))) (* 1/2520 (/ 1 (pow v 6))))))
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
(* -1 (/ (- (* -1 (/ (+ 1/6 (* 1/120 (/ 1 (pow v 2)))) (pow v 2))) 1) v))
(* -1 (/ (- (* -1 (/ (+ 1/120 (* 1/5040 (/ 1 (pow v 2)))) (pow v 4))) (+ 1 (* 1/6 (/ 1 (pow v 2))))) v))
Calls

15 calls:

TimeVariablePointExpression
9.0ms
cosTheta_O
@0
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (* sinTheta_i sinTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (sinh (/ 1 v)) (* (* (sinh (/ 1 v)) 2) v))
8.0ms
sinTheta_O
@inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (* sinTheta_i sinTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (sinh (/ 1 v)) (* (* (sinh (/ 1 v)) 2) v))
6.0ms
sinTheta_O
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (* sinTheta_i sinTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (sinh (/ 1 v)) (* (* (sinh (/ 1 v)) 2) v))
3.0ms
cosTheta_O
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (* sinTheta_i sinTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (sinh (/ 1 v)) (* (* (sinh (/ 1 v)) 2) v))
3.0ms
cosTheta_i
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (* sinTheta_i sinTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (sinh (/ 1 v)) (* (* (sinh (/ 1 v)) 2) v))

simplify1.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated
Algorithm
egg-herbie
Counts
43 → 11
Calls
Call 1
Inputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O cosTheta_i) v)
(* cosTheta_O cosTheta_i)
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(/ (* sinTheta_O sinTheta_i) v)
(* sinTheta_O sinTheta_i)
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* 1/2 (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* v (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
(/ 1 v)
(/ (+ 1 (* 1/6 (/ 1 (pow v 2)))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (* 1/6 (/ 1 (pow v 2))))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (+ (* 1/6 (/ 1 (pow v 2))) (* 1/5040 (/ 1 (pow v 6)))))) v)
2
(+ 2 (* 1/3 (/ 1 (pow v 2))))
(+ 2 (+ (/ 1/60 (pow v 4)) (* 1/3 (/ 1 (pow v 2)))))
(+ 2 (+ (/ 1/60 (pow v 4)) (+ (* 1/3 (/ 1 (pow v 2))) (* 1/2520 (/ 1 (pow v 6))))))
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
(* -1 (/ (- (* -1 (/ (+ 1/6 (* 1/120 (/ 1 (pow v 2)))) (pow v 2))) 1) v))
(* -1 (/ (- (* -1 (/ (+ 1/120 (* 1/5040 (/ 1 (pow v 2)))) (pow v 4))) (+ 1 (* 1/6 (/ 1 (pow v 2))))) v))
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(/ (* cosTheta_O cosTheta_i) v)
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(* cosTheta_O cosTheta_i)
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(*.f32 sinTheta_i sinTheta_O)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(*.f32 cosTheta_i cosTheta_O)
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/ (* sinTheta_O sinTheta_i) v)
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(* sinTheta_O sinTheta_i)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)

rewrite1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Counts
11 → 11
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 cosTheta_i cosTheta_O)
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
(*.f32 cosTheta_i cosTheta_O)
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)

eval2.0ms (0%)

Memory
3.7MiB live, 3.7MiB allocated
Compiler

Compiled 834 to 58 computations (93% saved)

prune3.0ms (0.1%)

Memory
6.5MiB live, 6.5MiB allocated
Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New21425
Fresh000
Picked123
Done011
Total22729
Accuracy
98.7%
Counts
29 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.7%
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
28.9%
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
29.2%
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
55.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
27.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
57.0%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
27.7%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
Compiler

Compiled 213 to 153 computations (28.2% saved)

simplify1.0ms (0%)

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

Found 14 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
cost-diff0
(*.f32 sinTheta_i sinTheta_O)
cost-diff0
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
cost-diff0
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
cost-diff0
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
cost-diff0
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
cost-diff0
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
cost-diff0
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
cost-diff0
(*.f32 cosTheta_i cosTheta_O)
cost-diff0
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
cost-diff0
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
cost-diff0
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
cost-diff0
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
cost-diff0
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
(*.f32 cosTheta_i cosTheta_O)
cosTheta_i
cosTheta_O
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 #s(literal 1 binary32) v)
#s(literal 1 binary32)
v
#s(literal 2 binary32)
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
(*.f32 cosTheta_i cosTheta_O)
cosTheta_i
cosTheta_O
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
v
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32))
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
(/.f32 #s(literal 1 binary32) v)
#s(literal 1 binary32)
v
#s(literal 2 binary32)

localize51.0ms (1.3%)

Memory
-6.6MiB live, 76.4MiB allocated
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
accuracy0.18359375
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
accuracy0.26953125
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
accuracy0.7644642031730291
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
accuracy23.365887449932668
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
accuracy0.23570253907376804
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
accuracy0.2772801023150756
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
accuracy14.337173551796337
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
accuracy23.379601325621525
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
accuracy0.0
(*.f32 cosTheta_i cosTheta_O)
accuracy13.759541089762577
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
accuracy0.23570253907376804
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
accuracy23.2592560576937
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
accuracy23.436575033957308
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
accuracy23.569423730600572
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
Samples
39.0ms256×0valid
Compiler

Compiled 459 to 58 computations (87.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-div: 10.0ms (42.1% of total)
ival-mult: 8.0ms (33.7% of total)
ival-exp: 2.0ms (8.4% of total)
ival-sinh: 2.0ms (8.4% of total)
ival-neg: 1.0ms (4.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series38.0ms (0.9%)

Memory
10.9MiB live, 88.3MiB allocated
Counts
14 → 43
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
(*.f32 cosTheta_i cosTheta_O)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(* cosTheta_O cosTheta_i)
(/ (* cosTheta_O cosTheta_i) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(/ (* sinTheta_O sinTheta_i) v)
(* sinTheta_O sinTheta_i)
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* v (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
2
(+ 2 (* 1/3 (/ 1 (pow v 2))))
(+ 2 (+ (/ 1/60 (pow v 4)) (* 1/3 (/ 1 (pow v 2)))))
(+ 2 (+ (/ 1/60 (pow v 4)) (+ (* 1/3 (/ 1 (pow v 2))) (* 1/2520 (/ 1 (pow v 6))))))
(/ 1 v)
(/ (+ 1 (* 1/6 (/ 1 (pow v 2)))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (* 1/6 (/ 1 (pow v 2))))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (+ (* 1/6 (/ 1 (pow v 2))) (* 1/5040 (/ 1 (pow v 6)))))) v)
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
(* -1 (/ (- (* -1 (/ (+ 1/6 (* 1/120 (/ 1 (pow v 2)))) (pow v 2))) 1) v))
(* -1 (/ (- (* -1 (/ (+ 1/120 (* 1/5040 (/ 1 (pow v 2)))) (pow v 4))) (+ 1 (* 1/6 (/ 1 (pow v 2))))) v))
Calls

15 calls:

TimeVariablePointExpression
6.0ms
cosTheta_i
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O) (* (* (sinh (/ 1 v)) 2) v) (sinh (/ 1 v)))
3.0ms
cosTheta_O
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O) (* (* (sinh (/ 1 v)) 2) v) (sinh (/ 1 v)))
3.0ms
sinTheta_O
@inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O) (* (* (sinh (/ 1 v)) 2) v) (sinh (/ 1 v)))
3.0ms
cosTheta_i
@inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O) (* (* (sinh (/ 1 v)) 2) v) (sinh (/ 1 v)))
3.0ms
cosTheta_O
@inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/ (* sinTheta_i sinTheta_O) v) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/ (* cosTheta_i cosTheta_O) v) (* cosTheta_i cosTheta_O) (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O) (* (* (sinh (/ 1 v)) 2) v) (sinh (/ 1 v)))

simplify1.0ms (0%)

Memory
4.0MiB live, 4.0MiB allocated
Algorithm
egg-herbie
Counts
43 → 14
Calls
Call 1
Inputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(* cosTheta_O cosTheta_i)
(/ (* cosTheta_O cosTheta_i) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(/ (* sinTheta_O sinTheta_i) v)
(* sinTheta_O sinTheta_i)
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* v (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
2
(+ 2 (* 1/3 (/ 1 (pow v 2))))
(+ 2 (+ (/ 1/60 (pow v 4)) (* 1/3 (/ 1 (pow v 2)))))
(+ 2 (+ (/ 1/60 (pow v 4)) (+ (* 1/3 (/ 1 (pow v 2))) (* 1/2520 (/ 1 (pow v 6))))))
(/ 1 v)
(/ (+ 1 (* 1/6 (/ 1 (pow v 2)))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (* 1/6 (/ 1 (pow v 2))))) v)
(/ (+ 1 (+ (/ 1/120 (pow v 4)) (+ (* 1/6 (/ 1 (pow v 2))) (* 1/5040 (/ 1 (pow v 6)))))) v)
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
(* -1 (/ (- (* -1 (/ (+ 1/6 (* 1/120 (/ 1 (pow v 2)))) (pow v 2))) 1) v))
(* -1 (/ (- (* -1 (/ (+ 1/120 (* 1/5040 (/ 1 (pow v 2)))) (pow v 4))) (+ 1 (* 1/6 (/ 1 (pow v 2))))) v))
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
(* cosTheta_O cosTheta_i)
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/ (* cosTheta_O cosTheta_i) v)
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(*.f32 cosTheta_i cosTheta_O)
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
(* -1 (/ (* sinTheta_O sinTheta_i) v))
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(*.f32 sinTheta_i sinTheta_O)
(/ (* sinTheta_O sinTheta_i) v)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(* sinTheta_O sinTheta_i)
(sinh.f32 (/.f32 #s(literal 1 binary32) v))

rewrite1.0ms (0%)

Memory
2.9MiB live, 2.9MiB allocated
Counts
14 → 14
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
(*.f32 cosTheta_i cosTheta_O)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(sinh.f32 (/.f32 #s(literal 1 binary32) v))
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
(*.f32 cosTheta_i cosTheta_O)
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v)
#s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
(*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v)
(sinh.f32 (/.f32 #s(literal 1 binary32) v))

eval3.0ms (0.1%)

Memory
-31.3MiB live, 7.9MiB allocated
Compiler

Compiled 1 341 to 74 computations (94.5% saved)

prune4.0ms (0.1%)

Memory
13.1MiB live, 13.1MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New30131
Fresh000
Picked044
Done033
Total30838
Accuracy
98.7%
Counts
38 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.7%
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
28.9%
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
29.2%
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
55.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
27.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
57.0%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
27.7%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
28.0%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
Compiler

Compiled 260 to 176 computations (32.3% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f32 sinTheta_i sinTheta_O)
cost-diff0
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
cost-diff0
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
cost-diff0
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
sinTheta_i
sinTheta_O

localize39.0ms (0.9%)

Memory
10.9MiB live, 92.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f32 sinTheta_i sinTheta_O)
accuracy23.2592560576937
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
accuracy23.365887449932668
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
accuracy23.569423730600572
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
Samples
31.0ms256×0valid
Compiler

Compiled 141 to 44 computations (68.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-mult: 8.0ms (40.1% of total)
ival-div: 7.0ms (35.1% of total)
ival-exp: 2.0ms (10% of total)
ival-sinh: 2.0ms (10% of total)
ival-neg: 1.0ms (5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series32.0ms (0.8%)

Memory
0.6MiB live, 72.7MiB allocated
Counts
4 → 29
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(/ (* cosTheta_O cosTheta_i) v)
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* sinTheta_O sinTheta_i)
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
Calls

15 calls:

TimeVariablePointExpression
6.0ms
sinTheta_i
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O))
4.0ms
cosTheta_i
@0
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O))
2.0ms
cosTheta_i
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O))
2.0ms
cosTheta_i
@inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O))
2.0ms
cosTheta_O
@-inf
((/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg (/ (* sinTheta_i sinTheta_O) v)) (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* sinTheta_i sinTheta_O))

simplify1.0ms (0%)

Memory
2.0MiB live, 2.0MiB allocated
Algorithm
egg-herbie
Counts
29 → 4
Calls
Call 1
Inputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(* -1 (/ (* sinTheta_O sinTheta_i) v))
(/ (* cosTheta_O cosTheta_i) v)
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (pow v 2))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) sinTheta_i))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_i (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_O)) (pow v 2))) (* sinTheta_i (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) sinTheta_i))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_O 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* sinTheta_O sinTheta_i)
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (* (pow v 5) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (* (pow v 4) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 2)))) (pow v 3))))) (/ (* cosTheta_O cosTheta_i) v))
(+ (* sinTheta_O (+ (* -1 (/ (* cosTheta_O (* cosTheta_i sinTheta_i)) (pow v 2))) (* sinTheta_O (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O (pow sinTheta_i 3)))) (pow v 4))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (pow sinTheta_i 2))) (pow v 3))))))) (/ (* cosTheta_O cosTheta_i) v))
(* 1/2 (/ (* cosTheta_O cosTheta_i) v))
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* 1/2 (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2))))) v)
(/ (+ (* -1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (* cosTheta_O cosTheta_i)) (+ (* 1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) (pow v 3))) (* 1/2 (/ (- (* 1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (* cosTheta_O cosTheta_i))) (pow v 2)))))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (* cosTheta_O cosTheta_i)) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i))) v)
(/ (+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) (+ (* -1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) (pow v 3))) (+ (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) (pow v 2))) (* cosTheta_O cosTheta_i)))) v)
(* -1 (/ (+ (* -1/2 (* cosTheta_O cosTheta_i)) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1/2 (/ (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))) v))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/2 (/ (- (* -1/6 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3))))) (* -1/6 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* 1/2 (- (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* -1/6 (* cosTheta_O cosTheta_i))))) v)) (* -1/2 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))))) v)) (* -1/2 (* cosTheta_O cosTheta_i))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) v)) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* 1/2 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2)))) v))) v))) v))
(* -1 (/ (+ (* -1 (* cosTheta_O cosTheta_i)) (* -1 (/ (+ (* -1 (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i)))) (* -1 (/ (+ (* -1/2 (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 2) (pow sinTheta_i 2))))) (* 1/6 (/ (* cosTheta_O (* cosTheta_i (* (pow sinTheta_O 3) (pow sinTheta_i 3)))) v))) v))) v))) v))
Outputs
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
(/ (* cosTheta_O (* cosTheta_i (exp (neg (/ (* sinTheta_O sinTheta_i) v))))) v)
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
(/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(+ (* -1 (/ (* cosTheta_O (* cosTheta_i (* sinTheta_O sinTheta_i))) (* (pow v 3) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v))))))) (/ (* cosTheta_O cosTheta_i) (* (pow v 2) (- (exp (/ 1 v)) (/ 1 (exp (/ 1 v)))))))
(*.f32 sinTheta_i sinTheta_O)

rewrite0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Counts
4 → 4
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
#s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)))
#s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))
(*.f32 sinTheta_i sinTheta_O)

eval1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Compiler

Compiled 392 to 29 computations (92.6% saved)

prune5.0ms (0.1%)

Memory
9.9MiB live, 9.9MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New808
Fresh000
Picked011
Done077
Total8816
Accuracy
98.7%
Counts
16 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.7%
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
28.9%
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
29.2%
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
55.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
27.3%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
57.0%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
27.7%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
28.0%
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
Compiler

Compiled 549 to 223 computations (59.4% saved)

regimes41.0ms (1%)

Memory
-32.2MiB live, 54.8MiB allocated
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Outputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Calls

8 calls:

14.0ms
(*.f32 cosTheta_i cosTheta_O)
7.0ms
cosTheta_O
3.0ms
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
3.0ms
v
3.0ms
cosTheta_i
Results
AccuracySegmentsBranch
98.7%1cosTheta_i
98.7%1cosTheta_O
98.7%1sinTheta_i
98.7%1sinTheta_O
98.7%1v
98.7%1(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
98.7%1(*.f32 sinTheta_i sinTheta_O)
98.7%1(*.f32 cosTheta_i cosTheta_O)
Compiler

Compiled 33 to 56 computations (-69.7% saved)

regimes29.0ms (0.7%)

Memory
13.2MiB live, 50.9MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 (*.f32 cosTheta_i cosTheta_O) v))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (/.f32 #s(approx (* cosTheta_i cosTheta_O) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
(/.f32 #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
Calls

8 calls:

8.0ms
(*.f32 sinTheta_i sinTheta_O)
3.0ms
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
3.0ms
sinTheta_O
3.0ms
cosTheta_i
3.0ms
v
Results
AccuracySegmentsBranch
57.0%1cosTheta_O
57.0%1sinTheta_i
57.0%1sinTheta_O
57.0%1(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
57.0%1(*.f32 sinTheta_i sinTheta_O)
57.0%1(*.f32 cosTheta_i cosTheta_O)
57.0%1cosTheta_i
57.0%1v
Compiler

Compiled 33 to 56 computations (-69.7% saved)

regimes12.0ms (0.3%)

Memory
-14.2MiB live, 24.0MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
Outputs
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
Calls

8 calls:

4.0ms
(*.f32 cosTheta_i cosTheta_O)
1.0ms
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
1.0ms
cosTheta_O
1.0ms
v
1.0ms
cosTheta_i
Results
AccuracySegmentsBranch
28.0%1sinTheta_O
28.0%1v
28.0%1(*.f32 cosTheta_i cosTheta_O)
28.0%1cosTheta_O
28.0%1sinTheta_i
28.0%1(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
28.0%1(*.f32 sinTheta_i sinTheta_O)
28.0%1cosTheta_i
Compiler

Compiled 33 to 56 computations (-69.7% saved)

simplify5.0ms (0.1%)

Memory
10.7MiB live, 10.7MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))
Outputs
(/.f32 (*.f32 (exp.f32 (neg.f32 (/.f32 (*.f32 sinTheta_i sinTheta_O) v))) (/.f32 (*.f32 cosTheta_i cosTheta_O) v)) (*.f32 (*.f32 (sinh.f32 (/.f32 #s(literal 1 binary32) v)) #s(literal 2 binary32)) v))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) (*.f32 cosTheta_i cosTheta_O))
#s(approx (/ (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (* (* (sinh (/ 1 v)) 2) v)) #s(approx (neg (/ (* sinTheta_i sinTheta_O) v)) #s(approx (* (exp (neg (/ (* sinTheta_i sinTheta_O) v))) (/ (* cosTheta_i cosTheta_O) v)) (*.f32 sinTheta_i sinTheta_O))))

soundness1.0ms (0%)

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

Compiled 95 to 37 computations (61.1% saved)

preprocess25.0ms (0.6%)

Memory
2.7MiB live, 46.2MiB allocated
Compiler

Compiled 234 to 112 computations (52.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...