static public Rational centrlFactNumt(int n,int k)
        {
                if ( k > n || k < 0 || ( k % 2 ) != (n % 2) )
                        return Rational.ZERO ;
                else if ( k == n)
                        return Rational.ONE ;
                else
                {
                        /* Proposition 6.2.6 */
                        Factorial f = new Factorial() ;
                        Rational jsum = new Rational(0,1) ;
                        int kprime = n-k ;
                        for ( int j =0 ; j <= kprime ; j++)
                        {
                                Rational nusum = new Rational(0,1) ;
                                for(int nu =0 ; nu <= j ; nu++)
                                {
                                        Rational t = new Rational(j-2*nu,2) ;
                                        t = t.pow(kprime+j) ;
                                        t = t.multiply( binomial(j,nu) ) ;
                                        if ( nu % 2 != 0 )
                                                nusum = nusum.subtract(t) ;
                                        else
                                                nusum = nusum.add(t) ;
                                }
                                nusum = nusum.divide( f.at(j) ).divide(n+j) ;
                                nusum = nusum.multiply( binomial(2*kprime,kprime-j) ) ;
                                if ( j % 2 != 0 )
                                        jsum = jsum.subtract(nusum) ;
                                else
                                        jsum = jsum.add(nusum) ;
                        }
                        return jsum.multiply(k).multiply( binomial(n+kprime,k) ) ;
                }
        } /* CentralFactNumt */