int _side ( double ptX , double ptY ) { Point2D v1 = new Point2D ( ptX , ptY ) ; v1 . sub ( getStartXY ( ) ) ; Point2D v2 = new Point2D ( ) ; v2 . sub ( getEndXY ( ) , getStartXY ( ) ) ; double cross = v2 . crossProduct ( v1 ) ; double crossError = 4 * NumberUtils . doubleEps ( ) * ( Math . abs ( v2 . x * v1 . y ) + Math . abs ( v2 . y * v1 . x ) ) ; return cross > crossError ? - 1 : cross < - crossError ? 1 : 0 ; }
of the roundoff error )