code: public static <T extends ImageGray<T>, II extends ImageGray<II>>
  	DescribeImageDense<T,TupleDesc_F64> surfFast(@Nullable ConfigDenseSurfFast config , Class<T> imageType)
  	{
  		if( config == null )
  			config = new ConfigDenseSurfFast();
  
  		DescribeRegionPoint<T,TupleDesc_F64> surf =
  				(DescribeRegionPoint)FactoryDescribeRegionPoint.surfFast(config.surf, imageType);
  
  		return new GenericDenseDescribeImageDense<>(surf, BoofDefaults.SURF_SCALE_TO_RADIUS,
  				config.descriptorScale, config.sampling.periodX, config.sampling.periodY);
  	}
docs: <p>
  Creates a SURF descriptor.  SURF descriptors are invariant to illumination, orientation, and scale.
  BoofCV provides two variants. This SURF variant created here is designed for speed and sacrifices some stability.
  Different descriptors are produced for gray-scale and color images.
  </p>
  
  @see DescribePointSurf
  
  @param config SURF configuration. Pass in null for default options.
  @param imageType Type of input image.
  @return SURF description extractor