Thank you for the replies!  I appreciate it!

Thanks,

Rick

On Wednesday, January 15, 2014 7:51:30 PM UTC-5, ref...@uncg.edu wrote:
>
> Before I begin, I'd like to thank you in advance for any help I get with 
> this question.  I'm currently working with some heavy computation and 
> decided to cython-ize my code.  Because of what I'm doing in my math 
> research, I will need to make MILLIONS of calls to pretty high level 
> complex functions such as gamma, eta, and the list goes on.  I've gotten 
> stuck with a curiosity concerning the MPComplexNumber and the ComplexNumber 
> types in sage.
>
> I would like to make a function, f, which takes sage ComplexNumber types 
> and does something with it.  In the end, I'd like to return a sage 
> ComplexNumber type.  Should I use MPComplexNumber so that within the 
> function in order to use the GNU mpc library or would it be better to use 
> the mpfr library that is given to me by ComplexNumber and use Sage 
> directly?  In other words, would it be better for me to use mpc to square a 
> complex number or would it be better for me to just square the number using 
> the built-in sage code that does it with MPFR?  I tend to believe that it 
> would be best for me to use MPComplexNumbers and directly use GNU mpc.
>
> If I'm right, how do I convert MPComplexNumber into a ComplexNumber in 
> cython?  How do I initialize a variable in cython with the type 
> MPComplexNumber?  I am quite the novice in cython.
>
> The last question I have concerns weather I should just install the mpfr 
> and mpc libraries, and use the header file directly.  Would this result in 
> faster computation?
>
> Below is a code snippet of an example of what I'm trying to do...
>
> Should I:
>
> from sage.rings.complex_number cimport ComplexNumber
>
> def Square(ComplexNumber x):
>       return x^2
>
> or should I use the following pseudo-code:
>
>
> #IMPORT GNU MPC USING mpc.h
> from sage.rings.complex_number cimport ComplexNumber
>
> def Square(ComplexNumber x):
>       Square The number using mpc, by extracting the real and imaginary 
> parts
>       Convert back to ComplexNumber type (if so..how?)
>
> or should I:
>
> from sage.rings.complex_mpc cimport MPComplexNumber
> from sage.rings.complex_number cimport ComplexNumber
>
> def Square(ComplexNumber x):
>       Initialize MPComplexNumber variable
>       Extract the real and imaginary part of x, make them have type mpfr_t
>       square the result using mpc's multiply function
>       Build the ComplexNumber from the real and imaginary parts 
> again...(again, if so...how?)
>
> Very sorry if I'm not making a lot of sense.  Thank you for any help!
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to