      static double mp_get(_cimg_math_parser& mp) {
        const double *ptrs = &_mp_arg(2) + 1;
        double *ptrd = &_mp_arg(1);
        const unsigned int
          sizs = (unsigned int)mp.opcode[3],
          sizd = (unsigned int)mp.opcode[4];
        const bool to_string = (bool)mp.opcode[5];
        CImg<charT> ss(sizs + 1);
        cimg_for_inX(ss,0,ss.width() - 1,i) ss[i] = (char)ptrs[i];
        ss.back() = 0;
        if (sizd) cimg_mp_func_get(ptrd + 1,sizd,to_string,ss._data);
        else cimg_mp_func_get(ptrd,0,to_string,ss._data);
        return cimg::type<double>::nan();
      }
      static double mp_get(_cimg_math_parser& mp) {
        const double *ptrs = &_mp_arg(2) + 1;
        double *ptrd = &_mp_arg(1);
        const unsigned int
          sizs = (unsigned int)mp.opcode[3],
          sizd = (unsigned int)mp.opcode[4];
        const bool to_string = (bool)mp.opcode[5];
        CImg<charT> ss(sizs + 1);
        cimg_for_inX(ss,0,ss.width() - 1,i) ss[i] = (char)ptrs[i];
        ss.back() = 0;
        if (sizd) cimg_mp_func_get(ptrd + 1,sizd,to_string,ss._data);
        else cimg_mp_func_get(ptrd,0,to_string,ss._data);
        return cimg::type<double>::nan();
      }