':param curve:
A PrimeCurve object
:param x:
The x coordinate of the point as an integer
:param y:
The y coordinate of the point as an integer
:param order:
The order of the point, as an integer - optional'

def __init__(self, curve, x, y, order=None):

    self.curve = curve
    self.x = x
    self.y = y
    self.order = order
    if self.curve:
        if (not self.curve.contains(self)):
            raise ValueError(u'Invalid    EC    point')
    if self.order:
        if ((self * self.order) != INFINITY):
            raise ValueError(u'Invalid    EC    point')
