"""
ATTRACTOR COORDINATE SYSTEM: COMPLETE TEST
Run this. It takes 2-5 minutes.
"""
import math
import time
def A(j):
return (4**j - 1) // 3
def C(j):
return 2**(2*j - 1)
def sieve_primes(limit):
is_prime = bytearray(b'\x01') * (limit + 1)
is_prime[0:2] = b'\x00\x00'
for i in range(2, int(limit**0.5) + 1):
if is_prime[i]:
start = i * i
step = i
is_prime[start:limit+1:step] = b'\x00' * ((limit - start)//step + 1)
return {i for i in range(2, limit + 1) if is_prime[i]}
def get_twin_coordinates(j, prime_set):
Cj = C(j)
Aj = A(j)
twins = []
for x in range(1, Cj + 1, 4):
n1 = Aj + 2*x
if n1 in prime_set and (n1 + 2) in prime_set:
twins.append(x)
return twins
def analyze_generation(j, prime_set):
T_j = get_twin_coordinates(j, prime_set)
T_gen = []
for x in T_j:
z = 4*x + 1
if z <= C(j+1):
n1 = A(j+1) + 2*z
if n1 in prime_set and (n1 + 2) in prime_set:
T_gen.append(z)
T_next = get_twin_coordinates(j+1, prime_set)
result = {
'j': j,
'|T_j|': len(T_j),
'|T_gen|': len(T_gen),
'|T_next|': len(T_next)
}
if len(T_next) > 0:
result['R_j'] = len(T_gen) / len(T_next)
else:
result['R_j'] = 0.0
return result
# ============================================================
# PART 1: Generation Analysis (j=2 to 6)
# ============================================================
print("=" * 60)
print("EXTENDED TEST: Generation Analysis (j=2 to 6)")
print("=" * 60)
j_max = 6
max_n = A(j_max + 1) + 2*C(j_max + 1) + 10
print(f"Sieving primes up to {max_n:,}...")
start = time.time()
prime_set = sieve_primes(max_n)
print(f"Done. Found {len(prime_set):,} primes in {time.time()-start:.2f}s")
print("\nAnalyzing levels j=2 to 6...\n")
print(f"{'j':<6} {'|T_j|':<10} {'|T_gen|':<12} {'|T_next|':<12} {'R_j':<12}")
print("-" * 55)
for j in range(2, j_max + 1):
result = analyze_generation(j, prime_set)
print(f"{j:<6} {result['|T_j|']:<10} {result['|T_gen|']:<12} {result['|T_next|']:<12} {result['R_j']:<12.6f}")
# ============================================================
# PART 2: Symmetric Prime Pair Table (j=2 to 4)
# ============================================================
print("\n" + "=" * 60)
print("SYMMETRIC PRIME PAIRS FOR TWIN PRIMES UP TO j=4")
print("=" * 60)
print(f"\n{'Twin Prime Pair':<20} {'Level j':<10} {'Symmetric Pair (x, C-x)':<25}")
print("-" * 60)
for j in range(2, 5):
Cj = C(j)
Aj = A(j)
T_j = get_twin_coordinates(j, prime_set)
for x in T_j:
p = Aj + 2*x
q = p + 2
sym_pair = (x, Cj - x)
print(f"({p}, {q}){' ':<14} {j:<10} {sym_pair}")
print("\n" + "=" * 60)
print("DONE.")
print("=" * 60)
To embed this project on your website, copy the following code and paste it into your website's HTML: