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
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/