%module li_std_deque %include "std_deque.i" %{ #include #include #include %} namespace std { %template(IntDeque) deque; } %template(DoubleDeque) std::deque; %inline %{ typedef float Real; %} namespace std { %template(RealDeque) deque; } %inline %{ double average(std::deque v) { return std::accumulate(v.begin(),v.end(),0.0)/v.size(); } std::deque half(const std::deque& v) { std::deque w(v); for (unsigned int i=0; i& v) { for (std::deque::iterator it = v.begin(); it != v.end(); ++it) *it /= 2.0; } %}