core/src/main/java/org/bouncycastle/pqc/crypto/qtesla/Polynomial.java
/**********************************************************************************************
     * Description:	Barrett Reduction for Provably-Secure qTESLA Security Category-1 and Category-3
     *
     * @param        number                    Number to be Reduced
     * @param        barrettMultiplication
     * @param        barrettDivision
     * @param        q                        Modulus
     *
     * @return Reduced Number
     **********************************************************************************************/
Barrett Reduction for Provably-Secure qTESLA Security Category-1 and Category-3
@param        number                    Number to be Reduced
@param        barrettMultiplication
@param        barrettDivision
@param        q                        Modulus

@return Reduced Number
Barrett Reduction for Provably - Secure qTESLA Security Category - 1 and Category - 3 @param number Number to be Reduced @param barrettMultiplication @param barrettDivision @param q Modulus @return Reduced Number
static long barrettP(long number, int q, int barrettMultiplication, int barrettDivision)
    {
        long u = ((number * barrettMultiplication) >> barrettDivision) * q;
        return number - u;
    }
static long barrettP ( long number , int q , int barrettMultiplication , int barrettDivision ) { long u = ( ( number * barrettMultiplication ) >> barrettDivision ) * q ; return number - u ; }
Description:     Barrett Reduction for Provably-Secure qTESLA Security Category-1 and Category-3
 @param        number                    Number to be Reduced
 @param        barrettMultiplication
 @param        barrettDivision
 @param        q                        Modulus
Description : Barrett Reduction for Provably - Secure qTESLA Security Category - 1 and Category - 3 @param number Number to be Reduced @param barrettMultiplication @param barrettDivision @param q Modulus