Details

Time bar (total: 7.5s)

analyze584.0ms (7.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
23.4%51.5%25.1%7
24.2%50.7%25.1%8
24.6%50.3%25.1%9
36.9%25.5%37.6%10
37.2%25.3%37.6%11
37.3%25.1%37.6%12
43.5%12.7%43.8%13
43.6%12.6%43.8%14
Compiler

Compiled 32 to 21 computations (34.4% saved)

sample46.0ms (0.6%)

Algorithm
intervals
Results
25.0ms256×body128valid
2.0ms21×body128nan
Compiler

Compiled 66 to 44 computations (33.3% saved)

simplify115.0ms (1.5%)

Algorithm
egg-herbie
Rules
620×associate-/l/_binary64
557×cube-prod_binary64
533×sqr-pow_binary64
519×cube-div_binary64
502×pow-sqr_binary64
Counts
1 → 1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01932
12429
22729
33822
45519
55819
616919
746619
866819
973819
10113219
11142219
12224019
13337019
14392419
15439419
16498619
17497519

prune9.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
29.6b
Counts
2 → 2
Alt Table
StatusErrorProgram
29.7b
(/.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) (*.f64 (atan2.f64 im re) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
29.6b
(/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base))
Compiler

Compiled 107 to 70 computations (34.6% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.0b
(+.f64 (*.f64 re re) (*.f64 im im))
0.4b
(/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base))
27.5b
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))

rewrite110.0ms (1.5%)

Algorithm
rewrite-expression-head
Error
29.4b
Rules
24×times-frac_binary64
22×log-pow_binary64
21×pow1_binary64
17×add-sqr-sqrt_binary64
16×add-cube-cbrt_binary64 *-un-lft-identity_binary64
Counts
3 → 74
Calls

3 calls:

7.0ms
(/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base))
4.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
4.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 1396 to 277 computations (80.2% saved)

series166.0ms (2.2%)

Error
0.3b
Counts
3 → 45
Calls

3 calls:

76.0ms
(/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base))
40.0ms
(sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))
25.0ms
(+.f64 (*.f64 re re) (*.f64 im im))
Compiler

Compiled 1672 to 1245 computations (25.5% saved)

simplify182.0ms (2.4%)

Algorithm
egg-herbie
Rules
477×unswap-sqr_binary64
301×distribute-neg-frac_binary64
291×times-frac_binary64
276×associate-*r*_binary64
271×associate-*l*_binary64
Counts
119 → 71
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01802540
13912410
29842398
334442398
448762398
549822398
649922398
749292398

prune51.0ms (0.7%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New64771
Fresh011
Picked101
Done000
Total65873
Error
1.2b
Counts
73 → 8
Alt Table
StatusErrorProgram
29.7b
(/.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) (*.f64 (atan2.f64 im re) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
30.1b
(*.f64 (*.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))) (/.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
62.3b
(/.f64 (log.f64 re) (log.f64 base))
28.7b
(/.f64 (log.f64 (neg.f64 re)) (log.f64 base))
34.4b
(/.f64 (log.f64 (+.f64 im (*.f64 1/2 (/.f64 (*.f64 re re) im)))) (log.f64 base))
53.3b
(-.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)))) (log.f64 base)) (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (*.f64 (*.f64 re re) (*.f64 im im)))))) (log.f64 base)))
44.9b
(*.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (/.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
29.8b
(cbrt.f64 (pow.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) 3))
Compiler

Compiled 1067 to 491 computations (54% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

0.3b
(/.f64 (log.f64 (neg.f64 re)) (log.f64 base))

rewrite29.0ms (0.4%)

Algorithm
rewrite-expression-head
Error
1.1b
Rules
16×times-frac_binary64
11×pow1_binary64 add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
10×log-pow_binary64
associate-/l*_binary64 associate-/r*_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
Counts
1 → 36
Calls

1 calls:

5.0ms
(/.f64 (log.f64 (neg.f64 re)) (log.f64 base))
Compiler

Compiled 370 to 89 computations (75.9% saved)

series48.0ms (0.6%)

Error
1.2b
Counts
1 → 6
Calls

1 calls:

45.0ms
(/.f64 (log.f64 (neg.f64 re)) (log.f64 base))
Compiler

Compiled 201 to 158 computations (21.4% saved)

simplify76.0ms (1%)

Algorithm
egg-herbie
Rules
587×neg-sub0_binary64
554×neg-mul-1_binary64
512×distribute-lft-neg-out_binary64
494×unsub-neg_binary64
460×distribute-frac-neg_binary64
Counts
42 → 20
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
074745
1132676
2255676
3588676
42344675
53572675
64930675

prune24.0ms (0.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New17320
Fresh077
Picked011
Done000
Total171128
Error
1.2b
Counts
28 → 11
Alt Table
StatusErrorProgram
28.8b
(log.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base))))
29.7b
(/.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) (*.f64 (atan2.f64 im re) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
30.1b
(*.f64 (*.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))) (/.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
62.3b
(/.f64 (log.f64 re) (log.f64 base))
28.7b
(/.f64 (log.f64 (neg.f64 re)) (log.f64 base))
29.2b
(*.f64 (*.f64 (cbrt.f64 (log.f64 (neg.f64 re))) (cbrt.f64 (log.f64 (neg.f64 re)))) (/.f64 (cbrt.f64 (log.f64 (neg.f64 re))) (log.f64 base)))
34.4b
(/.f64 (log.f64 (+.f64 im (*.f64 1/2 (/.f64 (*.f64 re re) im)))) (log.f64 base))
53.3b
(-.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)))) (log.f64 base)) (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (*.f64 (*.f64 re re) (*.f64 im im)))))) (log.f64 base)))
38.7b
(*.f64 (sqrt.f64 (log.f64 (neg.f64 re))) (/.f64 (sqrt.f64 (log.f64 (neg.f64 re))) (log.f64 base)))
44.9b
(*.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (/.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
29.8b
(cbrt.f64 (pow.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) 3))
Compiler

Compiled 538 to 302 computations (43.9% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.3b
(/.f64 1 (log.f64 base))
0.3b
(log.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base))))
0.4b
(pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base)))

rewrite92.0ms (1.2%)

Algorithm
rewrite-expression-head
Error
1.1b
Rules
27×add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
24×times-frac_binary64
20×unpow-prod-down_binary64
16×pow-unpow_binary64
14×log-prod_binary64
Counts
3 → 97
Calls

3 calls:

5.0ms
(pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base)))
3.0ms
(log.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base))))
3.0ms
(/.f64 1 (log.f64 base))
Compiler

Compiled 1288 to 718 computations (44.3% saved)

series142.0ms (1.9%)

Error
1.2b
Counts
3 → 15
Calls

3 calls:

68.0ms
(log.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base))))
48.0ms
(pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base)))
18.0ms
(/.f64 1 (log.f64 base))
Compiler

Compiled 516 to 427 computations (17.2% saved)

simplify136.0ms (1.8%)

Algorithm
egg-herbie
Rules
703×distribute-rgt-in_binary64
435×log-prod_binary64
188×log-pow_binary64
170×unswap-sqr_binary64
167×times-frac_binary64
Counts
112 → 80
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01341616
12561458
25681392
316691380
444801380
549221380
649971380

prune49.0ms (0.7%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New76480
Fresh099
Picked101
Done011
Total771491
Error
1.1b
Counts
91 → 14
Alt Table
StatusErrorProgram
29.7b
(/.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) (*.f64 (atan2.f64 im re) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
29.2b
(log.f64 (pow.f64 (pow.f64 (neg.f64 re) (/.f64 1 (*.f64 (cbrt.f64 (log.f64 base)) (cbrt.f64 (log.f64 base))))) (/.f64 (cbrt.f64 1) (cbrt.f64 (log.f64 base)))))
30.1b
(*.f64 (*.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))) (/.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
29.4b
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base)))))) (log.f64 (cbrt.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base))))))
62.3b
(/.f64 (log.f64 re) (log.f64 base))
28.7b
(/.f64 (log.f64 (neg.f64 re)) (log.f64 base))
29.0b
(log.f64 (pow.f64 (neg.f64 re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3))))
28.8b
(+.f64 (*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base))) (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))
29.2b
(*.f64 (*.f64 (cbrt.f64 (log.f64 (neg.f64 re))) (cbrt.f64 (log.f64 (neg.f64 re)))) (/.f64 (cbrt.f64 (log.f64 (neg.f64 re))) (log.f64 base)))
34.4b
(/.f64 (log.f64 (+.f64 im (*.f64 1/2 (/.f64 (*.f64 re re) im)))) (log.f64 base))
53.3b
(-.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)))) (log.f64 base)) (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (*.f64 (*.f64 re re) (*.f64 im im)))))) (log.f64 base)))
38.7b
(*.f64 (sqrt.f64 (log.f64 (neg.f64 re))) (/.f64 (sqrt.f64 (log.f64 (neg.f64 re))) (log.f64 base)))
44.9b
(*.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (/.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
29.8b
(cbrt.f64 (pow.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) 3))
Compiler

Compiled 1076 to 582 computations (45.9% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.3b
(+.f64 (*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base))) (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))
0.3b
(*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base)))
0.6b
(cbrt.f64 (neg.f64 re))
0.6b
(cbrt.f64 (neg.f64 re))

rewrite94.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
1.1b
Rules
24×add-sqr-sqrt_binary64
20×cbrt-prod_binary64
19×add-cube-cbrt_binary64 *-un-lft-identity_binary64
16×associate-*r*_binary64
13×times-frac_binary64
Counts
4 → 86
Calls

4 calls:

10.0ms
(+.f64 (*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base))) (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))
8.0ms
(*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base)))
2.0ms
(cbrt.f64 (neg.f64 re))
1.0ms
(cbrt.f64 (neg.f64 re))
Compiler

Compiled 1978 to 646 computations (67.3% saved)

series225.0ms (3%)

Error
1.1b
Counts
4 → 18
Calls

4 calls:

91.0ms
(*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base)))
88.0ms
(+.f64 (*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base))) (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))
18.0ms
(cbrt.f64 (neg.f64 re))
17.0ms
(cbrt.f64 (neg.f64 re))
Compiler

Compiled 973 to 752 computations (22.7% saved)

simplify119.0ms (1.6%)

Algorithm
egg-herbie
Rules
441×associate-/l/_binary64
377×associate-*l*_binary64
359×associate-/r/_binary64
291×associate-*r*_binary64
238×associate-*r/_binary64
Counts
104 → 69
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01571859
13611751
29821676
329191463
447591463
549081463

prune52.0ms (0.7%)

Pruning

16 alts after pruning (14 fresh and 2 done)

PrunedKeptTotal
New66369
Fresh11112
Picked011
Done011
Total671683
Error
1.1b
Counts
83 → 16
Alt Table
StatusErrorProgram
46.3b
(exp.f64 (log.f64 (*.f64 3 (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))))
29.1b
(+.f64 (*.f64 (*.f64 (cbrt.f64 (log.f64 (cbrt.f64 (neg.f64 re)))) (cbrt.f64 (log.f64 (cbrt.f64 (neg.f64 re))))) (*.f64 (/.f64 2 (log.f64 base)) (cbrt.f64 (log.f64 (cbrt.f64 (neg.f64 re)))))) (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))
29.2b
(*.f64 (*.f64 (cbrt.f64 (*.f64 3 (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))) (cbrt.f64 (*.f64 3 (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base))))) (cbrt.f64 (*.f64 3 (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))))
29.7b
(/.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) (*.f64 (atan2.f64 im re) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
30.1b
(*.f64 (*.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))))) (/.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
29.4b
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base)))))) (log.f64 (cbrt.f64 (pow.f64 (neg.f64 re) (/.f64 1 (log.f64 base))))))
62.3b
(/.f64 (log.f64 re) (log.f64 base))
28.7b
(/.f64 (log.f64 (neg.f64 re)) (log.f64 base))
29.0b
(log.f64 (pow.f64 (neg.f64 re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3))))
28.8b
(+.f64 (*.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (/.f64 2 (log.f64 base))) (/.f64 (log.f64 (cbrt.f64 (neg.f64 re))) (log.f64 base)))
29.2b
(*.f64 (*.f64 (cbrt.f64 (log.f64 (neg.f64 re))) (cbrt.f64 (log.f64 (neg.f64 re)))) (/.f64 (cbrt.f64 (log.f64 (neg.f64 re))) (log.f64 base)))
34.4b
(/.f64 (log.f64 (+.f64 im (*.f64 1/2 (/.f64 (*.f64 re re) im)))) (log.f64 base))
53.3b
(-.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 6) (pow.f64 im 6)))) (log.f64 base)) (/.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 re 4) (-.f64 (pow.f64 im 4) (*.f64 (*.f64 re re) (*.f64 im im)))))) (log.f64 base)))
38.7b
(*.f64 (sqrt.f64 (log.f64 (neg.f64 re))) (/.f64 (sqrt.f64 (log.f64 (neg.f64 re))) (log.f64 base)))
44.9b
(*.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (/.f64 (sqrt.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))))) (log.f64 base)))
29.8b
(cbrt.f64 (pow.f64 (/.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) (log.f64 base)) 3))
Compiler

Compiled 1242 to 550 computations (55.7% saved)

regimes3.0s (40.3%)

Accuracy

Total 5.3b remaining (73.1%)

Threshold costs 0b (0%)

Compiler

Compiled 15016 to 9096 computations (39.4% saved)

bsearch260.0ms (3.5%)

Steps
ItersRangePoint
9
2.1857696287529643e+70
7.173642177077171e+79
1.2659745474754468e+79
5
9.999706440674206e-161
2.6813519837703257e-160
1.0164079588744982e-160
8
1.6412678326708672e-197
4.367053878847078e-194
1.670968222443666e-197
Compiler

Compiled 4 to 3 computations (25% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
neg-sub0_binary64 sub-neg_binary64
neg-mul-1_binary64
1-exp_binary64 mul-1-neg_binary64 distribute-neg-frac_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03884
14784
25284
35684
45984
56084
65984

end10.0ms (0.1%)

Compiler

Compiled 168 to 105 computations (37.5% saved)

sample1.8s (24%)

Algorithm
intervals
Results
823.0ms8000×body128valid
95.0ms992×body128nan
Compiler

Compiled 449 to 273 computations (39.2% saved)

Profiling

Loading profile data...