In [2]:
%load_ext cythonmagic

In [3]:
def pyfib(n):
    a, b = 1, 1
    for i in xrange(n):
        a, b = a + b, a
    return a

In [5]:
%timeit pyfib(5)


1000000 loops, best of 3: 505 ns per loop

In [10]:
%%cython

def fib(int n):
    cdef int a, b, i

    a, b = 1, 1
    for i in xrange(n):
        a, b = a + b, a
    return a

In [14]:
%timeit fib(5)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-59826eff3219> in <module>()
----> 1 get_ipython().magic(u"timeit fib('jhkjhkjh')")

/Users/wkerzend/anaconda3/envs/default-science/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in magic(self, arg_s)
   2203         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2204         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2205         return self.run_line_magic(magic_name, magic_arg_s)
   2206 
   2207     #-------------------------------------------------------------------------

/Users/wkerzend/anaconda3/envs/default-science/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in run_line_magic(self, magic_name, line)
   2124                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2125             with self.builtin_trap:
-> 2126                 result = fn(*args,**kwargs)
   2127             return result
   2128 

/Users/wkerzend/anaconda3/envs/default-science/lib/python2.7/site-packages/IPython/core/magics/execution.pyc in timeit(self, line, cell)

/Users/wkerzend/anaconda3/envs/default-science/lib/python2.7/site-packages/IPython/core/magic.pyc in <lambda>(f, *a, **k)
    191     # but it's overkill for just that one bit of state.
    192     def magic_deco(arg):
--> 193         call = lambda f, *a, **k: f(*a, **k)
    194 
    195         if callable(arg):

/Users/wkerzend/anaconda3/envs/default-science/lib/python2.7/site-packages/IPython/core/magics/execution.pyc in timeit(self, line, cell)
   1011             number = 1
   1012             for _ in range(1, 10):
-> 1013                 if timer.timeit(number) >= 0.2:
   1014                     break
   1015                 number *= 10

/Users/wkerzend/anaconda3/envs/default-science/lib/python2.7/timeit.pyc in timeit(self, number)
    193         gc.disable()
    194         try:
--> 195             timing = self.inner(it, self.timer)
    196         finally:
    197             if gcold:

<magic-timeit> in inner(_it, _timer)

/Users/wkerzend/.ipython/cython/_cython_magic_dfe9990e345a5ec5d1dec77b0e0afdae.so in _cython_magic_dfe9990e345a5ec5d1dec77b0e0afdae.fib (/Users/wkerzend/.ipython/cython/_cython_magic_dfe9990e345a5ec5d1dec77b0e0afdae.c:619)()

TypeError: an integer is required

In [12]:
a = int(5)
a = float(5)

In [ ]: