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 |
The object certifyDistinctSoln is a method function.