docs: public static <T extends ImageBase<T>> void plus(T input, double value, T output) {
  		if( input instanceof ImageGray) {
  			if (GrayU8.class == input.getClass()) {
  				PixelMath.plus((GrayU8) input, (int) value, (GrayU8) output);
  			} else if (GrayS8.class == input.getClass()) {
  				PixelMath.plus((GrayS8) input, (int) value, (GrayS8) output);
  			} else if (GrayU16.class == input.getClass()) {
  				PixelMath.plus((GrayU16) input, (int) value, (GrayU16) output);
  			} else if (GrayS16.class == input.getClass()) {
  				PixelMath.plus((GrayS16) input, (int) value, (GrayS16) output);
  			} else if (GrayS32.class == input.getClass()) {
  				PixelMath.plus((GrayS32) input, (int) value, (GrayS32) output);
  			} else if (GrayS64.class == input.getClass()) {
  				PixelMath.plus((GrayS64) input, (long) value, (GrayS64) output);
  			} else if (GrayF32.class == input.getClass()) {
  				PixelMath.plus((GrayF32) input, (float) value, (GrayF32) output);
  			} else if (GrayF64.class == input.getClass()) {
  				PixelMath.plus((GrayF64) input, value, (GrayF64) output);
  			} else {
  				throw new IllegalArgumentException("Unknown image Type: " + input.getClass().getSimpleName());
  			}
  		} else if( input instanceof ImageInterleaved ) {
  			if (InterleavedU8.class == input.getClass()) {
  				PixelMath.plus((InterleavedU8) input, (int) value, (InterleavedU8) output);
  			} else if (InterleavedS8.class == input.getClass()) {
  				PixelMath.plus((InterleavedS8) input, (int) value, (InterleavedS8) output);
  			} else if (InterleavedU16.class == input.getClass()) {
  				PixelMath.plus((InterleavedU16) input, (int) value, (InterleavedU16) output);
  			} else if (InterleavedS16.class == input.getClass()) {
  				PixelMath.plus((InterleavedS16) input, (int) value, (InterleavedS16) output);
  			} else if (InterleavedS32.class == input.getClass()) {
  				PixelMath.plus((InterleavedS32) input, (int) value, (InterleavedS32) output);
  			} else if (InterleavedS64.class == input.getClass()) {
  				PixelMath.plus((InterleavedS64) input, (long) value, (InterleavedS64) output);
  			} else if (InterleavedF32.class == input.getClass()) {
  				PixelMath.plus((InterleavedF32) input, (float) value, (InterleavedF32) output);
  			} else if (InterleavedF64.class == input.getClass()) {
  				PixelMath.plus((InterleavedF64) input, value, (InterleavedF64) output);
  			} else {
  				throw new IllegalArgumentException("Unknown image Type: " + input.getClass().getSimpleName());
  			}
  		} else {
  			Planar in = (Planar)input;
  			Planar out = (Planar)output;
  
  			for (int i = 0; i < in.getNumBands(); i++) {
  				plus(in.getBand(i),value,out.getBand(i));
  			}
  		}
  	}