On Tue, Feb 14, 2012 at 9:14 AM, Pierre <pierre.guil...@gmail.com> wrote:
> oh and a related question -- been wondering about this for a while :
> if i put all this in a foo.spyx file, i usually do "load foo.spyx". It
> works, but compiles every time! how do you just load the compiled
> version?
> and what about import it like a module, using
> foo.function() ?

You can do all that -- it just costs you about 2 hours of background
education and practice. You have to use a .pyx file, probably a
setup.py file, and follow the standard instructions at cython.org:

   http://docs.cython.org/src/quickstart/index.html

 -- William

>


> On 14 fév, 18:11, Pierre <pierre.guil...@gmail.com> wrote:
>> Hey, thanks for all the responses. I use Cython occasionally, but i
>> tend to restrict myself to basic C types and simple functions which do
>> not import anything -- it seems I can learn an awful lot by studying
>> your examples!
>>
>> Can i ask the following questions about Jason's code?
>>
>> ** why so you 'import' CDF while you 'cimport' ComplexDoubleElement?
>> what is the difference?
>>
>> ** and why do these imports anyway, are they necessary for "cdef
>> complex..." to work?
>>
>> ** I didn't know PY_NEW. What is the difference between res=
>> PY_NEW(Matrix2) and simply res= Matrix2(0,0,0,0) (say) ? and what
>> about using PY_NEW with a class that *requires* parameters to its
>> __init__?
>>
>> ** more generally, is there a Cython tutorial that would be (just)
>> sufficiently advanced to cover such an example?
>>
>> thanks!
>> Pierre
>>
>> On 13 fév, 20:13, William Stein <wst...@gmail.com> wrote:
>>
>>
>>
>>
>>
>>
>>
>> > On Mon, Feb 13, 2012 at 11:07 AM, Jason Grout
>>
>> > <jason-s...@creativetrax.com> wrote:
>> > > On 2/13/12 12:41 PM, William Stein wrote:
>>
>> > >> On Mon, Feb 13, 2012 at 10:29 AM, Robert Bradshaw
>> > >> <rober...@math.washington.edu>  wrote:
>>
>> > >>> On Mon, Feb 13, 2012 at 10:06 AM, William Stein<wst...@gmail.com>  
>> > >>> wrote:
>>
>> > >>>> On Mon, Feb 13, 2012 at 9:59 AM, Pierre<pierre.guil...@gmail.com>
>> > >>>>  wrote:
>>
>> > >>>>> I see. Well I *do* have hundreds of 2x2 matrices to multiply out so
>> > >>>>> i'm better off storing them as numpy matrices throughout... thanks 
>> > >>>>> for
>> > >>>>> your explanations though.
>>
>> > >>>>> Pierre
>>
>> > >>>> You might consider using Cython and writing a custom 2x2 matrix class.
>> > >>>>  It wouldn't be difficult... so I'll write one right now and respond
>> > >>>> with the benchmarks.
>>
>> > >> Here it is:  http://480.sagenb.org/home/pub/97/
>>
>> > >> I ended up using GSL's complex matrix data type and the BLAS level 3
>> > >> routine to do the multiplication.    I did not add any other
>> > >> convenience functions to the class, so some more will probably be
>> > >> needed for your application.
>>
>> > > I'm curious why you didn't just store the 4 complex numbers in C.
>>
>> > I was concerned about "numerical stability" and figured BLAS would
>> > deal with that.  But maybe that doesn't matter.
>>
>> > Most importantly, I forgot about Cython's complex type, which I now
>> > remember Robert Bradshaw wrote for his thesis work.   I wasn't looking
>> > forward to writing your line:
>>
>> > res.m00=self.m00*right.m00+self.m01*right.m10
>>
>> > but against the gsl library.  But using the cython type in complex,
>> > you get the above at C speed with easy notation, which is pretty
>> > awesome.
>>
>> > >  I tried
>> > > it and got a much bigger speedup: 17x faster than numpy and 150x faster 
>> > > than
>> > > Sage.  Seehttp://sagenb.org/home/pub/4303/
>>
>> > Nice.
>>
>> > > Thanks,
>>
>> > > Jason
>>
>> > > --
>> > > To post to this group, send email to sage-support@googlegroups.com
>> > > To unsubscribe from this group, send email to
>> > > sage-support+unsubscr...@googlegroups.com
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/sage-support
>> > > URL:http://www.sagemath.org
>>
>> > --
>> > William Stein
>> > Professor of Mathematics
>> > University of Washingtonhttp://wstein.org
>
> --
> To post to this group, send email to sage-support@googlegroups.com
> To unsubscribe from this group, send email to 
> sage-support+unsubscr...@googlegroups.com
> For more options, visit this group at 
> http://groups.google.com/group/sage-support
> URL: http://www.sagemath.org



-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to