Beispiel #1
0
        public static BigNum operator *(BigNum a, BigNum b)
        {
            BigNum ret = new BigNum();

            for (int i = 0; i < b._element.Count; i++)
            {
                if (b.GetElement(i) == 0)
                    continue;
                for (int j = 0; j < a._element.Count; j++)
                {
                    if (a.GetElement(j) == 0)
                        continue;
                    ret.SetElement(i + j, ret.GetElement(i + j) + a.GetElement(j) * b.GetElement(i));
                }

                ret.Refine();
            }

            ret._isNegtive = a._isNegtive ^ b._isNegtive;
            ret._dotPos = a._dotPos + b._dotPos;

            return ret;
        }