// Copyright (C) 2013 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #undef DLIB_ARRAY_tOOLS_ABSTRACT_H_ #ifdef DLIB_ARRAY_tOOLS_ABSTRACT_H_ #include "array_kernel_abstract.h" namespace dlib { template <typename T> void split_array ( T& a, T& b, double frac ); /*! requires - 0 <= frac <= 1 - T must be an array type such as dlib::array or std::vector ensures - This function takes the elements of a and splits them into two groups. The first group remains in a and the second group is put into b. The ordering of elements in a is preserved. In particular, concatenating #a with #b will reproduce the original contents of a. - The elements in a are moved around using global swap(). So they must be swappable, but do not need to be copyable. - #a.size() == floor(a.size()*frac) - #b.size() == a.size()-#a.size() !*/ } #endif // DLIB_ARRAY_tOOLS_ABSTRACT_H_