Found myself contemplating Diophantine solutions for:
(x2 + ay2)(u2 + bv2) = p2 + cq2
And realized with my BQD Iterator can find easily enough, when c = a+b+ab:
(x2 + ay2)(u2 + bv2) = p2 + (a + b + ab)q2
Oh yeah c = a+b+ab is actually forced for it to work! Which I forgot so need to remind myself here. That keeps them all in sync. Which will always have solutions with any given 'a' and 'b' if you start iterators at 1 or -1, for x, y, u and v.
Here's an example where they can't stay in sync, let a = -2, b = -3, -2 - 3 + (-2)(-3) = 1:
(x2 - 2y2)(u2 - 3v2) = p2 + q2
Which doesn't iterate. The right side doesn't.
Ok, continue up a bit, let a = -3, b = -5, -3 - 5 + (-3)(-5) = 7:
(x2 - 3y2)(u2 - 5v2) = p2 + 7q2
That does iterate. Or could do a = 3, b = -5, 3 - 5 + 3(-5) = -17:
(x2 + 3y2)(u2 - 5v2) = p2 - 17q2
And that does as well.
Still continuing up by primes, let a = -5, b = -7, -5 - 7 + (-5)(-7) = 23:
(x2 - 5y2)(u2 - 7v2) = p2 + 23q2
That does iterate. Or could do a = 5, b = -7, 5 - 7 + 5(-7) = -37:
(x2 + 5y2)(u2 - 7v2) = p2 - 37q2
And that does as well. You know at first I'm wondering if prime 'c' is just a coincidence but it gives the math more flexibility but that also is something would need investigation. Will note here as speculative but maybe worth considering further someday?
Oh, should note why more flexibility with prime 'c'. The left side is a quadratic residue, for instance with the last modulo 37. And primes have more quadratic residues available.
Got me curious. Guess easy enough to jump up just a bit without going to very BIG numbers.
Still continuing up by primes, let a = -97, b = -101, -97 - 101 + (-97)(-101) = 9599 = 29(331):
(x2 - 97y2)(u2 - 101v2) = p2 + 9599q2
And switching signs a = 97, b = -101, 97 - 101 + 97(-101) = -9801 = -992:
(x2 + 97y2)(u2 - 101v2) = p2 - 992q2 = (p - 99q)(p + 99q)
Glad I went up a bit. So yeah, found non-prime cases for 'c' easily enough. And found situation where is a square.
So these are Diophantine factorizations. Kind of things that really only make sense with the BQD Iterator as in every case where iterates are an infinite set of solutions in existence.
Maybe should iterate some to look at some solutions, but just don't feel like it right now. Would just be too tedious. I do know that if I start with variables set to 1 or -1 do guarantee solutions. So yeah, easy to work out actual answers but don't feel like it. Kind of arena where I think it'd be more fun to use a computer.