Revision: 439
          http://rpy.svn.sourceforge.net/rpy/?rev=439&view=rev
Author:   lgautier
Date:     2008-03-15 05:23:36 -0700 (Sat, 15 Mar 2008)

Log Message:
-----------
Added handling of complex numbers

Modified Paths:
--------------
    trunk/sandbox/rpy_nextgen/rpy/rinterface/rinterface.c

Modified: trunk/sandbox/rpy_nextgen/rpy/rinterface/rinterface.c
===================================================================
--- trunk/sandbox/rpy_nextgen/rpy/rinterface/rinterface.c       2008-03-15 
11:29:00 UTC (rev 438)
+++ trunk/sandbox/rpy_nextgen/rpy/rinterface/rinterface.c       2008-03-15 
12:23:36 UTC (rev 439)
@@ -1079,7 +1079,8 @@
 {
   SEXP sexp;
   PyObject *seq_object, *item; 
-  seq_object = PySequence_Fast(object, "Cannot create R object from 
non-sequence Python object.");
+  seq_object = PySequence_Fast(object, 
+                              "Cannot create R object from non-sequence Python 
object.");
   //FIXME: Isn't the call above supposed to fire an Exception ?
   if (! seq_object) {
     return NULL;
@@ -1160,6 +1161,23 @@
        Py_DECREF(item);
       }
     }
+    break;
+  case CPLXSXP:
+    for (i = 0; i < length; ++i) {
+        item = PySequence_Fast_GET_ITEM(seq_object, i);
+        if (PyComplex_Check(item)) {
+         Py_complex cplx = PyComplex_AsCComplex(item);
+         COMPLEX(sexp)[i].r = cplx.real;
+         COMPLEX(sexp)[i].i = cplx.imag;
+         Py_DECREF(item);
+        }
+        else {
+         PyErr_Clear();
+         COMPLEX(sexp)[i].r = NA_REAL;
+          COMPLEX(sexp)[i].i = NA_REAL;
+        }
+    }
+    break;
     //FIXME: add complex 
   default:
     PyErr_Format(PyExc_ValueError, "cannot handle type %d", rType);


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
rpy-list mailing list
rpy-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpy-list

Reply via email to