));          if(roi != python::object())     {         typedef typename MultiArrayShape<ndim>::type Shape;         Shape start = volume.permuteLikewise(python::extract<Shape>(roi[0])());         Shape stop  = volume.permuteLikewise(python::extract<Shape>(roi[0])());         opt.subarray(start, stop);         res.reshapeIfEmpty(volume.taggedShape().resize(stop-start).setChannelDescription("symmetric gradient"),                   "symmetricGradient(): Output array has wrong shape.");     }     else     {         res.reshapeIfEmpty(volume.taggedShape().setChannelDescription("symmetric gradient"),                   "symmetricGradient(): Output array has wrong shape.");     }          {         PyAllowThreads _pythread;         