Hello Robert,

I wonder why you want to use the "abs()" function, when the "absolute 
value" function has no meaning for complex numbers.
How you define the 'greater than' (>)  operator in complex numbers ?
It is hazardous to mix symbolic computing (var, sqrt,..language) and field 
operators....because off the scene, symbolic expressions have their own 
operators.
Yes : if you take norm(z) where z is a complex field element you get a real 
number...and then you can use abs() function (because ordered field).

Dominique

On Monday, 1 May 2017 20:43:32 UTC+2, Robert Jacobson wrote:
>
> I am wanting to hand off a holomorphic function to an external library, 
> but the library only works with real numbers (operations with C++ doubles). 
> Thus I wish to have Sage compute functions u and v for which f(x+i y) = 
> u(x,y) + i v(x,y) such that u and v are expressed only in terms of 
> operations on real numbers, i.e., without the imaginary unit i. I am 
> impressed by how far I can get by simply calling f(x+i y).real_part(), but 
> abs(x+I*y) is not rewritten as sqrt(x+I*y). A simple example session to 
> illustrate:
>
> sage: y, z = var('y, z')
> sage: assume(x, 'real')
> sage: assume(y, 'real')
> sage: abs(x+I*y)
> abs(x + I*y)
> sage: abs(x+I*y).real_part()
> abs(x + I*y)
> sage: norm(x+I*y)
> x^2 + y^2
> sage: log(x+I*y).real_part()
> log(abs(x + I*y))
> sage: sin(x+I*y).real_part()
> cosh(y)*sin(x)
>
> Is there a simple way to do what I am trying to do? Perhaps by asking Sage 
> to replace abs(z) with sqrt(norm(z))?
>
> Best,
>
> Robert
>

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

Reply via email to