The cubic curve routines for Maple may be found at
For these routines a cubic curve is represented by its vector of ten coefficients. For reasons connected with the usual numbering of the coefficients of a cubic curve in Weierstrass normal form the vector of coefficients is stored as an array with index values in the interval . Of course such an array may be introduced explicitly using the Maple function array. The function winitell is provided here for convenience in entering a cubic curve in Weierstrass form. It takes as argument a list with 6 entries which are the coefficients . (The automatic value serves behind the scenes in the 10 slot array as the coefficient of .) There is an optional second argument, a prime number , that is used to indicate the field of coefficients, for handling arithmetic mod .
Example:
Example:
Example:
Example:
Note the entry of denominators. It is the rule rather than the exception when working with rational coefficients and coordinates. Of course, denominators should not appear in computations modulo a prime .
Example:
Example:
Get used to seeing denominators. Note also that is it not an easy matter to come up with examples of points on having rational coordinates, much less integer coordinates.
But now explain what is happening here:
There are 3 coordinates, because the point of in question is not a point of the affine plane. It is, in fact, the triple of homogeneous coordinates for the unique point of on the line at infinity — the origin for the arithmetic on . This computation means, therefore, that is the negative relative to the arithmetic on when coefficients and coordinates are integers mod . Note that this is consistent with the fact that is the negative of when coefficients and coordinates are rational since one has