Jmat.Real.lambertw, newton loop step

Time bar (total: 2.9s)

start0.0ms (0%)

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

analyze103.0ms (3.5%)

Memory
0.5MiB live, 140.3MiB allocated; 19ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
50%50%50%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
50%50%50%0.1%0%0%0%5
62.5%62.4%37.5%0.1%0%0%0%6
62.5%62.4%37.5%0.1%0%0%0%7
68.8%68.7%31.2%0.1%0%0%0%8
68.8%68.7%31.2%0.1%0%0%0%9
71.9%71.8%28.1%0.1%0%0%0%10
71.9%71.8%28.1%0.1%0%0%0%11
73.4%73.4%26.5%0.1%0%0%0%12
Compiler

Compiled 18 to 10 computations (44.4% saved)

sample2.5s (85.4%)

Memory
23.7MiB live, 2 663.4MiB allocated; 1.1s collecting garbage
Samples
863.0ms7 504×0exit
555.0ms6 407×0valid
378.0ms1 849×1valid
Precisions
Click to see histograms. Total time spent on operations: 952.0ms
ival-exp: 298.0ms (31.3% of total)
ival-sub: 214.0ms (22.5% of total)
ival-mult: 144.0ms (15.1% of total)
ival-div: 119.0ms (12.5% of total)
adjust: 86.0ms (9% of total)
ival-add: 85.0ms (8.9% of total)
ival-assert: 6.0ms (0.6% of total)
Bogosity

explain138.0ms (4.7%)

Memory
8.4MiB live, 197.0MiB allocated; 19ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
580-0-(-.f64 wj (/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))))
10-0-(/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj))))
00-0-(-.f64 (*.f64 wj (exp.f64 wj)) x)
00-0-(+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))
00-0-(*.f64 wj (exp.f64 wj))
00-0-(exp.f64 wj)
00-0-wj
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 wj (/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))))cancellation580
/.f64(/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj))))o/o10
(*.f64 wj (exp.f64 wj))overflow1
(-.f64 (*.f64 wj (exp.f64 wj)) x)overflow1
(exp.f64 wj)overflow1
(*.f64 wj (exp.f64 wj))overflow1
(+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))overflow1
(exp.f64 wj)overflow2
Confusion
Predicted +Predicted -
+594
-0193
Precision
1.0
Recall
0.9365079365079365
Confusion?
Predicted +Predicted MaybePredicted -
+5904
-00193
Precision?
1.0
Recall?
0.9365079365079365
Freqs
test
numberfreq
0197
159
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
30.0ms406×0valid
19.0ms106×1valid
Compiler

Compiled 122 to 28 computations (77% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-exp: 7.0ms (22.1% of total)
ival-sub: 6.0ms (18.9% of total)
ival-div: 5.0ms (15.8% of total)
ival-mult: 5.0ms (15.8% of total)
adjust: 4.0ms (12.6% of total)
ival-add: 3.0ms (9.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess63.0ms (2.2%)

Memory
-34.7MiB live, 64.5MiB allocated; 32ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
030104
177104
2290100
3119280
4667880
01116
01516
01516
Stop Event
saturated
saturated
iter limit
node limit
Calls
Call 1
Inputs
(-.f64 wj (/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))))
Outputs
(-.f64 wj (/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))))
Compiler

Compiled 16 to 8 computations (50% saved)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
79.2%
(-.f64 wj (/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))))
Compiler

Compiled 16 to 8 computations (50% saved)

series11.0ms (0.4%)

Memory
15.8MiB live, 15.8MiB allocated; 0ms collecting garbage
Counts
8 → 61
Calls
Call 1
Inputs
(-.f64 wj (/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))))
wj
(/.f64 (-.f64 (*.f64 wj (exp.f64 wj)) x) (+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj))))
(-.f64 (*.f64 wj (exp.f64 wj)) x)
(*.f64 wj (exp.f64 wj))
(exp.f64 wj)
x
(+.f64 (exp.f64 wj) (*.f64 wj (exp.f64 wj)))
Outputs
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 x))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (+ x (* -2 (* wj x)))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (+ x (* wj (- (* wj (- 1 (+ (* -4 x) (* 3/2 x)))) (* 2 x))))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (+ x (* wj (- (* wj (- (+ 1 (* -1 (* wj (+ 1 (+ (* -3 x) (+ (* -2 (+ (* -4 x) (* 3/2 x))) (* 2/3 x))))))) (+ (* -4 x) (* 3/2 x)))) (* 2 x))))))
#s(approx wj #s(hole binary64 wj))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (* -1 x)))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (+ (* -1 x) (* wj (- 1 (* -2 x))))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (+ (* -1 x) (* wj (- (+ 1 (* wj (- 1 (+ (* -3/2 x) (* 2 (- 1 (* -2 x))))))) (* -2 x))))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (+ (* -1 x) (* wj (- (+ 1 (* wj (- (+ 1 (* wj (- 1/2 (+ (* -2/3 x) (+ (* 3/2 (- 1 (* -2 x))) (* 2 (- 1 (+ (* -3/2 x) (* 2 (- 1 (* -2 x))))))))))) (+ (* -3/2 x) (* 2 (- 1 (* -2 x))))))) (* -2 x))))))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (* -1 x)))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (- wj x)))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (- (* wj (+ 1 wj)) x)))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (- (* wj (+ 1 (* wj (+ 1 (* 1/2 wj))))) x)))
#s(approx (* wj (exp wj)) #s(hole binary64 wj))
#s(approx (* wj (exp wj)) #s(hole binary64 (* wj (+ 1 wj))))
#s(approx (* wj (exp wj)) #s(hole binary64 (* wj (+ 1 (* wj (+ 1 (* 1/2 wj)))))))
#s(approx (* wj (exp wj)) #s(hole binary64 (* wj (+ 1 (* wj (+ 1 (* wj (+ 1/2 (* 1/6 wj)))))))))
#s(approx (exp wj) #s(hole binary64 1))
#s(approx (exp wj) #s(hole binary64 (+ 1 wj)))
#s(approx (exp wj) #s(hole binary64 (+ 1 (* wj (+ 1 (* 1/2 wj))))))
#s(approx (exp wj) #s(hole binary64 (+ 1 (* wj (+ 1 (* wj (+ 1/2 (* 1/6 wj))))))))
#s(approx (+ (exp wj) (* wj (exp wj))) #s(hole binary64 1))
#s(approx (+ (exp wj) (* wj (exp wj))) #s(hole binary64 (+ 1 (* 2 wj))))
#s(approx (+ (exp wj) (* wj (exp wj))) #s(hole binary64 (+ 1 (* wj (+ 2 (* 3/2 wj))))))
#s(approx (+ (exp wj) (* wj (exp wj))) #s(hole binary64 (+ 1 (* wj (+ 2 (* wj (+ 3/2 (* 2/3 wj))))))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 wj))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* wj (- 1 (/ 1 wj)))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* wj (- (+ 1 (+ (/ 1 (pow wj 2)) (/ x (* (pow wj 2) (exp wj))))) (/ 1 wj)))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* wj (- (+ 1 (+ (* -1 (/ (+ 1 (/ x (exp wj))) (pow wj 3))) (+ (/ 1 (pow wj 2)) (/ x (* (pow wj 2) (exp wj)))))) (/ 1 wj)))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 1))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (- (+ 1 (* -1 (/ x (* wj (exp wj))))) (/ 1 wj))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (- (+ 1 (+ (* -1 (/ x (* wj (exp wj)))) (/ 1 (pow wj 2)))) (+ (* -1 (/ x (* (pow wj 2) (exp wj)))) (/ 1 wj)))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (- (+ 1 (+ (* -1 (/ x (* wj (exp wj)))) (+ (* -1 (/ x (* (pow wj 3) (exp wj)))) (/ 1 (pow wj 2))))) (+ (* -1 (/ x (* (pow wj 2) (exp wj)))) (+ (/ 1 wj) (/ 1 (pow wj 3)))))))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (* wj (exp wj))))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (* wj (+ (exp wj) (* -1 (/ x wj))))))
#s(approx (* wj (exp wj)) #s(hole binary64 (* wj (exp wj))))
#s(approx (exp wj) #s(hole binary64 (exp wj)))
#s(approx (+ (exp wj) (* wj (exp wj))) #s(hole binary64 (* wj (exp wj))))
#s(approx (+ (exp wj) (* wj (exp wj))) #s(hole binary64 (* wj (+ (exp wj) (/ (exp wj) wj)))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* -1 (* wj (- (/ 1 wj) 1)))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* -1 (* wj (- (* -1 (/ (- (* -1 (/ (- (* -1 (/ x (exp wj))) 1) wj)) 1) wj)) 1)))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* -1 (* wj (- (* -1 (/ (- (* -1 (/ (- (+ (* -1 (/ x (exp wj))) (+ (/ 1 wj) (/ x (* wj (exp wj))))) 1) wj)) 1) wj)) 1)))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (+ 1 (* -1 (/ (+ 1 (/ x (exp wj))) wj)))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (+ 1 (* -1 (/ (+ 1 (+ (* -1 (/ (+ 1 (/ x (exp wj))) wj)) (/ x (exp wj)))) wj)))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (+ 1 (* -1 (/ (+ 1 (+ (* -1 (/ (- (* -1 (/ (+ 1 (/ x (exp wj))) wj)) (* -1 (+ 1 (/ x (exp wj))))) wj)) (/ x (exp wj)))) wj)))))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (* -1 (* wj (+ (* -1 (exp wj)) (/ x wj))))))
#s(approx (+ (exp wj) (* wj (exp wj))) #s(hole binary64 (* -1 (* wj (+ (* -1 (exp wj)) (* -1 (/ (exp wj) wj)))))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (- wj (/ (* wj (exp wj)) (+ (exp wj) (* wj (exp wj)))))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (- (+ wj (/ x (+ (exp wj) (* wj (exp wj))))) (/ (* wj (exp wj)) (+ (exp wj) (* wj (exp wj)))))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (/ (* wj (exp wj)) (+ (exp wj) (* wj (exp wj))))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (+ (* -1 (/ x (+ (exp wj) (* wj (exp wj))))) (/ (* wj (exp wj)) (+ (exp wj) (* wj (exp wj)))))))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (+ (* -1 x) (* wj (exp wj)))))
#s(approx x #s(hole binary64 x))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (/ x (+ (exp wj) (* wj (exp wj))))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* x (- (+ (/ 1 (+ (exp wj) (* wj (exp wj)))) (/ wj x)) (/ (* wj (exp wj)) (* x (+ (exp wj) (* wj (exp wj)))))))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (* -1 (/ x (+ (exp wj) (* wj (exp wj)))))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (* x (- (/ (* wj (exp wj)) (* x (+ (exp wj) (* wj (exp wj))))) (/ 1 (+ (exp wj) (* wj (exp wj))))))))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (* x (- (/ (* wj (exp wj)) x) 1))))
#s(approx (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) #s(hole binary64 (* -1 (* x (- (* -1 (/ (- wj (/ (* wj (exp wj)) (+ (exp wj) (* wj (exp wj))))) x)) (/ 1 (+ (exp wj) (* wj (exp wj)))))))))
#s(approx (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) #s(hole binary64 (* -1 (* x (+ (* -1 (/ (* wj (exp wj)) (* x (+ (exp wj) (* wj (exp wj)))))) (/ 1 (+ (exp wj) (* wj (exp wj)))))))))
#s(approx (- (* wj (exp wj)) x) #s(hole binary64 (* -1 (* x (+ 1 (* -1 (/ (* wj (exp wj)) x)))))))
Calls

6 calls:

TimeVariablePointExpression
2.0ms
wj
@-inf
((- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) (- (* wj (exp wj)) x) (* wj (exp wj)) (exp wj) x (+ (exp wj) (* wj (exp wj))))
2.0ms
wj
@inf
((- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) (- (* wj (exp wj)) x) (* wj (exp wj)) (exp wj) x (+ (exp wj) (* wj (exp wj))))
2.0ms
wj
@0
((- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) (- (* wj (exp wj)) x) (* wj (exp wj)) (exp wj) x (+ (exp wj) (* wj (exp wj))))
1.0ms
x
@inf
((- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) (- (* wj (exp wj)) x) (* wj (exp wj)) (exp wj) x (+ (exp wj) (* wj (exp wj))))
1.0ms
x
@0
((- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) (- (* wj (exp wj)) x) (* wj (exp wj)) (exp wj) x (+ (exp wj) (* wj (exp wj))))

rewrite111.0ms (3.8%)

Memory
-19.0MiB live, 70.3MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03551731
14791729
24801723
34821723
44841723
54851723
64861723
04861723
04861713
15771711
26531709
37231709
47751709
58071709
68301709
78471709
88581709
98661709
108801709
118911709
128951709
Stop Event
saturated
node limit
saturated

end0.0ms (0%)

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

Profiling

Loading profile data...