Programming for Mathematics Assignment, 22 August 2014 Define a version of Point where the dimension is not fixed. Internally, represent the point as a list of coordinates. a. The constructor __init__ should take a list of coordinates as an argument. The length of the list is the dimension of the point. If no argument is provided, the default is to create a 2 dimensional point at the origin. b. Define p.setpoint(l) and p.getpoint() as before. Here p.setpoint(l) would reset p to the coordinates given in l, possibly with a different dimension. c. Define a function p.distance(q) that computes the angle of q with respect to p. Your answer should be in the range -pi to pi. Use the connection between dot product and cos(theta). If the dimensions of p and q don't match, assume that the missing coordinates are 0. d. Provide an function p.extend_dimension(l) that extends the dimension of p with the coordinates in l. e. Maintain a static collection of all Points ever created, as in Assignment 2, and define p.nearestpoint(), using the angular distance defined in (c). Remember that the angle could be negative. Report the point whose angle with respect to p is smallest in magnitude. ----------------------------------------------------------------------