Spherical law of cosines

Time bar (total: 5.0s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze807.0ms (16.2%)

Memory
-22.2MiB live, 903.3MiB allocated; 155ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
0%0%99.8%0.2%0%0%0%9
0%0%99.8%0.2%0%0%0%10
1.6%1.6%98.2%0.2%0%0%0%11
1.6%1.6%98.2%0.2%0%0%0%12
Compiler

Compiled 21 to 19 computations (9.5% saved)

sample3.7s (75.3%)

Memory
65.2MiB live, 3 841.7MiB allocated; 460ms collecting garbage
Samples
2.8s6 300×1valid
377.0ms1 800×0valid
60.0ms125×2valid
39.0ms31×3valid
Precisions
Click to see histograms. Total time spent on operations: 2.9s
ival-cos: 1.2s (40.5% of total)
ival-sin: 753.0ms (26.3% of total)
adjust: 295.0ms (10.3% of total)
ival-mult!: 295.0ms (10.3% of total)
ival-acos: 282.0ms (9.9% of total)
ival-sub!: 47.0ms (1.6% of total)
ival-add!: 32.0ms (1.1% of total)
Bogosity

explain334.0ms (6.7%)

Memory
-4.9MiB live, 366.7MiB allocated; 30ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
68137(-54328490299.04313 -5.919569419080663e+208 1.5949777631253567e-144 1.09456024263632e-104 3.788810447627902e+32)0-(cos.f64 (-.f64 lambda1 lambda2))
170-0-(acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
00-0-lambda2
00-0-phi2
00-0-(*.f64 (cos.f64 phi1) (cos.f64 phi2))
00-0-(-.f64 lambda1 lambda2)
00-0-R
00-0-(sin.f64 phi1)
00-0-(cos.f64 phi2)
00-0-lambda1
00-0-(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
00-0-(*.f64 (sin.f64 phi1) (sin.f64 phi2))
00-0-phi1
00-0-(sin.f64 phi2)
00-0-(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
00-0-(+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))
00-0-(cos.f64 phi1)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
cos.f64(cos.f64 (-.f64 lambda1 lambda2))sensitivity2050
acos.f64(acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))sensitivity173
Confusion
Predicted +Predicted -
+851
-13733
Precision
0.38288288288288286
Recall
0.9883720930232558
Confusion?
Predicted +Predicted MaybePredicted -
+8510
-137033
Precision?
0.38565022421524664
Recall?
1.0
Freqs
test
numberfreq
034
1222
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
190.0ms424×1valid
16.0ms76×0valid
5.0ms10×2valid
3.0ms3valid
Compiler

Compiled 207 to 55 computations (73.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 178.0ms
ival-cos: 74.0ms (41.7% of total)
ival-sin: 42.0ms (23.7% of total)
ival-mult!: 19.0ms (10.7% of total)
adjust: 18.0ms (10.1% of total)
ival-acos: 18.0ms (10.1% of total)
ival-sub!: 3.0ms (1.7% of total)
ival-add!: 2.0ms (1.1% of total)

preprocess42.0ms (0.8%)

Memory
-9.9MiB live, 35.1MiB allocated; 5ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0130412
1346408
2745408
31755408
43841408
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
73.9%
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
Symmetry

(negabs R)

(sort phi1 phi2)

Compiler

Compiled 38 to 34 computations (10.5% saved)

series39.0ms (0.8%)

Memory
3.3MiB live, 48.6MiB allocated; 4ms collecting garbage
Counts
17 → 106
Calls
Call 1
Inputs
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
(acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
(+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))
(*.f64 (sin.f64 phi1) (sin.f64 phi2))
(sin.f64 phi1)
phi1
(sin.f64 phi2)
phi2
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
(*.f64 (cos.f64 phi1) (cos.f64 phi2))
(cos.f64 phi1)
(cos.f64 phi2)
(cos.f64 (-.f64 lambda1 lambda2))
(-.f64 lambda1 lambda2)
lambda1
lambda2
R
Outputs
#s(approx (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) #s(hole binary64 (* R (acos (+ (* (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2)))))))
#s(approx R #s(hole binary64 R))
#s(approx (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) #s(hole binary64 (acos (+ (* (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))) (* (sin phi1) (sin phi2)))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* -1 (* lambda1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2)))))) (+ (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))) (* (sin phi1) (sin phi2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* lambda1 (+ (* -1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2))))) (* -1/2 (* lambda1 (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))))))) (+ (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))) (* (sin phi1) (sin phi2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* lambda1 (+ (* -1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2))))) (* lambda1 (+ (* -1/2 (* (cos phi1) (* (cos phi2) (cos (neg lambda2))))) (* 1/6 (* lambda1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2)))))))))) (+ (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))) (* (sin phi1) (sin phi2))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (* (cos phi1) (* (cos phi2) (cos (neg lambda2))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* -1 (* lambda1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2)))))) (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* lambda1 (+ (* -1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2))))) (* -1/2 (* lambda1 (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))))))) (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* lambda1 (+ (* -1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2))))) (* lambda1 (+ (* -1/2 (* (cos phi1) (* (cos phi2) (cos (neg lambda2))))) (* 1/6 (* lambda1 (* (cos phi1) (* (cos phi2) (sin (neg lambda2)))))))))) (* (cos phi1) (* (cos phi2) (cos (neg lambda2)))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (cos (neg lambda2))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (+ (cos (neg lambda2)) (* -1 (* lambda1 (sin (neg lambda2)))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (+ (cos (neg lambda2)) (* lambda1 (- (* -1/2 (* lambda1 (cos (neg lambda2)))) (sin (neg lambda2)))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (+ (cos (neg lambda2)) (* lambda1 (- (* lambda1 (+ (* -1/2 (cos (neg lambda2))) (* 1/6 (* lambda1 (sin (neg lambda2)))))) (sin (neg lambda2)))))))
#s(approx (- lambda1 lambda2) #s(hole binary64 (* -1 lambda2)))
#s(approx (- lambda1 lambda2) #s(hole binary64 (- lambda1 lambda2)))
#s(approx lambda1 #s(hole binary64 lambda1))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2)))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (* (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (cos (- lambda1 lambda2))))
#s(approx (- lambda1 lambda2) #s(hole binary64 lambda1))
#s(approx (- lambda1 lambda2) #s(hole binary64 (* lambda1 (+ 1 (* -1 (/ lambda2 lambda1))))))
#s(approx (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) #s(hole binary64 (* R (acos (+ (* (cos phi1) (* (cos phi2) (cos (neg (+ lambda2 (* -1 lambda1)))))) (* (sin phi1) (sin phi2)))))))
#s(approx (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) #s(hole binary64 (acos (+ (* (cos phi1) (* (cos phi2) (cos (neg (+ lambda2 (* -1 lambda1)))))) (* (sin phi1) (sin phi2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* (cos phi1) (* (cos phi2) (cos (neg (+ lambda2 (* -1 lambda1)))))) (* (sin phi1) (sin phi2)))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (* (cos phi1) (* (cos phi2) (cos (neg (+ lambda2 (* -1 lambda1))))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (cos (neg (+ lambda2 (* -1 lambda1))))))
#s(approx (- lambda1 lambda2) #s(hole binary64 (* -1 (* lambda1 (- (/ lambda2 lambda1) 1)))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* (cos lambda1) (* (cos phi1) (cos phi2))) (* (sin phi1) (sin phi2)))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* lambda2 (* (cos phi1) (* (cos phi2) (sin lambda1)))) (+ (* (cos lambda1) (* (cos phi1) (cos phi2))) (* (sin phi1) (sin phi2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* lambda2 (+ (* -1/2 (* lambda2 (* (cos lambda1) (* (cos phi1) (cos phi2))))) (* (cos phi1) (* (cos phi2) (sin lambda1))))) (+ (* (cos lambda1) (* (cos phi1) (cos phi2))) (* (sin phi1) (sin phi2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* lambda2 (+ (* lambda2 (+ (* -1/2 (* (cos lambda1) (* (cos phi1) (cos phi2)))) (* -1/6 (* lambda2 (* (cos phi1) (* (cos phi2) (sin lambda1))))))) (* (cos phi1) (* (cos phi2) (sin lambda1))))) (+ (* (cos lambda1) (* (cos phi1) (cos phi2))) (* (sin phi1) (sin phi2))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (* (cos lambda1) (* (cos phi1) (cos phi2)))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* lambda2 (* (cos phi1) (* (cos phi2) (sin lambda1)))) (* (cos lambda1) (* (cos phi1) (cos phi2))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* lambda2 (+ (* -1/2 (* lambda2 (* (cos lambda1) (* (cos phi1) (cos phi2))))) (* (cos phi1) (* (cos phi2) (sin lambda1))))) (* (cos lambda1) (* (cos phi1) (cos phi2))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* lambda2 (+ (* lambda2 (+ (* -1/2 (* (cos lambda1) (* (cos phi1) (cos phi2)))) (* -1/6 (* lambda2 (* (cos phi1) (* (cos phi2) (sin lambda1))))))) (* (cos phi1) (* (cos phi2) (sin lambda1))))) (* (cos lambda1) (* (cos phi1) (cos phi2))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (cos lambda1)))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (+ (cos lambda1) (* lambda2 (sin lambda1)))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (+ (cos lambda1) (* lambda2 (- (* -1/2 (* lambda2 (cos lambda1))) (* -1 (sin lambda1)))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (+ (cos lambda1) (* lambda2 (- (* lambda2 (+ (* -1/2 (cos lambda1)) (* -1/6 (* lambda2 (sin lambda1))))) (* -1 (sin lambda1)))))))
#s(approx (- lambda1 lambda2) #s(hole binary64 (+ lambda1 (* -1 lambda2))))
#s(approx lambda2 #s(hole binary64 lambda2))
#s(approx (- lambda1 lambda2) #s(hole binary64 (* lambda2 (- (/ lambda1 lambda2) 1))))
#s(approx (* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) #s(hole binary64 (* R (acos (+ (* (cos phi1) (* (cos phi2) (cos (+ lambda1 (* -1 lambda2))))) (* (sin phi1) (sin phi2)))))))
#s(approx (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) #s(hole binary64 (acos (+ (* (cos phi1) (* (cos phi2) (cos (+ lambda1 (* -1 lambda2))))) (* (sin phi1) (sin phi2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* (cos phi1) (* (cos phi2) (cos (+ lambda1 (* -1 lambda2))))) (* (sin phi1) (sin phi2)))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (* (cos phi1) (* (cos phi2) (cos (+ lambda1 (* -1 lambda2)))))))
#s(approx (cos (- lambda1 lambda2)) #s(hole binary64 (cos (+ lambda1 (* -1 lambda2)))))
#s(approx (- lambda1 lambda2) #s(hole binary64 (* -1 (* lambda2 (+ 1 (* -1 (/ lambda1 lambda2)))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (* (cos phi2) (cos (- lambda1 lambda2)))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* phi1 (sin phi2)) (* (cos phi2) (cos (- lambda1 lambda2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* phi1 (+ (sin phi2) (* -1/2 (* phi1 (* (cos phi2) (cos (- lambda1 lambda2))))))) (* (cos phi2) (cos (- lambda1 lambda2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* phi1 (+ (sin phi2) (* phi1 (+ (* -1/2 (* (cos phi2) (cos (- lambda1 lambda2)))) (* -1/6 (* phi1 (sin phi2))))))) (* (cos phi2) (cos (- lambda1 lambda2))))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi1 (sin phi2))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi1 (+ (sin phi2) (* -1/6 (* (pow phi1 2) (sin phi2)))))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi1 (+ (sin phi2) (* (pow phi1 2) (+ (* -1/6 (sin phi2)) (* 1/120 (* (pow phi1 2) (sin phi2)))))))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi1 (+ (sin phi2) (* (pow phi1 2) (+ (* -1/6 (sin phi2)) (* (pow phi1 2) (+ (* -1/5040 (* (pow phi1 2) (sin phi2))) (* 1/120 (sin phi2))))))))))
#s(approx (sin phi1) #s(hole binary64 phi1))
#s(approx (sin phi1) #s(hole binary64 (* phi1 (+ 1 (* -1/6 (pow phi1 2))))))
#s(approx (sin phi1) #s(hole binary64 (* phi1 (+ 1 (* (pow phi1 2) (- (* 1/120 (pow phi1 2)) 1/6))))))
#s(approx (sin phi1) #s(hole binary64 (* phi1 (+ 1 (* (pow phi1 2) (- (* (pow phi1 2) (+ 1/120 (* -1/5040 (pow phi1 2)))) 1/6))))))
#s(approx phi1 #s(hole binary64 phi1))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (* (cos phi2) (cos (- lambda1 lambda2)))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* -1/2 (* (pow phi1 2) (* (cos phi2) (cos (- lambda1 lambda2))))) (* (cos phi2) (cos (- lambda1 lambda2))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* (cos phi2) (cos (- lambda1 lambda2))) (* (pow phi1 2) (+ (* -1/2 (* (cos phi2) (cos (- lambda1 lambda2)))) (* 1/24 (* (pow phi1 2) (* (cos phi2) (cos (- lambda1 lambda2))))))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* (cos phi2) (cos (- lambda1 lambda2))) (* (pow phi1 2) (+ (* -1/2 (* (cos phi2) (cos (- lambda1 lambda2)))) (* (pow phi1 2) (+ (* -1/720 (* (pow phi1 2) (* (cos phi2) (cos (- lambda1 lambda2))))) (* 1/24 (* (cos phi2) (cos (- lambda1 lambda2)))))))))))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (cos phi2)))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (+ (cos phi2) (* -1/2 (* (pow phi1 2) (cos phi2))))))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (+ (cos phi2) (* (pow phi1 2) (+ (* -1/2 (cos phi2)) (* 1/24 (* (pow phi1 2) (cos phi2))))))))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (+ (cos phi2) (* (pow phi1 2) (+ (* -1/2 (cos phi2)) (* (pow phi1 2) (+ (* -1/720 (* (pow phi1 2) (cos phi2))) (* 1/24 (cos phi2)))))))))
#s(approx (cos phi1) #s(hole binary64 1))
#s(approx (cos phi1) #s(hole binary64 (+ 1 (* -1/2 (pow phi1 2)))))
#s(approx (cos phi1) #s(hole binary64 (+ 1 (* (pow phi1 2) (- (* 1/24 (pow phi1 2)) 1/2)))))
#s(approx (cos phi1) #s(hole binary64 (+ 1 (* (pow phi1 2) (- (* (pow phi1 2) (+ 1/24 (* -1/720 (pow phi1 2)))) 1/2)))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* (sin phi1) (sin phi2))))
#s(approx (sin phi1) #s(hole binary64 (sin phi1)))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (* (cos phi1) (cos phi2))))
#s(approx (cos phi1) #s(hole binary64 (cos phi1)))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (* (cos phi1) (cos (- lambda1 lambda2)))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* phi2 (sin phi1)) (* (cos phi1) (cos (- lambda1 lambda2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* phi2 (+ (sin phi1) (* -1/2 (* phi2 (* (cos phi1) (cos (- lambda1 lambda2))))))) (* (cos phi1) (cos (- lambda1 lambda2))))))
#s(approx (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) #s(hole binary64 (+ (* phi2 (+ (sin phi1) (* phi2 (+ (* -1/2 (* (cos phi1) (cos (- lambda1 lambda2)))) (* -1/6 (* phi2 (sin phi1))))))) (* (cos phi1) (cos (- lambda1 lambda2))))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi2 (sin phi1))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi2 (+ (sin phi1) (* -1/6 (* (pow phi2 2) (sin phi1)))))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi2 (+ (sin phi1) (* (pow phi2 2) (+ (* -1/6 (sin phi1)) (* 1/120 (* (pow phi2 2) (sin phi1)))))))))
#s(approx (* (sin phi1) (sin phi2)) #s(hole binary64 (* phi2 (+ (sin phi1) (* (pow phi2 2) (+ (* -1/6 (sin phi1)) (* (pow phi2 2) (+ (* -1/5040 (* (pow phi2 2) (sin phi1))) (* 1/120 (sin phi1))))))))))
#s(approx (sin phi2) #s(hole binary64 phi2))
#s(approx (sin phi2) #s(hole binary64 (* phi2 (+ 1 (* -1/6 (pow phi2 2))))))
#s(approx (sin phi2) #s(hole binary64 (* phi2 (+ 1 (* (pow phi2 2) (- (* 1/120 (pow phi2 2)) 1/6))))))
#s(approx (sin phi2) #s(hole binary64 (* phi2 (+ 1 (* (pow phi2 2) (- (* (pow phi2 2) (+ 1/120 (* -1/5040 (pow phi2 2)))) 1/6))))))
#s(approx phi2 #s(hole binary64 phi2))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (* (cos phi1) (cos (- lambda1 lambda2)))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* -1/2 (* (pow phi2 2) (* (cos phi1) (cos (- lambda1 lambda2))))) (* (cos phi1) (cos (- lambda1 lambda2))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* (cos phi1) (cos (- lambda1 lambda2))) (* (pow phi2 2) (+ (* -1/2 (* (cos phi1) (cos (- lambda1 lambda2)))) (* 1/24 (* (pow phi2 2) (* (cos phi1) (cos (- lambda1 lambda2))))))))))
#s(approx (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) #s(hole binary64 (+ (* (cos phi1) (cos (- lambda1 lambda2))) (* (pow phi2 2) (+ (* -1/2 (* (cos phi1) (cos (- lambda1 lambda2)))) (* (pow phi2 2) (+ (* -1/720 (* (pow phi2 2) (* (cos phi1) (cos (- lambda1 lambda2))))) (* 1/24 (* (cos phi1) (cos (- lambda1 lambda2)))))))))))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (cos phi1)))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (+ (cos phi1) (* -1/2 (* (pow phi2 2) (cos phi1))))))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (+ (cos phi1) (* (pow phi2 2) (+ (* -1/2 (cos phi1)) (* 1/24 (* (pow phi2 2) (cos phi1))))))))
#s(approx (* (cos phi1) (cos phi2)) #s(hole binary64 (+ (cos phi1) (* (pow phi2 2) (+ (* -1/2 (cos phi1)) (* (pow phi2 2) (+ (* -1/720 (* (pow phi2 2) (cos phi1))) (* 1/24 (cos phi1)))))))))
#s(approx (cos phi2) #s(hole binary64 1))
#s(approx (cos phi2) #s(hole binary64 (+ 1 (* -1/2 (pow phi2 2)))))
#s(approx (cos phi2) #s(hole binary64 (+ 1 (* (pow phi2 2) (- (* 1/24 (pow phi2 2)) 1/2)))))
#s(approx (cos phi2) #s(hole binary64 (+ 1 (* (pow phi2 2) (- (* (pow phi2 2) (+ 1/24 (* -1/720 (pow phi2 2)))) 1/2)))))
#s(approx (sin phi2) #s(hole binary64 (sin phi2)))
#s(approx (cos phi2) #s(hole binary64 (cos phi2)))
Calls

15 calls:

TimeVariablePointExpression
5.0ms
phi2
@-inf
((* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2)) (sin phi1) phi1 (sin phi2) phi2 (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) (* (cos phi1) (cos phi2)) (cos phi1) (cos phi2) (cos (- lambda1 lambda2)) (- lambda1 lambda2) lambda1 lambda2 R)
4.0ms
phi2
@0
((* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2)) (sin phi1) phi1 (sin phi2) phi2 (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) (* (cos phi1) (cos phi2)) (cos phi1) (cos phi2) (cos (- lambda1 lambda2)) (- lambda1 lambda2) lambda1 lambda2 R)
4.0ms
lambda1
@inf
((* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2)) (sin phi1) phi1 (sin phi2) phi2 (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) (* (cos phi1) (cos phi2)) (cos phi1) (cos phi2) (cos (- lambda1 lambda2)) (- lambda1 lambda2) lambda1 lambda2 R)
3.0ms
phi1
@-inf
((* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2)) (sin phi1) phi1 (sin phi2) phi2 (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) (* (cos phi1) (cos phi2)) (cos phi1) (cos phi2) (cos (- lambda1 lambda2)) (- lambda1 lambda2) lambda1 lambda2 R)
3.0ms
phi1
@inf
((* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R) (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2)))) (* (sin phi1) (sin phi2)) (sin phi1) phi1 (sin phi2) phi2 (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))) (* (cos phi1) (cos phi2)) (cos phi1) (cos phi2) (cos (- lambda1 lambda2)) (- lambda1 lambda2) lambda1 lambda2 R)

rewrite10.0ms (0.2%)

Memory
13.5MiB live, 13.5MiB allocated; 0ms collecting garbage

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...