docs: static public void border4( GrayF32 _intensity , GrayF32 derivX , GrayF32 derivY , GrayF32 output )
  	{
  		int w = _intensity.width;
  		int h = _intensity.height-1;
  
  		ImageBorder_F32 intensity = FactoryImageBorderAlgs.value(_intensity, 0);
  
  		// top border
  		BoofConcurrency.loopFor(0,w,x->{
  			int dx,dy;
  
  			if( derivX.get(x,0) > 0 ) dx = 1; else dx = -1;
  			if( derivY.get(x,0) > 0 ) dy = 1; else dy = -1;
  
  			float left = intensity.get(x-dx,-dy);
  			float middle = intensity.get(x,0);
  			float right = intensity.get(x+dx,dy);
  
  			if( left > middle || right > middle ) {
  				output.set(x,0,0);
  			} else {
  				output.set(x,0,middle);
  			}
  		});
  
  		// bottom border
  		BoofConcurrency.loopFor(0,w,x->{
  			int dx,dy;
  
  			if( derivX.get(x,h) > 0 ) dx = 1; else dx = -1;
  			if( derivY.get(x,h) > 0 ) dy = 1; else dy = -1;
  
  			float left = intensity.get(x-dx,h-dy);
  			float middle = intensity.get(x,h);
  			float right = intensity.get(x+dx,h+dy);
  
  			if( left > middle || right > middle ) {
  				output.set(x,h,0);
  			} else {
  				output.set(x,h,middle);
  			}
  		});
  
  		// left border
  		BoofConcurrency.loopFor(1,h,y->{
  			int dx,dy;
  
  			if( derivX.get(0,y) > 0 ) dx = 1; else dx = -1;
  			if( derivY.get(0,y) > 0 ) dy = 1; else dy = -1;
  
  			float left = intensity.get(-dx,y-dy);
  			float middle = intensity.get(0,y);
  			float right = intensity.get(dx,y+dy);
  
  			if( left > middle || right > middle ) {
  				output.set(0,y,0);
  			} else {
  				output.set(0,y,middle);
  			}
  		});
  
  		// right border
  		int ww = w - 1;
  		BoofConcurrency.loopFor(1,h,y->{
  			int dx,dy;
  
  			if( derivX.get(ww,y) > 0 ) dx = 1; else dx = -1;
  			if( derivY.get(ww,y) > 0 ) dy = 1; else dy = -1;
  
  			float left = intensity.get(ww-dx,y-dy);
  			float middle = intensity.get(ww,y);
  			float right = intensity.get(ww+dx,y+dy);
  
  			if( left > middle || right > middle ) {
  				output.set(ww,y,0);
  			} else {
  				output.set(ww,y,middle);
  			}
  		});
  	}