This is amazing work. I'm going to integrate this into my current research, may solve something.
getElement(-f, 1, getT(x[t]+1))
Where c is the product of two primes:
c % (N-1) = 2d+1
If n is too small, the large square appears as an exact value of i[t] in e or -f
That is what the algorithm from earlier is showing, it can be extended.
public VQCElement getElementBelowRoot(BigInteger e, BigInteger n, BigInteger d) { BigInteger c = d.multiply(d).add(e); BigInteger f = (d.add(n)).pow(2).subtract(c); BigInteger xpn = sqrt(f); BigInteger x = xpn.subtract(n); boolean eIsEven = isEven(e); boolean xIsEven = isEven(x); if (!(eIsEven == xIsEven)) { x = x.subtract(one); } return getElement(e, n, getT(e, x)); }
I was wrong about half of my observation. sqrt(f) gives you where d is between in (e,1), but sqrt(2f + e) is what gives you where d is in (-f, 1)
I misinterpreted an addition operation for a subtraction operation in my program. What it for -f is this:
c' = d^2 - f
(d+1)^2 - c' = f'
xpn = sqrt('f)
x = xpn - 1
I noticed my mistake because sqrt(e) was giving the wrong x value, but sqrt(2f+e) wasn't.
The importance of column zero is all in the fact that it encodes c value whose remainder is 0, squares
It's filled with alternate factorisations of squares
Shouldn't such an alternate factorisation exist for i or squared?