 
 namespace mat_operators
 {
-    __constant__ double scalar_d[4];
+    __constant__ double scalar_d[256];
 
 
     template <typename T>

            if (mask[y * step_mask + x / channels] != 0)
            {
                size_t idx = y * ( step >> shift_and_sizeof<T>::shift ) + x;
                mat[idx] = scalar_d[ x % channels ];
            }
    }



            extern "C" void set_to_with_mask(DevMem2D mat, int depth, const double * scalar, const DevMem2D& mask, int channels, const cudaStream_t & stream)
            {
                double * scalar_vec = new double [256];
                int index = 0;
                for (int i = 0; i < 256; i++)
                {
                    scalar_vec[i] = scalar[index];
                    index++;
                    if (index == channels) index = 0;
                }
                cudaSafeCall( cudaMemcpyToSymbol(mat_operators::scalar_d, scalar_vec, sizeof(double) * 256));

                delete [] scalar_vec;

                static SetToFunc_with_mask tab[8] =
                {
