1 | initial version |

I can not reproduce your problem with ipython `%timeit`

nor sage `timeit`

:

```
sage: import numpy as np
sage: N = 768
sage: P = 1024
sage: A = np.random.random((P, N))
sage: %timeit A.T.dot(A)
10 loops, best of 3: 90.8 ms per loop
sage: timeit('A.T.dot(A)')
5 loops, best of 3: 90.2 ms per loop
```

I do not know the details of Python `timeit.repeat`

, but it seems that `number=10`

cumulates the time of 10 runs. If you try with `number=1`

, you get about 100ms as expected:

```
sage: import timeit
sage: setup = """
...
... import numpy as np
...
... N = 768
... P = 1024
...
... A = np.random.random((P, N))
... """
sage: timeit.repeat('A.T.dot(A)', setup=setup, number=1, repeat=3)
[0.0931999683380127, 0.08932089805603027, 0.09101414680480957]
```

2 | No.2 Revision |

For what it worth, I can not reproduce your problem within Sage, neither with ipython `%timeit`

nor sage `timeit`

:

```
sage: import numpy as np
sage: N = 768
sage: P = 1024
sage: A = np.random.random((P, N))
sage: %timeit A.T.dot(A)
10 loops, best of 3: 90.8 ms per loop
sage: timeit('A.T.dot(A)')
5 loops, best of 3: 90.2 ms per loop
```

I do not know the details of Python `timeit.repeat`

, but it seems that `number=10`

cumulates the time of 10 runs. If ~~you ~~i try with `number=1`

, ~~you ~~i also get about 100ms as expected:

```
sage: import timeit
sage: setup = """
...
... import numpy as np
...
... N = 768
... P = 1024
...
... A = np.random.random((P, N))
... """
sage: timeit.repeat('A.T.dot(A)', setup=setup, number=1, repeat=3)
[0.0931999683380127, 0.08932089805603027, 0.09101414680480957]
```

3 | No.3 Revision |

For what it worth, I can not reproduce your problem within Sage, neither with ipython `%timeit`

nor sage `timeit`

:

```
sage: import numpy as np
sage: N = 768
sage: P = 1024
sage: A = np.random.random((P, N))
sage: %timeit A.T.dot(A)
10 loops, best of 3: 90.8 ms per loop
sage: timeit('A.T.dot(A)')
5 loops, best of 3: 90.2 ms per loop
```

I do not know the details of Python `timeit.repeat`

, but it seems that `number=10`

cumulates the time of 10 runs. If i try with `number=1`

, i also get about 100ms as expected:

```
sage: import timeit
sage: setup = """
...
... import numpy as np
...
... N = 768
... P = 1024
...
... A = np.random.random((P, N))
... """
sage: timeit.repeat('A.T.dot(A)', setup=setup, number=1, repeat=3)
[0.0931999683380127, 0.08932089805603027, 0.09101414680480957]
```

Note that i did not compile ATLAS specifically for my hardware since i am using `SAGE_ATLAS_ARCH='fast'`

preselected configuration.

4 | No.4 Revision |

For what it worth, I can not reproduce your problem within Sage, neither with ipython `%timeit`

nor sage `timeit`

:

```
sage: import numpy as np
sage: N = 768
sage: P = 1024
sage: A = np.random.random((P, N))
sage: %timeit A.T.dot(A)
10 loops, best of 3: 90.8 ms per loop
sage: timeit('A.T.dot(A)')
5 loops, best of 3: 90.2 ms per loop
```

I do not know the details of Python `timeit.repeat`

, but it seems that `number=10`

cumulates the time of 10 runs. If i try with `number=1`

, i also get about 100ms as expected:

```
sage: import timeit
sage: setup = """
...
... import numpy as np
...
... N = 768
... P = 1024
...
... A = np.random.random((P, N))
... """
sage: timeit.repeat('A.T.dot(A)', setup=setup, number=1, repeat=3)
[0.0931999683380127, 0.08932089805603027, 0.09101414680480957]
```

Note that i did not compile ATLAS specifically for my hardware since i am using `SAGE_ATLAS_ARCH='fast'`

preselected ~~configuration.~~configuration. Which version of Sage are you using ? Which binaries did you use ? Which hardware ? Which distribution ?

5 | No.5 Revision |

`%timeit`

nor sage `timeit`

:

```
sage: import numpy as np
sage: N = 768
sage: P = 1024
sage: A = np.random.random((P, N))
sage: %timeit A.T.dot(A)
10 loops, best of 3: 90.8 ms per loop
sage: timeit('A.T.dot(A)')
5 loops, best of 3: 90.2 ms per loop
```

I do not know the details of Python `timeit.repeat`

, but it seems that `number=10`

cumulates the time of 10 runs. If i try with `number=1`

, i also get about 100ms as expected:

```
sage: import timeit
sage: setup = """
...
... import numpy as np
...
... N = 768
... P = 1024
...
... A = np.random.random((P, N))
... """
sage: timeit.repeat('A.T.dot(A)', setup=setup, number=1, repeat=3)
[0.0931999683380127, 0.08932089805603027, 0.09101414680480957]
```

Note that i did not compile ATLAS specifically for my hardware since i am using `SAGE_ATLAS_ARCH='fast'`

preselected configuration. Which version of Sage are you using ? Which binaries did you use ? Which hardware ? Which distribution ?

**EDIT**: i tried on my laptop with a version of Sage that was compiled on Pentium 3 (in particular without SSE2 set of instructions), and the timing is about 380 ms, which is still below your timings.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.