/tags/rel-1.3.35/Examples/test-suite/python/li_std_vectora.i
Swig | 65 lines | 44 code | 21 blank | 0 comment | 0 complexity | bbbad666f882bed82e39ddaf8044faa5 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module li_std_vectora
- %include std_vectora.i
- %{
- #include <algorithm>
- #include <functional>
- #include <numeric>
- %}
- %template(vector_i) std::vector<int, std::allocator<int> >;
- %template(matrix_i) std::vector<std::vector<int,std::allocator<int> >,std::allocator<std::vector<int,std::allocator<int> > > >;
- %inline
- {
- typedef
- std::vector<std::vector<int,std::allocator<int> >,
- std::allocator<std::vector<int,std::allocator<int> > > >
- imatrix;
- std::vector<int> vident(const std::vector<int,std::allocator<int> >& v)
- {
- return v;
- }
- imatrix mident(const imatrix& v)
- {
- return v;
- }
- }
- %template(DoubleVector) std::vector<double, std::allocator<double> >;
- %inline %{
- typedef float Real;
- %}
- namespace std {
- %template(RealVector) vector<Real, std::allocator<Real> >;
- }
- %inline %{
- double average(std::vector<int, std::allocator<int> > v) {
- return std::accumulate(v.begin(),v.end(),0.0)/v.size();
- }
- std::vector<Real,std::allocator<Real> >
- half(const std::vector<Real,std::allocator<Real> >& v) {
- std::vector<Real> w(v);
- for (unsigned int i=0; i<w.size(); i++)
- w[i] /= 2.0;
- return w;
- }
- %}
- %template(IntPtrVector) std::vector<int *,std::allocator<int *> >;