This function executes the gamma test based on the value computed by computeConstants, and determine whether given points are distinct or not.
i1 : R = QQ[x1,x2,y1,y2]; |
i2 : f = polySystem {3*y1 + 2*y2 -1, 3*x1 + 2*x2 -7/2,x1^2 + y1^2 -1, x2^2 + y2^2 - 1}; |
i3 : p1 = point{{.95,.32,-.30,.95}}; |
i4 : p2 = point{{.65,.77,.76,-.64}}; |
i5 : certifyDistinctSoln(f,p1,p2) o5 = true |
However, if two solutions are too close, it concludes that inputs are not disticnt.
i6 : p1 = point{{.6525,.7712,.7577,-.6366}}; |
i7 : p2 = point{{.653,.771,.758,-.637}}; |
i8 : certifyDistinctSoln(f,p1,p2) o8 = false |
Even worse, if two solutions are close enough and both have alpha value which are bigger than 0.03, it gives indecisive comments.
In this case, user should apply newtonOper to the point to get more precise approximation.
i9 : p1 = point{{.95,.32,-.30,.95}}; |
i10 : p2 = point{{.95,.32,-.301,.95}}; |
i11 : certifyDistinctSoln(f,p1,p2) o11 = false |