code: public static Range create(Device _device, int _globalWidth, int _localWidth) {
        final Range range = new Range(_device, 1);
  
        range.setGlobalSize_0(_globalWidth);
        range.setLocalSize_0(_localWidth);
  
        range.setValid((range.getLocalSize_0() > 0) && (range.getLocalSize_0() <= range.getMaxWorkItemSize()[0])
              && (range.getLocalSize_0() <= range.getMaxWorkGroupSize()) && ((range.getGlobalSize_0() % range.getLocalSize_0()) == 0));
  
        return (range);
     }
docs: Create a one dimensional range <code>0.._globalWidth</code> which is processed in groups of size _localWidth.
  <br/>
  Note that for this range to be valid : </br> <strong><code>_globalWidth > 0 && _localWidth > 0 && _localWidth < MAX_GROUP_SIZE && _globalWidth % _localWidth==0</code></strong>
  
  @param _globalWidth the overall range we wish to process
  @param _localWidth the size of the group we wish to process.
  @return A new Range with the requested dimensions