void upsample(const Array1D<T>& v, int usf, Array1D<T>& u) { // it_assert1(usf >= 1, "upsample: upsampling factor must be equal or greater than one" ); u.set_size(v.length()*usf); u.clear(); for(long i=0;i<v.length();i++) u(i*usf)=v(i); }
Array2D CombinationByBinary(Array1D array, int K) { Array2D result; if (array.empty() || K <= 0) { return result; } if (array.size() < K) { result.push_back(array); /** @warning maybe exclude it */ return result; } /** @warning sort or not */ Array1D temp; int begin = (1 << K) - 1, end = (1 << array.size()) - (1 << (array.size() - K)); for (int bit = begin; bit <= end; bit = NextBit(bit)) { temp.clear(); for (int i = 0; i < array.size(); i++) { if (bit & (1 << i)) { temp.push_back(array[i]); } } result.push_back(temp); } return result; }