#ifndef DLIB_CHECKERBOARD_TeST_H_ #define DLIB_CHECKERBOARD_TeST_H_ #include <dlib/matrix.h> #include <vector> #include <dlib/rand.h> namespace dlib { template <typename scalar_type> void get_checkerboard_problem ( std::vector<matrix<scalar_type,2,1> >& x, std::vector<scalar_type>& y, const long num_samples, const long board_dimension = 8 ) /*! requires - num_samples > 0 - board_dimension > 0 ensures - #x.size() == y.size() == num_samples - is_binary_classification_problem(#x,#y) == true - #x will contain points and #y labels that were sampled randomly from a checkers board that has board_dimension squares on each side. !*/ { static dlib::rand rnd; x.clear(); y.clear(); matrix<scalar_type,2,1> sample; for (long i = 0; i < num_samples; ++i) { sample(0) = rnd.get_random_double(); sample(1) = rnd.get_random_double(); sample *= board_dimension; x.push_back(sample); if (((int)sum(floor(sample)) %2) == 0) y.push_back(+1); else y.push_back(-1); } } } #endif // DLIB_CHECKERBOARD_TeST_H_