mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-04 21:54:27 +08:00
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.
43 lines
816 B
C++
Executable File
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);
|
|
|
|
}
|