Skip to content
Snippets Groups Projects
Commit 17b60b0f authored by pospelov's avatar pospelov
Browse files

Updated python API

parent e88e2ee5
No related branches found
No related tags found
No related merge requests found
......@@ -32,7 +32,7 @@ int main(int argc, char **argv)
AddCoreOptions(&command_line_options);
command_line_options.parseCommandLine(argc, argv);
MSG::SetLevel(command_line_options["msgsvc"].as<std::string>());
if(command_line_options.getVariables().count("msglog")) MSG::SetLevel(command_line_options["msglog"].as<std::string>());
// setting graphics environment
TApplication *theApp(0);
......
......@@ -6,7 +6,7 @@ TEMPLATE = lib
CONFIG += plugin # to remove versions from file name
QT -= core gui
QMAKE_EXTENSION_SHLIB = so # making standard *.so extension
CONFIG += BORNAGAIN_PYTHON
#CONFIG += BORNAGAIN_PYTHON
# -----------------------------------------------------------------------------
# source and headers
......
......@@ -83,11 +83,6 @@ void register_IndexVector3D_class(){
typedef bp::class_< Geometry::BasicVector3D< int > > IndexVector3D_exposer_t;
IndexVector3D_exposer_t IndexVector3D_exposer = IndexVector3D_exposer_t( "IndexVector3D", bp::init< >() );
bp::scope IndexVector3D_scope( IndexVector3D_exposer );
bp::scope().attr("X") = (int)Geometry::BasicVector3D<int>::X;
bp::scope().attr("Y") = (int)Geometry::BasicVector3D<int>::Y;
bp::scope().attr("Z") = (int)Geometry::BasicVector3D<int>::Z;
bp::scope().attr("NUM_COORDINATES") = (int)Geometry::BasicVector3D<int>::NUM_COORDINATES;
bp::scope().attr("SIZE") = (int)Geometry::BasicVector3D<int>::SIZE;
IndexVector3D_exposer.def( bp::init< int const &, int const &, int const & >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) );
IndexVector3D_exposer.def( bp::self *= bp::other< double >() );
IndexVector3D_exposer.def( bp::self += bp::self );
......
......@@ -79,39 +79,6 @@ namespace bp = boost::python;
void register_free_functions(){
{ //::Geometry::CrossProduct
typedef ::Geometry::BasicVector3D< std::complex< double > > ( *CrossProduct_function_type )( ::Geometry::BasicVector3D< std::complex< double > > const &,::Geometry::BasicVector3D< std::complex< double > > const & );
bp::def(
"CrossProduct"
, CrossProduct_function_type( &::Geometry::CrossProduct )
, ( bp::arg("left"), bp::arg("right") ) );
}
{ //::Geometry::CrossProduct
typedef ::Geometry::BasicVector3D< double > ( *CrossProduct_function_type )( ::Geometry::BasicVector3D< double > const &,::Geometry::BasicVector3D< double > const & );
bp::def(
"CrossProduct"
, CrossProduct_function_type( &::Geometry::CrossProduct )
, ( bp::arg("left"), bp::arg("right") ) );
}
{ //::Geometry::DotProduct
typedef double ( *DotProduct_function_type )( ::Geometry::BasicVector3D< double > const &,::Geometry::BasicVector3D< double > const & );
bp::def(
"DotProduct"
, DotProduct_function_type( &::Geometry::DotProduct )
, ( bp::arg("left"), bp::arg("right") ) );
}
{ //::GetOutputData
typedef ::PyObject * ( *GetOutputData_function_type )( ::Simulation const & );
......
......@@ -83,11 +83,6 @@ void register_cvector_t_class(){
typedef bp::class_< Geometry::BasicVector3D< std::complex< double > > > cvector_t_exposer_t;
cvector_t_exposer_t cvector_t_exposer = cvector_t_exposer_t( "cvector_t", bp::init< >() );
bp::scope cvector_t_scope( cvector_t_exposer );
bp::scope().attr("X") = (int)Geometry::BasicVector3D<std::complex<double> >::X;
bp::scope().attr("Y") = (int)Geometry::BasicVector3D<std::complex<double> >::Y;
bp::scope().attr("Z") = (int)Geometry::BasicVector3D<std::complex<double> >::Z;
bp::scope().attr("NUM_COORDINATES") = (int)Geometry::BasicVector3D<std::complex<double> >::NUM_COORDINATES;
bp::scope().attr("SIZE") = (int)Geometry::BasicVector3D<std::complex<double> >::SIZE;
cvector_t_exposer.def( bp::init< std::complex< double > const &, std::complex< double > const &, std::complex< double > const & >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) );
{ //::Geometry::BasicVector3D< std::complex< double > >::cross
......@@ -287,14 +282,9 @@ void register_cvector_t_class(){
, z_function_type( &::Geometry::BasicVector3D< std::complex< double > >::z ) );
}
cvector_t_exposer.def( bp::self != bp::self );
cvector_t_exposer.def( bp::self + bp::self );
cvector_t_exposer.def( +bp::self );
cvector_t_exposer.def( bp::self - bp::self );
cvector_t_exposer.def( -bp::self );
cvector_t_exposer.def( bp::self / bp::other< std::complex< double > >() );
cvector_t_exposer.def( bp::self_ns::str( bp::self ) );
cvector_t_exposer.def( bp::self == bp::self );
cvector_t_exposer.def( bp::self / bp::other< double >() );
}
}
......@@ -83,11 +83,6 @@ void register_kvector_t_class(){
typedef bp::class_< Geometry::BasicVector3D< double > > kvector_t_exposer_t;
kvector_t_exposer_t kvector_t_exposer = kvector_t_exposer_t( "kvector_t", bp::init< >() );
bp::scope kvector_t_scope( kvector_t_exposer );
bp::scope().attr("X") = (int)Geometry::BasicVector3D<double>::X;
bp::scope().attr("Y") = (int)Geometry::BasicVector3D<double>::Y;
bp::scope().attr("Z") = (int)Geometry::BasicVector3D<double>::Z;
bp::scope().attr("NUM_COORDINATES") = (int)Geometry::BasicVector3D<double>::NUM_COORDINATES;
bp::scope().attr("SIZE") = (int)Geometry::BasicVector3D<double>::SIZE;
kvector_t_exposer.def( bp::init< double const &, double const &, double const & >(( bp::arg("x1"), bp::arg("y1"), bp::arg("z1") )) );
{ //::Geometry::BasicVector3D< double >::cross
......@@ -287,17 +282,7 @@ void register_kvector_t_class(){
, z_function_type( &::Geometry::BasicVector3D< double >::z ) );
}
kvector_t_exposer.def( bp::self != bp::self );
kvector_t_exposer.def( bp::self * bp::self );
kvector_t_exposer.def( bp::other< double >() * bp::self );
kvector_t_exposer.def( bp::self * bp::other< double >() );
kvector_t_exposer.def( bp::self + bp::self );
kvector_t_exposer.def( +bp::self );
kvector_t_exposer.def( bp::self - bp::self );
kvector_t_exposer.def( -bp::self );
kvector_t_exposer.def( bp::self / bp::other< double >() );
kvector_t_exposer.def( bp::self_ns::str( bp::self ) );
kvector_t_exposer.def( bp::self == bp::self );
}
}
......@@ -83,6 +83,7 @@ void register_vector_kvector_t_class(){
typedef bp::class_< std::vector< Geometry::BasicVector3D<double> > > vector_kvector_t_exposer_t;
vector_kvector_t_exposer_t vector_kvector_t_exposer = vector_kvector_t_exposer_t( "vector_kvector_t" );
bp::scope vector_kvector_t_scope( vector_kvector_t_exposer );
//WARNING: the next line of code will not compile, because "::Geometry::BasicVector3D<double>" does not have operator== !
vector_kvector_t_exposer.def( bp::vector_indexing_suite< ::std::vector< Geometry::BasicVector3D<double> > >() );
}
......
......@@ -198,3 +198,7 @@
# (and ./App --mesocrystal2 gives 24.77 (4 threads), 54.66 (1 thread))
2013-03-21 10:19:28 | jcnsopc73 | macosx64, 2800 MHz | 285714 | 24.0964 | 22.9885 | 5.71429 |
# after changes in BasicVector3D (no virtual destructor)
# (and ./App --mesocrystal2 gives 23.74 (4 threads), 51.54 (1 thread))
2013-03-22 17:05:17 | jcnsopc73 | macosx64, 2800 MHz | 298507 | 24.0964 | 24.6914 | 6.25 |
2013-03-22 17:05:32 | jcnsopc73 | macosx64, 2800 MHz | 294118 | 24.3902 | 25 | 6.25 |
......@@ -6,7 +6,7 @@ TEMPLATE = lib
CONFIG += plugin # to remove versions from file name
QT -= core gui
QMAKE_EXTENSION_SHLIB = so # making standard *.so extension
CONFIG += BORNAGAIN_PYTHON
#CONFIG += BORNAGAIN_PYTHON
CONFIG += BORNAGAIN_ROOT
# -----------------------------------------------------------------------------
......
......@@ -100,8 +100,8 @@ def AdditionalRules(mb):
#mb.classes(lambda decl: 'Geometry::BasicVector3D<std::complex<double> >' in decl.decl_string ).exclude()
#mb.free_operators( lambda decl: 'Geometry::BasicVector3D<std::complex<double> >' in decl.decl_string ).exclude()
#mb.free_functions( lambda decl: 'Geometry::BasicVector3D<std::complex<double> >' in decl.decl_string ).exclude()
mb.classes(lambda decl: 'Geometry::BasicVector3D<std::complex<double> const>' in decl.decl_string ).exclude()
mb.free_operators( lambda decl: 'Geometry::BasicVector3D<std::complex<double> const>' in decl.decl_string ).exclude()
#mb.classes(lambda decl: 'Geometry::BasicVector3D<std::complex<double> const>' in decl.decl_string ).exclude()
#mb.free_operators( lambda decl: 'Geometry::BasicVector3D<std::complex<double> const>' in decl.decl_string ).exclude()
#mb.free_functions( lambda decl: 'Geometry::BasicVector3D<std::complex<double> const>' in decl.decl_string ).exclude()
classes = mb.classes()
# here we have to exclude all templated methods which are not defined complex<double>, otherwise py++ will try to generate wrappers
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment