22 #include "purify/config.h" 
   29 template <
class T = t_real>
 
   30 using CImage = cimg_library::CImg<T>;
 
   31 template <
class T = t_real>
 
   32 using CImageList = cimg_library::CImgList<T>;
 
   34 typedef cimg_library::CImgDisplay CDisplay;
 
   40 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x, 
const t_uint &rows,
 
   44 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x);
 
   47 CDisplay make_display(
const Eigen::DenseBase<T> &x, 
const t_uint &rows, 
const t_uint &cols,
 
   48                       const std::string &name = 
"");
 
   51 CDisplay make_display(
const Eigen::DenseBase<T> &x, 
const std::string &name = 
"");
 
   60 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x, 
const t_uint &rows,
 
   62   assert(x.size() == rows * cols);
 
   63   auto image = CImage<typename T::Scalar>(rows, cols, 1, 1);
 
   64   Vector<typename T::Scalar>::Map(image.data(), x.size()) =
 
   65       Vector<typename T::Scalar>::Map(x.derived().data(), x.size());
 
   69 CImage<typename T::Scalar> make_image(
const Eigen::DenseBase<T> &x) {
 
   70   return make_image<typename T::PlainObject>(x, x.rows(), x.cols());
 
   73 CDisplay make_display(
const Eigen::DenseBase<T> &x, 
const t_uint &rows, 
const t_uint &cols,
 
   74                       const std::string &name) {
 
   75   return CDisplay(cimg::make_image<typename T::PlainObject>(x.eval(), rows, cols), name.c_str());
 
   79 CDisplay make_display(
const Eigen::DenseBase<T> &x, 
const std::string &name) {
 
   80   return make_display<typename T::PlainObject>(x.eval(), x.rows(), x.cols(), name);