def point_on_line(ab, c):
(a,b) = ab<EOL>abc = [np.asarray(u) for u in (a,b,c)]<EOL>if any(len(u.shape) == <NUM_LIT:2> for u in abc): (a,b,c) = [np.reshape(u,(len(u),-<NUM_LIT:1>)) for u in abc]<EOL>else:                                   (a,b,c) = abc<EOL>vca = a - c<EOL>vcb = b - c<EOL>uba = czdivide(vba, np.sqrt(np.sum(vba**<NUM_LIT:2>, axis=<NUM_LIT:0>)))<EOL>uca = czdivide(vca, np.sqrt(np.sum(vca**<NUM_LIT:2>, axis=<NUM_LIT:0>)))<EOL>return (np.isclose(np.sqrt(np.sum(vca**<NUM_LIT:2>, axis=<NUM_LIT:0>)), <NUM_LIT:0>) |<EOL>np.isclose(np.sqrt(np.sum(vcb**<NUM_LIT:2>, axis=<NUM_LIT:0>)), <NUM_LIT:0>) |<EOL>np.isclose(np.abs(np.sum(uba*uca, axis=<NUM_LIT:0>)), <NUM_LIT:1>))<EOL>
point_on_line((a,b), c) yields True if point x is on line (a,b) and False otherwise.