In [2]:
%load_ext autoreload
%autoreload 2

In [3]:
#from tests.benchmark import bench, multitime
import math
import cmath
import pandas as pd

import maths

from operator import mul

from itertools import islice, permutations, count, izip, imap, product, chain
from timeit import timeit

In [4]:
reduce(mul, [5, 5, 5, 5], 1)


Out[4]:
625

In [5]:
I = 100000
cores = 4

In [6]:
# def consume(iterator, n)

for i in izip(islice(count(1), 0, I, cores), 
              islice(count(2), 0, I, cores), 
              islice(count(3), 0, I, cores),
              islice(count(4), 0, I, cores)):
    print i


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-c59ebafffff4> in <module>()
      1 # def consume(iterator, n)
      2 
----> 3 for i in izip(islice(count(1), 0, step=cores), 
      4               islice(count(2), 0, I, cores),
      5               islice(count(3), 0, I, cores),

TypeError: islice() does not take keyword arguments

In [71]:
I = 24
cores = 3

In [72]:
maths.wallis(I, start=1, step=cores)


1
4
7
10
13
16
19
22
Out[72]:
(2.739739077660972, 8)

In [73]:
maths.wallis(I, start=2, step=cores)


2
5
8
11
14
17
20
23
Out[73]:
(2.1748459565635287, 8)

In [74]:
maths.wallis(I, start=3, step=cores)


3
6
9
12
15
18
21
24
Out[74]:
(2.0875692421942644, 8)

In [66]:
maths.wallis(I, start=4, step=cores)


4
8
12
16
20
24
Out[66]:
(2.0474260395742516, 6)

In [67]:
maths.wallis(I, start=5, step=cores)


5
9
13
17
21
Out[67]:
(2.0323679165051667, 5)

In [ ]:


In [39]:
w = maths.wallis

In [103]:
b1 = bench(w, 1000000000)
print b1


N          Time             
1          3.00000010611e-06
10         7.00000009601e-06
100        4.79999998788e-05
1000       0.00048199999992 
10000      0.00482999999986 
100000     0.046296         
1000000    0.456335         
10000000   4.664192         
100000000  57.070909        
1000000000 661.237699       

In [104]:
b1.dataframe


Out[104]:
N Time
0 1 0.000003
1 10 0.000007
2 100 0.000048
3 1000 0.000482
4 10000 0.004830
5 100000 0.046296
6 1000000 0.456335
7 10000000 4.664192
8 100000000 57.070909
9 1000000000 661.237699

In [105]:
derp['Time4'] = b1.dataframe['Time']
derp


Out[105]:
N Time Time2 Time3 Time4
0 1 0.000004 0.000003 0.000003 0.000003
1 10 0.000007 0.000007 0.000007 0.000007
2 100 0.000051 0.000048 0.000049 0.000048
3 1000 0.000501 0.000462 0.000477 0.000482
4 10000 0.004919 0.004637 0.004794 0.004830
5 100000 0.050020 0.056697 0.055029 0.046296
6 1000000 0.499537 0.457915 0.453837 0.456335
7 10000000 4.897193 4.658108 4.623688 4.664192
8 100000000 60.382447 56.979486 56.760514 57.070909
9 1000000000 680.397947 684.515600 661.358465 661.237699

In [106]:
derp['Avg_t'] = (derp['Time'] + derp['Time2'] + derp['Time3'] + derp['Time4'])/4

In [119]:
derp2 = derp.set_index('N')

In [123]:
derp2


Out[123]:
Time Time2 Time3 Time4 Avg_t
N
1 0.000004 0.000003 0.000003 0.000003 0.000003
10 0.000007 0.000007 0.000007 0.000007 0.000007
100 0.000051 0.000048 0.000049 0.000048 0.000049
1000 0.000501 0.000462 0.000477 0.000482 0.000480
10000 0.004919 0.004637 0.004794 0.004830 0.004795
100000 0.050020 0.056697 0.055029 0.046296 0.052010
1000000 0.499537 0.457915 0.453837 0.456335 0.466906
10000000 4.897193 4.658108 4.623688 4.664192 4.710795
100000000 60.382447 56.979486 56.760514 57.070909 57.798339
1000000000 680.397947 684.515600 661.358465 661.237699 671.877428

In [124]:
derp2.to_csv('derp.csv', sep='\t')

In [129]:
pd.read_table('derp.csv', index_col='N')


Out[129]:
Time Time2 Time3 Time4 Avg_t
N
1 0.000004 0.000003 0.000003 0.000003 0.000003
10 0.000007 0.000007 0.000007 0.000007 0.000007
100 0.000051 0.000048 0.000049 0.000048 0.000049
1000 0.000501 0.000462 0.000477 0.000482 0.000480
10000 0.004919 0.004637 0.004794 0.004830 0.004795
100000 0.050020 0.056697 0.055029 0.046296 0.052010
1000000 0.499537 0.457915 0.453837 0.456335 0.466906
10000000 4.897193 4.658108 4.623688 4.664192 4.710795
100000000 60.382447 56.979486 56.760514 57.070909 57.798339
1000000000 680.397947 684.515600 661.358465 661.237699 671.877428

In [ ]:


In [155]:
ggg = multitime(w, 100000, 5)


0    0.000003
1    0.000008
2    0.000049
3    0.000479
4    0.004836
5    0.052452
Name: Time, dtype: float64
            Time     Time2
N                         
1       0.000004  0.000008
10      0.000009       NaN
100     0.000059       NaN
1000    0.000578       NaN
10000   0.005949       NaN
100000  0.069353       NaN
0    0.000003
1    0.000010
2    0.000067
3    0.000653
4    0.006835
5    0.050688
Name: Time, dtype: float64
            Time     Time2    Time3
N                                  
1       0.000004  0.000008  0.00001
10      0.000009       NaN      NaN
100     0.000059       NaN      NaN
1000    0.000578       NaN      NaN
10000   0.005949       NaN      NaN
100000  0.069353       NaN      NaN
0    0.000007
1    0.000053
2    0.000083
3    0.000736
4    0.005931
5    0.049711
Name: Time, dtype: float64
            Time     Time2    Time3     Time4
N                                            
1       0.000004  0.000008  0.00001  0.000053
10      0.000009       NaN      NaN       NaN
100     0.000059       NaN      NaN       NaN
1000    0.000578       NaN      NaN       NaN
10000   0.005949       NaN      NaN       NaN
100000  0.069353       NaN      NaN       NaN
0    0.000003
1    0.000008
2    0.000049
3    0.000478
4    0.004811
5    0.048802
Name: Time, dtype: float64
            Time     Time2    Time3     Time4     Time5
N                                                      
1       0.000004  0.000008  0.00001  0.000053  0.000008
10      0.000009       NaN      NaN       NaN       NaN
100     0.000059       NaN      NaN       NaN       NaN
1000    0.000578       NaN      NaN       NaN       NaN
10000   0.005949       NaN      NaN       NaN       NaN
100000  0.069353       NaN      NaN       NaN       NaN

In [151]:
ggg


Out[151]:
Time Time2 Time3 Time4 Time5
N
1 0.000004 0.000008 0.000007 0.000007 0.000007
10 0.000009 NaN NaN NaN NaN
100 0.000056 NaN NaN NaN NaN
1000 0.000546 NaN NaN NaN NaN
10000 0.005488 NaN NaN NaN NaN
100000 0.062611 NaN NaN NaN NaN

In [147]:
for i in ggg:
    print i


Time
Time2
Time3
Time4
Time5

In [141]:
ggg.mean()


Out[141]:
Time     0.015049
Time2    0.000008
Time3    0.000008
Time4    0.000007
Time5    0.000007
dtype: float64

In [69]:
buildsetof_N(3753475)


Out[69]:
[3753480, 375348, 37534, 3753, 375, 37, 3]

In [23]:
buildsetof_N(10000000000)


Out[23]:
[10000000000,
 1000000000,
 100000000,
 10000000,
 1000000,
 100000,
 10000,
 1000,
 100,
 10,
 1]

In [51]:
b1 = bench(w, 1)
print b1
b1 = bench(w, 1)
print b1
b1 = bench(w, 1)
print b1


[[2.6999999988674972e-05, 7.000000010748408e-06], [10, 1]]
[[2.2999999998774e-05, 7.000000010748408e-06], [10, 1]]
[[2.2999999998774e-05, 8.000000008223651e-06], [10, 1]]

In [ ]: