Files
rdkit/Code/Demos/boost/numpy/linalg.cpp
Greg Landrum c9eb4e91e1 merge revs 736:741 from branch http://rdkit.svn.sourceforge.net/svnroot/rdkit/branches/NumPyPort_27June2008
This removes the numeric python dependency and switches to relying on numpy.
current status of tests from branch: pass on lin32 and 64 and win32.
2008-07-05 07:42:38 +00:00

43 lines
816 B
C++
Executable File

//
// Copyright (C) 2003 Rational Discovery LLC
//
#include <boost/python.hpp>
#include <boost/python/numeric.hpp>
#define PY_ARRAY_UNIQUE_SYMBOL RD_array_API
#include "numpy/oldnumeric.h"
namespace python = boost::python;
double GetFirstElement(python::numeric::array &x){
PyArrayObject *ptr = (PyArrayObject *)x.ptr();
void* data = ptr->data;
double res=0.0;
switch(ptr->descr->type_num)
{
case PyArray_DOUBLE:
res = ((double *)data)[0];
break;
case PyArray_FLOAT:
res = (double)((float *)data)[0];
break;
case PyArray_LONG:
res = (double)((long *)data)[0];
break;
case PyArray_INT:
res = (double)((int *)data)[0];
break;
}
return res;
}
BOOST_PYTHON_MODULE(linalg)
{
python::def("GetFirstElement",GetFirstElement);
}