code: public static <I extends ImageGray<I>, D extends ImageGray<D>>
  	AnyImageDerivative<I,D> createAnyDerivatives( DerivativeType type , Class<I> inputType , Class<D> derivType ) {
  
  		boolean isInteger = !GeneralizedImageOps.isFloatingPoint(inputType);
  		KernelBase kernel = lookupKernelX(type,isInteger);
  
  		if( kernel instanceof Kernel1D )
  			return new AnyImageDerivative<>((Kernel1D) kernel, inputType, derivType);
  		else
  			return new AnyImageDerivative<>((Kernel2D) kernel, inputType, derivType);
  	}
docs: <p>
  Convenience function for creating an instance of {@link boofcv.abst.filter.derivative.AnyImageDerivative}.
  This class is an any way to compute any derivative of any order using the specified kernel.  It might
  use more memory or be more expensive the specialized code but is easy to use.
  </p>
  
  @param type Type of gradient to use
  @param inputType Type of input image.
  @param derivType Type of derivative image
  @param <I> Image type.
  @param <D> Image derivative type.
  @return AnyImageDerivative