code: private static ECoordinate determinant_(Point2D p, Point2D q, Point2D r) {
  		ECoordinate det_ec = new ECoordinate();
  		det_ec.set(q.x);
  		det_ec.sub(p.x);
  
  		ECoordinate rp_y_ec = new ECoordinate();
  		rp_y_ec.set(r.y);
  		rp_y_ec.sub(p.y);
  
  		ECoordinate qp_y_ec = new ECoordinate();
  		qp_y_ec.set(q.y);
  		qp_y_ec.sub(p.y);
  
  		ECoordinate rp_x_ec = new ECoordinate();
  		rp_x_ec.set(r.x);
  		rp_x_ec.sub(p.x);
  
  		det_ec.mul(rp_y_ec);
  		qp_y_ec.mul(rp_x_ec);
  		det_ec.sub(qp_y_ec);
  		return det_ec;
  	}
docs: Orientation predicates