Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Stack Of Tasks
eigenpy
Commits
20b89555
Verified
Commit
20b89555
authored
May 05, 2020
by
Justin Carpentier
Browse files
core: move Python call to the dynamic lib
parent
41d2650e
Changes
3
Hide whitespace changes
Inline
Side-by-side
include/eigenpy/numpy.hpp
View file @
20b89555
...
...
@@ -44,12 +44,21 @@ namespace eigenpy
EIGENPY_DLLEXPORT
int
call_PyArray_ObjectType
(
PyObject
*
,
int
);
EIGENPY_DLLEXPORT
PyTypeObject
*
getPyArrayType
();
EIGENPY_DLLEXPORT
int
call_PyArray_DescrFromType
(
int
typenum
);
EIGENPY_DLLEXPORT
void
call_PyArray_InitArrFuncs
(
PyArray_ArrFuncs
*
funcs
);
EIGENPY_DLLEXPORT
int
call_PyArray_RegisterDataType
(
PyArray_Descr
*
dtype
);
}
#else
#define call_PyArray_SimpleNew PyArray_SimpleNew
#define call_PyArray_New(py_type_ptr,nd,shape,np_type,data_ptr,options) \
PyArray_New(py_type_ptr,nd,shape,np_type,NULL,data_ptr,0,options,NULL)
#define getPyArrayType() &PyArray_Type
#define call_PyArray_DescrFromType(typenum) PyArray_DescrFromType(typenum)
#define call_PyArray_InitArrFuncs(funcs) PyArray_InitArrFuncs(funcs)
#define call_PyArray_RegisterDataType(dtype) PyArray_RegisterDataType(dtype)
#endif
#endif // ifndef __eigenpy_numpy_hpp__
include/eigenpy/register.hpp
View file @
20b89555
...
...
@@ -70,7 +70,7 @@ namespace eigenpy
}
else
{
PyArray_Descr
*
new_descr
=
PyArray_DescrFromType
(
NumpyEquivalentType
<
Scalar
>::
type_code
);
PyArray_Descr
*
new_descr
=
call_
PyArray_DescrFromType
(
NumpyEquivalentType
<
Scalar
>::
type_code
);
return
new_descr
->
typeobj
;
}
}
...
...
@@ -107,7 +107,7 @@ namespace eigenpy
{
namespace
bp
=
boost
::
python
;
PyArray_Descr
*
descr_ptr
=
new
PyArray_Descr
(
*
PyArray_DescrFromType
(
NPY_OBJECT
));
PyArray_Descr
*
descr_ptr
=
new
PyArray_Descr
(
*
call_
PyArray_DescrFromType
(
NPY_OBJECT
));
PyArray_Descr
&
descr
=
*
descr_ptr
;
descr
.
typeobj
=
py_type_ptr
;
descr
.
kind
=
'V'
;
...
...
@@ -120,7 +120,7 @@ namespace eigenpy
PyArray_ArrFuncs
*
funcs_ptr
=
new
PyArray_ArrFuncs
;
PyArray_ArrFuncs
&
funcs
=
*
funcs_ptr
;
descr
.
f
=
funcs_ptr
;
PyArray_InitArrFuncs
(
funcs_ptr
);
call_
PyArray_InitArrFuncs
(
funcs_ptr
);
funcs
.
getitem
=
getitem
;
funcs
.
setitem
=
setitem
;
funcs
.
nonzero
=
nonzero
;
...
...
@@ -129,9 +129,9 @@ namespace eigenpy
funcs
.
dotfunc
=
dotfunc
;
// f->cast = cast;
const
int
code
=
PyArray_RegisterDataType
(
descr_ptr
);
const
int
code
=
call_
PyArray_RegisterDataType
(
descr_ptr
);
assert
(
code
>=
0
&&
"The return code should be positive"
);
PyArray_Descr
*
new_descr
=
PyArray_DescrFromType
(
code
);
PyArray_Descr
*
new_descr
=
call_
PyArray_DescrFromType
(
code
);
type_to_py_type_bindings
.
insert
(
std
::
make_pair
(
type_info_ptr
,
py_type_ptr
));
py_array_descr_bindings
[
py_type_ptr
]
=
new_descr
;
...
...
src/numpy.cpp
View file @
20b89555
...
...
@@ -38,6 +38,21 @@ namespace eigenpy
}
PyTypeObject
*
getPyArrayType
()
{
return
&
PyArray_Type
;
}
int
call_PyArray_DescrFromType
(
int
typenum
)
{
return
PyArray_DescrFromType
(
typenum
);
}
void
call_PyArray_InitArrFuncs
(
PyArray_ArrFuncs
*
funcs
)
{
PyArray_InitArrFuncs
(
funcs
);
}
int
call_PyArray_RegisterDataType
(
PyArray_Descr
*
dtype
)
{
return
PyArray_RegisterDataType
(
dtype
);
}
#endif
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment