      static double mp_set(_cimg_math_parser& mp) {
        const double *ptrs = &_mp_arg(1);
        double *ptrd = &_mp_arg(3) + 1;
        const unsigned int
          sizs = (unsigned int)mp.opcode[2],
          sizd = (unsigned int)mp.opcode[4];
        CImg<charT> sd(sizd + 1);
        cimg_for_inX(sd,0,sd.width() - 1,i) sd[i] = (char)ptrd[i];
        sd.back() = 0;
        if (sizs) cimg_mp_func_set(ptrs + 1,sizs,sd._data);
        else cimg_mp_func_set(ptrs,0,sd._data);
        return *ptrs;
      }
      static double mp_set(_cimg_math_parser& mp) {
        const double *ptrs = &_mp_arg(1);
        double *ptrd = &_mp_arg(3) + 1;
        const unsigned int
          sizs = (unsigned int)mp.opcode[2],
          sizd = (unsigned int)mp.opcode[4];
        CImg<charT> sd(sizd + 1);
        cimg_for_inX(sd,0,sd.width() - 1,i) sd[i] = (char)ptrd[i];
        sd.back() = 0;
        if (sizs) cimg_mp_func_set(ptrs + 1,sizs,sd._data);
        else cimg_mp_func_set(ptrs,0,sd._data);
        return *ptrs;
      }