docs: public static void equalizeLocal(GrayU16 input , int radius , GrayU16 output ,
  									 int histogramLength , IWorkArrays workArrays ) {
  
  		InputSanityCheck.checkSameShape(input, output);
  		if( workArrays == null )
  			workArrays = new IWorkArrays();
  
  		workArrays.reset(histogramLength);
  
  		int width = radius*2+1;
  
  		// use more efficient algorithms if possible
  		if( input.width >= width && input.height >= width ) {
  			if(BoofConcurrency.USE_CONCURRENT ) {
  				ImplEnhanceHistogram_MT.equalizeLocalInner(input, radius, output, workArrays);
  
  				// top border
  				ImplEnhanceHistogram_MT.equalizeLocalRow(input, radius, 0, output, workArrays);
  				// bottom border
  				ImplEnhanceHistogram_MT.equalizeLocalRow(input, radius, input.height - radius, output, workArrays);
  
  				// left border
  				ImplEnhanceHistogram_MT.equalizeLocalCol(input, radius, 0, output, workArrays);
  				// right border
  				ImplEnhanceHistogram_MT.equalizeLocalCol(input, radius, input.width - radius, output, workArrays);
  			} else {
  				ImplEnhanceHistogram.equalizeLocalInner(input, radius, output, workArrays);
  
  				// top border
  				ImplEnhanceHistogram.equalizeLocalRow(input, radius, 0, output, workArrays);
  				// bottom border
  				ImplEnhanceHistogram.equalizeLocalRow(input, radius, input.height - radius, output, workArrays);
  
  				// left border
  				ImplEnhanceHistogram.equalizeLocalCol(input, radius, 0, output, workArrays);
  				// right border
  				ImplEnhanceHistogram.equalizeLocalCol(input, radius, input.width - radius, output, workArrays);
  			}
  		} else if( input.width < width && input.height < width ) {
  			// the local region is larger than the image.  just use the full image algorithm
  			int[] histogram = workArrays.pop();
  			int[] transform = workArrays.pop();
  
  			ImageStatistics.histogram(input,0,histogram);
  			equalize(histogram,transform);
  			applyTransform(input,transform,output);
  
  			workArrays.recycle(histogram);
  			workArrays.recycle(transform);
  		} else {
  			if(BoofConcurrency.USE_CONCURRENT ) {
  				ImplEnhanceHistogram_MT.equalizeLocalNaive(input, radius, output, workArrays);
  			} else {
  				ImplEnhanceHistogram.equalizeLocalNaive(input, radius, output, workArrays);
  			}
  		}
  	}