Пример #1
0
        private static MyPoint MultiplyByScalar(MyPoint point, MyBigInteger scalar)
        {
            var result = new MyPoint(null, null, point.Curve);

            while (scalar != 0)
            {
                if (scalar % 2 == 1)
                {
                    result = result + point;
                    scalar--;
                }
                else
                {
                    point  = point.Double();
                    scalar = scalar / 2;
                }
            }

            return(result);
        }