Hola:

Estaba echándole un vistazo superficial a la biblioteca cmath de
Python [1] cuando encontré esto:

static Py_complex
667     c_sqrt(Py_complex z)
668     {
[...]   
696     Py_complex r;
[...]   
702     if (z.real == 0. && z.imag == 0.) {
703     r.real = 0.;
704     r.imag = z.imag;
705     return r;
706     }
...

El códig en primer lugar comprueba si el número es 0, y si no continúa
calculando la raíz cuadrada para números generales. Por supuesto, la
raíz cuadrada de 0+0j es 0+0j, pero lo calcula de forma curiosa: la
parte real la pone como 0 y la imaginaria como la imaginaria del
número original (que es 0). ¿Por qué es esto?

Se me ocurrió que podría ser para preservar tipos, pero

>>> cmath.sqrt(0)
0j

devuelve un complejo, no un real.



[1] 
http://svn.python.org/view/python/trunk/Modules/cmathmodule.c?revision=76978&view=markup
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Reply via email to