(self, **hints)
Function to expand binomial(n,k) when m is positive integer
        Also,
        n is self.args[0] and k is self.args[1] while using binomial(n, k)
Function to expand binomial(n,k) when m is positive integer
        Also,
        n is self.args[0] and k is self.args[1] while using binomial(n, k)
Function to expand binomial ( n k ) when m is positive integer Also n is self . args [ 0 ] and k is self . args [ 1 ] while using binomial ( n k )
def _eval_expand_func(self, **hints):
        """
        Function to expand binomial(n,k) when m is positive integer
        Also,
        n is self.args[0] and k is self.args[1] while using binomial(n, k)
        """
        n = self.args[0]
        if n.is_Number:
            return binomial(*self.args)

        k = self.args[1]
        if k.is_Add and n in k.args:
            k = n - k

        if k.is_Integer:
            if k == S.Zero:
                return S.One
            elif k < 0:
                return S.Zero
            else:
                n = self.args[0]
                result = n - k + 1
                for i in xrange(2, k + 1):
                    result *= n - k + i
                    result /= i
                return result
        else:
            return binomial(*self.args)
def _eval_expand_func ( self , * * hints ) : n = self . args [ 0 ] if n . is_Number : return binomial ( * self . args ) k = self . args [ 1 ] if k . is_Add and n in k . args : k = n - k if k . is_Integer : if k == S . Zero : return S . One elif k < 0 : return S . Zero else : n = self . args [ 0 ] result = n - k + 1 for i in xrange ( 2 , k + 1 ) : result *= n - k + i result /= i return result else : return binomial ( * self . args )