%module li_std_deque %include "std_deque.i" %{ #include <algorithm> #include <functional> #include <numeric> %} namespace std { %template(IntDeque) deque<int>; } %template(DoubleDeque) std::deque<double>; %inline %{ typedef float Real; %} namespace std { %template(RealDeque) deque<Real>; } %inline %{ double average(std::deque<int> v) { return std::accumulate(v.begin(),v.end(),0.0)/v.size(); } std::deque<float> half(const std::deque<float>& v) { std::deque<float> w(v); for (unsigned int i=0; i<w.size(); i++) w[i] /= 2.0; return w; } void halve_in_place(std::deque<double>& v) { for (std::deque<double>::iterator it = v.begin(); it != v.end(); ++it) *it /= 2.0; } %}
Generated by dwww version 1.15 on Tue Jul 2 00:50:39 CEST 2024.