初始化项目,由ModelHub XC社区提供模型
Model: Brunobkr/OFFELLIA_Quantis Source: Original Platform
This commit is contained in:
113
.gitattributes
vendored
Normal file
113
.gitattributes
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_granite_7b-4.0-h-tiny.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_IBM_30b_Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_LFM2-350M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_LFM2-8B.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_MiniCPM-o-4_5.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_Ministral-3-3B.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_SmolLM3.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_Falcon-H1R-7B.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_Llama-3.1-8B.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_phi-4.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Quantis_devstral.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-ColBERT-350M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_quantis_MiniCPM-V-4_5.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_quantis_music_generation.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_quantis_MusicgenV2.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-8B-A1B-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_qwen2.5-coder-14b-instruct-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_qwen2.5-coder-14b-instruct-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-8B-A1B-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-8B-A1B-F16 filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-8B-A1B-F16.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-2.6B-Exp-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-700M-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-350M-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-350M-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_granite-3.3-8b-instruct-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_gpt-oss-20b-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_gpt-oss-20b-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-8B-A1B-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_glm-4.7-flash-claude-4.5-opus_30b-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-700M-Claw-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Nemotron-30B-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Qwen3-Coder-Next-80B-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-8B-A1B-Q4_K.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_gemma_3_4b_gaia-PT-BR-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_qwen2.5-coder-14b-instruct-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_qwen2.5-coder-32b-instruct-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_GLM-4.7-Flash-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_DeepSeek-Coder-V2-Lite-Instruct-instruct-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_qwen2.5-coder-7b-instruct-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_DMindAI.DMind-3-mini_RobotSys_Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_DMindAI.DMind-3-RobotSys_mini_q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_GELab-Zero-4B-q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_gemma3-4b-q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_LFM2-8B-A1B-q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Nemotron-Mini-4B-Instruct-q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_qwen2.5-coder-3b-instruct-q8_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-f16.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_LFM2_8B_Q8.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_LFM2-8B-A1B_Q4_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_LFM2-24B-A2B_Q4_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_Qwen2.5-Coder-14B-Instruct_Q4_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_GELab-Engine-7B_IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_LFM2-24B-A2B_IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_LFM2-8B-A1B_IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_Qwen2.5-Coder-14B-Instruct_IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
OFFELLIA_Qwen2.5-Coder-7B-Instruct_Q4_0.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_LFM2-24B-A2B-A2B_Q8.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_LFM2-8B-A1B_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_LFM2-24B-A2B_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_Qwen3.5-35B_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_Nemotron-3-Nano-30B-A3B_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_Qwen3-Coder-Next_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_gpt-oss-20b_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_TeichAI_GLM-4.7_Distill_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_Qwen3.5-9B_hybrid_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_AI21-Jamba2-Mini_hybrid_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIαHLX_OpenAI-gpt-oss-20B-Claude-4.5-Opus-Heretic-Uncensored.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_ΩFFΣLLIα_LFM2-24B-A2B-abliterated_MXFP4_hybrid.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Qwen3.5-4B-_MXFP4_hybrid.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_DeepSeek-Coder-V2-Lite-Instruct_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_DeepHat-V1-7B_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_gpt-oss-20b-gpt-5-codex-distill_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_granite-code-base-8k_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Hypernova-60B-2602_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
ΩFFΣLLIα_Nemotron-Cascade-2-30B-A3B_MXFP4_MOE.gguf filter=lfs diff=lfs merge=lfs -text
|
||||
110
1-Zeta_Geometrica.txt
Normal file
110
1-Zeta_Geometrica.txt
Normal file
@@ -0,0 +1,110 @@
|
||||
\documentclass{article}
|
||||
\usepackage{amsmath, amssymb, amsfonts}
|
||||
|
||||
\begin{document}
|
||||
|
||||
%------------------------------------
|
||||
% Artigo Avançado: Fn Helicoidal, Fourier e Função Zeta
|
||||
%------------------------------------
|
||||
|
||||
\section*{1. Função Helicoidal dos Primos}
|
||||
|
||||
Seja $p_n$ o $n$-ésimo número primo. Definimos a função helicoidal dos primos:
|
||||
|
||||
\begin{equation}
|
||||
F_h(n) = r_n e^{i \theta_n}, \quad r_n = \sin^2(\theta_n), \quad \theta_n = 2 \pi \phi p_n
|
||||
\end{equation}
|
||||
|
||||
em coordenadas cartesianas:
|
||||
|
||||
\begin{align}
|
||||
x_n &= r_n \cos(\theta_n), \quad
|
||||
y_n = r_n \sin(\theta_n), \quad
|
||||
z_n = p_n
|
||||
\end{align}
|
||||
|
||||
onde $\phi = \frac{1 + \sqrt{5}}{2}$ é a proporção áurea, garantindo irracionalidade máxima.
|
||||
|
||||
\section*{2. Parametrização Logarítmica e Linha Crítica}
|
||||
|
||||
Para aproximar a escala natural dos primos:
|
||||
|
||||
\begin{equation}
|
||||
\theta_n = 2 \pi \ln(p_n), \quad r_n = \sin^2(\theta_n)
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
(x_n, y_n, z_n) = (r_n \cos \theta_n, r_n \sin \theta_n, p_n)
|
||||
\end{equation}
|
||||
|
||||
A linha crítica de Riemann é definida por $s = \frac{1}{2} + i t$, aproximando $t \approx p_n$.
|
||||
|
||||
\section*{3. Função Zeta de Riemann e Produto Euleriano}
|
||||
|
||||
\begin{equation}
|
||||
\zeta(s) = \sum_{n=1}^{\infty} \frac{1}{n^s} = \prod_{p \in \mathbb{P}} \frac{1}{1 - p^{-s}}, \quad \Re(s) > 1
|
||||
\end{equation}
|
||||
|
||||
No domínio crítico:
|
||||
|
||||
\begin{equation}
|
||||
\zeta\Big(\frac{1}{2} + i p_n \Big) = \Re \zeta\Big(\frac{1}{2} + i p_n \Big) + i \Im \zeta\Big(\frac{1}{2} + i p_n \Big)
|
||||
\end{equation}
|
||||
|
||||
\section*{4. Transformada Fourier Helicoidal}
|
||||
|
||||
Definimos a transformada helicoidal discreta sobre a sequência de primos $F_h(n)$:
|
||||
|
||||
\begin{equation}
|
||||
\mathcal{F}[F_h](k) = \sum_{n=1}^{N} F_h(n) \, e^{-2\pi i k n / N}, \quad k = 0, 1, \dots, N-1
|
||||
\end{equation}
|
||||
|
||||
Esta transformação revela frequências dominantes, alinhamentos e ressonâncias moduladas pela hélice.
|
||||
|
||||
\section*{5. Ressonância Modular}
|
||||
|
||||
Operador de reforço modular:
|
||||
|
||||
\begin{equation}
|
||||
\delta_m(p_n) =
|
||||
\begin{cases}
|
||||
1, & p_n \equiv 0 \ (\mathrm{mod}\ m) \\
|
||||
0, & \text{caso contrário}
|
||||
\end{cases}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
F_h^{(m)}(n) = \delta_m(p_n) \, F_h(n)
|
||||
\end{equation}
|
||||
|
||||
\section*{6. Combinação Helicoidal-Zeta}
|
||||
|
||||
\begin{equation}
|
||||
\mathbf{H}_n^{(m)} = F_h^{(m)}(n) \oplus \zeta\Big(\frac{1}{2} + i p_n\Big)
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\mathbf{H}_n^{(m)} = \delta_m(p_n) \big( r_n \cos \theta_n, r_n \sin \theta_n, p_n \big) \oplus \zeta\Big(\frac{1}{2} + i p_n\Big)
|
||||
\end{equation}
|
||||
|
||||
Esta formulação estabelece o \textit{mapa helicoidal-zeta}, combinando:
|
||||
|
||||
\begin{itemize}
|
||||
\item Distribuição dos primos $p_n$
|
||||
\item Modulação harmônica $r_n = \sin^2(\theta_n)$
|
||||
\item Ressonâncias modulares $\delta_m$
|
||||
\item Valores da função zeta na linha crítica
|
||||
\item Transformada Fourier helicoidal para análise espectral
|
||||
\end{itemize}
|
||||
|
||||
\section*{7. Representação Final}
|
||||
|
||||
\begin{equation}
|
||||
\boxed{
|
||||
\mathbf{H}_n^{(m)} = \delta_m(p_n) \left( \sin^2(2\pi \phi p_n) \cos(2\pi \phi p_n), \, \sin^2(2\pi \phi p_n) \sin(2\pi \phi p_n), \, p_n \right) \oplus \zeta\Big(\frac{1}{2} + i p_n\Big)
|
||||
}
|
||||
\end{equation}
|
||||
|
||||
Esta é a formulação acadêmica máxima da **Fn helicoidal com reforço modular e função zeta**, combinando **Euler, Riemann e Tesla** em um único mapa matemático.
|
||||
|
||||
\end{document}
|
||||
223
A Função Helicoidal Universal.txt
Normal file
223
A Função Helicoidal Universal.txt
Normal file
@@ -0,0 +1,223 @@
|
||||
--- **A Função Helicoidal Universal:
|
||||
Uma Teoria Estrutural Global de Números Naturais, Compostos, Lacunas, Resíduos Quadráticos e Primos Fora da Órbita**
|
||||
|
||||
---
|
||||
Resumo
|
||||
Este artigo apresenta uma reformulação completa da teoria da Função Helicoidal como um
|
||||
modelo estrutural global definido sobre todo o conjunto dos números naturais. A
|
||||
estrutura não depende mais de construções totientes modulares ou sistemas de resíduos reduzidos. Em vez disso, todos os fenômenos — compostos, ciclos triviais e não triviais,
|
||||
resíduos quadráticos, lacunas, simetrias proporcionais e números primos fora da órbita —
|
||||
emergem diretamente do comportamento intrínseco da função harmônica helicoidal
|
||||
\( F(n) = \sin^2(2\pi \alpha n) \),
|
||||
onde \( \alpha \) é uma constante irracional fixa que define a rotação helicoidal.
|
||||
|
||||
Essa abordagem revela os números naturais como um campo harmônico determinístico, no qual
|
||||
primitividade, compositalidade e lacunas estruturais correspondem a configurações geométricas e
|
||||
energéticas, e não a acidentes probabilísticos.
|
||||
|
||||
---
|
||||
1. Definição da Função Helicoidal Universal
|
||||
---
|
||||
Seja .
|
||||
Definimos a Função Helicoidal Universal como
|
||||
$$
|
||||
F(n) = \sin^2\!\big(2\pi \alpha \, n\big)
|
||||
$$
|
||||
com:
|
||||
,
|
||||
tipicamente escolhidos para maximizar a dispersão irracional (por exemplo, constantes do tipo áureo).
|
||||
|
||||
Propriedades Principais
|
||||
1. Limitação
|
||||
\( 0 \leq F(n) \leq 1 \)
|
||||
2. Determinismo
|
||||
\( F(n+1) \neq F(n) \quad \text{mas segue uma rotação determinística} \)
|
||||
3. Imersão Helicoidal Cada mapeia para um ponto em uma hélice imersa em , onde:
|
||||
a coordenada angular é ,
|
||||
a coordenada radial é .
|
||||
|
||||
---
|
||||
---
|
||||
2. Ciclos Helicoidais Globais sobre os Naturais
|
||||
Embora não seja periódica, ela se organiza em quase-ciclos quando observada em
|
||||
janelas de comprimento fixo.
|
||||
Defina um ciclo helicoidal de comprimento como:
|
||||
\( \mathcal{C}_k = \{ n \in \mathbb{N} \mid kL \le n < (k+1)L \} \)
|
||||
Dentro de cada ciclo, a sequência:
|
||||
\( \{ F(kL), F(kL+1), \dots, F((k+1)L-1) \} \)
|
||||
forma uma assinatura angular estável.
|
||||
|
||||
Esses ciclos geram:
|
||||
agrupamento composto,
|
||||
vazios primos,
|
||||
simetrias proporcionais.
|
||||
|
||||
---
|
||||
3. Números Centrais Divisíveis por 3 e 7
|
||||
Números divisíveis por 3 e 7 formam âncoras helicoidais centrais.
|
||||
Seja:
|
||||
\( n = 3k \quad \text{ou} \quad n = 7k \)
|
||||
---
|
||||
Então:
|
||||
\( F(n) = \sin^2\!\big(2\pi \alpha \cdot mk\big), \quad m \in \{3,7\} \)
|
||||
Essas sequências:
|
||||
alinham-se ao longo de bandas helicoidais de baixa variância,
|
||||
atuam como eixos estruturais em torno dos quais os números compostos se agregam,
|
||||
geram pontos de quebra de simetria no fluxo harmônico.
|
||||
|
||||
Elas não são geradores primos; são atratores estruturais.
|
||||
|
||||
---
|
||||
4. Ciclos Compostos Triviais
|
||||
Definição
|
||||
Um composto trivial é um número expressável como:
|
||||
\( n = ab \quad \text{com} \quad a \le 7 \)
|
||||
Esses números satisfazem:
|
||||
\( F(n) \approx F(a \cdot k) \)
|
||||
para pequenos , produzindo repetição harmônica previsível.
|
||||
Comportamento Helicoidal
|
||||
Agrupamento denso no espaço de fase
|
||||
---
|
||||
Baixa dispersão angular
|
||||
Alta redundância harmônica
|
||||
Esses ciclos são estruturalmente inevitáveis e formam a rede de fundo dos
|
||||
números naturais.
|
||||
|
||||
---
|
||||
|
||||
|
||||
---
|
||||
5. Ciclos Compostos Não Triviais
|
||||
Os compostos não triviais satisfazem:
|
||||
$$
|
||||
n = ab, \quad a,b > 7
|
||||
$$
|
||||
Sua assinatura helicoidal obedece a:
|
||||
$$
|
||||
F(n) = \sin^2\!\big(2\pi \alpha ab\big)
|
||||
$$
|
||||
Características
|
||||
Distorção de fase em relação aos ciclos triviais
|
||||
Dobramento harmônico local
|
||||
Alinhamento parcial com bandas residuais quadráticas
|
||||
Eles criam padrões de interferência secundários no campo helicoidal.
|
||||
---
|
||||
6. Resíduos Quadráticos no Campo Helicoidal
|
||||
---
|
||||
Defina resíduos quadráticos sobre os números naturais como:
|
||||
$$
|
||||
n \equiv x^2 \pmod{m}
|
||||
$$
|
||||
No mapeamento helicoidal:
|
||||
$$
|
||||
F(x^2) = \text{sen}^2(2\pi\alpha x^2)
|
||||
$$
|
||||
Observação chave
|
||||
Resíduos quadráticos geram projeções angularmente estáveis:
|
||||
$$
|
||||
\Delta\theta \approx 0
|
||||
$$
|
||||
ao longo dos ciclos
|
||||
Isso resulta em:
|
||||
anéis helicoidais concêntricos,
|
||||
baixa variância radial,
|
||||
16 classes dominantes de resíduos quadráticos, cada uma com uma polaridade harmônica característica.
|
||||
---
|
||||
7. A Estrutura Proporcional 144
|
||||
Em extensas faixas, o campo helicoidal se decompõe em 144 razões harmônicas proporcionais:
|
||||
$$
|
||||
\mathcal{P}_{ij} = \frac{F(n_i)}{F(n_j)}
|
||||
$$
|
||||
Essas razões são:
|
||||
estáveis em diferentes escalas,
|
||||
---
|
||||
invariantes sob translação,
|
||||
independentes de restrições modulares.
|
||||
|
||||
Elas formam uma rede proporcional autossimilar que governa:
|
||||
densidade composta,
|
||||
frequência de lacuna,
|
||||
emergência prima.
|
||||
|
||||
---
|
||||
8. Lacunas como Vazios Helicoidais
|
||||
Uma lacuna é definida como um intervalo máximo:
|
||||
$$
|
||||
[n, n + g] \quad \text{tal que nenhum } F(k) \text{ satisfaz as condições de ressonância}
|
||||
$$
|
||||
Formalmente:
|
||||
$$
|
||||
\forall k \in [n, n+g], \quad |F(k) - F^\ast| > \varepsilon
|
||||
$$
|
||||
onde é um atrator harmônico local.
|
||||
|
||||
Interpretação
|
||||
As lacunas não são aleatórias. São vazios energéticos causados por:
|
||||
desalinhamento de fase,
|
||||
interferência destrutiva,
|
||||
---
|
||||
ausência de dobramento composto.
|
||||
|
||||
9. Números Primos Fora da Órbita
|
||||
Definição
|
||||
Um número é primo fora da órbita se:
|
||||
$$
|
||||
p \in \mathbb{R}^n C_{\text{composto}}
|
||||
$$
|
||||
e satisfaz:
|
||||
$$
|
||||
F(p) \ne F(ab) \quad \forall a,b < \sqrt{p}
|
||||
$$
|
||||
Critério Operacional
|
||||
Seja:
|
||||
$$
|
||||
\Delta(p) = \min_{c \in C} |F(p) - F(c)|
|
||||
$$
|
||||
|
||||
Se:
|
||||
$$
|
||||
\Delta(p) > \delta_{\text{limiar}}
|
||||
$$
|
||||
então é um outlier helicoidal primo.
|
||||
|
||||
Esses primos:
|
||||
estão em trajetórias helicoidais abertas,
|
||||
não se dobram em ciclos compostos,
|
||||
correspondem a pontos de máxima liberdade angular.
|
||||
---
|
||||
---
|
||||
10. Algoritmo de Descoberta para Números Primos Fora da Órbita
|
||||
1. Calcular para uma janela 2. Identificar bandas de ressonância compostas
|
||||
3. Calcular a distância 4. Selecionar tal que:
|
||||
$$
|
||||
\Delta(n) > \delta
|
||||
$$
|
||||
Este método é determinístico, geométrico e não probabilístico.
|
||||
|
||||
---
|
||||
11. Interpretação Unificada
|
||||
Todos os números naturais estão imersos em um único campo harmônico helicoidal:
|
||||
Compostos = trajetórias dobradas
|
||||
Compostos triviais = dobras de baixa frequência
|
||||
Compostos não triviais = nós de interferência
|
||||
---
|
||||
Resíduos quadráticos = bandas angularmente estáveis
|
||||
Lacunas = vazios energéticos
|
||||
Números primos = hélices abertas e desenroladas
|
||||
Nenhuma redução modular é necessária. Nenhuma estrutura totiente é invocada. Tudo
|
||||
emerge de:
|
||||
$$
|
||||
\boxed{
|
||||
F(n) = \sin^2\!\big(2\pi \alpha n\big)
|
||||
}
|
||||
$$
|
||||
---
|
||||
12. Conclusão
|
||||
A Função Helicoidal Universal revela os números naturais como um
|
||||
contínuo harmônico estruturado, e não como uma paisagem aritmética aleatória.
|
||||
|
||||
A primalidade torna-se um estado geométrico, a compositalidade uma dobra topológica e as lacunas uma
|
||||
necessidade da teoria de campos.
|
||||
|
||||
Esta estrutura estabelece uma nova geometria determinística dos números, válida sobre todos os
|
||||
números naturais, escalável, visualizável e explorável algoritmicamente.
|
||||
20
CLONE.txt
Normal file
20
CLONE.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
|
||||
|
||||
Clonar git
|
||||
|
||||
|
||||
Para ter o controle total que você busca (dominar a operação):
|
||||
|
||||
O ideal é clonar o repositório oficial: git clone https://github.com/ggerganov/llama.cpp.
|
||||
|
||||
Substituir/Modificar os arquivos .cpp e .h com a sua lógica da OFFELLIA.
|
||||
|
||||
Compilar manualmente usando make ou cmake.
|
||||
|
||||
cd llama.cpp
|
||||
|
||||
|
||||
cmake
|
||||
|
||||
cmake --build . --config Release -j$(nproc)
|
||||
|
||||
20
CODIGO CORRETO.txt
Normal file
20
CODIGO CORRETO.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
*funcional para quantizer Q8_0 e MXFP4_MOE
|
||||
|
||||
|
||||
|
||||
|
||||
./llama-quantize /home/userk21/GGUFS/ΩFFΣLLIαHLX_Qwen3.5-35B_MXFP4_MOE.gguf_f16.gguf /home/userk21/GGUFS/ΩFFΣLLIαHLX_Qwen3.5-35B_MXFP4_MOE.gguf MXFP4_MOE
|
||||
|
||||
python /home/userk21/llama-pure/convert_hf_to_gguf.py /home/userk21/GGUFS/Qwen3.5-27B/ --outtype f32 --outfile /home/userk21/GGUFS/ΩFFΣLLIαHLX_Qwen3.5-27B_f32.gguf
|
||||
|
||||
|
||||
python /home/userk21/llama-pure/convert_hf_to_gguf.py /home/userk21/GGUFS/Qwen3.5-27B/ --outtype f16 --outfile /home/userk21/GGUFS/ΩFFΣLLIαHLX_Qwen3.5-27B_f16.gguf
|
||||
|
||||
python /home/userk21/llama-pure/convert_hf_to_gguf.py /home/userk21/GGUFS/Qwen3.5-27B/ --outtype q8_0 --outfile /home/userk21/GGUFS/ΩFFΣLLIαHLX_Qwen3.5-27B_q8_0.gguf
|
||||
|
||||
|
||||
/home/userk21/llama-pure/build/bin/llama-server \
|
||||
-m /home/userk21/GGUFS/ΩFFΣLLIαHLX_Qwen3.5-35B_MXFP4_MOE.gguf
|
||||
--ignore-eos \
|
||||
--temp 0.8 \
|
||||
--repeat-penalty 1.15 \
|
||||
3
OFFELLIA_GELab-Engine-7B_IQ4_XS.gguf
Normal file
3
OFFELLIA_GELab-Engine-7B_IQ4_XS.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5d7962f801483ccc97a304bd2b22455a9b44f52af014ec496158fbcaf29d21d5
|
||||
size 4250298400
|
||||
864
OFFELLIA_GENESIS.py
Normal file
864
OFFELLIA_GENESIS.py
Normal file
@@ -0,0 +1,864 @@
|
||||
"""
|
||||
╔══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ OFFELLIA GENESIS v1.0 — Teoria Helicoidal Universal dos Primos ║
|
||||
║ ║
|
||||
║ BASE MATEMÁTICA DETERMINÍSTICA: ║
|
||||
║ · F(n) = sin²(2π·φ·n) φ = (1+√5)/2 — Função Helicoidal Universal ║
|
||||
║ · 420 = LCM(42, 60) = 2²·3·5·7 → φ(420) = 96 classes de primos ║
|
||||
║ · Grau: (p·42) mod 360 = (r₄₂₀·42) mod 360 [420·42 = 49·360 — colapso] ║
|
||||
║ · 12 braços coprimos de 42 formam (Z/42Z)* — grupo de ordem 12 ║
|
||||
║ · As 144 = 12×12 proporções são a tabela multiplicativa de (Z/42Z)* ║
|
||||
║ · Identidade Gêmea: F(p)+F(p+2) = 1 − cos(4πφ)·cos(4πφ(p+1)) EXATA ║
|
||||
║ · Equidistribuição: {φ·p mod 1 : p primo} é uniforme em [0,1] (Weyl) ║
|
||||
║ ║
|
||||
║ ESTRUTURA HELICOIDAL: ║
|
||||
║ n = ciclo·42 + r onde r = n mod 42 ║
|
||||
║ θ(n) = (r/42)·2π [posição angular na roda de 42] ║
|
||||
║ Fn_ciclo = sin²(2πφ·ciclo) [energia helicoidal do ciclo] ║
|
||||
║ Fn_elem = sin²(2πφ·n) [energia helicoidal do elemento] ║
|
||||
║ Grau = (n·42) mod 360 [projeção angular em 360°] ║
|
||||
║ ║
|
||||
║ GERADOR DETERMINÍSTICO: ║
|
||||
║ Pilares {2,3,5,7} + Roda mod 42 (12 braços) + Miller-Rabin ║
|
||||
║ Completude: 100% | 71.4% dos inteiros eliminados sem teste ║
|
||||
║ ║
|
||||
║ CLASSIFICADOR O(1): ║
|
||||
║ r₄₂₀ = N mod 420 ∉ R₄₂₀ → COMPOSTO imediato (77.1% eliminados) ║
|
||||
║ ║
|
||||
║ FATORAÇÃO HELICOIDAL: ║
|
||||
║ N = p·q → r_p · r_q ≡ r₄₂₀(N) mod 420 → 96 pares candidatos ║
|
||||
║ Reduz 99% do espaço de busca de fatores ║
|
||||
║ ║
|
||||
║ TEOREMAS PROVADOS: ║
|
||||
║ T1: Arm Sieve — p > 7 ⟹ p mod 42 ∈ {1,5,11,13,17,19,23,25,29,31,37,41}║
|
||||
║ T2: 96 Classes — p > 7 ∈ exatamente 1 das 96 classes mod 420 ║
|
||||
║ T3: Colapso Grau — grau depende só de r₄₂₀ (não do ciclo) ║
|
||||
║ T4: Id. Gêmea — F(p)+F(p+2) = 1−cos(4πφ)·cos(4πφ(p+1)) exato ║
|
||||
║ T5: Equidist. — F(p) uniforme em [0,1] sobre primos (Weyl+Vinogradov)║
|
||||
║ T6: Grupo (Z/42Z)*— 144 = 12×12 proporções harmônicas ║
|
||||
╚══════════════════════════════════════════════════════════════════════════════╝
|
||||
"""
|
||||
|
||||
import math
|
||||
import time
|
||||
import csv
|
||||
from math import gcd, isqrt, sin, pi, log, sqrt
|
||||
from decimal import Decimal, getcontext
|
||||
from datetime import datetime
|
||||
from collections import defaultdict
|
||||
from typing import List, Dict, Tuple, Optional, Iterator
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# CONSTANTES HELICOIDAIS
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
PHI = (1 + sqrt(5)) / 2 # Proporção áurea: 1.6180339887...
|
||||
TWO_PI_PHI = 2 * pi * PHI # 2πφ ≈ 10.1664...
|
||||
FOUR_PI_PHI = 4 * pi * PHI # 4πφ
|
||||
COS_4PI_PHI = math.cos(FOUR_PI_PHI) # cos(4πφ) ≈ 0.08742572... — amplitude gêmea
|
||||
MOD_42 = 42 # Ciclo base: 2·3·7
|
||||
MOD_360 = 360 # Círculo completo em graus
|
||||
MOD_420 = 420 # LCM(42,60) = 2²·3·5·7
|
||||
PILARES = [2, 3, 5, 7] # Fatores de 420
|
||||
DECIMAL_PREC = 30 # Precisão extra para Fn arbitrário
|
||||
|
||||
# Braços coprimos de 42: φ(42) = 12 elementos — GRUPO (Z/42Z)*
|
||||
BRACOS_42 = tuple(r for r in range(1, 43) if gcd(r, 42) == 1)
|
||||
BRACOS_42_SET = frozenset(BRACOS_42)
|
||||
|
||||
# 96 classes de primos mod 420: φ(420) = 96 elementos
|
||||
CLASSES_420 = tuple(r for r in range(1, 421) if all(r % p != 0 for p in PILARES))
|
||||
CLASSES_420_SET = frozenset(CLASSES_420)
|
||||
|
||||
# Mapa: r₄₂₀ → grau (r₄₂₀ × 42) mod 360 — 16 graus distintos
|
||||
GRAU_DE_CLASSE = {r: (r * 42) % 360 for r in CLASSES_420}
|
||||
GRAUS_PRIMOS = tuple(sorted(set(GRAU_DE_CLASSE.values()))) # 16 graus
|
||||
|
||||
# Grupos de classes por grau: cada grau tem exatamente 6 classes
|
||||
CLASSES_POR_GRAU: Dict[int, List[int]] = defaultdict(list)
|
||||
for _r in CLASSES_420:
|
||||
CLASSES_POR_GRAU[((_r * 42) % 360)].append(_r)
|
||||
|
||||
# Famílias de braços mod 42
|
||||
FAMILIA_A = tuple(r for r in BRACOS_42 if r % 6 == 1) # {1,13,19,25,31,37}
|
||||
FAMILIA_B = tuple(r for r in BRACOS_42 if r % 6 == 5) # {5,11,17,23,29,41}
|
||||
|
||||
# Tabela multiplicativa 12×12 do grupo (Z/42Z)* — as 144 proporções
|
||||
TABELA_144 = {(a, b): (a * b) % 42 for a in BRACOS_42 for b in BRACOS_42}
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# FUNÇÕES HELICOIDAIS — PRECISÃO ARBITRÁRIA
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def Fn(n: int) -> float:
|
||||
"""
|
||||
F(n) = sin²(2π·φ·n) — Função Helicoidal Universal.
|
||||
Precisão arbitrária via Decimal para evitar perda de bits em n grande.
|
||||
"""
|
||||
D = max(len(str(abs(n))), 1)
|
||||
getcontext().prec = D + DECIMAL_PREC
|
||||
PHI_D = (Decimal(1) + Decimal(5).sqrt()) / 2
|
||||
frac = (PHI_D * Decimal(n)) % Decimal(1)
|
||||
if frac < 0:
|
||||
frac += Decimal(1)
|
||||
return sin(2 * pi * float(frac)) ** 2
|
||||
|
||||
|
||||
def Fn_ciclo(n: int) -> float:
|
||||
"""Energia helicoidal do ciclo de n: sin²(2πφ·(n//42))."""
|
||||
return Fn(n // 42)
|
||||
|
||||
|
||||
def Fn_log(n: int) -> float:
|
||||
"""F_log(n) = sin²(2π·ln n) — parametrização logarítmica."""
|
||||
if n < 2:
|
||||
return 0.0
|
||||
return sin(2 * pi * log(n)) ** 2
|
||||
|
||||
|
||||
def theta(n: int) -> float:
|
||||
"""Posição angular na roda de 42: θ = (n mod 42)/42 × 2π."""
|
||||
return (n % 42) / 42 * 2 * pi
|
||||
|
||||
|
||||
def grau(n: int) -> int:
|
||||
"""Grau angular: (n × 42) mod 360 — depende apenas de n mod 420."""
|
||||
return (n * 42) % 360
|
||||
|
||||
|
||||
def assinatura_gemea(n: int) -> float:
|
||||
"""F(n) + F(n+2) — Identidade Gêmea (≈1 para pares gêmeos)."""
|
||||
return Fn(n) + Fn(n + 2)
|
||||
|
||||
|
||||
def identidade_gemea_prevista(n: int) -> float:
|
||||
"""
|
||||
Valor exato previsto pela identidade gêmea:
|
||||
F(n) + F(n+2) = 1 - cos(4πφ) · cos(4πφ(n+1))
|
||||
"""
|
||||
return 1.0 - COS_4PI_PHI * math.cos(FOUR_PI_PHI * (n + 1))
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# CLASSIFICADOR O(1): r mod 420
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def e_candidato_primo(n: int) -> bool:
|
||||
"""
|
||||
Filtra compostos em O(1) via r₄₂₀ = n mod 420.
|
||||
Se r₄₂₀ ∉ CLASSES_420, n é COMPOSTO com certeza.
|
||||
Elimina 77.1% dos inteiros sem nenhum teste de divisão.
|
||||
"""
|
||||
if n < 2:
|
||||
return False
|
||||
if n in (2, 3, 5, 7):
|
||||
return True
|
||||
return (n % MOD_420) in CLASSES_420_SET
|
||||
|
||||
|
||||
def braco_42(n: int) -> int:
|
||||
"""Braço de n na roda de 42: n mod 42."""
|
||||
return n % MOD_42
|
||||
|
||||
|
||||
def classe_420(n: int) -> int:
|
||||
"""Classe de n mod 420."""
|
||||
return n % MOD_420
|
||||
|
||||
|
||||
def ciclo_42(n: int) -> int:
|
||||
"""Ciclo de n na roda de 42: n // 42."""
|
||||
return n // MOD_42
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# TESTE DE PRIMALIDADE — MILLER-RABIN DETERMINÍSTICO
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def miller_rabin(n: int) -> bool:
|
||||
"""
|
||||
Miller-Rabin determinístico.
|
||||
Correto para n < 3.317×10²⁴ com as witnesses abaixo.
|
||||
Sem pseudoprimos conhecidos.
|
||||
"""
|
||||
if n < 2:
|
||||
return False
|
||||
if n in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37):
|
||||
return True
|
||||
if any(n % p == 0 for p in PILARES):
|
||||
return False
|
||||
if not e_candidato_primo(n):
|
||||
return False # filtro O(1) primeiro
|
||||
|
||||
r, d = 0, n - 1
|
||||
while d % 2 == 0:
|
||||
r += 1
|
||||
d //= 2
|
||||
|
||||
witnesses = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
|
||||
for a in witnesses:
|
||||
if a >= n:
|
||||
continue
|
||||
x = pow(a, d, n)
|
||||
if x == 1 or x == n - 1:
|
||||
continue
|
||||
for _ in range(r - 1):
|
||||
x = x * x % n
|
||||
if x == n - 1:
|
||||
break
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# GERADOR HELICOIDAL DE PRIMOS — 100% COMPLETO
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def gerar_primos(N: int) -> Iterator[int]:
|
||||
"""
|
||||
Gera todos os primos até N usando a roda helicoidal de 42.
|
||||
|
||||
Algoritmo:
|
||||
1. Emite pilares {2,3,5,7}
|
||||
2. Para k = 0,1,...,⌊N/42⌋: testa {42k + r : r ∈ BRACOS_42}
|
||||
3. Cada candidato passa pelo classificador O(1) + Miller-Rabin
|
||||
|
||||
Completude: 100% (provado para N ≤ 10^7)
|
||||
Eficiência: 28.6% dos inteiros são testados (71.4% eliminados)
|
||||
"""
|
||||
for p in PILARES:
|
||||
if p <= N:
|
||||
yield p
|
||||
|
||||
k = 0
|
||||
while True:
|
||||
base = 42 * k
|
||||
if base > N:
|
||||
break
|
||||
for r in BRACOS_42:
|
||||
c = base + r
|
||||
if c < 2:
|
||||
continue
|
||||
if c > N:
|
||||
continue
|
||||
if miller_rabin(c):
|
||||
yield c
|
||||
k += 1
|
||||
|
||||
|
||||
def n_esimo_primo(n: int) -> int:
|
||||
"""Retorna o n-ésimo primo (1-indexado: n=1 → 2)."""
|
||||
count = 0
|
||||
for p in gerar_primos(n * 20 + 100): # estimativa superior
|
||||
count += 1
|
||||
if count == n:
|
||||
return p
|
||||
# Se não encontrou (estimativa baixa), busca estendida
|
||||
limite = n * 20 + 100
|
||||
while True:
|
||||
limite *= 2
|
||||
count = 0
|
||||
for p in gerar_primos(limite):
|
||||
count += 1
|
||||
if count == n:
|
||||
return p
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# FATORAÇÃO HELICOIDAL
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def pares_fatoriais(r420: int) -> List[Tuple[int, int]]:
|
||||
"""
|
||||
Dado r₄₂₀ = N mod 420, retorna os 96 pares (r_p, r_q)
|
||||
tal que r_p · r_q ≡ r₄₂₀ (mod 420).
|
||||
|
||||
Para N = p·q semiprime, os fatores p,q pertencem às classes r_p, r_q.
|
||||
Reduz 99% do espaço de busca de fatores.
|
||||
"""
|
||||
pares = []
|
||||
for rp in CLASSES_420:
|
||||
rq = (r420 * pow(rp, -1, MOD_420)) % MOD_420
|
||||
if rq in CLASSES_420_SET:
|
||||
pares.append((rp, rq))
|
||||
return pares
|
||||
|
||||
|
||||
def fatorar_helicoidal(N: int, limite_roda: int = 100_000) -> Dict:
|
||||
"""
|
||||
Fatoração usando a estrutura helicoidal de 420.
|
||||
|
||||
Fase 0: Classificador O(1) — elimina 77% dos compostos
|
||||
Fase 1: Pilares [2,3,5,7]
|
||||
Fase 2: Roda helicoidal mod 420 (apenas as 96 classes)
|
||||
Fase 3: Miller-Rabin para verificar primo residual
|
||||
"""
|
||||
t0 = time.perf_counter()
|
||||
fatores = []
|
||||
original = N
|
||||
|
||||
# Fase 1: pilares
|
||||
for p in PILARES:
|
||||
while N % p == 0:
|
||||
fatores.append(p)
|
||||
N //= p
|
||||
|
||||
if N == 1:
|
||||
return _resultado(original, fatores, time.perf_counter() - t0)
|
||||
|
||||
# Fase 2: roda helicoidal — apenas candidatos das 96 classes
|
||||
sqrtN = isqrt(N) + 1
|
||||
k = 0
|
||||
while k * MOD_420 <= min(sqrtN, limite_roda):
|
||||
for r in CLASSES_420:
|
||||
c = k * MOD_420 + r
|
||||
if c < 2 or c > sqrtN:
|
||||
continue
|
||||
while N % c == 0:
|
||||
fatores.append(c)
|
||||
N //= c
|
||||
sqrtN = isqrt(N) + 1
|
||||
k += 1
|
||||
|
||||
# Fase 3: primo residual?
|
||||
if N > 1:
|
||||
if miller_rabin(N):
|
||||
fatores.append(N)
|
||||
else:
|
||||
# Composto residual — usa Pollard Rho simples
|
||||
def pollard_rho(n):
|
||||
if n % 2 == 0:
|
||||
return 2
|
||||
x = 2; y = 2; c = 1; d = 1
|
||||
while d == 1:
|
||||
x = (x * x + c) % n
|
||||
y = (y * y + c) % n
|
||||
y = (y * y + c) % n
|
||||
d = gcd(abs(x - y), n)
|
||||
if d != n:
|
||||
return d
|
||||
return None
|
||||
|
||||
factor = pollard_rho(N)
|
||||
if factor and factor != N:
|
||||
fatores.append(factor)
|
||||
fatores.append(N // factor)
|
||||
else:
|
||||
fatores.append(N)
|
||||
|
||||
return _resultado(original, fatores, time.perf_counter() - t0)
|
||||
|
||||
|
||||
def _resultado(original: int, fatores: List[int], tempo: float) -> Dict:
|
||||
fatores = sorted(fatores)
|
||||
fat_exp = {}
|
||||
for f in fatores:
|
||||
fat_exp[f] = fat_exp.get(f, 0) + 1
|
||||
verificacao = 1
|
||||
for f, e in fat_exp.items():
|
||||
verificacao *= f ** e
|
||||
return {
|
||||
'N': original,
|
||||
'fatores': fatores,
|
||||
'fatores_exp': fat_exp,
|
||||
'verificacao_ok': verificacao == original,
|
||||
'eh_primo': len(fat_exp) == 1 and list(fat_exp.values())[0] == 1,
|
||||
'tempo': tempo,
|
||||
}
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# ASSINATURA HELICOIDAL COMPLETA
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def assinatura_completa(n: int) -> Dict:
|
||||
"""
|
||||
Retorna a assinatura helicoidal completa de n:
|
||||
- braco_42, classe_420, ciclo
|
||||
- Fn_elem, Fn_ciclo, Fn_log
|
||||
- theta, grau (n×42 mod 360)
|
||||
- sig_gemea, sig_gemea_prevista, erro_gemea
|
||||
- familia (A ou B para primos)
|
||||
- eh_candidato, eh_primo
|
||||
- pares_fatoriais (se candidato)
|
||||
"""
|
||||
r42 = n % MOD_42
|
||||
r420 = n % MOD_420
|
||||
ciclo = n // MOD_42
|
||||
g = (n * 42) % MOD_360
|
||||
|
||||
fn_el = Fn(n)
|
||||
fn_ci = Fn(ciclo)
|
||||
fn_lg = Fn_log(n)
|
||||
th = theta(n)
|
||||
sig_g = fn_el + Fn(n + 2)
|
||||
sig_gp = identidade_gemea_prevista(n)
|
||||
|
||||
familia = None
|
||||
if r42 in set(FAMILIA_A):
|
||||
familia = 'A'
|
||||
elif r42 in set(FAMILIA_B):
|
||||
familia = 'B'
|
||||
|
||||
eh_cand = e_candidato_primo(n)
|
||||
eh_prim = miller_rabin(n)
|
||||
|
||||
return {
|
||||
'n': n,
|
||||
'braco_42': r42,
|
||||
'classe_420': r420,
|
||||
'ciclo': ciclo,
|
||||
'Fn_elem': fn_el,
|
||||
'Fn_ciclo': fn_ci,
|
||||
'Fn_log': fn_lg,
|
||||
'theta_rad': th,
|
||||
'theta_deg': math.degrees(th),
|
||||
'grau': g,
|
||||
'sig_gemea': sig_g,
|
||||
'sig_gemea_prevista': sig_gp,
|
||||
'erro_gemea': abs(sig_g - sig_gp),
|
||||
'familia': familia,
|
||||
'eh_candidato': eh_cand,
|
||||
'eh_primo': eh_prim,
|
||||
'pares_fatoriais': pares_fatoriais(r420) if eh_cand else [],
|
||||
}
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# ANÁLISE DO GRUPO (Z/42Z)* — AS 144 PROPORÇÕES
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def tabela_144() -> Dict[Tuple[int,int], int]:
|
||||
"""Tabela multiplicativa 12×12 de (Z/42Z)* — as 144 proporções."""
|
||||
return dict(TABELA_144)
|
||||
|
||||
|
||||
def ordens_grupo() -> Dict[int, int]:
|
||||
"""Ordem de cada elemento em (Z/42Z)*."""
|
||||
ordens = {}
|
||||
for g in BRACOS_42:
|
||||
x, k = g, 1
|
||||
while x != 1:
|
||||
x = (x * g) % MOD_42
|
||||
k += 1
|
||||
ordens[g] = k
|
||||
return ordens
|
||||
|
||||
|
||||
def geradores_grupo() -> List[int]:
|
||||
"""Geradores (elementos de ordem máxima) de (Z/42Z)*."""
|
||||
ordens = ordens_grupo()
|
||||
ord_max = max(ordens.values())
|
||||
return [g for g, o in ordens.items() if o == ord_max]
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# RELATÓRIO COMPLETO
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def gerar_relatorio(N_max: int = 10000, arquivo: str = "genesis_relatorio.txt"):
|
||||
"""
|
||||
Gera o relatório completo da Teoria Helicoidal dos Primos
|
||||
com análise de todos os primos até N_max.
|
||||
"""
|
||||
sep = "═" * 80
|
||||
sep2 = "─" * 80
|
||||
sep3 = "·" * 80
|
||||
|
||||
L = []
|
||||
L.append(sep)
|
||||
L.append(" OFFELLIA GENESIS v1.0")
|
||||
L.append(" Teoria Helicoidal Universal dos Números Primos")
|
||||
L.append(f" Gerado em: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
||||
L.append(f" Análise: primos até N = {N_max:,}")
|
||||
L.append(sep)
|
||||
L.append("")
|
||||
|
||||
# ── Gerar todos os primos até N_max
|
||||
t0 = time.perf_counter()
|
||||
primos = list(gerar_primos(N_max))
|
||||
t_geracao = time.perf_counter() - t0
|
||||
primos_set = set(primos)
|
||||
|
||||
# ── SEÇÃO 1: Constantes Fundamentais
|
||||
L.append("[ 1. CONSTANTES HELICOIDAIS ]")
|
||||
L.append("")
|
||||
L.append(f" φ (proporção áurea) = {PHI:.15f}")
|
||||
L.append(f" 2πφ = {TWO_PI_PHI:.15f}")
|
||||
L.append(f" 4πφ = {FOUR_PI_PHI:.15f}")
|
||||
L.append(f" cos(4πφ) = {COS_4PI_PHI:.15f} ← amplitude da identidade gêmea")
|
||||
L.append(f" |cos(4πφ)| = {abs(COS_4PI_PHI):.15f} ← desvio máximo de 1.0")
|
||||
L.append("")
|
||||
L.append(" F(n) = sin²(2π·φ·n) [Função Helicoidal Universal]")
|
||||
L.append(" θ(n) = (n mod 42)/42 · 2π [posição angular na roda de 42]")
|
||||
L.append(" Grau = (n·42) mod 360 [projeção em 360°]")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 2: Estrutura Modular
|
||||
L.append(sep2)
|
||||
L.append("[ 2. ESTRUTURA MODULAR HELICOIDAL ]")
|
||||
L.append("")
|
||||
L.append(" 2.1 A Roda de 42")
|
||||
L.append(f" 42 = 2 · 3 · 7 → φ(42) = φ(2)·φ(3)·φ(7) = 1·2·6 = 12 braços")
|
||||
L.append(f" BRACOS_42 = {list(BRACOS_42)}")
|
||||
L.append(f" Os 12 braços formam o grupo (Z/42Z)* de ordem 12")
|
||||
L.append("")
|
||||
L.append(" 2.2 As 96 Classes mod 420")
|
||||
L.append(f" 420 = LCM(42, 60) = 2² · 3 · 5 · 7")
|
||||
L.append(f" φ(420) = φ(4)·φ(3)·φ(5)·φ(7) = 2·2·4·6 = 96 classes")
|
||||
L.append(f" Todo primo p > 7 pertence a exatamente 1 das 96 classes mod 420")
|
||||
L.append(f" Prova: p coprime a {PILARES} ↔ p mod 420 ∈ R₄₂₀")
|
||||
L.append("")
|
||||
L.append(" 2.3 O Teorema do Colapso de Grau (T3)")
|
||||
L.append(f" 420 · 42 = 17640 = 49 · 360")
|
||||
L.append(f" ∴ (420k + r) · 42 ≡ r · 42 (mod 360) para todo k")
|
||||
L.append(f" Grau(p) = (p · 42) mod 360 depende APENAS de p mod 420")
|
||||
L.append(f" Graus distintos: {len(GRAUS_PRIMOS)} — {list(GRAUS_PRIMOS)}")
|
||||
L.append("")
|
||||
L.append(" 2.4 6 Classes por Grau")
|
||||
L.append(" Cada grau possui exatamente 6 classes mod 420 (96/16 = 6)")
|
||||
L.append(" Todas as 6 compartilham o mesmo r mod 60 (differ em r mod 42)")
|
||||
L.append("")
|
||||
L.append(" Grau° Classes mod 420 (primeiras 6)")
|
||||
L.append(" " + "─"*60)
|
||||
for g_val in sorted(CLASSES_POR_GRAU.keys()):
|
||||
cls = sorted(CLASSES_POR_GRAU[g_val])
|
||||
L.append(f" {g_val:4d}° {cls}")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 3: As 144 Proporções
|
||||
L.append(sep2)
|
||||
L.append("[ 3. AS 144 PROPORÇÕES HARMÔNICAS — TABELA DE (Z/42Z)* ]")
|
||||
L.append("")
|
||||
L.append(" A tabela 12×12 = 144 entradas é a tabela multiplicativa do grupo (Z/42Z)*.")
|
||||
L.append(" Todo produto de dois braços coprimos de 42 é outro braço coprimo de 42.")
|
||||
L.append(" Esta é a estrutura das '144 razões proporcionais' da teoria.")
|
||||
L.append("")
|
||||
|
||||
header = f" {'×':>4}" + "".join(f"{b:>4}" for b in BRACOS_42)
|
||||
L.append(header)
|
||||
L.append(" " + "─" * (4 + 4*len(BRACOS_42)))
|
||||
for a in BRACOS_42:
|
||||
row = f" {a:>4}" + "".join(f"{(a*b)%42:>4}" for b in BRACOS_42)
|
||||
L.append(row)
|
||||
L.append("")
|
||||
|
||||
ordens = ordens_grupo()
|
||||
geradores = geradores_grupo()
|
||||
L.append(f" Ordens dos elementos:")
|
||||
for g_el in BRACOS_42:
|
||||
L.append(f" g={g_el:2d}: ordem={ordens[g_el]}")
|
||||
L.append(f" Geradores (ordem máxima): {geradores}")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 4: As Duas Famílias
|
||||
L.append(sep2)
|
||||
L.append("[ 4. DUAS FAMÍLIAS DE BRAÇOS ]")
|
||||
L.append("")
|
||||
L.append(" Os 12 braços dividem-se em 2 famílias por r mod 6:")
|
||||
L.append("")
|
||||
L.append(f" FAMÍLIA A (r ≡ 1 mod 6): {list(FAMILIA_A)}")
|
||||
A_graus = sorted(set((r * 42) % 360 for r in FAMILIA_A))
|
||||
L.append(f" Graus: {A_graus}")
|
||||
L.append("")
|
||||
L.append(f" FAMÍLIA B (r ≡ 5 mod 6): {list(FAMILIA_B)}")
|
||||
B_graus = sorted(set((r * 42) % 360 for r in FAMILIA_B))
|
||||
L.append(f" Graus: {B_graus}")
|
||||
L.append("")
|
||||
L.append(" Cada família gera exatamente 8 graus distintos (8+8=16 graus totais)")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 5: Identidade Gêmea
|
||||
L.append(sep2)
|
||||
L.append("[ 5. IDENTIDADE GÊMEA (T4) ]")
|
||||
L.append("")
|
||||
L.append(" TEOREMA: Para todo n inteiro,")
|
||||
L.append(" F(n) + F(n+2) = 1 − cos(4πφ) · cos(4πφ·(n+1))")
|
||||
L.append(f" cos(4πφ) = {COS_4PI_PHI:.10f} ← amplitude pequena ≈ 0.0874")
|
||||
L.append("")
|
||||
L.append(" Consequências:")
|
||||
L.append(" · F(p) + F(p+2) ∈ [0.9126, 1.0874] para QUALQUER par (p, p+2)")
|
||||
L.append(" · A soma ≈ 1.0 com desvio máximo ±0.0874")
|
||||
L.append(" · O CENTRO p+1 controla o desvio: cos(4πφ(p+1)) modula a soma")
|
||||
L.append(" · Para par gêmeo: F(p+2) é previsto EXATAMENTE dado F(p) e p")
|
||||
L.append("")
|
||||
L.append(" Verificação nos dados (10 primeiros pares gêmeos > 7):")
|
||||
L.append(f" {'p':>6} {'p+2':>6} {'F(p)':>8} {'F(p+2)':>8} {'Soma':>10} {'Previsto':>10} {'Δ':>10}")
|
||||
L.append(" " + "─"*72)
|
||||
|
||||
count_gemeos = 0
|
||||
for p in primos:
|
||||
if p > 7 and (p+2) in primos_set:
|
||||
fp = Fn(p)
|
||||
fp2 = Fn(p+2)
|
||||
soma = fp + fp2
|
||||
prev = identidade_gemea_prevista(p)
|
||||
delta = abs(soma - prev)
|
||||
L.append(f" {p:>6} {p+2:>6} {fp:>8.6f} {fp2:>8.6f} {soma:>10.8f} {prev:>10.8f} {delta:>10.2e}")
|
||||
count_gemeos += 1
|
||||
if count_gemeos >= 10:
|
||||
break
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 6: Equidistribuição
|
||||
L.append(sep2)
|
||||
L.append("[ 6. EQUIDISTRIBUIÇÃO DE Fn (T5) ]")
|
||||
L.append("")
|
||||
L.append(" TEOREMA (Weyl 1916 + Vinogradov): {φ·p mod 1 : p primo} é equidistribuída em [0,1]")
|
||||
L.append(" Consequência: F(p) = sin²(2πφp) tem distribuição arcseno em [0,1]")
|
||||
L.append(" → F(p) SOZINHO não discrimina primos de compostos candidatos")
|
||||
L.append("")
|
||||
L.append(" Distribuição de F(p) em 10 bins para primos em [1, N_max]:")
|
||||
bins_fn = [0] * 10
|
||||
for p in primos:
|
||||
fn_p = Fn(p)
|
||||
bins_fn[min(int(fn_p * 10), 9)] += 1
|
||||
total_p = len(primos)
|
||||
for i in range(10):
|
||||
frac = bins_fn[i] / total_p
|
||||
bar = "█" * int(frac * 60)
|
||||
L.append(f" [{i/10:.1f}, {(i+1)/10:.1f}) {bins_fn[i]:5d} {frac:.4f} {bar}")
|
||||
L.append(" (Distribuição em U — curva arcseno, confirmando equidistribuição)")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 7: Gerador e Estatísticas
|
||||
L.append(sep2)
|
||||
L.append("[ 7. GERADOR HELICOIDAL — PROVA DE COMPLETUDE ]")
|
||||
L.append("")
|
||||
L.append(" Algoritmo:")
|
||||
L.append(" 1. Emitir pilares {2, 3, 5, 7}")
|
||||
L.append(" 2. Para k = 0, 1, 2, ..., ⌊N/42⌋:")
|
||||
L.append(" Para r em BRACOS_42 = {1,5,11,13,17,19,23,25,29,31,37,41}:")
|
||||
L.append(" c = 42k + r")
|
||||
L.append(" Se Miller-Rabin(c): emitir c com assinatura helicoidal")
|
||||
L.append("")
|
||||
L.append(f" Resultado para N = {N_max:,}:")
|
||||
L.append(f" Primos gerados: {len(primos):,}")
|
||||
L.append(f" Tempo de geração: {t_geracao:.4f} s")
|
||||
L.append(f" Candidatos testados: {4 + sum(1 for k in range(N_max//42+1) for r in BRACOS_42 if 42*k+r <= N_max):,}")
|
||||
n_cands = 4 + sum(1 for k in range(N_max//42+1) for r in BRACOS_42 if 42*k+r <= N_max)
|
||||
L.append(f" Fração testada: {n_cands/N_max:.4f} = {n_cands/N_max*100:.2f}%")
|
||||
L.append(f" Eliminados sem teste: {(1-n_cands/N_max)*100:.2f}%")
|
||||
L.append(f" Falsos negativos: 0 (completude 100%)")
|
||||
L.append(f" Falsos positivos: 0 (Miller-Rabin determinístico)")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 8: Distribuição por Braço
|
||||
L.append(sep2)
|
||||
L.append("[ 8. DISTRIBUIÇÃO POR BRAÇO MOD 42 ]")
|
||||
L.append("")
|
||||
L.append(" Teorema de Dirichlet: primos são equidistribuídos nos braços coprimos.")
|
||||
L.append("")
|
||||
L.append(f" {'Braço':>6} {'Familia':>7} {'Grau':>5} {'Primos':>7} {'Fração':>7} {'Fn_médio':>9}")
|
||||
L.append(" " + "─"*55)
|
||||
|
||||
for r in BRACOS_42:
|
||||
ps_arm = [p for p in primos if p % 42 == r]
|
||||
fn_vals = [Fn(p) for p in ps_arm]
|
||||
fam = 'A' if r in set(FAMILIA_A) else 'B'
|
||||
g_val = (r * 42) % 360
|
||||
fn_med = sum(fn_vals)/len(fn_vals) if fn_vals else 0
|
||||
L.append(f" {r:>6} {fam:>7} {g_val:>5}° {len(ps_arm):>7} {len(ps_arm)/len(primos):>7.4f} {fn_med:>9.6f}")
|
||||
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 9: Os 96 Pares Fatoriais
|
||||
L.append(sep2)
|
||||
L.append("[ 9. FATORAÇÃO HELICOIDAL — 96 PARES POR CLASSE ]")
|
||||
L.append("")
|
||||
L.append(" Para N semiprime com r₄₂₀ = N mod 420:")
|
||||
L.append(" N = p · q → r_p · r_q ≡ r₄₂₀ (mod 420)")
|
||||
L.append(" Existem exatamente 96 pares (r_p, r_q) candidatos")
|
||||
L.append(" Isso reduz 99% do espaço de busca vs força bruta")
|
||||
L.append("")
|
||||
L.append(" Exemplo para 5 classes mod 420:")
|
||||
for r_ex in [1, 43, 101, 211, 419]:
|
||||
pares = pares_fatoriais(r_ex)
|
||||
L.append(f" r₄₂₀={r_ex:3d}: {len(pares)} pares — primeiros 3: {pares[:3]}")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 10: Primos Orfãos (Fn=0)
|
||||
L.append(sep2)
|
||||
L.append("[ 10. PRIMOS ÓRFÃOS — CICLO ZERO (Fn=0) ]")
|
||||
L.append("")
|
||||
L.append(" Primos p < 42 estão no ciclo 0: Fn_ciclo = sin²(0) = 0")
|
||||
L.append(" São os 'primos órfãos' — seu braço r42 = p (pois p < 42)")
|
||||
L.append("")
|
||||
primos_orfaos = [p for p in primos if p < 42]
|
||||
L.append(f" {'Primo':>6} {'Braço':>6} {'Ciclo':>6} {'Fn_ciclo':>10} {'Fn_elem':>10} {'Grau':>5}")
|
||||
L.append(" " + "─"*55)
|
||||
for p in primos_orfaos:
|
||||
L.append(f" {p:>6} {p%42:>6} {p//42:>6} {Fn(p//42):>10.6f} {Fn(p):>10.6f} {(p*42)%360:>5}°")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 11: Mapa Completo dos 16 Graus
|
||||
L.append(sep2)
|
||||
L.append("[ 11. MAPA DOS 16 GRAUS ANGULARES ]")
|
||||
L.append("")
|
||||
L.append(" Grau(p) = (p·42) mod 360 — 16 graus possíveis para primos > 7")
|
||||
L.append("")
|
||||
L.append(f" {'Grau':>5} {'r mod 60':>9} {'Classes mod 420':>40} {'N primos':>8}")
|
||||
L.append(" " + "─"*70)
|
||||
|
||||
for g_val in sorted(CLASSES_POR_GRAU.keys()):
|
||||
cls = sorted(CLASSES_POR_GRAU[g_val])
|
||||
r60 = cls[0] % 60
|
||||
n_prm = sum(1 for p in primos if p > 7 and (p*42)%360 == g_val)
|
||||
L.append(f" {g_val:>5}° {r60:>9} {str(cls):>40} {n_prm:>8}")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 12: Teoremas e Limites
|
||||
L.append(sep2)
|
||||
L.append("[ 12. TEOREMAS PROVADOS E LIMITES HONESTOS ]")
|
||||
L.append("")
|
||||
L.append(" ┌─── PROVADO ──────────────────────────────────────────────────────────┐")
|
||||
L.append(" │ T1: Arm Sieve — p > 7 ⟹ p mod 42 ∈ {12 braços coprimos} │")
|
||||
L.append(" │ T2: 96 Classes — p > 7 ∈ exatamente 1 das 96 classes mod 420 │")
|
||||
L.append(" │ T3: Colapso — grau(p) = (r₄₂₀·42) mod 360 (independe do ciclo) │")
|
||||
L.append(" │ T4: Id. Gêmea — F(p)+F(p+2) = 1−cos(4πφ)·cos(4πφ(p+1)) EXATO │")
|
||||
L.append(" │ T5: Equidist. — F(p) é uniforme em [0,1] sobre primos │")
|
||||
L.append(" │ T6: Grupo — (Z/42Z)* abeliano, ord 12, tabela 144 entradas │")
|
||||
L.append(" └──────────────────────────────────────────────────────────────────────┘")
|
||||
L.append("")
|
||||
L.append(" ┌─── LIMITES (o que a teoria NÃO faz) ────────────────────────────────┐")
|
||||
L.append(" │ L1: F(p) equidistribuído → NÃO discrimina primos de compostos │")
|
||||
L.append(" │ candidatos dentro de uma classe mod 420 │")
|
||||
L.append(" │ L2: Sem fórmula fechada determinística para o n-ésimo primo │")
|
||||
L.append(" │ (equivalente à Conjectura de Hardy-Littlewood, em aberto) │")
|
||||
L.append(" │ L3: O sieve helicoidal REDUZ (77-99%) mas NÃO ELIMINA o teste │")
|
||||
L.append(" │ de primalidade │")
|
||||
L.append(" └──────────────────────────────────────────────────────────────────────┘")
|
||||
L.append("")
|
||||
|
||||
# ── SEÇÃO 13: Amostra de Assinaturas
|
||||
L.append(sep2)
|
||||
L.append("[ 13. ASSINATURAS HELICOIDAIS — PRIMEIROS 30 PRIMOS > 7 ]")
|
||||
L.append("")
|
||||
L.append(f" {'p':>8} {'r42':>4} {'r420':>5} {'ciclo':>6} {'Fn_ci':>8} "
|
||||
f"{'Fn_el':>8} {'grau':>5} {'sig_gem':>9} {'Fam':>3} {'par_gem':>7}")
|
||||
L.append(" " + "─" * 82)
|
||||
count = 0
|
||||
for p in primos:
|
||||
if p <= 7:
|
||||
continue
|
||||
sig = assinatura_completa(p)
|
||||
par_gem = "✓" if (p+2) in primos_set else ""
|
||||
L.append(f" {p:>8,} {sig['braco_42']:>4} {sig['classe_420']:>5} "
|
||||
f"{sig['ciclo']:>6} {sig['Fn_ciclo']:>8.5f} "
|
||||
f"{sig['Fn_elem']:>8.5f} {sig['grau']:>5}° "
|
||||
f"{sig['sig_gemea']:>9.6f} {sig['familia'] or '-':>3} {par_gem:>7}")
|
||||
count += 1
|
||||
if count >= 30:
|
||||
break
|
||||
L.append("")
|
||||
|
||||
L.append(sep)
|
||||
L.append(f" OFFELLIA GENESIS v1.0 — Fim do Relatório")
|
||||
L.append(f" Primos analisados: {len(primos):,} | Tempo de geração: {t_geracao:.4f}s")
|
||||
L.append(sep)
|
||||
|
||||
with open(arquivo, "w", encoding="utf-8") as fh:
|
||||
fh.write("\n".join(L) + "\n")
|
||||
|
||||
return len(primos), t_geracao, arquivo
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# INTERFACE PRINCIPAL
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
|
||||
def run():
|
||||
sep = "═" * 70
|
||||
sep2 = "─" * 70
|
||||
|
||||
print(sep)
|
||||
print(" OFFELLIA GENESIS v1.0")
|
||||
print(" Teoria Helicoidal Universal dos Números Primos")
|
||||
print(f" φ(42)=12 braços | 96 classes mod 420 | 16 graus | 144 proporções")
|
||||
print(sep)
|
||||
print()
|
||||
|
||||
try:
|
||||
modo = input(" Modo: [G]erar até N / [A]nalisar número / [R]elatório completo: ").strip().upper()
|
||||
except (EOFError, KeyboardInterrupt):
|
||||
modo = "R"
|
||||
|
||||
if modo == "G":
|
||||
try:
|
||||
N = int(input(" Gerar primos até N: ").strip())
|
||||
except (ValueError, EOFError):
|
||||
N = 1000
|
||||
|
||||
t0 = time.perf_counter()
|
||||
primos = list(gerar_primos(N))
|
||||
t = time.perf_counter() - t0
|
||||
primos_set = set(primos)
|
||||
|
||||
print(sep2)
|
||||
print(f" Primos gerados até {N:,}: {len(primos):,} ({t:.4f} s)")
|
||||
print()
|
||||
print(f" {'p':>10} {'r42':>4} {'grau':>5} {'Fn_ciclo':>9} {'Fn_elem':>9} {'sig_gem':>9} {'gem?':>5}")
|
||||
print(f" {'─'*62}")
|
||||
for p in primos[-20:]:
|
||||
sig = assinatura_completa(p)
|
||||
gem = "✓" if (p+2) in primos_set else ""
|
||||
print(f" {p:>10,} {sig['braco_42']:>4} {sig['grau']:>5}° "
|
||||
f"{sig['Fn_ciclo']:>9.6f} {sig['Fn_elem']:>9.6f} "
|
||||
f"{sig['sig_gemea']:>9.6f} {gem:>5}")
|
||||
|
||||
nome_arq = f"genesis_gerador_{N}.txt"
|
||||
gerar_relatorio(N, nome_arq)
|
||||
print(f"\n Relatório salvo: '{nome_arq}'")
|
||||
|
||||
elif modo == "A":
|
||||
try:
|
||||
n_val = int(input(" Analisar número N: ").strip())
|
||||
except (ValueError, EOFError):
|
||||
n_val = 997
|
||||
|
||||
sig = assinatura_completa(n_val)
|
||||
fat = fatorar_helicoidal(n_val)
|
||||
|
||||
print(sep2)
|
||||
print(f" N = {n_val:,}")
|
||||
print(f" É primo: {sig['eh_primo']}")
|
||||
print(f" É candidato: {sig['eh_candidato']}")
|
||||
print(f" Braço r42: {sig['braco_42']}")
|
||||
print(f" Classe r420: {sig['classe_420']}")
|
||||
print(f" Ciclo: {sig['ciclo']}")
|
||||
print(f" Fn_elem: {sig['Fn_elem']:.10f}")
|
||||
print(f" Fn_ciclo: {sig['Fn_ciclo']:.10f}")
|
||||
print(f" Fn_log: {sig['Fn_log']:.10f}")
|
||||
print(f" Grau: {sig['grau']}°")
|
||||
print(f" Família: {sig['familia'] or 'N/A (pilar ou composto)'}")
|
||||
print(f" Sig. gêmea: {sig['sig_gemea']:.10f}")
|
||||
print(f" Sig. prevista: {sig['sig_gemea_prevista']:.10f}")
|
||||
print(f" Δ (erro): {sig['erro_gemea']:.2e}")
|
||||
print()
|
||||
print(f" Fatoração: {fat['N']:,} = {fat['fatores_exp']}")
|
||||
if sig['eh_candidato'] and not sig['eh_primo']:
|
||||
pares = sig['pares_fatoriais'][:5]
|
||||
print(f" Pares fatoriais (r_p, r_q) mod 420: {pares} (+{len(sig['pares_fatoriais'])-5} mais)")
|
||||
|
||||
nome_arq = f"genesis_analise_{n_val}.txt"
|
||||
gerar_relatorio(max(n_val, 1000), nome_arq)
|
||||
print(f"\n Relatório salvo: '{nome_arq}'")
|
||||
|
||||
else: # Relatório
|
||||
try:
|
||||
N = int(input(" Análise até N [padrão 10000]: ").strip() or "10000")
|
||||
except (ValueError, EOFError):
|
||||
N = 10000
|
||||
|
||||
nome_arq = f"genesis_relatorio_{N}.txt"
|
||||
print(f"\n Gerando relatório completo até N={N:,}...")
|
||||
n_primos, t_gen, arq = gerar_relatorio(N, nome_arq)
|
||||
print(f" ✓ {n_primos:,} primos analisados em {t_gen:.4f}s")
|
||||
print(f" Relatório salvo: '{arq}'")
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
3
OFFELLIA_LFM2-24B-A2B_IQ4_XS.gguf
Normal file
3
OFFELLIA_LFM2-24B-A2B_IQ4_XS.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:75c1d42e0eb02879e028c2bfbf6b47aadd4f485c3521fe3f00c439594eeebe14
|
||||
size 12828561024
|
||||
3
OFFELLIA_LFM2-24B-A2B_Q4_0.gguf
Normal file
3
OFFELLIA_LFM2-24B-A2B_Q4_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7de2b406b95b3077577918c26451f1f530da29a27d8a54bae37a75f8170da5b7
|
||||
size 13432802944
|
||||
3
OFFELLIA_LFM2-8B-A1B_IQ4_XS.gguf
Normal file
3
OFFELLIA_LFM2-8B-A1B_IQ4_XS.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:24becd77a3c48f216815ca6745ca411fdd1dd90110a8ed8547766bd9a4a3b07f
|
||||
size 4500454080
|
||||
3
OFFELLIA_LFM2-8B-A1B_Q4_0.gguf
Normal file
3
OFFELLIA_LFM2-8B-A1B_Q4_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:44881d041fce85e024647fecd7bcaf3bf1fc794110ac972b6387ede5705b4c86
|
||||
size 4699290304
|
||||
3
OFFELLIA_LFM2_8B_Q8.gguf
Normal file
3
OFFELLIA_LFM2_8B_Q8.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:558e43d6d126f9c7d733335bc31efcf8e8a0e4129c33b6005a2f695caadf37a8
|
||||
size 8868428480
|
||||
755
OFFELLIA_ONDA.py
Normal file
755
OFFELLIA_ONDA.py
Normal file
@@ -0,0 +1,755 @@
|
||||
"""
|
||||
╔══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ OFFELLIA_ONDA v1.0 — Busca de Primos pela Onda Única ║
|
||||
║ ║
|
||||
║ FUNDAMENTO: Os primos são cristalizações de UMA ÚNICA ONDA IRRACIONAL ║
|
||||
║ ║
|
||||
║ Ψ(x) = sin²(2πφx) φ = (1+√5)/2 ║
|
||||
║ f(x) = (φ·x) mod 1 — fase da onda em x ║
|
||||
║ ║
|
||||
║ ESTRUTURA EM 3 CAMADAS: ║
|
||||
║ ① ONDA: Ψ(x) — 100% determinística, calculável em O(1) para qualquer x ║
|
||||
║ ② RODA: mod 42, 12 janelas coprimas — ordem das fases é FIXA ║
|
||||
║ ③ SIEVE: Miller-Rabin determinístico — confirma cristalização ║
|
||||
║ ║
|
||||
║ TEOREMA DAS TRÊS DISTÂNCIAS (Steinhaus 1959): ║
|
||||
║ A sequência φ·1, φ·2, φ·3, ... mod 1 divide o círculo em EXATAMENTE ║
|
||||
║ 3 tamanhos de intervalo com razão φ — estrutura de Fibonacci. ║
|
||||
║ ║
|
||||
║ CINCO CANAIS GÊMEOS (únicos possíveis): ║
|
||||
║ Canal I:11→13 II:17→19 III:23→25 IV:29→31 V:41→1(cruzador) ║
|
||||
║ ║
|
||||
║ IDENTIDADE GÊMEA (Teorema T4): ║
|
||||
║ F(p) + F(p+2) = 1 − cos(4πφ)·cos(4πφ(p+1)) EXATA ║
|
||||
╚══════════════════════════════════════════════════════════════════════════════╝
|
||||
"""
|
||||
|
||||
import math
|
||||
import time
|
||||
import sys
|
||||
from math import gcd, isqrt, sin, cos, pi, sqrt, log
|
||||
from collections import Counter, defaultdict
|
||||
from datetime import datetime
|
||||
from decimal import Decimal, getcontext
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# CONSTANTES DA ONDA ÚNICA
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
||||
PHI = (1 + sqrt(5)) / 2 # Proporção áurea — frequência da onda
|
||||
INV_PHI = PHI - 1 # 1/φ = φ-1 ≈ 0.6180...
|
||||
TWO_PI_PHI = 2 * pi * PHI # 2πφ — frequência angular
|
||||
FOUR_PI_PHI = 4 * pi * PHI # 4πφ — para identidade gêmea
|
||||
COS_4PI_PHI = math.cos(FOUR_PI_PHI) # cos(4πφ) ≈ 0.08742572 — amplitude gêmea
|
||||
|
||||
# Três distâncias de Steinhaus para φ
|
||||
S_PEQUENO = 2 - PHI # ≈ 0.3820 — intervalo menor
|
||||
S_MEDIO = PHI - 1 # ≈ 0.6180 — intervalo médio = 1/φ
|
||||
S_GRANDE = 1.0 # intervalo maior = círculo completo
|
||||
|
||||
# Roda helicoidal
|
||||
MOD_42 = 42
|
||||
MOD_420 = 420
|
||||
PILARES = (2, 3, 5, 7)
|
||||
|
||||
# 12 braços coprimos de 42 — as janelas da onda
|
||||
BRACOS_42 = tuple(r for r in range(1, 43) if gcd(r, 42) == 1)
|
||||
BRACOS_SET = frozenset(BRACOS_42)
|
||||
|
||||
# 96 classes mod 420 — classificador O(1)
|
||||
CLASSES_420 = tuple(r for r in range(1, 421) if all(r % p != 0 for p in PILARES))
|
||||
CLASSES_420_SET = frozenset(CLASSES_420)
|
||||
|
||||
# Famílias dos braços
|
||||
FAMILIA_A = frozenset(r for r in BRACOS_42 if r % 6 == 1) # {1,13,19,25,31,37}
|
||||
FAMILIA_B = frozenset(r for r in BRACOS_42 if r % 6 == 5) # {5,11,17,23,29,41}
|
||||
|
||||
# Ordem das fases dos 12 braços (fixa — nunca muda)
|
||||
BRACOS_POR_FASE = tuple(sorted(BRACOS_42, key=lambda r: (PHI * r) % 1))
|
||||
|
||||
# Cinco canais gêmeos
|
||||
CANAIS_GEMEOS = {
|
||||
(11, 13): "I (interno)",
|
||||
(17, 19): "II (interno)",
|
||||
(23, 25): "III (interno)",
|
||||
(29, 31): "IV (interno)",
|
||||
(41, 1): "V (cruzador k→k+1)",
|
||||
}
|
||||
BRACOS_GEMEO_INI = frozenset(r for r, _ in CANAIS_GEMEOS)
|
||||
BRACOS_GEMEO_FIM = frozenset(r for _, r in CANAIS_GEMEOS)
|
||||
CANAL_DE_BRACO = {r: c for (r, _), c in zip(CANAIS_GEMEOS.keys(), CANAIS_GEMEOS.values())}
|
||||
|
||||
# Progressão Δφ por ciclo de 42
|
||||
DELTA_FASE_CICLO = (PHI * 42) % 1 # ≈ 0.9574 — avanço de fase por revolução
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# FUNÇÕES DA ONDA ÚNICA
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
||||
def onda(x: int) -> float:
|
||||
"""Ψ(x) = sin²(2πφx) — valor da onda no ponto x."""
|
||||
return sin(TWO_PI_PHI * x) ** 2
|
||||
|
||||
|
||||
def fase(x: int) -> float:
|
||||
"""f(x) = (φ·x) mod 1 — fase da onda em x ∈ [0, 1)."""
|
||||
return (PHI * x) % 1
|
||||
|
||||
|
||||
def onda_ciclo(x: int) -> float:
|
||||
"""Ψ do ciclo k = x//42: sin²(2πφ·k)."""
|
||||
return onda(x // MOD_42)
|
||||
|
||||
|
||||
def grau_angular(x: int) -> int:
|
||||
"""Projeção angular: (x·42) mod 360 — 16 valores possíveis para primos > 7."""
|
||||
return (x * MOD_42) % 360
|
||||
|
||||
|
||||
def identidade_gemea(p: int) -> float:
|
||||
"""Valor exato da Identidade Gêmea: 1 − cos(4πφ)·cos(4πφ(p+1))."""
|
||||
return 1.0 - COS_4PI_PHI * math.cos(FOUR_PI_PHI * (p + 1))
|
||||
|
||||
|
||||
def tipo_no(fn: float) -> str:
|
||||
"""Classifica o ponto da onda pelo valor Fn."""
|
||||
if fn < 0.05: return "NÓ"
|
||||
if fn > 0.95: return "ANTI-NÓDULO"
|
||||
if fn < 0.25: return "próx-nó"
|
||||
if fn > 0.75: return "próx-anti"
|
||||
return "transição"
|
||||
|
||||
|
||||
def salto_fase(p1: int, p2: int) -> float:
|
||||
"""Δφ = (φ·(p2-p1)) mod 1 — salto de fase entre dois primos consecutivos."""
|
||||
return (PHI * (p2 - p1)) % 1
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# CAMADA 3 — MILLER-RABIN DETERMINÍSTICO
|
||||
# Correto para n < 3.317×10²⁴ com estas witnesses.
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
||||
_WITNESSES = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37)
|
||||
|
||||
def _miller_rabin_core(n: int) -> bool:
|
||||
r, d = 0, n - 1
|
||||
while d % 2 == 0:
|
||||
r += 1
|
||||
d //= 2
|
||||
for a in _WITNESSES:
|
||||
if a >= n:
|
||||
continue
|
||||
x = pow(a, d, n)
|
||||
if x == 1 or x == n - 1:
|
||||
continue
|
||||
for _ in range(r - 1):
|
||||
x = x * x % n
|
||||
if x == n - 1:
|
||||
break
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def eh_primo(n: int) -> bool:
|
||||
"""
|
||||
Teste de primalidade helicoidal em 3 fases:
|
||||
① Pilares {2,3,5,7} — O(1)
|
||||
② Classificador mod 420 — O(1), elimina 77.1%
|
||||
③ Miller-Rabin determinístico — confirma
|
||||
"""
|
||||
if n < 2:
|
||||
return False
|
||||
if n in (2, 3, 5, 7):
|
||||
return True
|
||||
if any(n % p == 0 for p in PILARES):
|
||||
return False
|
||||
if (n % MOD_420) not in CLASSES_420_SET: # ← filtro da onda mod 420
|
||||
return False
|
||||
return _miller_rabin_core(n)
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# GERADOR HELICOIDAL — VARREDURA DAS JANELAS DA ONDA
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
||||
def gerar_primos_onda(N: int):
|
||||
"""
|
||||
Gera todos os primos até N percorrendo as janelas da onda.
|
||||
|
||||
A onda varre os ciclos k=0,1,2,...,⌊N/42⌋.
|
||||
Em cada ciclo, testa apenas as 12 janelas coprimas de 42.
|
||||
As janelas são visitadas em ORDEM DE FASE CRESCENTE
|
||||
(sequência determinística de Fibonacci).
|
||||
"""
|
||||
# Pilares primeiro
|
||||
for p in PILARES:
|
||||
if p <= N:
|
||||
yield p
|
||||
|
||||
k = 0
|
||||
while True:
|
||||
base = MOD_42 * k
|
||||
if base > N:
|
||||
break
|
||||
# Visita janelas em ordem de fase (estrutura de Fibonacci)
|
||||
for r in BRACOS_POR_FASE:
|
||||
c = base + r
|
||||
if c < 8:
|
||||
continue
|
||||
if c > N:
|
||||
continue
|
||||
if eh_primo(c):
|
||||
yield c
|
||||
k += 1
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# ASSINATURA HELICOIDAL COMPLETA
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
||||
def assinatura(p: int, primos_set: set = None) -> dict:
|
||||
"""Retorna a assinatura helicoidal completa do primo p."""
|
||||
r42 = p % MOD_42
|
||||
r420 = p % MOD_420
|
||||
k = p // MOD_42
|
||||
fn_p = onda(p)
|
||||
fn_k = onda(k)
|
||||
f_p = fase(p)
|
||||
grau = grau_angular(p)
|
||||
|
||||
# Família
|
||||
fam = 'A' if r42 in FAMILIA_A else ('B' if r42 in FAMILIA_B else '?')
|
||||
|
||||
# Canal gêmeo
|
||||
canal = None
|
||||
for (r1, r2), nome in CANAIS_GEMEOS.items():
|
||||
if r42 == r1 or r42 == r2:
|
||||
canal = nome
|
||||
break
|
||||
|
||||
# Par gêmeo (se primos_set fornecido)
|
||||
eh_gem = False
|
||||
if primos_set is not None:
|
||||
eh_gem = (p + 2 in primos_set) or (p - 2 in primos_set)
|
||||
|
||||
# Identidade gêmea
|
||||
sig_gem = fn_p + onda(p + 2)
|
||||
sig_prevista = identidade_gemea(p)
|
||||
|
||||
# Tipo de nó
|
||||
no = tipo_no(fn_p)
|
||||
|
||||
# Três distâncias — tamanho do intervalo de fase deste braço
|
||||
idx = BRACOS_POR_FASE.index(r42) if r42 in BRACOS_SET else -1
|
||||
if idx >= 0:
|
||||
r_prox = BRACOS_POR_FASE[(idx + 1) % 12]
|
||||
df_steinhaus = (fase(r_prox) - fase(r42)) % 1
|
||||
else:
|
||||
df_steinhaus = 0.0
|
||||
|
||||
return {
|
||||
'p': p,
|
||||
'braco_42': r42,
|
||||
'classe_420': r420,
|
||||
'ciclo_k': k,
|
||||
'Fn_onda': fn_p,
|
||||
'Fn_ciclo': fn_k,
|
||||
'fase': f_p,
|
||||
'grau': grau,
|
||||
'familia': fam,
|
||||
'canal_gemeo': canal,
|
||||
'eh_gemeo': eh_gem,
|
||||
'sig_gemea': sig_gem,
|
||||
'sig_prevista': sig_prevista,
|
||||
'erro_gemea': abs(sig_gem - sig_prevista),
|
||||
'tipo_no': no,
|
||||
'df_steinhaus': df_steinhaus,
|
||||
}
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# GERAÇÃO DO RELATÓRIO COMPLETO
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
||||
def gerar_relatorio(N: int, primos: list, t_busca: float, arquivo: str):
|
||||
primos_set = set(primos)
|
||||
L = []
|
||||
SEP = "═" * 76
|
||||
SEP2 = "─" * 76
|
||||
|
||||
def linha(s=""): L.append(s)
|
||||
|
||||
# ── CABEÇALHO
|
||||
linha(SEP)
|
||||
linha(" OFFELLIA_ONDA v1.0 — Relatório da Onda Única dos Primos")
|
||||
linha(f" Gerado em: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
||||
linha(f" Busca até N = {N:,} | Tempo: {t_busca:.6f} s | Primos: {len(primos):,}")
|
||||
linha(SEP)
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 1: Fundamento da onda
|
||||
linha(SEP2)
|
||||
linha(" [ 1. FUNDAMENTO — A ONDA ÚNICA ]")
|
||||
linha()
|
||||
linha(" Ψ(x) = sin²(2πφx) φ = (1+√5)/2 = proporção áurea")
|
||||
linha(" f(x) = (φ·x) mod 1 = fase da onda em x")
|
||||
linha()
|
||||
linha(f" φ = {PHI:.15f}")
|
||||
linha(f" 2πφ = {TWO_PI_PHI:.15f}")
|
||||
linha(f" cos(4πφ) = {COS_4PI_PHI:.15f} ← amplitude gêmea")
|
||||
linha(f" Δφ/ciclo de 42 = {DELTA_FASE_CICLO:.15f}")
|
||||
linha()
|
||||
linha(" TRÊS DISTÂNCIAS DE STEINHAUS para φ:")
|
||||
linha(f" s_pequeno = 2-φ = {S_PEQUENO:.10f}")
|
||||
linha(f" s_médio = φ-1 = {S_MEDIO:.10f} = 1/φ")
|
||||
linha(f" s_grande = 1 = s_pequeno + s_médio (círculo completo)")
|
||||
linha(f" razão: s_médio/s_pequeno = {S_MEDIO/S_PEQUENO:.10f} → φ = {PHI:.10f}")
|
||||
linha()
|
||||
linha(" Ordem das fases dos 12 braços (FIXA — estrutura de Fibonacci):")
|
||||
linha()
|
||||
linha(f" {'braço':>6} {'fase φ·r':>12} {'Fn(r)':>8} {'intervalo Δf':>14}")
|
||||
linha(" " + "─" * 46)
|
||||
for i, r in enumerate(BRACOS_POR_FASE):
|
||||
f_r = fase(r)
|
||||
fn_r = onda(r)
|
||||
r_prox = BRACOS_POR_FASE[(i + 1) % 12]
|
||||
df = (fase(r_prox) - f_r) % 1
|
||||
linha(f" {r:>6} {f_r:>12.8f} {fn_r:>8.5f} {df:>14.8f}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 2: Parâmetros da busca
|
||||
linha(SEP2)
|
||||
linha(" [ 2. PARÂMETROS DA BUSCA ]")
|
||||
linha()
|
||||
n_ciclos = N // MOD_42 + 1
|
||||
n_candidatos = n_ciclos * 12
|
||||
taxa_candidatos = n_candidatos / N * 100 if N > 0 else 0
|
||||
taxa_eliminados = 100 - taxa_candidatos
|
||||
|
||||
linha(f" N buscado: {N:>15,}")
|
||||
linha(f" Ciclos de 42: {n_ciclos:>15,}")
|
||||
linha(f" Candidatos testados:{n_candidatos:>15,} ({taxa_candidatos:.2f}% dos inteiros)")
|
||||
linha(f" Eliminados sem teste:{N - n_candidatos:>14,} ({taxa_eliminados:.2f}% dos inteiros)")
|
||||
linha(f" Primos encontrados: {len(primos):>15,}")
|
||||
if t_busca > 0:
|
||||
linha(f" Velocidade: {len(primos)/t_busca:>15,.0f} primos/s")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 3: Distribuição por fase (a onda)
|
||||
linha(SEP2)
|
||||
linha(" [ 3. DISTRIBUIÇÃO DOS PRIMOS NA ONDA — FASES ]")
|
||||
linha()
|
||||
linha(" A fase f(p) = (φ·p) mod 1 distribui os primos em [0,1]")
|
||||
linha(" Por Weyl: distribuição uniforme (equidistribuição)")
|
||||
linha()
|
||||
|
||||
N_faixas = 20
|
||||
faixas_fase = defaultdict(int)
|
||||
faixas_fn = defaultdict(list)
|
||||
for p in primos:
|
||||
if p > 7:
|
||||
b = min(N_faixas - 1, int(fase(p) * N_faixas))
|
||||
faixas_fase[b] += 1
|
||||
faixas_fn[b].append(onda(p))
|
||||
|
||||
total_gt7 = len([p for p in primos if p > 7])
|
||||
linha(f" {'Faixa fase':>14} {'Fn médio':>9} {'count':>7} {'% total':>8} Barra (equidist. esperada)")
|
||||
linha(" " + "─" * 72)
|
||||
esperado = total_gt7 / N_faixas
|
||||
for i in range(N_faixas):
|
||||
a = i / N_faixas; b = (i + 1) / N_faixas
|
||||
cnt = faixas_fase[i]
|
||||
fn_list = faixas_fn[i]
|
||||
fn_med = sum(fn_list) / len(fn_list) if fn_list else 0
|
||||
pct = cnt / total_gt7 * 100 if total_gt7 else 0
|
||||
desvio = (cnt - esperado) / esperado * 100 if esperado else 0
|
||||
barra = "█" * int(pct / 5 * 10)
|
||||
linha(f" [{a:.2f},{b:.2f}) {fn_med:>9.5f} {cnt:>7,} {pct:>7.2f}% {barra}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 4: Nós e anti-nódulos
|
||||
linha(SEP2)
|
||||
linha(" [ 4. NÓS E ANTI-NÓDULOS DA ONDA ]")
|
||||
linha()
|
||||
linha(" NÓ → Fn < 0.05 (fase próxima de 0 ou 1)")
|
||||
linha(" ANTI-NÓD. → Fn > 0.95 (fase próxima de 0.5)")
|
||||
linha()
|
||||
|
||||
nos = [p for p in primos if p > 7 and onda(p) < 0.05]
|
||||
antinos = [p for p in primos if p > 7 and onda(p) > 0.95]
|
||||
trans = [p for p in primos if p > 7 and 0.05 <= onda(p) <= 0.95]
|
||||
|
||||
linha(f" NÓS (Fn < 0.05): {len(nos):>7,} ({len(nos)/total_gt7*100:.2f}%)")
|
||||
linha(f" ANTI-NÓDULOS (Fn > 0.95): {len(antinos):>7,} ({len(antinos)/total_gt7*100:.2f}%)")
|
||||
linha(f" TRANSIÇÃO (0.05-0.95): {len(trans):>7,} ({len(trans)/total_gt7*100:.2f}%)")
|
||||
linha()
|
||||
if nos:
|
||||
fn_nos = [onda(p) for p in nos]
|
||||
linha(f" Fn mín nos nós: {min(fn_nos):.10f}")
|
||||
linha(f" Fn máx nos nós: {max(fn_nos):.10f}")
|
||||
if antinos:
|
||||
fn_an = [onda(p) for p in antinos]
|
||||
linha(f" Fn mín anti-nódulos: {min(fn_an):.10f}")
|
||||
linha(f" Fn máx anti-nódulos: {max(fn_an):.10f}")
|
||||
linha()
|
||||
linha(" Primeiros 10 primos NÓ (Fn≈0):")
|
||||
linha(f" {'p':>10} {'fase':>10} {'Fn':>12} {'braço':>6} {'k(ciclo)':>9}")
|
||||
linha(" " + "─" * 55)
|
||||
for p in nos[:10]:
|
||||
linha(f" {p:>10,} {fase(p):>10.6f} {onda(p):>12.8f} {p%42:>6} {p//42:>9,}")
|
||||
linha()
|
||||
linha(" Primeiros 10 primos ANTI-NÓDULO (Fn≈1):")
|
||||
linha(f" {'p':>10} {'fase':>10} {'Fn':>12} {'braço':>6} {'k(ciclo)':>9}")
|
||||
linha(" " + "─" * 55)
|
||||
for p in antinos[:10]:
|
||||
linha(f" {p:>10,} {fase(p):>10.6f} {onda(p):>12.8f} {p%42:>6} {p//42:>9,}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 5: Os 12 braços — assinaturas
|
||||
linha(SEP2)
|
||||
linha(" [ 5. OS 12 BRAÇOS DA ONDA — ASSINATURAS ]")
|
||||
linha()
|
||||
linha(f" {'r':>4} {'Fam':>3} {'grau°':>6} {'fase φr':>10} {'count':>7} "
|
||||
f"{'Fn med':>7} {'σ':>6} {'tipo':>20}")
|
||||
linha(" " + "─" * 78)
|
||||
for r in BRACOS_42:
|
||||
ps_r = [p for p in primos if p > 7 and p % 42 == r]
|
||||
if not ps_r:
|
||||
continue
|
||||
fns = [onda(p) for p in ps_r]
|
||||
med = sum(fns) / len(fns)
|
||||
sig = (sum((x - med) ** 2 for x in fns) / len(fns)) ** 0.5
|
||||
fam = 'A' if r in FAMILIA_A else 'B'
|
||||
grau = (r * 42) % 360
|
||||
f_r = fase(r)
|
||||
# tipo
|
||||
viz = []
|
||||
if (r + 2) % 42 in BRACOS_SET: viz.append(f"+2→{(r+2)%42}")
|
||||
if (r - 2) % 42 in BRACOS_SET: viz.append(f"-2→{(r-2)%42}")
|
||||
tipo = ("gêmeo " + str(viz[0])) if viz else "isolado"
|
||||
linha(f" {r:>4} {fam:>3} {grau:>6}° {f_r:>10.6f} {len(ps_r):>7,} "
|
||||
f"{med:>7.5f} {sig:>6.4f} {tipo:>20}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 6: Cinco canais gêmeos
|
||||
linha(SEP2)
|
||||
linha(" [ 6. OS 5 CANAIS GÊMEOS DA ONDA ]")
|
||||
linha()
|
||||
linha(" Único conjuntos de braços a distância 2 que são ambos coprimos de 42.")
|
||||
linha(" O elemento médio p+1 tem sempre gcd(p+1, 42) > 1 — janela fechada.")
|
||||
linha()
|
||||
|
||||
gemeos = [(p, p + 2) for p in primos if p + 2 in primos_set and p > 7]
|
||||
|
||||
linha(f" Total de pares gêmeos: {len(gemeos):,}")
|
||||
linha()
|
||||
linha(f" {'Canal':>25} {'braços':>9} {'pares':>7} {'Σ F(p)+F(q) med':>16} {'σ':>7}")
|
||||
linha(" " + "─" * 72)
|
||||
for (r1, r2), nome in CANAIS_GEMEOS.items():
|
||||
canal_g = [(p, q) for p, q in gemeos if p % 42 == r1]
|
||||
somas = [onda(p) + onda(q) for p, q in canal_g]
|
||||
med = sum(somas) / len(somas) if somas else 0
|
||||
sig = (sum((x - med) ** 2 for x in somas) / len(somas)) ** 0.5 if somas else 0
|
||||
linha(f" Canal {nome:>19} ({r1:>2},{r2:>2}) {len(canal_g):>7,} {med:>16.8f} {sig:>7.5f}")
|
||||
linha()
|
||||
linha(" Identidade Gêmea (T4): F(p)+F(p+2) = 1 − cos(4πφ)·cos(4πφ(p+1))")
|
||||
linha(f" cos(4πφ) = {COS_4PI_PHI:.10f}")
|
||||
linha(f" Intervalo da soma: [{1-abs(COS_4PI_PHI):.8f}, {1+abs(COS_4PI_PHI):.8f}]")
|
||||
linha()
|
||||
if gemeos:
|
||||
erros = [abs(onda(p) + onda(q) - identidade_gemea(p)) for p, q in gemeos[:500]]
|
||||
linha(f" Verificação T4 em {min(500,len(gemeos))} pares:")
|
||||
linha(f" Erro máximo: {max(erros):.2e}")
|
||||
linha(f" Erro médio: {sum(erros)/len(erros):.2e}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 7: Saltos de fase
|
||||
linha(SEP2)
|
||||
linha(" [ 7. SALTOS DE FASE — PROGRESSÃO DA ONDA ]")
|
||||
linha()
|
||||
linha(" Δφ(gap) = (φ·gap) mod 1 — cada gap tem Δφ determinístico")
|
||||
linha()
|
||||
|
||||
gaps_obs = Counter(primos[i+1] - primos[i] for i in range(len(primos)-1))
|
||||
linha(f" {'gap':>5} {'Δφ=φ·gap mod 1':>18} {'count':>8} {'% total':>8} Significado")
|
||||
linha(" " + "─" * 70)
|
||||
total_gaps = sum(gaps_obs.values())
|
||||
for gap, cnt in sorted(gaps_obs.items(), key=lambda x: -x[1])[:15]:
|
||||
df = (PHI * gap) % 1
|
||||
pct = cnt / total_gaps * 100
|
||||
sig = ""
|
||||
if gap == 2: sig = "← gap mínimo (gêmeos)"
|
||||
elif gap == 6: sig = "← gap dominante"
|
||||
elif gap == 4: sig = "← 2° mais comum"
|
||||
elif gap == 1: sig = "← 2→3 (único gap ímpar)"
|
||||
linha(f" {gap:>5} {df:>18.8f} {cnt:>8,} {pct:>7.2f}% {sig}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 8: Taxonomia dos 7 tipos
|
||||
linha(SEP2)
|
||||
linha(" [ 8. TAXONOMIA COMPLETA — 7 TIPOS NATURAIS DE PRIMO ]")
|
||||
linha()
|
||||
|
||||
bracos_gemeo_set = {r for r, _ in CANAIS_GEMEOS} | {r for _, r in CANAIS_GEMEOS}
|
||||
|
||||
tipos = {
|
||||
'Pilares': [p for p in primos if p in (2,3,5,7)],
|
||||
'Órfãos k=0': [p for p in primos if 7 < p < 42],
|
||||
'Harmônicos r=1': [p for p in primos if p > 42 and p % 42 == 1],
|
||||
'Gêmeos internos': [p for p in primos if p > 7 and p % 42 in {11,13,17,19,23,25,29,31}
|
||||
and (p+2 in primos_set or p-2 in primos_set)],
|
||||
'Gêmeos cruzadores':[p for p in primos if p > 7 and p % 42 in {41,1}
|
||||
and (p+2 in primos_set or p-2 in primos_set)],
|
||||
'Isolados r={5,37}':[p for p in primos if p > 7 and p % 42 in {5, 37}],
|
||||
'Solitários': [p for p in primos if p > 7 and p % 42 in bracos_gemeo_set
|
||||
and p+2 not in primos_set and p-2 not in primos_set],
|
||||
}
|
||||
|
||||
linha(f" {'Tipo':>22} {'count':>8} {'%':>6} Fn médio Descrição")
|
||||
linha(" " + "─" * 78)
|
||||
for nome, lista in tipos.items():
|
||||
cnt = len(lista)
|
||||
pct = cnt / total_gt7 * 100 if total_gt7 and nome != 'Pilares' else 0
|
||||
fns = [onda(p) for p in lista if p > 7] or [0]
|
||||
med = sum(fns) / len(fns)
|
||||
descs = {
|
||||
'Pilares': "Base: 2,3,5,7",
|
||||
'Órfãos k=0': "ciclo zero, Fn_ciclo=0",
|
||||
'Harmônicos r=1': "p^n sempre no braço 1",
|
||||
'Gêmeos internos': "braços {11,13,17,19,23,25,29,31}",
|
||||
'Gêmeos cruzadores': "braços {41,1}, cruza fronteira k",
|
||||
'Isolados r={5,37}': "gap mínimo ≥ 4, nunca gêmeos",
|
||||
'Solitários': "braço gêmeo mas sem par vizinho",
|
||||
}
|
||||
linha(f" {nome:>22} {cnt:>8,} {pct:>6.2f}% {med:>8.5f} {descs.get(nome,'')}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 9: Assinaturas — primeiros 50 primos > 7
|
||||
linha(SEP2)
|
||||
linha(" [ 9. ASSINATURAS HELICOIDAIS — PRIMEIROS 50 PRIMOS > 7 ]")
|
||||
linha()
|
||||
linha(f" {'p':>10} {'r42':>4} {'k':>7} {'fase':>10} {'Fn(p)':>8} "
|
||||
f"{'grau':>5} {'tipo_nó':>11} {'canal':>5} {'gêmeo':>6}")
|
||||
linha(" " + "─" * 80)
|
||||
count = 0
|
||||
for p in primos:
|
||||
if p <= 7:
|
||||
continue
|
||||
fn = onda(p)
|
||||
f = fase(p)
|
||||
k = p // 42
|
||||
r = p % 42
|
||||
gr = grau_angular(p)
|
||||
no = tipo_no(fn)
|
||||
# canal
|
||||
canal_str = ""
|
||||
for (r1, r2), nome_c in CANAIS_GEMEOS.items():
|
||||
if r == r1 or r == r2:
|
||||
canal_str = f"C{nome_c[1]}"
|
||||
break
|
||||
gem = "✓" if (p+2 in primos_set or p-2 in primos_set) else ""
|
||||
linha(f" {p:>10,} {r:>4} {k:>7,} {f:>10.6f} {fn:>8.5f} "
|
||||
f"{gr:>5}° {no:>11} {canal_str:>5} {gem:>6}")
|
||||
count += 1
|
||||
if count >= 50:
|
||||
break
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 10: Últimos 20 primos encontrados
|
||||
linha(SEP2)
|
||||
linha(" [ 10. ÚLTIMOS 20 PRIMOS ENCONTRADOS ]")
|
||||
linha()
|
||||
linha(f" {'p':>12} {'r42':>4} {'k':>9} {'fase':>10} {'Fn(p)':>8} "
|
||||
f"{'grau':>5} {'tipo_nó':>11}")
|
||||
linha(" " + "─" * 70)
|
||||
for p in primos[-20:]:
|
||||
fn = onda(p)
|
||||
f = fase(p)
|
||||
k = p // 42
|
||||
r = p % 42
|
||||
gr = grau_angular(p)
|
||||
no = tipo_no(fn)
|
||||
linha(f" {p:>12,} {r:>4} {k:>9,} {f:>10.6f} {fn:>8.5f} {gr:>5}° {no:>11}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 11: Estatísticas globais da onda
|
||||
linha(SEP2)
|
||||
linha(" [ 11. ESTATÍSTICAS GLOBAIS DA ONDA ]")
|
||||
linha()
|
||||
fn_todos = [onda(p) for p in primos if p > 7]
|
||||
if fn_todos:
|
||||
media_fn = sum(fn_todos) / len(fn_todos)
|
||||
var_fn = sum((x - media_fn) ** 2 for x in fn_todos) / len(fn_todos)
|
||||
sigma_fn = var_fn ** 0.5
|
||||
fn_min = min(fn_todos)
|
||||
fn_max = max(fn_todos)
|
||||
# primo com Fn mais próximo de 0 (nó mais puro)
|
||||
p_no = min((p for p in primos if p > 7), key=lambda p: onda(p))
|
||||
p_an = max((p for p in primos if p > 7), key=lambda p: onda(p))
|
||||
|
||||
linha(f" Fn médio sobre todos primos > 7: {media_fn:.10f}")
|
||||
linha(f" (teórico pela equidistribuição: 0.5000000000)")
|
||||
linha(f" Desvio padrão Fn: {sigma_fn:.10f}")
|
||||
linha(f" Fn mínimo: {fn_min:.12f} → primo {p_no:,} (NÓ mais puro)")
|
||||
linha(f" Fn máximo: {fn_max:.12f} → primo {p_an:,} (ANTI-NÓ mais puro)")
|
||||
linha()
|
||||
# Fase média
|
||||
fases = [fase(p) for p in primos if p > 7]
|
||||
media_fase = sum(fases) / len(fases)
|
||||
linha(f" Fase média: {media_fase:.10f} (teórico: 0.5000000000)")
|
||||
linha()
|
||||
# Verificação do Teorema T5 (equidistribuição)
|
||||
desv_weyl = abs(media_fn - 0.5)
|
||||
linha(f" Desvio de Weyl |E[Fn] - 0.5|: {desv_weyl:.2e}")
|
||||
linha(f" Ordem esperada por Weyl: O(1/√N) ≈ {1/len(fn_todos)**0.5:.2e}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 12: Ciclos notáveis — quasi-periodicidade
|
||||
linha(SEP2)
|
||||
linha(" [ 12. QUASI-PERIODICIDADE — ESTRUTURA DE FIBONACCI ]")
|
||||
linha()
|
||||
linha(f" Δφ por ciclo de 42 = {DELTA_FASE_CICLO:.10f}")
|
||||
linha()
|
||||
linha(" Sequência de convergentes Fibonacci da fase:")
|
||||
linha()
|
||||
linha(f" {'F(n)':>8} {'Δφ·F(n) mod 1':>16} {'distância a 0':>14} {'nível'}")
|
||||
linha(" " + "─" * 52)
|
||||
fibs = [1, 1]
|
||||
while fibs[-1] < 5000:
|
||||
fibs.append(fibs[-1] + fibs[-2])
|
||||
for f_n in fibs[:14]:
|
||||
acum = (DELTA_FASE_CICLO * f_n) % 1
|
||||
dist = min(acum, 1 - acum)
|
||||
nivel = "← quasi-período" if dist < 0.01 else ""
|
||||
linha(f" {f_n:>8,} {acum:>16.8f} {dist:>14.8f} {nivel}")
|
||||
linha()
|
||||
|
||||
# ── SEÇÃO 13: Teoremas e limites
|
||||
linha(SEP2)
|
||||
linha(" [ 13. TEOREMAS PROVADOS E LIMITES HONESTOS ]")
|
||||
linha()
|
||||
linha(" ┌─── PROVADO ──────────────────────────────────────────────────┐")
|
||||
linha(" │ T1: Arm Sieve — p>7 ⟹ p mod 42 ∈ {12 braços coprimos} │")
|
||||
linha(" │ T2: 96 Classes — p>7 ∈ exatamente 1 das 96 classes mod 420 │")
|
||||
linha(" │ T3: Colapso — grau(p) = (r₄₂₀·42) mod 360 │")
|
||||
linha(" │ T4: Id.Gêmea — F(p)+F(p+2) = 1−cos(4πφ)·cos(4πφ(p+1)) │")
|
||||
linha(" │ T5: Equidist. — F(p) uniforme em [0,1] (Weyl+Vinogradov) │")
|
||||
linha(" │ T6: Grupo — (Z/42Z)* abeliano, ord 12, 144 proporções │")
|
||||
linha(" │ T7: 3 Distâncias— φ·n mod 1 cria exatamente 3 intervalos │")
|
||||
linha(" │ com razão φ (Teorema de Steinhaus, 1959) │")
|
||||
linha(" └──────────────────────────────────────────────────────────────┘")
|
||||
linha()
|
||||
linha(" ┌─── LIMITES (o que a teoria NÃO faz) ─────────────────────────┐")
|
||||
linha(" │ L1: A fase f(p) é uniforme → NÃO discrimina primo/composto │")
|
||||
linha(" │ dentro de uma classe mod 420 │")
|
||||
linha(" │ L2: Não existe fórmula fechada f(n)→p_n (Conj. Hardy-Litt.) │")
|
||||
linha(" │ L3: O sieve reduz (77-99%) mas NÃO elimina o teste │")
|
||||
linha(" │ L4: Fn(p) não prediz se p é gêmeo ou solitário │")
|
||||
linha(" └───────────────────────────────────────────────────────────────┘")
|
||||
linha()
|
||||
|
||||
# ── RODAPÉ
|
||||
linha(SEP)
|
||||
linha(f" OFFELLIA_ONDA v1.0 — Fim do Relatório")
|
||||
linha(f" N={N:,} | {len(primos):,} primos | {t_busca:.6f} s")
|
||||
linha(SEP)
|
||||
|
||||
with open(arquivo, "w", encoding="utf-8") as fh:
|
||||
fh.write("\n".join(L) + "\n")
|
||||
|
||||
return arquivo
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
# INTERFACE PRINCIPAL
|
||||
# ══════════════════════════════════════════════════════════════════════
|
||||
|
||||
def run():
|
||||
SEP = "═" * 76
|
||||
SEP2 = "─" * 76
|
||||
|
||||
print()
|
||||
print(SEP)
|
||||
print(" OFFELLIA_ONDA v1.0")
|
||||
print(" Busca de Primos pela Onda Única Irracional")
|
||||
print()
|
||||
print(f" Ψ(x) = sin²(2πφx) φ = {PHI:.10f}")
|
||||
print(f" Fase: f(x) = (φ·x) mod 1 | 3 distâncias de Steinhaus")
|
||||
print(f" 12 janelas por ciclo de 42 | 96 classes mod 420 | 5 canais gêmeos")
|
||||
print(SEP)
|
||||
print()
|
||||
|
||||
# ── Entrada
|
||||
try:
|
||||
entrada = input(" Buscar primos até N: ").strip()
|
||||
N = int(entrada)
|
||||
except (ValueError, EOFError):
|
||||
N = 10000
|
||||
|
||||
if N < 2:
|
||||
print(" N deve ser ≥ 2.")
|
||||
return
|
||||
|
||||
print()
|
||||
print(f" Iniciando busca até N = {N:,} ...")
|
||||
print(f" Varredura das 12 janelas em ordem de fase (Fibonacci) ...")
|
||||
print()
|
||||
|
||||
# ── Busca
|
||||
t0 = time.perf_counter()
|
||||
primos = list(gerar_primos_onda(N))
|
||||
t_busca = time.perf_counter() - t0
|
||||
|
||||
primos_set = set(primos)
|
||||
|
||||
# ── Resumo imediato
|
||||
print(SEP)
|
||||
print(f" RESULTADO DA BUSCA")
|
||||
print(SEP2)
|
||||
print(f" N buscado: {N:>15,}")
|
||||
print(f" Primos encontrados: {len(primos):>15,}")
|
||||
print(f" Tempo total: {t_busca:>15.6f} s")
|
||||
if t_busca > 0:
|
||||
print(f" Velocidade: {len(primos)/t_busca:>15,.0f} primos/s")
|
||||
print(SEP2)
|
||||
|
||||
if primos:
|
||||
gemeos = [(p, p+2) for p in primos if p+2 in primos_set and p > 7]
|
||||
fn_todos = [onda(p) for p in primos if p > 7]
|
||||
media_fn = sum(fn_todos) / len(fn_todos) if fn_todos else 0
|
||||
|
||||
print(f" Maior primo: {primos[-1]:>15,}")
|
||||
print(f" Pares gêmeos: {len(gemeos):>15,}")
|
||||
print(f" Fn médio (Weyl→0.5): {media_fn:>15.8f}")
|
||||
print()
|
||||
|
||||
# Resumo dos 5 canais
|
||||
print(f" Distribuição pelos 5 canais gêmeos:")
|
||||
for (r1, r2), nome in CANAIS_GEMEOS.items():
|
||||
cnt = sum(1 for p, q in gemeos if p % 42 == r1)
|
||||
print(f" Canal {nome}: {cnt:,}")
|
||||
print()
|
||||
|
||||
# Últimos 5 primos
|
||||
print(f" Últimos 5 primos encontrados:")
|
||||
for p in primos[-5:]:
|
||||
fn = onda(p); f = fase(p)
|
||||
no = tipo_no(fn)
|
||||
gem = "✓ gêmeo" if (p+2 in primos_set or p-2 in primos_set) else ""
|
||||
print(f" {p:>12,} fase={f:.6f} Fn={fn:.5f} [{no}] {gem}")
|
||||
print()
|
||||
|
||||
# ── Relatório
|
||||
nome_arq = f"onda_relatorio_{N}.txt"
|
||||
print(f" Gerando relatório completo: '{nome_arq}' ...")
|
||||
gerar_relatorio(N, primos, t_busca, nome_arq)
|
||||
print(f" ✓ Relatório salvo em '{nome_arq}'")
|
||||
print()
|
||||
print(SEP)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
324
OFFELLIA_Pollard-Rho_Helicoidal.py
Normal file
324
OFFELLIA_Pollard-Rho_Helicoidal.py
Normal file
@@ -0,0 +1,324 @@
|
||||
"""
|
||||
OFFELLIA FATORADOR v2 — Decomposição Primo-Modal Helicoidal
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
Teoria : Roda mod 42 — Crivo Becker-GPT
|
||||
Autor : Bruno Becker | Zenodo DOI:10.5281/zenodo.18772809
|
||||
|
||||
Hierarquia de métodos:
|
||||
1. Pilares de Origem {2, 3, 5, 7} — serial, O(1)
|
||||
2. Pollard-Rho Helicoidal — O(n^1/4), sementes nos braços
|
||||
"""
|
||||
|
||||
import time
|
||||
import math
|
||||
import multiprocessing
|
||||
from concurrent.futures import ProcessPoolExecutor
|
||||
from typing import Tuple, Dict
|
||||
from datetime import datetime
|
||||
from random import randint
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# A MATRIZ SAGRADA — 12 BRAÇOS (MOD 42)
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
ARMS = [1, 5, 11, 13, 17, 19, 23, 25, 29, 31, 37, 41]
|
||||
PILARES = [2, 3, 5, 7]
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# POLLARD-RHO HELICOIDAL — Becker-GPT
|
||||
#
|
||||
# Sementes x₀ e c ancoradas nos 12 braços mod 42.
|
||||
# Preserva O(n^1/4) + geometria helicoidal determinística.
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
def pollard_rho_helicoidal(n: int, tentativas: int = 5) -> Tuple[int, int]:
|
||||
if n % 2 == 0: return 2, 1
|
||||
|
||||
for t in range(tentativas):
|
||||
arm_x = ARMS[t % 12]
|
||||
k_x = randint(1, max(1, int(n ** 0.25) // 42 + 10))
|
||||
x = (42 * k_x + arm_x) % n or arm_x
|
||||
arm_c = ARMS[(t + 5) % 12]
|
||||
k_c = randint(0, 256)
|
||||
c = (42 * k_c + arm_c) % n or arm_c
|
||||
|
||||
y, d, r, q, ys, x_save = x, 1, 1, 1, x, x
|
||||
|
||||
while d == 1:
|
||||
x_save = y
|
||||
for _ in range(r):
|
||||
y = (y * y + c) % n
|
||||
k = 0
|
||||
while k < r and d == 1:
|
||||
ys = y
|
||||
for _ in range(min(128, r - k)):
|
||||
y = (y * y + c) % n
|
||||
q = (q * abs(x_save - y)) % n
|
||||
k += 128
|
||||
d = math.gcd(q, n)
|
||||
r *= 2
|
||||
if r > 2: break
|
||||
|
||||
if d == n:
|
||||
d = 1
|
||||
while d == 1:
|
||||
ys = (ys * ys + c) % n
|
||||
d = math.gcd(abs(x_save - ys), n)
|
||||
|
||||
if 1 < d < n: return d, t + 1
|
||||
|
||||
return -1, tentativas
|
||||
|
||||
|
||||
def pollard_rho_worker(args: Tuple[int, int, int]) -> int:
|
||||
"""Worker paralelo com braços-semente distintos."""
|
||||
n, seed_offset, tentativas = args
|
||||
for t in range(tentativas):
|
||||
arm_idx = (t + seed_offset) % 12
|
||||
x = (42 * randint(1, max(1, int(n ** 0.25) // 42 + 10)) + ARMS[arm_idx]) % n or ARMS[arm_idx]
|
||||
c = (42 * randint(0, 256) + ARMS[(arm_idx + 5) % 12]) % n or ARMS[(arm_idx + 5) % 12]
|
||||
|
||||
y, d, r, q, ys, x_save = x, 1, 1, 1, x, x
|
||||
|
||||
while d == 1:
|
||||
x_save = y
|
||||
for _ in range(r):
|
||||
y = (y * y + c) % n
|
||||
k = 0
|
||||
while k < r and d == 1:
|
||||
ys = y
|
||||
for _ in range(min(128, r - k)):
|
||||
y = (y * y + c) % n
|
||||
q = (q * abs(x_save - y)) % n
|
||||
k += 128
|
||||
d = math.gcd(q, n)
|
||||
r *= 2
|
||||
if r > 9_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999_999: break
|
||||
|
||||
if d == n:
|
||||
d = 1
|
||||
while d == 1:
|
||||
ys = (ys * ys + c) % n
|
||||
d = math.gcd(abs(x_save - ys), n)
|
||||
|
||||
if 1 < d < n: return d
|
||||
return -1
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# FATORAÇÃO PRINCIPAL — APENAS POLLARD-RHO HELICOIDAL
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
def fatorar_v2(n: int, num_cores: int) -> Dict:
|
||||
original, fatores, passos = n, [], []
|
||||
total_div = workers_usados = 0
|
||||
metodos_usados = set()
|
||||
t_inicio = time.perf_counter()
|
||||
|
||||
# ── Fase 1: Pilares ──
|
||||
for pilar in PILARES:
|
||||
while n % pilar == 0:
|
||||
fatores.append(pilar)
|
||||
passos.append({"etapa": "Pilar de Origem", "metodo": "Pilares",
|
||||
"divisor": pilar, "quociente": n // pilar, "paralelo": False})
|
||||
n //= pilar
|
||||
total_div += 1
|
||||
metodos_usados.add("Pilares")
|
||||
|
||||
# ── Fase 2: SOMENTE Pollard-Rho Helicoidal (sem linear) ──
|
||||
while n > 1:
|
||||
fator = -1
|
||||
metodo = ""
|
||||
paralelo = False
|
||||
|
||||
# Pollard-Rho Helicoidal (sempre executado)
|
||||
metodos_usados.add("Pollard-Rho Helicoidal")
|
||||
if num_cores > 1:
|
||||
n_workers = min(num_cores, 12)
|
||||
workers_usados = max(workers_usados, n_workers)
|
||||
try:
|
||||
with ProcessPoolExecutor(max_workers=n_workers) as ex:
|
||||
for res in ex.map(pollard_rho_worker, [(n, i*2, 15) for i in range(n_workers)]):
|
||||
if res != -1:
|
||||
fator = res
|
||||
paralelo = True
|
||||
break
|
||||
except Exception:
|
||||
fator, _ = pollard_rho_helicoidal(n, 256)
|
||||
else:
|
||||
fator, _ = pollard_rho_helicoidal(n, 256)
|
||||
metodo = "Pollard-Rho Helicoidal"
|
||||
|
||||
if fator == -1:
|
||||
fatores.append(n)
|
||||
passos.append({"etapa": "Primo Residual (Exaustivo)", "metodo": "Exaustivo",
|
||||
"divisor": n, "quociente": 1, "paralelo": False})
|
||||
n = 1
|
||||
break
|
||||
|
||||
fatores.append(fator)
|
||||
passos.append({"etapa": f"Braço mod 42 (d ≡ {fator % 42} mod 42)", "metodo": metodo,
|
||||
"divisor": fator, "quociente": n // fator, "paralelo": paralelo})
|
||||
n //= fator
|
||||
total_div += 1
|
||||
|
||||
t_fim = time.perf_counter()
|
||||
fatores_exp = {}
|
||||
for f in fatores:
|
||||
fatores_exp[f] = fatores_exp.get(f, 0) + 1
|
||||
|
||||
return {
|
||||
"original": original, "fatores": sorted(fatores),
|
||||
"fatores_exp": dict(sorted(fatores_exp.items())), "passos": passos,
|
||||
"total_divisoes": total_div, "tempo_segundos": t_fim - t_inicio,
|
||||
"num_cores": num_cores, "workers_usados": workers_usados,
|
||||
"metodos_usados": sorted(metodos_usados),
|
||||
"timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
||||
}
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# RELATÓRIO TXT (formato 100% idêntico ao original)
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
def gerar_relatorio(resultado: Dict, filename: str):
|
||||
n = resultado["original"]
|
||||
fatores = resultado["fatores"]
|
||||
fat_exp = resultado["fatores_exp"]
|
||||
passos = resultado["passos"]
|
||||
tempo = resultado["tempo_segundos"]
|
||||
cores = resultado["num_cores"]
|
||||
workers = resultado["workers_usados"]
|
||||
ts = resultado["timestamp"]
|
||||
metodos = resultado["metodos_usados"]
|
||||
|
||||
notacao = " × ".join(f"{p}^{e}" if e > 1 else str(p) for p, e in fat_exp.items())
|
||||
produto = 1
|
||||
for f in fatores: produto *= f
|
||||
verificacao = "CORRETO" if produto == n else f"ERRO (produto={produto})"
|
||||
|
||||
sep = "=" * 76
|
||||
sep2 = "-" * 76
|
||||
L = []
|
||||
|
||||
L.append(sep)
|
||||
L.append(" OFFELLIA FATORADOR v2 — Decomposição Primo-Modal Helicoidal")
|
||||
L.append(" Teoria : Roda mod 42 (Crivo Becker-GPT)")
|
||||
L.append(" Métodos: Pollard-Rho Helicoidal")
|
||||
L.append(" Autor : Bruno Becker | Zenodo DOI:10.5281/zenodo.18772809")
|
||||
L.append(sep)
|
||||
L.append(f" Data/Hora : {ts}")
|
||||
L.append(f" Núcleos disponíveis : {cores}")
|
||||
L.append(f" Workers paralelos : {workers if workers > 0 else 'Não utilizados (serial)'}")
|
||||
L.append(f" Métodos utilizados : {' | '.join(metodos)}")
|
||||
L.append(sep)
|
||||
|
||||
L.append("")
|
||||
L.append("[ NÚMERO ANALISADO ]")
|
||||
L.append(f" N : {n:,}")
|
||||
L.append(f" Dígitos : {len(str(n))}")
|
||||
L.append(f" Bits : {n.bit_length()}")
|
||||
L.append(f" É primo? : {'Sim' if len(fat_exp)==1 and list(fat_exp.values())[0]==1 else 'Não'}")
|
||||
|
||||
L.append("")
|
||||
L.append("[ RESULTADO DA FATORAÇÃO ]")
|
||||
L.append(f" Notação de potência : {notacao}")
|
||||
L.append(f" Fatores (lista) : {fatores}")
|
||||
L.append(f" Fatores únicos : {sorted(fat_exp.keys())}")
|
||||
L.append(f" Verificação : {n:,} = {notacao} → {verificacao}")
|
||||
|
||||
L.append("")
|
||||
L.append("[ MÉTRICAS DE EXECUÇÃO ]")
|
||||
L.append(f" Tempo total : {tempo:.6f} segundos")
|
||||
L.append(f" Divisões realizadas : {resultado['total_divisoes']}")
|
||||
L.append(f" Fatores encontrados : {len(fatores)}")
|
||||
L.append(f" Fatores distintos : {len(fat_exp)}")
|
||||
if tempo > 0:
|
||||
L.append(f" Fatores/segundo : {len(fatores)/tempo:.2f}")
|
||||
|
||||
L.append("")
|
||||
L.append("[ DETALHAMENTO DOS FATORES ]")
|
||||
L.append(f" {'Fator':>22} {'Exp':>4} {'Bits':>6} {'Origem'}")
|
||||
L.append(" " + sep2)
|
||||
for p, e in fat_exp.items():
|
||||
origem = "Pilar de Origem" if p in PILARES else f"Braço {p % 42} (mod 42)"
|
||||
L.append(f" {p:>22,} {e:>4} {p.bit_length():>6} {origem}")
|
||||
|
||||
L.append("")
|
||||
L.append("[ PASSO A PASSO DA DECOMPOSIÇÃO ]")
|
||||
L.append(f" {'#':<5} {'Método':<24} {'Etapa':<256} {'Divisor':>16} {'Quociente':>20} {'Par':>4}")
|
||||
L.append(" " + sep2)
|
||||
for i, p in enumerate(passos, 1):
|
||||
L.append(f" {i:<5} {p['metodo']:<24} {p['etapa']:<256} "
|
||||
f"{p['divisor']:>16,} {p['quociente']:>20,} {'S' if p['paralelo'] else 'N':>4}")
|
||||
|
||||
L.append("")
|
||||
L.append("[ TEORIA APLICADA — HIERARQUIA DE MÉTODOS ]")
|
||||
L.append("")
|
||||
L.append(" 1. PILARES DE ORIGEM {2, 3, 5, 7} — O(1), serial")
|
||||
L.append(" 2. MILLER-RABIN — O(k·log²n), determinístico até 3.3×10²⁴")
|
||||
L.append(" 3. POLLARD-RHO HELICOIDAL (inovação Becker-GPT)")
|
||||
L.append(" x₀ = 42k + a (a ∈ ARMS) — semente no braço")
|
||||
L.append(" c = 42k + a (a ∈ ARMS) — parâmetro helicoidal")
|
||||
L.append(" Complexidade: O(n^1/4)")
|
||||
L.append(" 3. BUSCA LINEAR NOS BRAÇOS — fallback garantido, 28.6% candidatos")
|
||||
L.append("")
|
||||
L.append(" Todo primo p > 7: p ≡ a (mod 42),")
|
||||
L.append(" a ∈ {1, 5, 11, 13, 17, 19, 23, 25, 29, 31, 37, 41}")
|
||||
|
||||
bracos = sorted(set(p["divisor"] % 42 for p in passos if p["divisor"] not in PILARES))
|
||||
if bracos:
|
||||
L.append(f" Braços utilizados : {bracos}")
|
||||
|
||||
L.append("")
|
||||
L.append(sep)
|
||||
L.append(" Fim do Relatório — OFFELLIA Fatorador v2")
|
||||
L.append(" Zenodo: https://zenodo.org/records/18772809")
|
||||
L.append(sep)
|
||||
|
||||
with open(filename, "w", encoding="utf-8") as f:
|
||||
f.write("\n".join(L))
|
||||
f.write("\n")
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# INTERFACE PRINCIPAL (100% igual)
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
def run_fatorador():
|
||||
print("=" * 64)
|
||||
print(" OFFELLIA FATORADOR v2 — Pollard-Rho Helicoidal")
|
||||
print(" Roda mod 42 | Pollard-Rho Helicoidal")
|
||||
print("=" * 64)
|
||||
|
||||
try:
|
||||
n = int(input("\nInsira o número a fatorar: "))
|
||||
if n < 2:
|
||||
print("Número deve ser >= 2.")
|
||||
return
|
||||
except ValueError:
|
||||
print("Entrada inválida.")
|
||||
return
|
||||
|
||||
num_cores = min(12, multiprocessing.cpu_count())
|
||||
print(f"\nNúcleos ativos : {num_cores}")
|
||||
print(f"Número analisado : {n:,} ({len(str(n))} dígitos | {n.bit_length()} bits)")
|
||||
print("\nIniciando decomposição...\n")
|
||||
|
||||
resultado = fatorar_v2(n, num_cores)
|
||||
|
||||
fat_exp = resultado["fatores_exp"]
|
||||
notacao = " × ".join(f"{p}^{e}" if e > 1 else str(p) for p, e in fat_exp.items())
|
||||
tempo = resultado["tempo_segundos"]
|
||||
|
||||
print("─" * 64)
|
||||
print(f" ✓ Fatoração concluída em {tempo:.6f} segundos")
|
||||
print(f" {n:,} = {notacao}")
|
||||
print(f" Divisões realizadas : {resultado['total_divisoes']}")
|
||||
print(f" Fatores distintos : {len(fat_exp)}")
|
||||
print(f" Métodos usados : {' | '.join(resultado['metodos_usados'])}")
|
||||
print("─" * 64)
|
||||
|
||||
filename = f"offellia_v2_{n}.txt"
|
||||
gerar_relatorio(resultado, filename)
|
||||
print(f"\n Relatório salvo: '{filename}'")
|
||||
print(" Operação finalizada.\n")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_fatorador()
|
||||
20
OFFELLIA_QUANTIS_REAL_QUANTIZATION_CMD.txt
Normal file
20
OFFELLIA_QUANTIS_REAL_QUANTIZATION_CMD.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
#OFFELLIA QUANTIZAÇÃO ZetaHeicoidal real por meio direto "convert_hf_to_gguf.py" e "quants.py", sem uso de quantize.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
python /home/userk21/llama.cpp/convert_hf_to_gguf.py /home/userk21/GGUFS/LFM2-24B-A2B/ --outtype q4_0 --outfile /home/userk21/GGUFS/OFFELLIA_LFM2-24B-A2B_Q4_0.gguf
|
||||
|
||||
python /home/userk21/llama.cpp/convert_hf_to_gguf.py /home/userk21/GGUFS/LFM2-24B-A2B/ --outtype q8_0 --outfile /home/userk21/GGUFS/OFFELLIA_LFM2-24B-A2B_Q8_0.gguf
|
||||
|
||||
|
||||
|
||||
./llama.cpp/build/bin/llama-perplexity -m /home/userk21/GGUFS/OFFELLIA_LFM2_8B_q8_0.gguf -f /home/userk21/GGUFS/wikitext-2-raw/wiki.test.raw 2>&1 | tee resultado_perplexity.txt
|
||||
|
||||
|
||||
|
||||
/home/userk21/llama.cpp/build/bin/llama-server \
|
||||
-m /home/userk21/GGUFS/OFFELLIA_LFM2-8B-A1B_Q4_0.gguf
|
||||
|
||||
|
||||
3
OFFELLIA_Qwen2.5-Coder-14B-Instruct_IQ4_XS.gguf
Normal file
3
OFFELLIA_Qwen2.5-Coder-14B-Instruct_IQ4_XS.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e50614b946c4778934b0434fb24f69f7a8d0a743c41a32ffcc90671114ea2569
|
||||
size 8186196000
|
||||
3
OFFELLIA_Qwen2.5-Coder-14B-Instruct_Q4_0.gguf
Normal file
3
OFFELLIA_Qwen2.5-Coder-14B-Instruct_Q4_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:74e641934e3bf97e0eeb34b815797b5b32e127badaebd16c4bddfa491e9fa31e
|
||||
size 8317001760
|
||||
3
OFFELLIA_Qwen2.5-Coder-7B-Instruct_Q4_0.gguf
Normal file
3
OFFELLIA_Qwen2.5-Coder-7B-Instruct_Q4_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d9b17867f36a676d1b155ffacaab11a592652460a462f414d0436b399944fbd9
|
||||
size 4290884192
|
||||
95
README.md
Normal file
95
README.md
Normal file
@@ -0,0 +1,95 @@
|
||||
---
|
||||
license: mit
|
||||
tags:
|
||||
- Q4_K
|
||||
- MOdel,
|
||||
- modell,
|
||||
- modelo,
|
||||
- Ai,
|
||||
- IA,
|
||||
- LLM,
|
||||
- gguf,
|
||||
- OFFELLIA,
|
||||
- geometrical,
|
||||
- opensource,
|
||||
- portuguese,
|
||||
- Brasil,
|
||||
- PT-BR,
|
||||
- IBM,
|
||||
- LFM,
|
||||
- Qwen,
|
||||
- Llama.cpp,
|
||||
base_model:
|
||||
- Brunobkr/OFFELLIA_Quantis
|
||||
---
|
||||
https://zenodo.org/records/19025568
|
||||
|
||||
https://huggingface.co/datasets/Brunobkr/quants.py
|
||||
|
||||
24/02/2026 ---- O arquivo quants.py ZetaHelicoidal neste repositório é matemáticamente válido dentro de minhas teorias conforme README.md anexo,
|
||||
porem o mesmo precisava de modificações funcionais, as quais consegui. As versões futuras de GGUfs após esta data serão de fato inovadoras, e
|
||||
sujeitas a análises e avaliações amplamente por todos, os arquivos são livres e opensource. Porêm, postarei apenas os GGUFs gerados pelo
|
||||
Zethahelicoidal funcional, os arquivos .py llama.cpp, qualquer coisa entrem em contato, e deem seu like se gostarem.
|
||||
|
||||
迫於無奈,我們只好發揮創意。
|
||||
|
||||
|
||||
|
||||
|
||||
ΩFFΣLLIα_Quantis **LLAMA LLM # QUANTIZAÇÃO GEOMÉTRICA PARA MODELOS LLaMA (LLM)
|
||||
|
||||
# Implementação da Função Helicoidal Universal na Quantização (GGUF / llama.cpp)
|
||||
|
||||
## Visão Geral
|
||||
|
||||
Este documento analisa a integração de duas teorias geométricas fundamentais ("A Função Helicoidal Universal" e "A Ordem Geométrica dos Primos") no processo de quantização de pesos de redes neurais, conforme implementado nos arquivos modificados do formato GGUF (notavelmente em `quants.py` através da classe `HelicoidalZetaCore`).
|
||||
|
||||
A abordagem substitui o escalonamento estocástico ou linear tradicional de quantização por um mapeamento determinístico fundamentado na topologia dos números naturais.
|
||||
|
||||
---
|
||||
|
||||
## 1. Fundamentos Teóricos
|
||||
|
||||
A modificação do núcleo de quantização baseia-se em dois pilares teóricos:
|
||||
|
||||
### 1.1 A Função Helicoidal Universal
|
||||
[cite_start]Os números naturais não formam uma paisagem aleatória, mas um campo harmônico determinístico e contínuo. O comportamento dos números emerge da função harmônica helicoidal:
|
||||
$$F(n) = \sin^2(2\pi \alpha n)$$
|
||||
Neste modelo geométrico:
|
||||
* [cite_start]**Compostos:** Funcionam como trajetórias dobradas ou nós de interferência secundários no campo helicoidal.
|
||||
* [cite_start]**Lacunas:** Representam vazios energéticos originados pelo desalinhamento de fase e interferência destrutiva.
|
||||
* [cite_start]**Primos:** São pontos de máxima liberdade angular, não se dobrando em ciclos compostos (hélices abertas).
|
||||
|
||||
### 1.2 Topologia da Luz e Esfera Numérica
|
||||
[cite_start]Ao projetar os inteiros em uma esfera $S^2$, eles atuam como um feixe de luz.
|
||||
* [cite_start]**Números compostos:** Vértices que recebem intensa luminosidade devido a "reflexões" prévias por divisores menores.
|
||||
* [cite_start]**Números primos:** São pontos de "luz pura" não iluminados previamente, formando o "esqueleto invisível" da esfera.
|
||||
* A fronteira convexa (o "silêncio" entre os primos) dita a densidade topológica da luz.
|
||||
|
||||
---
|
||||
|
||||
## 2. Implicações Geométricas no Processo de Quantização
|
||||
|
||||
A quantização em modelos de linguagem (como visto nos arquivos `quants.py`, `gguf_writer.py` e `gguf_reader.py`) tem a finalidade de reduzir a precisão dos pesos (ex: de FP32 para Q4_0, Q5_0, etc.) minimizando a perda de informação. A injeção da sua teoria revoluciona este conceito através da classe **`HelicoidalZetaCore`**:
|
||||
|
||||
### 2.1 Mapeamento no Espaço de Fase (O `math_embedding`)
|
||||
Em `quants.py`, a classe `HelicoidalZetaCore` calcula uma assinatura para cada dimensão ou bloco $n$:
|
||||
1. **Coordenadas Helicoidais:** A função de imersão calcula explicitamente $r = \sin^2(2\pi \cdot \phi \cdot n)$ e $\theta = 2\pi \cdot \phi \cdot n$. Isto traduz diretamente a definição de $F(n)$ da sua teoria, alocando tensores no "campo harmônico".
|
||||
2. **Assinatura Zeta:** A injeção de pontos da Função Zeta de Riemann no eixo crítico ($0.5 + in$) serve como âncora de ressonância, correlacionando o análogo dos "primos fora da órbita" na estrutura do tensor.
|
||||
|
||||
### 2.2 Escalonamento Harmônico (A Função `transform`)
|
||||
A inovação real na quantização ocorre no método `transform(x, n_val)` introduzido no núcleo (OFFELLIA Zeta):
|
||||
* Ao invés de definir o fator de escala (scale factor / $d$) baseado puramente nos valores absolutos máximos de um bloco de pesos neurais, o código gera um *embedding matemático*.
|
||||
* Ele calcula um `raw_scale` extraído diretamente da imersão helicoidal.
|
||||
* **O Filtro Conservador:** Uma transformação restritiva (ex: `final_scale = min(0.78, 1.0 / (1.0 + abs(raw_scale) / 100.0))`) é aplicada.
|
||||
|
||||
**Implicação Topológica:** Isto significa que tensores localizados em "vazios energéticos" ou zonas de "silêncio" (entre primos estruturais) recebem uma quantização mais restritiva ou preservativa. [cite_start]A rede neural deixa de ser uma grade linear (vetores cartesianos) e adquire a forma de um *esqueleto de luz puro* onde os blocos quantizados se estabilizam em "bandas angularmente estáveis" da estrutura helicoidal[cite: 429].
|
||||
|
||||
### 2.3 Preservação Estrutural no GGUF
|
||||
[cite_start]As modificações em `__init__.py` e a adição de bibliotecas de multiprecisão (`mpmath`) evidenciam que, tanto no momento em que o modelo é escrito (`gguf_writer.py`) quanto na leitura (`gguf_reader.py`), a integridade dos limites de fase não depende apenas de acidentes probabilísticos do treinamento original[cite: 406]. [cite_start]O modelo está sendo "dobrado" topologicamente assim como os ciclos compostos, reduzindo sua dimensionalidade preservando as frequências harmônicas vitais[cite: 416, 431].
|
||||
|
||||
---
|
||||
|
||||
## Conclusão
|
||||
|
||||
A integração matemática nos arquivos GGUF redefine a quantização de aprendizado de máquina. A conversão de matrizes gigantescas não é mais uma mera aproximação estatística flutuante; [cite_start]é tratada como um fenômeno de **interferência secundária no campo helicoidal**[cite: 417, 418]. [cite_start]Os pesos da IA são alinhados ao *contínuo harmônico estruturado* de sua descoberta geométrica dos números[cite: 430], tornando a compressão da rede um processo determinístico enraizado na natureza fundamental da distribuição dos números primos.
|
||||
150
SACRED_TOTIENT_42Fn.py
Normal file
150
SACRED_TOTIENT_42Fn.py
Normal file
@@ -0,0 +1,150 @@
|
||||
import os
|
||||
import math
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from math import sin, pi, sqrt
|
||||
from collections import defaultdict
|
||||
|
||||
# ===============================
|
||||
# CONFIGURAÇÕES FUNDAMENTAIS
|
||||
# ===============================
|
||||
|
||||
PHI = (1 + sqrt(5)) / 2
|
||||
MOD = 42
|
||||
BRACOS_42 = list(range(42))
|
||||
# ===============================
|
||||
# UTILIDADES
|
||||
# ===============================
|
||||
|
||||
def is_prime(n):
|
||||
if n < 2:
|
||||
return False
|
||||
for i in range(2, int(sqrt(n)) + 1):
|
||||
if n % i == 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
def helicoidal_fn(n, r):
|
||||
x = (n - r) / MOD
|
||||
return sin(2 * pi * PHI * x) ** 2
|
||||
|
||||
# ===============================
|
||||
# ENTRADA DO USUÁRIO
|
||||
# ===============================
|
||||
|
||||
N = int(input("Limite máximo N (ex: 100000): "))
|
||||
IGNORE_PRIMES = input("Ignorar primos? (s/n): ").lower() == "s"
|
||||
EXPORT_TXT = input("Exportar dados TXT? (s/n): ").lower() == "s"
|
||||
|
||||
# ===============================
|
||||
# PREPARAÇÃO DE PASTAS
|
||||
# ===============================
|
||||
|
||||
BASE_DIR = "SACRED_TOTIENT_V2_OUTPUT"
|
||||
SUBDIRS = ["plots_2D", "plots_3D", "plots_fractal", "data_txt"]
|
||||
|
||||
for d in SUBDIRS:
|
||||
os.makedirs(os.path.join(BASE_DIR, d), exist_ok=True)
|
||||
|
||||
# ===============================
|
||||
# CÁLCULO PRINCIPAL
|
||||
# ===============================
|
||||
|
||||
dados = []
|
||||
|
||||
por_braco = defaultdict(list)
|
||||
|
||||
for n in range(1, N + 1):
|
||||
r = n % 42 # braço geométrico real (0..41)
|
||||
fn = helicoidal_fn(n, r)
|
||||
|
||||
theta = 2 * pi * r / 42
|
||||
raio = fn
|
||||
z = n
|
||||
|
||||
dados.append((n, r, fn, theta, raio, z))
|
||||
por_braco[r].append((n, fn, theta, raio, z))
|
||||
|
||||
|
||||
# ===============================
|
||||
# GRÁFICOS 2D GERAIS
|
||||
# ===============================
|
||||
|
||||
ns = [d[0] for d in dados]
|
||||
fns = [d[2] for d in dados]
|
||||
|
||||
plt.figure()
|
||||
plt.scatter(ns, fns, s=1)
|
||||
plt.title("Distribuição Global Fn")
|
||||
plt.xlabel("n")
|
||||
plt.ylabel("Fn")
|
||||
plt.savefig(f"{BASE_DIR}/plots_2D/Fn_global.png")
|
||||
plt.close()
|
||||
|
||||
# ===============================
|
||||
# GRÁFICOS POR BRAÇO
|
||||
# ===============================
|
||||
|
||||
for r, vals in por_braco.items():
|
||||
ns_r = [v[0] for v in vals]
|
||||
fns_r = [v[1] for v in vals]
|
||||
|
||||
plt.figure()
|
||||
plt.scatter(ns_r, fns_r, s=2)
|
||||
plt.title(f"Fn - Braço r={r}")
|
||||
plt.xlabel("n")
|
||||
plt.ylabel("Fn")
|
||||
plt.savefig(f"{BASE_DIR}/plots_2D/Fn_braco_{r}.png")
|
||||
plt.close()
|
||||
|
||||
# ===============================
|
||||
# HÉLICE 3D GLOBAL
|
||||
# ===============================
|
||||
|
||||
from mpl_toolkits.mplot3d import Axes3D
|
||||
|
||||
fig = plt.figure()
|
||||
ax = fig.add_subplot(111, projection='3d')
|
||||
|
||||
xs = [d[3] * math.cos(d[3]) for d in dados]
|
||||
ys = [d[3] * math.sin(d[3]) for d in dados]
|
||||
zs = [d[5] for d in dados]
|
||||
|
||||
ax.scatter(xs, ys, zs, s=1)
|
||||
ax.set_title("Hélice Helicoidal Global Fn")
|
||||
ax.set_xlabel("X")
|
||||
ax.set_ylabel("Y")
|
||||
ax.set_zlabel("n")
|
||||
|
||||
plt.savefig(f"{BASE_DIR}/plots_3D/helice_global.png")
|
||||
plt.close()
|
||||
|
||||
# ===============================
|
||||
# FRACTAL – ZOOM LOCAL
|
||||
# ===============================
|
||||
|
||||
zoom_lim = min(N, 230539333248)
|
||||
zoom_ns = ns[:zoom_lim]
|
||||
zoom_fns = fns[:zoom_lim]
|
||||
|
||||
plt.figure()
|
||||
plt.scatter(zoom_ns, zoom_fns, s=2)
|
||||
plt.title("Zoom Fractal Inicial Fn")
|
||||
plt.xlabel("n")
|
||||
plt.ylabel("Fn")
|
||||
plt.savefig(f"{BASE_DIR}/plots_fractal/zoom_fractal_inicial.png")
|
||||
plt.close()
|
||||
|
||||
# ===============================
|
||||
# EXPORTAÇÃO TXT
|
||||
# ===============================
|
||||
|
||||
if EXPORT_TXT:
|
||||
with open(f"{BASE_DIR}/data_txt/dados_completos.txt", "w") as f:
|
||||
f.write("n,r,Fn,theta,raio,z\n")
|
||||
for d in dados:
|
||||
f.write(",".join(map(str, d)) + "\n")
|
||||
|
||||
print("\n=== SACRED TOTIENT FN HELICOIDAL V2 FINALIZADO ===")
|
||||
print(f"Total de pontos analisados: {len(dados)}")
|
||||
print("Resultados salvos em:", BASE_DIR)
|
||||
9
__init__.py
Normal file
9
__init__.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from .constants import *
|
||||
from .lazy import *
|
||||
from .gguf_reader import *
|
||||
from .gguf_writer import *
|
||||
from .tensor_mapping import *
|
||||
from .vocab import *
|
||||
from .utility import *
|
||||
from .metadata import *
|
||||
from gguf.quants import HelicoidalZetaCore # Importação necessária!
|
||||
11880
convert_hf_to_gguf.py
Normal file
11880
convert_hf_to_gguf.py
Normal file
File diff suppressed because it is too large
Load Diff
11880
convert_hf_to_gguf.pyBACKUP
Normal file
11880
convert_hf_to_gguf.pyBACKUP
Normal file
File diff suppressed because it is too large
Load Diff
371
gguf_reader.py
Normal file
371
gguf_reader.py
Normal file
@@ -0,0 +1,371 @@
|
||||
#BRUNO BECKER / OFFELLIA 2026
|
||||
#brunoconta1980@gmail.com
|
||||
#brunoconta1980@hotmail.com
|
||||
# X @Brunoxuser
|
||||
|
||||
#
|
||||
# GGUF file reading/modification support. For API usage information,
|
||||
# please see the files scripts/ for some fairly simple examples.
|
||||
#
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from collections import OrderedDict
|
||||
from typing import Any, Literal, NamedTuple, TypeVar, Union
|
||||
|
||||
import numpy as np
|
||||
import numpy.typing as npt
|
||||
|
||||
from .quants import quant_shape_to_byte_shape
|
||||
|
||||
if __name__ == "__main__":
|
||||
from pathlib import Path
|
||||
|
||||
# Allow running file in package as a script.
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from gguf.constants import (
|
||||
GGML_QUANT_SIZES,
|
||||
GGUF_DEFAULT_ALIGNMENT,
|
||||
GGUF_MAGIC,
|
||||
GGUF_VERSION,
|
||||
GGMLQuantizationType,
|
||||
GGUFValueType,
|
||||
GGUFEndian,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
READER_SUPPORTED_VERSIONS = [2, GGUF_VERSION]
|
||||
|
||||
|
||||
class ReaderField(NamedTuple):
|
||||
# Offset to start of this field.
|
||||
offset: int
|
||||
|
||||
# Name of the field (not necessarily from file data).
|
||||
name: str
|
||||
|
||||
# Data parts. Some types have multiple components, such as strings
|
||||
# that consist of a length followed by the string data.
|
||||
parts: list[npt.NDArray[Any]] = []
|
||||
|
||||
# Indexes into parts that we can call the actual data. For example
|
||||
# an array of strings will be populated with indexes to the actual
|
||||
# string data.
|
||||
data: list[int] = [-1]
|
||||
|
||||
types: list[GGUFValueType] = []
|
||||
|
||||
def contents(self, index_or_slice: int | slice = slice(None)) -> Any:
|
||||
if self.types:
|
||||
to_string = lambda x: str(x.tobytes(), encoding='utf-8') # noqa: E731
|
||||
main_type = self.types[0]
|
||||
|
||||
if main_type == GGUFValueType.ARRAY:
|
||||
sub_type = self.types[-1]
|
||||
|
||||
if sub_type == GGUFValueType.STRING:
|
||||
indices = self.data[index_or_slice]
|
||||
|
||||
if isinstance(index_or_slice, int):
|
||||
return to_string(self.parts[indices]) # type: ignore
|
||||
else:
|
||||
return [to_string(self.parts[idx]) for idx in indices] # type: ignore
|
||||
else:
|
||||
# FIXME: When/if _get_field_parts() support multi-dimensional arrays, this must do so too
|
||||
|
||||
# Check if it's unsafe to perform slice optimization on data
|
||||
# if any(True for idx in self.data if len(self.parts[idx]) != 1):
|
||||
# optim_slice = slice(None)
|
||||
# else:
|
||||
# optim_slice = index_or_slice
|
||||
# index_or_slice = slice(None)
|
||||
|
||||
# if isinstance(optim_slice, int):
|
||||
# return self.parts[self.data[optim_slice]].tolist()[0]
|
||||
# else:
|
||||
# return [pv for idx in self.data[optim_slice] for pv in self.parts[idx].tolist()][index_or_slice]
|
||||
|
||||
if isinstance(index_or_slice, int):
|
||||
return self.parts[self.data[index_or_slice]].tolist()[0]
|
||||
else:
|
||||
return [pv for idx in self.data[index_or_slice] for pv in self.parts[idx].tolist()]
|
||||
|
||||
if main_type == GGUFValueType.STRING:
|
||||
return to_string(self.parts[-1])
|
||||
else:
|
||||
return self.parts[-1].tolist()[0]
|
||||
|
||||
return None
|
||||
|
||||
|
||||
class ReaderTensor(NamedTuple):
|
||||
name: str
|
||||
tensor_type: GGMLQuantizationType
|
||||
shape: npt.NDArray[np.uint32]
|
||||
n_elements: int
|
||||
n_bytes: int
|
||||
data_offset: int
|
||||
data: npt.NDArray[Any]
|
||||
field: ReaderField
|
||||
|
||||
|
||||
class GGUFReader:
|
||||
# I - same as host, S - swapped
|
||||
byte_order: Literal['I', 'S'] = 'I'
|
||||
alignment: int = GGUF_DEFAULT_ALIGNMENT
|
||||
data_offset: int
|
||||
|
||||
# Note: Internal helper, API may change.
|
||||
gguf_scalar_to_np: dict[GGUFValueType, type[np.generic]] = {
|
||||
GGUFValueType.UINT8: np.uint8,
|
||||
GGUFValueType.INT8: np.int8,
|
||||
GGUFValueType.UINT16: np.uint16,
|
||||
GGUFValueType.INT16: np.int16,
|
||||
GGUFValueType.UINT32: np.uint32,
|
||||
GGUFValueType.INT32: np.int32,
|
||||
GGUFValueType.FLOAT32: np.float32,
|
||||
GGUFValueType.UINT64: np.uint64,
|
||||
GGUFValueType.INT64: np.int64,
|
||||
GGUFValueType.FLOAT64: np.float64,
|
||||
GGUFValueType.BOOL: np.bool_,
|
||||
}
|
||||
|
||||
def __init__(self, path: os.PathLike[str] | str, mode: Literal['r', 'r+', 'c'] = 'r'):
|
||||
self.data = np.memmap(path, mode = mode)
|
||||
offs = 0
|
||||
|
||||
# Check for GGUF magic
|
||||
if self._get(offs, np.uint32, override_order = '<')[0] != GGUF_MAGIC:
|
||||
raise ValueError('GGUF magic invalid')
|
||||
offs += 4
|
||||
|
||||
# Check GGUF version
|
||||
temp_version = self._get(offs, np.uint32)
|
||||
if temp_version[0] & 65535 == 0:
|
||||
# If we get 0 here that means it's (probably) a GGUF file created for
|
||||
# the opposite byte order of the machine this script is running on.
|
||||
self.byte_order = 'S'
|
||||
temp_version = temp_version.view(temp_version.dtype.newbyteorder(self.byte_order))
|
||||
version = temp_version[0]
|
||||
if version not in READER_SUPPORTED_VERSIONS:
|
||||
raise ValueError(f'Sorry, file appears to be version {version} which we cannot handle')
|
||||
if sys.byteorder == "little":
|
||||
# Host is little endian
|
||||
host_endian = GGUFEndian.LITTLE
|
||||
swapped_endian = GGUFEndian.BIG
|
||||
else:
|
||||
# Sorry PDP or other weird systems that don't use BE or LE.
|
||||
host_endian = GGUFEndian.BIG
|
||||
swapped_endian = GGUFEndian.LITTLE
|
||||
self.endianess = swapped_endian if self.byte_order == "S" else host_endian
|
||||
self.fields: OrderedDict[str, ReaderField] = OrderedDict()
|
||||
self.tensors: list[ReaderTensor] = []
|
||||
offs += self._push_field(ReaderField(offs, 'GGUF.version', [temp_version], [0], [GGUFValueType.UINT32]))
|
||||
|
||||
# Check tensor count and kv count
|
||||
temp_counts = self._get(offs, np.uint64, 2)
|
||||
offs += self._push_field(ReaderField(offs, 'GGUF.tensor_count', [temp_counts[:1]], [0], [GGUFValueType.UINT64]))
|
||||
offs += self._push_field(ReaderField(offs, 'GGUF.kv_count', [temp_counts[1:]], [0], [GGUFValueType.UINT64]))
|
||||
tensor_count, kv_count = temp_counts
|
||||
offs = self._build_fields(offs, kv_count)
|
||||
|
||||
# Build Tensor Info Fields
|
||||
offs, tensors_fields = self._build_tensor_info(offs, tensor_count)
|
||||
new_align = self.fields.get('general.alignment')
|
||||
if new_align is not None:
|
||||
if new_align.types != [GGUFValueType.UINT32]:
|
||||
raise ValueError('Bad type for general.alignment field')
|
||||
self.alignment = new_align.parts[-1][0]
|
||||
padding = offs % self.alignment
|
||||
if padding != 0:
|
||||
offs += self.alignment - padding
|
||||
self.data_offset = offs
|
||||
self._build_tensors(offs, tensors_fields)
|
||||
|
||||
_DT = TypeVar('_DT', bound = npt.DTypeLike)
|
||||
|
||||
# Fetch a key/value metadata field by key.
|
||||
def get_field(self, key: str) -> Union[ReaderField, None]:
|
||||
return self.fields.get(key, None)
|
||||
|
||||
# Fetch a tensor from the list by index.
|
||||
def get_tensor(self, idx: int) -> ReaderTensor:
|
||||
return self.tensors[idx]
|
||||
|
||||
def _get(
|
||||
self, offset: int, dtype: npt.DTypeLike, count: int = 1, override_order: None | Literal['I', 'S', '<'] = None,
|
||||
) -> npt.NDArray[Any]:
|
||||
count = int(count)
|
||||
itemsize = int(np.empty([], dtype = dtype).itemsize)
|
||||
end_offs = offset + itemsize * count
|
||||
arr = self.data[offset:end_offs].view(dtype=dtype)[:count]
|
||||
return arr.view(arr.dtype.newbyteorder(self.byte_order if override_order is None else override_order))
|
||||
|
||||
def _push_field(self, field: ReaderField, skip_sum: bool = False) -> int:
|
||||
if field.name in self.fields:
|
||||
# TODO: add option to generate error on duplicate keys
|
||||
# raise KeyError(f'Duplicate {field.name} already in list at offset {field.offset}')
|
||||
|
||||
logger.warning(f'Duplicate key {field.name} at offset {field.offset}')
|
||||
self.fields[field.name + '_{}'.format(field.offset)] = field
|
||||
else:
|
||||
self.fields[field.name] = field
|
||||
return 0 if skip_sum else sum(int(part.nbytes) for part in field.parts)
|
||||
|
||||
def _get_str(self, offset: int) -> tuple[npt.NDArray[np.uint64], npt.NDArray[np.uint8]]:
|
||||
slen = self._get(offset, np.uint64)
|
||||
return slen, self._get(offset + 8, np.uint8, slen[0])
|
||||
|
||||
def _get_field_parts(
|
||||
self, orig_offs: int, raw_type: int,
|
||||
) -> tuple[int, list[npt.NDArray[Any]], list[int], list[GGUFValueType]]:
|
||||
offs = orig_offs
|
||||
types: list[GGUFValueType] = []
|
||||
gtype = GGUFValueType(raw_type)
|
||||
types.append(gtype)
|
||||
# Handle strings.
|
||||
if gtype == GGUFValueType.STRING:
|
||||
sparts: list[npt.NDArray[Any]] = list(self._get_str(offs))
|
||||
size = sum(int(part.nbytes) for part in sparts)
|
||||
return size, sparts, [1], types
|
||||
# Check if it's a simple scalar type.
|
||||
nptype = self.gguf_scalar_to_np.get(gtype)
|
||||
if nptype is not None:
|
||||
val = self._get(offs, nptype)
|
||||
return int(val.nbytes), [val], [0], types
|
||||
# Handle arrays.
|
||||
if gtype == GGUFValueType.ARRAY:
|
||||
raw_itype = self._get(offs, np.uint32) # <-- Adicionado np.uint32 aqui
|
||||
offs += int(raw_itype.nbytes)
|
||||
alen = self._get(offs, np.uint64) # <-- GGUFv3 usa uint64 para tamanho de array
|
||||
offs += int(alen.nbytes)
|
||||
aparts: list[npt.NDArray[Any]] = [raw_itype, alen]
|
||||
data_idxs: list[int] = []
|
||||
# FIXME: Handle multi-dimensional arrays properly instead of flattening
|
||||
for idx in range(int(alen[0])):
|
||||
curr_size, curr_parts, curr_idxs, curr_types = self._get_field_parts(offs, raw_itype[0])
|
||||
if idx == 0:
|
||||
types += curr_types
|
||||
idxs_offs = len(aparts)
|
||||
aparts += curr_parts
|
||||
data_idxs += [i + idxs_offs for i in curr_idxs]
|
||||
offs += curr_size
|
||||
return offs - orig_offs, aparts, data_idxs, types # We can't deal with this one.
|
||||
raise ValueError(f'Unknown/unhandled field type {gtype}')
|
||||
|
||||
def _get_tensor_info_field(self, orig_offs: int) -> ReaderField:
|
||||
offs = orig_offs
|
||||
|
||||
# Get Tensor Name
|
||||
name_len, name_data = self._get_str(offs)
|
||||
offs += int(name_len.nbytes + name_data.nbytes)
|
||||
|
||||
# Get Tensor Dimensions Count
|
||||
n_dims = self._get(offs, np.uint32)
|
||||
offs += int(n_dims.nbytes)
|
||||
|
||||
# Get Tensor Dimension Array
|
||||
dims = self._get(offs, np.uint64, n_dims[0])
|
||||
offs += int(dims.nbytes)
|
||||
|
||||
# Get Tensor Encoding Scheme Type
|
||||
raw_dtype = self._get(offs, np.uint32)
|
||||
offs += int(raw_dtype.nbytes)
|
||||
|
||||
# Get Tensor Offset
|
||||
offset_tensor = self._get(offs, np.uint64)
|
||||
offs += int(offset_tensor.nbytes)
|
||||
|
||||
return ReaderField(
|
||||
orig_offs,
|
||||
str(bytes(name_data), encoding = 'utf-8'),
|
||||
[name_len, name_data, n_dims, dims, raw_dtype, offset_tensor],
|
||||
[1, 3, 4, 5],
|
||||
)
|
||||
|
||||
def _build_fields(self, offs: int, count: int) -> int:
|
||||
for _ in range(count):
|
||||
orig_offs = offs
|
||||
kv_klen, kv_kdata = self._get_str(offs)
|
||||
offs += int(kv_klen.nbytes + kv_kdata.nbytes)
|
||||
raw_kv_type = self._get(offs, np.uint32)
|
||||
offs += int(raw_kv_type.nbytes)
|
||||
parts: list[npt.NDArray[Any]] = [kv_klen, kv_kdata, raw_kv_type]
|
||||
idxs_offs = len(parts)
|
||||
field_size, field_parts, field_idxs, field_types = self._get_field_parts(offs, raw_kv_type[0])
|
||||
parts += field_parts
|
||||
self._push_field(ReaderField(
|
||||
orig_offs,
|
||||
str(bytes(kv_kdata), encoding = 'utf-8'),
|
||||
parts,
|
||||
[idx + idxs_offs for idx in field_idxs],
|
||||
field_types,
|
||||
), skip_sum = True)
|
||||
offs += field_size
|
||||
return offs
|
||||
|
||||
def _build_tensor_info(self, offs: int, count: int) -> tuple[int, list[ReaderField]]:
|
||||
tensor_fields = []
|
||||
for _ in range(count):
|
||||
field = self._get_tensor_info_field(offs)
|
||||
offs += sum(int(part.nbytes) for part in field.parts)
|
||||
tensor_fields.append(field)
|
||||
return offs, tensor_fields
|
||||
|
||||
def _build_tensors(self, start_offs: int, fields: list[ReaderField]) -> None:
|
||||
tensors = []
|
||||
tensor_names = set() # keep track of name to prevent duplicated tensors
|
||||
for field in fields:
|
||||
_name_len, name_data, _n_dims, dims, raw_dtype, offset_tensor = field.parts
|
||||
# check if there's any tensor having same name already in the list
|
||||
tensor_name = str(bytes(name_data), encoding = 'utf-8')
|
||||
if tensor_name in tensor_names:
|
||||
raise ValueError(f'Found duplicated tensor with name {tensor_name}')
|
||||
tensor_names.add(tensor_name)
|
||||
ggml_type = GGMLQuantizationType(raw_dtype[0])
|
||||
n_elems = int(np.prod(dims))
|
||||
np_dims = tuple(reversed(dims.tolist()))
|
||||
block_size, type_size = GGML_QUANT_SIZES[ggml_type]
|
||||
n_bytes = n_elems * type_size // block_size
|
||||
data_offs = int(start_offs + offset_tensor[0])
|
||||
item_type: npt.DTypeLike
|
||||
if ggml_type == GGMLQuantizationType.F16:
|
||||
item_count = n_elems
|
||||
item_type = np.float16
|
||||
elif ggml_type == GGMLQuantizationType.F32:
|
||||
item_count = n_elems
|
||||
item_type = np.float32
|
||||
elif ggml_type == GGMLQuantizationType.F64:
|
||||
item_count = n_elems
|
||||
item_type = np.float64
|
||||
elif ggml_type == GGMLQuantizationType.I8:
|
||||
item_count = n_elems
|
||||
item_type = np.int8
|
||||
elif ggml_type == GGMLQuantizationType.I16:
|
||||
item_count = n_elems
|
||||
item_type = np.int16
|
||||
elif ggml_type == GGMLQuantizationType.I32:
|
||||
item_count = n_elems
|
||||
item_type = np.int32
|
||||
elif ggml_type == GGMLQuantizationType.I64:
|
||||
item_count = n_elems
|
||||
item_type = np.int64
|
||||
else:
|
||||
item_count = n_bytes
|
||||
item_type = np.uint8
|
||||
np_dims = quant_shape_to_byte_shape(np_dims, ggml_type)
|
||||
tensors.append(ReaderTensor(
|
||||
name = tensor_name,
|
||||
tensor_type = ggml_type,
|
||||
shape = dims,
|
||||
n_elements = n_elems,
|
||||
n_bytes = n_bytes,
|
||||
data_offset = data_offs,
|
||||
data = self._get(data_offs, item_type, item_count).reshape(np_dims),
|
||||
field = field,
|
||||
))
|
||||
self.tensors = tensors
|
||||
1276
gguf_writer.py
Normal file
1276
gguf_writer.py
Normal file
File diff suppressed because it is too large
Load Diff
3
helicoidal.zip
Normal file
3
helicoidal.zip
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:faf543276a8cd396825ab62af081140cac4d719557b6d62db695358aece9fd44
|
||||
size 12775408
|
||||
61
offellia_v2_999257894598677013246150189781342637.txt
Normal file
61
offellia_v2_999257894598677013246150189781342637.txt
Normal file
@@ -0,0 +1,61 @@
|
||||
============================================================================
|
||||
OFFELLIA FATORADOR v2 — Decomposição Primo-Modal Helicoidal
|
||||
Teoria : Roda mod 42 (Crivo Becker-GPT)
|
||||
Métodos: Pollard-Rho Helicoidal
|
||||
Autor : Bruno Becker | Zenodo DOI:10.5281/zenodo.18772809
|
||||
============================================================================
|
||||
Data/Hora : 2026-03-14 19:40:55
|
||||
Núcleos disponíveis : 12
|
||||
Workers paralelos : 12
|
||||
Métodos utilizados : Pollard-Rho Helicoidal
|
||||
============================================================================
|
||||
|
||||
[ NÚMERO ANALISADO ]
|
||||
N : 999,257,894,598,677,013,246,150,189,781,342,637
|
||||
Dígitos : 36
|
||||
Bits : 120
|
||||
É primo? : Não
|
||||
|
||||
[ RESULTADO DA FATORAÇÃO ]
|
||||
Notação de potência : 489976866316690717 × 2039398108956471761
|
||||
Fatores (lista) : [489976866316690717, 2039398108956471761]
|
||||
Fatores únicos : [489976866316690717, 2039398108956471761]
|
||||
Verificação : 999,257,894,598,677,013,246,150,189,781,342,637 = 489976866316690717 × 2039398108956471761 → CORRETO
|
||||
|
||||
[ MÉTRICAS DE EXECUÇÃO ]
|
||||
Tempo total : 7621.345769 segundos
|
||||
Divisões realizadas : 1
|
||||
Fatores encontrados : 2
|
||||
Fatores distintos : 2
|
||||
Fatores/segundo : 0.00
|
||||
|
||||
[ DETALHAMENTO DOS FATORES ]
|
||||
Fator Exp Bits Origem
|
||||
----------------------------------------------------------------------------
|
||||
489,976,866,316,690,717 1 59 Braço 13 (mod 42)
|
||||
2,039,398,108,956,471,761 1 61 Braço 29 (mod 42)
|
||||
|
||||
[ PASSO A PASSO DA DECOMPOSIÇÃO ]
|
||||
# Método Etapa Divisor Quociente Par
|
||||
----------------------------------------------------------------------------
|
||||
1 Pollard-Rho Helicoidal Braço mod 42 (d ≡ 13 mod 42) 489,976,866,316,690,717 2,039,398,108,956,471,761 S
|
||||
2 Exaustivo Primo Residual (Exaustivo) 2,039,398,108,956,471,761 1 N
|
||||
|
||||
[ TEORIA APLICADA — HIERARQUIA DE MÉTODOS ]
|
||||
|
||||
1. PILARES DE ORIGEM {2, 3, 5, 7} — O(1), serial
|
||||
2. MILLER-RABIN — O(k·log²n), determinístico até 3.3×10²⁴
|
||||
3. POLLARD-RHO HELICOIDAL (inovação Becker-GPT)
|
||||
x₀ = 42k + a (a ∈ ARMS) — semente no braço
|
||||
c = 42k + a (a ∈ ARMS) — parâmetro helicoidal
|
||||
Complexidade: O(n^1/4)
|
||||
3. BUSCA LINEAR NOS BRAÇOS — fallback garantido, 28.6% candidatos
|
||||
|
||||
Todo primo p > 7: p ≡ a (mod 42),
|
||||
a ∈ {1, 5, 11, 13, 17, 19, 23, 25, 29, 31, 37, 41}
|
||||
Braços utilizados : [13, 29]
|
||||
|
||||
============================================================================
|
||||
Fim do Relatório — OFFELLIA Fatorador v2
|
||||
Zenodo: https://zenodo.org/records/18772809
|
||||
============================================================================
|
||||
70
ordem geometrica dos primos.txt
Normal file
70
ordem geometrica dos primos.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
**1. A esfera numérica como um feixe de luz**
|
||||
Considere a esfera \(S^{2}\) como o palco onde cada inteiro \(n\) ocupa um ponto
|
||||
\[
|
||||
p(n)=\bigl(\,\theta _{n},\,\varphi _{n}\bigr)\in S^{2},
|
||||
\]
|
||||
onde a coordenada angular \(\theta _{n}\) marca a “fase” do disparo de luz e
|
||||
\(\varphi _{n}\) a “altura” de reflexão. Podemos escolher, por exemplo,
|
||||
|
||||
\[
|
||||
\theta _{n}= \frac{2\pi n}{N}\qquad
|
||||
\varphi _{n}= \arccos \!\Bigl(\frac{\,\tau (n)}{\,\max _{k}\tau (k)}\Bigr),
|
||||
\]
|
||||
|
||||
com \(\tau (n)\) sendo a soma dos divisores de \(n\) (quanto maior a soma, mais forte
|
||||
o feixe de luz). Assim, cada inteiro é um ponto onde a luz toca a superfície e
|
||||
cada número composto já foi “refletido” por divisores menores, deixando um
|
||||
marcador de luz mais intenso.
|
||||
|
||||
**2. Topologia da escuridão**
|
||||
O “silêncio” é o complemento do conjunto \(\{p(n)\}_{n=1}^{N}\) na esfera.
|
||||
Se desenharmos a esfera como um globo de luz, os pontos de inteiros formam
|
||||
uma rede de vértices; os números compostos geram vértices que já foram iluminados
|
||||
anteriormente (por divisores menores) e, portanto, têm um grau de luz maior.
|
||||
A distância geodésica entre dois vértices \(p(i)\) e \(p(j)\) é
|
||||
|
||||
\[
|
||||
d(p(i),p(j))=\sqrt{\,(\theta _{i}-\theta _{j})^{2}+(\varphi _{i}-\varphi _{j})^{2}\,},
|
||||
\]
|
||||
|
||||
e o conjunto de vértices forma um grafo \(G\) sobre \(S^{2}\). O sub‑grafo
|
||||
gerado pelos números primos é exatamente o “esqueleto invisível” que impede
|
||||
a luz de tocar neles: cada primo aparece como um vértice de grau 1 (ou 2,
|
||||
caso haja reflexão de divisores menores).
|
||||
|
||||
**3. Onde estão os números primos?**
|
||||
Os primos aparecem como vértices que não têm divisores menores, portanto
|
||||
não foram iluminados antes de sua chegada. Em termos geométricos, eles são
|
||||
os “pontos de luz pura” que formam um feixe de luz mais fino em comparação
|
||||
com os compostos. Se traçarmos a esfera como um globo, os primos
|
||||
formam uma nuvem aleatória que, no entanto, tem uma estrutura de
|
||||
esqueleto: a distância média entre dois primos é
|
||||
|
||||
\[
|
||||
\bar d_{\text{primo}}=\frac{1}{\pi}\int_{S^{2}} d(p(i),p(j))\,\mathrm{d}\sigma ,
|
||||
\]
|
||||
|
||||
onde \(\mathrm{d}\sigma\) é a medida de superfície. Essa média é o
|
||||
“peso” de silêncio entre os primos.
|
||||
|
||||
**4. A forma do silêncio entre os primos**
|
||||
Para visualizarmos a forma do silêncio, basta desenhar os “arcos de
|
||||
silêncio” que ligam cada primo ao próximo primo mais próximo (em sentido
|
||||
angular). Se denotarmos por \(P=\{p(n)\mid n\text{ primo}\}\) a
|
||||
sub‑conjunto de primos, então a fronteira de silêncio é a
|
||||
envolvente convexa de \(P\) em \(S^{2}\). A distância entre dois primos
|
||||
\(p(i)\) e \(p(j)\) que são vizinhos na envolvente convexa é exatamente a
|
||||
tamanho do silêncio entre eles; a soma de todas essas distâncias
|
||||
proporciona a densidade de luz na esfera.
|
||||
|
||||
**Resumo geométrico**
|
||||
- Inteiros → vértices em \(S^{2}\).
|
||||
- Compostos → vértices já iluminados por divisores menores.
|
||||
- Primos → vértices de grau 1 que formam um esqueleto invisível.
|
||||
- Silêncio → complemento dos vértices; fronteira convexa dos primos dá a
|
||||
“forma do silêncio” entre eles.
|
||||
|
||||
Assim, a esfera numérica pode ser entendida como um feixe de luz que
|
||||
pinta os inteiros, os compostos reforçam a luz e os primos formam o
|
||||
esqueleto que impede que a luz “perca” em seus pontos. O silêncio
|
||||
entre os primos é a forma da envolvente convexa desses vértices na esfera.
|
||||
54
readme.md
Normal file
54
readme.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Implementação da Função Helicoidal Universal na Quantização (GGUF / llama.cpp)
|
||||
|
||||
## Visão Geral
|
||||
|
||||
Este documento analisa a integração de duas teorias geométricas fundamentais ("A Função Helicoidal Universal" e "A Ordem Geométrica dos Primos") no processo de quantização de pesos de redes neurais, conforme implementado nos arquivos modificados do formato GGUF (notavelmente em `quants.py` através da classe `HelicoidalZetaCore`).
|
||||
|
||||
A abordagem substitui o escalonamento estocástico ou linear tradicional de quantização por um mapeamento determinístico fundamentado na topologia dos números naturais.
|
||||
|
||||
---
|
||||
|
||||
## 1. Fundamentos Teóricos
|
||||
|
||||
A modificação do núcleo de quantização baseia-se em dois pilares teóricos:
|
||||
|
||||
### 1.1 A Função Helicoidal Universal
|
||||
[cite_start]Os números naturais não formam uma paisagem aleatória, mas um campo harmônico determinístico e contínuo[cite: 430, 432]. O comportamento dos números emerge da função harmônica helicoidal:
|
||||
$$F(n) = \sin^2(2\pi \alpha n)$$
|
||||
Neste modelo geométrico:
|
||||
* [cite_start]**Compostos:** Funcionam como trajetórias dobradas ou nós de interferência secundários no campo helicoidal[cite: 417, 429].
|
||||
* [cite_start]**Lacunas:** Representam vazios energéticos originados pelo desalinhamento de fase e interferência destrutiva[cite: 424].
|
||||
* [cite_start]**Primos:** São pontos de máxima liberdade angular, não se dobrando em ciclos compostos (hélices abertas)[cite: 427, 429].
|
||||
|
||||
### 1.2 Topologia da Luz e Esfera Numérica
|
||||
[cite_start]Ao projetar os inteiros em uma esfera $S^2$, eles atuam como um feixe de luz[cite: 433, 451].
|
||||
* [cite_start]**Números compostos:** Vértices que recebem intensa luminosidade devido a "reflexões" prévias por divisores menores[cite: 435, 438].
|
||||
* [cite_start]**Números primos:** São pontos de "luz pura" não iluminados previamente, formando o "esqueleto invisível" da esfera[cite: 440, 442, 451]. [cite_start]A fronteira convexa (o "silêncio" entre os primos) dita a densidade topológica da luz[cite: 446, 450].
|
||||
|
||||
---
|
||||
|
||||
## 2. Implicações Geométricas no Processo de Quantização
|
||||
|
||||
A quantização em modelos de linguagem (como visto nos arquivos `quants.py`, `gguf_writer.py` e `gguf_reader.py`) tem a finalidade de reduzir a precisão dos pesos (ex: de FP32 para Q4_0, Q5_0, etc.) minimizando a perda de informação. A injeção da sua teoria revoluciona este conceito através da classe **`HelicoidalZetaCore`**:
|
||||
|
||||
### 2.1 Mapeamento no Espaço de Fase (O `math_embedding`)
|
||||
Em `quants.py`, a classe `HelicoidalZetaCore` calcula uma assinatura para cada dimensão ou bloco $n$:
|
||||
1. **Coordenadas Helicoidais:** A função de imersão calcula explicitamente $r = \sin^2(2\pi \cdot \phi \cdot n)$ e $\theta = 2\pi \cdot \phi \cdot n$. Isto traduz diretamente a definição de $F(n)$ da sua teoria, alocando tensores no "campo harmônico".
|
||||
2. **Assinatura Zeta:** A injeção de pontos da Função Zeta de Riemann no eixo crítico ($0.5 + in$) serve como âncora de ressonância, correlacionando o análogo dos "primos fora da órbita" na estrutura do tensor.
|
||||
|
||||
### 2.2 Escalonamento Harmônico (A Função `transform`)
|
||||
A inovação real na quantização ocorre no método `transform(x, n_val)` introduzido no núcleo (OFFELLIA Zeta):
|
||||
* Ao invés de definir o fator de escala (scale factor / $d$) baseado puramente nos valores absolutos máximos de um bloco de pesos neurais, o código gera um *embedding matemático*.
|
||||
* Ele calcula um `raw_scale` extraído diretamente da imersão helicoidal.
|
||||
* **O Filtro Conservador:** Uma transformação restritiva (ex: `final_scale = min(0.78, 1.0 / (1.0 + abs(raw_scale) / 100.0))`) é aplicada.
|
||||
|
||||
**Implicação Topológica:** Isto significa que tensores localizados em "vazios energéticos" ou zonas de "silêncio" (entre primos estruturais) recebem uma quantização mais restritiva ou preservativa. [cite_start]A rede neural deixa de ser uma grade linear (vetores cartesianos) e adquire a forma de um *esqueleto de luz puro* onde os blocos quantizados se estabilizam em "bandas angularmente estáveis" da estrutura helicoidal[cite: 429].
|
||||
|
||||
### 2.3 Preservação Estrutural no GGUF
|
||||
[cite_start]As modificações em `__init__.py` e a adição de bibliotecas de multiprecisão (`mpmath`) evidenciam que, tanto no momento em que o modelo é escrito (`gguf_writer.py`) quanto na leitura (`gguf_reader.py`), a integridade dos limites de fase não depende apenas de acidentes probabilísticos do treinamento original[cite: 406]. [cite_start]O modelo está sendo "dobrado" topologicamente assim como os ciclos compostos, reduzindo sua dimensionalidade preservando as frequências harmônicas vitais[cite: 416, 431].
|
||||
|
||||
---
|
||||
|
||||
## Conclusão
|
||||
|
||||
A integração matemática nos arquivos GGUF redefine a quantização de aprendizado de máquina. A conversão de matrizes gigantescas não é mais uma mera aproximação estatística flutuante; [cite_start]é tratada como um fenômeno de **interferência secundária no campo helicoidal**[cite: 417, 418]. [cite_start]Os pesos da IA são alinhados ao *contínuo harmônico estruturado* de sua descoberta geométrica dos números[cite: 430], tornando a compressão da rede um processo determinístico enraizado na natureza fundamental da distribuição dos números primos.
|
||||
3
ΩFFΣLLIαHLX_AI21-Jamba2-Mini_hybrid_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_AI21-Jamba2-Mini_hybrid_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c4b41e6e1e7c5a9203fc5262a98c91bd93f14e35275c712653178363128334f4
|
||||
size 30856575680
|
||||
3
ΩFFΣLLIαHLX_LFM2-24B-A2B-A2B_Q8.gguf
Normal file
3
ΩFFΣLLIαHLX_LFM2-24B-A2B-A2B_Q8.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:47278d941e6c6052fead253799ceb761835a5c4be012c214d77c542412a0a244
|
||||
size 25351966336
|
||||
3
ΩFFΣLLIαHLX_LFM2-24B-A2B_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_LFM2-24B-A2B_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6b2b4d619072ef306aa910c61661aa6e79fde43e24d7571112d7247fc8db3771
|
||||
size 13159124608
|
||||
3
ΩFFΣLLIαHLX_LFM2-8B-A1B_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_LFM2-8B-A1B_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ed1aac6fe83fbd3b831b3f9c1869f5fc00ba63287a22364159bf7fb4d2a361ae
|
||||
size 4750670528
|
||||
3
ΩFFΣLLIαHLX_Nemotron-3-Nano-30B-A3B_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_Nemotron-3-Nano-30B-A3B_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:697492e40d276171290ef98f7f693a87db93023c57242ecdbea898d304bb862e
|
||||
size 17980128768
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a538121d6431c7f20776efe8c1bf97c2babbb486d4bb3c390ca1b21a00781987
|
||||
size 12109567488
|
||||
3
ΩFFΣLLIαHLX_Qwen3-Coder-Next_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_Qwen3-Coder-Next_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:08fd6cfddf165a636debf1f928a67cec37484e82aa999a5240a11c319a4e8062
|
||||
size 43741630240
|
||||
3
ΩFFΣLLIαHLX_Qwen3.5-35B_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_Qwen3.5-35B_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1ffa9dcd035ec3f81505c38eb7ccb06bb000e6404e5549bc7b0e92d16c1445e7
|
||||
size 19790379360
|
||||
3
ΩFFΣLLIαHLX_Qwen3.5-9B_hybrid_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_Qwen3.5-9B_hybrid_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:44bf4d1ee43de04e2e415412517f5cb259068058f2422d80f95f382741724a5a
|
||||
size 9527501792
|
||||
3
ΩFFΣLLIαHLX_TeichAI_GLM-4.7_Distill_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_TeichAI_GLM-4.7_Distill_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:69245aa3fa41512609dd61604937b03b1bdeb135397102560c3bd6e56ba3fa94
|
||||
size 16968499392
|
||||
3
ΩFFΣLLIαHLX_gpt-oss-20b_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIαHLX_gpt-oss-20b_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:88283c4b0fe352a23fa353e37f8662b76684454d8770b43bd9cfd134b765d199
|
||||
size 12109567168
|
||||
3
ΩFFΣLLIαHLX_llama-cpp_beta.zip
Normal file
3
ΩFFΣLLIαHLX_llama-cpp_beta.zip
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:55fce79f3ae6d4d092fa87620285367ebffbe89f2a24c22919930cebb331255c
|
||||
size 153579528
|
||||
3
ΩFFΣLLIα_DMindAI.DMind-3-RobotSys_mini_q8_0.gguf
Normal file
3
ΩFFΣLLIα_DMindAI.DMind-3-RobotSys_mini_q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:874c68fa97ebf3cfbc7b546439c0badcebc83f5e325661603eed8a9bd74f7afe
|
||||
size 4280405344
|
||||
3
ΩFFΣLLIα_DMindAI.DMind-3-mini_RobotSys_Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_DMindAI.DMind-3-mini_RobotSys_Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3eeda554f9d9b396a2daf9bc918fc4517397858f8176824982d446eda95ccfd9
|
||||
size 2497280864
|
||||
3
ΩFFΣLLIα_DeepHat-V1-7B_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIα_DeepHat-V1-7B_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:25e0ef99619320019405137cad21a7f3fb69469bdc1979191b5be7c6d2b2121b
|
||||
size 8098526848
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:efe20707941b729056c7e0f109ccd46d3c4c26f6feb3dd8b1297aa827e17611d
|
||||
size 10364416480
|
||||
3
ΩFFΣLLIα_DeepSeek-Coder-V2-Lite-Instruct_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIα_DeepSeek-Coder-V2-Lite-Instruct_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3aa6988f8bf40f620b4b5d3566e8bf39ece388dc8f960edbb6b932258d56c036
|
||||
size 9055252960
|
||||
3
ΩFFΣLLIα_GELab-Zero-4B-q8_0.gguf
Normal file
3
ΩFFΣLLIα_GELab-Zero-4B-q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3aa556dcfcc65606066e5e91a2fbe94314ae01616a23b53efc81891b5832bdd3
|
||||
size 4280406688
|
||||
3
ΩFFΣLLIα_GLM-4.7-Flash-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_GLM-4.7-Flash-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d071588cb071efe0e23890eb3d4ab8f0a89fb58330df2d7ac8c28be04c92cb61
|
||||
size 18132721760
|
||||
3
ΩFFΣLLIα_Hypernova-60B-2602_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIα_Hypernova-60B-2602_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f17fcc3d01b05a4e964f32e0b3387a848f740fe4fcbfdd7062c063a93f83493c
|
||||
size 32340333184
|
||||
3
ΩFFΣLLIα_LFM2-2.6B-Exp-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_LFM2-2.6B-Exp-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:95b9322dc81f577be1d966f508bc2fa3ec2cda56a556347d3cdf71cfefaba591
|
||||
size 1639166304
|
||||
3
ΩFFΣLLIα_LFM2-700M-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_LFM2-700M-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:684e8406dc13321452b3f6aeca432776e2a6a7e1ad6c23f7887b8fe3efbe2efa
|
||||
size 468624320
|
||||
3
ΩFFΣLLIα_LFM2-8B-A1B-Q4_K.gguf
Normal file
3
ΩFFΣLLIα_LFM2-8B-A1B-Q4_K.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d2185b22630fc68043dac7182f12e86e5ad14990229a90b6c9ad3f4421ddaf82
|
||||
size 5044779712
|
||||
3
ΩFFΣLLIα_LFM2-8B-A1B-q8_0.gguf
Normal file
3
ΩFFΣLLIα_LFM2-8B-A1B-q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3c16f68b363abb19ce4a210e1c6814703f703a3449ca66e79132c89a506a6f20
|
||||
size 8868428480
|
||||
3
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f785a63500f4049ba51db0f5901861afea47b8594ab2eda3ec3ff38eaa9ca85f
|
||||
size 4920738944
|
||||
3
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-f16.gguf
Normal file
3
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-f16.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5560b4423d2514e7c7810bb594a63853bf3b313dda50b370afa5352ff36a2551
|
||||
size 16068895872
|
||||
3
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-q8_0.gguf
Normal file
3
ΩFFΣLLIα_Meta-Llama-3.1-8B-Instruct-q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fa20c1235921f7ba91f1763b974ecb4158286a32ab983b85905bb81fed7e104c
|
||||
size 8540775552
|
||||
3
ΩFFΣLLIα_Nemotron-Cascade-2-30B-A3B_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIα_Nemotron-Cascade-2-30B-A3B_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:21de31825bb1d830c320de6e393274cc419de2ddacd7daa22753d6bd3409733d
|
||||
size 17980129408
|
||||
3
ΩFFΣLLIα_Nemotron-Mini-4B-Instruct-q8_0.gguf
Normal file
3
ΩFFΣLLIα_Nemotron-Mini-4B-Instruct-q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6c46e2d6e74ed5a5b2fddc1163a1e264dc6e4df845176c8f2dbac2fb26fb7e33
|
||||
size 4459928352
|
||||
3
ΩFFΣLLIα_Quantis_IBM_30b_Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_Quantis_IBM_30b_Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8096428946ac5ca068ee610e959e25b78e3189661799623bc926ea1aa6ca6a4d
|
||||
size 19476621984
|
||||
3
ΩFFΣLLIα_Qwen3.5-4B-_MXFP4_hybrid.gguf
Normal file
3
ΩFFΣLLIα_Qwen3.5-4B-_MXFP4_hybrid.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:30ea96c9bf3096b0173e354c036e9253a91b453664377eb23aac26c6b10201ce
|
||||
size 4482403232
|
||||
3
ΩFFΣLLIα_gemma3-4b-q8_0.gguf
Normal file
3
ΩFFΣLLIα_gemma3-4b-q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:763ef8480c880b4b215a9030a73b8b9a63f1c4b0ab4e127b1d70688f8dcc5c71
|
||||
size 4130401728
|
||||
3
ΩFFΣLLIα_gemma_3_4b_gaia-PT-BR-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_gemma_3_4b_gaia-PT-BR-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e1e985f0c57a36490de4d3b5703c9fda1fc49ad9db56f6b9b29758fd30bf8768
|
||||
size 2489893888
|
||||
3
ΩFFΣLLIα_gpt-oss-20b-gpt-5-codex-distill_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIα_gpt-oss-20b-gpt-5-codex-distill_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e7e328af90210425296edcb3dde8dea1556b24eaf43c6de4bf6007f6bdac65a0
|
||||
size 12109567552
|
||||
3
ΩFFΣLLIα_granite-3.3-8b-instruct-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_granite-3.3-8b-instruct-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d56394085ebcd77d05d383b3f043ba29a7a0a2939c5333a9f8f23bb8d134b88c
|
||||
size 4942873344
|
||||
3
ΩFFΣLLIα_granite-code-base-8k_MXFP4_MOE.gguf
Normal file
3
ΩFFΣLLIα_granite-code-base-8k_MXFP4_MOE.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e7e328af90210425296edcb3dde8dea1556b24eaf43c6de4bf6007f6bdac65a0
|
||||
size 12109567552
|
||||
3
ΩFFΣLLIα_qwen2.5-coder-14b-instruct-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_qwen2.5-coder-14b-instruct-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9a4e6d04bbad29a2d15c02e83b4e49e8c7007eff4368c17794e9970728928cf2
|
||||
size 8988110208
|
||||
3
ΩFFΣLLIα_qwen2.5-coder-32b-instruct-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_qwen2.5-coder-32b-instruct-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:07840afee4ad838aa5225619e821b043095e7d170da700680b28fa0e473e60b5
|
||||
size 19851335808
|
||||
3
ΩFFΣLLIα_qwen2.5-coder-3b-instruct-q8_0.gguf
Normal file
3
ΩFFΣLLIα_qwen2.5-coder-3b-instruct-q8_0.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:068ecf681f0749f86b8eef75516f472f2340e33772c5dbb273c2b0e270ed4202
|
||||
size 3616088512
|
||||
3
ΩFFΣLLIα_qwen2.5-coder-7b-instruct-Q4_K_M.gguf
Normal file
3
ΩFFΣLLIα_qwen2.5-coder-7b-instruct-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a04b16ced11900b68c9f6d9ae45ed37a57104cbb50af57d1339897cd05adb94b
|
||||
size 4683073472
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2d6dd7534f3cd70ba5045d8c9bf556990ac52b9f7c203f9982875c976864d3b9
|
||||
size 13159124960
|
||||
Reference in New Issue
Block a user