Files
rdkit/Code/Demos/boost/numpy/linalg.cpp
Matt Swain e57b7a9bc8 Use numpy not numeric for boost 1.65+ - fixes #1581 (#1664)
boost python numeric no longer exists in boost 1.65, so check boost version and conditionally use boost python numpy.
2017-11-20 05:44:19 +01:00

35 lines
805 B
C++

//
// Copyright (C) 2003 Rational Discovery LLC
//
#include <boost/python.hpp>
#include <RDBoost/boost_numpy.h>
#define PY_ARRAY_UNIQUE_SYMBOL RD_array_API
#include <numpy/arrayobject.h>
namespace python = boost::python;
double GetFirstElement(NumpyArrayType &x) {
PyArrayObject *ptr = (PyArrayObject *)x.ptr();
void *data = PyArray_DATA(ptr);
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); }