[Scipy-svn] r2127 - in trunk/Lib/sandbox/svm: . libsvm-2.82

scipy-svn at scipy.org scipy-svn at scipy.org
Tue Jul 25 19:20:32 EDT 2006


Author: fullung
Date: 2006-07-25 18:20:21 -0500 (Tue, 25 Jul 2006)
New Revision: 2127

Modified:
   trunk/Lib/sandbox/svm/classification.py
   trunk/Lib/sandbox/svm/libsvm-2.82/svm.h
   trunk/Lib/sandbox/svm/libsvm.py
   trunk/Lib/sandbox/svm/predict.py
   trunk/Lib/sandbox/svm/regression.py
Log:
Use .ctypes.data_as instead of ctypes.cast.


Modified: trunk/Lib/sandbox/svm/classification.py
===================================================================
--- trunk/Lib/sandbox/svm/classification.py	2006-07-25 13:28:26 UTC (rev 2126)
+++ trunk/Lib/sandbox/svm/classification.py	2006-07-25 23:20:21 UTC (rev 2127)
@@ -1,4 +1,4 @@
-from ctypes import cast, POINTER, c_int, c_double
+from ctypes import POINTER, c_int, c_double
 import numpy as N
 
 from model import LibSvmModel
@@ -103,9 +103,9 @@
                 self.weights[i] = weight
             self.param.nr_weight = len(weights)
             self.param.weight_label = \
-                cast(self.weight_labels.ctypes.data, POINTER(c_int))
+                self.weight_labels.ctypes.data_as(POINTER(c_int))
             self.param.weight = \
-                cast(self.weights.ctypes.data, POINTER(c_double))
+                self.weights.ctypes.data_as(POINTER(c_double))
 
     def cross_validate(self, dataset, nr_fold):
         """
@@ -121,7 +121,7 @@
         """
         problem = dataset._create_svm_problem()
         target = N.empty((len(dataset.data),), dtype=N.float64)
-        tp = cast(target.ctypes.data, POINTER(c_double))
+        tp = target.ctypes.data_as(POINTER(c_double))
         libsvm.svm_cross_validation(problem, self.param, nr_fold, tp)
         total_correct = 0.
         for x, t in zip(dataset.data, target):

Modified: trunk/Lib/sandbox/svm/libsvm-2.82/svm.h
===================================================================
--- trunk/Lib/sandbox/svm/libsvm-2.82/svm.h	2006-07-25 13:28:26 UTC (rev 2126)
+++ trunk/Lib/sandbox/svm/libsvm-2.82/svm.h	2006-07-25 23:20:21 UTC (rev 2127)
@@ -6,10 +6,10 @@
 #define LIBSVM_API __declspec(dllexport)
 #else
 #define LIBSVM_API __declspec(dllimport)
-#endif /* _LIBSVM_EXPORTS */
+#endif /* LIBSVM_EXPORTS */
 #else
 #define LIBSVM_API
-#endif /* _WIN32 */
+#endif /* LIBSVM_DLL */
 
 #ifdef __cplusplus
 extern "C" {

Modified: trunk/Lib/sandbox/svm/libsvm.py
===================================================================
--- trunk/Lib/sandbox/svm/libsvm.py	2006-07-25 13:28:26 UTC (rev 2126)
+++ trunk/Lib/sandbox/svm/libsvm.py	2006-07-25 23:20:21 UTC (rev 2127)
@@ -136,7 +136,7 @@
     x = (POINTER(svm_node)*problem.l)()
     for i, (yi, xi) in enumerate(data):
         y[i] = yi
-        x[i] = cast(xi.ctypes.data, POINTER(svm_node))
+        x[i] = xi.ctypes.data_as(POINTER(svm_node))
     problem.x = x
     problem.y = y
     return problem

Modified: trunk/Lib/sandbox/svm/predict.py
===================================================================
--- trunk/Lib/sandbox/svm/predict.py	2006-07-25 13:28:26 UTC (rev 2126)
+++ trunk/Lib/sandbox/svm/predict.py	2006-07-25 23:20:21 UTC (rev 2127)
@@ -1,4 +1,4 @@
-from ctypes import cast, POINTER, c_double, addressof
+from ctypes import POINTER, c_double, addressof
 import numpy as N
 
 from dataset import svm_node_dot
@@ -35,14 +35,14 @@
 
     def predict(self, x):
         x = self._transform_input(x)
-        xptr = cast(x.ctypes.data, POINTER(libsvm.svm_node))
+        xptr = x.ctypes.data_as(POINTER(libsvm.svm_node))
         return libsvm.svm_predict(self.model, xptr)
 
     def predict_values(self, x, n):
         x = self._transform_input(x)
-        xptr = cast(x.ctypes.data, POINTER(libsvm.svm_node))
+        xptr = x.ctypes.data_as(POINTER(libsvm.svm_node))
         v = N.empty((n,), dtype=N.float64)
-        vptr = cast(v.ctypes.data, POINTER(c_double))
+        vptr = v.ctypes.data_as(POINTER(c_double))
         libsvm.svm_predict_values(self.model, xptr, vptr)
         return v
 
@@ -50,9 +50,9 @@
         if not self.model.contents.param.probability:
             raise ValueError, 'not a probability model'
         x = self._transform_input(x)
-        xptr = cast(x.ctypes.data, POINTER(libsvm.svm_node))
+        xptr = x.ctypes.data_as(POINTER(libsvm.svm_node))
         pe = N.empty((n,), dtype=N.float64)
-        peptr = cast(pe.ctypes.data, POINTER(c_double))
+        peptr = pe.ctypes.data_as(POINTER(c_double))
         label = libsvm.svm_predict_probability(self.model, xptr, peptr)
         return label, pe
 

Modified: trunk/Lib/sandbox/svm/regression.py
===================================================================
--- trunk/Lib/sandbox/svm/regression.py	2006-07-25 13:28:26 UTC (rev 2126)
+++ trunk/Lib/sandbox/svm/regression.py	2006-07-25 23:20:21 UTC (rev 2127)
@@ -1,4 +1,4 @@
-from ctypes import cast, POINTER, c_double
+from ctypes import POINTER, c_double
 import numpy as N
 
 from model import LibSvmModel
@@ -65,7 +65,7 @@
 
         problem = dataset._create_svm_problem()
         target = N.empty((len(dataset.data),), dtype=N.float64)
-        tp = cast(target.ctypes.data, POINTER(c_double))
+        tp = target.ctypes.data_as(POINTER(c_double))
         libsvm.svm_cross_validation(problem, self.param, nr_fold, tp)
 
         total_error = sumv = sumy = sumvv = sumyy = sumvy = 0.




More information about the Scipy-svn mailing list