docs: public static <T extends KernelBase> T gaussian(int DOF, boolean isFloat, int numBits, double sigma, int radius)
  	{
  		if( radius <= 0 )
  			radius = FactoryKernelGaussian.radiusForSigma(sigma,0);
  		else if( sigma <= 0 )
  			sigma = FactoryKernelGaussian.sigmaForRadius(radius,0);
  
  		if( DOF == 2 ) {
  			if( numBits == 32 ) {
  				Kernel2D_F32 k = gaussian2D_F32(sigma,radius, true, isFloat);
  				if( isFloat )
  					return (T)k;
  				return (T) KernelMath.convert(k,MIN_FRAC);
  			} else if( numBits == 64 ) {
  				Kernel2D_F64 k = gaussian2D_F64(sigma,radius, true, isFloat);
  				if( isFloat )
  					return (T)k;
  				else
  					throw new IllegalArgumentException("64bit int kernels supported");
  			} else {
  				throw new IllegalArgumentException("Bits must be 32 or 64");
  			}
  		} else if( DOF == 1 ) {
  			if( numBits == 32 ) {
  				Kernel1D_F32 k = gaussian1D_F32(sigma,radius, true, isFloat);
  				if( isFloat )
  					return (T)k;
  				return (T)KernelMath.convert(k,MIN_FRAC);
  			} else if( numBits == 64 ) {
  				Kernel1D_F64 k = gaussian1D_F64(sigma, radius, true, isFloat);
  				if( isFloat )
  					return (T)k;
  				return (T)KernelMath.convert(k,MIN_FRACD);
  			} else {
  				throw new IllegalArgumentException("Bits must be 32 or 64 not "+numBits);
  			}
  		} else {
  			throw new IllegalArgumentException("DOF not supported");
  		}
  	}